aboutsummaryrefslogtreecommitdiffstats
path: root/.config/bspwm
diff options
context:
space:
mode:
Diffstat (limited to '.config/bspwm')
-rwxr-xr-x.config/bspwm/autostart.sh18
-rwxr-xr-x.config/bspwm/bspwmrc62
-rw-r--r--.config/bspwm/picom.conf233
-rwxr-xr-x.config/bspwm/sxhkdrc331
4 files changed, 644 insertions, 0 deletions
diff --git a/.config/bspwm/autostart.sh b/.config/bspwm/autostart.sh
new file mode 100755
index 0000000..b6c83d8
--- /dev/null
+++ b/.config/bspwm/autostart.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+run() {
+ $@ &
+}
+
+run nitrogen ~/Pictures/at-at-minimalist-pc-wallpaper-4k.png --set-scaled
+run nitrogen ~/Pictures/WallpaperNew.png --set-scaled
+
+xsetroot -cursor_name left_ptr
+run sxhkd -c $HOME/.config/bspwm/sxhkdrc
+
+run picom --experimental-backends --config $HOME/.config/bspwm/picom.conf
+
+$HOME/.config/polybar/launch.sh
+
+run dunst
+run bat-check
diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc
new file mode 100755
index 0000000..d025c02
--- /dev/null
+++ b/.config/bspwm/bspwmrc
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+#LAUNCHERS
+$HOME/.config/bspwm/autostart.sh
+
+# BSPWM configuration
+bspc config border_width 2
+bspc config window_gap 10
+bspc config top_padding 25
+bspc config bottom_padding 0
+bspc config left_padding 0
+bspc config right_padding 0
+
+bspc config single_monocle false
+bspc config split_ratio 0.55
+bspc config borderless_monocle false
+bspc config gapless_monocle false
+bspc config focus_follows_pointer true
+
+bspc config pointer_modifier mod4
+bspc config pointer_action1 move
+bspc config pointer_action2 resize_side
+bspc config pointer_action3 resize_corner
+bspc config remove_disabled_monitors true
+bspc config merge_overlapping_monitors true
+
+bspc config automatic_scheme alternate
+
+#BSPWM coloring
+
+#bspc config normal_border_color "#3c3836"
+#bspc config active_border_color "#504945"
+#bspc config focused_border_color "#98971a"
+#bspc config presel_feedback_color "#504945"
+
+bspc config focused_border_color "#5e81ac"
+bspc config normal_border_color "#4c566a"
+bspc config active_border_color "#2e3440"
+bspc config presel_feedback_color "#2e3440"
+bspc config urgent_border_color "#2e3440"
+
+# Laptop monitor
+bspc monitor -d one two three four five six seven eight nine zero
+# External monitor
+# bspc monitor DP1 -d code web chat media other
+# PC Monitor
+# bspc monitor HDMI-1 -d code web chat media other
+
+bspc rule -a MultiMC5 state=floating
+bspc rule -a Steam state=floating
+bspc rule -a Transmission-gtk state=floating
+bspc rule -a Qemu-system-x86_64 state=floating
+bspc rule -a Virt-manager state=floating
+bspc rule -a Pavucontrol state=floating
+bspc rule -a Plug state=floating
+bspc rule -a zoom state=floating
+bspc rule -a Signal state=floating
+bspc rule -a Spotify state=floating
+bspc rule -a Cawbird state=floating
+bspc rule -a krita state=floating
+
+bspc config border_radius 5
diff --git a/.config/bspwm/picom.conf b/.config/bspwm/picom.conf
new file mode 100644
index 0000000..90c48f3
--- /dev/null
+++ b/.config/bspwm/picom.conf
@@ -0,0 +1,233 @@
+# Thank you code_nomad: http://9m.no/ꪯ鵞
+# and Arch Wiki contributors: https://wiki.archlinux.org/index.php/Compton
+
+#################################
+#
+# Backend
+#
+#################################
+
+# Backend to use: "xrender" or "glx".
+# GLX backend is typically much faster but depends on a sane driver.
+backend = "glx";
+#backend = "xrender"
+
+#################################
+#
+# GLX backend
+#
+#################################
+
+glx-no-stencil = true;
+
+# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all.
+# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified,
+# but a 20% increase when only 1/4 is.
+# My tests on nouveau show terrible slowdown.
+glx-copy-from-front = false;
+
+# GLX backend: Use MESA_copy_sub_buffer to do partial screen update.
+# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated.
+# May break VSync and is not available on some drivers.
+# Overrides --glx-copy-from-front.
+# glx-use-copysubbuffermesa = true;
+
+# GLX backend: Avoid rebinding pixmap on window damage.
+# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
+# Recommended if it works.
+# glx-no-rebind-pixmap = true;
+
+# GLX backend: GLX buffer swap method we assume.
+# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).
+# undefined is the slowest and the safest, and the default value.
+# copy is fastest, but may fail on some drivers,
+# 2-6 are gradually slower but safer (6 is still faster than 0).
+# Usually, double buffer means 2, triple buffer means 3.
+# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.
+# Useless with --glx-use-copysubbuffermesa.
+# Partially breaks --resize-damage.
+# Defaults to undefined.
+#glx-swap-method = "undefined";
+
+#################################
+#
+# Shadows
+#
+#################################
+
+# Enabled client-side shadows on windows.
+shadow = true;
+# The blur radius for shadows. (default 12)
+shadow-radius = 15;
+# The left offset for shadows. (default -15)
+shadow-offset-x = -6;
+# The top offset for shadows. (default -15)
+shadow-offset-y = -6;
+# The translucency for shadows. (default .75)
+shadow-opacity = .75;
+
+log-level = "warn";
+#change your username here
+#log-file = "/home/erik/.config/compton.log";
+
+# Set if you want different colour shadows
+# shadow-red = 0.0;
+# shadow-green = 0.0;
+# shadow-blue = 0.0;
+
+# The shadow exclude options are helpful if you have shadows enabled. Due to the way compton draws its shadows, certain applications will have visual glitches
+# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
+# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher.
+#shadow-exclude = [
+# "! name~=''",
+# "name = 'Notification'",
+# "name = 'Plank'",
+# "name = 'Docky'",
+# "name = 'Kupfer'",
+# "name = 'xfce4-notifyd'",
+# "name *= 'VLC'",
+# "name *= 'compton'",
+# "name *= 'Chromium'",
+# "name *= 'Chrome'",
+# "class_g = 'Firefox' && argb",
+# "class_g = 'Conky'",
+# "class_g = 'Kupfer'",
+# "class_g = 'Synapse'",
+# "class_g ?= 'Notify-osd'",
+# "class_g ?= 'Cairo-dock'",
+# "class_g = 'Cairo-clock'",
+# "class_g ?= 'Xfce4-notifyd'",
+# "class_g ?= 'Xfce4-power-manager'",
+# "_GTK_FRAME_EXTENTS@:c",
+# "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
+#];
+# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)
+shadow-ignore-shaped = false;
+
+#################################
+#
+# Opacity
+#
+#################################
+
+inactive-opacity = 1;
+active-opacity = 1;
+frame-opacity = 1;
+inactive-opacity-override = false;
+
+# Dim inactive windows. (0.0 - 1.0)
+# inactive-dim = 0.2;
+# Do not let dimness adjust based on window opacity.
+# inactive-dim-fixed = true;
+# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
+blur-background = true;
+# Blur background of opaque windows with transparent frames as well.
+blur-background-frame = true;
+# Do not let blur radius adjust based on window opacity.
+blur-background-fixed = true;
+blur-background-exclude = [
+ "window_type = 'dock'",
+ "window_type = 'desktop'",
+ "_GTK_FRAME_EXTENTS@:c"
+];
+
+blur: {
+ method = "dual_kawase";
+ strength = 2;
+}
+
+#################################
+#
+# Fading
+#
+#################################
+
+# Fade windows during opacity changes.
+fading = true;
+# The time between steps in a fade in milliseconds. (default 10).
+fade-delta = 4;
+# Opacity change between steps while fading in. (default 0.028).
+fade-in-step = 0.03;
+# Opacity change between steps while fading out. (default 0.03).
+fade-out-step = 0.03;
+# Fade windows in/out when opening/closing
+# no-fading-openclose = true;
+
+# Specify a list of conditions of windows that should not be faded.
+fade-exclude = [ ];
+
+#################################
+#
+# Other
+#
+#################################
+
+# Try to detect WM windows and mark them as active.
+mark-wmwin-focused = true;
+# Mark all non-WM but override-redirect windows active (e.g. menus).
+mark-ovredir-focused = true;
+# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events.
+# Usually more reliable but depends on a EWMH-compliant WM.
+use-ewmh-active-win = true;
+# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
+detect-rounded-corners = true;
+
+# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows.
+# This prevents opacity being ignored for some apps.
+# For example without this enabled my xfce4-notifyd is 100% opacity no matter what.
+detect-client-opacity = true;
+
+# Specify refresh rate of the screen.
+# If not specified or 0, compton will try detecting this with X RandR extension.
+refresh-rate = 0;
+
+# Vertical synchronization: match the refresh rate of the monitor
+# this breaks transparency in virtualbox - put a "#" before next line to fix that
+vsync = true;
+
+# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
+# Reported to have no effect, though.
+dbe = false;
+
+# Limit compton to repaint at most once every 1 / refresh_rate second to boost performance.
+# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already,
+# unless you wish to specify a lower refresh rate than the actual value.
+#sw-opti = true;
+
+# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.
+# Known to cause flickering when redirecting/unredirecting windows.
+unredir-if-possible = false;
+
+# Specify a list of conditions of windows that should always be considered focused.
+focus-exclude = [ ];
+
+# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time.
+detect-transient = true;
+# Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time.
+# WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too.
+detect-client-leader = true;
+
+#################################
+#
+# Window type settings
+#
+#################################
+
+wintypes:
+{
+ tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true;};
+ dock = { shadow = false; }
+ dnd = { shadow = false; }
+ popup_menu = { opacity = 0.9; }
+ dropdown_menu = { opacity = 0.9; }
+};
+
+######################
+#
+# XSync
+# See: https://github.com/yshui/compton/commit/b18d46bcbdc35a3b5620d817dd46fbc76485c20d
+#
+######################
+
+# Use X Sync fence to sync clients' draw calls. Needed on nvidia-drivers with GLX backend for some users.
+xrender-sync-fence = true;
diff --git a/.config/bspwm/sxhkdrc b/.config/bspwm/sxhkdrc
new file mode 100755
index 0000000..3f81241
--- /dev/null
+++ b/.config/bspwm/sxhkdrc
@@ -0,0 +1,331 @@
+#################################################################
+# KEYBOARD BINDINGS
+#################################################################
+
+#################################################################
+# SUPER + FUNCTION KEYS
+#################################################################
+
+#Rofi
+super + F12
+ rofi-theme-selector
+
+#################################################################
+# SUPER + ... KEYS
+#################################################################
+
+#Rofit
+super + space
+ rofi -show drun -show-icons -run-shell-command '{terminal} -e \\" {cmd}; read -n 1 -s\\"'
+
+
+#Browser
+super + w
+ firefox
+
+#calc start
+super + c
+ kitty -e calc
+
+super + t
+ thunderbird
+# kitty -e mutt
+
+#Spotify
+super + s
+ pkill spotify; spotify
+
+# start discord
+super + d
+ pkill Discord; Discord
+
+#Terminal
+super + Return
+ kitty
+
+super + g
+ kitty -e gotop
+
+super + m
+ MultiMC
+
+super + ctrl + s
+ prime-run steam
+
+#################################################################
+# SUPER + SHIFT KEYS
+#################################################################
+
+# Make a window sticky
+super + shift + t
+ bspc node focused --flag sticky
+
+# Quit xorg server
+super + shift + x
+ bspc quit
+
+#File-Manager
+super + shift + Return
+ kitty -e ranger
+
+#Keyboard dependent
+#File-Manager
+#super + shift + KP_Enter
+# thunar
+
+#reload sxhkd:
+super + shift + s
+ pkill -USR1 -x sxhkd
+
+#Keyboard dependent
+#super + shift + KP_Enter
+# thunar
+
+#################################################################
+# CONTROL + ALT KEYS
+#################################################################
+
+
+#################################################################
+# ALT + ... KEYS
+#################################################################
+
+
+#################################################################
+#VARIETY KEYS WITH PYWAL
+#################################################################
+
+
+#################################################################
+# CONTROL + SHIFT KEYS
+#################################################################
+
+
+#################################################################
+# SCREENSHOTS
+#################################################################
+
+# Screenshot
+super + ctrl + 4
+ maim | xclip -selection clipboard -t image/png
+
+super + ctrl + alt + 4
+ maim -i $(xdotool getactivewindow) | xclip -selection clipboard -t image/png
+
+#################################################################
+# FUNCTION KEYS
+#################################################################
+
+
+#################################################################
+# MULTIMEDIA KEYS
+#################################################################
+
+#Raises volume
+XF86AudioRaiseVolume
+ pamixer -i 1
+
+#Lowers volume
+XF86AudioLowerVolume
+ pamixer -d 1
+
+#Mute
+XF86AudioMute
+ pamixer -t
+
+#Playerctl works for Pragha, Spotify and others
+#Delete the line for playerctl if you want to use mpc
+#and replace it with the corresponding code
+#mpc works for e.g.ncmpcpp
+#mpc toggle
+#mpc next
+#mpc prev
+#mpc stop
+
+#PLAY
+XF86AudioPlay
+ playerctl play-pause
+
+#Next
+XF86AudioNext
+ playerctl next
+
+#previous
+XF86AudioPrev
+ playerctl previous
+
+#Stop
+XF86AudioStop
+ playerctl stop
+
+XF86MonBrightnessUp
+ light -A 5
+
+XF86MonBrightnessDown
+ light -U 5
+
+#########################
+# POLYBAR #
+#########################
+
+
+#################################################################
+#################################################################
+################## DESKTOP SPECIFIC ########################
+#################################################################
+#################################################################
+
+#################################################################
+# CTRL + ALT KEYS
+#################################################################
+
+#################################################################
+# SUPER + KEYS
+#################################################################
+
+#Toggle fullscreen of window
+#super + f
+super + f
+ bspc node --state \~fullscreen
+
+
+# Toggle pseudo tiling of window
+super + p
+ bspc node --state \~pseudo_tiled
+
+#kill
+super + q
+ bspc node -c
+
+#################################################################
+# SUPER KEYS
+#################################################################
+
+#Focus selected desktop
+#super + Tab
+# rofi -show window
+
+# Increase/decrease window gap on focused desktop
+super + bracket{left,right}
+ bspc config -d focused window_gap $((`bspc config -d focused window_gap` {-,+} 5 ))
+
+# set the window state
+super + alt + space
+ bspc node -t {floating,tiled}
+
+# Move focus to other monitor
+super + BackSpace
+ bspc monitor -f next
+
+#################################################################
+# SUPER + ALT KEYS
+#################################################################
+
+# Expand tiled space
+super + alt + {h,j,k,l}
+ bspc node {@west -r -10,@south -r +10,@north -r -10,@east -r +10}
+
+
+#################################################################
+# SUPER + CONTROL KEYS
+#################################################################
+
+#################################################################
+# SUPER + SHIFT KEYS
+#################################################################
+
+# toggle all to floating or tiled
+super + shift + space
+ ~/.config/bspwm/scripts/toggle_all {floating,tiled}
+
+#Reload bspwm
+super + shift + r
+ ~/.config/bspwm/bspwmrc
+
+#Logout
+super + shift + x
+ bspc quit
+
+# Focus/swap windows by direction
+super + {h,j,k,l}
+ bspc node --focus {west,south,north,east}
+
+super + shift + {h,j,k,l}
+ bspc node --swap {west,south,north,east}
+
+# Flip layout vertically/horizontally
+super + {_,shift + }a
+ bspc node @/ --flip {vertical,horizontal}
+
+# Move focused window to other monitor
+super + shift + Left
+ bspc node -m next --follow
+
+# Move focused window to other monitor
+super + shift + Right
+ bspc node -m next --follow
+
+# Move focused window to other monitor
+super + shift + Up
+ bspc node -m next --follow
+
+# Move focused window to other monitor
+super + shift + Down
+ bspc node -m next --follow
+
+#################################################################
+# SUPER + CONTROL KEYS
+#################################################################
+
+# Contract tiled space
+super + ctrl + {h,j,k,l}
+ bspc node {@east -r -10,@north -r +10,@south -r -10,@west -r +10}
+
+#################################################################
+# ALT KEYS
+#################################################################
+
+
+#################################################################
+# ALT + SHIFT KEYS
+#################################################################
+
+
+#################################################################
+# CTRL + ALT KEYS
+#################################################################
+
+
+#################################################################
+#################################################################
+################## AZERTY/QWERTY/ ... KEYBOARD#################
+#################################################################
+#################################################################
+
+#Switch here between qwerty and azerty or make new one
+#Focus selected desktop FOR QWERTY KEYBOARDS
+super + {1-9,0}
+ bspc desktop -f '^{1-9,10}'
+
+#Focus selected desktop FOR AZERTY KEYBOARDS
+#super + {ampersand,eacute,quotedbl,apostrophe,parenleft,section,egrave,exclam,ccedilla,agrave}
+# bspc desktop -f '^{1-9,10}'
+
+#################################################################
+
+#Switch here between qwerty and azerty or make new one
+#Move window to selected desktop FOR QWERTY KEYBOARDS
+super + shift + {1-9,0}
+ id=$(bspc query -N -n); bspc node -d ^{1-9,10}; bspc node -f ${id}}
+
+#Move window to selected desktop FOR AZERTY KEYBOARDS
+#super + shift + {ampersand,eacute,quotedbl,apostrophe,parenleft,section,egrave,exclam,ccedilla,agrave}
+# id=$(bspc query -N -n); bspc node -d ^{1-9,10}; bspc node -f ${id}}
+
+#################################################################
+
+super + grave
+ dunstctl history-pop
+
+super + shift + grave
+ dunstctl close