nixos_dots/modules/home-manager/wm/bspwm/bspwm.nix

139 lines
5.2 KiB
Nix
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ pkgs, config, lib, ... }: {
# xsession.enable = true; # Хз надо ли
xsession.windowManager.bspwm = {
enable = true;
# alwaysResetDesktops = false;
# Как я понял, эти команды выполняются в начале bspwmrc
# Ниже настройки для основного монитора. Мб вместе с --primary надо
# И настройки для второго (правого) монитора
extraConfigEarly = ''
xrandr --output DisplayPort-2 --mode 2560x1440 --rate 144 --primary
xrandr --output DisplayPort-0 --mode 2560x1440 --rate 144 --left-of DisplayPort-2
'';
# Эти команды выполняются в конце bspwmrc
extraConfig = ''
polybar --reload bspwm &
polybar --reload tray &
# for m in $(polybar --list-monitors | cut -d":" -f1); do
# MONITOR=$m polybar --reload bottom &
# done
'';
startupPrograms = [
# "lxqt-policykit-agent" # Заменил на гномовский
"sxhkd"
"nm-applet"
"ksnip"
# "nekoray"
"obsidian"
"planify"
# "spice-vdagent" # Для виртуалки
"discord"
"firefox"
"librewolf"
];
monitors = let
workspaces = [ "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"];
in {
"^1" = workspaces;
"^2" = workspaces;
};
rules = let # Это переменные
floating1600x900 = {
state = "floating";
center = true;
focus = true;
rectangle = "1600x900+0+0";
};
floating1200x800 = {
state = "floating";
center = true;
focus = true;
rectangle = "1200x800+0+0";
};
floating900x600 = {
state = "floating";
center = true;
focus = true;
rectangle = "900x600+0+0";
};
floating = {
state = "floating";
};
in { # А тут правила окон
# "Screenkey" = { manage = false; };
# "Screenkey" = floating;
"gcolor3" = floating;
"obs" = floating;
"steam" = floating;
"steam:steamwebhelper:Steam" = { state = "tiled"; };
"krita:krita:Krita - Edit Text" = floating;
"krita:krita:Create new document" = floating;
"librewolf:librewolf:Save Image" = floating;
"SshAskpass" = floating;
"Nm-connection-editor" = floating;
"nekoray" = floating;
"Kvantum Manager" = floating;
"qt5ct" = floating;
"qt6ct" = floating;
"ksnip" = floating1600x900;
# "ark" = floating1200x800; # Удалил, чтоб blowjob на экран не выдавало
"file-roller" = floating;
"floating-terminal" = floating1200x800;
"pavucontrol" = floating900x600;
# blueman-манагер надо флоатинг
"discord" = { monitor = "^2"; desktop = "3"; };
"firefox" = { monitor = "^1"; desktop = "2"; };
"librewolf" = { monitor = "^1"; desktop = "1"; };
"obsidian" = { monitor = "^2"; desktop = "2"; };
"planify" = { monitor = "^2"; desktop = "1"; };
};
settings = {
# Цвет бордера для не активного окна
normal_border_color = lib.mkForce "#${config.lib.stylix.colors.base0B}"; # #b8bb26
# Цвет бордера для фокусед окна на анфокусед мониторе (считаей не активное окно)
active_border_color = lib.mkForce "#${config.lib.stylix.colors.base0B}"; # #b8bb26
# Цвет бордера для окна в фокусе
focused_border_color = lib.mkForce "#${config.lib.stylix.colors.base09}"; # #fe8019
# Устанавливает ширину границ окон в 2 пикселя.
border_width = 2;
# Задаёт расстояние между окнами (отступ) в 5 пикселей.
window_gap = 5;
# Коэффициент разделения окон. 0.5 означает, что при разделении окно будет занимать 50% доступного пространства.
split_ratio = 0.5;
# В режиме monocle (максимизация окна на весь экран) границы окон будут скрыты.
borderless_monocle = true;
# В режиме monocle будет отсутствовать отступ между окнами.
gapless_monocle = true;
# Eсли вы активируете режим "monocle" на одном мониторе, другие мониторы остаются в обычном режиме
single_monocle = false;
# Фокусировка следует за курсором
focus_follows_pointer = true;
# When focusing a window, put the pointer at its center.
# pointer_follows_focus = true;
# Какую кнопку надо зажать, чтоб кнопки мыши меняли окно?
pointer_modifier = "mod4"; # control lock mod1 mod2 mod3 mod4 mod5 shift
# Действия с кнопками мыши 1, 2 и 3
pointer_action1 = "move";
pointer_action2 = "resize_side";
pointer_action3 = "resize_corner";
};
};
}