diff options
Diffstat (limited to '.config/bspwm')
-rwxr-xr-x | .config/bspwm/autostart.sh | 18 | ||||
-rwxr-xr-x | .config/bspwm/bspwmrc | 62 | ||||
-rw-r--r-- | .config/bspwm/picom.conf | 233 | ||||
-rwxr-xr-x | .config/bspwm/sxhkdrc | 331 |
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 |