Compare commits

...

18 commits

Author SHA1 Message Date
cfd564544e Changes for my main pc 2024-11-01 05:21:02 +03:00
704d39b023 Merge branch 'main' 2024-11-01 05:18:42 +03:00
891f8b054c Fix qemu resolution and install SDDM 2024-10-15 07:08:39 +03:00
9fd1cd7392 Remove unnecessary code 2024-10-15 04:28:03 +03:00
6045cb81b8 remove some zsh plugins 2024-10-14 12:01:59 +03:00
dfd1802626 new bundl.nix and packages description 2024-10-13 01:54:17 +03:00
f88cba95d8 изменил структуру файлов 2024-10-12 23:49:53 +03:00
b4f0587284 some fixes 2024-10-12 05:40:40 +03:00
958bf4aaa4 rewrote polybar in nix 2024-10-12 05:23:10 +03:00
aeed2cdbeb new window rules 2024-10-12 04:00:03 +03:00
7ca878fd49 new readme 2024-10-11 21:36:04 +03:00
d5e3da8a35 hibernation fix 2024-10-08 19:15:04 +03:00
2d3e46d063 new readme, pipewire and hibernate 2024-10-07 19:47:41 +03:00
85a46de39d new install.sh 2024-10-07 17:34:32 +03:00
e7d3202460 новый гайд по установке 2024-10-07 17:14:33 +03:00
05e37190e4 комменты по хуйне 2024-10-07 16:53:00 +03:00
cb05fc79fa закомментил лишнее
чтоб можно было ставить систему с минимум изменений
2024-10-07 16:41:38 +03:00
19ac0b6726 удалил лишнее 2024-10-07 16:27:29 +03:00
24 changed files with 575 additions and 526 deletions

104
README.md
View file

