summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.bash_profile7
-rw-r--r--.config/i3/config144
-rw-r--r--.config/i3/i3_guide.rmd294
-rw-r--r--.config/i3blocks/config20
-rw-r--r--.config/newsboat/config6
-rw-r--r--.config/newsboat/urls2
-rw-r--r--.larbs/.pacupgrade1
-rw-r--r--.larbs/getkeys/calcurse10
-rw-r--r--.larbs/getkeys/feh14
-rw-r--r--.larbs/getkeys/i311
-rw-r--r--.larbs/getkeys/mutt34
-rw-r--r--.larbs/getkeys/ncmpcpp20
-rw-r--r--.larbs/getkeys/newsboat22
-rw-r--r--.larbs/getkeys/ranger35
-rw-r--r--.larbs/getkeys/zathura18
-rw-r--r--.larbs/tutorialvids10
-rwxr-xr-x.scripts/getbib15
-rwxr-xr-x.scripts/getkeys12
-rwxr-xr-x.scripts/i3mail2
-rwxr-xr-x.scripts/i3mpd2
-rwxr-xr-x.scripts/i3pacman8
-rwxr-xr-x.scripts/i3torrent7
-rwxr-xr-x.scripts/i3volume2
-rwxr-xr-x.scripts/i3weather4
-rwxr-xr-x.scripts/samedir27
-rwxr-xr-x.scripts/tutorialvids3
-rw-r--r--.vimrc202
-rw-r--r--.xinitrc1
28 files changed, 621 insertions, 312 deletions
diff --git a/.bash_profile b/.bash_profile
index 5bd196d..e277fc1 100644
--- a/.bash_profile
+++ b/.bash_profile
@@ -7,4 +7,9 @@
export PATH=$PATH:$HOME/.scripts
export EDITOR="vim"
export TERMINAL="st"
-export BROWSER="qutebrowser"
+export BROWSER="firefox"
+
+# Uncomment lines below to autostart i3 when logged in:
+#if [[ "$(tty)" = "/dev/tty1" ]]; then
+ #pgrep i3 || exec startx
+#fi
diff --git a/.config/i3/config b/.config/i3/config
index 4369632..e07752b 100644
--- a/.config/i3/config
+++ b/.config/i3/config
@@ -1,79 +1,103 @@
# vim: filetype=i3
-# _ _ ____ _ _ _ _ _ _____ ____ __ _
-# | | _ _| | _____ / ___| _ __ ___ (_) |_| |__ ( )___ (_)___ / / ___|___ _ __ / _(_) __ _
-# | | | | | | |/ / _ \ \___ \| '_ ` _ \| | __| '_ \|// __| | | |_ \ | | / _ \| '_ \| |_| |/ _` |
-# | |__| |_| | < __/ ___) | | | | | | | |_| | | | \__ \ | |___) | | |__| (_) | | | | _| | (_| |
-# |_____\__,_|_|\_\___| |____/|_| |_| |_|_|\__|_| |_| |___/ |_|____/ \____\___/|_| |_|_| |_|\__, |
- # |___/
-
-# This is Luke Smith's i3-gaps configuration file.
-# Me: http://lukesmith.xyz
+# _ _ ____ ____ ____
+# | | / \ | _ \| __ ) ___|
+# | | / _ \ | |_) | _ \___ \
+# | |___ / ___ \| _ <| |_) |__) |
+# |_____/_/ \_\_| \_\____/____/
+#
+# File originally by Luke Smith
+# Website: http://lukesmith.xyz
# Email: luke@lukesmith.xyz
# YouTube: https://youtube.com/c/LukeSmithxyz
# Github: https://github.com/LukeSmithxyz
# Be sure that you have your $BROWSER environmental variable set to your favorite browser.
-# E.g., put `export BROWSER="firefox"` into your bash_profile
+# E.g., put `export BROWSER="firefox"` into your ~/.bash_profile
# #---Basic Definitions---# #
-#Needed for i3-gaps
+# Needed for i3-gaps
for_window [class="^.*"] border pixel 3
gaps inner 15
gaps outer 15
-font pango:mono 12
set $mod Mod4
set $term --no-startup-id st
set $stoprec --no-startup-id killrecording
-exec --no-startup-id rm -f ~/.larbs/.recording
+set $shutdown sudo shutdown -h now
+set $reboot sudo reboot
+set $netrefresh --no-startup-id sudo systemctl restart NetworkManager
+set $hibernate sudo systemctl suspend
# #---Starting External Scripts---# #
-#Setting the background:
+# Setting the background:
+#exec_always --no-startup-id wal -i ~/.config/wall.png
exec_always --no-startup-id feh --bg-scale ~/.config/wall.png
-#Starts dunst for notifications:
+# Starts dunst for notifications:
exec --no-startup-id dunst
-#Music player daemon:
+# Music player daemon:
exec --no-startup-id mpd
-#Torrent daemon:
-exec --no-startup-id transmission-daemon
-#Composite manager:
+# Torrent daemon:
+#exec --no-startup-id transmission-daemon
+# Composite manager:
exec --no-startup-id compton --xrender-sync-fence
-#Launch Polybar where appropriate:
+# Launch Polybar where appropriate:
#exec_always --no-startup-id ~/.scripts/polybar_launch
-#Runs the key remapping scripts
+# Runs the key remapping scripts
exec --no-startup-id ~/.scripts/remaps
-#Unclutter makes the mouse invisible after a brief period
+# Unclutter makes the mouse invisible after a brief period
exec --no-startup-id unclutter
-#Network Manager applet
+# Network Manager applet
exec --no-startup-id nm-applet
+# Run the script to update the mpd i3block on change.
+exec --no-startup-id "pgrep -x i3mpdupdate || i3mpdupdate"
+# Remove recording icon if not properly closed on last shutdown.
+exec --no-startup-id rm -f ~/.larbs/.recording
+
+# Set Xresources colors:
+set_from_resource $darkblack color0 #000000
+set_from_resource $black color8 #000000
+set_from_resource $darkred color1 #000000
+set_from_resource $red color9 #000000
+set_from_resource $darkgreen color2 #000000
+set_from_resource $green color10 #000000
+set_from_resource $darkyellow color3 #000000
+set_from_resource $yellow color11 #000000
+set_from_resource $darkblue color4 #000000
+set_from_resource $blue color12 #000000
+set_from_resource $darkmagenta color5 #000000
+set_from_resource $magenta color13 #000000
+set_from_resource $darkcyan color6 #000000
+set_from_resource $cyan color14 #000000
+set_from_resource $darkwhite color7 #000000
+set_from_resource $white color15 #000000
+set $transparent #00000000
+
+# BORDER BACKGROUND TEXT INDICATOR CHILD_BORDER
+client.focused $red $red $magenta $darkmagenta $darkblue
+client.unfocused $transparent $blue $white $darkblue $transparent
+client.focused_inactive $transparent $blue $white $darkblue $transparent
+client.urgent $darkred $darkred $black $darkred $darkred
+client.background $black
bar {
+ font pango:mono 11
+ colors {
+ background $darkblack
+ statusline $darkwhite
+ separator $cyan
+ focused_workspace $blue $darkblue $darkwhite
+ active_workspace $blue $blue $darkwhite
+ inactive_workspace $darkblack $darkblack $white
+ urgent_workspace $darkblack $darkblack $white
+ }
status_command i3blocks
position top
mode dock
modifier None
}
-# Run the script to update the mpd i3block on change.
-exec --no-startup-id "pgrep i3mpdupdate || i3mpdupdate"
-
-#OPENRC
-#set $shutdown sudo openrc-shutdown -p
-#set $reboot sudo openrc-shutdown -r
-#set $netrefresh --no-startup-id sudo rc-service NetworkManager restart
-
-#RUNIT
-#set $shutdown sudo shutdown -h now
-#set $reboot sudo reboot
-#set $netrefresh --no-startup-id sudo sv restart NetworkManager
-
-#SYSTEMD
-set $shutdown sudo shutdown -h now
-set $reboot sudo reboot
-set $netrefresh --no-startup-id sudo systemctl restart NetworkManager
-set $hibernate sudo systemctl suspend
# #---Basic Bindings---# #
bindsym $mod+Return exec $term
-##bindsym $mod+Shift+Return
+bindsym $mod+Shift+Return exec --no-startup-id samedir
bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle
@@ -98,7 +122,7 @@ bindsym $mod+w exec --no-startup-id $BROWSER
bindsym $mod+Shift+w exec --no-startup-id $BROWSER
bindsym $mod+e exec $term -e neomutt
-##bindsym $mod+Shift+e
+bindsym $mod+Shift+e exec --no-startup-id tutorialvids
bindsym $mod+r exec $term -e ranger
bindsym $mod+Shift+r exec $term -e sudo ranger /
@@ -118,12 +142,11 @@ bindsym $mod+Shift+i exec --no-startup-id "bash ~/.scripts/i3resize up"
bindsym $mod+o sticky toggle
bindsym $mod+Shift+o exec --no-startup-id "bash ~/.scripts/i3resize right"
-
bindsym $mod+p exec --no-startup-id lmc toggle
#bindsym $mod+Shift+p
bindsym $mod+a [instance="math"] scratchpad show; [instance="math"] move position center
-bindsym $mod+Shift+a exec $term -e ncpamixer
+bindsym $mod+Shift+a exec $term -e pulsemixer
bindsym $mod+s gaps inner current plus 5
bindsym $mod+Shift+s gaps inner current minus 5
@@ -131,8 +154,12 @@ bindsym $mod+Shift+s gaps inner current minus 5
bindsym $mod+d exec --no-startup-id dmenu_run
bindsym $mod+Shift+d gaps inner current set 0; gaps outer current set 0
+set $freeze Distraction-free mode (mod+shift+esc to exit)
+mode "$freeze" { bindsym $mod+Shift+Escape mode "default"
+}
+
bindsym $mod+f fullscreen toggle
-##bindsym $mod+Shift+f
+bindsym $mod+Shift+f mode "$freeze"
bindsym $mod+g workspace prev
bindsym $mod+Shift+g exec --no-startup-id gimp; workspace $ws5
@@ -159,7 +186,7 @@ bindsym $mod+c exec --no-startup-id camtoggle
##bindsym $mod+Shift+c
bindsym $mod+v exec $term -e ncmpcpp -s visualizer
-bindsym $mod+Shift+v exec projectM-pulseaudio
+bindsym $mod+Shift+v exec --no-startup-id projectM-pulseaudio
bindsym $mod+b bar mode toggle
bindsym $mod+Shift+b floating toggle; sticky toggle; exec --no-startup-id bottomleft
@@ -170,7 +197,6 @@ bindsym $mod+n exec $term -e newsboat
bindsym $mod+m exec --no-startup-id st -e ncmpcpp
bindsym $mod+Shift+m exec --no-startup-id lmc mute
-
# #---Workspace Bindings---# #
bindsym $mod+Home workspace $ws1
bindsym $mod+Shift+Home move container to workspace $ws1
@@ -229,17 +255,11 @@ bindsym $mod+Shift+0 move container to workspace $ws10
for_window [class="Pinentry"] sticky enable
for_window [class="sent"] border pixel 0px
for_window [class="Blender"] move to workspace $ws6
-workspace $ws6 gaps inner 0
-workspace $ws6 gaps outer 0
for_window [class="marble"] move to workspace $ws7
for_window [title="GIMP Startup"] move workspace $ws5
for_window [class="Gimp"] move workspace $ws5
-workspace $ws5 gaps inner 0
-workspace $ws5 gaps outer 0
-for_window [window_role="gimp-dock"] floating disable; move left; resize shrink width 50 px or 50ppt
-for_window [window_role="gimp-toolbox"] floating disable; move right; resize grow width 30 px or 30ppt
for_window [window_role="GtkFileChooserDialog"] resize shrink height 10 px
-for_window [instance="dl"] move workspace $ws10
+for_window [title="Default - Wine desktop"] floating enable
# First I have a tmux window used for background scripts.
# I'll later bind this to mod+u.
@@ -250,8 +270,6 @@ for_window [instance="dropdown"] border pixel 5
# Runs the tmuxinit script, which searches for an earlier tmux instance,
# otherwise starts a new one (to prevent multiple dropdown sessions).
exec --no-startup-id $term -n dropdown -e tmuxinit
-# Runs neofetch on first tmux screen if installed.
-exec_always --no-startup-id "tmux send-keys -t 0:0 'clear && neofetch 2>/dev/null' Enter"
# Then I have a window running R I use for basic arithmetic
# I'll later bind this to mod+a.
@@ -261,14 +279,6 @@ for_window [instance="math"] move scratchpad
for_window [instance="math"] border pixel 5
exec --no-startup-id $term -n math -f mono:pixelsize=24 -e dropdowncalc
-# Bindings to make the webcam float and stick.
-for_window [title="mpvfloat"] floating enable
-for_window [title="mpvfloat"] sticky enable
-for_window [title="mpvfloat"] border pixel 0
-no_focus [title="mpvfloat"]
-
-for_window [title="Default - Wine desktop"] floating enable
-
# #---Function Buttons---# #
bindsym $mod+F1 exec --no-startup-id zathura ~/.config/i3/i3_guide.pdf
bindsym $mod+F2 restart
@@ -283,7 +293,6 @@ bindsym $mod+F10 exec --no-startup-id dmenuumount
##bindsym $mod+F11
##bindsym $mod+F12
-
# #---Arrow Keys---# #
bindsym $mod+Left focus left
bindsym $mod+Down focus down
@@ -294,7 +303,6 @@ bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
-
# #---Media Keys---# #
# Volume keys
@@ -333,7 +341,7 @@ bindsym XF86PowerOff exec --no-startup-id prompt "Are you sure you want to shut
##bindsym XF86Cut exec
##bindsym XF86MenuKB exec
bindsym XF86Calculator exec $term -e R -q
-bindsym XF86Sleep exec sudo zzz
+bindsym XF86Sleep exec $hibernate
##bindsym XF86WakeUp exec
bindsym XF86Explorer exec $term -e ranger
##bindsym XF86Send exec
diff --git a/.config/i3/i3_guide.rmd b/.config/i3/i3_guide.rmd
index a6fae66..3d17662 100644
--- a/.config/i3/i3_guide.rmd
+++ b/.config/i3/i3_guide.rmd
@@ -5,204 +5,268 @@ output: pdf_document
linkcolor: blue
---
-Use vim keys (h/j/k/l) to navigate this document. Pressing W will fit it to window width. + and - zoom in and out. f to toggle fullscreen. q to quit. (These are general mupdf shortcuts.)
+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 mupdf shortcuts.)
-+ Mod+F1 will show this document at any time.
-+ By "Mod" I mean the Super Key, usually known as "the Windows Key."
++ `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).
+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.
++ 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 rice also uses the US International keyboard by default. This allows you to type a lot of characters in many different European languages.
++ 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.
+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.
+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.
-i3blocks config: `cfib`: `~/.i3blocks`
+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.
# Key Bindings
-All of the bindings below are in `~/.config/i3/config` (accessible by typing `cfi` in the terminal) and can all be easily changed.
+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.
-Be sure you play around with these. Be flexible with the basic commands and the rice will grow on you quick.
+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 or 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)
++ `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.
+*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 -- ncpamixer (audio system control)
-+ mod+w -- wifi-menu (accessing wifi networks)
-
-## Larger programs
-
-+ Mod+W -- qutebrowser
-+ Mod+B -- Blender (video and 3d editor)
-+ Mod+G -- GIMP (for general image manipulation)
-+ Mod+P -- MyPaint (for light sketching)
++ `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+F9 -- Mount a drive/partition
-+ Mod+F10 -- Unmount a drive/partition (does not umount `/`, `/home` or `/boot`)
++ `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+F9` -- Mount a drive/partition
++ `Mod+F10` -- Unmount a drive/partition (does not umount `/`, `/home` or
+ `/boot`)
## 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.
+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)
++ `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.
+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.
++ `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.
+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.
-+ Print Screen -- 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
++ `Print` Screen -- 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.
+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.
+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 my rice
+# 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.
+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.
+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 81 and growing.
+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 81 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`).
+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.**
+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.
+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.
+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.
+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. Type `muttwizard` in the terminal and follow the directions, specifically:
- a. Add an account.
- b. Run `offlineimap -o` in the terminal.
- c. Select the "Autodetect mailboxes" option.
+ 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 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 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.
+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.
## 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.
+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!
++ [luke@lukesmith.xyz](mailto:luke@lukesmith.xyz) -- For questions!
-[http://lukesmith.xyz](http://lukesmith.xyz) -- For stalking!
++ [http://lukesmith.xyz](http://lukesmith.xyz) -- For stalking!
-[PayPal](https://paypal.me/LukeMSmith) -- For gratitude!
++ [PayPal](https://paypal.me/LukeMSmith) -- For gratitude!
-[Patreon](https://patreon.com/lukesmith) -- For support!
++ [Patreon](https://patreon.com/lukesmith) -- For support!
-[My Github Page](https://github.com/LukeSmithxyz) -- For the code behind it!
++ [My Github Page](https://github.com/LukeSmithxyz) -- For the code behind it!
-[Twitter](https://twitter.com/lukesfiat) -- For updates!
++ [Twitter](https://twitter.com/lukesfiat) -- For updates!
-[RSS](http://lukesmith.xyz/rss.xml) -- For even better updates!
++ [RSS](http://lukesmith.xyz/rss.xml) -- For even better updates!
diff --git a/.config/i3blocks/config b/.config/i3blocks/config
index 498d798..b1c778d 100644
--- a/.config/i3blocks/config
+++ b/.config/i3blocks/config
@@ -11,37 +11,47 @@ signal=9
label=🎼
command=i3mpd
interval=once
-align=left
signal=11
+[pacman]
+label=📦
+command=i3pacman
+interval=once
+signal=8
+
+#[torrents]
+#command=i3torrent
+#interval=20
+#signal=7
+
[weather]
command=i3weather
interval=3600
[mail]
-label=📮
+label=📬
command=i3mail
interval=180
-align=left
signal=12
[volume]
interval=once
command=i3volume
-markup=pango
signal=10
[iface]
+label=🌐
#instance=wlan0
color=#00FF00
interval=10
[wifi]
+label=📶
#instance=wlp3s0
interval=10
[battery]
-command=acpi | cut -d " " -f3-5 | sed -e "s/,//g;s/Discharging/🔋/;s/Charging/🔌/;s/Unknown/❓/;s/Full/⚡/;s/ 0*/ /g;s/ :/ /g"
+command=echo $(cat /sys/class/power_supply/BAT0/status | sed -e "s/,//g;s/Discharging/🔋/;s/Charging/🔌/;s/Unknown/❓/;s/Full/⚡/;s/ 0*/ /g;s/ :/ /g") $(cat /sys/class/power_supply/BAT0/capacity | sed -e 's/$/%/')
interval=5
[time]
diff --git a/.config/newsboat/config b/.config/newsboat/config
index 790014f..85b0156 100644
--- a/.config/newsboat/config
+++ b/.config/newsboat/config
@@ -1,4 +1,4 @@
-#auto-reload yes
+auto-reload yes
external-url-viewer "urlview"
@@ -30,9 +30,9 @@ color article cyan default
browser linkhandler
macro , open-in-browser
-macro t set browser "tsp youtube-dl"; open-in-browser ; set browser linkhandler
+macro t set browser "tsp youtube-dl --add-metadata -ic"; open-in-browser ; set browser linkhandler
+macro a set browser "tsp youtube-dl --add-metadata -xic"; open-in-browser ; set browser linkhandler
macro v set browser "setsid nohup mpv"; open-in-browser ; set browser linkhandler
-macro y set browser "setsid nohup spawndl"; open-in-browser ; set browser linkhandler
macro w set browser "w3m"; open-in-browser ; set browser linkhandler
macro p set browser "dmenuhandler"; open-in-browser ; set browser linkhandler
# c copies the link to the clipboard.
diff --git a/.config/newsboat/urls b/.config/newsboat/urls
index 5929580..7e26775 100644
--- a/.config/newsboat/urls
+++ b/.config/newsboat/urls
@@ -1,3 +1,3 @@
http://lukesmith.xyz/rss.xml
-https://forum.lukesmith.xyz/syndication.php?limit=15
+https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "~Luke Smith (YouTube)"
https://www.archlinux.org/feeds/news/ "tech"
diff --git a/.larbs/.pacupgrade b/.larbs/.pacupgrade
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/.larbs/.pacupgrade
@@ -0,0 +1 @@
+
diff --git a/.larbs/getkeys/calcurse b/.larbs/getkeys/calcurse
new file mode 100644
index 0000000..a20e624
--- /dev/null
+++ b/.larbs/getkeys/calcurse
@@ -0,0 +1,10 @@
+ _
+ ___ __ _| | ___ _ _ _ __ ___ ___
+ / __/ _` | |/ __| | | | '__/ __|/ _ \
+| (_| (_| | | (__| |_| | | \__ \ __/
+ \___\__,_|_|\___|\__,_|_| |___/\___|
+
+calcurse is the calendar and schedule manager.
+ tab - Switch from calendar to todo to appointments
+ h/j/k/l - Move left/down/up/right
+ Most other bindings are listed in the program.
diff --git a/.larbs/getkeys/feh b/.larbs/getkeys/feh
new file mode 100644
index 0000000..ac7f627
--- /dev/null
+++ b/.larbs/getkeys/feh
@@ -0,0 +1,14 @@
+ __ _
+ / _| ___| |__
+| |_ / _ \ '_ \
+| _| __/ | | |
+|_| \___|_| |_|
+
+feh is the image viewer.
+ h/j/k/l - Pan image
+ J/K - Zoom out/in
+ f - Fullscreen
+ H/L - Previous/next image in list/directory
+ r - Reload image if changed
+ ! - Zoom to fill window
+ w - Zoom to fit window
diff --git a/.larbs/getkeys/i3 b/.larbs/getkeys/i3
new file mode 100644
index 0000000..ddfaad3
--- /dev/null
+++ b/.larbs/getkeys/i3
@@ -0,0 +1,11 @@
+ _ _____
+(_)___ /
+| | |_ \
+| |___) |
+|_|____/
+
+i3 is the window manager.
+
+The bindings for i3 can be accessed in LARBS by typing Super+F1.
+
+This file is in `~/.config/i3/i3_guide.pdf`.
diff --git a/.larbs/getkeys/mutt b/.larbs/getkeys/mutt
new file mode 100644
index 0000000..41069ff
--- /dev/null
+++ b/.larbs/getkeys/mutt
@@ -0,0 +1,34 @@
+ _ _
+ _ __ ___ _ _| |_| |_
+| '_ ` _ \| | | | __| __|
+| | | | | | |_| | |_| |_
+|_| |_| |_|\__,_|\__|\__|
+
+mutt is the email client.
+ j/k - Move down/up
+ d/u - Move down/up half page
+ gg - Move to top
+ v - View/download attachments
+ G - Move to last message
+ r - Reply
+ R - Reply all
+ S - Sync/save mailbox changes
+ D - Mark message for deletion
+ U - Unmark message for deletion
+ ctrl-u - Seek urls
+ ,, - Seek urls
+ ctrl-f - Search mail indexed with notmuch
+ ctrl-r - Mark all as read
+ l - Limit mail
+ o - Run quick sync with offlineimap
+ O - Run full sync with offlineimap
+ C - Copy a message to another mailbox
+ M - Move a message to another mailbox
+ B - Hide/reveal sidebar
+ ctrl-j/k - Move down/up on sidebar
+ ctrl-o - Open box selected in sidebar
+ gi - Go to inbox
+ gs - Go to sent mail
+ gd - Go to drafts
+ gS - Go to spam
+ i# - Go to a different account (# is the number of the account)
diff --git a/.larbs/getkeys/ncmpcpp b/.larbs/getkeys/ncmpcpp
new file mode 100644
index 0000000..63fa324
--- /dev/null
+++ b/.larbs/getkeys/ncmpcpp
@@ -0,0 +1,20 @@
+
+ _ __ ___ _ __ ___ _ __ ___ _ __ _ __
+| '_ \ / __| '_ ` _ \| '_ \ / __| '_ \| '_ \
+| | | | (__| | | | | | |_) | (__| |_) | |_) |
+|_| |_|\___|_| |_| |_| .__/ \___| .__/| .__/
+ |_| |_| |_|
+
+ncmpcpp is the music player.
+ h/j/k/l - Move left/down/up/right
+ d/u - Down/up page
+ a - Add song(s) to playlist
+ c - Clear playlist
+ g - Go to top
+ G - Go to bottom
+ p - Pause
+ m - Media library
+ f - Music sorted by directory structure
+ t - Tag editor
+ s - Search
+ v - Visualizer
diff --git a/.larbs/getkeys/newsboat b/.larbs/getkeys/newsboat
new file mode 100644
index 0000000..b6953b3
--- /dev/null
+++ b/.larbs/getkeys/newsboat
@@ -0,0 +1,22 @@
+ _ _
+ _ __ _____ _____| |__ ___ __ _| |_
+| '_ \ / _ \ \ /\ / / __| '_ \ / _ \ / _` | __|
+| | | | __/\ V V /\__ \ |_) | (_) | (_| | |_
+|_| |_|\___| \_/\_/ |___/_.__/ \___/ \__,_|\__|
+
+newsboat is the RSS reader.
+ j/k - Move down/up
+ l - Open entry
+ h/q - Back/quit
+ Q - Quit immediately
+ J/K - Previous/next feed
+ n - Next unread
+ N - Previous unread
+ a - Toggle article read/unread
+ A - Mark all as read
+ U - Show all URLs
+ ,, - Open main link with linkhandler
+ ,p - Pick which program to open link with
+ ,v - Open video link in mpv
+ ,w - Open link in w3m
+ ,c - Copy link to clipboard
diff --git a/.larbs/getkeys/ranger b/.larbs/getkeys/ranger
new file mode 100644
index 0000000..bcf784b
--- /dev/null
+++ b/.larbs/getkeys/ranger
@@ -0,0 +1,35 @@
+ _ __ __ _ _ __ __ _ ___ _ __
+| '__/ _` | '_ \ / _` |/ _ \ '__|
+| | | (_| | | | | (_| | __/ |
+|_| \__,_|_| |_|\__, |\___|_|
+ |___/
+
+ranger is the file manager.
+ j/k - Down/up
+ h - Left/higher in directory structure
+ l - Right/open/lower in directory structure
+ gg - Go to top
+ G - Go to bottom
+ cw - Rename file
+ I - Rename file, with cursor at beginning
+ A - Rename file, with cursor at end
+ aa - Rename file, with cursor right before extension
+ mkd - Make directory
+ bg - Change background/wallpaper to selected file
+ X - Extract archive
+ Z - Compress into tar.gz
+ Space - Highlight/select file
+ va - Highlight/(de)select all
+ vs - Toggle visual selection mode
+ uv - Deselect all
+ dd - Cut file(s)
+ yy - Yank/copy file(s)
+ pp - Paste cut/copied file(s)
+ po - Paste cut/copied file(s), overwriting originals
+ cW - Rename all selected files in text editor
+ D - Delete file(s) (press enter to confirm)
+ dD - Delete file(s) (press enter to confirm)
+ ctrl-f - Fuzzy find (fzf)
+ ctrl-l - Search via mlocate
+ q - Quit
+ Q - Immediate quit
diff --git a/.larbs/getkeys/zathura b/.larbs/getkeys/zathura
new file mode 100644
index 0000000..5b3a51a
--- /dev/null
+++ b/.larbs/getkeys/zathura
@@ -0,0 +1,18 @@
+ _ _
+ ______ _| |_| |__ _ _ _ __ __ _
+|_ / _` | __| '_ \| | | | '__/ _` |
+ / / (_| | |_| | | | |_| | | | (_| |
+/___\__,_|\__|_| |_|\__,_|_| \__,_|
+
+zathura is the pdf/djvu reader.
+ h/j/k/l - Move left/down/up/right in document
+ d/u - Down/up a half page
+ gg - Top of document
+ G - Bottom of document
+ f - Highlight URLS to follow
+ J/K - Zoom out/in
+ s - Zoom to fit width
+ a - Zoom to fit height
+ r - Reload document if changed
+ R - Rotate document
+ D - Toggle dual-page mode
diff --git a/.larbs/tutorialvids b/.larbs/tutorialvids
new file mode 100644
index 0000000..51233cd
--- /dev/null
+++ b/.larbs/tutorialvids
@@ -0,0 +1,10 @@
+status_bar https://www.youtube.com/watch?v=gKumet6b-WY
+feh
+i3
+mutt https://www.youtube.com/watch?v=2U3vRbF7v5A
+ncmpcpp https://www.youtube.com/watch?v=sZIEdI9TS2U
+newsboat https://www.youtube.com/watch?v=dUFCRqs822w
+ranger https://www.youtube.com/watch?v=FeGNqNlNLnk
+zathura
+gpg_keys https://www.youtube.com/watch?v=DMGIlj7u7Eo
+calcurse https://www.youtube.com/watch?v=hvc-pHjbhdE
diff --git a/.scripts/getbib b/.scripts/getbib
new file mode 100755
index 0000000..0ea30d3
--- /dev/null
+++ b/.scripts/getbib
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Give this script a .pdf and it will attempt
+# to return a proper .bib citation via doi.
+# Internet connection required.
+
+# Get the doi from metadata, if not possible, get
+# doi from pdftotext output, if not possible, exit.
+doi=$(pdfinfo "$1" | grep -o doi:.*) ||
+ doi=$(pdftotext "$1" - | grep -o doi.* -m 1) ||
+ exit 1
+
+# Check crossref.org for the bib citation.
+curl -s "http://api.crossref.org/works/$doi/transform/application/x-bibtex" -w "\n" |
+ sed -e "/^[^\(\t\|@\|}\)]/d"
diff --git a/.scripts/getkeys b/.scripts/getkeys
new file mode 100755
index 0000000..9cef862
--- /dev/null
+++ b/.scripts/getkeys
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+elsewhere() { echo Key mappings available for the following programs:
+ls ~/.larbs
+echo Run \`larbs-keys\` followed by a program name to get bindings ;}
+
+if [[ -f ~/.larbs/getkeys/$1 ]]; then
+cat ~/.larbs/getkeys/$1
+else
+echo Run command with one of the following arguments for info about that program:
+ls ~/.larbs/getkeys
+fi
diff --git a/.scripts/i3mail b/.scripts/i3mail
index 616facf..46ad432 100755
--- a/.scripts/i3mail
+++ b/.scripts/i3mail
@@ -2,4 +2,4 @@
case $BLOCK_BUTTON in
1) $TERMINAL -e neomutt ;;
esac
-echo $(find ~/.mail -wholename */INBOX/new/* | wc -l | sed -e "s/^0$//g") $(cat ~/.config/mutt/.dl)
+echo $(find ~/.mail -wholename */INBOX/new/* | sed -n '$=') $(cat ~/.config/mutt/.dl)
diff --git a/.scripts/i3mpd b/.scripts/i3mpd
index 7cf473d..8c8564e 100755
--- a/.scripts/i3mpd
+++ b/.scripts/i3mpd
@@ -6,7 +6,7 @@ if [[ -n $BLOCK_INSTANCE ]]; then
fi
filter() {
- sed 2q | tac | sed -e "/volume:/d;s/\[paused\].*/<span color=\"gray\">/g;s/\[playing\].*/<span>/g" | tr -d '\n' | sed -e "s/$/<\/span>/g"
+ sed 2q | tac | sed -e "s/\&/&amp;/g;/volume:/d;s/\[paused\].*/<span color=\"gray\" font_style=\"italic\">/g;s/\[playing\].*/<span>/g" | tr -d '\n' | sed -e "s/$/<\/span>/g"
}
case $BLOCK_BUTTON in
diff --git a/.scripts/i3pacman b/.scripts/i3pacman
new file mode 100755
index 0000000..852c5b7
--- /dev/null
+++ b/.scripts/i3pacman
@@ -0,0 +1,8 @@
+#!/bin/bash
+case $BLOCK_BUTTON in
+ 1) $TERMINAL -e sudo pacman -Syu && pacman -Qu | wc -l > ~/.larbs/.pacupgrade && pkill -RTMIN+8 i3blocks ;;
+esac
+
+pacman -Qu | wc -l | sed -e '/^0$/d' > ~/.larbs/.pacupgrade && pkill -RTMIN+8 i3blocks
+
+cat ~/.larbs/.pacupgrade | sed -e "/^$/d"
diff --git a/.scripts/i3torrent b/.scripts/i3torrent
new file mode 100755
index 0000000..a367649
--- /dev/null
+++ b/.scripts/i3torrent
@@ -0,0 +1,7 @@
+#!/bin/bash
+case $BLOCK_BUTTON in
+ 1) $TERMINAL -e transmission-remote-cli
+esac
+
+transmission-remote -l | grep % | sed -e "s/.*100%.*/Z/g;s/.*Idle.*/A/g;s/.*%.*/M/g" | sort -h | uniq -c | sed -e "s/Z/🌱/g;s/A/⌛️/g;s/M/⬇️/g" | awk '{print $2, $1}' | tr '\n' ' '
+
diff --git a/.scripts/i3volume b/.scripts/i3volume
index b47a6fa..d0b054e 100755
--- a/.scripts/i3volume
+++ b/.scripts/i3volume
@@ -1,7 +1,7 @@
#!/bin/bash
case $BLOCK_BUTTON in
- 1) $TERMINAL -e ncpamixer & disown ;;
+ 1) $TERMINAL -e pulsemixer & disown ;;
3) pamixer -t ;;
4) pamixer -i 5 ;;
5) pamixer -d 5 ;;
diff --git a/.scripts/i3weather b/.scripts/i3weather
index cf135be..b9323c2 100755
--- a/.scripts/i3weather
+++ b/.scripts/i3weather
@@ -12,6 +12,6 @@ if [[ "$location" != "" ]]
fi
curl -s wttr.in/$location > ~/.weatherreport
-echo -n $(cat ~/.weatherreport | sed -n 16p | sed -e 's/[^m]*m//g' | grep -o "[0-9]*%" | sort -n | sed -e '$!d' | sed -e "s/^/☔ /g")
+echo -n $(cat ~/.weatherreport | sed '16q;d' | sed -e 's/[^m]*m//g' | grep -o "[0-9]*%" | sort -n | sed -e '$!d' | sed -e "s/^/☔ /g")
-cat ~/.weatherreport | sed -n 13p | sed -e 's/[^m]*m//g;s/[^0-9]/ /g;s/ /\n/g;/^s*$/d' | grep [0-9] | sort -n | sed -e 1b -e '$!d' | tr '\n' ' ' | awk '{print " ❄️",$1 "°","☀️",$2 "°"}'
+cat ~/.weatherreport | sed '13q;d' | sed -e 's/[^m]*m//g;s/[^0-9]/ /g;s/ /\n/g;/^s*$/d' | grep [0-9] | sort -n | sed -e 1b -e '$!d' | tr '\n' ' ' | awk '{print " ❄️",$1 "°","☀️",$2 "°"}'
diff --git a/.scripts/samedir b/.scripts/samedir
new file mode 100755
index 0000000..1bc1701
--- /dev/null
+++ b/.scripts/samedir
@@ -0,0 +1,27 @@
+#!/bin/bash
+# i3 thread: https://faq.i3wm.org/question/150/how-to-launch-a-terminal-from-here/?answer=152#post-id-152
+
+CMD=$TERMINAL
+CWD=''
+
+# Get window ID
+ID=$(xdpyinfo | grep focus | cut -f4 -d " ")
+
+# Get PID of process whose window this is
+PID=$(xprop -id $ID | grep -m 1 PID | cut -d " " -f 3)
+
+# Get last child process (shell, vim, etc)
+if [ -n "$PID" ]; then
+ TREE=$(pstree -lpA $PID | tail -n 1)
+ PID=$(echo $TREE | awk -F'---' '{print $NF}' | sed -re 's/[^0-9]//g')
+
+ # If we find the working directory, run the command in that directory
+ if [ -e "/proc/$PID/cwd" ]; then
+ CWD=$(readlink /proc/$PID/cwd)
+ fi
+fi
+if [ -n "$CWD" ]; then
+ cd $CWD && $CMD
+else
+ $CMD
+fi
diff --git a/.scripts/tutorialvids b/.scripts/tutorialvids
new file mode 100755
index 0000000..8f73b89
--- /dev/null
+++ b/.scripts/tutorialvids
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+mpv $(grep -P "^$(cat ~/.larbs/tutorialvids | grep https | awk '{print $1}' | dmenu -i -p "Learn about what? (ESC to cancel)" -l 5)\t" ~/.larbs/tutorialvids | awk '{print $2}')
diff --git a/.vimrc b/.vimrc
index 310f9ca..0ee2c09 100644
--- a/.vimrc
+++ b/.vimrc
@@ -1,8 +1,8 @@
-" _ _ ____ _ _ _ _ _
-" | | _ _| | _____ / ___| _ __ ___ (_) |_| |__ ( )___ __ _(_)_ __ ___ _ __ ___
-" | | | | | | |/ / _ \ \___ \| '_ ` _ \| | __| '_ \|// __| \ \ / / | '_ ` _ \| '__/ __|
-" | |__| |_| | < __/ ___) | | | | | | | |_| | | | \__ \ \ V /| | | | | | | | | (__
-" |_____\__,_|_|\_\___| |____/|_| |_| |_|_|\__|_| |_| |___/ \_/ |_|_| |_| |_|_| \___|
+" _
+" __ _(_)_ __ ___ _ __ ___
+" \ \ / / | '_ ` _ \| '__/ __|
+" \ V /| | | | | | | | | (__
+" \_/ |_|_| |_| |_|_| \___|
let mapleader =" "
" Load Pathogen for plugins:
@@ -46,7 +46,7 @@ let mapleader =" "
nnoremap S :%s//g<Left><Left>
" Open corresponding.pdf
- map <leader>p :!mupdf <c-r>%<backspace><backspace><backspace>pdf &<CR><CR>
+ map <leader>p :!zathura <c-r>%<backspace><backspace><backspace>pdf &<CR><CR>
" Compile document
map <leader>c :!compiler <c-r>%<CR>
@@ -61,6 +61,9 @@ let mapleader =" "
" Make calcurse notes markdown compatible:
autocmd BufRead,BufNewFile /tmp/calcurse*,~/.calcurse/notes/* set filetype=markdown
+" Readmes autowrap text:
+ autocmd BufRead,BufNewFile *README.md set tw=79
+
" Get line, word and character counts with F3:
map <F3> :!wc <C-R>%<CR>
@@ -79,9 +82,11 @@ let mapleader =" "
" Use urlview to choose and open a url:
:noremap <leader>u :w<Home>silent <End> !urlview<CR>
+ :noremap ,, :w<Home>silent <End> !urlview<CR>
" Copy selected text to system clipboard (requires gvim installed):
- vnoremap <C-c> "*y :let @+=@*<CR>
+ vnoremap <C-c> "*Y :let @+=@*<CR>
+ map <C-p> "+P
" Goyo plugin makes text more readable when writing prose:
map <F10> :Goyo<CR>
@@ -120,7 +125,6 @@ let mapleader =" "
inoremap <Space><Tab> <Esc>/<++><Enter>"_c4l
vnoremap <Space><Tab> <Esc>/<++><Enter>"_c4l
map <Space><Tab> <Esc>/<++><Enter>"_c4l
- inoremap ;gui <++>
" For normal mode when in terminals (in X I have caps mapped to esc, this replaces it when I don't have X)
inoremap jw <Esc>
@@ -141,122 +145,92 @@ let mapleader =" "
autocmd FileType tex inoremap <F5> <Esc>:!xelatex<space><c-r>%<Enter>a
autocmd FileType tex nnoremap <F5> :!xelatex<space><c-r>%<Enter>
" Code snippets
- autocmd FileType tex inoremap ;fr \begin{frame}<Enter>\frametitle{}<Enter><Enter><++><Enter><Enter>\end{frame}<Enter><Enter><++><Esc>6kf}i
- autocmd FileType tex inoremap ;fi \begin{fitch}<Enter><Enter>\end{fitch}<Enter><Enter><++><Esc>3kA
- autocmd FileType tex inoremap ;exe \begin{exe}<Enter>\ex<Space><Enter>\end{exe}<Enter><Enter><++><Esc>3kA
- autocmd FileType tex inoremap ;em \emph{}<++><Esc>T{i
- autocmd FileType tex inoremap ;bf \textbf{}<++><Esc>T{i
- autocmd FileType tex vnoremap ; <ESC>`<i\{<ESC>`>2la}<ESC>?\\{<Enter>a
- autocmd FileType tex inoremap ;it \textit{}<++><Esc>T{i
- autocmd FileType tex inoremap ;ct \textcite{}<++><Esc>T{i
- autocmd FileType tex inoremap ;cp \parencite{}<++><Esc>T{i
- autocmd FileType tex inoremap ;glos {\gll<Space><++><Space>\\<Enter><++><Space>\\<Enter>\trans{``<++>''}}<Esc>2k2bcw
- autocmd FileType tex inoremap ;x \begin{xlist}<Enter>\ex<Space><Enter>\end{xlist}<Esc>kA<Space>
- autocmd FileType tex inoremap ;ol \begin{enumerate}<Enter><Enter>\end{enumerate}<Enter><Enter><++><Esc>3kA\item<Space>
- autocmd FileType tex inoremap ;ul \begin{itemize}<Enter><Enter>\end{itemize}<Enter><Enter><++><Esc>3kA\item<Space>
- autocmd FileType tex inoremap ;li <Enter>\item<Space>
- autocmd FileType tex inoremap ;ref \ref{}<Space><++><Esc>T{i
- autocmd FileType tex inoremap ;tab \begin{tabular}<Enter><++><Enter>\end{tabular}<Enter><Enter><++><Esc>4kA{}<Esc>i
- autocmd FileType tex inoremap ;ot \begin{tableau}<Enter>\inp{<++>}<Tab>\const{<++>}<Tab><++><Enter><++><Enter>\end{tableau}<Enter><Enter><++><Esc>5kA{}<Esc>i
- autocmd FileType tex inoremap ;can \cand{}<Tab><++><Esc>T{i
- autocmd FileType tex inoremap ;con \const{}<Tab><++><Esc>T{i
- autocmd FileType tex inoremap ;v \vio{}<Tab><++><Esc>T{i
- autocmd FileType tex inoremap ;a \href{}{<++>}<Space><++><Esc>2T{i
- autocmd FileType tex inoremap ;sc \textsc{}<Space><++><Esc>T{i
- autocmd FileType tex inoremap ;chap \chapter{}<Enter><Enter><++><Esc>2kf}i
- autocmd FileType tex inoremap ;sec \section{}<Enter><Enter><++><Esc>2kf}i
- autocmd FileType tex inoremap ;ssec \subsection{}<Enter><Enter><++><Esc>2kf}i
- autocmd FileType tex inoremap ;sssec \subsubsection{}<Enter><Enter><++><Esc>2kf}i
- autocmd FileType tex inoremap ;st <Esc>F{i*<Esc>f}i
- autocmd FileType tex inoremap ;beg \begin{DELRN}<Enter><++><Enter>\end{DELRN}<Enter><Enter><++><Esc>4k0fR:MultipleCursorsFind<Space>DELRN<Enter>c
- autocmd FileType tex inoremap ;up <Esc>/usepackage<Enter>o\usepackage{}<Esc>i
- autocmd FileType tex nnoremap ;up /usepackage<Enter>o\usepackage{}<Esc>i
- autocmd FileType tex inoremap ;tt \texttt{}<Space><++><Esc>T{i
- autocmd FileType tex inoremap ;bt {\blindtext}
- autocmd FileType tex inoremap ;nu $\varnothing$
- autocmd FileType tex inoremap ;col \begin{columns}[T]<Enter>\begin{column}{.5\textwidth}<Enter><Enter>\end{column}<Enter>\begin{column}{.5\textwidth}<Enter><++><Enter>\end{column}<Enter>\end{columns}<Esc>5kA
- autocmd FileType tex inoremap ;rn (\ref{})<++><Esc>F}i
-
-"""LATEX Logical symbols
- autocmd FileType tex inoremap ;m $$<Space><++><Esc>2T$i
- autocmd FileType tex inoremap ;M $$$$<Enter><Enter><++><Esc>2k$hi
- autocmd FileType tex inoremap ;neg {\neg}
- autocmd FileType tex inoremap ;V {\vee}
- autocmd FileType tex inoremap ;or {\vee}
- autocmd FileType tex inoremap ;L {\wedge}
- autocmd FileType tex inoremap ;and {\wedge}
- autocmd FileType tex inoremap ;ra {\rightarrow}
- autocmd FileType tex inoremap ;la {\leftarrow}
- autocmd FileType tex inoremap ;lra {\leftrightarrow}
- autocmd FileType tex inoremap ;fa {\forall}
- autocmd FileType tex inoremap ;ex {\exists}
- autocmd FileType tex inoremap ;dia {\Diamond}
- autocmd FileType tex inoremap ;box {\Box}
- autocmd FileType tex inoremap ;gt {\textgreater}
- autocmd FileType tex inoremap ;lt {\textless}
-"""LaTeX Linguistics Shortcuts
- autocmd Filetype tex inoremap ;nom {\textsc{nom}}
- autocmd FileType tex inoremap ;acc {\textsc{acc}}
- autocmd FileType tex inoremap ;dat {\textsc{dat}}
- autocmd FileType tex inoremap ;gen {\textsc{gen}}
- autocmd FileType tex inoremap ;abl {\textsc{abl}}
- autocmd FileType tex inoremap ;voc {\textsc{voc}}
- autocmd FileType tex inoremap ;loc {\textsc{loc}}
- autocmd Filetype tex inoremap ;inst {\textsc{inst}}
- autocmd FileType tex inoremap ;tipa \textipa{}<Space><++><Esc>T{i
+ autocmd FileType tex inoremap ,fr \begin{frame}<Enter>\frametitle{}<Enter><Enter><++><Enter><Enter>\end{frame}<Enter><Enter><++><Esc>6kf}i
+ autocmd FileType tex inoremap ,fi \begin{fitch}<Enter><Enter>\end{fitch}<Enter><Enter><++><Esc>3kA
+ autocmd FileType tex inoremap ,exe \begin{exe}<Enter>\ex<Space><Enter>\end{exe}<Enter><Enter><++><Esc>3kA
+ autocmd FileType tex inoremap ,em \emph{}<++><Esc>T{i
+ autocmd FileType tex inoremap ,bf \textbf{}<++><Esc>T{i
+ autocmd FileType tex vnoremap , <ESC>`<i\{<ESC>`>2la}<ESC>?\\{<Enter>a
+ autocmd FileType tex inoremap ,it \textit{}<++><Esc>T{i
+ autocmd FileType tex inoremap ,ct \textcite{}<++><Esc>T{i
+ autocmd FileType tex inoremap ,cp \parencite{}<++><Esc>T{i
+ autocmd FileType tex inoremap ,glos {\gll<Space><++><Space>\\<Enter><++><Space>\\<Enter>\trans{``<++>''}}<Esc>2k2bcw
+ autocmd FileType tex inoremap ,x \begin{xlist}<Enter>\ex<Space><Enter>\end{xlist}<Esc>kA<Space>
+ autocmd FileType tex inoremap ,ol \begin{enumerate}<Enter><Enter>\end{enumerate}<Enter><Enter><++><Esc>3kA\item<Space>
+ autocmd FileType tex inoremap ,ul \begin{itemize}<Enter><Enter>\end{itemize}<Enter><Enter><++><Esc>3kA\item<Space>
+ autocmd FileType tex inoremap ,li <Enter>\item<Space>
+ autocmd FileType tex inoremap ,ref \ref{}<Space><++><Esc>T{i
+ autocmd FileType tex inoremap ,tab \begin{tabular}<Enter><++><Enter>\end{tabular}<Enter><Enter><++><Esc>4kA{}<Esc>i
+ autocmd FileType tex inoremap ,ot \begin{tableau}<Enter>\inp{<++>}<Tab>\const{<++>}<Tab><++><Enter><++><Enter>\end{tableau}<Enter><Enter><++><Esc>5kA{}<Esc>i
+ autocmd FileType tex inoremap ,can \cand{}<Tab><++><Esc>T{i
+ autocmd FileType tex inoremap ,con \const{}<Tab><++><Esc>T{i
+ autocmd FileType tex inoremap ,v \vio{}<Tab><++><Esc>T{i
+ autocmd FileType tex inoremap ,a \href{}{<++>}<Space><++><Esc>2T{i
+ autocmd FileType tex inoremap ,sc \textsc{}<Space><++><Esc>T{i
+ autocmd FileType tex inoremap ,chap \chapter{}<Enter><Enter><++><Esc>2kf}i
+ autocmd FileType tex inoremap ,sec \section{}<Enter><Enter><++><Esc>2kf}i
+ autocmd FileType tex inoremap ,ssec \subsection{}<Enter><Enter><++><Esc>2kf}i
+ autocmd FileType tex inoremap ,sssec \subsubsection{}<Enter><Enter><++><Esc>2kf}i
+ autocmd FileType tex inoremap ,st <Esc>F{i*<Esc>f}i
+ autocmd FileType tex inoremap ,beg \begin{DELRN}<Enter><++><Enter>\end{DELRN}<Enter><Enter><++><Esc>4k0fR:MultipleCursorsFind<Space>DELRN<Enter>c
+ autocmd FileType tex inoremap ,up <Esc>/usepackage<Enter>o\usepackage{}<Esc>i
+ autocmd FileType tex nnoremap ,up /usepackage<Enter>o\usepackage{}<Esc>i
+ autocmd FileType tex inoremap ,tt \texttt{}<Space><++><Esc>T{i
+ autocmd FileType tex inoremap ,bt {\blindtext}
+ autocmd FileType tex inoremap ,nu $\varnothing$
+ autocmd FileType tex inoremap ,col \begin{columns}[T]<Enter>\begin{column}{.5\textwidth}<Enter><Enter>\end{column}<Enter>\begin{column}{.5\textwidth}<Enter><++><Enter>\end{column}<Enter>\end{columns}<Esc>5kA
+ autocmd FileType tex inoremap ,rn (\ref{})<++><Esc>F}i
"""PHP/HTML
- autocmd FileType php,html inoremap ;b <b></b><Space><++><Esc>FbT>i
- autocmd FileType php,html inoremap ;i <em></em><Space><++><Esc>FeT>i
- autocmd FileType php,html inoremap ;h1 <h1></h1><Enter><Enter><++><Esc>2kf<i
- autocmd FileType php,html inoremap ;h2 <h2></h2><Enter><Enter><++><Esc>2kf<i
- autocmd FileType php,html inoremap ;h3 <h3></h3><Enter><Enter><++><Esc>2kf<i
- autocmd FileType php,html inoremap ;p <p></p><Enter><Enter><++><Esc>02kf>a
- autocmd FileType php,html inoremap ;a <a<Space>href=""><++></a><Space><++><Esc>14hi
- autocmd FileType php,html inoremap ;e <a<Space>target="_blank"<Space>href=""><++></a><Space><++><Esc>14hi
- autocmd FileType php,html inoremap ;ul <ul><Enter><li></li><Enter></ul><Enter><Enter><++><Esc>03kf<i
- autocmd FileType php,html inoremap ;li <Esc>o<li></li><Esc>F>a
- autocmd FileType php,html inoremap ;ol <ol><Enter><li></li><Enter></ol><Enter><Enter><++><Esc>03kf<i
- autocmd FileType php,html inoremap ;im <table<Space>class="image"><Enter><caption align="bottom"></caption><Enter><tr><td><a<space>href="pix/<++>"><img<Space>src="pix/<++>"<Space>width="<++>"></a></td></tr><Enter></table><Enter><Enter><++><Esc>4kf>a
- autocmd FileType php,html inoremap ;td <td></td><++><Esc>Fdcit
- autocmd FileType php,html inoremap ;tr <tr></tr><Enter><++><Esc>kf<i
- autocmd FileType php,html inoremap ;th <th></th><++><Esc>Fhcit
- autocmd FileType php,html inoremap ;tab <table><Enter></table><Esc>O
- autocmd FileType php,html inoremap ;gr <font color="green"></font><Esc>F>a
- autocmd FileType php,html inoremap ;rd <font color="red"></font><Esc>F>a
- autocmd FileType php,html inoremap ;yl <font color="yellow"></font><Esc>F>a
- autocmd FileType php,html inoremap ;dt <dt></dt><Enter><dd><++></dd><Enter><++><esc>2kcit
- autocmd FileType php,html inoremap ;dl <dl><Enter><Enter></dl><enter><enter><++><esc>3kcc
- "autocmd FileType php,html inoremap -- &ndash;
- "autocmd FileType php,html inoremap --- &mdash;
+ autocmd FileType php,html inoremap ,b <b></b><Space><++><Esc>FbT>i
+ autocmd FileType php,html inoremap ,it <em></em><Space><++><Esc>FeT>i
+ autocmd FileType php,html inoremap ,1 <h1></h1><Enter><Enter><++><Esc>2kf<i
+ autocmd FileType php,html inoremap ,2 <h2></h2><Enter><Enter><++><Esc>2kf<i
+ autocmd FileType php,html inoremap ,3 <h3></h3><Enter><Enter><++><Esc>2kf<i
+ autocmd FileType php,html inoremap ,p <p></p><Enter><Enter><++><Esc>02kf>a
+ autocmd FileType php,html inoremap ,a <a<Space>href=""><++></a><Space><++><Esc>14hi
+ autocmd FileType php,html inoremap ,e <a<Space>target="_blank"<Space>href=""><++></a><Space><++><Esc>14hi
+ autocmd FileType php,html inoremap ,ul <ul><Enter><li></li><Enter></ul><Enter><Enter><++><Esc>03kf<i
+ autocmd FileType php,html inoremap ,li <Esc>o<li></li><Esc>F>a
+ autocmd FileType php,html inoremap ,ol <ol><Enter><li></li><Enter></ol><Enter><Enter><++><Esc>03kf<i
+ autocmd FileType php,html inoremap ,im <img src="" alt="<++>"><++><esc>Fcf"a
+ autocmd FileType php,html inoremap ,td <td></td><++><Esc>Fdcit
+ autocmd FileType php,html inoremap ,tr <tr></tr><Enter><++><Esc>kf<i
+ autocmd FileType php,html inoremap ,th <th></th><++><Esc>Fhcit
+ autocmd FileType php,html inoremap ,tab <table><Enter></table><Esc>O
+ autocmd FileType php,html inoremap ,gr <font color="green"></font><Esc>F>a
+ autocmd FileType php,html inoremap ,rd <font color="red"></font><Esc>F>a
+ autocmd FileType php,html inoremap ,yl <font color="yellow"></font><Esc>F>a
+ autocmd FileType php,html inoremap ,dt <dt></dt><Enter><dd><++></dd><Enter><++><esc>2kcit
+ autocmd FileType php,html inoremap ,dl <dl><Enter><Enter></dl><enter><enter><++><esc>3kcc
+ autocmd FileType php,html inoremap &<space> &amp;<space>
""".bib
- autocmd FileType bib inoremap ;a @article{<Enter><tab>author<Space>=<Space>"<++>",<Enter><tab>year<Space>=<Space>"<++>",<Enter><tab>title<Space>=<Space>"<++>",<Enter><tab>journal<Space>=<Space>"<++>",<Enter><tab>volume<Space>=<Space>"<++>",<Enter><tab>pages<Space>=<Space>"<++>",<Enter><tab>}<Enter><++><Esc>8kA,<Esc>i
- autocmd FileType bib inoremap ;b @book{<Enter><tab>author<Space>=<Space>"<++>",<Enter><tab>year<Space>=<Space>"<++>",<Enter><tab>title<Space>=<Space>"<++>",<Enter><tab>publisher<Space>=<Space>"<++>",<Enter><tab>}<Enter><++><Esc>6kA,<Esc>i
- autocmd FileType bib inoremap ;c @incollection{<Enter><tab>author<Space>=<Space>"<++>",<Enter><tab>title<Space>=<Space>"<++>",<Enter><tab>booktitle<Space>=<Space>"<++>",<Enter><tab>editor<Space>=<Space>"<++>",<Enter><tab>year<Space>=<Space>"<++>",<Enter><tab>publisher<Space>=<Space>"<++>",<Enter><tab>}<Enter><++><Esc>8kA,<Esc>i
+ autocmd FileType bib inoremap ,a @article{<Enter><tab>author<Space>=<Space>"<++>",<Enter><tab>year<Space>=<Space>"<++>",<Enter><tab>title<Space>=<Space>"<++>",<Enter><tab>journal<Space>=<Space>"<++>",<Enter><tab>volume<Space>=<Space>"<++>",<Enter><tab>pages<Space>=<Space>"<++>",<Enter><tab>}<Enter><++><Esc>8kA,<Esc>i
+ autocmd FileType bib inoremap ,b @book{<Enter><tab>author<Space>=<Space>"<++>",<Enter><tab>year<Space>=<Space>"<++>",<Enter><tab>title<Space>=<Space>"<++>",<Enter><tab>publisher<Space>=<Space>"<++>",<Enter><tab>}<Enter><++><Esc>6kA,<Esc>i
+ autocmd FileType bib inoremap ,c @incollection{<Enter><tab>author<Space>=<Space>"<++>",<Enter><tab>title<Space>=<Space>"<++>",<Enter><tab>booktitle<Space>=<Space>"<++>",<Enter><tab>editor<Space>=<Space>"<++>",<Enter><tab>year<Space>=<Space>"<++>",<Enter><tab>publisher<Space>=<Space>"<++>",<Enter><tab>}<Enter><++><Esc>8kA,<Esc>i
"MARKDOWN
autocmd Filetype markdown,rmd map <leader>w yiWi[<esc>Ea](<esc>pa)
- autocmd Filetype markdown,rmd inoremap ;n ---<Enter><Enter>
- autocmd Filetype markdown,rmd inoremap ;b ****<++><Esc>F*hi
- autocmd Filetype markdown,rmd inoremap ;s ~~~~<++><Esc>F~hi
- autocmd Filetype markdown,rmd inoremap ;e **<++><Esc>F*i
- autocmd Filetype markdown,rmd inoremap ;h ====<Space><++><Esc>F=hi
- autocmd Filetype markdown,rmd inoremap ;i ![](<++>)<++><Esc>F[a
- autocmd Filetype markdown,rmd inoremap ;a [](<++>)<++><Esc>F[a
- autocmd Filetype markdown,rmd inoremap ;1 #<Space><Enter><++><Esc>kA
- autocmd Filetype markdown,rmd inoremap ;2 ##<Space><Enter><++><Esc>kA
- autocmd Filetype markdown,rmd inoremap ;3 ###<Space><Enter><++><Esc>kA
- autocmd Filetype markdown,rmd inoremap ;l --------<Enter>
- autocmd Filetype markdown map <F5> :!pandoc<space><C-r>%<space>--pdf-engine=xelatex<space>-o<space><C-r>%.pdf<Enter><Enter>
- autocmd Filetype rmd map <F5> :!echo<space>"require(rmarkdown);<space>render('<c-r>%')"<space>\|<space>R<space>--vanilla<enter>
- autocmd Filetype rmd inoremap ;r ```{r}<CR>```<CR><CR><esc>2kO
- autocmd Filetype rmd inoremap ;p ```{python}<CR>```<CR><CR><esc>2kO
+ autocmd Filetype markdown,rmd inoremap ,n ---<Enter><Enter>
+ autocmd Filetype markdown,rmd inoremap ,b ****<++><Esc>F*hi
+ autocmd Filetype markdown,rmd inoremap ,s ~~~~<++><Esc>F~hi
+ autocmd Filetype markdown,rmd inoremap ,e **<++><Esc>F*i
+ autocmd Filetype markdown,rmd inoremap ,h ====<Space><++><Esc>F=hi
+ autocmd Filetype markdown,rmd inoremap ,i ![](<++>)<++><Esc>F[a
+ autocmd Filetype markdown,rmd inoremap ,a [](<++>)<++><Esc>F[a
+ autocmd Filetype markdown,rmd inoremap ,1 #<Space><Enter><++><Esc>kA
+ autocmd Filetype markdown,rmd inoremap ,2 ##<Space><Enter><++><Esc>kA
+ autocmd Filetype markdown,rmd inoremap ,3 ###<Space><Enter><++><Esc>kA
+ autocmd Filetype markdown,rmd inoremap ,l --------<Enter>
+ autocmd Filetype rmd inoremap ,r ```{r}<CR>```<CR><CR><esc>2kO
+ autocmd Filetype rmd inoremap ,p ```{python}<CR>```<CR><CR><esc>2kO
+ autocmd Filetype rmd inoremap ,c ```<cr>```<cr><cr><esc>2kO
""".xml
- autocmd FileType xml inoremap ;e <item><Enter><title><++></title><Enter><guid<space>isPermaLink="false"><++></guid><Enter><pubDate><Esc>:put<Space>=strftime('%a, %d %b %Y %H:%M:%S %z')<Enter>kJA</pubDate><Enter><link><++></link><Enter><description><![CDATA[<++>]]></description><Enter></item><Esc>?<title><enter>cit
- autocmd FileType xml inoremap ;a <a href="<++>"><++></a><++><Esc>F"ci"
+ autocmd FileType xml inoremap ,e <item><Enter><title><++></title><Enter><guid<space>isPermaLink="false"><++></guid><Enter><pubDate><Esc>:put<Space>=strftime('%a, %d %b %Y %H:%M:%S %z')<Enter>kJA</pubDate><Enter><link><++></link><Enter><description><![CDATA[<++>]]></description><Enter></item><Esc>?<title><enter>cit
+ autocmd FileType xml inoremap ,a <a href="<++>"><++></a><++><Esc>F"ci"
vmap <expr> ++ VMATH_YankAndAnalyse()
nmap ++ vip++
diff --git a/.xinitrc b/.xinitrc
index ba0c6ef..f351d13 100644
--- a/.xinitrc
+++ b/.xinitrc
@@ -1 +1,2 @@
exec i3
+xset r rate 200 50