Add bspwm, stalonetray config, bspwm hotkeys
This commit is contained in:
Executable
+52
@@ -0,0 +1,52 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
#--- General ---#
|
||||||
|
|
||||||
|
# Basic definitions
|
||||||
|
bspc config border_width 4
|
||||||
|
bspc config window_gap 20
|
||||||
|
bspc config split_ratio 0.502
|
||||||
|
bspc config top_padding "$PANEL_HEIGHT"
|
||||||
|
|
||||||
|
# Program startup
|
||||||
|
"$HOME"/.scripts/wm/pidctl.sh -p &
|
||||||
|
|
||||||
|
# Colors
|
||||||
|
bspc config focused_border_color "$FGCOLOR_INACTIVE"
|
||||||
|
bspc config normal_border_color "$BGCOLOR_INACTIVE"
|
||||||
|
bspc config active_border_color "$BGCOLOR_INACTIVE"
|
||||||
|
bspc config presel_feedback_color "$FGCOLOR_INACTIVE"
|
||||||
|
|
||||||
|
# Node
|
||||||
|
bspc config borderless_monocle true
|
||||||
|
bspc config gapless_monocle true
|
||||||
|
bspc config initial_polarity second_child
|
||||||
|
bspc config single_monocle true
|
||||||
|
|
||||||
|
# Pointer
|
||||||
|
bspc config focus_follows_pointer true
|
||||||
|
bspc config pointer_follows_monitor true
|
||||||
|
bspc config pointer_modifier mod4
|
||||||
|
|
||||||
|
#--- Desktops ---#
|
||||||
|
|
||||||
|
# Set desktops
|
||||||
|
bspc monitor -d "$WS1" "$WS2" "$WS3" "$WS4" "$WS5" \
|
||||||
|
"$WS6" "$WS7" "$WS8" "$WS9" "$WS0"
|
||||||
|
|
||||||
|
# Open program on specific desktop
|
||||||
|
bspc rule -a Firefox desktop="^$WS1"
|
||||||
|
bspc rule -a Thunar desktop="^$WS4"
|
||||||
|
bspc rule -a krita desktop="^$WS5" follow=on
|
||||||
|
|
||||||
|
# Set program properties
|
||||||
|
bspc rule -a Arandr state=floating
|
||||||
|
bspc rule -a Bar layer=above
|
||||||
|
bspc rule -a feh state=floating
|
||||||
|
bspc rule -a Firefox:Places state=floating
|
||||||
|
bspc rule -a Lxappearance state=floating
|
||||||
|
bspc rule -a mpv state=floating center=on
|
||||||
|
bspc rule -a Pavucontrol state=floating
|
||||||
|
bspc rule -a Qemu-system-i386 state=floating
|
||||||
|
bspc rule -a Qemu-system-x86_64 state=floating
|
||||||
|
bspc rule -a Zathura state=tiled
|
||||||
+1
-1
@@ -13,7 +13,7 @@ set $mod2 Mod1
|
|||||||
floating_modifier $mod
|
floating_modifier $mod
|
||||||
|
|
||||||
# Application startup
|
# Application startup
|
||||||
exec_always --no-startup-id $HOME/.scripts/wm/pidctl.sh -p
|
exec_always --no-startup-id $HOME/.scripts/wm/pidctl.sh -p &
|
||||||
|
|
||||||
# Colors
|
# Colors
|
||||||
set_from_resource $bgcolor WmColor.bgcolor #000000
|
set_from_resource $bgcolor WmColor.bgcolor #000000
|
||||||
|
|||||||
@@ -0,0 +1,128 @@
|
|||||||
|
# -*-conf-*-
|
||||||
|
|
||||||
|
|
||||||
|
##--- Control ---##
|
||||||
|
|
||||||
|
|
||||||
|
# Restart bspwm
|
||||||
|
super + shift + r
|
||||||
|
bspc wm -r
|
||||||
|
|
||||||
|
# Logout
|
||||||
|
super + shift + e
|
||||||
|
prompt.sh "Logout and exit bspwm?" "bspc quit"
|
||||||
|
|
||||||
|
|
||||||
|
##--- Node ---##
|
||||||
|
|
||||||
|
|
||||||
|
# Close and kill focused node
|
||||||
|
super + {_,shift} + q
|
||||||
|
bspc node -{c,k}
|
||||||
|
|
||||||
|
#-- State/flags --#
|
||||||
|
|
||||||
|
# Toggle fullscreen mode
|
||||||
|
super + f
|
||||||
|
bspc node -t \~fullscreen
|
||||||
|
|
||||||
|
# Toggle tiled/floating
|
||||||
|
super + space
|
||||||
|
bspc query -N -n focused.tiled && \
|
||||||
|
bspc node -t floating || bspc node -t tiled -g sticky=off
|
||||||
|
|
||||||
|
# Sticky floating node
|
||||||
|
super + shift + f
|
||||||
|
bspc node -t floating -g sticky=on; $HOME/.scripts/wm/hover.sh
|
||||||
|
|
||||||
|
# Set node flags
|
||||||
|
super + ctrl + {s,p,semicolon}
|
||||||
|
bspc node -g {sticky,private,locked}
|
||||||
|
|
||||||
|
#-- Focus --#
|
||||||
|
|
||||||
|
# Focus node in direction
|
||||||
|
super + {_,shift} + {h,j,k,l}
|
||||||
|
bspc node -{f,s} {west,south,north,east}.local
|
||||||
|
super + {_,shift} + {Left,Down,Up,Right}
|
||||||
|
bspc node -{f,s} {west,south,north,east}.local
|
||||||
|
|
||||||
|
# Focus the node for the given path jump
|
||||||
|
super + {p,b,comma,period}
|
||||||
|
bspc node -f @{parent,brother,first,second}.local
|
||||||
|
|
||||||
|
# Focus previous/next node
|
||||||
|
super + {_,shift} + Tab
|
||||||
|
bspc node -f {next,prev}.local
|
||||||
|
|
||||||
|
# Focus previous/next monitor
|
||||||
|
super + bracket{left,right}
|
||||||
|
bspc monitor -f {prev,next}
|
||||||
|
|
||||||
|
#-- Move --#
|
||||||
|
|
||||||
|
# Move node to previous/next/last desktop
|
||||||
|
super + shift + {minus,equal,grave}
|
||||||
|
bspc node -d {prev.local,next.local,last}
|
||||||
|
|
||||||
|
# Move node to previous/next monitor
|
||||||
|
super + shift + bracket{left,right}
|
||||||
|
bspc node -m {prev,next} --follow
|
||||||
|
|
||||||
|
# Swap focused and biggest node
|
||||||
|
super + g
|
||||||
|
bspc node -s biggest.local
|
||||||
|
|
||||||
|
# Send focused node to the latest preselect node
|
||||||
|
super + y
|
||||||
|
bspc node -n newest.!automatic.local
|
||||||
|
|
||||||
|
#-- Resize --#
|
||||||
|
|
||||||
|
# Expand node by moving its side outward
|
||||||
|
super + alt + {h,j,k,l}
|
||||||
|
bspc node -z {left -30 0,bottom 0 30,top 0 -30,right 30 0}
|
||||||
|
super + alt + {Left,Down,Up,Right}
|
||||||
|
bspc node -z {left -30 0,bottom 0 30,top 0 -30,right 30 0}
|
||||||
|
|
||||||
|
# Contract node by moving its side inward
|
||||||
|
super + alt + ctrl + {h,j,k,l}
|
||||||
|
bspc node -z {right -30 0,top 0 30,bottom 0 -30,left 30 0}
|
||||||
|
super + alt + ctrl + {Left,Down,Up,Right}
|
||||||
|
bspc node -z {right -30 0,top 0 30,bottom 0 -30,left 30 0}
|
||||||
|
|
||||||
|
#-- Preselect node --#
|
||||||
|
|
||||||
|
# Preselect direction
|
||||||
|
super + ctrl + {h,j,k,l}
|
||||||
|
bspc node -p {west,south,north,east}
|
||||||
|
super + ctrl + {Left,Down,Up,Right}
|
||||||
|
bspc node -p {west,south,north,east}
|
||||||
|
|
||||||
|
# Preselect ratio
|
||||||
|
super + ctrl + {1-9}
|
||||||
|
bspc node -o 0.{1-9}
|
||||||
|
|
||||||
|
# Cancel preselection in focused node
|
||||||
|
super + ctrl + space
|
||||||
|
bspc node -p cancel
|
||||||
|
|
||||||
|
|
||||||
|
##--- Desktop ---##
|
||||||
|
|
||||||
|
|
||||||
|
# Toggle tiled/monocle layout
|
||||||
|
super + z
|
||||||
|
bspc desktop -l next
|
||||||
|
|
||||||
|
# Focus/send node to desktop
|
||||||
|
super + {_,shift} + {1-9,0}
|
||||||
|
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||||
|
|
||||||
|
# Focus the previous/next desktop on current monitor
|
||||||
|
super + {minus,equal}
|
||||||
|
bspc desktop -f {prev,next}.local
|
||||||
|
|
||||||
|
# Focus last desktop
|
||||||
|
super + grave
|
||||||
|
bspc desktop -f last
|
||||||
+16
-18
@@ -1,19 +1,5 @@
|
|||||||
# -*-conf-*-
|
# -*-conf-*-
|
||||||
|
|
||||||
#--- General ---#
|
|
||||||
|
|
||||||
# Kill focused window
|
|
||||||
super + shift + q
|
|
||||||
i3-msg kill
|
|
||||||
|
|
||||||
# Split container horizontal / vertical
|
|
||||||
super + {h,v}
|
|
||||||
i3-msg split {h,v}
|
|
||||||
|
|
||||||
# Container layout
|
|
||||||
super + {s,w,e}
|
|
||||||
i3-msg layout {stacking,tabbed,toggle split}
|
|
||||||
|
|
||||||
#--- Control ---#
|
#--- Control ---#
|
||||||
|
|
||||||
# Reload i3 config
|
# Reload i3 config
|
||||||
@@ -26,6 +12,10 @@ super + shift + e
|
|||||||
|
|
||||||
#--- Window ---#
|
#--- Window ---#
|
||||||
|
|
||||||
|
# Kill focused window
|
||||||
|
super + shift + q
|
||||||
|
i3-msg kill
|
||||||
|
|
||||||
# Fullscreen window
|
# Fullscreen window
|
||||||
super + f
|
super + f
|
||||||
i3-msg fullscreen toggle
|
i3-msg fullscreen toggle
|
||||||
@@ -52,13 +42,21 @@ super + shift + f
|
|||||||
|
|
||||||
#--- Workspace ---#
|
#--- Workspace ---#
|
||||||
|
|
||||||
|
# Toggle container horizontal/vertical split
|
||||||
|
super + {h,v}
|
||||||
|
i3-msg split {h,v}
|
||||||
|
|
||||||
|
# Container layout
|
||||||
|
super + {s,w,e}
|
||||||
|
i3-msg layout {stacking,tabbed,toggle split}
|
||||||
|
|
||||||
# Switch to workspace
|
# Switch to workspace
|
||||||
super + {0-9}
|
super + {1-9,0}
|
||||||
i3-msg workspace $WS{0-9}
|
i3-msg workspace $WS{1-9,0}
|
||||||
|
|
||||||
# Move focused container to workspace
|
# Move focused container to workspace
|
||||||
super + shift + {0-9}
|
super + shift + {1-9,0}
|
||||||
i3-msg move container to workspace $WS{0-9}
|
i3-msg move container to workspace $WS{1-9,0}
|
||||||
|
|
||||||
# Move workspace to monitor
|
# Move workspace to monitor
|
||||||
super + ctrl + {Left,Right}
|
super + ctrl + {Left,Right}
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ xrandr --newmode "3000x2000_48.00" 405.25 3000 3232 3552 4104 2000 2003 2013 205
|
|||||||
xrandr --addmode eDP-1 3000x2000_48.00
|
xrandr --addmode eDP-1 3000x2000_48.00
|
||||||
xrandr --output eDP-1 --mode 3000x2000_48.00 --primary
|
xrandr --output eDP-1 --mode 3000x2000_48.00 --primary
|
||||||
|
|
||||||
|
# Set default X cursor to arrow
|
||||||
|
xsetroot -cursor_name left_ptr
|
||||||
|
|
||||||
# Disable screensaver
|
# Disable screensaver
|
||||||
xset s off
|
xset s off
|
||||||
xset -dpms
|
xset -dpms
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ clock() {
|
|||||||
|
|
||||||
bar() {
|
bar() {
|
||||||
lemonbar \
|
lemonbar \
|
||||||
-a 20 -g x$PANEL_HEIGHT -n "$PANEL_NAME" \
|
-a 20 -g x"$PANEL_HEIGHT" -n "$PANEL_NAME" \
|
||||||
-f "DejaVu Sans-8" -o 0 \
|
-f "DejaVu Sans-8" -o 0 \
|
||||||
-f "FontAwesome5Free Solid-8" -o -3 \
|
-f "FontAwesome5Free Solid-8" -o -3 \
|
||||||
-f "FontAwesome5Free Regular-8" -o -3 \
|
-f "FontAwesome5Free Regular-8" -o -3 \
|
||||||
@@ -44,6 +44,8 @@ start() {
|
|||||||
while [ "$(pgrep -cx lemonbar.sh)" -gt 1 ]; do
|
while [ "$(pgrep -cx lemonbar.sh)" -gt 1 ]; do
|
||||||
pkill -ox -9 lemonbar.sh;
|
pkill -ox -9 lemonbar.sh;
|
||||||
done
|
done
|
||||||
|
pkill xprop
|
||||||
|
pkill sleep
|
||||||
|
|
||||||
# Trap all subshells
|
# Trap all subshells
|
||||||
trap 'trap - TERM; kill 0' INT TERM QUIT EXIT
|
trap 'trap - TERM; kill 0' INT TERM QUIT EXIT
|
||||||
@@ -106,6 +108,14 @@ start() {
|
|||||||
printf "%s\n" "%{l}$workspaces%{c}$title%{r}$volume $brightness $wifi $iface $battery $clock "
|
printf "%s\n" "%{l}$workspaces%{c}$title%{r}$volume $brightness $wifi $iface $battery $clock "
|
||||||
done < "$PANEL_PIPE" | bar | sh &
|
done < "$PANEL_PIPE" | bar | sh &
|
||||||
|
|
||||||
|
# Tray and panel on top of the root window, fixes fullscreen programs
|
||||||
|
if [ "$WM" = "bspwm" ];then
|
||||||
|
ROOT="$(xdo id -N Bspwm -n root | sort | head -n 1)"
|
||||||
|
PANEL_ID=$(xdo id -m -a "$PANEL_NAME")
|
||||||
|
TRAY_ID=$(xdo id -a "stalonetray")
|
||||||
|
xdo above -t "$ROOT" "$TRAY_ID" "$PANEL_ID"
|
||||||
|
fi
|
||||||
|
|
||||||
wait
|
wait
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# -*-conf-*-
|
||||||
|
|
||||||
|
#--- General ---#
|
||||||
|
|
||||||
|
background "#2b2e39"
|
||||||
|
|
||||||
|
#--- Dimensions ---#
|
||||||
|
|
||||||
|
geometry 8x1-730+4
|
||||||
|
grow_gravity NW
|
||||||
|
|
||||||
|
icon_size 30
|
||||||
|
icon_gravity NE
|
||||||
|
|
||||||
|
max_geometry 0x38
|
||||||
|
|
||||||
|
#--- Properties (atoms) ---#
|
||||||
|
|
||||||
|
skip_taskbar true
|
||||||
|
sticky true
|
||||||
|
|
||||||
|
window_layer top
|
||||||
|
window_strut none
|
||||||
|
window_type dock
|
||||||
@@ -6,6 +6,7 @@ arc-gtk-theme
|
|||||||
arc-icon-theme
|
arc-icon-theme
|
||||||
breeze-icons-git
|
breeze-icons-git
|
||||||
brightnessctl
|
brightnessctl
|
||||||
|
bspwm
|
||||||
capitaine-cursors
|
capitaine-cursors
|
||||||
checkbashisms
|
checkbashisms
|
||||||
chromium
|
chromium
|
||||||
@@ -102,6 +103,7 @@ scrot
|
|||||||
signal-desktop-bin
|
signal-desktop-bin
|
||||||
sloccount
|
sloccount
|
||||||
smartmontools
|
smartmontools
|
||||||
|
stalonetray
|
||||||
sxhkd
|
sxhkd
|
||||||
texlive-bibtexextra
|
texlive-bibtexextra
|
||||||
texlive-core
|
texlive-core
|
||||||
@@ -141,6 +143,7 @@ xorg-xinit
|
|||||||
xorg-xinput
|
xorg-xinput
|
||||||
xorg-xprop
|
xorg-xprop
|
||||||
xorg-xrandr
|
xorg-xrandr
|
||||||
|
xorg-xsetroot
|
||||||
xss-lock-git
|
xss-lock-git
|
||||||
youtube-dl
|
youtube-dl
|
||||||
zathura
|
zathura
|
||||||
|
|||||||
Reference in New Issue
Block a user