nixos-private-dots/modules/home-manager/wm/bspwm/bspwm.nix

118 lines
No EOL
4.3 KiB
Nix
Raw 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;
# Как я понял, эти команды выполняются в начале bspwmrc
# Настройки для основного монитора. Мб вместе с --primary надо
# И настройки для второго (правого) монитора
extraConfigEarly = ''
xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
'';
startupPrograms = [
"lxqt-policykit-agent"
"nm-applet"
"ksnip"
# "nekoray"
# "obsidian"
# "planify"
];
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";
};
in {
"polybar" = { layer = "above"; };
"Screenkey" = { manage = false; };
"ksnip" = floating1600x900;
"ark" = floating1200x800;
"nekoray" = floating1200x800;
"floating-terminal" = floating1200x800;
"Kvantum Manager" = floating1200x800;
"qt5ct" = floating1200x800;
"qt6ct" = floating1200x800;
"pavucontrol" = floating900x600;
# Нетворк манагер надо флоатинг
# blueman-манагер надо флоатинг
};
settings = {
# Цвет бордера для не активного окна
normal_border_color = lib.mkForce "#${config.lib.stylix.colors.base0B}";
# Цвет бордера для фокусед окна на анфокусед мониторе (считаей не активное окно)
active_border_color = lib.mkForce "#${config.lib.stylix.colors.base0B}";
# Цвет бордера для окна в фокусе
focused_border_color = lib.mkForce "#${config.lib.stylix.colors.base09}";
# Устанавливает ширину границ окон в 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;
};
};
# xsession.pointerCursor = { # Курсор настраивать };
gtk = lib.mkIf (pkgs.stdenv.hostPlatform.isLinux) {
# enable = true;
iconTheme = {
name = "Gruvbox-Plus-Dark"; # Имя каталога в /usr/share/icons/
package = pkgs.gruvbox-plus-icons; # Пакет иконок
};
# cursorTheme = {
# package = pkgs.bibata-cursors;
# name = "Bibata-Modern-Ice";
# size = 24; # default = 32
# };
};
stylix = { # Выключить стили у конкретного таргета походу можно лишь в home-manager
targets = {
vscode.enable = false; # Руками ставлю. Не нравится stylix вариант
# lightdm.enable = false; # Не хочу обои в lightdm (в сурсе есть, но не билдит, мать ебал)
};
};
}