From f6f6157833e015c8afb230fb80dc5c6fea377d17 Mon Sep 17 00:00:00 2001 From: Andrew Scott Date: Thu, 30 Dec 2021 18:12:27 -0500 Subject: [PATCH] Fix rebase conflicts --- Xresources | 76 ++++++++++++++++++++ config/bspwm/bspwmrc | 51 ++++++++++++++ config/polybar/config.ini | 132 +++++++++++++++++++++++++++++++++++ config/sxhkd/sxhkdrc | 142 ++++++++++++++++++++++++++++++++++++++ install.sh | 84 ++++++++++++++++++++++ 5 files changed, 485 insertions(+) create mode 100644 Xresources create mode 100755 config/bspwm/bspwmrc create mode 100644 config/polybar/config.ini create mode 100644 config/sxhkd/sxhkdrc create mode 100755 install.sh diff --git a/Xresources b/Xresources new file mode 100644 index 0000000..6749ac8 --- /dev/null +++ b/Xresources @@ -0,0 +1,76 @@ +! ----------------------------------------------------------------------------- +! Based on: gruvbox-dark.xresources +! Description: Retro groove colorscheme generalized +! Source: https://github.com/morhetz/gruvbox-generalized +! ----------------------------------------------------------------------------- + +! hard contrast: *background: #1d2021 +! medium contrast: *background: #282828 +! soft contrast: *background: #32302f +*background: #1d2021 +*foreground: #ebdbb2 +! Black + DarkGrey +*color0: #282828 +*color8: #928374 +! DarkRed + Red +*color1: #cc241d +*color9: #fb4934 +! DarkGreen + Green +*color2: #98971a +*color10: #b8bb26 +! DarkYellow + Yellow +*color3: #d79921 +*color11: #fabd2f +! DarkBlue + Blue +*color4: #458588 +*color12: #83a598 +! DarkMagenta + Magenta +*color5: #b16286 +*color13: #d3869b +! DarkCyan + Cyan +*color6: #689d6a +*color14: #8ec07c +! LightGrey + White +*color7: #a89984 +*color15: #ebdbb2 + +!!! urxvt +URxvt.perl-ext-common: default,matcher +URxvt*buffered: true +URxvt*saveLines: 5000 +URxvt*cursorBlink: true +URxvt*borderless: 1 +URxvt*internalBorder: 20 +URxvt*scrollBar: false +URxvt.url-launcher: /usr/bin/xdg-open +URxvt.matcher.button: 1 +URxvt.clipboard.autocopy: true + +! do not scroll with output +URxvt*scrollTtyOutput: false +! scroll in relation to buffer (with mouse scroll or Shift+Page Up) +URxvt*scrollWithBuffer: true +! scroll back to the bottom on keypress +URxvt*scrollTtyKeypress: true +! disable scrollback buffer in secondary screen (allows scrolling pager when using 'less' etc) +URxvt.secondaryScreen: 1 +URxvt.secondaryScroll: 0 +! Disable printing the terminal contents when pressing PrintScreen. +URxvt.print-pipe: "cat > /dev/null" +!! copy/paste +! disable default ctrl-shift binding +URxvt.iso14755: false +URxvt.iso14755_52: false +! disable default copy/paste bindings +URxvt.keysym.Control-Meta-c: builtin-string: +URxvt.keysym.Control-Meta-v: builtin-string: +! new copy/paste bindings +URxvt.keysym.Shift-Control-V: eval:paste_clipboard +URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard +!! font +!URxvt.letterSpace: -1 +URxvt.font: xft:Hack:regular:size=12, \ + xft:Font Awesome 5 Brands:Regular:size=10, \ + xft:Font Awesome 5 Free:Solid:size=10, \ + xft:Font Awesome 5 Free:Regular:size=10 + diff --git a/config/bspwm/bspwmrc b/config/bspwm/bspwmrc new file mode 100755 index 0000000..4dea4b5 --- /dev/null +++ b/config/bspwm/bspwmrc @@ -0,0 +1,51 @@ +#!/bin/bash + +bspc monitor DP-0 -d 1 2 3 4 5 +bspc monitor DVI-I-1 -d 6 7 8 9 10 + +bspc config border_width 2 +bspc config window_gap 10 +bspc config top_padding 0 +bspc config bottom_padding 32 +bspc config split_ratio 0.50 +bspc config borderless_monocle true +bspc config gapless_monocle true + +bspc rule -a Galculator state=floating +bspc rule -a vlc state=floating +bspc rule -a blueman-manager state=floating +bspc rule -a Bitwarden state=floating +bspc rule -a Leafpad state=floating + +bspc rule -a firefox desktop='^1' follow=on +bspc rule -a Chromium desktop='^2' follow=on +bspc rule -a Ranger desktop='^3' follow=on +bspc rule -a Thunar desktop='3' follow=on +bspc rule -a Evince desktop='^4' follow=on +bspc rule -a Soffice desktop='^4' follow=on +bspc rule -a Xsane desktop='^4' follow=on state=floating +bspc rule -a Steam desktop='^5' follow=on state=floating +bspc rule -a Lutris desktop='^5' follow=on state=floating +bspc rule -a origin.exe desktop='^5' state=floating +bspc rule -a kitty desktop='^6' follow=on +bspc rule -a URxvt desktop='^6' follow=on +bspc rule -a Emacs desktop='^7' follow=on state=tiled +bspc rule -a jetbrains-pycharm-ce desktop='^7' follow=on +bspc rule -a Clementine desktop='^8' follow=on +bspc rule -a Spotify desktop='^8' follow=on +bspc rule -a Element desktop='^9' +bspc rule -a Slack desktop='^9' +bspc rule -a tutanota-desktop desktop='^10' + +### Focus on 1st workspace by default +bspc desktop -f 1 + +### Autostart +grep -x sxhkd > /dev/null || sxhkd & +xss-lock -n /usr/lib/xsecurelock/dimmer -l -- xsecurelock & +xidlehook --not-when-audio --not-when-fullscreen --timer 360 "xset s activate" "" & +~/.local/bin/dual-polybar-launcher & +sh ~/.fehbg & +dex -ae bspwm & +/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & + diff --git a/config/polybar/config.ini b/config/polybar/config.ini new file mode 100644 index 0000000..32463fb --- /dev/null +++ b/config/polybar/config.ini @@ -0,0 +1,132 @@ +[global/wm] +include-file = ~/.config/polybar/colors.ini +include-file = ~/.config/polybar/modules.ini +include-file = ~/.config/polybar/custom_modules.ini + +margin-bottom = 0 +margin-top = 0 + +[bar/one] +monitor = DP-0 +monitor-fallback = +monitor-strict = false +enable-ipc = true +override-redirect = true +bottom = true +fixed-center = true +width = 100% +height = 32 +offset-x = 0% +offset-y = 0% +background = ${color.background} +foreground = ${color.foreground} +radius-top = 0.0 +radius-bottom = 0.0 +line-size = 0 +line-color = ${color.background} +border-bottom-size = 0 +border-bottom-color = ${color.foreground} +padding = 1 +module-margin-left = 1 +module-margin-right = 0 +seperator = +dim-value = 1.0 +locale = en_US.UTF-8 + +font-0 = Hack:size=10;3 +font-1 = Font Awesome 5 Free:style=Solid:size=12;3 +font-2 = Font Awesome 5 Free:style=Regular:size=12;3 +font-3 = Font Awesome 5 Brands:style=Regular:size=12;3 + +modules-left = workspaces sep title +modules-center = spotify +modules-right = keyboard sep pulseaudio-control sep date sep powermenu + +tray-position = right +tray-detached = false +tray-maxsize = 16 +tray-background = ${color.background} +tray-offset-x = 0 +tray-offset-y = 0 +tray-padding = 0 +tray-scale = 1.0 + +wm-name = bspwm +wm-restack = bspwm +scroll-up = bspwm-desknext +scroll-down = bspwm-deskprev +click-left = +click-middle = +click-right = +;scroll-up = bspc desktop -f prev.local +;scroll-down = bspc desktop -f next.local +double-click-left = +double-click-middle = +double-click-right = +cursor-click = +cursor-scroll = + +[bar/two] +monitor = DVI-I-1 +monitor-fallback = +monitor-strict = false +enable-ipc = true +override-redirect = true +bottom = true +fixed-center = true +width = 100% +height = 32 +offset-x = 0% +offset-y = 0% +background = ${color.background} +foreground = ${color.foreground} +radius-top = 0.0 +radius-bottom = 0.0 +line-size = 0 +line-color = ${color.background} +border-bottom-size = 0 +border-bottom-color = ${color.foreground} +padding = 1 +module-margin-left = 1 +module-margin-right = 1 +seperator = +dim-value = 1.0 +locale = en_US.UTF-8 + +font-0 = Hack:size=10;3 +font-1 = Font Awesome 5 Free:style=Solid:size=12;3 +font-2 = Font Awesome 5 Free:style=Regular:size=12;3 +font-3 = Font Awesome 5 Brands:style=Regular:size=12;3 + +modules-left = workspaces sep title +modules-center = spotify +modules-right = pulseaudio-control sep date sep cpu sep memory sep filesystem + +tray-position = none +tray-detached = false +tray-maxsize = 16 +tray-background = ${color.background} +tray-offset-x = 0 +tray-offset-y = 0 +tray-padding = 0 +tray-scale = 1.0 + +wm-name = bspwm +wm-restack = bspwm +scroll-up = bspwm-desknext +scroll-down = bspwm-deskprev +click-left = +click-middle = +click-right = +;scroll-up = bspc desktop -f prev.local +;scroll-down = bspc desktop -f next.local +double-click-left = +double-click-middle = +double-click-right = +cursor-click = +cursor-scroll = + +[settings] +throttle-output = 5 +throttle-output-for = 10 +screenchange-reload = false diff --git a/config/sxhkd/sxhkdrc b/config/sxhkd/sxhkdrc new file mode 100644 index 0000000..66a1b9b --- /dev/null +++ b/config/sxhkd/sxhkdrc @@ -0,0 +1,142 @@ +# +# wm independent hotkeys +# + +# terminal emulator +super + Return + kitty + +# program launcher +super + @space + rofi -modi drun, run -show drun + +# power menu +super + @Pause + rofi -show power-menu -modi power-menu:/usr/bin/rofi-power-menu + +# make sxhkd reload its configuration files: +super + Escape + pkill -USR1 -x sxhkd + +# Show list of open windows +alt + @Tab + rofi -show window + +# Lock the screen +ctrl + alt + l + xset s activate + +# Screenshot +Print + maim | xclip -selection clipboard -t image/png + +alt + Print + maim -s | xclip -selection clipboard -t image/png + +shift + Print + maim -i $(xdotool getactivewindow) | xclip -selection clipboard -t image/png + +# bspwm hotkeys +# + +# quit/restart bspwm +super + alt + {q,r} + bspc {quit,wm -r} + +# close and kill +super + {_,shift + }q + bspc node -{c,k} + +# alternate between the tiled and monocle layout +super + m + bspc desktop -l next + +# send the newest marked node to the newest preselected node +super + y + bspc node newest.marked.local -n newest.!automatic.local + +# swap the current node and the biggest window +super + g + bspc node -s biggest.window + +# +# state/flags +# + +# set the window state +super + {t,shift + t,s,f} + bspc node -t {tiled,pseudo_tiled,floating,fullscreen} + +# set the node flags +super + ctrl + {m,x,y,z} + bspc node -g {marked,locked,sticky,private} + +# +# focus/swap +# + +# focus the node in the given direction +super + {_,shift + }{h,j,k,l} + bspc node -{f,s} {west,south,north,east} + +# focus the node for the given path jump +super + {p,b,comma,period} + bspc node -f @{parent,brother,first,second} + +# focus the next/previous window in the current desktop +super + {_,shift + }c + bspc node -f {next,prev}.local.!hidden.window + +# focus the next/previous desktop in the current monitor +super + bracket{left,right} + bspc desktop -f {prev,next}.local + +# focus the last node/desktop +super + {grave,Tab} + bspc {node,desktop} -f last + +# focus the older or newer node in the focus history +super + {o,i} + bspc wm -h off; \ + bspc node {older,newer} -f; \ + bspc wm -h on + +# focus or send to the given desktop +super + {_,shift + }{1-9,0} + bspc {desktop -f,node -d} '^{1-9,10}' + +# +# preselect +# + +# preselect the direction +super + ctrl + {h,j,k,l} + bspc node -p {west,south,north,east} + +# preselect the ratio +super + ctrl + {1-9} + bspc node -o 0.{1-9} + +# cancel the preselection for the focused node +super + ctrl + space + bspc node -p cancel + +# cancel the preselection for the focused desktop +super + 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 +super + 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 +super + 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 +super + {Left,Down,Up,Right} + bspc node -v {-20 0,0 20,0 -20,20 0} diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..0c6e022 --- /dev/null +++ b/install.sh @@ -0,0 +1,84 @@ +#!/bin/bash + +backup=~/dotfiles_backup +log_file=~/dotfiles_install.log +dotfiles_dir=~/.dotfiles +config_dir=~/.config +bin_dir=~/.local/bin + + +## Logging +exec 3>&1 4>&2 +trap 'exec 2>&4 1>&3' 0 1 2 3 +exec 1>$log_file 2>&1 + +## Backup current files and folders +mkdir -p $backup +cp -a ~/.bash_profile $backup/ +cp -a ~/.bashrc $backup/ +cp -a ~/.profile $backup/ +cp -a ~/.emacs $backup/ +cp -a ~/.emacs.d $backup/ +cp -a ~/.Xresources $backup/ +cp -a $config_dir/bspwm $backup/ +cp -a $config_dir/dunst $backup/ +cp -a $config_dir/kitty $backup/ +cp -a $config_dir/nvim $backup/ +cp -a $config_dir/polybar $backup/ +cp -a $config_dir/ranger $backup/ +cp -a $bin_dir $backup/ + +# Delete current files and folders +rm -rf ~/.bash_profile +rm -rf ~/.bashrc +rm -rf ~/.profile +rm -rf ~/.emacs +rm -rf ~/.emacs.d +rm -rf ~/.Xresources +rm -rf $config_dir/bspwm +rm -rf $config_dir/dunst +rm -rf $config_dir/kitty +rm -rf $config_dir/nvim +rm -rf $config_dir/polybar +rm -rf $config_dir/ranger/ +rm -rf $bin_dir + +# Create HOME symlinks +ln -sf $dotfiles_dir/bashrc ~/.bashrc +ln -sf $dotfiles_dir/bash_profile ~/.bash_profile +ln -sf $dotfiles_dir/profile ~/.profile +ln -sf $dotfiles_dir/emacs.d ~/.emacs.d +ln -sf $dotfiles_dir/xinitrc ~/.xinitrc +ln -sf $dotfiles_dir/vimrc ~/.vimrc +ln -sf $dotfiles_dir/Xresources ~/.Xresources + +# Create $config_dir, sub-directories, and symlinks +mkdir -p $config_dir/{bspwm,dunst,kitty,nvim,polybar,ranger,rofi,sxhkd} +ln -sf $dotfiles_dir/config/bspwm/bspwmrc $config_dir/bspwm/bspwmrc +ln -sf $dotfiles_dir/config/dunst/dunstrc $config_dir/dunst/dunstrc +ln -sf $dotfiles_dir/config/kitty/kitty.conf $config_dir/kitty/kitty.conf +ln -sf $dotfiles_dir/config/kitty/gruvbox.conf $config_dir/kitty/gruvbox.conf +ln -sf $dotfiles_dir/config/nvim/init.vim $config_dir/nvim/init.vim +ln -sf $dotfiles_dir/config/polybar/config.ini $config_dir/polybar/config.ini +ln -sf $dotfiles_dir/config/polybar/colors.ini $config_dir/polybar/colors.ini +ln -sf $dotfiles_dir/config/polybar/modules.ini $config_dir/polybar/modules.ini +ln -sf $dotfiles_dir/config/polybar/custom_modules.ini $config_dir/polybar/custom_modules.ini +ln -sf $dotfiles_dir/config/ranger/commands_full.py $config_dir/ranger/commands_full.py +ln -sf $dotfiles_dir/config/ranger/commands.py $config_dir/ranger/commands.py +ln -sf $dotfiles_dir/config/ranger/rc.conf $config_dir/ranger/rc.conf +ln -sf $dotfiles_dir/config/ranger/rifle.conf $config_dir/ranger/rifle.conf +ln -sf $dotfiles_dir/config/ranger/scope.sh $config_dir/ranger/scope.sh +ln -sf $dotfiles_dir/config/rofi/config.rasi $config_dir/rofi/config.rasi +ln -sf $dotfiles_dir/config/sxhkd/sxhkdrc $config_dir/sxhkd/sxhkdrc + +# Create $bin_dir and symlinks +mkdir -p $bin_dir +ln -sf $dotfiles_dir/bin/mirror-outputs $bin_dir +ln -sf $dotfiles_dir/bin/dual-polybar-launcher $bin_dir +ln -sf $dotfiles_dir/bin/toggle-wifi $bin_dir + +# Finishing up +source ~/.bashrc +source ~/.bash_profile +xrdb ~/.Xresources +