dwm

Luke's build of suckless's dwm
Log | Files | Refs | README | LICENSE

larbs.mom (15546B)


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