├── .config ├── bspwm │ ├── bspwmrc │ ├── keybindings │ └── scripts │ │ ├── i3lock-fancy │ │ ├── circlelock.png │ │ ├── circlelockdark.png │ │ └── i3lock-fancy.sh │ │ ├── keybindings_rofi.sh │ │ ├── low_bat_notifier.sh │ │ └── screenshot.sh ├── dunst │ └── dunstrc ├── gtk-3.0 │ ├── gtk.css │ └── settings.ini ├── nitrogen │ ├── bg-saved.cfg │ └── nitrogen.cfg ├── picom.conf ├── polybar │ ├── config.ini │ ├── launch.sh │ └── scripts │ │ ├── checkupdates.sh │ │ ├── cns.sh │ │ └── keyhint.sh ├── rofi │ ├── arc_dark_colors.rasi │ ├── arc_dark_transparent_colors.rasi │ ├── config.rasi │ ├── powermenu.rasi │ └── powermenu.sh ├── sxhkd │ └── sxhkdrc └── xfce4 │ └── terminal │ ├── accels.scm │ └── terminalrc ├── .gtkrc-2.0 ├── IosevkaTermNerdFontComplete.ttf ├── LICENSE ├── README.md ├── bspwm-install.sh ├── bspwm.png ├── netinstall.yaml ├── packages-repository.txt └── setup_bspwm_isomode.bash /.config/bspwm/bspwmrc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | pgrep -x sxhkd > /dev/null || sxhkd & 4 | 5 | # Polkit 6 | /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & 7 | 8 | bspc monitor -d I II III IV V VI VII VIII IX X 9 | 10 | bspc config border_width 2 11 | bspc config window_gap 12 12 | 13 | bspc config split_ratio 0.52 14 | bspc config borderless_monocle true 15 | bspc config gapless_monocle true 16 | bspc config pointer_follows_focus true 17 | bspc config focus_follows_pointer true 18 | 19 | bspc rule -a Gimp desktop='^8' state=floating follow=on 20 | bspc rule -a Chromium desktop='^2' 21 | bspc rule -a firefox desktop='^2' 22 | bspc rule -a mplayer2 state=floating 23 | bspc rule -a Yad state=floating 24 | bspc rule -a Kupfer.py focus=on 25 | bspc rule -a Screenkey manage=off 26 | 27 | 28 | # Border 29 | bspc config focused_border_color "#6c71c4" 30 | bspc config normal_border_color "#073642" 31 | bspc config active_border_color "#073642" 32 | 33 | # 34 | # Autostart 35 | # 36 | # Set display from arandr saved script 37 | sh ~/.screenlayout/monitor.sh & 38 | # Bar 39 | ~/.config/polybar/launch.sh & 40 | # Notifications 41 | /usr/bin/dunst & 42 | 43 | # Wallpaper 44 | nitrogen --restore & 45 | # Dex 46 | dex -a -s /etc/xdg/autostart/:~/.config/autostart/ & 47 | # Picom 48 | # picom -b & 49 | # Network Applet 50 | nm-applet --indicator & 51 | 52 | # Cursor 53 | xsetroot -cursor_name left_ptr & 54 | 55 | # Low battery notifier 56 | ~/.config/bspwm/scripts/low_bat_notifier.sh 57 | 58 | -------------------------------------------------------------------------------- /.config/bspwm/keybindings: -------------------------------------------------------------------------------- 1 | For the latest version of Endeavour OS Bspwm Edition configs, visit our GitHub repository 2 | https://github.com/EndeavourOS-Community-Editions/bspwm 3 | 4 | For a quick start guide, read our wiki page 5 | https://discovery.endeavouros.com/window-tiling-managers/bspwm-2/2021/03/ 6 | 7 | To share your suggestions, please visit our forum thread 8 | https://forum.endeavouros.com/t/bspwm-edition/8511 9 | 10 | 11 | 12 | 13 | 14 | ################### 15 | 16 | Utility Keyboard Shortcuts 17 | 18 | ################### 19 | 20 | -> Open terminal (xfce4-terminal) 21 | Super + Return 22 | 23 | -> App launcher (Rofi) 24 | Super + d 25 | 26 | -> Window switcher 27 | Super + Ctrl + d 28 | 29 | -> Show SSH sessions 30 | Super + Shift + d 31 | 32 | -> Power Menu 33 | Super + Shift + e 34 | 35 | -> Reload Sxhkd (you need to do this after you modify sxhkdrc) 36 | Super + Escape 37 | 38 | -> Screen shot full monitor and save in Pictures folder 39 | Print 40 | 41 | -> Show screenshot menu 42 | Super + Print 43 | 44 | -> Launch Firefox 45 | Super + w 46 | 47 | -> Launch Thunar 48 | Super + n 49 | 50 | 51 | 52 | 53 | 54 | ################### 55 | 56 | Bspwm Keyboard Shortcuts 57 | 58 | ################### 59 | 60 | -> Restart Bspwm 61 | Super + Alt + r 62 | 63 | -> Quit Bspwm 64 | Super + Alt + q 65 | 66 | -> Close focused window 67 | Super + Shift + q 68 | 69 | -> Switch between tiled and monocle layout 70 | Super + m 71 | 72 | -> Swap current and largest window 73 | Super + g 74 | 75 | -> Change focus {west, south, north, east} 76 | Super + {h, j, k, l} 77 | It's like vim keys :) 78 | 79 | -> Switch to different desktop 80 | Super + 81 | 82 | -> Send current node to different desktop 83 | Super + Shift + 84 | 85 | -> Expand a window {left, bottom, top, right} 86 | Super + Alt + {h, j, k, l} 87 | 88 | -> Contract a window {left, bottom, top, right} 89 | Super + Alt + Shift + {h, j, k, l} 90 | 91 | -> Move a floating window 92 | Super + {left, down, up, right} 93 | 94 | -> Focus the last node 95 | Super + grave 96 | 97 | -> Focus the last desktop 98 | Super + Tab 99 | 100 | -> Focus older node in focus history 101 | Super + o 102 | 103 | -> Focus newer node in focus history 104 | Super + i 105 | -------------------------------------------------------------------------------- /.config/bspwm/scripts/i3lock-fancy/circlelock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EndeavourOS-Community-Editions/bspwm/03d2cad901ccee1106fbe247b18cb380819b17aa/.config/bspwm/scripts/i3lock-fancy/circlelock.png -------------------------------------------------------------------------------- /.config/bspwm/scripts/i3lock-fancy/circlelockdark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EndeavourOS-Community-Editions/bspwm/03d2cad901ccee1106fbe247b18cb380819b17aa/.config/bspwm/scripts/i3lock-fancy/circlelockdark.png -------------------------------------------------------------------------------- /.config/bspwm/scripts/i3lock-fancy/i3lock-fancy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Author: Dolores Portalatin 3 | # Dependencies: imagemagick, i3lock-color-git, scrot, wmctrl (optional) 4 | 5 | # Aquired from https://github.com/meskarune/i3lock-fancy 6 | # Modified for use 7 | 8 | set -o errexit -o noclobber -o nounset 9 | 10 | hue=(-level "0%,100%,0.6") 11 | effect=(-filter Gaussian -resize 20% -define "filter:sigma=1.5" -resize 500.5%) 12 | # default system sans-serif font 13 | font=$(convert -list font | awk "{ a[NR] = \$2 } /family: $(fc-match sans -f "%{family}\n")/ { print a[NR-1]; exit }") 14 | image=$(mktemp --suffix=.png) 15 | shot=(import -window root) 16 | desktop="" 17 | i3lock_cmd=(i3lock -i "$image") 18 | shot_custom=false 19 | 20 | options="Options: 21 | -h, --help This help menu. 22 | 23 | -d, --desktop Attempt to minimize all windows before locking. 24 | 25 | -g, --greyscale Set background to greyscale instead of color. 26 | 27 | -p, --pixelate Pixelate the background instead of blur, runs faster. 28 | 29 | -f , --font Set a custom font. 30 | 31 | -t , --text Set a custom text prompt. 32 | 33 | -l, --listfonts Display a list of possible fonts for use with -f/--font. 34 | Note: this option will not lock the screen, it displays 35 | the list and exits immediately. 36 | 37 | -n, --nofork Do not fork i3lock after starting. 38 | 39 | -- Must be last option. Set command to use for taking a 40 | screenshot. Default is 'import -window root'. Using 'scrot' 41 | or 'maim' will increase script speed and allow setting 42 | custom flags like having a delay." 43 | 44 | # move pipefail down as for some reason "convert -list font" returns 1 45 | set -o pipefail 46 | trap 'rm -f "$image"' EXIT 47 | temp="$(getopt -o :hdnpglt:f: -l desktop,help,listfonts,nofork,pixelate,greyscale,text:,font: --name "$0" -- "$@")" 48 | eval set -- "$temp" 49 | 50 | # l10n support 51 | text="Type password to unlock" 52 | case "${LANG:-}" in 53 | af_* ) text="Tik wagwoord om te ontsluit" ;; # Afrikaans 54 | de_* ) text="Bitte Passwort eingeben" ;; # Deutsch 55 | da_* ) text="Indtast adgangskode" ;; # Danish 56 | en_* ) text="Type password to unlock" ;; # English 57 | es_* ) text="Ingrese su contraseña" ;; # Española 58 | fr_* ) text="Entrez votre mot de passe" ;; # Français 59 | he_* ) text="הליענה לטבל המסיס דלקה" ;; # Hebrew עברית (convert doesn't play bidi well) 60 | hi_* ) text="अनलॉक करने के लिए पासवर्ड टाईप करें" ;; #Hindi 61 | id_* ) text="Masukkan kata sandi Anda" ;; # Bahasa Indonesia 62 | it_* ) text="Inserisci la password" ;; # Italian 63 | ja_* ) text="パスワードを入力してください" ;; # Japanese 64 | lv_* ) text="Ievadi paroli" ;; # Latvian 65 | nb_* ) text="Skriv inn passord" ;; # Norwegian 66 | pl_* ) text="Podaj hasło" ;; # Polish 67 | pt_* ) text="Digite a senha para desbloquear" ;; # Português 68 | tr_* ) text="Giriş yapmak için şifrenizi girin" ;; # Turkish 69 | ru_* ) text="Введите пароль" ;; # Russian 70 | * ) text="Type password to unlock" ;; # Default to English 71 | esac 72 | 73 | while true ; do 74 | case "$1" in 75 | -h|--help) 76 | printf "Usage: %s [options]\n\n%s\n\n" "${0##*/}" "$options"; exit 1 ;; 77 | -d|--desktop) desktop=$(command -V wmctrl) ; shift ;; 78 | -g|--greyscale) hue=(-level "0%,100%,0.6" -set colorspace Gray -average) ; shift ;; 79 | -p|--pixelate) effect=(-scale 10% -scale 1000%) ; shift ;; 80 | -f|--font) 81 | case "$2" in 82 | "") shift 2 ;; 83 | *) font=$2 ; shift 2 ;; 84 | esac ;; 85 | -t|--text) text=$2 ; shift 2 ;; 86 | -l|--listfonts) 87 | convert -list font | awk -F: '/Font: / { print $2 }' | sort -du | command -- ${PAGER:-less} 88 | exit 0 ;; 89 | -n|--nofork) i3lock_cmd+=(--nofork) ; shift ;; 90 | --) shift; shot_custom=true; break ;; 91 | *) echo "error" ; exit 1 ;; 92 | esac 93 | done 94 | 95 | if "$shot_custom" && [[ $# -gt 0 ]]; then 96 | shot=("$@"); 97 | fi 98 | 99 | command -- "${shot[@]}" "$image" 100 | 101 | value="60" #brightness value to compare to 102 | 103 | color=$(convert "$image" -gravity center -crop 100x100+0+0 +repage -colorspace hsb \ 104 | -resize 1x1 txt:- | awk -F '[%$]' 'NR==2{gsub(",",""); printf "%.0f\n", $(NF-1)}'); 105 | 106 | if [[ $color -gt $value ]]; then #white background image and black text 107 | bw="black" 108 | icon="/home/$USER/.config/bspwm/scripts/i3lock-fancy/circlelockdark.png" 109 | param=("--insidecolor=0000001c" "--ringcolor=0000003e" \ 110 | "--linecolor=00000000" "--keyhlcolor=ffffff80" "--ringvercolor=ffffff00" \ 111 | "--separatorcolor=22222260" "--insidevercolor=ffffff1c" \ 112 | "--ringwrongcolor=ffffff55" "--insidewrongcolor=ffffff1c" \ 113 | "--verifcolor=ffffff00" "--wrongcolor=ff000000" "--timecolor=ffffff00" \ 114 | "--datecolor=ffffff00" "--layoutcolor=ffffff00") 115 | else #black 116 | bw="white" 117 | icon="/home/$USER/.config/bspwm/scripts/i3lock-fancy/circlelock.png" 118 | param=("--insidecolor=ffffff1c" "--ringcolor=ffffff3e" \ 119 | "--linecolor=ffffff00" "--keyhlcolor=00000080" "--ringvercolor=00000000" \ 120 | "--separatorcolor=22222260" "--insidevercolor=0000001c" \ 121 | "--ringwrongcolor=00000055" "--insidewrongcolor=0000001c" \ 122 | "--verifcolor=00000000" "--wrongcolor=ff000000" "--timecolor=00000000" \ 123 | "--datecolor=00000000" "--layoutcolor=00000000") 124 | fi 125 | 126 | convert "$image" "${hue[@]}" "${effect[@]}" -font "$font" -pointsize 26 -fill "$bw" -gravity center \ 127 | -annotate +0+160 "$text" "$icon" -gravity center -composite "$image" 128 | 129 | # If invoked with -d/--desktop, we'll attempt to minimize all windows (ie. show 130 | # the desktop) before locking. 131 | ${desktop} ${desktop:+-k on} 132 | 133 | # try to use i3lock with prepared parameters 134 | if ! "${i3lock_cmd[@]}" "${param[@]}" >/dev/null 2>&1; then 135 | # We have failed, lets get back to stock one 136 | "${i3lock_cmd[@]}" 137 | fi 138 | 139 | # As above, if we were passed -d/--desktop, we'll attempt to restore all windows 140 | # after unlocking. 141 | ${desktop} ${desktop:+-k off} 142 | -------------------------------------------------------------------------------- /.config/bspwm/scripts/keybindings_rofi.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | awk '/^[a-z]/ && last {print "",$0,"\t",last,""} {last=""} /^#/{last=$0}' ~/.config/sxhkd/sxhkdrc | 4 | column -t -s $'\t' | 5 | rofi -dmenu -i -p "keybindings:" -markup-rows -no-show-icons -width 1000 -lines 15 -yoffset 40 6 | -------------------------------------------------------------------------------- /.config/bspwm/scripts/low_bat_notifier.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ### VARIABLES 4 | 5 | POLL_INTERVAL=120 # seconds at which to check battery level 6 | LOW_BAT=33 # lesser than this is considered low battery 7 | 8 | # If BAT0 doesn't work for you, check available devices with command below 9 | # 10 | # $ ls -1 /sys/class/power_supply/ 11 | # 12 | BAT_PATH=/sys/class/power_supply/BAT0 13 | BAT_STAT=$BAT_PATH/status 14 | 15 | if [[ -f $BAT_PATH/charge_full ]] 16 | then 17 | BAT_FULL=$BAT_PATH/charge_full 18 | BAT_NOW=$BAT_PATH/charge_now 19 | elif [[ -f $BAT_PATH/energy_full ]] 20 | then 21 | BAT_FULL=$BAT_PATH/energy_full 22 | BAT_NOW=$BAT_PATH/energy_now 23 | else 24 | exit 25 | fi 26 | 27 | ### END OF VARIABLES 28 | 29 | kill_running() { # stop older instances to not get multiple notifications 30 | local mypid=$$ 31 | 32 | declare pids=($(pgrep -f ${0##*/})) 33 | 34 | for pid in ${pids[@]/$mypid/}; do 35 | kill $pid 36 | sleep 1 37 | done 38 | } 39 | 40 | launched=0 41 | 42 | # Run only if battery is detected 43 | if ls -1qA /sys/class/power_supply/ | grep -q BAT 44 | then 45 | 46 | kill_running 47 | 48 | while true 49 | do 50 | bf=$(cat $BAT_FULL) 51 | bn=$(cat $BAT_NOW) 52 | bs=$(cat $BAT_STAT) 53 | 54 | bat_percent=$(( 100 * $bn / $bf )) 55 | 56 | if [[ $bat_percent -lt $LOW_BAT && "$bs" = "Discharging" && $launched -lt 3 ]] 57 | then 58 | notify-send --urgency=critical "$bat_percent% : Low Battery!" 59 | launched=$((launched+1)) 60 | elif [[ "$bs" = "Charging" ]] 61 | then 62 | launched=0 63 | fi 64 | sleep $POLL_INTERVAL 65 | done 66 | fi 67 | -------------------------------------------------------------------------------- /.config/bspwm/scripts/screenshot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # options to be displayed 4 | option0='screen' 5 | option1='select area or window' 6 | option2='currently focused window' 7 | options="$option0\n$option1\n$option2" 8 | 9 | # save file 10 | file="$(xdg-user-dir PICTURES)/screenshot-$(date +%F_%T).png" 11 | 12 | selected="$(echo -e "$options" | rofi -lines 3 -dmenu -p 'scrot')" 13 | case $selected in 14 | "$option0") 15 | sleep 1 && scrot -F "$file";; 16 | "$option1") 17 | sleep 1 && scrot -s -F "$file";; 18 | "$option2") 19 | sleep 1 && scrot -u -F "$file";; 20 | esac 21 | -------------------------------------------------------------------------------- /.config/dunst/dunstrc: -------------------------------------------------------------------------------- 1 | [global] 2 | ### Display ### 3 | 4 | # Which monitor should the notifications be displayed on. 5 | monitor = 0 6 | 7 | # Display notification on focused monitor. Possible modes are: 8 | # mouse: follow mouse pointer 9 | # keyboard: follow window with keyboard focus 10 | # none: don't follow anything 11 | # 12 | # "keyboard" needs a window manager that exports the 13 | # _NET_ACTIVE_WINDOW property. 14 | # This should be the case for almost all modern window managers. 15 | # 16 | # If this option is set to mouse or keyboard, the monitor option 17 | # will be ignored. 18 | follow = none 19 | 20 | # The geometry of the window: 21 | # [{width}]x{height}[+/-{x}+/-{y}] 22 | # The geometry of the message window. 23 | # The height is measured in number of notifications everything else 24 | # in pixels. If the width is omitted but the height is given 25 | # ("-geometry x2"), the message window expands over the whole screen 26 | # (dmenu-like). If width is 0, the window expands to the longest 27 | # message displayed. A positive x is measured from the left, a 28 | # negative from the right side of the screen. Y is measured from 29 | # the top and down respectively. 30 | # The width can be negative. In this case the actual width is the 31 | # screen width minus the width defined in within the geometry option. 32 | geometry = "300x5-30-30" 33 | 34 | # Show how many messages are currently hidden (because of geometry). 35 | indicate_hidden = yes 36 | 37 | # Shrink window if it's smaller than the width. Will be ignored if 38 | # width is 0. 39 | shrink = no 40 | 41 | # The transparency of the window. Range: [0; 100]. 42 | # This option will only work if a compositing window manager is 43 | # present (e.g. xcompmgr, compiz, etc.). 44 | transparency = 16 45 | 46 | # The height of the entire notification. If the height is smaller 47 | # than the font height and padding combined, it will be raised 48 | # to the font height and padding. 49 | notification_height = 0 50 | 51 | # Draw a line of "separator_height" pixel height between two 52 | # notifications. 53 | # Set to 0 to disable. 54 | separator_height = 2 55 | 56 | # Padding between text and separator. 57 | padding = 8 58 | 59 | # Horizontal padding. 60 | horizontal_padding = 8 61 | 62 | # Defines width in pixels of frame around the notification window. 63 | # Set to 0 to disable. 64 | frame_width = 1 65 | 66 | # Defines color of the frame around the notification window. 67 | frame_color = "#7f3fbf" 68 | 69 | # Define a color for the separator. 70 | # possible values are: 71 | # * auto: dunst tries to find a color fitting to the background; 72 | # * foreground: use the same color as the foreground; 73 | # * frame: use the same color as the frame; 74 | # * anything else will be interpreted as a X color. 75 | separator_color = auto 76 | 77 | # Sort messages by urgency. 78 | sort = yes 79 | 80 | # Don't remove messages, if the user is idle (no mouse or keyboard input) 81 | # for longer than idle_threshold seconds. 82 | # Set to 0 to disable. 83 | # A client can set the 'transient' hint to bypass this. See the rules 84 | # section for how to disable this if necessary 85 | idle_threshold = 120 86 | 87 | ### Text ### 88 | 89 | font = Noto Sans Regular 11 90 | 91 | # The spacing between lines. If the height is smaller than the 92 | # font height, it will get raised to the font height. 93 | line_height = 0 94 | 95 | # Possible values are: 96 | # full: Allow a small subset of html markup in notifications: 97 | # bold 98 | # italic 99 | # strikethrough 100 | # underline 101 | # 102 | # For a complete reference see 103 | # . 104 | # 105 | # strip: This setting is provided for compatibility with some broken 106 | # clients that send markup even though it's not enabled on the 107 | # server. Dunst will try to strip the markup but the parsing is 108 | # simplistic so using this option outside of matching rules for 109 | # specific applications *IS GREATLY DISCOURAGED*. 110 | # 111 | # no: Disable markup parsing, incoming notifications will be treated as 112 | # plain text. Dunst will not advertise that it has the body-markup 113 | # capability if this is set as a global setting. 114 | # 115 | # It's important to note that markup inside the format option will be parsed 116 | # regardless of what this is set to. 117 | markup = yes 118 | 119 | # The format of the message. Possible variables are: 120 | # %a appname 121 | # %s summary 122 | # %b body 123 | # %i iconname (including its path) 124 | # %I iconname (without its path) 125 | # %p progress value if set ([ 0%] to [100%]) or nothing 126 | # %n progress value if set without any extra characters 127 | # %% Literal % 128 | # Markup is allowed 129 | format = "%s\n%b" 130 | 131 | # Alignment of message text. 132 | # Possible values are "left", "center" and "right". 133 | alignment = left 134 | 135 | # Show age of message if message is older than show_age_threshold 136 | # seconds. 137 | # Set to -1 to disable. 138 | show_age_threshold = 60 139 | 140 | # Split notifications into multiple lines if they don't fit into 141 | # geometry. 142 | word_wrap = yes 143 | 144 | # When word_wrap is set to no, specify where to make an ellipsis in long lines. 145 | # Possible values are "start", "middle" and "end". 146 | ellipsize = middle 147 | 148 | # Ignore newlines '\n' in notifications. 149 | ignore_newline = no 150 | 151 | # Stack together notifications with the same content 152 | stack_duplicates = true 153 | 154 | # Hide the count of stacked notifications with the same content 155 | hide_duplicate_count = false 156 | 157 | # Display indicators for URLs (U) and actions (A). 158 | show_indicators = yes 159 | 160 | ### Icons ### 161 | 162 | # Align icons left/right/off 163 | icon_position = left 164 | 165 | # Scale larger icons down to this size, set to 0 to disable 166 | max_icon_size = 32 167 | 168 | # Paths to default icons. 169 | #icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ 170 | icon_path = /usr/share/icons/Paper/16x16/status/:/usr/share/icons/Paper/16x16/devices/:/usr/share/icons/Paper/16x16/apps/:/usr/share/pixmaps/ 171 | ### History ### 172 | 173 | # Should a notification popped up from history be sticky or timeout 174 | # as if it would normally do. 175 | sticky_history = yes 176 | 177 | # Maximum amount of notifications kept in history 178 | history_length = 20 179 | 180 | ### Misc/Advanced ### 181 | 182 | # dmenu path. 183 | dmenu = /usr/bin/dmenu -p dunst: 184 | 185 | # Browser for opening urls in context menu. 186 | browser = /usr/bin/firefox -new-tab 187 | 188 | # Always run rule-defined scripts, even if the notification is suppressed 189 | always_run_script = true 190 | 191 | # Define the title of the windows spawned by dunst 192 | title = Dunst 193 | 194 | # Define the class of the windows spawned by dunst 195 | class = Dunst 196 | 197 | # Print a notification on startup. 198 | # This is mainly for error detection, since dbus (re-)starts dunst 199 | # automatically after a crash. 200 | startup_notification = false 201 | 202 | # Manage dunst's desire for talking 203 | # Can be one of the following values: 204 | # crit: Critical features. Dunst aborts 205 | # warn: Only non-fatal warnings 206 | # mesg: Important Messages 207 | # info: all unimportant stuff 208 | # debug: all less than unimportant stuff 209 | verbosity = mesg 210 | 211 | # Define the corner radius of the notification window 212 | # in pixel size. If the radius is 0, you have no rounded 213 | # corners. 214 | # The radius will be automatically lowered if it exceeds half of the 215 | # notification height to avoid clipping text and/or icons. 216 | corner_radius = 0 217 | 218 | ### Legacy 219 | 220 | # Use the Xinerama extension instead of RandR for multi-monitor support. 221 | # This setting is provided for compatibility with older nVidia drivers that 222 | # do not support RandR and using it on systems that support RandR is highly 223 | # discouraged. 224 | # 225 | # By enabling this setting dunst will not be able to detect when a monitor 226 | # is connected or disconnected which might break follow mode if the screen 227 | # layout changes. 228 | force_xinerama = false 229 | 230 | ### mouse 231 | 232 | # Defines action of mouse event 233 | # Possible values are: 234 | # * none: Don't do anything. 235 | # * do_action: If the notification has exactly one action, or one is marked as default, 236 | # invoke it. If there are multiple and no default, open the context menu. 237 | # * close_current: Close current notification. 238 | # * close_all: Close all notifications. 239 | mouse_left_click = close_current 240 | mouse_middle_click = do_action 241 | mouse_right_click = close_all 242 | 243 | # Experimental features that may or may not work correctly. Do not expect them 244 | # to have a consistent behaviour across releases. 245 | [experimental] 246 | # Calculate the dpi to use on a per-monitor basis. 247 | # If this setting is enabled the Xft.dpi value will be ignored and instead 248 | # dunst will attempt to calculate an appropriate dpi value for each monitor 249 | # using the resolution and physical size. This might be useful in setups 250 | # where there are multiple screens with very different dpi values. 251 | per_monitor_dpi = false 252 | 253 | [shortcuts] 254 | 255 | # Shortcuts are specified as [modifier+][modifier+]...key 256 | # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", 257 | # "mod3" and "mod4" (windows-key). 258 | # Xev might be helpful to find names for keys. 259 | 260 | # Close notification. 261 | close = ctrl+space 262 | 263 | # Close all notifications. 264 | close_all = ctrl+shift+space 265 | 266 | # Redisplay last message(s). 267 | # On the US keyboard layout "grave" is normally above TAB and left 268 | # of "1". Make sure this key actually exists on your keyboard layout, 269 | # e.g. check output of 'xmodmap -pke' 270 | history = ctrl+grave 271 | 272 | # Context menu. 273 | context = ctrl+shift+period 274 | 275 | [urgency_low] 276 | # IMPORTANT: colors have to be defined in quotation marks. 277 | # Otherwise the "#" and following would be interpreted as a comment. 278 | background = "#28143c" 279 | foreground = "#ffffff" 280 | timeout = 5 281 | # Icon for notifications with low urgency, uncomment to enable 282 | icon = /usr/share/icons/Arc-X-D/status/16/dialog-information.png 283 | 284 | [urgency_normal] 285 | background = "#28143c" 286 | foreground = "#ffffff" 287 | timeout = 5 288 | # Icon for notifications with normal urgency, uncomment to enable 289 | icon = /usr/share/icons/Arc-X-D/status/16/dialog-question.png 290 | 291 | [urgency_critical] 292 | background = "#28143c" 293 | foreground = "#ffffff" 294 | frame_color = "#ff7f7f" 295 | timeout = 120 296 | # Icon for notifications with critical urgency, uncomment to enable 297 | icon = /usr/share/icons/Arc-X-D/status/16/dialog-warning.png 298 | 299 | # Every section that isn't one of the above is interpreted as a rules to 300 | # override settings for certain messages. 301 | # 302 | # Messages can be matched by 303 | # appname (discouraged, see desktop_entry) 304 | # body 305 | # category 306 | # desktop_entry 307 | # icon 308 | # match_transient 309 | # msg_urgency 310 | # stack_tag 311 | # summary 312 | # 313 | # and you can override the 314 | # background 315 | # foreground 316 | # format 317 | # frame_color 318 | # fullscreen 319 | # new_icon 320 | # set_stack_tag 321 | # set_transient 322 | # timeout 323 | # urgency 324 | # 325 | # Shell-like globbing will get expanded. 326 | # 327 | # Instead of the appname filter, it's recommended to use the desktop_entry filter. 328 | # GLib based applications export their desktop-entry name. In comparison to the appname, 329 | # the desktop-entry won't get localized. 330 | # 331 | # SCRIPTING 332 | # You can specify a script that gets run when the rule matches by 333 | # setting the "script" option. 334 | # The script will be called as follows: 335 | # script appname summary body icon urgency 336 | # where urgency can be "LOW", "NORMAL" or "CRITICAL". 337 | # 338 | # NOTE: if you don't want a notification to be displayed, set the format 339 | # to "". 340 | # NOTE: It might be helpful to run dunst -print in a terminal in order 341 | # to find fitting options for rules. 342 | 343 | # Disable the transient hint so that idle_threshold cannot be bypassed from the 344 | # client 345 | #[transient_disable] 346 | # match_transient = yes 347 | # set_transient = no 348 | # 349 | # Make the handling of transient notifications more strict by making them not 350 | # be placed in history. 351 | #[transient_history_ignore] 352 | # match_transient = yes 353 | # history_ignore = yes 354 | 355 | # fullscreen values 356 | # show: show the notifications, regardless if there is a fullscreen window opened 357 | # delay: displays the new notification, if there is no fullscreen window active 358 | # If the notification is already drawn, it won't get undrawn. 359 | # pushback: same as delay, but when switching into fullscreen, the notification will get 360 | # withdrawn from screen again and will get delayed like a new notification 361 | #[fullscreen_delay_everything] 362 | # fullscreen = delay 363 | #[fullscreen_show_critical] 364 | # msg_urgency = critical 365 | # fullscreen = show 366 | 367 | #[espeak] 368 | # summary = "*" 369 | # script = dunst_espeak.sh 370 | 371 | #[script-test] 372 | # summary = "*script*" 373 | # script = dunst_test.sh 374 | 375 | #[ignore] 376 | # # This notification will not be displayed 377 | # summary = "foobar" 378 | # format = "" 379 | 380 | #[history-ignore] 381 | # # This notification will not be saved in history 382 | # summary = "foobar" 383 | # history_ignore = yes 384 | 385 | #[skip-display] 386 | # # This notification will not be displayed, but will be included in the history 387 | # summary = "foobar" 388 | # skip_display = yes 389 | 390 | #[signed_on] 391 | # appname = Pidgin 392 | # summary = "*signed on*" 393 | # urgency = low 394 | # 395 | #[signed_off] 396 | # appname = Pidgin 397 | # summary = *signed off* 398 | # urgency = low 399 | # 400 | #[says] 401 | # appname = Pidgin 402 | # summary = *says* 403 | # urgency = critical 404 | # 405 | #[twitter] 406 | # appname = Pidgin 407 | # summary = *twitter.com* 408 | # urgency = normal 409 | # 410 | #[stack-volumes] 411 | # appname = "some_volume_notifiers" 412 | # set_stack_tag = "volume" 413 | # 414 | # vim: ft=cfg 415 | -------------------------------------------------------------------------------- /.config/gtk-3.0/gtk.css: -------------------------------------------------------------------------------- 1 | VteTerminal, vte-terminal { 2 | padding: 13px; 3 | 4 | } 5 | -------------------------------------------------------------------------------- /.config/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name=Arc-Dark 3 | gtk-icon-theme-name=Qogir-dark 4 | gtk-font-name=Noto Sans 10 5 | gtk-cursor-theme-name=Qogir-dark 6 | gtk-cursor-theme-size=0 7 | gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ 8 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 9 | gtk-button-images=0 10 | gtk-menu-images=0 11 | gtk-enable-event-sounds=1 12 | gtk-enable-input-feedback-sounds=1 13 | gtk-xft-antialias=1 14 | gtk-xft-hinting=1 15 | gtk-xft-hintstyle=hintmedium 16 | gtk-xft-rgba=rgb 17 | -------------------------------------------------------------------------------- /.config/nitrogen/bg-saved.cfg: -------------------------------------------------------------------------------- 1 | [xin_-1] 2 | file=/usr/share/endeavouros/backgrounds/endeavouros-wallpaper.png 3 | mode=5 4 | bgcolor=#000000 5 | -------------------------------------------------------------------------------- /.config/nitrogen/nitrogen.cfg: -------------------------------------------------------------------------------- 1 | [geometry] 2 | posx=964 3 | posy=12 4 | sizex=942 5 | sizey=1034 6 | 7 | [nitrogen] 8 | view=icon 9 | recurse=true 10 | sort=alpha 11 | icon_caps=false 12 | dirs=/usr/share/endeavouros/backgrounds/; 13 | -------------------------------------------------------------------------------- /.config/picom.conf: -------------------------------------------------------------------------------- 1 | # Thank you code_nomad: http://9m.no/ꪯ鵞 2 | # and Arch Wiki contributors: https://wiki.archlinux.org/index.php/Compton 3 | 4 | ################################# 5 | # 6 | # Backend 7 | # 8 | ################################# 9 | 10 | # Backend to use: "xrender" or "glx". 11 | # GLX backend is typically much faster but depends on a sane driver. 12 | backend = "glx"; 13 | 14 | ################################# 15 | # 16 | # GLX backend 17 | # 18 | ################################# 19 | 20 | glx-no-stencil = true; 21 | 22 | # GLX backend: Copy unmodified regions from front buffer instead of redrawing them all. 23 | # My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified, 24 | # but a 20% increase when only 1/4 is. 25 | # My tests on nouveau show terrible slowdown. 26 | glx-copy-from-front = false; 27 | 28 | # GLX backend: Use MESA_copy_sub_buffer to do partial screen update. 29 | # My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated. 30 | # May break VSync and is not available on some drivers. 31 | # Overrides --glx-copy-from-front. 32 | # glx-use-copysubbuffermesa = true; 33 | 34 | # GLX backend: Avoid rebinding pixmap on window damage. 35 | # Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe). 36 | # Recommended if it works. 37 | # glx-no-rebind-pixmap = true; 38 | 39 | # GLX backend: GLX buffer swap method we assume. 40 | # Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1). 41 | # undefined is the slowest and the safest, and the default value. 42 | # copy is fastest, but may fail on some drivers, 43 | # 2-6 are gradually slower but safer (6 is still faster than 0). 44 | # Usually, double buffer means 2, triple buffer means 3. 45 | # buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers. 46 | # Useless with --glx-use-copysubbuffermesa. 47 | # Partially breaks --resize-damage. 48 | # Defaults to undefined. 49 | #glx-swap-method = "undefined"; 50 | 51 | ################################# 52 | # 53 | # Shadows 54 | # 55 | ################################# 56 | 57 | # Enabled client-side shadows on windows. 58 | shadow = false; 59 | # The blur radius for shadows. (default 12) 60 | shadow-radius = 5; 61 | # The left offset for shadows. (default -15) 62 | shadow-offset-x = -5; 63 | # The top offset for shadows. (default -15) 64 | shadow-offset-y = -5; 65 | # The translucency for shadows. (default .75) 66 | shadow-opacity = 0.5; 67 | 68 | # Set if you want different colour shadows 69 | # shadow-red = 0.0; 70 | # shadow-green = 0.0; 71 | # shadow-blue = 0.0; 72 | 73 | # The shadow exclude options are helpful if you have shadows enabled. Due to the way picom draws its shadows, certain applications will have visual glitches 74 | # (most applications are fine, only apps that do weird things with xshapes or argb are affected). 75 | # 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. 76 | shadow-exclude = [ 77 | "! name~=''", 78 | "name = 'Notification'", 79 | "name = 'Plank'", 80 | "name = 'Docky'", 81 | "name = 'Kupfer'", 82 | "name = 'xfce4-notifyd'", 83 | "name *= 'VLC'", 84 | "name *= 'compton'", 85 | "name *= 'picom'", 86 | "name *= 'Chromium'", 87 | "name *= 'Chrome'", 88 | "class_g = 'Firefox' && argb", 89 | "class_g = 'Conky'", 90 | "class_g = 'Kupfer'", 91 | "class_g = 'Synapse'", 92 | "class_g ?= 'Notify-osd'", 93 | "class_g ?= 'Cairo-dock'", 94 | "class_g ?= 'Xfce4-notifyd'", 95 | "class_g ?= 'Xfce4-power-manager'", 96 | "_GTK_FRAME_EXTENTS@:c", 97 | "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" 98 | ]; 99 | # Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) 100 | shadow-ignore-shaped = false; 101 | 102 | ################################# 103 | # 104 | # Opacity 105 | # 106 | ################################# 107 | 108 | inactive-opacity = 1; 109 | active-opacity = 1; 110 | frame-opacity = 1; 111 | inactive-opacity-override = false; 112 | 113 | # Dim inactive windows. (0.0 - 1.0) 114 | # inactive-dim = 0.2; 115 | # Do not let dimness adjust based on window opacity. 116 | # inactive-dim-fixed = true; 117 | # Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred. 118 | # blur-background = true; 119 | # Blur background of opaque windows with transparent frames as well. 120 | # blur-background-frame = true; 121 | # Do not let blur radius adjust based on window opacity. 122 | blur-background-fixed = false; 123 | blur-background-exclude = [ 124 | "window_type = 'dock'", 125 | "window_type = 'desktop'" 126 | ]; 127 | 128 | ################################# 129 | # 130 | # Fading 131 | # 132 | ################################# 133 | 134 | # Fade windows during opacity changes. 135 | fading = true; 136 | # The time between steps in a fade in milliseconds. (default 10). 137 | fade-delta = 4; 138 | # Opacity change between steps while fading in. (default 0.028). 139 | fade-in-step = 0.03; 140 | # Opacity change between steps while fading out. (default 0.03). 141 | fade-out-step = 0.03; 142 | # Fade windows in/out when opening/closing 143 | # no-fading-openclose = true; 144 | 145 | # Specify a list of conditions of windows that should not be faded. 146 | fade-exclude = [ ]; 147 | 148 | ################################# 149 | # 150 | # Other 151 | # 152 | ################################# 153 | 154 | # Try to detect WM windows and mark them as active. 155 | mark-wmwin-focused = true; 156 | # Mark all non-WM but override-redirect windows active (e.g. menus). 157 | mark-ovredir-focused = true; 158 | # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events. 159 | # Usually more reliable but depends on a EWMH-compliant WM. 160 | use-ewmh-active-win = true; 161 | # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. 162 | detect-rounded-corners = true; 163 | 164 | # Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows. 165 | # This prevents opacity being ignored for some apps. 166 | # For example without this enabled my xfce4-notifyd is 100% opacity no matter what. 167 | detect-client-opacity = true; 168 | 169 | # Specify refresh rate of the screen. 170 | # If not specified or 0, picom will try detecting this with X RandR extension. 171 | refresh-rate = 0; 172 | 173 | # Vertical synchronization: match the refresh rate of the monitor 174 | # Enable/disable VSync. 175 | #vsync = true; 176 | vsync = false; 177 | 178 | # Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing. 179 | # Reported to have no effect, though. 180 | dbe = false; 181 | 182 | # Limit picom to repaint at most once every 1 / refresh_rate second to boost performance. 183 | # This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already, 184 | # unless you wish to specify a lower refresh rate than the actual value. 185 | #sw-opti = true; 186 | 187 | # Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games. 188 | # Known to cause flickering when redirecting/unredirecting windows. 189 | unredir-if-possible = false; 190 | 191 | # Specify a list of conditions of windows that should always be considered focused. 192 | focus-exclude = [ ]; 193 | 194 | # Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time. 195 | detect-transient = true; 196 | # Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time. 197 | # WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too. 198 | detect-client-leader = true; 199 | 200 | ################################# 201 | # 202 | # Window type settings 203 | # 204 | ################################# 205 | 206 | wintypes: 207 | { 208 | tooltip = 209 | { 210 | # fade: Fade the particular type of windows. 211 | fade = true; 212 | # shadow: Give those windows shadow 213 | shadow = false; 214 | # opacity: Default opacity for the type of windows. 215 | opacity = 0.85; 216 | # focus: Whether to always consider windows of this type focused. 217 | focus = true; 218 | }; 219 | }; 220 | 221 | ###################### 222 | # 223 | # XSync 224 | # See: https://github.com/yshui/picom/commit/b18d46bcbdc35a3b5620d817dd46fbc76485c20d 225 | # 226 | ###################### 227 | 228 | # Use X Sync fence to sync clients' draw calls. Needed on nvidia-drivers with GLX backend for some users. 229 | xrender-sync-fence = true; 230 | # transparency for terminal emulators 231 | opacity-rule = ["85:class_g = 'Xfce4-terminal'"]; 232 | -------------------------------------------------------------------------------- /.config/polybar/config.ini: -------------------------------------------------------------------------------- 1 | [colors] 2 | 3 | fg-blue = #5294e2 4 | focus-dark = #1b2124 5 | blue = #73d0ff 6 | blue-darker = #0771ed 7 | green = #bae67e 8 | dark-green = #75c933 9 | red = #ff3333 10 | bg = #800A0E14 11 | fg = #bfbab0 12 | cyan = #95e6cb 13 | alpha = #00000000 14 | white = #fff 15 | 16 | [bar/top] 17 | ;monitor = VGA-1 18 | 19 | override-redirect = false 20 | 21 | ; Put the bar at the bottom of the screen 22 | bottom = false 23 | 24 | ; Prefer fixed center position for the `modules-center` block 25 | fixed-center = true 26 | 27 | width = 100% 28 | height = 29 29 | 30 | offset-x = 31 | offset-y = 32 | 33 | ; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) 34 | background = ${colors.bg} 35 | 36 | ; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) 37 | foreground = ${colors.fg} 38 | 39 | line-size = 0 40 | line-color = #fff 41 | 42 | ; Number of spaces to add at the beginning/end of the bar 43 | ; Individual side values can be defined using: 44 | ; padding-{left,right} 45 | padding-right = 1 46 | padding-left = 0 47 | 48 | ; Number of spaces to add before/after each module 49 | ; Individual side values can be defined using: 50 | ; module-margin-{left,right} 51 | module-margin = 0 52 | 53 | font-0 = "Iosevka Term:pixelsize=13;4" 54 | font-1 = "Iosevka Term:pixelsize=6;1" 55 | 56 | ; Define modules fot the bar 57 | ; All modules need not be added here 58 | modules-left = powermenu bspwm sps keyhint 59 | modules-center = title 60 | modules-right = backlight sps battery sps pulseaudio sps memory sps cpu sps caps sps num sps scroll sps date 61 | ; Following modules are not enabled by default in Endeavour OS Bspwm Edition 62 | ; 63 | ; 1. mpd - Shows current playing track info. 64 | ; Need to set host and port in module definition. 65 | ; 66 | ; 2. mpd_control - Shows previous, play/pause, next button to 67 | ; control music playback via mpd. 68 | ; Need to set host and port in module definition. 69 | ; 70 | ; 3. netspeed - Displays real time network speed 71 | ; Need to set correct interface name in module definition. 72 | 73 | ; The separator will be inserted between the output of each module 74 | separator = 75 | 76 | ; This value is used to add extra spacing between elements 77 | ; @deprecated: This parameter will be removed in an upcoming version 78 | spacing = 0 79 | 80 | ; Opacity value between 0.0 and 1.0 used on fade in/out 81 | dim-value = 1.0 82 | 83 | wm-name = i3 84 | 85 | tray-position = right 86 | 87 | ; If true, the bar will not shift its 88 | ; contents when the tray changes 89 | tray-detached = false 90 | 91 | ; Tray icon max size 92 | tray-maxsize = 16 93 | 94 | tray-background = ${colors.bg} 95 | ;offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) 96 | 97 | tray-offset-x = 0 98 | tray-offset-y = 0 99 | 100 | ; Pad the sides of each tray icon 101 | tray-padding = 2 102 | 103 | ; Scale factor for tray clients 104 | tray-scale = 1 105 | 106 | wm-restack = bspwm 107 | 108 | dpi-x = 133 109 | dpi-y = 133 110 | 111 | enable-ipc = false 112 | 113 | ;border-left-size = 1% 114 | ;border-right-size = 1% 115 | ;border-top-size = 1% 116 | ;border-bottom-size = 25 117 | border-color = ${colors.alpha} 118 | 119 | [module/bspwm] 120 | type = internal/bspwm 121 | 122 | ; Only show workspaces defined on the same output as the bar 123 | ; NOTE: The bspwm and XRandR monitor names must match, which they do by default. 124 | ; But if you rename your bspwm monitors with bspc -n this option will no longer 125 | ; behave correctly. 126 | ; Default: true 127 | pin-workspaces = true 128 | 129 | ; Output mode flags after focused state label 130 | ; Default: false 131 | inline-mode = false 132 | 133 | ; Create click handler used to focus workspace 134 | ; Default: true 135 | enable-click = true 136 | 137 | ; Create scroll handlers used to cycle workspaces 138 | ; Default: true 139 | enable-scroll = true 140 | 141 | ; Set the scroll cycle direction 142 | ; Default: true 143 | reverse-scroll = false 144 | 145 | ; Use fuzzy (partial) matching on labels when assigning 146 | ; icons to workspaces 147 | ; Example: code;♚ will apply the icon to all workspaces 148 | ; containing 'code' in the label 149 | ; Default: false 150 | fuzzy-match = true 151 | 152 | ; ws-icon-[0-9]+ =