diff --git a/archive.sh b/archive.sh index a71a708..a98157a 100755 --- a/archive.sh +++ b/archive.sh @@ -3,30 +3,36 @@ dir=$PWD scripts_subdir=$(echo "$PWD/scripts") -rsync -a ~/pictures/wallpapers/* wallpapers/ +# rsync -a ~/pictures/wallpapers/* wallpapers/ cd config rsync -a ~/.config/kitty . -rsync -a --exclude 'bookmarks' ~/.config/qutebrowser . +rsync -a \ + --exclude 'bookmarks' \ + --exclude 'quickmarks' \ + --exclude 'qsettings' \ + --exclude 'autoconfig.yml' \ + ~/.config/qutebrowser . rsync -a ~/.config/bspwm . rsync -a ~/.config/sxhkd . -rsync -a ~/.config/tint2/tint2rc tint2/ -rsync -a ~/.config/lxqt . +rsync -a ~/.config/xfce4 \ + --exclude 'desktop' . rsync -a ~/.config/rofi . -cp ~/.config/picom.conf . +# cp ~/.config/picom.conf . cd ~/bin cp \ +bsp-auto-monitors \ bsp-float \ -bsp-floating-only \ +bsp-key-daemon \ bsp-smove \ -bsp-status \ -bsp-toggle-visibility \ -ezmount \ -pfetch \ -qutesearch \ -rofi-ask \ -tabc-smart-detach \ +le-keyboard \ sxhkd-help \ -web \ -$scripts_subdir \ No newline at end of file +change-scheme \ +le-wallpaper \ +xfce4-le-wallpaper \ +qutebrowser \ +qutesearch \ +rack \ +f \ +"$scripts_subdir" diff --git a/config/bspwm/bspwmrc b/config/bspwm/bspwmrc index 1646f6f..b3463fc 100755 --- a/config/bspwm/bspwmrc +++ b/config/bspwm/bspwmrc @@ -1,12 +1,9 @@ -#! /bin/sh +#!/bin/sh -# Import user bin for sxhkd -PATH="/home/dakedres/bin:$PATH" - -pgrep -x sxhkd > /dev/null || sxhkd & wmname LG3D & -bspc monitor -d I II III IV V +bsp-auto-monitors +bsp-key-daemon bspc config border_width 1 bspc config window_gap 4 @@ -15,7 +12,7 @@ bspc config split_ratio 0.52 bspc config borderless_monocle true bspc config gapless_monocle true -bspc config pointer_modifier mod1 +bspc config pointer_modifier mod4 bspc config pointer_action1 move # bspc config pointer_action2 resize_side bspc config pointer_action2 resize_corner @@ -26,6 +23,7 @@ bspc config focus_follows_pointer true bspc config pointer_follows_focus true bspc rule -a KittyScratch state=floating +bspc rule -a Wrapper-2.0 state=floating # Xfce start menu bspc rule -a Gimp state=floating bspc rule -a Chromium desktop='^2' bspc rule -a mplayer2 state=floating @@ -33,5 +31,6 @@ bspc rule -a Kupfer.py focus=on bspc rule -a Screenkey manage=off xsetroot -cursor_name left_ptr & +$(dirname $0)/colors -export _JAVA_AWT_WM_NONREPARENTING=1 \ No newline at end of file +export _JAVA_AWT_WM_NONREPARENTING=1 diff --git a/config/bspwm/colors b/config/bspwm/colors new file mode 100755 index 0000000..796ee24 --- /dev/null +++ b/config/bspwm/colors @@ -0,0 +1,3 @@ +bspc config normal_border_color "#2E303E" +bspc config active_border_color "#6F6F70" +bspc config focused_border_color "#9DA0A2" diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf index 4d6f2d0..34929f8 100644 --- a/config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -1,9 +1,12 @@ # Theme: https://github.com/alternateved/kaolin-inspired/blob/main/kaolin-dark/kitty/Kaolin_Dark.conf -shell fish editor micro +confirm_os_window_close 0 + enable_audio_bell no +visual_bell_duration 0.6 +visual_bell_color #111111 font_family Ubuntu Mono bold_font Ubuntu Medium @@ -11,59 +14,51 @@ italic_font Ubuntu Italic bold_italic_font Ubuntu Medium Italic font_size 11.5 -## name: Kaolin Dark -## author: Ogden Webb -## license: GNU GPLv3 -## blurb: Dark jade theme inspired by Sierra.vim. +#START SHCHEMES BLOCK : shchemes create_theme kitty +# Base16 - kitty color config +# Scheme by +visual_bell_color #171921 -# The basic colors -foreground #E4E4E8 -background #18181B -selection_foreground #18181B -selection_background #E4E4E8 +background #1C1E26 +foreground #CBCED0 +selection_background #CBCED0 +selection_foreground #1C1E26 +url_color #26BBD9 +cursor #26BBD9 +cursor_text_color #1C1E26 +active_border_color #6F6F70 +inactive_border_color #232530 +active_tab_background #1C1E26 +active_tab_foreground #CBCED0 +inactive_tab_background #232530 +inactive_tab_foreground #9DA0A2 -# Cursor colors -cursor #E4E4E8 -cursor_text_color #ffffff +# Normal +color0 #1C1E26 +color1 #E95678 +color2 #29D398 +color3 #FAC29A +color4 #26BBD9 +color5 #EE64AC +color6 #59E1E3 +color7 #CBCED0 -# kitty window border colors -active_border_color #4D9391 -inactive_border_color #4B5254 +# Bright (same as Normal except 8/15) +color8 #6F6F70 +color9 #E95678 +color10 #29D398 +color11 #FAC29A +color12 #26BBD9 +color13 #EE64AC +color14 #59E1E3 +color15 #E3E6EE -# Tab bar colors -active_tab_background #E4E4E8 -active_tab_foreground #18181B -inactive_tab_background #879193 -inactive_tab_foreground #18181B +# Other (like base16-shell) +color16 #FAB795 +color17 #F09383 +color18 #232530 +color19 #2E303E +color20 #9DA0A2 +color21 #DCDFE4 -# black -color0 #4B5254 -color8 #879193 - -# red -color1 #CD5C60 -color9 #E36D5B - -# green -color2 #6FB593 -color10 #72CCBA - -# yellow -color3 #DBAC66 -color11 #F2C866 - -# blue -color4 #91B9C7 -color12 #97B8DE - -# magenta -color5 #845A84 -color13 #8C629C - -# cyan -color6 #4D9391 -color14 #5096AB - -# white -color7 #E4E4E8 -color15 #EFEFF1 +#END SHCHEMES BLOCK diff --git a/config/qutebrowser/config.py b/config/qutebrowser/config.py index 038a55c..9a42300 100644 --- a/config/qutebrowser/config.py +++ b/config/qutebrowser/config.py @@ -1,28 +1,68 @@ -# Theme: https://github.com/alternateved/kaolin-inspired/blob/main/kaolin-dark/qutebrowser/default/base16-kaolin-dark.config.py - config.load_autoconfig() -# base16-qutebrowser (https://github.com/theova/base16-qutebrowser) -# Base16 qutebrowser template by theova -# Kaolin-dark scheme by alternateved (http://github.com/alternateved) -# Inspired by (https://github.com/ogdenwebb/emacs-kaolin-themes) +# c.tabs.tabs_are_windows = True +# +# c.content.autoplay.global = False -base00 = "#18181B" -base01 = "#222225" -base02 = "#4B5254" -base03 = "#545C5E" -base04 = "#879193" -base05 = "#9ba5a7" -base06 = "#d0d0d4" -base07 = "#E4E4E8" -base08 = "#CD5C60" -base09 = "#DBAC66" -base0A = "#F2C866" -base0B = "#6FB593" -base0C = "#4D9391" -base0D = "#91B9C7" -base0E = "#845A84" -base0F = "#E36D5B" +c.tabs.tabs_are_windows = True +c.tabs.show = "never" + +c.content.autoplay = False + +c.colors.webpage.preferred_color_scheme + +config.bind('h', 'back') +config.bind('l', 'forward') +config.bind('J', 'scroll-page 0 1') +config.bind('K', 'scroll-page 0 -1') + +config.bind('gp', 'mode-enter passthrough') + +c.hints.selectors["bookmarks"] = [ + "h1[id]", + "h2[id]", + "h3[id]", + "h4[id]", + "h5[id]", + "h6[id]", + "h1 > a[id]", + "h2 > a[id]", + "h3 > a[id]", + "h4 > a[id]", + "h5 > a[id]", + "h6 > a[id]", + "header[id]", + "footer[id]", + "article[id]", + "section[id]", + "p[id]", + "div[itemtype=\"https://schema.org/Answer\"]" # Stackoverflow answers +] +config.bind(';b', 'hint bookmarks userscript copy-bookmark') + +#START SHCHEMES BLOCK : shchemes create_theme qutebrowser +# base16-qutebrowser (https://github.com/theova/base16-qutebrowser) +# Scheme name: +# Scheme author: +# Template author: theova +# Commentary: Tinted Theming: (https://github.com/tinted-theming) + +base00 = "#1C1E26" +base01 = "#232530" +base02 = "#2E303E" +base03 = "#6F6F70" +base04 = "#9DA0A2" +base05 = "#CBCED0" +base06 = "#DCDFE4" +base07 = "#E3E6EE" +base08 = "#E95678" +base09 = "#FAB795" +base0A = "#FAC29A" +base0B = "#29D398" +base0C = "#59E1E3" +base0D = "#26BBD9" +base0E = "#EE64AC" +base0F = "#F09383" # set qutebrowser colors @@ -302,4 +342,6 @@ c.colors.tabs.selected.even.bg = base02 # Background color for webpages if unset (or empty to use the theme's # color). -# c.colors.webpage.bg = base00 \ No newline at end of file +# c.colors.webpage.bg = base00 + +#END SHCHEMES BLOCK diff --git a/config/qutebrowser/quickmarks b/config/qutebrowser/quickmarks deleted file mode 100644 index cde93fe..0000000 --- a/config/qutebrowser/quickmarks +++ /dev/null @@ -1 +0,0 @@ -Uxn tutorial d2 https://compudanzas.net/uxn_tutorial_day_2.html diff --git a/config/rofi/config.rasi b/config/rofi/config.rasi index c74465b..74b4a3a 100644 --- a/config/rofi/config.rasi +++ b/config/rofi/config.rasi @@ -1,6 +1,25 @@ configuration { modes: [ combi ]; combi-modes: [ window, drun, run, dmenu ]; + font: "Inconsolata 13"; } -@theme "theme" \ No newline at end of file +@theme "theme" + +window { + location: north; + anchor: north; + background-color: @background; + border: 1; + padding: 5; + y-offset: 29; +} + +element-icon { + size: 1em; + padding: 2px; +} + +element-text { + vertical-align: 0.5; +} diff --git a/config/rofi/theme.rasi b/config/rofi/theme.rasi index 59ba0bd..0839b08 100644 --- a/config/rofi/theme.rasi +++ b/config/rofi/theme.rasi @@ -1,159 +1,150 @@ -// Kaolin Dark theme for Rofi -// by Dakedres -// edited from a theme by Qball +/** + * Base16 ROFI Color theme + * + * Authors + * Scheme: + * Template: Tinted Theming (https://github.com/tinted-theming) + */ * { - base00: #18181B; - base01: #222225; - base02: #4B5254; - base03: #545C5E; - base04: #879193; - base05: #9ba5a7; - base06: #d0d0d4; - base07: #E4E4E8; - base08: #CD5C60; - base09: #DBAC66; - base0A: #F2C866; - base0B: #6FB593; - base0C: #4D9391; - base0D: #91B9C7; - base0E: #845A84; - base0F: #E36D5B; - - foreground: @base05; + red: rgba ( 233, 86, 120, 100 % ); + blue: rgba ( 38, 187, 217, 100 % ); + lightfg: rgba ( 220, 223, 228, 100 % ); + lightbg: rgba ( 35, 37, 48, 100 % ); + foreground: rgba ( 203, 206, 208, 100 % ); + background: rgba ( 28, 30, 38, 100 % ); + background-color: rgba ( 28, 30, 38, 0 % ); + separatorcolor: @foreground; + border-color: @foreground; + selected-normal-foreground: @lightbg; + selected-normal-background: @lightfg; + selected-active-foreground: @background; + selected-active-background: @blue; + selected-urgent-foreground: @background; + selected-urgent-background: @red; normal-foreground: @foreground; + normal-background: @background; + active-foreground: @blue; + active-background: @background; + urgent-foreground: @red; + urgent-background: @background; alternate-normal-foreground: @foreground; - selected-urgent-foreground: rgba ( 245, 245, 245, 100 % ); - urgent-foreground: rgba ( 215, 95, 0, 100 % ); - alternate-urgent-background: rgba ( 208, 208, 208, 100 % ); - active-foreground: rgba ( 0, 95, 135, 100 % ); - selected-active-foreground: rgba ( 245, 245, 245, 100 % ); - background: @base00; - normal-background: @base00; - alternate-normal-background: @base01; - selected-normal-background: @base0C; - selected-normal-foreground: @base07; - border-color: @base02; + alternate-normal-background: @lightbg; + alternate-active-foreground: @blue; + alternate-active-background: @lightbg; + alternate-urgent-foreground: @red; + alternate-urgent-background: @lightbg; spacing: 2; - separator: @border-color; - urgent-background: rgba ( 245, 245, 245, 100 % ); - selected-urgent-background: rgba ( 215, 95, 0, 100 % ); - alternate-urgent-foreground: @urgent-foreground; - background-color: rgba ( 0, 0, 0, 0 % ); - active-background: @base0C; - alternate-active-background: @active-background; - selected-active-background: @active-background; } window { - location: north; - anchor: north; background-color: @background; border: 1; padding: 5; - y-offset: 20; - c: "Ubuntu Mono 11"; } mainbox { - border: 0; - padding: 0; + border: 0; + padding: 0; } message { - border: 2px 0px 0px ; - border-color: @separator; - padding: 1px ; + border: 1px dash 0px 0px ; + border-color: @separatorcolor; + padding: 1px ; } textbox { - text-color: @foreground; + text-color: @foreground; } listview { - fixed-height: 0; - border: 2px 0px 0px ; - border-color: @separator; - spacing: 2px ; - scrollbar: true; - padding: 2px 0px 0px ; + fixed-height: 0; + border: 2px dash 0px 0px ; + border-color: @separatorcolor; + spacing: 2px ; + scrollbar: true; + padding: 2px 0px 0px ; } -element { - border: 0; - padding: 1px ; -} -element-text { +element-text, element-icon { background-color: inherit; text-color: inherit; } -element.normal.normal { +element { + border: 0; + padding: 1px ; +} +element normal.normal { background-color: @normal-background; text-color: @normal-foreground; } -element.normal.urgent { +element normal.urgent { background-color: @urgent-background; text-color: @urgent-foreground; } -element.normal.active { +element normal.active { background-color: @active-background; text-color: @active-foreground; } -element.selected.normal { +element selected.normal { background-color: @selected-normal-background; text-color: @selected-normal-foreground; } -element.selected.urgent { +element selected.urgent { background-color: @selected-urgent-background; text-color: @selected-urgent-foreground; } -element.selected.active { +element selected.active { background-color: @selected-active-background; text-color: @selected-active-foreground; } -element.alternate.normal { +element alternate.normal { background-color: @alternate-normal-background; text-color: @alternate-normal-foreground; } -element.alternate.urgent { +element alternate.urgent { background-color: @alternate-urgent-background; text-color: @alternate-urgent-foreground; } -element.alternate.active { +element alternate.active { background-color: @alternate-active-background; text-color: @alternate-active-foreground; } scrollbar { - width: 4px ; - border: 0; - handle-width: 8px ; - padding: 0; + width: 4px ; + border: 0; + handle-color: @normal-foreground; + handle-width: 8px ; + padding: 0; } -mode-switcher { - border: 2px 0px 0px ; - border-color: @separator; +sidebar { + border: 2px dash 0px 0px ; + border-color: @separatorcolor; } -button.selected { +button { + spacing: 0; + text-color: @normal-foreground; +} +button selected { background-color: @selected-normal-background; text-color: @selected-normal-foreground; } inputbar { - spacing: 0; - text-color: @normal-foreground; - padding: 1px ; + spacing: 0px; + text-color: @normal-foreground; + padding: 1px ; + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; } case-indicator { - spacing: 0; - text-color: @normal-foreground; + spacing: 0; + text-color: @normal-foreground; } entry { - spacing: 0; - text-color: @normal-foreground; + spacing: 0; + text-color: @normal-foreground; } prompt { - spacing: 0; - text-color: @normal-foreground; -} -inputbar { - children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; + spacing: 0; + text-color: @normal-foreground; } textbox-prompt-colon { - expand: false; - str: ":"; - margin: 0px 0.3em 0em 0em ; - text-color: @normal-foreground; + expand: false; + str: ":"; + margin: 0px 0.3000em 0.0000em 0.0000em ; + text-color: inherit; } diff --git a/config/sxhkd/sxhkdrc b/config/sxhkd/sxhkdrc old mode 100755 new mode 100644 index ab1f572..db8f1ad --- a/config/sxhkd/sxhkdrc +++ b/config/sxhkd/sxhkdrc @@ -3,85 +3,99 @@ # # Open kitty -alt + Return +super + Return kitty # Open floating kitty -alt + shift + Return +super + shift + Return bsp-float kitty -# launch program -alt + @space +# launch program (drun) +super + @space + rofi -show drun -show-icons + +# launch program (standard run) +super + shift + @space rofi -show run - -# launch program as root -alt + shift + @space - rofi-ask rofi -show drun -run-command "sudo -A {cmd}" # make sxhkd reload its configuration files: -alt + Escape - pkill -USR1 -x sxhkd; notify-send 'Key daemon reloaded' +super + Escape + pkill -USR1 -x sxhkd && notify-send 'Key daemon reloaded' +super + alt + Menu + le-keyboard && notify-send 'Remapped Keyboard' + # Start a qutebrowser search -alt + o +super + o qutesearch # Show keybinds -alt + slash +super + slash sxhkd-help # Show clipmenu -alt + v - rofi -modi "clipboard:greenclip print" -show clipboard -run-command '{cmd}' +super + v + xfce4-popup-clipman + +# Exit session +super + q + xfce4-session-logout -alt + shift + v - greenclip clear +# Lock screen +super + shift + q + xflock4 + +# Open task manager +super + t + # Arguable how valuable this is tbh + bsp-float xfce4-taskmanager + +# Screenshot region +super + Print + xfce4-screenshooter -r # # bspwm hotkeys # # quit/restart bspwm -alt + shift + {q,r} +super + shift + {q,r} bspc {quit,wm -r} # close and kill -alt + {_,shift + }w +super + {_,shift + }w bspc node -{c,k} -alt + q - bspc node -c - -# alternate between the tiled and monocle layout -alt + m +# superernate between the tiled and monocle layout +super + m bspc desktop -l next # send the newest marked node to the newest preselected node -alt + y +super + y bspc node newest.marked.local -n newest.!automatic.local # swap the current node and the biggest window -alt + g +super + g bspc node -s biggest.window # Reveal hidden kitty (scratchpad) -alt + super + Return +super + alt + Return bsp-toggle-visibility KittyScratch "kitty --class KittyScratch" -# flameshot -alt + Print - flameshot gui +# Plumb selected text +super + c + eval $(sselp | goawk $(cat ~/plumber.awk)) # # state/flags # # set the window state -alt + {z,shift + z,x,f} +super + {z,shift + z,x,f} bspc node -t {tiled,pseudo_tiled,floating,fullscreen} # set the node flags -alt + ctrl + {m,x,y,z} +super + ctrl + {m,x,y,z} bspc node -g {marked,locked,sticky,private} # @@ -89,53 +103,56 @@ alt + ctrl + {m,x,y,z} # # focus the node in the given direction -alt + {h,j,k,l,Left,Down,Up,Right} +super + {h,j,k,l,Left,Down,Up,Right} bspc node -{f} {west,south,north,east,west,south,north,east} # focus the node for the given path jump -alt + {p,b,comma,period} +super + {p,b,comma,period} bspc node -f @{parent,brother,first,second} -# focus the next/previous window in the current desktop -alt + {a,d} - bspc node -f {next,prev}.local.!hidden.window +# # focus the next/previous window in the current desktop +# super + {a,d} +# bspc node -f {next,prev}.local.!hidden.window +# Rotate tree +super + {d,a} + bspc node @/ -C {forward,backward} # focus the next/previous desktop in the current monitor -alt + bracket{left,right} +super + bracket{left,right} bspc desktop -f {prev,next}.local # focus the last node/desktop -alt + {grave,Tab} +super + {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 +# super + {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}' +super + {_,shift + }{1-6} + bspc {desktop -f,node -d} '^{1-6}' # # preselect # # preselect the direction -alt + ctrl + shift {h,j,k,l,Left,Down,Up,Right} +super + ctrl + shift {h,j,k,l,Left,Down,Up,Right} bspc node -p {west,south,north,east,west,south,north,east} # preselect the ratio -alt + ctrl + {1-9} +super + ctrl + {1-9} bspc node -o 0.{1-9} # cancel the preselection for the focused node -alt + ctrl + space +super + ctrl + space bspc node -p cancel # cancel the preselection for the focused desktop -alt + ctrl + shift + space +super + ctrl + shift + space bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel # @@ -143,17 +160,17 @@ alt + ctrl + shift + space # # Resize a window by moving one of its side outward/inward -alt + s ; {h,j,k,l,Left,Down,Up,Right} +super + s ; {h,j,k,l,Left,Down,Up,Right} STEP=20; SELECTION={1,2,3,4,1,2,3,4}; \ bspc node -z $(echo "left -$STEP 0,bottom 0 $STEP,top 0 -$STEP,right $STEP 0" | cut -d',' -f$SELECTION) || \ bspc node -z $(echo "right -$STEP 0,top 0 $STEP,bottom 0 -$STEP,left $STEP 0" | cut -d',' -f$SELECTION) # move a floating window -alt + {h,j,k,l} +super + {h,j,k,l} bspc node -v {-30 0,0 20,0 -30,20 0} -# move a not-floating window -alt + shift + {h,j,k,l,Left,Down,Up,Right} +# move a window +super + shift + {h,j,k,l,Left,Down,Up,Right} bsp-smove {west,south,north,east,west,south,north,east} # @@ -161,16 +178,29 @@ alt + shift + {h,j,k,l,Left,Down,Up,Right} # # move in/out of tabbed container -alt + ctrl + {h,j,k,l,Left,Down,Up,Right} +super + ctrl + {h,j,k,l,Left,Down,Up,Right} tabc-smart-detach {west,south,north,east,west,south,north,east} # tab/untab window -alt + t +super + t id=$(bspc query -N -n); \ [[ "$(tabc printclass $id)" == "tabbed" ]] \ && tabc detach $id \ || tabc create $id # toggle autoattach in tabbed container -alt + shift + t - tabc autoattach $(bspc query -N -n) \ No newline at end of file +super + shift + t + tabc autoattach $(bspc query -N -n) + +# +# Program launching binds +# + +super + 8 + vesktop + +super + 9 + bitwarden + +super + 0 + kitty --hold sh -c micro diff --git a/config/sxhkd/sxhkdrc.old b/config/sxhkd/sxhkdrc.old new file mode 100755 index 0000000..ab1f572 --- /dev/null +++ b/config/sxhkd/sxhkdrc.old @@ -0,0 +1,176 @@ +# +# wm independent hotkeys +# + +# Open kitty +alt + Return + kitty + +# Open floating kitty +alt + shift + Return + bsp-float kitty + +# launch program +alt + @space + rofi -show run + +# launch program as root +alt + shift + @space + rofi-ask rofi -show drun -run-command "sudo -A {cmd}" + +# make sxhkd reload its configuration files: +alt + Escape + pkill -USR1 -x sxhkd; notify-send 'Key daemon reloaded' + +# Start a qutebrowser search +alt + o + qutesearch + +# Show keybinds +alt + slash + sxhkd-help + +# Show clipmenu +alt + v + rofi -modi "clipboard:greenclip print" -show clipboard -run-command '{cmd}' + +alt + shift + v + greenclip clear + +# +# bspwm hotkeys +# + +# quit/restart bspwm +alt + shift + {q,r} + bspc {quit,wm -r} + +# close and kill +alt + {_,shift + }w + bspc node -{c,k} + +alt + q + bspc node -c + +# alternate between the tiled and monocle layout +alt + m + bspc desktop -l next + +# send the newest marked node to the newest preselected node +alt + y + bspc node newest.marked.local -n newest.!automatic.local + +# swap the current node and the biggest window +alt + g + bspc node -s biggest.window + +# Reveal hidden kitty (scratchpad) +alt + super + Return + bsp-toggle-visibility KittyScratch "kitty --class KittyScratch" + +# flameshot +alt + Print + flameshot gui + +# +# state/flags +# + +# set the window state +alt + {z,shift + z,x,f} + bspc node -t {tiled,pseudo_tiled,floating,fullscreen} + +# set the node flags +alt + ctrl + {m,x,y,z} + bspc node -g {marked,locked,sticky,private} + +# +# focus/swap +# + +# focus the node in the given direction +alt + {h,j,k,l,Left,Down,Up,Right} + bspc node -{f} {west,south,north,east,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 window in the current desktop +alt + {a,d} + bspc node -f {next,prev}.local.!hidden.window + +# 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 + shift {h,j,k,l,Left,Down,Up,Right} + bspc node -p {west,south,north,east,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 +# + +# Resize a window by moving one of its side outward/inward +alt + s ; {h,j,k,l,Left,Down,Up,Right} + STEP=20; SELECTION={1,2,3,4,1,2,3,4}; \ + bspc node -z $(echo "left -$STEP 0,bottom 0 $STEP,top 0 -$STEP,right $STEP 0" | cut -d',' -f$SELECTION) || \ + bspc node -z $(echo "right -$STEP 0,top 0 $STEP,bottom 0 -$STEP,left $STEP 0" | cut -d',' -f$SELECTION) + +# move a floating window +alt + {h,j,k,l} + bspc node -v {-30 0,0 20,0 -30,20 0} + +# move a not-floating window +alt + shift + {h,j,k,l,Left,Down,Up,Right} + bsp-smove {west,south,north,east,west,south,north,east} + +# +# tabs +# + +# move in/out of tabbed container +alt + ctrl + {h,j,k,l,Left,Down,Up,Right} + tabc-smart-detach {west,south,north,east,west,south,north,east} + +# tab/untab window +alt + t + id=$(bspc query -N -n); \ + [[ "$(tabc printclass $id)" == "tabbed" ]] \ + && tabc detach $id \ + || tabc create $id + +# toggle autoattach in tabbed container +alt + shift + t + tabc autoattach $(bspc query -N -n) \ No newline at end of file diff --git a/config/xfce4/helpers.rc b/config/xfce4/helpers.rc new file mode 100644 index 0000000..0d27a76 --- /dev/null +++ b/config/xfce4/helpers.rc @@ -0,0 +1,2 @@ +WebBrowser=custom-WebBrowser + diff --git a/config/xfce4/panel/xfce4-clipman-actions.xml b/config/xfce4/panel/xfce4-clipman-actions.xml new file mode 100644 index 0000000..9de88e8 --- /dev/null +++ b/config/xfce4/panel/xfce4-clipman-actions.xml @@ -0,0 +1,44 @@ + + + + Bugz + bug\s*#?\s*([0-9]+) + 0 + + + GNOME Bug + exo-open http://bugzilla.gnome.org/show_bug.cgi?id=\1 + + + Xfce Bug + exo-open http://bugzilla.xfce.org/show_bug.cgi?id=\1 + + + + + Image + (http|ftp).+\.(jpg|png|gif) + 0 + + + View with Ristretto + ristretto "\0" + + + Edit with Gimp + gimp-remote "\0" + + + + + Long URL + https?://[^\s]{120,} + 0 + + + Shrink the URL + exo-open http://tinyurl.com/create.php?url=\0 + + + + \ No newline at end of file diff --git a/config/xfce4/xfce4-screenshooter b/config/xfce4/xfce4-screenshooter new file mode 100644 index 0000000..06e7a55 --- /dev/null +++ b/config/xfce4/xfce4-screenshooter @@ -0,0 +1,13 @@ +app=/usr/bin/display-im6.q16 +custom_action_command=none +last_user= +last_extension=png +enable_imgur_upload=true +show_in_folder=false +screenshot_dir=file:/home/dakedres/documents +action=2 +delay=0 +region=3 +show_mouse=1 +show_border=1 + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/displays.xml b/config/xfce4/xfconf/xfce-perchannel-xml/displays.xml new file mode 100644 index 0000000..883245f --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/displays.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xml b/config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xml new file mode 100644 index 0000000..b536a7e --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml b/config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml new file mode 100644 index 0000000..9fd09d6 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml b/config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml new file mode 100644 index 0000000..5f1a8e7 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-appfinder.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-appfinder.xml new file mode 100644 index 0000000..75cf55d --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-appfinder.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml new file mode 100644 index 0000000..4b868ce --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml new file mode 100644 index 0000000..c825d97 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-notifyd.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-notifyd.xml new file mode 100644 index 0000000..89e9057 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-notifyd.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml new file mode 100644 index 0000000..a6080c9 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml new file mode 100644 index 0000000..f1a16af --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml new file mode 100644 index 0000000..932a482 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml new file mode 100644 index 0000000..4ad5c08 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-editor.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-editor.xml new file mode 100644 index 0000000..82a2357 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-editor.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-manager.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-manager.xml new file mode 100644 index 0000000..8916f54 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-manager.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-taskmanager.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-taskmanager.xml new file mode 100644 index 0000000..8f26c64 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-taskmanager.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml new file mode 100644 index 0000000..6063e18 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml b/config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml new file mode 100644 index 0000000..4d886a5 --- /dev/null +++ b/config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/scripts/bsp-auto-monitors b/scripts/bsp-auto-monitors new file mode 100755 index 0000000..9b4cc1c --- /dev/null +++ b/scripts/bsp-auto-monitors @@ -0,0 +1,14 @@ +#!/bin/env bash + +monitors=($(xrandr | grep " connected " | awk '{ print$1 }')) +monitorcount=${#monitors[*]} +names=(I II III IV V) + +if [ $monitorcount -eq 1 ]; then + bspc monitor -d ${names[@]} +else + for((i=0; i<${monitorcount}; i++)); do + name=${names[$i]} + bspc monitor ${monitors[$i]} -d ${name}-0 ${name}-1 + done +fi diff --git a/scripts/bsp-key-daemon b/scripts/bsp-key-daemon new file mode 100755 index 0000000..077ffe7 --- /dev/null +++ b/scripts/bsp-key-daemon @@ -0,0 +1,6 @@ +#!/bin/sh + +# Make sure user bin is imported for sxhkd +PATH="/home/dakedres/bin:$PATH" + +pgrep -x sxhkd > /dev/null || sxhkd & diff --git a/scripts/change-scheme b/scripts/change-scheme new file mode 100755 index 0000000..10b56bb --- /dev/null +++ b/scripts/change-scheme @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + + +# Favorites: +# - horizon-terminal-dark +# - heetch +# - blueforest +# - tarot + +if [[ -n "$1" ]]; then + export SCHEME=$1 +fi + +if ! shchemes install_tinted_scheme; then + exit 1 +fi + +shchemes inject "$HOME/.profile" + +shchemes inject "$HOME/.config/qutebrowser/config.py" +pkill -HUP qutebrowser + +BSPWM_THEME="$HOME/.config/bspwm/colors" +shchemes create_theme bspwm > "$BSPWM_THEME" +"$BSPWM_THEME" + +shchemes inject "$HOME/.config/kitty/kitty.conf" +pkill -SIGUSR1 kitty + +shchemes create_theme rofi > "$HOME/.config/rofi/theme.rasi" +shchemes create_theme better-discord > "$HOME/.config/vesktop/themes/.theme.css" +shchemes create_theme obsidian > "$HOME/media/vault/.obsidian/themes/base16.css" + +"$HOME/repos/oomox-gtk-theme/change_color.sh" -o base16 <(shchemes create_theme oomox-gtk) + +# Reload XFCE theme +xfconf-query -c xsettings -p /Net/ThemeName -r +xfconf-query -c xsettings -p /Net/ThemeName -s base16 + +le-wallpaper + +# WALLPAPER_OUT="$HOME/.wallpaper.png" +# shchemes create_theme imagemagick \ + # | convert ~/pictures/wallpapers/tradin.jpg -dither FloydSteinberg -colorspace srgb -remap txt:- "$WALLPAPER_OUT" +# feh --bg-scale "$WALLPAPER_OUT" + +# terminal=$(ps -o comm= -p "$(($(ps -o ppid= -p "$(($(ps -o sid= -p "$$")))")))") +# if [[ "$terminal" == "kitty" ]]; then + # tmp=$(mktemp) + # shchemes create_theme imagemagick \ + # | convert txt:- -filter point -resize 2400% "$tmp" + # kitty +kitten icat "$tmp" +# fi diff --git a/scripts/f b/scripts/f new file mode 100755 index 0000000..0cc4536 --- /dev/null +++ b/scripts/f @@ -0,0 +1,32 @@ +#!/bin/sh + +path=$1 + +if [ -z "$path" ]; then + path="." +fi + +if [ -d "$path" ]; then + ls -lh --color=tty "$path" +else + if [ ! -f "$path" ]; then + echo "No such file: $path" + exit 0 + fi + + format="$(file -i "$path" | cut -d' ' -f2)" + format="${format%%/*}" + + case "$format" in + "text") + batcat "$path" --paging=never + ;; + + "image") + kitty +kitten icat "$path" + ;; + + *) + xdg-open "$path" + esac +fi diff --git a/scripts/le-keyboard b/scripts/le-keyboard new file mode 100755 index 0000000..1e4263d --- /dev/null +++ b/scripts/le-keyboard @@ -0,0 +1,2 @@ +setxkbmap -option altwin:swap_alt_win +setxkbmap -option caps:swapescape diff --git a/scripts/le-wallpaper b/scripts/le-wallpaper new file mode 100755 index 0000000..0130aa8 --- /dev/null +++ b/scripts/le-wallpaper @@ -0,0 +1,58 @@ +#!/bin/env bash + +if [ -f "$HOME/.profile" ]; then + source "$HOME/.profile" +fi + +# Note: In the future, when multi-monitor support is added, the monitor offset could be retrieved from xrandr +# here and fed into feh using --geometry +monitor=($(xrandr | grep " connected" | head -n 1 | awk '{ split($4, a, /[+x]/); print $1 " " a[1] " " a[2]; }')) +monitor_name="${monitor[0]}" +monitor_width="${monitor[1]}" +monitor_height="${monitor[2]}" +prop="/backdrop/screen0/monitor${monitor_name}/workspace0/last-image" + +path="$1" +wallpaper_dir="$HOME/.local/share/le_wallpaper" +wallpaper_path="${wallpaper_dir}/wallpaper.png" +wallpaper_store="${wallpaper_dir}/source_path" + +mkdir -p "$wallpaper_dir" + +if [ -z "$path" ]; then + path="$(xfconf-query -c xfce4-desktop -p "$prop")" + + if [[ ! "$path" = /* ]]; then + path="${HOME}/${path}" + fi +fi + +if [ "$path" == "$wallpaper_path" ]; then + path=$(cat "$wallpaper_store") +fi + +# path="$(readlink -f "$path")" + +if [ ! -f "$path" ]; then + echo "No wallpaper source" + exit 0 +fi + +filename=$(basename -- "$path") +ext="${filename##*.}" + +# The following always assumes the monitor is landscape +if [ "$ext" == "svg" ] && command -v inkscape; then + tmp="$(mktemp).png" + inkscape -h "$monitor_height" "$path" -o "$tmp" + path="$tmp" +fi + +export SCHEME +shchemes create_theme imagemagick \ + | convert "$path" -colorspace srgb -dither FloydSteinberg -geometry "${monitor_width}x" -remap txt:- "$wallpaper_path" + +echo "Setting wallpaper: $path" +xfconf-query -c xfce4-desktop -p "$prop" -s "$wallpaper_path" +echo "$path" > "$wallpaper_store" +feh --bg-center "$wallpaper_path" diff --git a/scripts/qutebrowser b/scripts/qutebrowser new file mode 100755 index 0000000..837a25e --- /dev/null +++ b/scripts/qutebrowser @@ -0,0 +1,15 @@ +#!/bin/sh +# initial idea: Florian Bruhin (The-Compiler) +# author: Thore Bödecker (foxxx0) + +_url="$1" +_qb_version='1.0.4' +_proto_version=1 +_ipc_socket="${XDG_RUNTIME_DIR}/qutebrowser/ipc-$(echo -n "$USER" | md5sum | cut -d' ' -f1)" +_qute_bin="/home/dakedres/repos/qutebrowser/.venv/bin/qutebrowser" + +printf '{"args": ["%s"], "target_arg": null, "version": "%s", "protocol_version": %d, "cwd": "%s"}\n' \ + "${_url}" \ + "${_qb_version}" \ + "${_proto_version}" \ + "${PWD}" | socat -lf /dev/null - UNIX-CONNECT:"${_ipc_socket}" || "$_qute_bin" "$@" & diff --git a/scripts/qutesearch b/scripts/qutesearch index 98ce7e7..c73c806 100755 --- a/scripts/qutesearch +++ b/scripts/qutesearch @@ -1,6 +1,6 @@ #!/bin/sh db=$HOME/.local/share/qutebrowser/history.sqlite -url=$(sqlite3 "$db" "select title,url from History" | tac | awk '!a[$0]++' | rofi -dmenu | awk -F '|' '{print $NF}') +url=$(sqlite3 "$db" "select title,url from History" | tac | rofi -dmenu | awk -F '|' '{print $NF}') [ -z "$url" ] && exit -qutebrowser --target window "$url" +qutebrowser "$url" diff --git a/scripts/rack b/scripts/rack new file mode 100755 index 0000000..b37e88e --- /dev/null +++ b/scripts/rack @@ -0,0 +1,2 @@ +cd $HOME/apps/Rack2Free +./Rack diff --git a/scripts/xfce4-le-wallpaper b/scripts/xfce4-le-wallpaper new file mode 100755 index 0000000..32d5b83 --- /dev/null +++ b/scripts/xfce4-le-wallpaper @@ -0,0 +1,16 @@ +#!/bin/env bash + +monitors=($(xrandr | grep " connected " | awk '{ print$1 }')) +monitor="${monitors[0]}" +prop="/backdrop/screen0/monitor${monitor}/workspace0/last-image" +wallpaper_dir="$HOME/.local/share/le_wallpaper" +wallpaper_path="${wallpaper_dir}/wallpaper.png" + +feh --bg-scale "$wallpaper_path" + +xfconf-query -c xfce4-desktop -p "$prop" -m | while read -r line; do + if echo "$line" | grep -e "^set:"; then + echo "Wallpaper updated, reacting" + le-wallpaper + fi +done