dwm

dynamic window manager, forked from luke smith's build
git clone https://git.beauhilton.com/dwm.git
Log | Files | Refs | README | LICENSE

larbs.mom (14715B)


      1 .de LI
      2 .LIST
      3 .SHIFT_LIST 10p
      4 ..
      5 .PARA_SPACE 1m
      6 .TITLE "\s+(10System Guide\s0"
      7 .AUTHOR "\s+5cbh\s0"
      8 .DOCTYPE    DEFAULT
      9 .COPYSTYLE  FINAL
     10 .PRINTSTYLE TYPESET
     11 .PT_SIZE 12
     12 .START
     13 Pressing \f(CWs\fP will fit it to window width (\f(CWa\fP to revert).
     14 \f(CWK\fP and \f(CWJ\fP zoom in and out.
     15 \f(CWSuper+f\fP to toggle fullscreen.
     16 \f(CWq\fP to quit.
     17 (These are general binds set for \fBzathura\fP, the pdf reader.)
     18 .LI
     19 .ITEM
     20 \f(CWMod+F1\fP will show this document at any time.
     21 .ITEM
     22 By \f(CWMod\fP, I mean the Super Key, usually known as "the Windows Key."
     23 .LIST OFF
     24 .PP
     25 FAQs are at the end of this document.
     26 .HEADING 1 "Welcome!"
     27 .HEADING 2 "Basic goals and principles of this system:"
     28 .LI
     29 .ITEM
     30 \fBNaturalness\fP \(en
     31 Remove the border between mind and matter:
     32 everything important should be as few keypresses as possible away from you,
     33 and you shouldn't have to think about what you're doing.
     34 Immersion.
     35 .ITEM
     36 \fBEconomy\fP \(en
     37 Programs should be simple and light on system resources and highly extensible.
     38 Because of this, many are terminal or small ncurses programs that have all the magic inside of them.
     39 .ITEM
     40 \fBKeyboard/vim-centrality\fP \(en
     41 All terminal programs (and other programs) use vim keys when possible.
     42 Your hands never need leave the home row or thereabout.
     43 .ITEM
     44 \fBDecentralization\fP \(en
     45 This system is a web of small, modifiable and replaceable programs that users can easily customize.
     46 .LIST OFF
     47 .HEADING 2 "General keyboard changes"
     48 .LI
     49 .ITEM
     50 Capslock is a useless key in high quality space.
     51 It's now remapped.
     52 If you press it alone, it will function as escape, making vimcraft much more natural,
     53 but you can also hold it down and it will act as another Windows/super/mod key.
     54 .ITEM
     55 The menu button (usually between the right Alt and Ctrl) is an alternative Super/Mod button.
     56 This is to make one-handing on laptops easier.
     57 .LIST OFF
     58 .PP
     59 If you'd like to change any of these keyboard changes, you need only open and change the \f(CWremaps\fP script.
     60 All custom scripts in LARBS are located in \f(CW~/.local/bin/\fP.
     61 Actually, this should go without saying, but \fIeverything\fP here can easily be changed.
     62 Below in this document, there is information about where to change programs/components.
     63 .PP
     64 Additionally, while this isn't a part of the desktop environment, the default editing mode in the shell is using vi bindings.
     65 If you want to learn more of this, run \f(CWMod+Shift+E\fP and type and select the option for "vi mode in shell".
     66 This setting can be changed if you don't like it by deleting or commenting out the contents of \f(CW~/.config/inputrc\fP.
     67 .HEADING 2 "The Status Bar"
     68 .PP
     69 To the left, you'll see the numbers of your current workspace/tag(s).
     70 On the right, you'll see various system status notifiers, the date, volume, even music and local weather if possible, etc.
     71 Each module on the right of the status bar is a script located in \f(CW~/.local/bin/statusbar/\fP.
     72 You can see what they do and modify them from there.
     73 I'm sure you can figure it out.
     74 You can also right click on the module to see what it does.
     75 .PP
     76 The program dwmblocks is what is run to generate the statusbar from those scripts.
     77 You can edit its config/source code in \f(CW~/.local/src/dwmblocks/\fP to tell it what scripts/commands you want it to display.
     78 .HEADING 2 "Deeper Tutorials"
     79 .PP
     80 Press \f(CWmod+shift+e\fP at any time to get a menu of programs to watch videos about streaming directly from YouTube.
     81 You can also check the config files for programs which detail a lot of the specific bindings.
     82 .HEADING 1 "Key Bindings"
     83 .PP
     84 The window manager dwm abstractly orders all of your windows into a stack from most important to least based on when you last manipulated it.
     85 dwm is an easy to use window manager, but you should understand that it makes use of that stack layout.
     86 If you're not familiar, I recommend you press \f(CWMod+Shift+E\fP and select the "dwm" option to watch my brief tutorial (note that the bindings I discuss in the video are the default dwm binds, which are different (inferior) to those here).
     87 .PP
     88 Notice also the case sensitivity of the shortcuts\c
     89 .FOOTNOTE
     90 To type capital letters, hold down the \f(CWShift\fP key\(emthat might sound like an obvious and condescending thing to tell you, but there have literally been multiple people (Boomers) who have emailed me asking how to type a capital letter since caps lock isn't enabled.
     91 .FOOTNOTE OFF
     92  , Be sure you play around with these. Be flexible with the basic commands and the system will grow on you quick.
     93 .LI
     94 .ITEM
     95 \f(CWMod+Enter\fP \(en Spawn terminal (the default terminal is \f(CWst\fP; run \f(CWman st\fP for more.)
     96 .ITEM
     97 \f(CWMod+q\fP \(en Close window
     98 .ITEM
     99 \f(CWMod+d\fP \(en dmenu (For running commands or programs without shortcuts)
    100 .ITEM
    101 \f(CWMod+j/k\fP \(en Cycle thru windows by their stack order
    102 .ITEM
    103 \f(CWMod+Space\fP \(en Make selected window the master (or switch master with 2nd)
    104 .ITEM
    105 \f(CWMod+h/l\fP \(en Change width of master window
    106 .ITEM
    107 \f(CWMod+z/Z\fP \(en Increase/decrease gaps
    108 .ITEM
    109 \f(CWMod+D\fP \(en Toggle gaps
    110 .ITEM
    111 \f(CWMod+Shift+Space\fP \(en Make a window float (move and resize with \f(CWMod+\fPleft/right click).
    112 .ITEM
    113 \f(CWMod+b\fP \(en Toggle status bar
    114 .LIST OFF
    115 .HEADING 2 "Window layouts"
    116 .LI
    117 .ITEM
    118 \f(CWMod+t\fP \(en Tiling mode (active by default)
    119 .ITEM
    120 \f(CWMod+T\fP \(en Bottom stack mode (just like tiling, but master is on top)
    121 .ITEM
    122 \f(CWMod+f\fP \(en Fullscreen mode
    123 .ITEM
    124 \f(CWMod+F\fP \(en Floating (AKA normie) mode
    125 .ITEM
    126 \f(CWMod+y\fP \(en Fibbonacci spiral mode
    127 .ITEM
    128 \f(CWMod+Y\fP \(en Dwindle mode (similar to Fibonacci)
    129 .ITEM
    130 \f(CWMod+u\fP \(en Master on left, other windows in monocle mode
    131 .ITEM
    132 \f(CWMod+U\fP \(en Monocle mode (all windows fullscreen and cycle through)
    133 .ITEM
    134 \f(CWMod+i\fP \(en Center the master window
    135 .ITEM
    136 \f(CWMod+I\fP \(en Center and float the master window
    137 .ITEM
    138 \f(CWMod+o/O\fP \(en Increase/decrease the number of master windows
    139 .LIST OFF
    140 .HEADING 2 "Basic Programs"
    141 .LI
    142 .ITEM
    143 \f(CWMod+r\fP \(en lf (file browser/manager)
    144 .ITEM
    145 \f(CWMod+e\fP \(en neomutt (email) \(en Must be first configured by running \f(CWmw add\fP.
    146 .ITEM
    147 \f(CWMod+m\fP \(en ncmpcpp (music player)
    148 .ITEM
    149 \f(CWMod+w\fP \(en Web browser (Brave)
    150 .ITEM
    151 \f(CWMod+n\fP \(en newsboat (RSS feed reader)
    152 .ITEM
    153 \f(CWMod+a\fP \(en pulsemixer (audio system control)
    154 .ITEM
    155 \f(CWMod+W\fP \(en nmtui (for connecting to wireless internet)
    156 .ITEM
    157 \f(CWMod+v\fP \(en vimwiki (for notes)
    158 .ITEM
    159 \f(CWMod+Shift+Enter\fP \(en Show/hide dropdown terminal
    160 .LIST OFF
    161 .HEADING 2 "System"
    162 .LI
    163 .ITEM
    164 \f(CWMod+BackSpace\fP \(enChoose to lock screen, logout, shutdown, reboot, etc.
    165 .ITEM
    166 \f(CWMod+V\fP \(en Toggle xcompmgr (to remove transparency and window effects)
    167 .ITEM
    168 \f(CWMod+F1\fP \(en Show this document
    169 .ITEM
    170 \f(CWMod+F3\fP \(en Select screen/display to use
    171 .ITEM
    172 \f(CWMod+F5\fP \(en Update dwm's colorscheme if you have changed Xresources
    173 .ITEM
    174 \f(CWMod+F6\fP \(en Transmission torrent client (not installed by default)
    175 .ITEM
    176 \f(CWMod+F7\fP \(en Toggle on/off transmission client via dmenu
    177 .ITEM
    178 \f(CWMod+F8\fP \(en Check mail, if mutt-wizard is configured. (Run \f(CWmw add\fP to set up.)
    179 .ITEM
    180 \f(CWMod+F9\fP \(en Mount a USB drive/hard drive or Android
    181 .ITEM
    182 \f(CWMod+F10\fP \(en Unmount a non-essential drive or Android
    183 .ITEM
    184 \f(CWMod+`\fP \(en Select an emoji to copy to clipboard
    185 .ITEM
    186 \f(CWMod+Insert\fP \(en Show contents of clipboard/primary selection
    187 .LIST OFF
    188 .HEADING 2 "Audio"
    189 .PP
    190 I use ncmpcpp as a music player, which is a front end for mpd.
    191 .LI
    192 .ITEM
    193 \f(CWMod+m\fP \(en ncmpcpp, the music player
    194 .ITEM
    195 \f(CWMod+.\fP \(en Next track
    196 .ITEM
    197 \f(CWMod+,\fP \(en Previous track
    198 .ITEM
    199 \f(CWMod+<\fP \(en Restart track
    200 .ITEM
    201 \f(CWMod+>\fP \(en Toggle playlist looping
    202 .ITEM
    203 \f(CWMod+p\fP \(en Pause
    204 .ITEM
    205 \f(CWMod+M\fP \(en Mute all audio
    206 .ITEM
    207 \f(CWMod+-\fP \(en Decrease volume (holding shift increases amount)
    208 .ITEM
    209 \f(CWMod++\fP \(en Increase volume (holding shift increases amount)
    210 .ITEM
    211 \f(CWMod+[\fP \(en Back 10 seconds (holding shift increases amount)
    212 .ITEM
    213 \f(CWMod+]\fP \(en Forward 10 seconds (holding shift increases amount)
    214 .ITEM
    215 \f(CWMod+a\fP \(en pulsemixer (general volume sink/source control)
    216 .LIST OFF
    217 .HEADING 2 "Tags/Workspaces"
    218 .PP
    219 There are nine tags, active tags are highlighted in the top left.
    220 .LI
    221 .ITEM
    222 \f(CWMod+(Number)\fP \(en Go to that number tag
    223 .ITEM
    224 \f(CWMod+Shift+(Number)\fP \(en Send window to that tag
    225 .ITEM
    226 \f(CWMod+Tab\fP \(en Go to previous tag (may also use \f(CW\\\fP for Tab)
    227 .ITEM
    228 \f(CWMod+g\fP \(en Go to left tag
    229 .ITEM
    230 \f(CWMod+;\fP \(en Go to right tag
    231 .ITEM
    232 \f(CWMod+Left\fP \(en Move to workspace to the left
    233 .ITEM
    234 \f(CWMod+Right\fP \(en Move to workspace to the right
    235 .LIST OFF
    236 .HEADING 2 "Recording"
    237 .PP
    238 I use maim and ffmpeg to make different recordings of the desktop and audio.
    239 All of these recording shortcuts will output into \f(CW~\fP, and will not overwrite
    240 previous recordings as their names are based on their exact times.
    241 .LI
    242 .ITEM
    243 \f(CWPrintScreen\fP \(en Take a screenshot
    244 .ITEM
    245 \f(CWShift+PrintScreen\fP \(en Select area to screenshot
    246 .ITEM
    247 \f(CWMod+PrintScreen\fP \(en Opens dmenu menu to select kind of audio/video recording
    248 .ITEM
    249 \f(CWMod+Delete\fP \(en Kills any recording started in the above way.
    250 .ITEM
    251 \f(CWMod+Shift+c\fP \(en Toggles a webcam in the bottom right for screencasting.
    252 .ITEM
    253 \f(CWMod+ScrollLock\fP \(en Toggle screenkey (if installed) to show keypresses
    254 .LIST OFF
    255 .HEADING 2 "Other buttons"
    256 .PP
    257 I've mapped those extra buttons that some keyboards have (play and pause
    258 buttons, screen brightness, email, web browsing buttons, etc.) to what you
    259 would expect.
    260 .HEADING 1 "Configuration"
    261 .PP
    262 Dotfiles/settings files are located in \f(CW~/.config/\fP, note that dotfiles to programs not included in LARBS are there as well by requests of users. I do not necessarily maintain all these dotfiles, but they remain as legacy.
    263 .PP
    264 Suckless programs, dwm (the window manager), st (the terminal) and dmenu among others do not have traditional config files, but have their source code location in \f(CW~/.local/src/\fP.
    265 There you can modify their \f(CWconfig.h\fP files, then \f(CWsudo make install\fP to reinstall.
    266 (You'll have to restart the program to see its effects obviously.)
    267 .HEADING 1 "Frequently Asked Questions (FAQs)"
    268 .HEADING 2 "My keyboard isn't working as expected!"
    269 .PP
    270 As mentioned above, LARBS makes some keyboard changes with the \f(CWremaps\fP script.
    271 These settings may override your preferred settings, so you should open this file and comment out troublesome lines if you have issues.
    272 .HEADING 2 "My audio isn't working!"
    273 .PP
    274 On fresh install, the Linux audio system often mutes outputs.
    275 You may also need to set your preferred default output sink which you can do by the command line, or by selecting one with \f(CWpulsemixer\fP (\f(CWmod+a\fP).
    276 .HEADING 2 "How do I copy and paste?"
    277 .PP
    278 Copying and pasting is always program-specific on any system.
    279 In most graphical programs, copy and paste will be the same as they are on Windows: \f(CWctrl-c\fP and \f(CWctrl-v\fP.
    280 In the Linux terminal, those binds have other more important purposes, so you can run \f(CWman st\fP to see how to copy and paste in my terminal build.
    281 .PP
    282 Additionally, I've set vim to use the clipboard as the default buffer, which means when you yank or delete something in vim, it will be in your system clipboard as well, so you can \f(CWctrl-v\fP it into your browser instance, etc. You can also paste material copied from other programs into vim with the typical vim bindings.
    283 .HEADING 2 "How do I change the background/wallpaper?"
    284 .PP
    285 The system will always read the file \f(CW~/.config/wall.png\fP as the wallpaper.
    286 The script \f(CWsetbg\fP, if run on an image will set it as the persistent background.
    287 When using the file manager, you can simply hover over an image name and type \f(CWbg\fP and this will run \f(CWsetbg\fP.
    288 .HEADING 2 "How I change the colorscheme?"
    289 .PP
    290 LARBS no longer deploys Xresource by default, but check \f(CW~/.config/Xresources\fP for a list of color schemes you can activate or add your own. When you save the file, vim will automatically update the colorscheme. If you'd like these colors activated by default on login, there is a line in \f(CW~/.config/xprofile\fP you can uncomment to allow that.
    291 .PP
    292 Or, if you want to use \f(CWwal\fP to automatically generate colorschemes from your wallpapers, just install it and \f(CWsetbg\fP will automatically detect and run it on startup and wallpaper change.
    293 .HEADING 2 "How do I set up my email?"
    294 .PP
    295 LARBS comes with mutt-wizard, which gives the ability to receive and send all your email and keep an offline store of it all in your terminal, without the need for browser.
    296 You can add email accounts by running \f(CWmw add\fP.
    297 .PP
    298 Once you have successfully added your email address(es), you can open your mail with \f(CWneomutt\fP which is also bound to \f(CWMod+e\fP.
    299 You can sync your mail by pressing \f(CWMod+F8\fP and you can set a cronjob to sync mail every several minutes by running \f(CWmw cron\fP.
    300 .PP
    301 You may also want to install \f(CWpam-gnupg-git\fP, which can be set up to automatically unlock your GPG key on login, which will allow you avoid having put in a password to sync and send, all while keeping your password safe and encypted on your machine.
    302 .HEADING 2 "How do I set up my music?"
    303 .PP
    304 By default, mpd, the music daemon assumes that \f(CW~/Music\fP is your music directory.
    305 This can be changed in \f(CW~/.config/mpd/mpd.conf\fP.
    306 When you add music to your music folder, you may have to run \f(CWmpc up\fP in the terminal to update the database.
    307 mpd is controlled by ncmpcpp, which is accessible by \f(CWMod+m\fP.
    308 .HEADING 2 "How do I update LARBS?"
    309 .PP
    310 LARBS is deployed as a git repository in your home directory.
    311 You can use it as such to fetch, diff and merge changes from the remote repository.
    312 If you don't want to do that or don't know how to use git, you can actually just rerun the script (as root) and reinstall LARBS and it will automatically update an existing install if you select the same username.
    313 This will overwrite the original config files though, including changes you made for them, but this is an easier brute force approach that will also install any new dependencies.
    314 .HEADING 1 "Contact"
    315 .LI
    316 .ITEM
    317 .PDF_WWW_LINK "mailto:luke@lukesmith.xyz" "luke@lukesmith.xyz"
    318 \(en For questions!
    319 .ITEM
    320 .PDF_WWW_LINK "http://lukesmith.xyz" "https://lukesmith.xyz"
    321 \(en For stalking!
    322 .ITEM
    323 .PDF_WWW_LINK "https://lukesmith.xyz/donate" "https://lukesmith.xyz/donate"
    324 \(en To incentivize more development of LARBS!
    325 .ITEM
    326 .PDF_WWW_LINK "https://github.com/LukeSmithxyz" "My Github Page"
    327 \(en For the code behind it!
    328 .ITEM
    329 .PDF_WWW_LINK "http://lukesmith.xyz/rss.xml" "RSS"
    330 \(en For updates!
    331 .LIST OFF