Polybar уёбище

This commit is contained in:
Buliway 2024-08-22 16:15:02 +03:00
parent 28de853ad5
commit 8b1a847610
9 changed files with 328 additions and 369 deletions

View file

@ -5,6 +5,7 @@
- [Проблемы](#проблемы)
- [TODO](#todo)
- [Описание](#описание)
- [Нюансы с JetBrains Toolbox](#нюансы-с-jetbrains-toolbox)
- [Настройки для игр](#настройки-для-игр)
- [MangeHud](#mangohud)
- [gamemode](#gamemode)
@ -124,6 +125,13 @@
Надо сделать Nekoray нормально. Пока что только путь пидараса есть. Запускаешь `sudo ~/Downloads/VPN/nekoray-3.26-2023-12-09-linux-x64.AppImage`. В некобоксе офаешь у тян мода стрик роут. Систем тан. В меню жмёшь перезапустить прогу, она отлипла от терминала, перетащил на 10 воркспейс и сижу хуй сосу, ибо меня сайты в пермак кидают за такую хуйню
Надо добавить в polybar отображение:
- Заряд аккума. Сейчас проверить негде. Мб взять готовый вариант [тут](https://github.com/Zproger/bspwm-dotfiles/blob/main/config/polybar/modules.ini#L148)
- Яркость экрана. Тоже ноуты. Хз надо ли
- Температура и нагрузка на гп
- Температура цп
- Блютуз. Не знаю отображается ли он сейчас. Не могу проверить, негде
## Описание
Железо, на котором это работает:
@ -182,6 +190,22 @@ font = lib.mkForce "JetBrainsMono Nerd Font 11";
ip a
```
## Нюансы с JetBrains Toolbox
В стоке тулбокс может всегда разлогинивать. Я не проверял, сразу сделал как просили на вики, чтоб это исправить.
Надо скачать тулбокс (уже стоит), запустить его один раз, а потом:
- Изменить `~/.local/share/JetBrains/Toolbox/.storage.json` и добавить строку `"preferredKeychain": "linux-fallback"` (у меня было в стоке)
- Залогиниться как обычно, но остановиться после того, как JetBrains вебсайт откроется
- Перезапустить JetBrains Toolbox, открыть настройки и нажать `"Troubleshoot..."`
- Следуй инструкциям по ручному входу в систему, как указано в руководстве
После выполнения этих действий JetBrains Toolbox сохранит учетные данные пользователя в зашифрованном файле (со статическим ключом) по адресу `~/.local/share/JetBrains/Toolbox/.securestorage`. Если этого не сделать, JetBrains Toolbox не сможет получить учетные данные через `libsecret` (из-за bwrap sandboxing?) и постоянно уведомляет пользователя о необходимости повторной авторизации.
Если что-то не работает, то мб помогут эти ссылки:
- https://nixos.wiki/wiki/Jetbrains_Tools
- https://github.com/NixOS/nixpkgs/issues/240444
## Настройки для игр
Я установил `MangoHud`, `gamemode` и `gamescope`. Ещё есть `proton-ge` в steam. Всё это можно по разному комбинировать между собой.
@ -243,7 +267,7 @@ xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
Дальше есть два способа. Оба нужны, чтоб заменить имя юзера на своё перед установкой моих дотсов. Для этого надо открыть файл `nixos/configuration.nix` и заменить переменную `username` на ник своего юзера.
Ещё надо изменить параметры мониторов в `modules/home-manager/wm/bspwm/bspwm.nix`. Для этого через xrandr надо узнать параметры мониторов
Ещё надо изменить параметры мониторов в `modules/home-manager/wm/bspwm/bspwm.nix`. Для этого через xrandr надо узнать параметры мониторов. Либо закомментить настройки мониторов и посмотреть как будет работать из коробки.
Так же надо изменить gpu драйвера, если видеокарта не от amd. Самый простой вариант - закомментировать `videoDrivers` в `modules/nixos/xserver.nix` и `boot.initrd.kernelModules` в `modules/nixos/hardware.nix`. Мб он сам подберёт подходящий драйвер. Если же знаешь конкретные настройки, которые надо ставить, то пишешь их.

View file

@ -25,7 +25,7 @@
./wm/rofi.nix
./wm/dunst.nix
./wm/lockscreen.nix
# ./wm/polybar.nix
./wm/polybar.nix
./wm/sxhkd.nix
./mangohud.nix

View file

@ -39,9 +39,9 @@
};
# Environment variables that will be set for zsh session.
# sessionVariables = {
# HISTORY_SUBSTRING_SEARCH_FUZZY = true; # Нечёткий поиск для стрелок вверх/вниз. Не работает
# };
sessionVariables = {
HISTORY_SUBSTRING_SEARCH_FUZZY = "не работает блять"; # Нечёткий поиск для стрелок вверх/вниз.
};
# Extra commands that should be added to .zshrc
# initExtra = ''

View file

@ -47,7 +47,7 @@
rectangle = "900x600+0+0";
};
in { # А тут правила окон
"polybar" = { layer = "above"; };
# "polybar" = { layer = "above"; };
"Screenkey" = { manage = false; };
"gcolor3" = { state = "floating"; };
"steam" = { state = "floating"; };
@ -55,7 +55,8 @@
"SshAskpass" = { state = "floating"; };
"Nm-connection-editor" = { state = "floating"; };
"ksnip" = floating1600x900;
"ark" = floating1200x800;
# "ark" = floating1200x800; # Удалил, чтоб blowjob на экран не выдавало
"file-roller" = floating1200x800;
"nekoray" = floating1200x800;
"floating-terminal" = floating1200x800;
"Kvantum Manager" = floating1200x800;

View file

@ -4,28 +4,12 @@
# Если указывать px, то это пиксели, логично
# Интересные готовые скрипты для polybar https://github.com/polybar/polybar-scripts
# Указание цветов из темы stylix
# color0 = "${config.lib.stylix.colors.base00}";
# В случае с gruvbox это будет цвет "#282828"
# Ниже цвета просто dark-meduim, после него material-dark-medium
# base00: "#282828" "#292828"
# base01: "#3c3836" "#32302f"
# base02: "#504945" "#504945"
# base03: "#665c54" "#665c54"
# base04: "#bdae93" "#bdae93"
# base05: "#d5c4a1" "#ddc7a1"
# base06: "#ebdbb2" "#ebdbb2"
# base07: "#fbf1c7" "#fbf1c7"
# base08: "#fb4934" "#ea6962"
# base09: "#fe8019" "#e78a4e"
# base0A: "#fabd2f" "#d8a657"
# base0B: "#b8bb26" "#a9b665"
# base0C: "#8ec07c" "#89b482"
# base0D: "#83a598" "#7daea3"
# base0E: "#d3869b" "#d3869b"
# base0F: "#d65d0e" "#bd6f3e"
# Если в трее не отображаются иконки, то вот вариант решения:
# Put `export XDG_DATA_DIRS=~/.nix-profile/share:$XDG_DATA_DIRS` in `/etc/profile`
# Взято отсюда https://www.reddit.com/r/voidlinux/comments/1apb5d0/comment/kqzabg6
# Если в коммент коде цвет указан напрямую, то это дотсы zproger с левой темой
# При наведении на имя окна сделать скрол фул имени через zscroll
# Если лень не будет, то потом сделаю
# Варианты кликов мыши
# click-left
@ -37,32 +21,7 @@
# double-click-middle
# double-click-right
{ config, ... }: let
gruvbox = {
black = "#000000";
dark = "#1d1d1d";
disabled = "${config.lib.stylix.colors.base00}"; # #282828
red = "${config.lib.stylix.colors.base08}"; # #fb4934
red-alt = "#b22222";
orange = "${config.lib.stylix.colors.base09}"; # #fe8019
orange-mat = "#e78a4e";
yellow = "${config.lib.stylix.colors.base0A}"; # #fabd2f
yellow-mat = "#d8a657";
green = "${config.lib.stylix.colors.base0B}"; # #b8bb26
green-alt = "#98971a";
aqua = "${config.lib.stylix.colors.base0C}"; # #8ec07c
aqua-alt = "#689d6a";
blue = "#458588";
blue-alt = "${config.lib.stylix.colors.base0D}"; # #83a598
grey = "#313131";
dark-grey = "#222222";
cream = "${config.lib.stylix.colors.base07}"; # #fbf1c7
white = "#FFFFFF";
transparent = "#00000000";
Stransparent = "#CC000000";
};
in
{ # Статус бар внизу
{ config, ... }: { # Статус бар внизу
services.polybar = {
enable = true;
script = ''
@ -76,87 +35,214 @@ in
'';
settings = { # Или переимоневать в "config"? Не понял в чём разница
# "colors" = {};
"global/wm" = {
margin-bottom = 0;
};
# bottom это просто имя, это не говорит бару быть внизу, можно написать что угодно
"bar/bottom" = {
# monitor = "polybar -M | cut -d ':' -f 1"; # содержит список мониторов
# monitor-strict = false; # Require the monitor to be in connected state
# monitor-exact = true; # Зачем? Нечёткий поиск мониторов, если они называются по разному с разными драйверами
bottom = true; # Put the bar at the bottom of the screen
fixed-center = true; # Мидл модуль будет по центру экрана. При false будет между левым и правым модулями
enable-ipc = true; # Enable support for inter-process messaging
double-click-interval = 400; # If two clicks are received within this interval (ms), they are recognized as a double click.
offset-x = 0; # Offset the bar window in the x and/or y direction.
offset-y = 0; # Supports any percentage with offset relative to the monitor width or height
# monitor = "exec polybar -M | cut -d ':' -f 1";
# monitor-strict = false;
# monitor-exact = true;
width = "100%"; # Ширина относительно ширины монитора
height = "20pt"; # Высота относительно высоты монитора. Не ебу что значит pt
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 = 100; # Для ppi монитора
background = gruvbox.transparent; # Фон бара
foreground = gruvbox.cream; # Передний план
border-color = gruvbox.transparent; # Цвет контура
border-size = "3pt"; # Размер контура
module-margin = 0; # Margin to add before/after each module. Можно юзать module-margin-{left,right}
padding = "4pt"; # Padding to add at the beginning/end of the bar. Можно юзать padding-{left,right}
separator-foreground = gruvbox.transparent;
separator = " "; # The separator will be inserted between the output of each module
# If you don't explicitly set the font-index for a tag,
# the bar will iterate the font list and pick the first one that is able to draw the character
font-0 = "Roboto condensed:size=11:weight=bold;2";
font-1 = "Font Awesome 6 Free:pixelsize=11;2";
font-2 = "Font Awesome 6 Free Solid:pixelsize=11;2";
font-3 = "Font Awesome 6 Brands:pixelsize=11;2";
font-4 = "JetBrainsMono Nerd Font Mono:size=24:weight=bold;5";
font-5 = "Noto Sans:size=11:weight=bold;1"; # Мб надо добавить CJK версии
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 pulseaudio tray xkeyboard rofi";
# Для модула right ещё можно добавить следующие модули:
# "battery", ""
# Restack the bar window and put it above the selected window manager's root
# Fixes the issue where the bar is being drawn on top of fullscreen window's
# Currently supported values:
# generic (Tries the ewmh strategy and falls back to the bottom strategy.
# This is a best-effort strategy and may change and be tweaked in
# the future, the individual strategies are available on their own)
# (New in version 3.6.0)
# (Changed in version 3.7.0: Tries the ewmh strategy instead of just the bottom strategy)
# bspwm (Moves the bar window above all bspwm root windows)
# bottom (Moves the bar window above the first window in the window stack.
# Works in xmonad, may not work on other WMs
# New in version 3.7.0)
# ewmh (Moves the bar above the window specified in _NET_SUPPORTING_WM_CHECK, if it is set
# New in version 3.7.0)
# i3 (requires `override-redirect = true`)
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 = " ";
# click-right= exec ~/.config/i3/scripts/power.sh;
content-foreground = gruvbox.orange;
content-background = gruvbox.black;
};
"module/bspwm" = { # Воркспейсы bspwm
"module/bspwm" = {
type = "internal/bspwm";
pin-workspaces = true; # Only show workspaces defined on the same output as the bar
inline-mode = true; # Output mode flags after focused state label. Не понял что значит
enable-click = true; # Create click handler used to focus workspace
enable-scroll = false; # Create scroll handlers used to cycle workspaces
reverse-scroll = false; # Set the scroll cycle direction
occupied-scroll = true; # Only scroll through occupied workspaces
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";
@ -169,286 +255,92 @@ in
ws-icon-9 = "9;9";
ws-icon-10 = "10;10";
format = "<label-state> <label-mode>"; # Это невозможно описать. Я сам не до конца понял
format = "<label-state>";
label-mode = "%mode%";
label-mode-padding = 1;
label-mode-background = gruvbox.red-alt;
label-mode-foreground = gruvbox.white;
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 = "%icon%";
label-focused-font = 5;
label-focused-foreground = gruvbox.yellow;
label-focused-background = gruvbox.black;
label-focused-padding = 2;
label-focused = "%name%";
label-focused-foreground = config.lib.stylix.colors.base00;
label-focused-background= config.lib.stylix.colors.base09;
label-focused-padding = "5pt";
label-unfocused = "%icon%";
label-unfocused-font = 5;
label-unfocused-foreground = gruvbox.cream;
label-unfocused-background= gruvbox.black;
label-unfocused-padding = 2;
label-occupied = "%name%";
label-occupied-foreground = config.lib.stylix.colors.base00;
label-occupied-background= config.lib.stylix.colors.base04;
label-occupied-padding = "5pt";
label-visible = "%icon%";
label-visible-padding = 2;
label-urgent = "%name%";
label-urgent-foreground = config.lib.stylix.colors.base00;
label-urgent-background= config.lib.stylix.colors.base08;
label-urgent-padding = "5pt";
label-urgent = "%icon%";
label-urgent-font = 5;
label-urgent-foreground = gruvbox.red-alt;
label-urgent-background = gruvbox.black;
label-urgent-padding = 2;
label-separator = "";
label-separator = " ";
label-separator-padding = 0;
label-separator-foreground = gruvbox.transparent;
label-separator-foreground = config.lib.stylix.colors.base00;
};
"module/title" = { # Отображение имени окна
"module/title" = {
type = "internal/xwindow";
format-prefix = " ";
format-prefix-foreground = gruvbox.yellow-mat;
format-prefix-background = gruvbox.black;
label = "%title%";
label-maxlen = 50;
label-foreground = gruvbox.cream;
label-background = gruvbox.dark;
label-padding-left = 2;
label-padding-right = 2;
label-maxlen = 40;
label-foreground = config.lib.stylix.colors.base07;
};
# %A: Полное название дня недели (например, "Monday")
# %d: День месяца в формате двух цифр (например, "01")
# %b или %B: Сокращённое или полное название месяца ("Jan", "January")
# %m: Месяц в формате двух цифр (например, "01" для января)
"module/time" = {
type = "internal/date";
interval = 1;
format-prefix = " ";
format-prefix-foreground = gruvbox.aqua;
format-prefix-background = gruvbox.black;
# date = "%A %d %b %Y | %H:%M:%S";
date = "%d %B %Y";
time = "%H:%M:%S";
date-alt = "%d-%m-%Y"; # If defined, clicking will toggle between formats
time-alt = "%H:%M"; # If defined, clicking will toggle between formats
date-alt = "%d-%m-%Y";
time-alt = "%H:%M";
label = "%date% %time%";
label-foreground = gruvbox.cream;
label-background = gruvbox.dark;
label-padding-left = 2;
label-padding-right = 2;
};
"module/xkeyboard" = {
type = "internal/xkeyboard";
blacklist-0 = "num lock";
blacklist-1 = "scroll lock";
format = "<label-layout> <label-indicator>";
label-layout-padding = 1;
label-layout-foreground = gruvbox.cream;
label-indicator-on = "%name%";
# layout-icon-default = "some-icon";
layout-icon-0 = "RU";
layout-icon-1 = "EN";
label-indicator-on-capslock = "!";
label-indicator-off-capslock = "";
format = "<label-layout>";
label-layout = "%icon%";
layout-icon-0 = "ru;RU";
layout-icon-1 = "us;EN";
};
"module/tray" = {
type = "internal/tray";
format = "<tray>";
format-prefix = "󱊖 ";
format-prefix-foreground = gruvbox.orange;
format-prefix-background = gruvbox.black;
# tray-size = "66%"; # relative to bar height, non-negative
tray-spacing = "8px";
format-padding = "5px";
format-background = gruvbox.black;
tray-background = gruvbox.black;
# tray-foreground = gruvbox.cream; # сам добавил
tray-size = "90%";
};
"module/pulseaudio" = {
type = "internal/pulseaudio";
# click-left = "exec pavucontrol";
format-volume-prefix = " ";
format-volume-prefix-foreground = gruvbox.blue-alt;
format-volume-prefix-background= gruvbox.black;
"module/alsa" = {
type = "internal/alsa";
master-soundcard = "default";
speaker-soundcard = "default";
headphone-soundcard = "default";
master-mixer = "Master";
interval = 5;
format-volume = "<label-volume>";
label-volume = "%percentage%%";
label-volume-foreground= gruvbox.cream;
label-volume-background= gruvbox.dark;
label-volume-padding-left=2;
label-volume-padding-right=2;
format-muted-prefix = " ";
format-muted-foreground = gruvbox.orange;
format-muted-background = gruvbox.black;
label-muted = "muted";
label-muted-foreground = gruvbox.orange-mat;
label-muted-background = gruvbox.dark;
label-muted-padding = 2;
format-muted = "<label-muted>";
label-volume = " %percentage%";
label-muted = " %percentage%";
click-right = "exec pavucontrol";
};
"module/memory" = {
type = "internal/memory";
interval = 1;
format-prefix = " ";
format-prefix-foreground = gruvbox.blue;
format-prefix-background = gruvbox.black;
label = "RAM: %gb_used%/%gb_total% | SWAP: %gb_swap_used%/%gb_swap_total%";
label-foreground = gruvbox.cream;
label-background = gruvbox.dark;
label-padding-left = 2;
label-padding-right = 2;
interval = 5;
label = "RAM: %gb_used% + %gb_swap_used%";
};
# "module/battery" = {
# type = internal/battery;
# full-at = 98;
# low-at = 20;
# battery = "BAT0";
# adapter = "ADP1";
# poll-interval = 5;
# time-format = "%H:%M";
# format-charging = "<animation-charging><label-charging>";
# # format-charging-foreground = gruvbox.green;
# # format-charging-background = gruvbox.black;
# label-charging = "%percentage%%";
# # label-charging-foreground = gruvbox.cream;
# # label-charging-background = gruvbox.dark;
# label-charging-padding= 2;
# format-discharging = "<ramp-capacity><label-discharging>";
# # format-discharging-foreground = gruvbox.green-alt;
# # format-discharging-background = gruvbox.black;
# label-discharging = "%percentage%%";
# # label-discharging-foreground = gruvbox.cream;
# # label-discharging-background = gruvbox.dark;
# label-discharging-padding = 2;
# format-full-prefix = "  ";
# # format-full-foreground = gruvbox.aqua;
# # format-full-background = gruvbox.black;
# label-full = "%percentage%%";
# # label-full-foreground = gruvbox.cream;
# # label-full-background = gruvbox.dark;
# label-full-padding = 2;
# label-low = "[ BATTERY LOW ] %percentage%%";
# # label-low-foreground = gruvbox.black;
# # label-low-background = gruvbox.red-alt;
# label-low-padding = 2;
# # Only applies if <ramp-capacity> is used
# ramp-capacity-0 = "  ";
# ramp-capacity-1 = "  ";
# ramp-capacity-2 = "  ";
# ramp-capacity-3 = "  ";
# ramp-capacity-4 = "  ";
# ramp-capacity-0-padding = 3;
# ramp-capacity-1-padding = 3;
# ramp-capacity-2-padding = 3;
# ramp-capacity-3-padding = 3;
# ramp-capacity-4-padding = 3;
# # ramp-capacity-0-foreground = gruvbox.red-alt;
# # ramp-capacity-1-foreground = gruvbox.green-alt;
# # ramp-capacity-2-foreground = gruvbox.green-alt;
# # ramp-capacity-3-foreground = gruvbox.green-alt;
# # ramp-capacity-4-foreground = gruvbox.green-alt;
# # ramp-capacity-0-background = gruvbox.black;
# # ramp-capacity-1-background = gruvbox.black;
# # ramp-capacity-2-background = gruvbox.black;
# # ramp-capacity-3-background = gruvbox.black;
# # ramp-capacity-4-background = gruvbox.black;
# # Only applies if <bar-capacity> is used
# bar-capacity-width = 10;
# # Only applies if <animation-charging> is used
# animation-charging-0 = "  ";
# animation-charging-1 = "  ";
# animation-charging-2 = "  ";
# animation-charging-3 = "  ";
# animation-charging-4 = "  ";
# animation-charging-framerate = 750;
# animation-charging-0-padding = 3;
# animation-charging-1-padding = 3;
# animation-charging-2-padding = 3;
# animation-charging-3-padding = 3;
# animation-charging-4-padding = 3;
# # Animation-charging color
# # animation-charging-0-foreground = gruvbox.green;
# # animation-charging-1-foreground = gruvbox.green;
# # animation-charging-2-foreground = gruvbox.green;
# # animation-charging-3-foreground = gruvbox.green;
# # animation-charging-4-foreground = gruvbox.green;
# # animation-charging-0-background = gruvbox.black;
# # animation-charging-1-background = gruvbox.black;
# # animation-charging-2-background = gruvbox.black;
# # animation-charging-3-background = gruvbox.black;
# # animation-charging-4-background = gruvbox.black;
# # Only applies if <animation-discharging> is used;
# animation-discharging-0 = "[  ]";
# animation-discharging-1 = "[  ]";
# animation-discharging-2 = "[  ]";
# animation-discharging-3 = "[  ]";
# animation-discharging-4 = "[  ]";
# animation-discharging-framerate = 500;
# animation-discharging-0-padding = 1;
# animation-discharging-1-padding = 1;
# animation-discharging-2-padding = 1;
# animation-discharging-3-padding = 1;
# animation-discharging-4-padding = 1;
# # Animation discharging color
# # animation-discharging-0-foreground = gruvbox.cream;
# # animation-discharging-1-foreground = gruvbox.cream;
# # animation-discharging-2-foreground = gruvbox.cream;
# # animation-discharging-3-foreground = gruvbox.cream;
# # animation-discharging-4-foreground = gruvbox.cream;
# # animation-discharging-0-background = gruvbox.green-alt;
# # animation-discharging-1-background = gruvbox.green-alt;
# # animation-discharging-2-background = gruvbox.green-alt;
# # animation-discharging-3-background = gruvbox.green-alt;
# # animation-discharging-4-background = gruvbox.green-alt;
# animation-low-0 = "!";
# animation-low-1 = "!!";
# animation-low-framerate = 200;
# };
"module/cpu" = {
type = "internal/cpu";
interval = 1;
# format-prefix = " ";
# format-prefix-foreground = gruvbox.orange-mat;
# format-prefix-background = gruvbox.black;
warn-percentage = 95;
label = "CPU %percentage%%";
label-foreground = gruvbox.cream;
label-background = gruvbox.dark;
label-padding-left = 2;
label-padding-right = 2;
label-warn = "CPU %percentage%%";
};
};
};
}
# При наведении на имя окна сделать скрол фул имени через zscroll

View file

@ -8,6 +8,45 @@
pulse.enable = true;
jack.enable = true;
wireplumber = {
enable = true;
# Запретить конкретному софту редактировать громкость микрофона
# Я рот ебал блядей, что делают мой микро тихим без моего разрешения
# В терминал `wpctl status`, найти нужное приложение в списке клиентов
# Потом `wpctl inspect номер-клиента | grep application.process.binary`
# `systemctl --user restart wireplumber pipewire pipewire-pulse`
# Доп ссылки по теме
# https://www.reddit.com/r/archlinux/comments/190dvl8/pipewirewayland_how_to_stop_applications_from/
# https://askubuntu.com/questions/749407/is-there-any-way-to-prevent-application-from-changing-volume-level-of-my-microph
# https://www.linux.org/threads/prevent-applications-from-changing-microphone-gain.41636/
# https://www.reddit.com/r/Ubuntu/comments/pvlm6r/how_to_disable_microphone_autoadjusting/
extraScripts."99-stop-microphone-auto-adjust.lua" = ''
table.insert (default_access.rules,{
matches = {
{
{ "application.process.binary", "=", ".Discord-wrapped" }
},
{
{ "application.process.binary", "=", "chromium" }
},
{
{ "application.process.binary", "=", "librewolf" }
},
{
{ "application.process.binary", "=", "firefox" }
},
{
{ "application.process.binary", "=", "steam" }
},
{
{ "application.process.binary", "=", ".telegram-desktop-wrapped" }
}
},
default_permissions = "rx",
})
'';
};
# Ниже настройки имеют формат "число - название"
# Число определяет приоритет настройки, а название описывает цель конфига
extraConfig.pipewire = {
@ -15,7 +54,7 @@
context.properties = {
default.clock.rate = 48000;
# Ниже измени под свой пк. У меня цап поддерживает всё это. Можешь закомментить, если не знаешь что ставить
default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ];
default.clock.allowed-rates = "[ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ]";
};
};
# Ниже настройки для минимальной задержки в играх (например osu!stable через wine)

View file

@ -35,7 +35,7 @@
# Без засечек
sansSerif = { # default = DejaVu Sans
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
name = "Noto Sans";
name = "NotoSans Nerd Font";
};
# С засечками

View file

@ -17,6 +17,7 @@
# будет пытаться установить расширения в каталог nix store, куда нельзя что либо ставить без рута.
packages = with pkgs; [
vscode # Мб надо в home.packages писать, чтоб расширения ставились без рута
jetbrains-toolbox # Мб надо через home.packages писать
];
sessionVariables = {
@ -39,7 +40,7 @@
## Блять как я вас ненавижу, хуесосы ##
##############################################
programs = {
btop.enable = true;
};
# programs = {
# btop.enable = true;
# };
}

View file

@ -15,6 +15,8 @@
liberation_ttf
dejavu_fonts
cantarell-fonts
unifont
unifont_upper
];
systemd = { # Запуск гномовского полкита. Окно ввода пароля для рут доступа
@ -172,8 +174,7 @@
# pwvucontrol # Pipewire Volume Control (Не знаю может ли полностью заменить pavucontrol)
networkmanagerapplet # Tray for network manager
brightnessctl # Brightness control for laptop
gcolor3 # GUI color picker
xcolor # CLI color picker https://github.com/Soft/xcolor
gucharmap # Проверка шрифтов. Какой шрифт какие символы отображает
##############
## Browsers ##
@ -285,6 +286,8 @@
krita # Рисовать 1. Часто крашится
gimp # Рисовать 2. Потом выберу что оставить
blender-hip # 3д графика и рендер видео
gcolor3 # GUI color picker
xcolor # CLI color picker https://github.com/Soft/xcolor
##################
## Productivity ##
@ -300,7 +303,7 @@
# neovim # Мб не надо писать, он у меня необычный через nixvim flake
# vscode # Мб надо в home.packages писать, чтоб расширения ставились без рута
# vscodium # VSCode без телеметрии и прочего кала. Не имеет обратной совместимости с расширениями vscode
# jetbrains-toolbox # У меня крашит. Качай отдельно https://nixos.wiki/wiki/Jetbrains_Tools
# jetbrains-toolbox # У меня крашит ребилд. https://nixos.wiki/wiki/Jetbrains_Tools
# jetbrains.webstorm
# jetbrains.rust-rover
# jetbrains.pycharm-professional
@ -316,6 +319,7 @@
libsForQt5.breeze-icons # qt5
kdePackages.breeze-icons # qt6
papirus-icon-theme
material-icons
############
## Vulkan ##
@ -352,11 +356,9 @@
libva-utils # Проверяет работоспособность VAAPI?
clinfo # Проверяет работоспособность OpenCL?
libcap # Мб надо для nekoray
polybar
libsecret # Хранить и получать аккаунты у приложений. Например для jetbrains toolbox
alsa-utils # Мне для команды amixer надо
# lxqt.lxqt-policykit # Меню для воода пароля при запуске с правами админа. Пока юзаю от гнома
];
environment.
}