@ -1,3 +1,6 @@
Эта ветка для моего пк сделана. Просто дотсы надо смотреть в ветке main
## Навигация
- [Бинды](#бинды)
@ -18,6 +21,7 @@
- [Первый способ](#первый-способ)
- [Второй способ](#второй-способ)
- [После установки надо](#после-установки-надо)
- [Изменения для виртуалок](#изменения-для-виртуалок)
- [Иконки](#иконки)
- [Темы](#темы)
@ -132,28 +136,10 @@
### Ребилд крашит систему
Эта проблема была раньше. Сейчас исправлена. Но заметку оставлю, вдруг пригодится в будущем
Ребилд системы через `switch` или `test` кладёт нахуй систему. Чёрный экран без возможности переключить tty через `ctrl + alt + F1-F7`. Можно юзать `boot`, чтоб после ребута пк применялось. Тогда не крашит и после ребута всё работает.
Примерный список того, что я сделал, после чего ребилд пошёл по пизде
- Сделал `polybar` и `sxhkd` не сервисом, а пакетом через `home.packages` и конфиги через `.text`
- Установил `cage` как сервис для запуска wayland приложений на иксах
- Установил `weston` как пакет для запуска wayland приложений на иксах
- Включил виртуализацию `waydroid`
- Включил `i3`
- Добавил симлинк на пакет `ff2mpv` в home. Чтоб браузер туда обращался
- Добавил параметр для gnupg в виде `pinentryPackage`. Указал qt
- Сделал стили для `rofi`
- Установил `python3`
- Установил `rocm-smi` для отображения gpu в btop (не работает)
Потом я обновил репы в надежде исправить всю хуйню. И один раз оно и правда обновило всё без проблем. Некст ребилды снова стали идти по пизде
Хуйни, на которых всё зависает и падает блять
`starting the following units: accounts-daemon.service`
`restarting the following units: home-manager-buliway.service`
Первый ребилд был нормальный вроде. Потом я ребутнул пк, чтоб проверить работу полибара, а всё пошло по пизде при некст ребутах
#### Потенциальный способ исправить проблему
Есть следующие два параметра:
@ -164,6 +150,10 @@
Я сделал это для одного сервиса в `nixos/configuration.nix`. Мне помогло. Но если будут ещё сервисы, ребилд на которых зависает и после него крашится система, то можно пробовать запретить рестарт при ребилде.
#### Реальный способ исправить проблему
Походу дело было в сервисе `cage`. Когда я его удалил, то всё стало работать нормально
## TODO
Надо сделать декларативную QT тему (ебал их рты). Сейчас у меня есть три каталог в каталоге `shit`. Их я могу скопировать в `~/.config`, нужная переменная окружения в `home.nix` стоит и всё заработает. Но это залупа. Другой человек не сможет это юзать мб. Потому что там в коде написан путь `/home/buliway`. Не всем же быть буливеями. Хотя это изи исправляется, потом сделаю. Но пока что я рот ебал тратить 3 дня на настройку темы бездарных далбаёбов на QT.
@ -190,9 +180,9 @@
- Motherboard: MSI Z590-A PRO
- Два монитора 1920x1080 на 165 и 100 герц
Основное набор софта
Основной набор софта
Изначально я написал конфиги для `bspwm` + `polybar`. Но так как оба эти проги созданы далбаёбами бездарными, я переехал на `i3` + `i3bar`. В теории между ними можно переключаться при запуске пк, так что проблем быть не должно.
Изначально я написал конфиги для `bspwm` + `polybar`. Но так как оба эти проги созданы далбаёбами бездарными, я перееду на `i3` + `i3bar`. В теории между ними можно переключаться при запуске пк, так что проблем быть не должно. Если какой-то wm надо выключить, чтоб не засирать систему, то это можно делать в `modules/home-manager/bundle.nix`
| Software | Name |
| ------------ | -------------------------------- |
@ -207,7 +197,7 @@
| ScreenLock | betterlockscreen/i3lock |
| Notification | Dunst |
| Files | Thunar, Ranger |
| Images | qView, imv, viewnior, feh |
| Images | qView, imv, feh |
| Video | mpv with plugins |
| Music | Strawberry, Picard, Mousai, spek |
| Browsers | Librewolf, Firefox, Chromium |
@ -321,7 +311,7 @@ xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
Сначала качаем nixos kde или nixos gnome вариант и устанавливаем систему через визуальный установщик. При установке выбираем минимальный вариант, без DE.
Кто-то говорит, что потом достаточно просто забилдить одной командой чужой конфиг, но это не так. Будет ошибка, что нет гита. Если использовать nix-shell для гита, то скажет, что нет экспериментальной функции. Либо писать огромную команду, либо, как советую сделать я, изменить стоковый конфиг никса. Для этого пишет следующее:
Кто-то говорит, что потом достаточно просто забилдить одной командой чужой конфиг, но это не так. Будет ошибка, что нет гита. Если использовать nix-shell для гита, то скажет, что нет экспериментальной функции. Либо писать огромную команду, либо, как советую сделать я, изменить стоковый конфиг никса. Для этого пишем следующее:
```sh
sudo nano /etc/nixos/configuration.nix
@ -355,15 +345,19 @@ sudo nano /etc/nixos/configuration.nix
sudo nixos-rebuild switch
```
Дальше есть два способа. Перед использованием любого из них я рекомендую сделать форк и внести следующие изменения в конфиг перед установкой:
Дальше есть два способа. Перед использованием любого из них я рекомендую сделать форк и внести следующие изменения в конфиг перед установкой (либо можно сделать гит клон и через nano внести изменения для первых трёх пунктов, остальное менять на готовой системе):
- Заменить имя юзера на своё. Для этого надо открыть файл `nixos/configuration.nix` и заменить переменную `username` на ник своего юзера. И открыть файл `nixos/home.nix`, где надо заменить `username` и `homeDirectory`.
- Изменить параметры мониторов в `modules/home-manager/wm/bspwm/bspwm.nix`. Для этого через xrandr надо узнать параметры экрана. Либо закомментить настройки мониторов и посмотреть как будет работать из коробки.
- Изменить gpu драйвер, если видеокарта не от amd. Самый простой вариант - закомментировать `videoDrivers` в `modules/nixos/xserver.nix`, `boot.initrd.kernelModules` и всю категорию настроек `amdgpu` в `modules/nixos/hardware.nix`. Мб он сам подберёт подходящий драйвер. Если же знаешь конкретные настройки, которые надо ставить, то пишешь их.
- Изменить настройки звука в `modules/nixos/sound.nix`. Там надо закомментировать `default.clock.allowed-rates` с кучей разных частот. Они сделаны для моего цапа, но у большинства людей это может вызвать ошибки. Те, кто знают что это и зачем, те изменят под себя.
- Закомментировать/удалить `./symlinks.nix` в файле `modules/home-manager/bundle.nix`. Там написаны симлинки для второго ссд, где я бекаплю браузер и тд. Ребилд выдаст ошибку, если другой человек попробует использовать этот же конфиг.
- Закомментировать/удалить `./filesystems.nix` в файле `modules/nixos/bundle.nix`. Там монтируется мой второй ссд для бекапов. Ребилд выдаст ошибку, если другой человек попробует использовать этот же конфиг.
- Закомментировать/удалить `./hibernate.nix` в файле `modules/nixos/bundle.nix`. Там создаётся хибернация в файл подкачки по uuid. Ребилд выдаст ошибку, если другой человек попробует использовать этот же конфиг.
- Переменную `username` в `nixos/configuration.nix`.
- `username` и `homeDirectory` в `nixos/home.nix`.
- `userName` и `userEmail` в `modules/home-manager/terminal/git.nix`.
А это можно донастроить уже в готовой системе
- Путь до `home` в `shit/qt5ct/qt5ct.conf` и `shit/qt6ct/qt6ct.conf`.
- Параметры мониторов закомментированы в файле `modules/home-manager/wm/bspwm/bspwm.nix`. Можно указать по желанию. Команда xrandr покажет доступные значения и имена мониторов.
- Если видеокарта от amd, то, чтоб не было тиринга, надо раскомментировать `videoDrivers` в `modules/nixos/xserver.nix`, `boot.initrd.kernelModules` и всю категорию настроек `amdgpu` в `modules/nixos/hardware.nix`.
- Если надо задать симлинки, то для этого есть файл `modules/home-manager/symlinks.nix`. Там сейчас мои симлинки, их лучше удалить. Чтоб файл заработал, надо раскомментировать `./symlinks.nix` в файле `modules/home-manager/bundle.nix`.
- Если надо монтировать другие диски, то для этого есть файл `modules/nixos/filesystems.nix`. Там сейчас мой второй ссд. Чтоб файл заработал, надо раскомментировать `./filesystems.nix` в файле `modules/nixos/bundle.nix`.
- Если нужна гибернация, то её можно настроить в `modules/nixos/hibernate.nix`. Там надо указать uuid и офсет для swap файла. Чтоб файл заработал, надо раскомментировать `./hibernate.nix` в файле `modules/nixos/bundle.nix`.
С гитом есть нюанс. Если захочешь потом создать свои конфиги или добавить новые файлы, на которые надо ссылаться из nix, то надо указывать либо полный путь до файла, либо добавлять файл в гит. Если указывать относительный путь, как сделано в моих `bundle.nix`, то все эти файлы должны находиться в гите, либо каталог дотсов должен быть без гита вовсе. Если в каталоге дотсов инициализирован репозиторий гита, то в относительных путях он не видит файлы из `gitignore` или просто не отслеживаемые гитом файлы.
@ -373,6 +367,9 @@ sudo nixos-rebuild switch
```sh
sudo nixos-rebuild boot --flake github:Buliway/nixos-private-dots --impure
```
Чтоб использовать с репой forgejo, можно попробовать такой синтаксис `git@git.buliway.ru:Buliway/nixos-private-dots`.
Параметр `boot` делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй `switch` вместо `boot`.
### Второй способ
@ -395,8 +392,10 @@ sudo nixos-rebuild boot --impure --flake ~/nixos-private-dots
size = 64*1024; # В мегабайтах
} ];
```
- Включить гибренацию в `modules/nixos/hibernate.nix`
- Настроить гибренацию в `modules/nixos/hibernate.nix`
- Активировать скрипт в `shit` каталоге, чтоб скопировать нужные конфиги в нужные каталоги. Симлинки не работают
- Настроить приложения `Qt5 Settings`, `Qt6 Settings` и `Kvantum`. Там надо выбрать свою системную тему. Вроде всё интуитивно понятно будет. Можно попробовать обновить систему, в надежде, что системная тема `stylix` начнёт работать с приложениями `qt`. Для этого надо будет закомментить настройки `qt` в конфиге `stylix`.
- Руками настроить `thunar`, бинды для `ksnip`, `discord`, `telegram`, `steam` и `strawberry`
- Добавить gpg ключи
```sh
gpg --import /path/to/your-key.gpg
@ -408,6 +407,45 @@ gpg --edit-key ID-ключа
```
В этом режиме надо написать trust и выбрать степень доверия. Например 5 для своих ключей можно задать, это прям самое максимально доверие. Потом Ctrl + D чтоб выйти.
## Изменения для виртуалок
Это надо, чтоб включить коннект по ssh к виртуалке и сделать с ней общий буфер обмена. Ну и ещё параметры экрана меняю на один 1080p монитор на 60 герц.
В файле `modules/nixos/virtualisation.nix` раскомментировать эти строки:
```diff
+ services = {
+ openssh.enable = true; # Потом удали. Это ставится на виртуалку, чтоб к ней конект по ssh работал.
+ spice-vdagentd.enable = true; # Clipboard sharing
+ qemuGuest = {
+ enable = true; # Fix resolution
+ package = pkgs.qemu_full;
+ };
+ };
```
В файле `modules/home-manager/wm/bspwm/bspwm.nix` изменить эти строки:
```diff
extraConfigEarly = ''
- xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165
- xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
+ xrandr --output Virtual-1 --mode 1920x1080 --rate 60
'';
startupPrograms = [
- # "spice-vdagent" # Для виртуалки
+ "spice-vdagent" # Для виртуалки
];
```
## Запуск Waydroid на X11
Один раз написать в терминале `waydroid init`
- Запустить `weston`
- В его терминале написать `waydroid session start &`
- Потом `waydroid show-full-ui`
На weston всё работает сразу как надо. Но стоит изменить размеры окна, как waydroid ui пропадает. Приходится стопать и по новой запускать отображение
## Иконки

View file

@ -1,13 +1,7 @@
{
imports = [
# ./browsers/chromium.nix
# ./browsers/firefox.nix
# ./browsers/librewolf.nix
./browsers/lynx.nix
./ranger/ranger.nix
./gui/vscode.nix
./imv/imv.nix
@ -17,19 +11,39 @@
./terminal/alacritty.nix
./terminal/git.nix
./terminal/kitty.nix
./terminal/lynx.nix
./terminal/starship.nix
./terminal/zellij.nix
./terminal/zsh.nix
./wm/bspwm/bspwm.nix
./mangohud.nix
./pipewire.nix
./symlinks.nix
##############
## WM (X11) ##
##############
# Софт для работы WM на X11
./wm/rofi/rofi.nix
./wm/dunst.nix
./wm/i3.nix
./wm/lockscreen.nix
./wm/polybar.nix
./wm/sxhkd.nix
./mangohud.nix
./symlinks.nix
# Для выключения i3 комментируй все строки ниже
./wm/i3.nix
# Для выключения bspwm комментируй все строки ниже
./wm/bspwm/bspwm.nix
./wm/bspwm/polybar.nix
./wm/bspwm/sxhkd.nix
##################
## WM (Wayland) ##
##################
# Wayland гавно лаганое, но мб на NixOS дела будут лучше
# Мб я сделаю конфиги для sway и hyprland на ags
# Каталог wm мб переименовать в X11 и создать отдельный Wayland
];
}

View file

@ -36,12 +36,12 @@
}
];
userSettings = {
"telemetry.telemetryLevel" = "off";
"update.showReleaseNotes" = false;
"workbench.colorTheme" = "Gruvbox Dark Medium";
"editor.fontFamily" = "JetBrainsMono Nerd Font";
};
# userSettings = {
# "telemetry.telemetryLevel" = "off";
# "update.showReleaseNotes" = false;
# "workbench.colorTheme" = "Gruvbox Dark Medium";
# "editor.fontFamily" = "JetBrainsMono Nerd Font";
# };
globalSnippets = {};

View file

@ -0,0 +1,11 @@
# Раз через sound.nix не работает, ставя лишние символы
# То я буду делать симлинк в хоум. Ребут пипы:
# systemctl --user restart pipewire
{
xdg.configFile."pipewire/pipewire.conf".text = ''
context.properties = {
default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ]
}
'';
}

View file

@ -1,7 +1,7 @@
# Надо удалить оригинальный файл, прежде чем делать симлинк
# Некоторые проги клали хуй на симлинки и заменяют их своими файлами
# Таких прог я ебал рот и проклинал хуесосов разработчиков
# Если выдаёт ошибку про home-manager сервир при ребилде,
# Если выдаёт ошибку про home-manager сервис при ребилде,
# Значит такой файл уже существует и симлинк туда кинуть нельзя
# Для таких файлов я сделал каталог shit
@ -33,17 +33,6 @@ in {
"Downloads/Telegram Desktop".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Telegram Desktop";
# Временное решение, где `native-messaging-hosts/ff2mpv.json` ссылается на ~/ff2mpv.py
"ff2mpv.py" = {
source = "${pkgs.ff2mpv}/bin/ff2mpv.py";
executable = true;
};
# Надо добавить симлинк на `native-messaging-hosts/ff2mpv.json`.
# Сначала установить это на firefox, который мне не особо важен
# А потом задать симлинк с firefox на librewolf, который мне важен
# и который я не хочу редактировать через nix
# Не знаю на счёт obs, chatbox, planify, calibre, discord, nekobox
};

View file

@ -66,30 +66,16 @@
#"command-not-found" # Скажет какой пакет скачать, если команда не найдена
"copypath" # В терминале "copypath" скопирует нынешний абсолютный путь. Можно "copypath файл или дироктория"
"dirhistory" # Лютая имба https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/dirhistory
#"docker-compose" # Completion and aliases for frequent docker-compose commands
#"docker" # Completion and aliases for docker
"extract" # В терминале "extract filename" чтоб разархивировать файл. Одна команда на все архивы
"fzf" # https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/fzf
"git" # Git aliases https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git
# "gitignore" # Use https://gitignore.io from the command line
"golang" # Completions and aliases for golang
# "gpg-agent" # Enables GPG's gpg-agent if it is not running. Хз что это значит, мб пригодится
"httpie" # Completion for HTTPie, a command line HTTP client, a friendlier cURL replacement.
# "isodate" # Completion for the ISO 8601, as well as some aliases for common Date commands.
# "kitty" # Aliases for kitty terminal
# "mise" # dev tools, env vars, task runner https://github.com/jdx/mise
# "npm" # Completion and aliases for npm
# "nvm" # Autocompletions for nvm — a Node.js version manager
# "pass" # Completion for the pass password manager
# "pip" # Completion for pip, the Python package manager
# "podman" # Autocompletion and aliases for podman.
"python" # Aliases for useful Python commands
"rust" # Completion for rustc, rustup and cargo
"pass" # Completion for the pass password manager (вдруг добавит нечёткий поиск?)
"safe-paste" # Preventing any code from running while pasting, so you have a chance to review what was pasted
"ssh-agent" # Автостарт ssh-agent. Хз надо ли настраивать и если да, то как
# "starship" # А надо ли оно? Я для starship написал отдельно вкл интеграции в его файле настроек
# "systemadmin" # Adds a series of aliases and functions which make a System Administrator's life easier
"systemd" # Many useful aliases for systemd
"timer" # Показывает время выполнения команды
"universalarchive" # Run "ua <format> <files>"" to compress <files> into an archive file using <format>
# "vi-mode" # https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/vi-mode

View file

@ -9,13 +9,13 @@
# И настройки для второго (правого) монитора
extraConfigEarly = ''
xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 60 --right-of DisplayPort-2
'';
# Эти команды выполняются в конце bspwmrc
extraConfig = ''
for m in $(polybar --list-monitors | cut -d":" -f1); do
MONITOR=$m polybar --reload bottom &
MONITOR=$m polybar --reload bspwm &
done
'';
@ -27,6 +27,7 @@
# "nekoray"
# "obsidian"
# "planify"
# "spice-vdagent" # Для виртуалки
];
monitors = let
@ -39,7 +40,6 @@
rules = let # Это переменные
floating1600x900 = {
state = "floating";
# layer = "above";
center = true;
focus = true;
rectangle = "1600x900+0+0";
@ -60,25 +60,24 @@
state = "floating";
};
in { # А тут правила окон
# "Polybar" = { layer = "below"; };
"Screenkey" = { manage = false; };
"gcolor3" = floating;
"obs" = floating;
"steam" = floating;
"steam:steamwebhelper:Steam" = { state = "tiled"; };
"krita" = { state = "tiled"; };
"krita:krita:Krita - Edit Text" = floating; # мб надо "Krita - Edit Text — Krita"
"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" = floating1200x800;
"nekoray" = floating1200x800;
"floating-terminal" = floating1200x800;
"Kvantum Manager" = floating1200x800;
"qt5ct" = floating1200x800;
"qt6ct" = floating1200x800;
"pavucontrol" = floating900x600;
# blueman-манагер надо флоатинг
};

View file

@ -0,0 +1,352 @@
# Про единицы измерения
# Если просто написать число, то это будет количество пробелом в прямом смысле. Размер зависит от шрифта
# Если указать pt (points), то это 1/72 часть дюйма, которая преобразуется в количество пикселей в зависимости от DPI монитора
# Если указывать px, то это пиксели, логично
# Интересные готовые скрипты для polybar https://github.com/polybar/polybar-scripts
# Если в трее не отображаются иконки, то вот вариант решения:
# Put `export XDG_DATA_DIRS=~/.nix-profile/share:$XDG_DATA_DIRS` in `/etc/profile`
# Взято отсюда https://www.reddit.com/r/voidlinux/comments/1apb5d0/comment/kqzabg6
# При наведении на имя окна сделать скрол фул имени через zscroll
# Если лень не будет, то потом сделаю
# Варианты кликов мыши
# click-left
# click-middle
# click-right
# scroll-up
# scroll-down
# double-click-left
# double-click-middle
# double-click-right
{ pkgs, config, ... }: let
rofiApps = "${config.home.homeDirectory}/.config/rofi/launcher.rasi";
rofiPower = "${config.home.homeDirectory}/.config/rofi/power.rasi";
monitor = "$\{env:MONITOR:\}";
in { # Статус бар внизу
services.polybar = {
enable = true;
# Скрипт запуска polybar. Выключил. Включаю в bspwm.nix
script = ''
sleep 0
'';
settings = { # Или переимоневать в "config"? Не понял в чём разница
"bar/bspwm" = {
monitor = "\${env:MONITOR:}";
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 power";
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 = "Unifont: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/rofi" = {
type = "custom/text";
click-left = "exec rofi -show drun -show-icons -theme ${rofiApps}";
label = " ";
};
"module/power" = {
type = "custom/text";
click-left = "exec rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu -theme ${rofiPower}";
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 = 35;
label-foreground = config.lib.stylix.colors.base07;
};
"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/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

@ -5,8 +5,9 @@
# Стандартный конфиг https://github.com/baskerville/bspwm/blob/master/examples/sxhkdrc
{ pkgs, config, ... }: let
notifyMute = ''dunstify "$(if [ "$(pamixer --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'';
muteText = ''then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000'';
notifyMute = ''dunstify "$(if [ "$(pamixer --get-mute)" = "true" ]; ${muteText}'';
notifyMicMute = ''dunstify "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; ${muteText}'';
notifyVolume = ''dunstify " Volume: $(pamixer --get-volume)" -r 91190 -t 800'';
# -r 91190: Это идентификатор уведомления (notification ID). Уведомления с одинаковым ID будут заменять друг друга.
# -t 800: Это время в миллисекундах, через которое уведомление будет автоматически закрыто.
@ -43,7 +44,7 @@ in {
# Lock screen
super + l
betterlockscreen -l dimblur
betterlockscreen -l dimblur --show-layout
# Quit. Закрыть приложение
super + q

View file

@ -1,342 +0,0 @@
# Про единицы измерения
# Если просто написать число, то это будет количество пробелом в прямом смысле. Размер зависит от шрифта
# Если указать pt (points), то это 1/72 часть дюйма, которая преобразуется в количество пикселей в зависимости от DPI монитора
# Если указывать px, то это пиксели, логично
# Интересные готовые скрипты для polybar https://github.com/polybar/polybar-scripts
# Если в трее не отображаются иконки, то вот вариант решения:
# Put `export XDG_DATA_DIRS=~/.nix-profile/share:$XDG_DATA_DIRS` in `/etc/profile`
# Взято отсюда https://www.reddit.com/r/voidlinux/comments/1apb5d0/comment/kqzabg6
# При наведении на имя окна сделать скрол фул имени через zscroll
# Если лень не будет, то потом сделаю
# Варианты кликов мыши
# click-left
# click-middle
# click-right
# scroll-up
# scroll-down
# double-click-left
# double-click-middle
# double-click-right
{ pkgs, config, ... }: let
rofiApps = "${config.home.homeDirectory}/.config/rofi/launcher.rasi";
rofiPower = "${config.home.homeDirectory}/.config/rofi/power.rasi";
monitor = "$\{env:MONITOR:\}";
in { # Статус бар внизу
home.packages = with pkgs; [ polybar ];
xdg.configFile."polybar/config.ini" = {
# executable = true;
text = ''
[bar/bottom]
monitor=${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 power
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=Unifont: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
; Ебаные дауны не могут нормально отображать смайлики
; Там хуйня на пол экрана
; font-161=Noto Color Emoji:style=Regular:size=12;3
; font-162=Noto Emoji:style=Regular: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 -theme ${rofiApps}
label=" "
[module/power]
type=custom/text
click-left=exec rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu -theme ${rofiPower}
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
'';
};
}

View file

@ -3,7 +3,6 @@
{ pkgs, ... }: {
hardware = { # Параметры для 24.05 и unstable могут сильно отличаться
amdgpu = {
opencl.enable = true; # # Enable OpenCL support using ROCM runtime library.
# amdvlk = { # Гавно лаганое, лучше radv юзать (radeon vulkan)

View file

@ -8,11 +8,14 @@
# lsblk `df /swapfile | awk '/^\/dev/ {print $1}'` -no UUID
# Узнать offset файла подкачки:
# sudo filefrag -v /swapfile | awk 'NR == 4 {print $5}' | cut -d ':' -f 1
# sudo filefrag -v /swapfile | awk '$1=="0:" {print substr($4, 1, length($4)-2)}'
{
boot = {
resumeDevice = "/dev/disk/by-uuid/0951089a-fd89-4647-9ddb-0e3ff63d7b49";
kernelParams = [ "resume_offset=6807551" ];
kernelParams = [ "resume_offset=6799360" ];
};
# Не знаю надо ли это. На виртуалке я не могу забутиться в любом случае
# boot.initrd.systemd.enable = true;
}

View file

@ -54,7 +54,8 @@
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

@ -4,20 +4,12 @@
# podman.enable = true;
waydroid.enable = true;
# docker = {
# enable = true;
# # daemon.settings = {
# # fixed-cidr-v6 = "fd00::/80";
# # ipv6 = true;
# # };
# rootless = {
# enable = true;
# # daemon.settings = {
# # fixed-cidr-v6 = "fd00::/80";
# # ipv6 = true;
# # };
# };
# };
docker = {
enable = true;
rootless = {
enable = true;
};
};
# spiceUSBRedirection.enable = true; # Connect USB devices to libvirt VMs, both local and remote.
libvirtd = { # https://nixos.wiki/wiki/Libvirt
@ -44,11 +36,14 @@
# </channel>
# services = {
# openssh.enable = true; # Потом удали. Это ставится на виртуалку, чтоб к ней конект по ssh работал.
# qemuGuest.enable = true; # Time syncing and scripting
# openssh.enable = true; # Это ставится на виртуалку, чтоб к ней конект по ssh работал.
# spice-vdagentd.enable = true; # Clipboard sharing
# spice-webdavd.enable = true; # VirtFS alternative for directory sharing
# qemuGuest.package = pkgs.qemu_full; # Time syncing and scripting
# qemuGuest = {
# enable = true; # Fix resolution
# package = pkgs.qemu_full;
# };
# # Ниже я не включаю
# # spice-webdavd.enable = true; # VirtFS alternative for directory sharing
# };
}

View file

@ -7,6 +7,14 @@
services.displayManager = {
defaultSession = "none+bspwm"; # only effective for GDM, LightDM and SDDM
sddm = {
# Чтоб задать аватарку юзеру, надо отправить png файл такой командой:
# sudo cp image.png /var/lib/AccountsService/icons/username
# Тоесть именно username, без .png в конце
enable = true;
# package = pkgs.kdePackages.sddm; # qt6 sddm
theme = "chili";
};
};
services.libinput = {
@ -28,17 +36,6 @@
i3.enable = true; # i3-gaps доступен в стоке в новых версиях
};
displayManager = {
lightdm = { # Минималистичный display manager
enable = true;
# background = "./bg.png";
# greeters = {
# tiny.enable = true; # Фул минималистичная тема без ничего
# # gtk.enable = true; # GTK тема с кучей настроек
# };
};
};
xkb = {
layout = "us,ru";
variant = "";

View file

@ -16,13 +16,16 @@ in {
# Список сервисов, которые не надо ребутать после rebuild switch
# Мне это надо, потому что некоторые сервисы кладут систему
systemd.services = {
"accounts-daemon".restartIfChanged = false;
# systemd.services = {
# "accounts-daemon".restartIfChanged = false;
# "home-manager-buliway".restartIfChanged = false;
};
# };
boot = {
kernelPackages = pkgs.linuxPackages_latest; # Ядро линуха, ласт версия
# kernelParams = [ # https://nixos.wiki/wiki/AMD_GPU#Dual_Monitors
# "video=1920x1080"
# ];
loader = {
# systemd-boot.enable = true;
@ -31,13 +34,7 @@ in {
efiSupport = true;
device = "nodev"; # nodev позволяет не устанавливать grub в конкретное место, но видеть его ui
};
efi.canTouchEfiVariables = true;
# kernelParams = [ # https://nixos.wiki/wiki/AMD_GPU#Dual_Monitors
# "video=DP-3:1920x1080@165"
# "video=HDMI-A-1:1920x1080@75"
# ];
};
};

View file

@ -17,7 +17,8 @@
# будет пытаться установить расширения в каталог nix store, куда нельзя что либо ставить без рута.
packages = with pkgs; [
vscode # Мб надо в home.packages писать, чтоб расширения ставились без рута
jetbrains-toolbox # Мб надо через home.packages писать
jetbrains-toolbox
zed-editor
];
sessionVariables = {

View file

@ -39,17 +39,11 @@
gvfs.enable = true; # Mount, trash, and other functionalities for Thunar file manager
tumbler.enable = true; # Thumbnail support for Thunar file manager
# flatpak.enable = true;
# unclutter.enable = true; # Enable unclutter to hide your mouse cursor when inactive
# unclutter.enable = true; # Hide your mouse cursor when inactive
# fwupd.enable = true; # DBus service that allows applications to update firmware
# greenclip.enable = true; # https://github.com/erebe/greenclip (использую clipmenu вместо этого)
# fstrim.enable = true; # Чистит ssd для норм производительности. Пока не пользуюсь
# archisteamfarm = {}; # Фарм карточек стима афк. Простро раскомментить мало, надо настроить
# Для запуска wayland приложений на x11. Мне для waydroid надо
# cage = {
# enable = true;
# user = "buliway";
# };
};
programs = {
@ -58,7 +52,7 @@
gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-qt;
pinentryPackage = pkgs.pinentry-qt; # Окно ввода пароля
};
appimage = { # Чтоб .appimage работал
@ -72,9 +66,9 @@
thunar = { # Can't I use it with home-manager? WTF
enable = true;
plugins = with pkgs.xfce; [
thunar-media-tags-plugin # Thunar plugin providing tagging and renaming features for media files
thunar-archive-plugin # Thunar plugin providing file context menus for archives
thunar-volman # Thunar extension for automatic management of removable drives and media
thunar-media-tags-plugin # Tagging and renaming features for media files
thunar-archive-plugin # File context menus for archives
thunar-volman # Automatic management of removable drives and media
];
};
xfconf.enable = true; # For Thunar configs
@ -111,9 +105,19 @@
go # Go programming language
rustup # Управление версиями языка Rust
nil # Nix language server
hugo # Для моего блога
python3 # Питухон ласт версии
gcc # Компилятор
gnumake # Компилятор?
# Nix language server
nil
nixd
# Nix code formatting
# nixpkgs-fmt # Оф, но будет устаревшим. Usage: nixpkgs-fmt file.nix
# nixfmt-rfc-style # Новый оф, но вроде не всё есть. Usage: nixfmt file.nix
alejandra # Сторонний быстрый форматер. Usage: alejandra file.nix
############
## Архивы ##
@ -134,26 +138,25 @@
wget
curl
git
xclip # Для работы буфера обмена
ffmpeg_7 # Обработка видео. Нужен всегда и везде
xclip # Буфера обмена
ffmpeg_7 # Обработка видео. Нужен всегда и везде как зависимость
imagemagick # Обработка изображений. Мб тоже нужен всегда
tree # Структура файлов в терминале
gnugrep # Поиск в терминале
gawk # Обработка и анализ текста в терминале
rsync # Синхронизация файлов
bat # A cat(1) clone with syntax highlighting and Git integration.
xorg.xwininfo # Для команды xprop? Статы окна, по типу класса
xorg.xrandr # Для команды xrandr. Управление мониторами
xorg.xev # Для команды xev, чтоб узнать бинды
bat # Аналог cat с подсветкой синтаксиса
xorg.xwininfo # Команда xprop. Статы окна, по типу класса
xorg.xrandr # Управление мониторами
xorg.xev # Узнать айдишник бинда
xdg-utils # Set of command line tools that assist applications with a variety of desktop integration tasks
feh # Смотреть изображения. Вроде нужен в большом количестве софта как зависимость
playerctl # Command-line utility and library for controlling media players that implement MPRIS
xdotool # Fake keyboard/mouse input, window management, and more. Автоматизация
zscroll # A text scroller for use with panels and shells https://github.com/noctuid/zscroll
tokei # Показывает количество строк кода на разных языках внутри каталога
playerctl # Управление медиа. Плей/пауза и тд
xdotool # Fake keyboard/mouse input. Для rofi-pass
# zscroll # A text scroller for use with panels and shells https://github.com/noctuid/zscroll
tokei # Количество строк кода на разных языках в каталоге
pass # Менеджер паролей в терминале
btop # Монитор ресурсов в терминале
# rocmPackages.rocm-smi # Чтоб в btop было gpu (не работает)
rocmPackages.rocm-smi # Чтоб в btop было gpu (не работает)
# rocmPackages_5.rocm-smi # Старая версия пакета выше. Хз какой надо
yt-dlp # Скачивать и смотреть медиа с разных сайтов
tasktimer # TUI task timer. Можно несколько таймеров с описанием запустить. В терминал tt
@ -164,8 +167,9 @@
fzf # Нечёткий поиск
killall # Убить процессы. Мем, что в стоке не стоит
libnotify # Вызов оповещений через "notify-send"
gallery-dl # download images from several image hosting sites
nvim
gallery-dl # Качать много картинок с кучи разных сайтов
shellcheck # Проверка shell скриптов на ошибки
pwgen # Генератор паролей
alacritty # Минималистичный терминал. Основной у меня
kitty # Самый быстрый протокол отображения медиа, но ssh через жопу работает
@ -194,7 +198,6 @@
librewolf
firefox
chromium
# ff2mpv # Открывать видео из браузера в mpv плеере
lynx # Текстовый браузер в терминале. Без картинок
##########
@ -257,9 +260,10 @@
mousai # Опенсорс шазам. Со временем просит платный api
spek # Спектрограмма аудио.
mpv # Смотреть видео
imv # Смотреть картинки 1. Не умеет показывать анимированные webp
qview # Смотреть картинки 2. Если imv не может что-то открыть
viewnior # До перехода на wayland юзал его. Если сортирует лучше imv, то удалить imv
# Смотреть картинки
imv # Не умеет показывать анимированные webp. Через раз может показывать avif
qview # Умеет в анимированные webp. Не умеет открывать avif
feh # Нужен в большом количестве софта как зависимость. Может в avif, но криво
############
## Social ##
@ -270,10 +274,7 @@
withVencord = true; # Имба плагины # TODO: Настройки надо сделать декларативными
})
telegram-desktop
element-desktop # Matrix клиент десктоп. Без кастом смайликов
# cinny-desktop # Matrix клиент с кастом смайликами, похож на дс
# https://github.com/commetchat/commet/pull/295 # Matrix клиент, фул копия дса
# revolt-desktop # FOSS аналог дискорда
###########
## Games ##
@ -283,7 +284,7 @@
# steam # Мб не надо сюда писать, раз через programs.steam редачу
# heroic # A Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
# lutris # Запускать игры не из стима
bottles # Минималистичная альтернатива lutris
# bottles # Минималистичная альтернатива lutris
# Мб зависимости
steam-run # На всякий случай
@ -304,6 +305,7 @@
blender-hip # 3д графика и рендер видео
gcolor3 # GUI color picker
xcolor # CLI color picker https://github.com/Soft/xcolor
inkscape # Vector graphic editor
##################
## Productivity ##
@ -316,9 +318,10 @@
## IDE ##
#########
# neovim # Мб не надо писать, он у меня необычный, через nixvim flake
neovim # Мб не надо писать, он у меня необычный, через nixvim flake
# vscode # Надо в home.packages писать, чтоб расширения ставились без рута
# jetbrains-toolbox # Надо в home.packages писать. https://nixos.wiki/wiki/Jetbrains_Tools
# zed-editor # На всякий тоже поставил в home.packages
helix # A Kakoune / Neovim inspired editor, written in Rust.
###########
@ -365,12 +368,16 @@
google-fonts
libva-utils # Проверяет работоспособность VAAPI?
clinfo # Проверяет работоспособность OpenCL?
libcap # Мб надо для nekoray
libsecret # Хранить и получать аккаунты у приложений. Например для jetbrains toolbox
alsa-utils # Мне для команды amixer надо
pamixer # PulseAudio cli (громкость редачу)
weston # Для запуска wayland only apps на x11 (ещё есть cage, на тесты ставлю оба)
easyeffects # PipeWire settings. Мне для эквалайзера нужен
weston # Для запуска wayland only apps на x11 (ещё есть cage, но он крашит систему при ребилде)
# lxqt.lxqt-policykit # Меню для воода пароля при запуске с правами админа. Пока юзаю от гнома
# Для работы некоторых тем sddm
kdePackages.qt5compat
libsForQt5.qt5.qtgraphicaleffects
libsForQt5.qt5.qtquickcontrols
sddm-chili-theme # Qt5 SDDM Theme
];
}

View file

@ -1,8 +1,9 @@
#!/usr/bin/env bash
cp ./helpers.rc $HOME/.config/xfce4/helpers.rc
cp ./mimeapps.list $HOME/.config/mimeapps.list
mkdir -p $HOME/.config/xfce4/
cp $HOME/nixos-private-dots/shit/helpers.rc $HOME/.config/xfce4/helpers.rc
cp $HOME/nixos-private-dots/shit/mimeapps.list $HOME/.config/mimeapps.list
cp ./Kvantum $HOME/.config/Kvantum
cp ./qt5ct $HOME/.config/qt5ct
cp ./qt6ct $HOME/.config/qt6ct
cp -r $HOME/nixos-private-dots/shit/Kvantum $HOME/.config/Kvantum
cp -r $HOME/nixos-private-dots/shit/qt5ct $HOME/.config/qt5ct
cp -r $HOME/nixos-private-dots/shit/qt6ct $HOME/.config/qt6ct