diff --git a/.spectrwm.conf b/.spectrwm.conf new file mode 100644 index 0000000..ad7376f --- /dev/null +++ b/.spectrwm.conf @@ -0,0 +1,326 @@ +# PLEASE READ THE MAN PAGE BEFORE EDITING THIS FILE! +# https://htmlpreview.github.io/?https://github.com/conformal/spectrwm/blob/master/spectrwm.html +# NOTE: all rgb color values in this file are in hex! see XQueryColor for examples + +workspace_limit = 9 +focus_mode = default +focus_close = previous +focus_close_wrap = 1 +focus_default = last +spawn_position = next +workspace_clamp = 1 +warp_focus = 1 +warp_pointer = 1 + +# Window Decoration +border_width = 1 +color_focus = rgb:bb/c5/ff +color_focus_maximized = yellow +color_unfocus = rgb:88/88/88 +color_unfocus_maximized = rgb:88/88/00 +region_padding = 6 +tile_gap = 6 + +# Region containment +# Distance window must be dragged/resized beyond the region edge before it is +# allowed outside the region. +# boundary_width = 50 + +# Remove window border when bar is disabled and there is only one window in workspace +# disable_border = 1 + +# Bar Settings +bar_action = /home/dt/baraction.sh +bar_enabled = 1 +bar_border_width = 1 +bar_border[1] = rgb:28/2a/36 +bar_border_unfocus[1] = rgb:28/2a/36 +bar_color[1] = rgb:28/2a/36 +bar_color_selected[1] = rgb:00/80/80 +bar_delay = 5 +bar_font_color[1] = rgb:bb/c5/ff +bar_font_color_selected = black +bar_font = Mononoki Nerd Font:size=9 +bar_justify = center +bar_format = +N:+I +S (+D) | +A +workspace_indicator = listcurrent,listactive,markcurrent,printnames +bar_at_bottom = 0 +stack_enabled = 1 +clock_enabled = 1 +clock_format = %a %b %d %R %Z %Y +iconic_enabled = 0 +maximize_hide_bar = 0 +window_class_enabled = 1 +window_instance_enabled = 1 +window_name_enabled = 1 +verbose_layout = 1 +urgent_enabled = 1 + +# Dialog box size ratio when using TRANSSZ quirk; 0.3 < dialog_ratio <= 1.0 +# dialog_ratio = 0.6 + +# Split a non-RandR dual head setup into one region per monitor +# (non-standard driver-based multihead is not seen by spectrwm) +# region = screen[1]:1280x1024+0+0 +# region = screen[1]:1280x1024+1280+0 + +# Launch applications in a workspace of choice +# autorun = ws[1]:xterm +# autorun = ws[2]:xombrero http://www.openbsd.org +autorun = ws[1]:nitrogen --restore +autorun = ws[1]:compton + +# Customize workspace layout at start +# layout = ws[1]:4:0:0:0:vertical +# layout = ws[2]:0:0:0:0:horizontal +# layout = ws[3]:0:0:0:0:fullscreen +# layout = ws[4]:4:0:0:0:vertical_flip +# layout = ws[5]:0:0:0:0:horizontal_flip + +# Set workspace name at start +name = ws[1]:dev +name = ws[2]:www +name = ws[3]:sys +name = ws[4]:doc +name = ws[5]:vbox +name = ws[6]:chat +name = ws[7]:mus +name = ws[8]:vid +name = ws[9]:gfx + +# Mod key, (Windows key is Mod4) (Apple key on OSX is Mod2) +modkey = Mod4 + +# This allows you to include pre-defined key bindings for your keyboard layout. +keyboard_mapping = ~/.spectrwm_us.conf + +# PROGRAMS + +# Validated default programs: +# program[lock] = xlock +# program[term] = xterm +# program[menu] = dmenu_run $dmenu_bottom -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_color_selected -sf $bar_font_color_selected +# program[search] = dmenu $dmenu_bottom -i -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_color_selected -sf $bar_font_color_selected +# program[name_workspace] = dmenu $dmenu_bottom -p Workspace -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_color_selected -sf $bar_font_color_selected + +# To disable validation of the above, free the respective binding(s): +# bind[] = MOD+Shift+Delete # disable lock +# bind[] = MOD+Shift+Return # disable term +# bind[] = MOD+p # disable menu + +# Optional default programs that will only be validated if you override: +# program[screenshot_all] = screenshot.sh full # optional +# program[screenshot_wind] = screenshot.sh window # optional +# program[initscr] = initscreen.sh # optional + +# EXAMPLE: Define 'firefox' action and bind to key. +# program[firefox] = firefox http://spectrwm.org/ +# bind[firefox] = MOD+Shift+b + +# QUIRKS +# Default quirks, remove with: quirk[class:name] = NONE +# quirk[MPlayer:xv] = FLOAT + FULLSCREEN + FOCUSPREV +# quirk[OpenOffice.org 2.4:VCLSalFrame] = FLOAT +# quirk[OpenOffice.org 3.0:VCLSalFrame] = FLOAT +# quirk[OpenOffice.org 3.1:VCLSalFrame] = FLOAT +# quirk[Firefox-bin:firefox-bin] = TRANSSZ +# quirk[Firefox:Dialog] = FLOAT +# quirk[Gimp:gimp] = FLOAT + ANYWHERE +# quirk[XTerm:xterm] = XTERM_FONTADJ +# quirk[xine:Xine Window] = FLOAT + ANYWHERE +# quirk[Xitk:Xitk Combo] = FLOAT + ANYWHERE +# quirk[xine:xine Panel] = FLOAT + ANYWHERE +# quirk[Xitk:Xine Window] = FLOAT + ANYWHERE +# quirk[xine:xine Video Fullscreen Window] = FULLSCREEN + FLOAT +# quirk[pcb:pcb] = FLOAT +# +# Key bindings for United States (us) keyboards +# unbind with: bind[] = +bind[bar_toggle] = MOD+b +bind[bar_toggle_ws] = MOD+Shift+b +bind[button2] = MOD+v +bind[cycle_layout] = MOD+space +bind[flip_layout] = MOD+Shift+backslash +bind[float_toggle] = MOD+t +bind[focus_main] = MOD+m +bind[focus_next] = MOD+j +bind[focus_next] = MOD+Tab +bind[focus_prev] = MOD+k +bind[focus_prev] = MOD+Shift+Tab +bind[focus_urgent] = MOD+u +bind[height_grow] = MOD+Shift+equal +bind[height_shrink] = MOD+Shift+minus +bind[iconify] = MOD+w +bind[initscr] = MOD+Shift+i +bind[lock] = MOD+Shift+Delete +bind[master_add] = MOD+Shift+comma +bind[master_del] = MOD+Shift+period +bind[master_grow] = MOD+l +bind[master_shrink] = MOD+h +bind[maximize_toggle] = MOD+e +bind[move_down] = MOD+Shift+bracketright +bind[move_left] = MOD+bracketleft +bind[move_right] = MOD+bracketright +bind[move_up] = MOD+Shift+bracketleft +bind[mvrg_1] = MOD+Shift+KP_End +bind[mvrg_2] = MOD+Shift+KP_Down +bind[mvrg_3] = MOD+Shift+KP_Next +bind[mvrg_4] = MOD+Shift+KP_Left +bind[mvrg_5] = MOD+Shift+KP_Begin +bind[mvrg_6] = MOD+Shift+KP_Right +bind[mvrg_7] = MOD+Shift+KP_Home +bind[mvrg_8] = MOD+Shift+KP_Up +bind[mvrg_9] = MOD+Shift+KP_Prior +bind[mvws_1] = MOD+Shift+1 +bind[mvws_2] = MOD+Shift+2 +bind[mvws_3] = MOD+Shift+3 +bind[mvws_4] = MOD+Shift+4 +bind[mvws_5] = MOD+Shift+5 +bind[mvws_6] = MOD+Shift+6 +bind[mvws_7] = MOD+Shift+7 +bind[mvws_8] = MOD+Shift+8 +bind[mvws_9] = MOD+Shift+9 +bind[mvws_10] = MOD+Shift+0 +bind[mvws_11] = MOD+Shift+F1 +bind[mvws_12] = MOD+Shift+F2 +bind[mvws_13] = MOD+Shift+F3 +bind[mvws_14] = MOD+Shift+F4 +bind[mvws_15] = MOD+Shift+F5 +bind[mvws_16] = MOD+Shift+F6 +bind[mvws_17] = MOD+Shift+F7 +bind[mvws_18] = MOD+Shift+F8 +bind[mvws_19] = MOD+Shift+F9 +bind[mvws_20] = MOD+Shift+F10 +bind[mvws_21] = MOD+Shift+F11 +bind[mvws_22] = MOD+Shift+F12 +bind[name_workspace] = MOD+Shift+slash +bind[quit] = MOD+Shift+q +bind[raise_toggle] = MOD+Control+r +bind[restart] = MOD+Shift+r +bind[rg_1] = MOD+KP_End +bind[rg_2] = MOD+KP_Down +bind[rg_3] = MOD+KP_Next +bind[rg_4] = MOD+KP_Left +bind[rg_5] = MOD+KP_Begin +bind[rg_6] = MOD+KP_Right +bind[rg_7] = MOD+KP_Home +bind[rg_8] = MOD+KP_Up +bind[rg_9] = MOD+KP_Prior +bind[rg_next] = MOD+period +bind[rg_prev] = MOD+comma +bind[screenshot_all] = MOD+s +bind[screenshot_wind] = MOD+Shift+s +bind[search_win] = MOD+f +bind[search_workspace] = MOD+slash +bind[stack_dec] = MOD+Shift+period +bind[stack_inc] = MOD+Shift+comma +bind[stack_reset] = MOD+Shift+space +# bind[swap_main] = MOD+Return +bind[swap_next] = MOD+Shift+j +bind[swap_prev] = MOD+Shift+k +bind[uniconify] = MOD+Shift+w +bind[version] = MOD+Shift+v +bind[width_grow] = MOD+equal +bind[width_shrink] = MOD+minus +bind[wind_del] = MOD+Shift+c +bind[wind_kill] = MOD+Shift+x +bind[ws_1] = MOD+1 +bind[ws_2] = MOD+2 +bind[ws_3] = MOD+3 +bind[ws_4] = MOD+4 +bind[ws_5] = MOD+5 +bind[ws_6] = MOD+6 +bind[ws_7] = MOD+7 +bind[ws_8] = MOD+8 +bind[ws_9] = MOD+9 +bind[ws_10] = MOD+0 +bind[ws_11] = MOD+F1 +bind[ws_12] = MOD+F2 +bind[ws_13] = MOD+F3 +bind[ws_14] = MOD+F4 +bind[ws_15] = MOD+F5 +bind[ws_16] = MOD+F6 +bind[ws_17] = MOD+F7 +bind[ws_18] = MOD+F8 +bind[ws_19] = MOD+F9 +bind[ws_20] = MOD+F10 +bind[ws_21] = MOD+F11 +bind[ws_22] = MOD+F12 +bind[ws_next] = MOD+Right +bind[ws_next_all] = MOD+Up +bind[ws_next_move] = MOD+Shift+Up +bind[ws_prev] = MOD+Left +bind[ws_prev_all] = MOD+Down +bind[ws_prev_move] = MOD+Shift+Down +bind[ws_prior] = MOD+a + + +### PROGRAM KEYBINDINGS ### + +program[alacritty] = alacritty +bind[alacritty] = MOD+Return + +program[dmenu_run] = dmenu_run +bind[dmenu_run] = MOD+Shift+Return + +#################################################### +### Dmenu scripts launched with ALT + CTRL + KEY ### +#################################################### + +program[dmenu-edit-configs] = ./.dmenu/dmenu-edit-configs.sh +bind[dmenu-edit-configs] = MOD1+Control+e + +program[dmenu-sysmon] = ./.dmenu/dmenu-sysmon.sh +bind[dmenu-sysmon] = MOD1+Control+m + +program[passmenu] = passmenu +bind[passmenu] = MOD1+Control+p + +program[dmenu-reddio] = ./.dmenu/dmenu-reddio.sh +bind[dmenu-reddio] = MOD1+Control+r + +program[dmenu-surfraw] = ./.dmenu/dmenu-surfraw.sh +bind[dmenu-surfraw] = MOD1+Control+s + +program[dmenu-scrot] = ./.dmenu/dmenu-scrot.sh +bind[dmenu-scrot] = MOD1+Control+i + +#################################################### +### TUI programs launched with SUPER + ALT + KEY ### +#################################################### + +program[lynx] = alacritty -e lynx gopher://distro.tube +bind[lynx] = MOD+MOD1+l + +program[newsboat] = alacritty -e newsboat +bind[newsboat] = MOD+MOD1+n + +program[rtv] = alacritty -e rtv +bind[rtv] = MOD+MOD1+r + +program[neomutt] = alacritty -e neomutt +bind[neomutt] = MOD+MOD1+e + +program[toot] = alacritty -e sh ./scripts/toot.sh +bind[toot] = MOD+MOD1+m + +program[tig] = alacritty -e sh ./scripts/tig-script.sh +bind[tig] = MOD+MOD1+t + +program[vifm] = alacritty -e sh ./.config/vifm/scripts/vifmrun +bind[vifm] = MOD+MOD1+f + +program[joplin] = alacritty -e joplin +bind[joplin] = MOD+MOD1+j + +program[cmus] = alacritty -e cmus +bind[cmus] = MOD+MOD1+c + +program[irssi] = alacritty -e irssi +bind[irssi] = MOD+MOD1+i + +program[ytv] = alacritty -e youtube-viewer +bind[ytv] = MOD+MOD1+y + +program[ncpamixer] = alacritty -e ncpamixer +bind[ncpamixer] = MOD+MOD1+a diff --git a/baraction.sh b/baraction.sh new file mode 100755 index 0000000..d7bc2e9 --- /dev/null +++ b/baraction.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# baraction.sh for spectrwm status bar + +## DATE +dte() { + dte="$(date +"%A, %B %d %l:%M%p")" + echo -e "$dte" +} + +## DISK +hdd() { + hdd="$(df -h | awk 'NR==4{print $3, $5}')" + echo -e "HDD: $hdd" +} + +## RAM +mem() { + mem=`free | awk '/Mem/ {printf "%d MiB/%d MiB\n", $3 / 1024.0, $2 / 1024.0 }'` + echo -e "MEM: $mem" +} + +## CPU +cpu() { + read cpu a b c previdle rest < /proc/stat + prevtotal=$((a+b+c+previdle)) + sleep 0.5 + read cpu a b c idle rest < /proc/stat + total=$((a+b+c+idle)) + cpu=$((100*( (total-prevtotal) - (idle-previdle) ) / (total-prevtotal) )) + echo -e "CPU: $cpu%" +} + +## VOLUME +vol() { + vol=`amixer get Master | awk -F'[][]' 'END{ print $4":"$2 }'` + echo -e "VOL: $vol" +} + +SLEEP_SEC=5 +#loops forever outputting a line every SLEEP_SEC secs +while :; do + echo "$(cpu) | $(mem) | $(hdd) | $(vol) | $(dte)" + sleep $SLEEP_SEC +done