From 62b519dd1ad73867d4afb02785da7e2def5393a2 Mon Sep 17 00:00:00 2001 From: Salt Date: Wed, 23 Aug 2017 00:50:25 -0500 Subject: [PATCH] bspwm, sxhkd: Initialize configuration files --- .config/bspwm/bspwmrc | 64 +++++++++++++++++++++ .config/sxhkd/sxhkdrc | 125 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 189 insertions(+) create mode 100755 .config/bspwm/bspwmrc create mode 100755 .config/sxhkd/sxhkdrc diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc new file mode 100755 index 00000000..7a7c61f2 --- /dev/null +++ b/.config/bspwm/bspwmrc @@ -0,0 +1,64 @@ +#!/bin/bash + +# Copyright (c) 2017 rehashedsalt/vintagesalt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +## PATCH PATH, IF NOT ALREADY DONE +if [[ "$PATH" != "*$HOME/.local/bin" ]]; then + export PATH="$HOME/.local/bin:$PATH" +fi +if [[ "$PATH" != "*$HOME/.bin" ]]; then + export PATH="$HOME/.bin:$PATH" +fi + +## SIMPLE CONFIGURATION +xset -b +xset -dpms +xset s off + +## SERVICES AND DAEMONS +sxhkd & # Simple hotkey daemon +dunst & # Notification daemon +redshift -l 38.627003;-90.199402 & # Eye strain-reducer + +feh --randomize --bg-fill "~/Pictures/Wallpapers/i3" & +compton & # Desktop compositor +polybar top & # Simple bar system for monitoring system + +syncthing -no-browser & # File synchronization daemon + +## LOCKUP +# I autostart my session on all of my machines +# Thus, having a session-side lock screen is kind of important +i3lock -i "~/.i3splash" & + +## bspwm GENERAL CONFIGURATION +bspc monitor -d web music terminal files V VI VII VIII IX touchy + +bspc config border_width 2 +bspc config window_gap 4 + +bspc config split_ratio 0.52 +bspc config borderless_monocle true +bspc config gapless_monocle true + +## bspwm WINDOW RULES +# TODO: Make loads of awesome window rules + diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc new file mode 100755 index 00000000..799025b3 --- /dev/null +++ b/.config/sxhkd/sxhkdrc @@ -0,0 +1,125 @@ +#!/bin/bash + +# terminal emulator +alt + Return + urxvt + +# program launcher +alt + @space + rofi -show drun + +# ssh launcher +alt + @\ + rofi -show ssh + +# make sxhkd reload its configuration files: +alt + Escape + pkill -USR1 -x sxhkd + +# +# bspwm hotkeys +# + +# quit bspwm normally +alt + alt + Escape + bspc quit + +# close and kill +alt + {_,shift + }q + bspc node -{c,k} + +# alternate between the tiled and monocle layout +alt + m + bspc desktop -l next + +# if the current node is automatic, send it to the last manual, otherwise pull the last leaf +alt + y + bspc query -N -n focused.automatic && bspc node -n last.!automatic || bspc node last.leaf -n focused + +# swap the current node and the biggest node +alt + g + bspc node -s biggest + +# +# state/flags +# + +# set the window state +alt + {t,shift + t,s,f} + bspc node -t {tiled,pseudo_tiled,floating,fullscreen} + +# set the node flags +alt + ctrl + {x,y,z} + bspc node -g {locked,sticky,private} + +# +# focus/swap +# + +# focus the node in the given direction +alt + {_,shift + }{h,j,k,l} + bspc node -{f,s} {west,south,north,east} +alt + {_,shift + }{left,down,up,right} + bspc node -{f,s} {west,south,north,east} + +# focus the node for the given path jump +alt + {p,b,comma,period} + bspc node -f @{parent,brother,first,second} + +# focus the next/previous node in the current desktop +alt + {_,shift + }c + bspc node -f {next,prev}.local + +# focus the next/previous desktop in the current monitor +alt + bracket{left,right} + bspc desktop -f {prev,next}.local + +# focus the last node/desktop +alt + {grave,Tab} + bspc {node,desktop} -f last + +# focus the older or newer node in the focus history +alt + {o,i} + bspc wm -h off; \ + bspc node {older,newer} -f; \ + bspc wm -h on + +# focus or send to the given desktop +alt + {_,shift + }{1-9,0} + bspc {desktop -f,node -d} '^{1-9,10}' + +# +# preselect +# + +# preselect the direction +alt + ctrl + {h,j,k,l} + bspc node -p {west,south,north,east} + +# preselect the ratio +alt + ctrl + {1-9} + bspc node -o 0.{1-9} + +# cancel the preselection for the focused node +alt + ctrl + space + bspc node -p cancel + +# cancel the preselection for the focused desktop +alt + ctrl + shift + space + bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel + +# +# move/resize +# + +# expand a window by moving one of its side outward +alt + alt + {h,j,k,l} + bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} + +# contract a window by moving one of its side inward +alt + alt + shift + {h,j,k,l} + bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} + +# move a floating window +alt + {Left,Down,Up,Right} + bspc node -v {-20 0,0 20,0 -20,20 0}