Giter VIP home page Giter VIP logo

dwm's Introduction

#My edits for dwm usind dwm-distrotube as base

The original README.md for distrotube as follows:

#+TITLE: dwm-distrotube

  • Table of Contents :toc:
  • [[#about-dwm][About DWM]]
    • [[#the-patches-i-added-to-this-build-include][The patches I added to this build include:]]
    • [[#the-dependencies-for-dwm-distrotube-include][The dependencies for dwm-distrotube include:]]
  • [[#installing-dwm-distrotube-on-arch-linux][Installing dwm-distrotube on Arch Linux]]
  • [[#installing-dwm-distrotube-on-other-linux-distributions][Installing dwm-distrotube on other Linux distributions]]
  • [[#my-keybindings][My Keybindings]]
    • [[#main-keybindings][Main keybindings]]
    • [[#layout-controls][Layout controls]]
    • [[#application-controls][Application controls]]
    • [[#doom-emacs][Doom emacs]]
  • [[#running-dwm][Running dwm]]
  • [[#configuring-dwm-distrotube][Configuring dwm-distrotube]]
  • [[#adding-an-autostart-file][Adding an autostart file]]

Dwm is an extremely fast, small, and dynamic window manager for X. Dwm is created by the good folks at [[https://suckless.org][suckless.org]]. This is my personal build of dwm. I used a number of patches in this build to make dwm more "sensible" rather than "suckless."

** The patches I added to this build include:

  • alpha (for transparency)
  • attachaside (new clients appear in the stack rather than as the master)
  • cyclelayouts (cycles through the available layouts)
  • gridmode (adding a grid layout)
  • restartsig (allows dwm to be restarted with a keybinding)
  • rotatestack (moves a window through the stack, in either direction)
  • statuspadding (horizontal and vertical padding in the status bar are now configurable options)
  • uselessgap (adding gaps when more than one window)

** The dependencies for dwm-distrotube include:

  • libxft
  • ttf-hack
  • ttf-joypixels
  • st
  • dmenu
  • tabbed

Also, you will need to add the following from the AUR:

Also, if you are building this on an Ubuntu-based system, you need to install libx11-dev and xorg-dev.

  • Installing dwm-distrotube on Arch Linux All you need to do is download the PKGBUILD from this repository. Then run the following command:

=makepkg -cf=

This will create a file that ends in .pkg.tar.zst (for example, dwm-distrotube-git-6.2-1-x86_64.pkg.tar.zst). Then run:

=sudo pacman -U *.pkg.tar.zst=

Alternatively, you could also install dwm-distrotube from my own personal [[https://gitlab.com/dwt1/dtos][dtos repository]]. To do so, add the following to the end of /etc/pacman.conf :

#+begin_example [dtos-core-repo] SigLevel = Optional DatabaseOptional Server = https://gitlab.com/dwt1/$repo/-/raw/main/$arch #+end_example

Then, sync the repositories and update your system with: =sudo pacman -Syyu=

And, then: =sudo pacman -S dwm-distrotube=

=NOTE:= Installing dwm-distrotube conflicts with the standard dwm package. If you already have dwm installed, you will be asked if you want to remove dwm and install dwm-distrotube instead.

  • Installing dwm-distrotube on other Linux distributions Download the source code from this repository or use a git clone:

#+begin_example git clone https://gitlab.com/dwt1/dwm-distrotube.git cd dwm-distrotube sudo make clean install #+end_example

=NOTE:= Installing dwm-distrotube will overwrite your existing dwm installation.

  • My Keybindings The MODKEY is set to the Super key (aka the Windows key). I try to keep the keybindings consistent with all of my window managers, but if you several of my window manager configs, there may be some discrepancies between them.

** Main keybindings

| Keybinding | Action | |-------------------------+--------------------------------------------------------------| | MODKEY + RETURN | opens terminal (alacritty but can be easily changed) | | MODKEY + SHIFT + RETURN | opens run launcher (dmenu but can be changed) | | MODKEY + SHIFT + c | closes window with focus | | MODKEY + SHIFT + r | restarts dwm | | MODKEY + SHIFT + q | quits dwm | | MODKEY + b | hides the bar | | MODKEY + 1-9 | switch focus to workspace (1-9) | | MODKEY + SHIFT + 1-9 | send focused window to workspace (1-9) | | MODKEY + j | focus stack +1 (switches focus between windows in the stack) | | MODKEY + k | focus stack -1 (switches focus between windows in the stack) | | MODKEY + SHIFT + j | rotate stack +1 (rotates the windows in the stack) | | MODKEY + SHIFT + k | rotate stack -1 (rotates the windows in the stack) | | MODKEY + h | setmfact -0.05 (expands size of window) | | MODKEY + l | setmfact +0.05 (shrinks size of window) | | MODKEY + . | focusmon +1 (switches focus next monitors) | | MODKEY + , | focusmon -1 (switches focus to prev monitors) |

** Layout controls

| Keybinding | Action | |------------------------+-------------------------| | MODKEY + d | row layout | | MODKEY + i | column layout | | MODKEY + TAB | cycle layout (-1) | | MODKEY + SHIFT + TAB | cycle layout (+1) | | MODKEY + SPACE | change layout | | MODKEY + SHIFT + SPACE | toggle floating windows | | MODKEY + t | layout 1 | | MODKEY + f | layout 2 | | MODKEY + m | layout 3 | | MODKEY + g | layout 4 |

** Application controls

| Keybinding | Action | |------------------+------------------------------------------------------------------------------| | MODKEY + ALT + b | open Brave browser | | MODKEY + ALT + s | tabbed -r 2 surf -pe x '.surf/html/homepage.html' | | MODKEY + ALT + m | open mailspring | | MODKEY + ALT + f | open pcmanfm (PaCMANFileManager) |

** Doom emacs

| Keybinding | Action | |--------------+--------------------------------------------------------| | CTRL + e + e | emacsclient -c -a 'emacs'` | | CTRL + e + d | emacsclient -c -a 'emacs' --eval '(dired nil)' | | CTRL + e + m | emacsclient -c -a 'emacs' --eval '(mu4e)' | | CTRL + e + b | emacsclient -c -a 'emacs' --eval '(ibuffer)' | | CTRL + e + n | emacsclient -c -a 'emacs' --eval '(elfeed)' | | CTRL + e + s | emacsclient -c -a 'emacs' --eval '(eshell)' | | CTRL + e + v | emacsclient -c -a 'emacs' --eval '(+vterm/here nil)' |

  • Running dwm If you do not use a login manager (such as lightdm) then you can add the following line to your .xinitrc to start dwm using startx:

=exec dwm=

If you use a login manager (like lightdm), make sure that you have a file called dwm.desktop in your /usr/share/xsessions/ directory. It should look something like this:

#+begin_example [Desktop Entry] Encoding=UTF-8 Name=Dwm Comment=Dynamic window manager Exec=dwm Icon=dwm Type=XSession #+end_example

  • Configuring dwm-distrotube

If you installed dwm-distrotube with pacman, then the source code can be found in /opt/dwm-distrotube. If you downloaded the source and built dwm-distrotube yourself, then the source is in the directory that you downloaded. The configuration of dwm-distrotube is done by editing the config.def.h and (re)compiling the source code.

=sudo make install=

  • Adding an autostart file dwm-distrotube has been patched in such a way that it looks for an autostart file at: $HOME/.dwm/autostart.sh

You will need to create this file and the directory that it is located. An example autostart.sh is included below:

#+begin_example #! /bin/bash picom & nitrogen --restore & dwmblocks & #+end_example

The example autostart.sh above launches the compton compositor, sets the wallpaper with nitrogen and launches dwmblocks to add some widgets to our dwm panel. Obviously, you would need to install compton and nitrogen to use those programs in your autostart. And you would need to install dwmblocks to use it. To use my dwmblocks, you also need to download the scripts found here.

dwm's People

Contributors

dwt1 avatar marko1777 avatar margual56 avatar crian avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.