переписал polybar и sxhkd

This commit is contained in:
Buliway 2024-08-27 22:04:28 +03:00
parent 9d0411bf4f
commit b3e54574bc
3 changed files with 495 additions and 389 deletions

View file

@ -11,8 +11,16 @@
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2 xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
''; '';
# Эти команды выполняются в конце bspwmrc
extraConfig = ''
for m in $(polybar --list-monitors | cut -d":" -f1); do
MONITOR=$m polybar --reload bottom &
done
'';
startupPrograms = [ startupPrograms = [
# "lxqt-policykit-agent" # Заменил на гномовский # "lxqt-policykit-agent" # Заменил на гномовский
"sxhkd"
"nm-applet" "nm-applet"
"ksnip" "ksnip"
# "nekoray" # "nekoray"
@ -57,8 +65,10 @@
# "Polybar" = { layer = "below"; }; # "Polybar" = { layer = "below"; };
"Screenkey" = { manage = false; }; "Screenkey" = { manage = false; };
"gcolor3" = floating; "gcolor3" = floating;
"obs" = floating;
"steam" = floating; "steam" = floating;
"steam:steamwebhelper:Steam" = { state = "tiled"; }; "steam:steamwebhelper:Steam" = { state = "tiled"; };
"librewolf:librewolf:Save Image" = floating;
"SshAskpass" = floating; "SshAskpass" = floating;
"Nm-connection-editor" = floating; "Nm-connection-editor" = floating;
"ksnip" = floating1600x900; "ksnip" = floating1600x900;

View file

@ -21,322 +21,309 @@
# double-click-middle # double-click-middle
# double-click-right # double-click-right
{ config, ... }: { # Статус бар внизу { pkgs, config, ... }: { # Статус бар внизу
services.polybar = { home.package = [ sxhkd ];
enable = true;
script = '' xdg.configFile."polybar/config.ini" = {
for m in $(polybar --list-monitors | cut -d":" -f1); do # executable = true;
MONITOR=$m polybar --reload bottom & text = ''
done [bar/bottom]
monitor=$\{env:MONITOR:}
tray-position=right
bottom=true
fixed-center=true
enable-ipc=true
double-click-interval=400
offset-x=0
offset-y=0
width=100%
height=16pt
radius=0
dpi=0
background=${config.lib.stylix.colors.base00}
foreground=${config.lib.stylix.colors.base07}
border-color=${config.lib.stylix.colors.base00}
border-size=4pt
module-margin=4pt
separator=|
separator-foreground=${config.lib.stylix.colors.base0F}
modules-center=time
modules-left=bspwm title
modules-right=cpu memory alsa tray xkeyboard rofi
wm-restack=bspwm
font-0=NotoSans Nerd Font:style=Regular:size=12;3
; Выблядки не могут юзать все Noto Sans при указании одного шрифта
font-1=Noto Sans:size=12;3
font-2=Noto Sans CJK HK:size=12;3
font-3=Noto Sans CJK JP:size=12;3
font-4=Noto Sans CJK KR:size=12;3
font-5=Noto Sans CJK SC:size=12;3
font-6=Noto Sans CJK TC:size=12;3
font-7=Noto Color Emoji:style=Regular:size=12;3
font-8=Noto Sans Balinese:size=12;3
font-9=Noto Sans Bamum:size=12;3
font-10=Noto Sans Zanabazar Square:size=12;3
font-11=Noto Sans Bassa Vah:size=12;3
font-12=Noto Sans Batak:size=12;3
font-13=Noto Sans Bengali:size=12;3
font-14=Noto Sans Bhaiksuki:size=12;3
font-15=Noto Sans Brahmi:size=12;3
font-16=Noto Sans Buginese:size=12;3
font-17=Noto Sans Buhid:size=12;3
font-18=Noto Sans Canadian Aboriginal:size=12;3
font-19=Noto Sans Carian:size=12;3
font-20=Noto Sans Caucasian Albanian:size=12;3
font-21=Noto Sans Chakma:size=12;3
font-22=Noto Sans Cham:size=12;3
font-23=Noto Sans Cherokee:size=12;3
font-24=Noto Sans Chorasmian:size=12;3
font-25=Noto Sans Adlam:size=12;3
font-26=Noto Sans Anatolian Hieroglyphs:size=12;3
font-27=Noto Sans Arabic:size=12;3
font-28=Noto Sans Armenian:size=12;3
font-29=Noto Sans Avestan:size=12;3
font-30=Noto Sans Elymaic:size=12;3
font-31=Noto Sans Coptic:size=12;3
font-32=Noto Sans Cuneiform:size=12;3
font-33=Noto Sans Cypriot:size=12;3
font-34=Noto Sans Cypro Minoan:size=12;3
font-35=Noto Sans Deseret:size=12;3
font-36=Noto Sans Devanagari:size=12;3
font-37=Noto Sans Duployan:size=12;3
font-38=Noto Sans Egyptian Hieroglyphs:size=12;3
font-39=Noto Sans Elbasan:size=12;3
font-40=Noto Sans Hanunoo:size=12;3
font-41=Noto Sans Ethiopic:size=12;3
font-42=Noto Sans Georgian:size=12;3
font-43=Noto Sans Glagolitic:size=12;3
font-44=Noto Sans Gothic:size=12;3
font-45=Noto Sans Grantha:size=12;3
font-46=Noto Sans Gujarati:size=12;3
font-47=Noto Sans Gunjala Gondi:size=12;3
font-48=Noto Sans Gurmukhi:size=12;3
font-49=Noto Sans Hanifi Rohingya:size=12;3
font-50=Noto Sans Kawi:size=12;3
font-51=Noto Sans Hatran:size=12;3
font-52=Noto Sans Hebrew:size=12;3
font-53=Noto Sans Imperial Aramaic:size=12;3
font-54=Noto Sans Indic Siyaq Numbers:size=12;3
font-55=Noto Sans Inscriptional Pahlavi:size=12;3
font-56=Noto Sans Inscriptional Parthian:size=12;3
font-57=Noto Sans Javanese:size=12;3
font-58=Noto Sans Kaithi:size=12;3
font-59=Noto Sans Kannada:size=12;3
font-60=Noto Sans Linear B:size=12;3
font-61=Noto Sans Kayah Li:size=12;3
font-62=Noto Sans Kharoshthi:size=12;3
font-63=Noto Sans Khmer:size=12;3
font-64=Noto Sans Khojki:size=12;3
font-65=Noto Sans Khudawadi:size=12;3
font-66=Noto Sans Lao:size=12;3
font-67=Noto Sans Lepcha:size=12;3
font-68=Noto Sans Limbu:size=12;3
font-69=Noto Sans Linear A:size=12;3
font-70=Noto Sans Math:size=12;3
font-71=Noto Sans Lisu:size=12;3
font-72=Noto Sans Lycian:size=12;3
font-73=Noto Sans Lydian:size=12;3
font-74=Noto Sans Mahajani:size=12;3
font-75=Noto Sans Malayalam:size=12;3
font-76=Noto Sans Mandaic:size=12;3
font-77=Noto Sans Manichaean:size=12;3
font-78=Noto Sans Marchen:size=12;3
font-79=Noto Sans Masaram Gondi:size=12;3
font-80=Noto Sans Mono CJK HK:size=12;3
font-81=Noto Sans Mayan Numerals:size=12;3
font-82=Noto Sans Medefaidrin:size=12;3
font-83=Noto Sans Meetei Mayek:size=12;3
font-84=Noto Sans Mende Kikakui:size=12;3
font-85=Noto Sans Meroitic:size=12;3
font-86=Noto Sans Miao:size=12;3
font-87=Noto Sans Modi:size=12;3
font-88=Noto Sans Mongolian:size=12;3
font-89=Noto Sans Mono:size=12;3
font-90=Noto Sans Nandinagari:size=12;3
font-91=Noto Sans Mono CJK JP:size=12;3
font-92=Noto Sans Mono CJK KR:size=12;3
font-93=Noto Sans Mono CJK SC:size=12;3
font-94=Noto Sans Mono CJK TC:size=12;3
font-95=Noto Sans Mro:size=12;3
font-96=Noto Sans Multani:size=12;3
font-97=Noto Sans Myanmar:size=12;3
font-98=Noto Sans Nabataean:size=12;3
font-99=Noto Sans Nag Mundari:size=12;3
font-100=Noto Sans Old Permic:size=12;3
font-101=Noto Sans Newa:size=12;3
font-102=Noto Sans New Tai Lue:size=12;3
font-103=Noto Sans NKo:size=12;3
font-104=Noto Sans Nushu:size=12;3
font-105=Noto Sans Ogham:size=12;3
font-106=Noto Sans Ol Chiki:size=12;3
font-107=Noto Sans Old Hungarian:size=12;3
font-108=Noto Sans Old Italic:size=12;3
font-109=Noto Sans Old North Arabian:size=12;3
font-110=Noto Sans Pau Cin Hau:size=12;3
font-111=Noto Sans Old Persian:size=12;3
font-112=Noto Sans Old Sogdian:size=12;3
font-113=Noto Sans Old South Arabian:size=12;3
font-114=Noto Sans Old Turkic:size=12;3
font-115=Noto Sans Oriya:size=12;3
font-116=Noto Sans Osage:size=12;3
font-117=Noto Sans Osmanya:size=12;3
font-118=Noto Sans Pahawh Hmong:size=12;3
font-119=Noto Sans Palmyrene:size=12;3
font-120=Noto Sans Shavian:size=12;3
font-121=Noto Sans Phags-Pa:size=12;3
font-122=Noto Sans PhagsPa:size=12;3
font-123=Noto Sans Phoenician:size=12;3
font-124=Noto Sans Psalter Pahlavi:size=12;3
font-125=Noto Sans Rejang:size=12;3
font-126=Noto Sans Runic:size=12;3
font-127=Noto Sans Samaritan:size=12;3
font-128=Noto Sans Saurashtra:size=12;3
font-129=Noto Sans Sharada:size=12;3
font-130=Noto Sans Symbols 2:size=12;3
font-131=Noto Sans Siddham:size=12;3
font-132=Noto Sans SignWriting:size=12;3
font-133=Noto Sans Sinhala:size=12;3
font-134=Noto Sans Sogdian:size=12;3
font-135=Noto Sans Sora Sompeng:size=12;3
font-136=Noto Sans Soyombo:size=12;3
font-137=Noto Sans Sundanese:size=12;3
font-138=Noto Sans Syloti Nagri:size=12;3
font-139=Noto Sans Symbols:size=12;3
font-140=Noto Sans Telugu:size=12;3
font-141=Noto Sans Syriac:size=12;3
font-142=Noto Sans Tagalog:size=12;3
font-143=Noto Sans Tagbanwa:size=12;3
font-144=Noto Sans Tai Le:size=12;3
font-145=Noto Sans Tai Tham:size=12;3
font-146=Noto Sans Tai Viet:size=12;3
font-147=Noto Sans Takri:size=12;3
font-148=Noto Sans Tamil:size=12;3
font-149=Noto Sans Tangsa:size=12;3
font-150=Noto Sans Warang Citi:size=12;3
font-151=Noto Sans Test:size=12;3
font-152=Noto Sans Thaana:size=12;3
font-153=Noto Sans Thai:size=12;3
font-154=Noto Sans Tifinagh:size=12;3
font-155=Noto Sans Tirhuta:size=12;3
font-156=Noto Sans Ugaritic:size=12;3
font-157=Noto Sans Vai:size=12;3
font-158=Noto Sans Vithkuqi:size=12;3
font-159=Noto Sans Wancho:size=12;3
font-160=Noto Sans Yi:size=12;3
[module/alsa]
type=internal/alsa
master-soundcard=default
speaker-soundcard=default
headphone-soundcard=default
master-mixer=Master
interval=5
format-volume=<label-volume>
format-muted=<label-muted>
label-muted= %percentage%
label-volume= %percentage%
click-right=exec pavucontrol
[module/bspwm]
type=internal/bspwm
pin-workspaces=true
inline-mode=true
enable-click=true
enable-scroll=false
reverse-scroll=false
occupied-scroll=true
ws-icon-1=1;1
ws-icon-2=2;2
ws-icon-3=3;3
ws-icon-4=4;4
ws-icon-5=5;5
ws-icon-6=6;6
ws-icon-7=7;7
ws-icon-8=8;8
ws-icon-9=9;9
ws-icon-10=10;10
format=<label-state>
label-empty=%name%
label-empty-background=${config.lib.stylix.colors.base03}
label-empty-foreground=${config.lib.stylix.colors.base00}
label-empty-padding=5pt
label-focused=%name%
label-focused-background=${config.lib.stylix.colors.base09}
label-focused-foreground=${config.lib.stylix.colors.base00}
label-focused-padding=5pt
label-occupied=%name%
label-occupied-background=${config.lib.stylix.colors.base04}
label-occupied-foreground=${config.lib.stylix.colors.base00}
label-occupied-padding=5pt
label-urgent=%name%
label-urgent-background=${config.lib.stylix.colors.base08}
label-urgent-foreground=${config.lib.stylix.colors.base00}
label-urgent-padding=5pt
label-separator=" "
label-separator-foreground=${config.lib.stylix.colors.base00}
label-separator-padding=0
[module/cpu]
type=internal/cpu
interval=1
warn-percentage=95
label=CPU %percentage%%
label-warn=CPU %percentage%%
[module/memory]
interval=5
label=RAM: %gb_used% + %gb_swap_used%
type=internal/memory
[module/rofi]
type=custom/text
click-left=exec rofi -show drun -show-icons
click-right=exec rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu
label=" "
[module/time]
type=internal/date
interval=1
date=%d %B %Y
date-alt=%d-%m-%Y
time=%H:%M:%S
time-alt=%H:%M
label=%date% %time%
[module/title]
type=internal/xwindow
label=%title%
label-maxlen=40
label-foreground=${config.lib.stylix.colors.base07}
[module/tray]
type=internal/tray
format=<tray>
tray-spacing=8px
tray-size=90%
[module/xkeyboard]
type=internal/xkeyboard
format=<label-layout>
label-layout=%icon%
layout-icon-0=ru;RU
layout-icon-1=us;EN
''; '';
settings = { # Или переимоневать в "config"? Не понял в чём разница
"bar/bottom" = {
monitor = "\${env:MONITOR:}";
# monitor-strict = false;
# monitor-exact = true;
bottom = true;
fixed-center = true;
enable-ipc = true;
double-click-interval = 400;
offset-x = 0;
offset-y = 0;
width = "100%";
height = "16pt";
radius = 0;
dpi = 0;
background = config.lib.stylix.colors.base00;
foreground = config.lib.stylix.colors.base07;
border-color = config.lib.stylix.colors.base00;
border-size = "4pt";
module-margin = "4pt";
separator = "|";
separator-foreground = config.lib.stylix.colors.base0F;
modules-left = "bspwm title";
modules-center = "time";
modules-right = "cpu memory alsa tray xkeyboard rofi";
wm-restack = "bspwm";
font-0 = "NotoSans Nerd Font:style=Regular:size=12;3";
font-1 = "Noto Color Emoji:style=Regular:pixelsize=12;3";
# Я проклинал пидарасов, которые не могут юзать все Noto Sans при указании этого шрифта
font-2 = "Noto Sans:size=12;3";
font-3 = "Noto Sans CJK HK:size=12;3";
font-4 = "Noto Sans CJK JP:size=12;3";
font-5 = "Noto Sans CJK KR:size=12;3";
font-6 = "Noto Sans CJK SC:size=12;3";
font-7 = "Noto Sans CJK TC:size=12;3";
font-8 = "Noto Sans Balinese:size=12;3";
font-9 = "Noto Sans Bamum:size=12;3";
font-10 = "Noto Sans Zanabazar Square:size=12;3";
font-11 = "Noto Sans Bassa Vah:size=12;3";
font-12 = "Noto Sans Batak:size=12;3";
font-13 = "Noto Sans Bengali:size=12;3";
font-14 = "Noto Sans Bhaiksuki:size=12;3";
font-15 = "Noto Sans Brahmi:size=12;3";
font-16 = "Noto Sans Buginese:size=12;3";
font-17 = "Noto Sans Buhid:size=12;3";
font-18 = "Noto Sans Canadian Aboriginal:size=12;3";
font-19 = "Noto Sans Carian:size=12;3";
font-20 = "Noto Sans Caucasian Albanian:size=12;3";
font-21 = "Noto Sans Chakma:size=12;3";
font-22 = "Noto Sans Cham:size=12;3";
font-23 = "Noto Sans Cherokee:size=12;3";
font-24 = "Noto Sans Chorasmian:size=12;3";
font-25 = "Noto Sans Adlam:size=12;3";
font-26 = "Noto Sans Anatolian Hieroglyphs:size=12;3";
font-27 = "Noto Sans Arabic:size=12;3";
font-28 = "Noto Sans Armenian:size=12;3";
font-29 = "Noto Sans Avestan:size=12;3";
font-30 = "Noto Sans Elymaic:size=12;3";
font-31 = "Noto Sans Coptic:size=12;3";
font-32 = "Noto Sans Cuneiform:size=12;3";
font-33 = "Noto Sans Cypriot:size=12;3";
font-34 = "Noto Sans Cypro Minoan:size=12;3";
font-35 = "Noto Sans Deseret:size=12;3";
font-36 = "Noto Sans Devanagari:size=12;3";
font-37 = "Noto Sans Duployan:size=12;3";
font-38 = "Noto Sans Egyptian Hieroglyphs:size=12;3";
font-39 = "Noto Sans Elbasan:size=12;3";
font-40 = "Noto Sans Hanunoo:size=12;3";
font-41 = "Noto Sans Ethiopic:size=12;3";
font-42 = "Noto Sans Georgian:size=12;3";
font-43 = "Noto Sans Glagolitic:size=12;3";
font-44 = "Noto Sans Gothic:size=12;3";
font-45 = "Noto Sans Grantha:size=12;3";
font-46 = "Noto Sans Gujarati:size=12;3";
font-47 = "Noto Sans Gunjala Gondi:size=12;3";
font-48 = "Noto Sans Gurmukhi:size=12;3";
font-49 = "Noto Sans Hanifi Rohingya:size=12;3";
font-50 = "Noto Sans Kawi:size=12;3";
font-51 = "Noto Sans Hatran:size=12;3";
font-52 = "Noto Sans Hebrew:size=12;3";
font-53 = "Noto Sans Imperial Aramaic:size=12;3";
font-54 = "Noto Sans Indic Siyaq Numbers:size=12;3";
font-55 = "Noto Sans Inscriptional Pahlavi:size=12;3";
font-56 = "Noto Sans Inscriptional Parthian:size=12;3";
font-57 = "Noto Sans Javanese:size=12;3";
font-58 = "Noto Sans Kaithi:size=12;3";
font-59 = "Noto Sans Kannada:size=12;3";
font-60 = "Noto Sans Linear B:size=12;3";
font-61 = "Noto Sans Kayah Li:size=12;3";
font-62 = "Noto Sans Kharoshthi:size=12;3";
font-63 = "Noto Sans Khmer:size=12;3";
font-64 = "Noto Sans Khojki:size=12;3";
font-65 = "Noto Sans Khudawadi:size=12;3";
font-66 = "Noto Sans Lao:size=12;3";
font-67 = "Noto Sans Lepcha:size=12;3";
font-68 = "Noto Sans Limbu:size=12;3";
font-69 = "Noto Sans Linear A:size=12;3";
font-70 = "Noto Sans Math:size=12;3";
font-71 = "Noto Sans Lisu:size=12;3";
font-72 = "Noto Sans Lycian:size=12;3";
font-73 = "Noto Sans Lydian:size=12;3";
font-74 = "Noto Sans Mahajani:size=12;3";
font-75 = "Noto Sans Malayalam:size=12;3";
font-76 = "Noto Sans Mandaic:size=12;3";
font-77 = "Noto Sans Manichaean:size=12;3";
font-78 = "Noto Sans Marchen:size=12;3";
font-79 = "Noto Sans Masaram Gondi:size=12;3";
font-80 = "Noto Sans Mono CJK HK:size=12;3";
font-81 = "Noto Sans Mayan Numerals:size=12;3";
font-82 = "Noto Sans Medefaidrin:size=12;3";
font-83 = "Noto Sans Meetei Mayek:size=12;3";
font-84 = "Noto Sans Mende Kikakui:size=12;3";
font-85 = "Noto Sans Meroitic:size=12;3";
font-86 = "Noto Sans Miao:size=12;3";
font-87 = "Noto Sans Modi:size=12;3";
font-88 = "Noto Sans Mongolian:size=12;3";
font-89 = "Noto Sans Mono:size=12;3";
font-90 = "Noto Sans Nandinagari:size=12;3";
font-91 = "Noto Sans Mono CJK JP:size=12;3";
font-92 = "Noto Sans Mono CJK KR:size=12;3";
font-93 = "Noto Sans Mono CJK SC:size=12;3";
font-94 = "Noto Sans Mono CJK TC:size=12;3";
font-95 = "Noto Sans Mro:size=12;3";
font-96 = "Noto Sans Multani:size=12;3";
font-97 = "Noto Sans Myanmar:size=12;3";
font-98 = "Noto Sans Nabataean:size=12;3";
font-99 = "Noto Sans Nag Mundari:size=12;3";
font-100 = "Noto Sans Old Permic:size=12;3";
font-101 = "Noto Sans Newa:size=12;3";
font-102 = "Noto Sans New Tai Lue:size=12;3";
font-103 = "Noto Sans NKo:size=12;3";
font-104 = "Noto Sans Nushu:size=12;3";
font-105 = "Noto Sans Ogham:size=12;3";
font-106 = "Noto Sans Ol Chiki:size=12;3";
font-107 = "Noto Sans Old Hungarian:size=12;3";
font-108 = "Noto Sans Old Italic:size=12;3";
font-109 = "Noto Sans Old North Arabian:size=12;3";
font-110 = "Noto Sans Pau Cin Hau:size=12;3";
font-111 = "Noto Sans Old Persian:size=12;3";
font-112 = "Noto Sans Old Sogdian:size=12;3";
font-113 = "Noto Sans Old South Arabian:size=12;3";
font-114 = "Noto Sans Old Turkic:size=12;3";
font-115 = "Noto Sans Oriya:size=12;3";
font-116 = "Noto Sans Osage:size=12;3";
font-117 = "Noto Sans Osmanya:size=12;3";
font-118 = "Noto Sans Pahawh Hmong:size=12;3";
font-119 = "Noto Sans Palmyrene:size=12;3";
font-120 = "Noto Sans Shavian:size=12;3";
font-121 = "Noto Sans Phags\-Pa:size=12;3";
font-122 = "Noto Sans PhagsPa:size=12;3";
font-123 = "Noto Sans Phoenician:size=12;3";
font-124 = "Noto Sans Psalter Pahlavi:size=12;3";
font-125 = "Noto Sans Rejang:size=12;3";
font-126 = "Noto Sans Runic:size=12;3";
font-127 = "Noto Sans Samaritan:size=12;3";
font-128 = "Noto Sans Saurashtra:size=12;3";
font-129 = "Noto Sans Sharada:size=12;3";
font-130 = "Noto Sans Symbols 2:size=12;3";
font-131 = "Noto Sans Siddham:size=12;3";
font-132 = "Noto Sans SignWriting:size=12;3";
font-133 = "Noto Sans Sinhala:size=12;3";
font-134 = "Noto Sans Sogdian:size=12;3";
font-135 = "Noto Sans Sora Sompeng:size=12;3";
font-136 = "Noto Sans Soyombo:size=12;3";
font-137 = "Noto Sans Sundanese:size=12;3";
font-138 = "Noto Sans Syloti Nagri:size=12;3";
font-139 = "Noto Sans Symbols:size=12;3";
font-140 = "Noto Sans Telugu:size=12;3";
font-141 = "Noto Sans Syriac:size=12;3";
font-142 = "Noto Sans Tagalog:size=12;3";
font-143 = "Noto Sans Tagbanwa:size=12;3";
font-144 = "Noto Sans Tai Le:size=12;3";
font-145 = "Noto Sans Tai Tham:size=12;3";
font-146 = "Noto Sans Tai Viet:size=12;3";
font-147 = "Noto Sans Takri:size=12;3";
font-148 = "Noto Sans Tamil:size=12;3";
font-149 = "Noto Sans Tangsa:size=12;3";
font-150 = "Noto Sans Warang Citi:size=12;3";
font-151 = "Noto Sans Test:size=12;3";
font-152 = "Noto Sans Thaana:size=12;3";
font-153 = "Noto Sans Thai:size=12;3";
font-154 = "Noto Sans Tifinagh:size=12;3";
font-155 = "Noto Sans Tirhuta:size=12;3";
font-156 = "Noto Sans Ugaritic:size=12;3";
font-157 = "Noto Sans Vai:size=12;3";
font-158 = "Noto Sans Vithkuqi:size=12;3";
font-159 = "Noto Sans Wancho:size=12;3";
font-161 = "Noto Sans Yi:size=12;3";
};
"module/rofi" = {
type = "custom/text";
click-left = "exec rofi -show drun -show-icons";
label = " ";
};
"module/bspwm" = {
type = "internal/bspwm";
pin-workspaces = true;
inline-mode = true;
enable-click = true;
enable-scroll = false;
reverse-scroll = false;
occupied-scroll = true;
ws-icon-1 = "1;1";
ws-icon-2 = "2;2";
ws-icon-3 = "3;3";
ws-icon-4 = "4;4";
ws-icon-5 = "5;5";
ws-icon-6 = "6;6";
ws-icon-7 = "7;7";
ws-icon-8 = "8;8";
ws-icon-9 = "9;9";
ws-icon-10 = "10;10";
format = "<label-state>";
label-empty = "%name%";
label-empty-foreground = config.lib.stylix.colors.base00;
label-empty-background= config.lib.stylix.colors.base03;
label-empty-padding = "5pt";
label-focused = "%name%";
label-focused-foreground = config.lib.stylix.colors.base00;
label-focused-background= config.lib.stylix.colors.base09;
label-focused-padding = "5pt";
label-occupied = "%name%";
label-occupied-foreground = config.lib.stylix.colors.base00;
label-occupied-background= config.lib.stylix.colors.base04;
label-occupied-padding = "5pt";
label-urgent = "%name%";
label-urgent-foreground = config.lib.stylix.colors.base00;
label-urgent-background= config.lib.stylix.colors.base08;
label-urgent-padding = "5pt";
label-separator = " ";
label-separator-padding = 0;
label-separator-foreground = config.lib.stylix.colors.base00;
};
"module/title" = {
type = "internal/xwindow";
label = "%title%";
label-maxlen = 40;
label-foreground = config.lib.stylix.colors.base07;
};
"module/time" = {
type = "internal/date";
interval = 1;
date = "%d %B %Y";
time = "%H:%M:%S";
date-alt = "%d-%m-%Y";
time-alt = "%H:%M";
label = "%date% %time%";
};
"module/xkeyboard" = {
type = "internal/xkeyboard";
format = "<label-layout>";
label-layout = "%icon%";
layout-icon-0 = "ru;RU";
layout-icon-1 = "us;EN";
};
"module/tray" = {
type = "internal/tray";
format = "<tray>";
tray-spacing = "8px";
tray-size = "90%";
};
"module/alsa" = {
type = "internal/alsa";
master-soundcard = "default";
speaker-soundcard = "default";
headphone-soundcard = "default";
master-mixer = "Master";
interval = 5;
format-volume = "<label-volume>";
format-muted = "<label-muted>";
label-volume = " %percentage%";
label-muted = " %percentage%";
click-right = "exec pavucontrol";
};
"module/memory" = {
type = "internal/memory";
interval = 5;
label = "RAM: %gb_used% + %gb_swap_used%";
};
"module/cpu" = {
type = "internal/cpu";
interval = 1;
warn-percentage = 95;
label = "CPU %percentage%%";
label-warn = "CPU %percentage%%";
};
};
}; };
} }

View file

@ -1,144 +1,253 @@
# Бинды системы https://manpages.org/sxhkd
# Можно запускать софт через "${pkgs.betterlockscreen}/bin/betterlockscreen -l dimblur"; # Можно запускать софт через "${pkgs.betterlockscreen}/bin/betterlockscreen -l dimblur";
# Но мне лень столько текста делать. И так сойдёт # Но мне лень столько текста делать. И так сойдёт
# Стандартный конфиг https://github.com/baskerville/bspwm/blob/master/examples/sxhkdrc # Стандартный конфиг https://github.com/baskerville/bspwm/blob/master/examples/sxhkdrc
let { pkgs, ... }: let
notifyMute = ''dunstify -a "$(if [ "$(pamixer --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000''; notifyMute = ''dunstify "$(if [ "$(pamixer --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000'';
notifyMicMute = ''dunstify -a "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000''; notifyMicMute = ''dunstify "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000'';
notifyVolume = ''dunstify -a " Volume: $(pamixer --get-volume)" -r 91190 -t 800''; notifyVolume = ''dunstify " Volume: $(pamixer --get-volume)" -r 91190 -t 800'';
# notifyMute = ''dunstify "t2" -a "$(if [ "$(pamixer --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000'';
# notifyMicMute = ''dunstify "t2" -a "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000'';
# notifyVolume = ''dunstify "t2" -a " Volume: $(pamixer --get-volume)" -r 91190 -t 800'';
# Если указать "t2" перед "-a", то заголовок будет огромным.
# -r 91190: Это идентификатор уведомления (notification ID). Уведомления с одинаковым ID будут заменять друг друга. # -r 91190: Это идентификатор уведомления (notification ID). Уведомления с одинаковым ID будут заменять друг друга.
# -t 800: Это время в миллисекундах, через которое уведомление будет автоматически закрыто. # -t 800: Это время в миллисекундах, через которое уведомление будет автоматически закрыто.
terminalFirst = "alacritty"; terminalFirst = "alacritty";
terminalSecond = "kitty"; terminalSecond = "kitty";
in { in {
services.sxhkd = { # Бинды системы https://manpages.org/sxhkd home.package = [ sxhkd ];
enable = true;
keybindings = { xdg.configFile."sxhkd/sxhkdrc" = {
# executable = true;
text = ''
######################################################### #########################################################
## bspwm (описание параметров есть в файле "bspwm.md") ## ## bspwm (описание параметров есть в файле "bspwm.md") ##
######################################################### #########################################################
"super + shift + ctrl + r" = "pkill -USR1 -x sxhkd; dunstify \"t2\" -a \"󰑓 Sxhkd reloaded\""; # Make sxhkd reload its config files # Make sxhkd reload its config files
"super + shift + ctrl + alt + {q,r}" = "bspc {quit,wm -r}"; # Quit/Restart bspwm super + shift + ctrl + r
pkill -USR1 -x sxhkd; dunstify "t2" -a "󰑓 Sxhkd reloaded"
# "super + return" = "bspc desktop -l next"; # Fullscreen toggle (немного не тот) # Quit/Restart bspwm
# "super + ctrl + {m,x,y,z}" = "bspc node -g {marked,locked,sticky,private}"; # Set the node flags super + shift + ctrl + alt + {q,r}
bspc {quit,wm -r}
"super + l" = "betterlockscreen -l dimblur"; # Lock screen # Fullscreen toggle (немного не тот)
"super + q" = "bspc node -c"; # Quit. Закрыть приложение # super + Return
"super + shift + q" = "bspc node -k"; # Kill. Убить приложение, если оно не отвечает # bspc desktop -l next
"super + f" = "bspc node -t ~floating"; # Floating toggle
"super + shift + f" = "bspc node -t ~tiled"; # Tiled toggle # Set the node flags
"super + Return" = "bspc node -t ~fullscreen"; # Fullscreen toggle # super + ctrl + {m,x,y,z}
# bspc node -g {marked,locked,sticky,private}
# Lock screen
super + l
betterlockscreen -l dimblur
# Quit. Закрыть приложение
super + q
bspc node -c
# Kill. Убить приложение, если оно не отвечает
super + shift + q
bspc node -k
# Floating toggle
super + f
bspc node -t ~floating
# Tiled toggle
super + shift + f
bspc node -t ~tiled
# Fullscreen toggle
super + Return
bspc node -t ~fullscreen
# Перекидывает активное окно на предыдущий/следующий воркспейс и следует за ним # Перекидывает активное окно на предыдущий/следующий воркспейс и следует за ним
"super + ctrl + alt + {Left,Right}" = "bspc node -d {prev,next}.local --follow"; super + ctrl + alt + {Left,Right}
bspc node -d {prev,next}.local --follow
# Менять фокус приложения в указанном направлении # Менять фокус приложения в указанном направлении
"super + {Left,Down,Up,Right}" = "bspc node -f {west,south,north,east}"; super + {Left,Down,Up,Right}
bspc node -f {west,south,north,east}
# Move a floating window # Move a floating window
"super + alt + {Left,Down,Up,Right}" = "bspc node -v {-30 0,0 30,0 -30,30 0}"; super + alt + {Left,Down,Up,Right}
bspc node -v {-30 0,0 30,0 -30,30 0}
# Свапает активное окно с самым большим на экране # Свапает активное окно с самым большим на экране
"super + ctrl + alt + Down" = "bspc node -s biggest.window --follow"; super + ctrl + alt + Down
bspc node -s biggest.window --follow
# Перемещает активное окно в указанном направлении (либо -s, чтоб менять соседние окна местами) # Перемещает активное окно в указанном направлении (либо -s, чтоб менять соседние окна местами)
"super + shift + ctrl + {Left,Down,Up,Right}" = "bspc node -n {west,south,north,east}.window --follow"; super + shift + ctrl + {Left,Down,Up,Right}
bspc node -n {west,south,north,east}.window --follow
# Expand a window by moving one of its side outward # Expand a window by moving one of its side outward
"super + shift + {Left,Down,Up,Right}" = "bspc node -z {left -30 0,bottom 0 30,top 0 -30,right 30 0}"; super + shift + {Left,Down,Up,Right}
bspc node -z {left -30 0,bottom 0 30,top 0 -30,right 30 0}
# Contract a window by moving one of its side inward # Contract a window by moving one of its side inward
"super + shift + alt + {Left,Down,Up,Right}" = "bspc node -z {right -30 0,top 0 30,bottom 0 -30,left 30 0}"; super + shift + alt + {Left,Down,Up,Right}
bspc node -z {right -30 0,top 0 30,bottom 0 -30,left 30 0}
# Переключает на предыдущий/следующий воркспейс внутри одного монитора. # Переключает на предыдущий/следующий воркспейс внутри одного монитора.
"super + ctrl + {Left,Right}" = "bspc desktop -f {prev,next}.local"; super + ctrl + {Left,Right}
bspc desktop -f {prev,next}.local
# Прошлый воркспейс внутри одного монитора. # Прошлый воркспейс внутри одного монитора.
"super + Escape" = "bspc desktop -f last.local"; super + Escape
bspc desktop -f last.local
# Focus or send to the given desktop # Focus or send to the given desktop
"super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} {1-9,10}.local"; super + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} {1-9,10}.local
# Переключает на первый пустой воркспейс # Переключает на первый пустой воркспейс
"super + ctrl + Down" = "bspc desktop -f next.!occupied"; super + ctrl + Down
bspc desktop -f next.!occupied
# Меняет позиционирование с горизонтального на вертикальный и обратно. Мб надо -R # Меняет позиционирование с горизонтального на вертикальный и обратно. Мб надо -R
# (хуй, и то и то требует аргументы, а не делает toggle, и даже с аргументами нихуя не работает) # (хуй, и то и то требует аргументы, а не делает toggle, и даже с аргументами нихуя не работает)
# "super + s" = "bspc node -F"; # super + s
# bspc node -F
########## ##########
## rofi ## ## rofi ##
########## ##########
"super + a" = "rofi -show drun -show-icons"; # Applications. Запускатор софта # Applications. Запускатор софта
"super + c" = "rofi -show calc -modi calc -no-show-match -no-sort"; # Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`. super + a
"super + p" = "rofi-pass"; # Passwords. Пароли из утилиты pass rofi -show drun -show-icons
"super + v" = "clipmenu"; # История буфера обмена. Как ctrl+v, но через win.
#"super + tab" = ""; # Как alt+tab, переключение окон. На нужный воркспейс само перекинет # Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`.
#"super + alt + t" = ""; # Timer. Думаю сделать через утилиту timer super + c
#"super + shift + n" = ""; # Notification history. История оповещений. Мб не делать rofi -show calc -modi calc -no-show-match -no-sort
#"super + backspace" = ""; # PowerMenu. Выключение пк
# Passwords. Пароли из утилиты pass
super + p
rofi-pass
# История буфера обмена. Как ctrl+v, но через win.
super + v
clipmenu
# Как alt+tab, переключение окон. На нужный воркспейс само перекинет
super + tab
rofi -show window -show-icons
# PowerMenu. Выключение пк
super + BackSpace
rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu
# Timer. Думаю сделать через утилиту timer
# super + alt + t
# команда
# Notification history. История оповещений. Мб не делать
# super + shift + n
# команда
################## ##################
## applications ## ## applications ##
################## ##################
"super + b" = "librewolf"; # Browser LibreWolf. Основа # Browser LibreWolf. Основа
"super + shift + b" = "firefox"; # Browser Firefox. Паблик активность super + b
"super + shift + ctrl + b" = "chromium"; # Browser Chromium. Пусть будет librewolf
"super + n" = "obsidian"; # Note taking app (obsidian)
"super + e" = "thunar"; # Explorer. Thunar file manager # Browser Firefox. Паблик активность
"super + i" = "code"; # IDE, text editor super + shift + b
"super + m" = "${terminalFirst} -e btop"; # Monitor of resources (btop) firefox
"super + g" = "io.github.alainm23.planify"; # Goals. Todo manager. Task tracker
"super + shift + c" = "xcolor -s"; # Color picker. Получить hex в буфер обмена # Browser Chromium. Пусть будет
"super + ctrl + c" = "xcolor -s -f rgb"; # Color picker. Получить rgb в буфер обмена super + shift + ctrl + b
chromium
# Note taking app (obsidian)
super + n
obsidian
# Explorer. Thunar file manager
super + e
thunar
# IDE, text editor
super + i
code
# Monitor of resources (btop)
super + m
${terminalFirst} -e btop
# Goals. Todo manager. Task tracker
super + g
io.github.alainm23.planify
# Color picker. Получить hex в буфер обмена
super + shift + c
xcolor -s
# Color picker. Получить rgb в буфер обмена
super + ctrl + c
xcolor -s -f rgb
############## ##############
## terminal ## ## terminal ##
############## ##############
"super + t" = terminalFirst; # Терминал alacritty # Терминал alacritty
"super + shift + t" = "${terminalFirst} --class floating-terminal"; # Floating терминал alacritty в центре экрана 600x300px super + t
"super + ctrl + t" = terminalSecond; # Tерминал kitty ${terminalFirst}
"super + ctrl + shift + t" = "${terminalSecond} --class floating-terminal"; # Floating терминал kitty в центре экрана 600x300px
# Floating терминал alacritty в центре экрана
super + shift + t
${terminalFirst} --class floating-terminal
# Терминал kitty
super + ctrl + t
${terminalSecond}
# Floating терминал kitty в центре экрана
super + ctrl + shift + t
${terminalSecond} --class floating-terminal
####################### #######################
## Колдунские кнопки ## ## Колдунские кнопки ##
####################### #######################
# В pamixer для настроек микро надо добавлять "--default-source" # В pamixer для настроек микро надо добавлять "--default-source"
"XF86AudioMute" = "pamixer -t; ${notifyMute}"; # Toggle mute # Toggle mute
"XF86AudioMicMute" = "pamixer --default-source -t; ${notifyMicMute}"; # Toggle microphone mute XF86AudioMute
"XF86Audio{Lower,Raise}Volume" = "pamixer -{d,i} 5; ${notifyVolume}"; # Decrease/Increase volume pamixer -t; ${notifyMute}
"XF86Audio{Play,Pause}" = "playerctl play-pause"; # Play/Pause
"XF86Audio{Next,Prev}" = "playerctl {next,previous}"; # Next/Previous track # Toggle microphone mute
XF86AudioMicMute
pamixer --default-source -t; ${notifyMicMute}
# Decrease/Increase volume
XF86Audio{Lower,Raise}Volume
pamixer -{d,i} 5; ${notifyVolume}
# Play/Pause
XF86Audio{Play,Pause}
playerctl play-pause
# Next/Previous track
XF86Audio{Next,Prev}
playerctl {next,previous}
# Простое редактирование яркости будет менять на 1% (Символ _ означает ничего, просто бинд яркости) # Простое редактирование яркости будет менять на 1% (Символ _ означает ничего, просто бинд яркости)
# С зажатым шифтом будет редактировать яркость на 10% # С зажатым шифтом будет редактировать яркость на 10%
# С зажатой клавишей win будет менять между минимальным и максимальным значениями # С зажатой клавишей win будет менять между минимальным и максимальным значениями
# Не знаю работает ли эта команда, у меня не ноут. Добавил как написано в "man sxhkd" # Не знаю работает ли эта команда, у меня не ноут. Добавил как написано в "man sxhkd"
"{_,shift + ,super + }XF86MonBrightness{Down,Up}" = "bright {-1,-10,min,+1,+10,max}"; # Increase/Decrease brightness # Increase/Decrease brightness
{_,shift + ,super + }XF86MonBrightness{Down,Up}
bright {-1,-10,min,+1,+10,max}
########### '';
## other ##
###########
};
}; };
} }