297 lines
12 KiB
Text
297 lines
12 KiB
Text
---
|
|
title: A Friendly Guide to LARBS
|
|
author: Luke Smith ([https://lukesmith.xyz](https://lukesmith.xyz))
|
|
output: pdf_document
|
|
linkcolor: blue
|
|
---
|
|
|
|
Use vim keys (`h`/`j`/`k`/`l`) to navigate this document. Pressing `s` will fit
|
|
it to window width (`a` to revert). `K` and `J` zoom in and out. `Mod+f` to
|
|
toggle fullscreen. `q` to quit. (These are general zathura shortcuts.)
|
|
|
|
+ `Mod+F1` will show this document at any time.
|
|
+ By `Mod` I mean the Super Key, usually known as "the Windows Key."
|
|
|
|
Questions or suggestions? Email me at
|
|
[luke@lukesmith.xyz](mailto:luke@lukesmith.xyz).
|
|
|
|
# Welcome!
|
|
|
|
## Basic goals and principles of this system:
|
|
|
|
+ Naturalness -- Remove the border between mind and matter: everything
|
|
important should be as few keypresses as possible away from you, and you
|
|
shouldn't have to think about what you're doing. Immersion.
|
|
+ Economy -- Programs should be simple and light on system resources and highly
|
|
extensible. Because of this, many are terminal or small ncurses programs that
|
|
have all the magic inside of them.
|
|
+ Keyboard/vim-centrality -- All terminal programs (and other programs) use vim
|
|
keys when possible. Your hands never need leave the home row or thereabout.
|
|
+ Decentralization -- This system is a web of small, modifyiable and
|
|
replaceable programs that users can easily customize.
|
|
|
|
## General keyboard changes
|
|
|
|
+ Capslock is a useless key in high quality space. It's now remapped. If you
|
|
press it alone, it will function as escape, making vimcraft much more
|
|
natural, but you can also hold it down and it will act as another
|
|
Windows/super/mod key.
|
|
+ The menu button (usually between the right Alt and Ctrl) is an alternative
|
|
Super/Mod button. This is to make one-handing on my laptops easier.
|
|
+ The system also uses the US International keyboard by default. This allows
|
|
you to type a lot of characters in many different European languages.
|
|
|
|
If you'd like to change any of these keyboard changes, you need only open and
|
|
change `~/.scripts/remaps`. Actually, this should go without saying, but
|
|
*everything* here can easily be changed.
|
|
|
|
## The Status Bar
|
|
|
|
If you're new to i3, notice the status bar on the top of the screen. To the
|
|
left side, you'll see the numbers of your current workspace(s). On the right
|
|
side, you'll see various system status notifiers, the date, volume, even music
|
|
and local weather if possible etc. I'm sure you can figure it out. Several
|
|
modules will be click-sensitive, although if you're using my system as
|
|
indended, you probably won't be doing much clicking.
|
|
|
|
The i3blocks config is `~/.config/i3blocks/config`, which you can access by the
|
|
terminal shortcut `cfib`. Notice that the config file refers to several module
|
|
scripts in the `~/.scripts/` directory. You can read a summary of all of these
|
|
scripts in the file `~/.scripts/SCRIPTS.md`.
|
|
|
|
## Deeper Tutorials
|
|
|
|
In addition to this guide and reading the dotfiles of programs manually, you
|
|
can also get program-specific information by running the `getkeys` command.
|
|
This will give you the bindings of what program you want. You can also press
|
|
`Mod+E` (that's a capital `E`) to get be able to watch tutorial videos on
|
|
specific programs or concepts directly from YouTube.
|
|
|
|
# Key Bindings
|
|
|
|
All of the bindings below are in the file `~/.config/i3/config` (easily
|
|
accessible by typing `cfi` in the terminal) and can all be easily changed.
|
|
|
|
## Window basics
|
|
|
|
Notice the case sensitivity of the shortcuts.^[To type capital letters, hold
|
|
down the `Shift` key---that might sound like an obvious and consedcending 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.]
|
|
|
|
Be sure you play around with these. Be flexible with the basic commands and the
|
|
system will grow on you quick.
|
|
|
|
+ `Mod+Enter` -- Spawn terminal
|
|
+ `Mod+q/Q` -- Close window
|
|
+ `Mod+d` -- rofi (For running commands or programs without shortcuts)
|
|
+ `Mod+t` -- Toggle between spawning vertically and horizontally
|
|
+ `Mod+f` -- Fullscreen
|
|
+ `Mod+h/j/k/l` -- Move to different windows
|
|
+ `Mod+H/J/K/L` -- Move a window around
|
|
+ `Mod+Y/U/I/O` -- Resize windows
|
|
+ `Mod+/` -- Spawn vertical terminal
|
|
+ `Mod+'` -- Spawn horizontal terminal
|
|
+ `Mod+s/S` -- Increase/decrease inner gaps
|
|
+ `Mod+z/Z` -- Increase/decrease outer gaps
|
|
+ `Mod+D` -- Reduce gaps to 0 pixels
|
|
+ `Mod+T` -- Restore gaps to default (15 pixels)
|
|
+ `Mod+Shift+Space` -- Make a window float (you can still resize and move
|
|
floating windows with the same keys above)
|
|
+ `Mod+Space` -- Switch focus from a floating window to a non-floating one (or
|
|
vice versa)
|
|
+ `Mod+o` -- Make floating window sticky (will stay on active workspace)
|
|
+ `Mod+b` -- Toggle status bar
|
|
+ `Mod+B` -- Make window float in bottom left corner (good for video watched
|
|
intermittently)
|
|
|
|
## Basic Programs
|
|
|
|
*Note:* LARBS will install nearly all of these programs by default, but some
|
|
only come if you chose an extra option. Naturally, you can use `packer` to look
|
|
for and install any you want to add.
|
|
|
|
+ `Mod+r` -- ranger (file browser/manager)
|
|
+ `Mod+e` -- mutt (email)
|
|
+ `Mod+m` -- ncmpcpp (music player)
|
|
+ `Mod+a` -- R/Python calculator (be sure to close with Mod+a for reusability)
|
|
+ `Mod+i` -- htop (system info)
|
|
+ `Mod+n` -- newsboat (RSS feed reader)
|
|
+ `Mod+y` -- calcurse (calendar and schedule)
|
|
+ `Mod+u` -- "Dropdown" terminal (close with Mod+u for reusability)
|
|
+ `Mod+A` -- pulsemixer (audio system control)
|
|
+ `Mod+w/W` -- Web Browser
|
|
+ `Mod+G` -- GIMP (for general image manipulation)
|
|
|
|
## System
|
|
|
|
+ `Mod+R` -- ranger as root user
|
|
+ `Mod+x` -- i3lock (Enter password to return)
|
|
+ `Mod+X` -- shutdown (will give a dmenu confirm prompt)
|
|
+ `Mod+Shift+Backspace` -- reboot (will give a dmenu confirm prompt)
|
|
+ `Mod+Shift+Escape` -- exit i3 (will give a dmenu confirm prompt)
|
|
+ `Mod+F1` -- Shows this document
|
|
+ `Mod+F2` -- Refresh i3
|
|
+ `Mod+F3` -- Select screen/display to use
|
|
+ `Mod+F4` -- Hibernate
|
|
+ `Mod+F5` -- Reset Network Manager, search for new networks
|
|
+ `Mod+F6` -- transmission torrent client (cli)
|
|
+ `Mod+F7` -- Check mail, if
|
|
[mutt-wizard](https://github.com/lukesmithxyz/mutt-wizard) is installed
|
|
+ `Mod+F9` -- Mount a drive/partition
|
|
+ `Mod+F10` -- Unmount a drive/partition (does not umount `/`, `/home` or
|
|
`/boot`)
|
|
+ `Mod+F12` -- Wifi-menu for selecting the wireless internet source.
|
|
|
|
`Mod+7` and `Mod+11` are currently unmapped. If you have any ideas that would
|
|
benefit users as the default, feel free to tell me.
|
|
|
|
## Audio
|
|
|
|
I use ncmpcpp as a music player, which is a front end for mpd. If you prefer
|
|
cmus or mocp, I have commented out shortcuts you can activate for it instead in
|
|
the i3 config.
|
|
|
|
+ `Mod+m` -- ncmpcpp music player
|
|
+ `Mod+.` -- Next track
|
|
+ `Mod+,` -- Previous track
|
|
+ `Mod+<` -- Restart track
|
|
+ `Mod+p` -- Pause
|
|
+ `Mod+M` -- Mute all audio
|
|
+ `Mod+v` -- visualizer
|
|
+ `Mod+-` -- Decrease volume (holding shift increases amount)
|
|
+ `Mod++` -- Increase volume (holding shift increases amount)
|
|
+ `Mod+[` -- Back 10 seconds (holding shift increases amount)
|
|
+ `Mod+]` -- Forward 10 seconds (holding shift increases amount)
|
|
+ `Mod+A` -- ncpamixer (general volume sink/source control)
|
|
|
|
## Workspaces
|
|
|
|
There are ten workspaces. They work just like those in vanilla i3 with some
|
|
additions.
|
|
|
|
+ `Mod+(Number)` -- Go to that number workspace
|
|
+ `Mod+Shift+(Number)` -- Send window to that workspace
|
|
+ `Mod+Tab` -- Go to previous workspace
|
|
+ `Mod+g` -- Go to left workspace
|
|
+ `Mod+;` -- Go to right workspace
|
|
+ `Mod+Shift+Delete` -- "Porno-mode" Press this key sequence if you want to hide
|
|
what you have on your screen. Moves to a totally new workspace, mutes sound,
|
|
pauses music and brings up distraction windows.
|
|
|
|
## Recording
|
|
|
|
I use scrot and ffmpeg to make different recordings of the desktop and audio.
|
|
All of these recording shortcuts will output into `~`, and will not overwrite
|
|
previous recordings.
|
|
|
|
+ `PrintScreen` -- Take a scrot screenshot
|
|
+ `Shift+Print` Screen -- Take a scrot screenshot of only selected window
|
|
+ `Mod+Print` Screen -- Opens dmenu menu to select kind of audio/video recording
|
|
+ `Mod+ScrollLock` -- Turn on and off screenkey (if installed) for visual typing display
|
|
+ `Mod+Delete` -- kills ffmpeg, thus ending recordings
|
|
|
|
Each of the recording scripts are located in `~/.scripts`. You can check them
|
|
out or modify them if needed.
|
|
|
|
## Other buttons
|
|
|
|
I've mapped those extra buttons that some keyboards have (play and pause
|
|
buttons, email, webbrowsing buttons, etc.) to what you would expect.
|
|
|
|
|
|
# Special traits of this system
|
|
|
|
## Easy config access
|
|
|
|
Open a terminal and type `cfc`. This will open a file where you will see
|
|
customizable pairs of key shortcuts and config files. Enter any of these
|
|
shortcuts in bash or ranger to immediately open the file in vim.
|
|
|
|
You may add new entries here and they will be refreshed when you save the file
|
|
in vim. This will take effect immediately once you start a new instance of bash
|
|
or ranger.
|
|
|
|
## Folder and config shortcuts
|
|
|
|
Open a terminal and type `cff`. This opens a file when you can keep and create
|
|
folder shortcuts. There are only a few here now, because I don't know what your
|
|
folder structure is going to look like, but on my machine, I have 109 and
|
|
growing.
|
|
|
|
Each line has a shortcut key/keys and its target. These can be used in serveral
|
|
applications. In bash, simply press `d`, the shortcut for `~/Documents` and you
|
|
will cd there (and automatically `ls -a`).
|
|
|
|
ranger works similarly. When in ranger, just press `g` then the shortcut of the
|
|
folder you want to go to. You may also press `t` plus the shortcut to open a
|
|
new tab there. `m` plus the shortcut moves the selected files to the folder and
|
|
`Y` copies them there. **Get good at this. It will make management of even the
|
|
most complex file system easy.**
|
|
|
|
Lastly qutebrowser implements these shortcuts as well. When you see a file or
|
|
image you want to download, press `;` followed by the folder shortcut and
|
|
qutebrowser will let you select the file with its hint system. The file will
|
|
then download to the directory you chose.
|
|
|
|
## Dynamically constructed configs
|
|
|
|
Each time you save changes to either the config shortcut file or the folder
|
|
shortcut file in vim, vim will automatically run a bash script that updates
|
|
your bash/ranger config, allowing you to use your new shortcuts in your next
|
|
instance of bash/ranger or after resourcing your rc files.
|
|
|
|
# Other Housekeeping
|
|
|
|
## How do I change the background/wallpaper?
|
|
|
|
The easiest way is to use ranger, navigate to the file you want as your
|
|
background, and press `bg`. To be specific, i3 will always be looking to the
|
|
file in `~/.config/wall.png` for the wallpaper, this ranger command copies the
|
|
given file there and reruns feh to update it.
|
|
|
|
## How do I set up my email?
|
|
|
|
1. Create a GPG private/public key pair if you haven't already.
|
|
2. Download the mutt-wizard repository to the mutt config directory:
|
|
|
|
```
|
|
git clone https://github.com/lukesmithxyz/mutt-wizard ~/.config/mutt
|
|
```
|
|
|
|
3. There run `mutt-wizard.sh` and follow the directions, specifically:
|
|
a. Add an account.
|
|
b. Run `offlineimap -o` in the terminal.
|
|
c. Select the "Autodetect mailboxes" option.
|
|
|
|
You should then be able to open your mail in mutt with Mod+e. And this is
|
|
somewhat of a miracle considering all of the moving pieces that have come
|
|
together to make this happen. Honestly, people give me all this credit for
|
|
making LARBS, but the mutt-wizard is probably my favorite work.
|
|
|
|
You can, through the mutt-wizard, schedule automatic mail checks every several
|
|
minutes. You can also press `Mod-F8` at any time to check for new mail in your
|
|
accounts. You might also want to run `notmuch setup` to set `notmuch` up as a
|
|
mailindexer. This will allow quick searches of your mail in mutt with `ctrl+f`.
|
|
The mailsync script will update the notmuch database once you do this.
|
|
|
|
## How do I set up my music?
|
|
|
|
By default, mpd, the music daemon assumes that `~/Music` is your music
|
|
directory. This can be changed in `~/.config/mpd/mpd.conf`. When you add music
|
|
to your music folder, you may have to run `mpc up` in the terminal to update
|
|
the database. mpd is controled by ncmpcpp, which is accessible by Mod+m.
|
|
|
|
# Contact
|
|
|
|
+ [luke@lukesmith.xyz](mailto:luke@lukesmith.xyz) -- For questions!
|
|
|
|
+ [https://lukesmith.xyz](http://lukesmith.xyz) -- For stalking!
|
|
|
|
+ [PayPal](https://paypal.me/LukeMSmith) -- For gratitude!
|
|
|
|
+ [Patreon](https://patreon.com/lukesmith) -- For support!
|
|
|
|
+ [My Github Page](https://github.com/LukeSmithxyz) -- For the code behind it!
|
|
|
|
+ [RSS](http://lukesmith.xyz/rss.xml) -- For even better updates!
|