314 lines
25 KiB
Markdown
314 lines
25 KiB
Markdown
Я ебал рот бездарных блядей, которые не могут сделать нормальную систему. Просто блять не существует нормальной OS на планете. Какого блядского хуя ебаные дауны блять делают симлинк для конфигов home-manager и при этом дают рандомному софту удалить симлинк? Хули тебе блядь такая мешает записывать в симлинк? Какого хуя я должен бороться с блядскими крашами и невозможностью ребилдить систему? Хули толку от твоего блядского даун менеджера, если он нихуя не может сделать блять и один хуй надо руками всё линковать блять? Ебаное блядство делает конфиги и потом не может ребилдить систему, потому что даёт блядскому софту заменить себя рандомной директорией блять
|
||
- Ебучий thunar не работает блять, заменяет симлинк на свой конфиг
|
||
- Ебучий mime types нихуя не работает блять и тоже заменяется какой-то блядью
|
||
|
||
## TODO
|
||
|
||
Надо сделать декларативную QT тему (ебал их рты). Сейчас у меня есть три каталог в каталоге `shit`. Их я могу скопировать в `~/.config`, нужная переменная окружения в `home.nix` стоит и всё заработает. Но это залупа. Другой человек не сможет это юзать мб. Потому что там в коде написан путь `/home/buliway`. Не всем же быть буливеями. Хотя это изи исправляется, потом сделаю. Но пока что я рот ебал тратить 3 дня на настройку темы бездарных далбаёбов на QT.
|
||
|
||
Надо сделать Nekoray нормально. Пока что только путь пидараса есть. Запускаешь `sudo ~/Downloads/VPN/nekoray-3.26-2023-12-09-linux-x64.AppImage`. В некобоксе офаешь у тян мода стрик роут. Систем тан. В меню жмёшь перезапустить прогу, она отлипла от терминала, перетащил на 10 воркспейс и сижу хуй сосу, ибо меня сайты в пермак кидают за такую хуйню
|
||
|
||
## Дотсы
|
||
|
||
Железо, на котором это работает:
|
||
- CPU: i5 10400f
|
||
- GPU: AMD RX6600
|
||
- RAM: 32gb (2x16) ddr4 3200
|
||
- Motherboard: MSI Z590-A PRO
|
||
- Два монитора 1920x1080 на 165 и 100 герц
|
||
|
||
| Software | Name |
|
||
| ------------ | ---------------------------- |
|
||
| WM | bspwm |
|
||
| Hotkeys | sxhkd |
|
||
| Terminal | Alacritty, Kitty |
|
||
| Multiplexer | Zellij |
|
||
| Shell | oh-my-zsh with many plugins |
|
||
| Shell Prompt | Starship |
|
||
| Apps/Menus | Rofi |
|
||
| Notification | Dunst |
|
||
| Files | Thunar, Ranger |
|
||
| Images | qView, imv |
|
||
| Media | mpv |
|
||
| Browsers | Librewolf, Firefox, Chromium |
|
||
| Social | Discord, Telegram, Steam |
|
||
| Audio | PipeWire |
|
||
| Fonts | JetBrains Mono Nerd Font |
|
||
| Color Theme | Gruvbox Dark Medium |
|
||
| Icons | Gruvbox Plus Dark |
|
||
| DM | LightDM |
|
||
| Compositor | Нет. Мб будет сток picom |
|
||
| Screenshare | OBS, Screenkey, ksnip |
|
||
| Code Editor | VSCode, nixvim later |
|
||
|
||
Чтоб узнать sha256 для гитхаб репы, пишем в терминал эту команду:
|
||
```sh
|
||
nix-prefetch-git link
|
||
```
|
||
|
||
Если хочется поменять цвета или шрифты в конфиге какой-то программы, но при ребилде получается конфликт, то дело в Stylix, который управляет системной темой и сам везде ставит шрифты и цвета. Если хочется заменить, не трогая stylix, то надо добавить `lib.mkForce` перед значением. Например так:
|
||
```nix
|
||
font = lib.mkForce "JetBrainsMono Nerd Font 11";
|
||
```
|
||
|
||
Узнать localhost виртуалки, чтоб конектиться по ssh:
|
||
```sh
|
||
ip a
|
||
```
|
||
|
||
## Настройка мониторов
|
||
|
||
На иксах второй монитор может не работать или все мониторы могут сидеть на 60 герц. Изменить это один раз недостаточно, после ребута сбросится. Не знаю нормального способа, кроме как добавить настройки в автозапуск. Ниже пример того, как произвести начальную настройкy:
|
||
|
||
```sh
|
||
# Увидеть список мониторов
|
||
xrandr
|
||
# Изменить настройки для основного монитора. Мб вместе с --primary для основного монитора
|
||
xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165
|
||
# Изменить настройки для второго (правого) монитора
|
||
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
|
||
```
|
||
|
||
Есть ещё такая штука - https://github.com/phillipberndt/autorandr . Но мне лень с ней разбираться
|
||
|
||
|
||
## Системная тема на всех вебсайтах
|
||
|
||
Если используется популярная системная тема, то, скорее всего, её можно выбрать в браузерном расширении DarkReader, чтоб все сайты в интернете выглядели как системная тема. Может быть я потом займусь синхронизацией темы stylix с настройками DarkReader
|
||
|
||
## Другие README файлы в этих дотсах
|
||
|
||
- [Копия man page для bspwm с доп инфой](./modules/home-manager/wm/bspwm/bspwm.md)
|
||
- [Описание плагинов для mpv](./modules/home-manager/mpv/README.md)
|
||
|
||
## Мини гайд по NixOS
|
||
|
||
- Одинаковые вещи могут делаться разными способами. Это норма. По началу меня это бесило, когда читал чужие дотсы
|
||
- [Плейлист](https://www.youtube.com/playlist?list=PLko9chwSoP-15ZtZxu64k_CuTzXrFpxPE) с английскими видео. Мне больше всего понравились видео под номерами [16](https://youtu.be/a67Sv4Mbxmc), [18](https://youtu.be/b641h63lqy0), [21](https://youtu.be/rEovNpg7J0M), [27](https://youtu.be/ljHkWgBaQWU) и [28](https://youtu.be/JCeYq72Sko0).
|
||
- Пакеты искать [тут](https://search.nixos.org/packages). Параметры для сток NixOS [тут](https://search.nixos.org/options). Параметры для home-manager [тут](https://home-manager-options.extranix.com/?query=&release=master). Для моих конфигов надо обязательно искать в unstable ветке, ибо параметры могут отличаться.
|
||
- Для системной темы тут используется stylix. Все его параметры можно найти [тут](https://stylix.danth.me/options/nixos.html).
|
||
|
||
## Процесс установки
|
||
|
||
Сначала качаем nixos kde или nixos gnome вариант и устанавливаем систему через визуальный установщик.
|
||
|
||
Дальше есть два способа. Оба нужны, чтоб заменить имя юзера на своё перед установкой моих дотсов. Для этого надо открыть файл `./nixos/configuration.nix` и заменить переменную `username` на ник своего юзера.
|
||
|
||
### Первый способ
|
||
|
||
Сделать форк этого репозитория. Внести нужные изменения. После установки NixOS временно включить гит и установить систему:
|
||
```sh
|
||
nix shell -p git
|
||
sudo nixos-rebuild boot --flake github:Buliway/nixos-dots --impure
|
||
```
|
||
Параметр `boot` делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй `switch` вместо `boot`.
|
||
|
||
### Второй способ
|
||
|
||
После установки NixOS временно включить гит, клонировать репозиторий, изменить нужный файл, ребилдить систему:
|
||
```sh
|
||
nix shell -p git
|
||
git clone https://github.com/Buliway/nixos-dots
|
||
nano ~/nixos-dots/nixos/configuration.nix
|
||
# Заменить переменную `username` на ник своего юзера
|
||
sudo nixos-rebuild boot --impure --flake ~/nixos-dots
|
||
```
|
||
Параметр `boot` делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй `switch` вместо `boot`.
|
||
|
||
## После установки надо
|
||
|
||
Это заметка для меня. Каждый ставит то, что ему надо
|
||
|
||
- Включить подкачку на 64 гига в `/etc/nixos/hardware-configuration.nix` через такой синтаксис:
|
||
```nix
|
||
swapDevices = [ {
|
||
device = "/swapfile";
|
||
size = 64*1024; # В мегабайтах
|
||
} ];
|
||
```
|
||
- Включить автомаунд бекап ссд и сделать симлинк на него в `~/backups` в файле `./modules/nixos/filesystems.nix` и раскомментировать импорт в `./modules/nixos/bundle.nix`.
|
||
- Сделать симлинки на все нужные вещи в `./modules/home-manager/symlinks.nix`. Например браузеры я так бекаплю
|
||
- Активировать скрипт в `shit` каталоге, чтоб скопировать нужные конфиги в нужные каталоги. Симлинки не работают
|
||
- Раскомментировать нужные мне настройки звука в `./modules/nixos/sound.nix`
|
||
- Добавить gpg ключи
|
||
```sh
|
||
gpg --import /path/to/your-key.gpg
|
||
```
|
||
Если не работает, то смотришь список ключей. Копируешь ID нужного и используешь во второй команде.
|
||
```sh
|
||
gpg --list-keys
|
||
gpg --edit-key ID-ключа
|
||
```
|
||
В этом режиме надо написать trust и выбрать степень доверия. Например 5 для своих ключей можно задать, это прям самое максимально доверие. Потом Ctrl + D чтоб выйти.
|
||
|
||
## Бинды
|
||
|
||
Клавиша `Super` это клавиша `Win`
|
||
|
||
| Bspwm | Описание | Работает? |
|
||
| --------------------------------- | ------------------------------------------------------------------------------------------- | --------- |
|
||
| `Super + L` | Lock screen | Да |
|
||
| `Super + Q` | Quit. Выключить приложение | Да |
|
||
| `Super + Shift + Q` | Kill. Если приложение не отвечает, то убить его | Да |
|
||
| `Super + F` | Floating toggle | Да |
|
||
| `Super + Enter` | Fullscreen toggle | Да |
|
||
| `Super + Esc` | Прошлый воркспейс. Желательно внутри одного монитора | Да |
|
||
| `Super + ЛКМ` | Переместить окно | Да |
|
||
| `Super + ПКМ` | Ресайзить окно | Да |
|
||
| `Super + Arrows` | Менять фокус приложения в указанном направлении | Да |
|
||
| `Super + 0-9` | Переключить воркспейс на 1-10. Если они общие на все моники, то добавить F1-F12 для 11-22 | Да |
|
||
| `Super + Shift + 0-9` | Перекинуть активное окно на воркспейс. Желательно silent, чтоб меня не перекидывало к проге | Да |
|
||
| `Super + Ctrl + Down` | Переключает на первый пустой воркспейс |нет|
|
||
| `Super + Ctrl + Left/Right` | Переключает на предыдущий/следующий воркспейс. Тоесть делает -1 или +1 от текущего | Да |
|
||
| `Super + Ctrl + Alt + Down` | Свапает активное окно с самым большим на экране |хз|
|
||
| `Super + Ctrl + Alt + Left/Right` | Перекидывает активное окно на предыдущий/следующий воркспейс и следует за ним | Да |
|
||
| `Super + Alt + Arrows` | Move floating window | Да |
|
||
| `Super + Shift + Arrows` | Resize window на 30 пикселей в указанном направлении наружу | Да |
|
||
| `Super + Shift + Alt + Arrows` | Resize window на 30 пикселей в указанном направлении внутрь | Да |
|
||
| `Super + Shift + Ctrl + Arrows` | Перемещает активное окно в указанном направлении | Криво |
|
||
| `Super + S` | Split toggle. Меняет позиционирование с горизонтального на вертикальный и обратно. | Не понял |
|
||
| `Super + Ctrl + Shift + R` | Make sxhkd reload its config files | Да |
|
||
| `Super + Alt + Ctrn + Shift + R` | Restart bspwm | Да |
|
||
| `Super + Alt + Ctrn + Shift + Q` | Quit bspwm | Да |
|
||
|
||
| Rofi | Описание | Работает? |
|
||
| ------------------- | ---------------------------------------------------------------------------------------------- | --------- |
|
||
| `Super + A` | Applications. Запускатор софта | Да |
|
||
| `Super + C` | Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`. | Да |
|
||
| `Super + P` | Passwords. Пароли из утилиты pass |нет|
|
||
| `Super + V` | История буфера обмена. Как ctrl+v, но через win. |нет|
|
||
| `Super + Tab` | Как alt+tab, переключение окон. На нужный воркспейс само перекинет |хз|
|
||
| `Super + Alt + T` | Timer. Думаю сделать через утилиту timer |хз|
|
||
| `Super + Shift + N` | Notification history. История оповещений. Мб сделать только в баре кнопку? Мб не делать вообще |хз|
|
||
| `Super + Backspace` | PowerMenu. Выключение пк |нет|
|
||
|
||
| Applications | Описание | Работает? |
|
||
| -------------------------- | ----------------------------------------- | --------- |
|
||
| `Super + B` | Browser LibreWolf. Основа | Да |
|
||
| `Super + Shift + B` | Browser Firefox. Паблик активность | Да |
|
||
| `Super + Shift + Ctrl + B` | Browser Chromium. Пусть будет | Да |
|
||
| `Super + N` | Note taking app (obsidian) | Да |
|
||
| `Super + E` | Explorer. Thunar file manager | Да |
|
||
| `Super + I` | IDE, text editor, NeoVim | Да |
|
||
| `Super + M` | Monitor of resources (btop) | Да |
|
||
| `Super + G` | Goals. Todo manager. Task tracker | Да |
|
||
| `Super + Shift + C` | Color picker. Получить hex в буфер обмена | Да |
|
||
| `Super + Ctrl + C` | Color picker. Получить rgb в буфер обмена | Да |
|
||
|
||
| Terminal | Описание | Работает? |
|
||
| -------------------------- | ---------------------------------------------------------------------------- | --------- |
|
||
| `Super + T` | Terminal основной | Да |
|
||
| `Super + Shift + T` | Floating Terminal основной в центре экрана с размерами треть на треть экрана | Да |
|
||
| `Super + Ctrl + T` | Terminal запасной | Да |
|
||
| `Super + Shift + Ctrl + T` | Floating Terminal запасной в центре экрана с размерами треть на треть экрана | Да |
|
||
|
||
| Колдунские кнопки | Описание | Работает? |
|
||
| ----------------------- | ---------------------- | --------- |
|
||
| `XF86AudioMute` | Toggle audio mute |хз|
|
||
| `XF86AudioMicMute` | Toggle microphone mute |хз|
|
||
| `XF86AudioLowerVolume` | Decrease volume |хз|
|
||
| `XF86AudioRaiseVolume` | Increase volume |хз|
|
||
| `XF86AudioPlay` | Play/pause |хз|
|
||
| `XF86AudioPause` | Play/pause |хз|
|
||
| `XF86AudioNext` | Next track |хз|
|
||
| `XF86AudioPrev` | Previous track |хз|
|
||
| `XF86MonBrightnessUp` | Increase brightness |хз|
|
||
| `XF86MonBrightnessDown` | Decrease brightness |хз|
|
||
|
||
| Not sxhkd | Описание | Работает? |
|
||
| --------------- | ---------------------- | --------- |
|
||
| `Print` | Выделить область | Да |
|
||
| `Print + Alt` | Все мониторы целиком | Да |
|
||
| `Print + Ctrl` | Активный монитор | Да |
|
||
| `Print + Shift` | Активное окно | Да |
|
||
| `CapsLock` | Switch keyboard layout | Да |
|
||
|
||
Так же есть бинд на зажим дальней боковой кнопки мыши. Если эту кнопку нажимать, то она работает как обычно. Если её зажать и начать двигать мышку, то вместо движения курсора будет плавный скрол. Обычно такое делают на трекболах без колеса мыши, но я люблю этот метод скрола на любом девайсе. Можно скролить с нужной скоростью и точностью куда надо без долгого кручения колеса.
|
||
|
||
|
||
## Иконки
|
||
|
||
Искать иконки для nerd шрифта можно [тут](https://www.nerdfonts.com/cheat-sheet).
|
||
|
||
Соберу сюда список nerd иконок, которые могут пригодиться
|
||
|
||
CPU (мб не юзать, а писать текстом и cpu и gpu) -
|
||
|
||
RAM -
|
||
|
||
CapsLock -
|
||
|
||
Клавиатура - или
|
||
|
||
Громкость -
|
||
|
||
Яркость -
|
||
|
||
Календарь -
|
||
|
||
Выключение пк - ⏻
|
||
|
||
Приложения -
|
||
|
||
Блютуз -
|
||
|
||
Network -
|
||
|
||
Clipboard -
|
||
|
||
Оповещения (bell) -
|
||
|
||
Reload -
|
||
|
||
|
||
Wifi
|
||
|
||
|
||
|
||
Батарейки
|
||
|
||
|
||
|
||
|
||
|
||
Батарейки зарядка
|
||
|
||
|
||
|
||
|
||
Батарейки блютуз
|
||
|
||
|
||
|
||
Температура
|
||
- Температура по цельсию
|
||
|
||
|
||
|
||
|
||
## Темы
|
||
|
||
У меня в vscode цвета отображаются. Так что я для себя сохраню цвета разных вариантов gruvbox
|
||
|
||
Цвет это название цвета. Потом идёт название gruvbox-имя
|
||
|
||
Я использую gruvbox-dark-medium
|
||
|
||
|Цвет |dark-hard|dark-medium|dark-pale|dark-soft|material-dark-hard|material-dark-medium|material-dark-soft|
|
||
|------|---------|-----------|---------|---------|------------------|--------------------|------------------|
|
||
|base00| #1d2021 | #282828 | #262626 | #32302f | #202020 | #292828 | #32302f |
|
||
|base01| #3c3836 | #3c3836 | #3a3a3a | #3c3836 | #2a2827 | #32302f | #3c3836 |
|
||
|base02| #504945 | #504945 | #4e4e4e | #504945 | #504945 | #504945 | #5a524c |
|
||
|base03| #665c54 | #665c54 | #8a8a8a | #665c54 | #5a524c | #665c54 | #7c6f64 |
|
||
|base04| #bdae93 | #bdae93 | #949494 | #bdae93 | #bdae93 | #bdae93 | #bdae93 |
|
||
|base05| #d5c4a1 | #d5c4a1 | #dab997 | #d5c4a1 | #ddc7a1 | #ddc7a1 | #ddc7a1 |
|
||
|base06| #ebdbb2 | #ebdbb2 | #d5c4a1 | #ebdbb2 | #ebdbb2 | #ebdbb2 | #ebdbb2 |
|
||
|base07| #fbf1c7 | #fbf1c7 | #ebdbb2 | #fbf1c7 | #fbf1c7 | #fbf1c7 | #fbf1c7 |
|
||
|base08| #fb4934 | #fb4934 | #d75f5f | #fb4934 | #ea6962 | #ea6962 | #ea6962 |
|
||
|base09| #fe8019 | #fe8019 | #ff8700 | #fe8019 | #e78a4e | #e78a4e | #e78a4e |
|
||
|base0A| #fabd2f | #fabd2f | #ffaf00 | #fabd2f | #d8a657 | #d8a657 | #d8a657 |
|
||
|base0B| #b8bb26 | #b8bb26 | #afaf00 | #b8bb26 | #a9b665 | #a9b665 | #a9b665 |
|
||
|base0C| #8ec07c | #8ec07c | #85ad85 | #8ec07c | #89b482 | #89b482 | #89b482 |
|
||
|base0D| #83a598 | #83a598 | #83adad | #83a598 | #7daea3 | #7daea3 | #7daea3 |
|
||
|base0E| #d3869b | #d3869b | #d485ad | #d3869b | #d3869b | #d3869b | #d3869b |
|
||
|base0F| #d65d0e | #d65d0e | #d65d0e | #d65d0e | #bd6f3e | #bd6f3e | #bd6f3e |
|