dotfiles

[void/arch] linux dotfiles
git clone git://git.mdnr.space/dotfiles
Log | Files | Refs

larbs.mom (16451B)


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