new public configs
This commit is contained in:
parent
0c625ef877
commit
ca00dfe910
65 changed files with 667 additions and 2922 deletions
107
BINDINGS.md
Normal file
107
BINDINGS.md
Normal file
|
|
@ -0,0 +1,107 @@
|
||||||
|
Тут будут описаны все бинды системы. Но мне может быть лень актуализировать эту огромную таблицу, так что лучше читай конфиги.
|
||||||
|
|
||||||
|
Возможно бинды для скринов придётся настроить руками в ksnip
|
||||||
|
|
||||||
|
# Минимально необходимые бинды
|
||||||
|
|
||||||
|
Тут будет мелкий список биндов, с которым можно начать. Бинды из секции "все бинды" могут повторяться
|
||||||
|
|
||||||
|
Клавиша `Super` это клавиша `Win`
|
||||||
|
|
||||||
|
- `Super + A` - Запускатор приложений
|
||||||
|
- `Super + Q` - Закрыть приложение (если добавить shift, то это kill приложения, если оно зависло и не закрывается)
|
||||||
|
- `Super + 0-9` - Переключить воркспейс (если добавить shift, то кидает активное окно на указанный воркспейс)
|
||||||
|
- `Super + Esc` - Переключиться на прошлый воркспейс, удобно
|
||||||
|
- `Super + T` - Открыть терминал (если добавить shift, то получится floating терминал, а если ctrl, то откроется kitty вместо alacritty)
|
||||||
|
- `Super + ПКМ` - Менять размер окна, на котором зажал ПКМ и водишь мышкой
|
||||||
|
- `Super + ЛКМ` - Двигать окно, на котором зажал ЛКМ
|
||||||
|
- `Super + F` - Делает окно flotaing и обратно tiling при повторном нажатии (если забагалось и делает фулскрин, то добавь shift, чтоб переключить в tiling)
|
||||||
|
- `Super + Стрелки` - Меняет фокус приложения в указанном направлении
|
||||||
|
- `Дальняя боковая кнопка мыши` - Скрол. Зажимаешь эту кнопку и водишь мышкой по столу в ту сторону, куда хочешь скролить
|
||||||
|
- `CapsLock` - Сменить язык на клавиатуре (если нужен просто капс, то жми с shift)
|
||||||
|
|
||||||
|
|
||||||
|
# Все бинды
|
||||||
|
|
||||||
|
Клавиша `Super` это клавиша `Win`
|
||||||
|
|
||||||
|
| Bspwm | Описание |
|
||||||
|
| --------------------------------- | ------------------------------------------------------------------------------------------- |
|
||||||
|
| `Super + L` | Lock screen |
|
||||||
|
| `Super + Q` | Quit. Выключить приложение |
|
||||||
|
| `Super + Shift + Q` | Kill. Если приложение не отвечает, то убить его |
|
||||||
|
| `Super + F` | Floating toggle |
|
||||||
|
| `Super + Shift + F` | Tiled 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 + Backspace` | PowerMenu. Выключение пк | Да |
|
||||||
|
| `Super + Tab` | Как alt+tab, переключение окон. На нужный воркспейс само перекинет | Да |
|
||||||
|
| `Super + Alt + T` | Timer. Думаю сделать через утилиту timer |нет|
|
||||||
|
| `Super + Shift + N` | Notification history. История оповещений. Мб сделать только в баре кнопку? Мб не делать вообще |нет|
|
||||||
|
|
||||||
|
| 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 | Да |
|
||||||
|
| `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 | Да |
|
||||||
|
|
||||||
|
Так же есть бинд на зажим дальней боковой кнопки мыши. Если эту кнопку нажимать, то она работает как обычно. Если её зажать и начать двигать мышку, то вместо движения курсора будет плавный скрол. Обычно такое делают на трекболах без колеса мыши, но я люблю этот метод скрола на любом девайсе. Можно скролить с нужной скоростью и точностью куда надо без долгого кручения колеса.
|
||||||
204
NOTES.md
Normal file
204
NOTES.md
Normal file
|
|
@ -0,0 +1,204 @@
|
||||||
|
Тут будут всякие заметки и доп информация по работе с NixOS
|
||||||
|
|
||||||
|
Если не хочешь обновлять систему, но надо скачать пакеты последней версии, то используй `upd nixpkgs2` и перед именем пакета добавь `pkgs2.`. Команда в терминале обновить второй unstable репозиторий. А префикс `pkgs2.пакет` говорит "скачай `пакет` из репозитория `pkgs2`".
|
||||||
|
|
||||||
|
Если ты обновил всю систему, но некоторые программы сломались, то можно не откатывать всю систему, а попробовать добавить к ним префикс `spkgs.`. Это скачает их из стабильной ветки репозитория
|
||||||
|
|
||||||
|
В стоке используется браузер `LibreWolf`, который имеет неприятные настройки безопасности. Мне проще выключить некоторые настройки безопасности в нём, чем выключить лишний шлак в `Firefox`. `Chromium` стоит как запаска для некоторых сайтов, как основа он мне не нравится. Написать какие настройки безопасности я выключил в `LibreWolf` мне лень. Как минимум офнул удаление истории при каждом ребуте. Но могу сказать какие настройки я использую в `Firefox` и `LibreWolf`, связанные просто с удобством. Они в таблице ниже.
|
||||||
|
|
||||||
|
| Настройка about:config | Значение | Описание |
|
||||||
|
| --------------------------------------- | -------- | ----------------------------------------------------- |
|
||||||
|
| browser.bookmarks.openInTabClosesMenu | false | Не закрывать меню закладок при открытии ссылки |
|
||||||
|
| browser.tabs.loadBookmarksInBackground | true | Не перекидывать на закладку, открытую в новой вкладке |
|
||||||
|
| layout.css.has-selector.enabled | true | Для кастом стилей |
|
||||||
|
| accessibility.typeaheadfind.enablesound | false | Чтоб не булькало на ухо |
|
||||||
|
| full-screen-api.warning.timeout | 0 | Чтоб фулскрин popup не вылазил |
|
||||||
|
| browser.tabs.insertAfterCurrent | true | Чтоб новые вкладки были справа от нынешней |
|
||||||
|
|
||||||
|
Если хочешь сменить стоковый браузер, то мб надо поменять переменную в `./nixos/home.nix`. Если не помогает, то допом команда в терминале (замени `librewolf` на нужный браузер):
|
||||||
|
```sh
|
||||||
|
xdg-settings set default-web-browser librewolf.desktop
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Смена тем сейчас работает криво для qt приложений. Можно автоматизировать gtk темы, но qt придётся руками добавлять/менять. Возможно фикс уже вышел, но мне лень проверять. У меня везде `gruvbox` и менять не планирую.
|
||||||
|
|
||||||
|
Чтоб задать аватарку юзера в SDDM (это меню ввода пароля при запуске пк), надо отправить png файл такой командой:
|
||||||
|
```sh
|
||||||
|
sudo cp image.png /var/lib/AccountsService/icons/username
|
||||||
|
```
|
||||||
|
То есть именно `username`, без `.png` в конце
|
||||||
|
|
||||||
|
Настройки смены языка, тачпада и мыши можно найти в файле `./modules/nixos/xserver.nix`. У меня там стоит необычный скрол мышкой. Я не использую колесо мыши. Я зажимаю дальнюю боковую кнопку мыши и двигаю мышку по столу. В какую сторону двигаешь мышку, в ту сторону и будет скрол. Так можно удобно регулировать скорость скрола и быстро оказываться где надо. Язык я меняю на капслок. Для активации капса надо жать шифт капслок. В этом же файле есть **настройка для amd видеокарт, которую надо выключить, если у тебя nvidia**. Не знаю надо ли что-то настраивать для nvidia после этого.
|
||||||
|
|
||||||
|
В стоке выключены следующие конфиги (их можно включить в `bundle.nix` в разных каталогах):
|
||||||
|
- `filesystem.nix` - Конектить внешние диски автоматически. В стоке выкл, потому что у каждого свои айдишники дисков.
|
||||||
|
- `hibernate.nix` - Настройки гибернации. В стоке выкл, потому что у каждого свои айдишники файла подкачки.
|
||||||
|
- `vr.nix` - Пакеты для работы виара на linux. Нужно очень мало кому, потому выкл
|
||||||
|
- `vscode.nix` - Настройки vscode. Большинство предпочтёт настраивать его по старинке руками, а не через геморный конфиг
|
||||||
|
- `symlinks.nix` - Настройки симлинков. Не всем надо, плюс у каждого свои симлинки. Потому выкл в стоке
|
||||||
|
- Файл подкачки - У меня он в `/etc/nixos/hardware-configuration.nix`, который у каждого свой. Потом вынесу это в дотсы.
|
||||||
|
|
||||||
|
Хоть тут и установлен `i3wm`, но он не настроен. Можешь удалить его из конфига, чтоб место не занимал. Я потом займусь его настройкой.
|
||||||
|
|
||||||
|
Если обновил систему и спустя время с ней всё окей, всё стабильно, то советую запускать сборщик мусора. При обновлении nixos не удаляет старые пакеты, чтоб ты мог откатиться назад, в случае поломок, даже если нет интернета. Чтоб удалить пакеты, которые больше не используются, можно использовать команду `grb` (это мой алиас в zsh).
|
||||||
|
|
||||||
|
Баш скрипты требуют другой шебанг в начале. Обязательно используй `#!/usr/bin/env bash` вместо `#!/bin/bash`. Первый вариант будет работать на любой OS с bash, а вот второй вариант ломается.
|
||||||
|
|
||||||
|
Не юзай ИИ для поиска информации по NixOS, он всегда выдумывает параметры. Сколько бы я не тестил разные ИИ для настройки NixOS, они даже базовые вещи не могут дать, тут слишком часто всё меняется и в интернете слишком мало информации по данной OS, чтоб ИИ давал хоть что-то рабочее
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## TODO
|
||||||
|
|
||||||
|
Надо сделать декларативную QT тему. Сейчас у меня есть файлы в каталоге `shit`. Их я могу скопировать в `~/.config`, нужная переменная окружения в `home.nix` стоит и всё заработает. Но это не то, что я хочу. Другой человек не сможет это юзать мб. Потому что там в коде написан путь `/home/buliway`. Не всем же быть буливеями. Хотя это изи исправляется, потом сделаю. Но пока что я не хочу тратить время на настройку QT, который нормально настроить невозможно.
|
||||||
|
|
||||||
|
Надо добавить в polybar отображение:
|
||||||
|
- Заряд аккума. Сейчас проверить негде. Мб взять готовый вариант [тут](https://github.com/Zproger/bspwm-dotfiles/blob/main/config/polybar/modules.ini#L148)
|
||||||
|
- Яркость экрана. Тоже ноуты. Хз надо ли
|
||||||
|
- Температура и нагрузка на гп
|
||||||
|
- Температура цп
|
||||||
|
- Блютуз. Не знаю отображается ли он сейчас. Не могу проверить, негде
|
||||||
|
|
||||||
|
Установить и настроить:
|
||||||
|
- i3wm с его экосистемой софта. Чтоб тот же polybar был лишь на bspwm, а на i3 работал i3bar
|
||||||
|
- Sway. Для тестов wayland на nixos
|
||||||
|
- Hyprland. Для тестов wayland на nixos
|
||||||
|
|
||||||
|
## Описание
|
||||||
|
|
||||||
|
Железо, на котором работают мои дотсы:
|
||||||
|
- CPU: i5 10400f
|
||||||
|
- GPU: AMD RX6600
|
||||||
|
- RAM: 32gb (2x16) ddr4 3200
|
||||||
|
- Motherboard: MSI Z590-A PRO
|
||||||
|
- Два монитора 1920x1080 на 165 и 100 герц
|
||||||
|
|
||||||
|
Основной набор софта
|
||||||
|
|
||||||
|
Изначально я написал конфиги для `bspwm` + `polybar`. Но потом хочу затестить другию WM. В теории между ними можно переключаться при запуске пк, так что проблем быть не должно. Если какой-то WM надо выключить, чтоб не засирать систему, то это можно делать в `modules/home-manager/bundle.nix`
|
||||||
|
|
||||||
|
| Software | Name |
|
||||||
|
| ------------ | -------------------------------- |
|
||||||
|
| WM | bspwm |
|
||||||
|
| Hotkeys | sxhkd |
|
||||||
|
| Terminal | Alacritty, Kitty |
|
||||||
|
| Multiplexer | Zellij |
|
||||||
|
| Shell | oh-my-zsh with many plugins |
|
||||||
|
| Shell Prompt | Starship |
|
||||||
|
| Apps/Menus | Rofi |
|
||||||
|
| Bar | Polybar |
|
||||||
|
| ScreenLock | betterlockscreen |
|
||||||
|
| Notification | Dunst |
|
||||||
|
| Files | Thunar, Ranger |
|
||||||
|
| Images | qView, imv, feh |
|
||||||
|
| Video | mpv with plugins |
|
||||||
|
| Music | Strawberry, mpv |
|
||||||
|
| Browsers | Librewolf, Firefox, Chromium |
|
||||||
|
| Social | Discord, Telegram, Steam |
|
||||||
|
| Audio | PipeWire, pavucontrol |
|
||||||
|
| Color Theme | Gruvbox Dark Medium |
|
||||||
|
| Icons | Papirus Dark |
|
||||||
|
| DM | SDDM |
|
||||||
|
| Compositor | Нет. Мне не нужны анимации и прозрачность |
|
||||||
|
| Screenshare | OBS, Screenkey, ksnip |
|
||||||
|
| Code Editor | Neovim, VSCode |
|
||||||
|
| Video Editor | Blender |
|
||||||
|
| Fetch | fastfetch |
|
||||||
|
| Torrent | qBittorrent |
|
||||||
|
| Email client | Thunderbird |
|
||||||
|
| Color picker | xcolor, gcolor3 |
|
||||||
|
| Docs/eBook | Evince, LibreOffice, Calibre |
|
||||||
|
| Design | Gimp, Krita |
|
||||||
|
| Productivity | Obsidian, Planify |
|
||||||
|
|
||||||
|
Чтоб узнать sha256 для гитхаб репы, пишем в терминал эту команду:
|
||||||
|
```sh
|
||||||
|
nix-prefetch-git link
|
||||||
|
```
|
||||||
|
|
||||||
|
Если хочется поменять цвета или шрифты в конфиге какой-то программы, но при ребилде получается конфликт, то дело в Stylix, который управляет системной темой и сам везде ставит шрифты и цвета. Если хочется заменить, не трогая stylix, то надо добавить `lib.mkForce` перед значением. Например так:
|
||||||
|
```nix
|
||||||
|
font = lib.mkForce "JetBrainsMono Nerd Font 11";
|
||||||
|
```
|
||||||
|
|
||||||
|
Узнать localhost виртуалки, чтоб конектиться по ssh:
|
||||||
|
```sh
|
||||||
|
ip a
|
||||||
|
```
|
||||||
|
|
||||||
|
В бутменю биоса надо ставить не ссд диск, а `nixos boot`. У меня иначе не работало
|
||||||
|
|
||||||
|
## Нюансы с 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. Всё это можно по разному комбинировать между собой.
|
||||||
|
|
||||||
|
### MangoHud
|
||||||
|
|
||||||
|
Мониторинг ресурсов для vulkan и opengl приложений. Показывает fps и нагрузку на пк, включая температуры цп и гп. Можно использовать как полноценные бенчмарки, логируя всю его инфу и визуализируя данные другой утилитой. Чтоб использовать, надо написать `mangehud приложение`, если запускать через терминал, или `mangohud %command%`, если использовать через steam. Если используется вместе с `gamescope`, то надо писать `gamescope --mangoapp`.
|
||||||
|
|
||||||
|
### gamemode
|
||||||
|
|
||||||
|
Оптимизатор линукса для игр. В параметры запуска игры в стиме пишешь `gamemoderun %command%` и всё работает.
|
||||||
|
|
||||||
|
### gamescope
|
||||||
|
|
||||||
|
SteamOS session compositing window manager. Можно назвать мини wm внутри wm (хотя можно и в tty запустить, без стороннего wm). Не совсем понимаю когда его надо использовать. Иногда, если у игры есть проблемы с обычным linux, то она может нормально запускаться через `gamescope`
|
||||||
|
|
||||||
|
### Параметры запуска Steam
|
||||||
|
|
||||||
|
Если в параметры запуска захочется добавить что-то помимо того, что я напишу, то надо учитывать порядок написания. Как я понял, если надо используется переменная, то её надо писать в начале. Например, если в игре не работает печать на русском языке, то надо в начало добавить `LC_ALL="ru_RU.UTF-8"`. Если же речь про стандартные параметры запуска стима, по типу `-dev` или `-novid`, то их надо писать после `%command%`. Слово `%command%` скорее всего является игрой, то есть команда для запуска игры. То есть синтаксис как в обычном терминале. Сначала переменные окружения, потом команда, потом параметры запуска через `-параметр`.
|
||||||
|
|
||||||
|
Параметры запуска для игр, чтоб использовать все доступные бафы, что я сделал:
|
||||||
|
Параметр запуска без использования gamescope - `mangohud gamemoderun %command%`.
|
||||||
|
Параметр запуска с использованием gamescope `gamescope --mangoapp gamemoderun %command%`.
|
||||||
|
|
||||||
|
Вот пример параметров запуска для Apex Legends: `mangohud gamemoderun %command% +exec autoexec.cfg -dev`
|
||||||
|
|
||||||
|
FSR в `proton-ge` включается только в фулскрине через `WINE_FULLSCREEN_FSR=1`. Регулировать резкость можно через переменную окружения `WINE_FULLSCREEN_FSR_STRENGTH=N`, где N - это уровень резкости изображения от 0 до 5. Чем выше значение, тем меньше резкость. По умолчанию установлено значение "2", рекомендуют использовать значение "3".
|
||||||
|
|
||||||
|
## Настройка мониторов
|
||||||
|
|
||||||
|
На иксах второй монитор может не работать или все мониторы могут сидеть на 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
|
||||||
|
|
||||||
|
## Запуск Waydroid на X11
|
||||||
|
|
||||||
|
Один раз написать в терминале `waydroid init`
|
||||||
|
|
||||||
|
- Запустить `weston`
|
||||||
|
- В его терминале написать `waydroid session start &`
|
||||||
|
- Потом `waydroid show-full-ui`
|
||||||
|
|
||||||
|
На weston всё работает сразу как надо. Но стоит изменить размеры окна, как waydroid ui пропадает. Приходится стопать и по новой запускать отображение
|
||||||
34
PROBLEMS.md
Normal file
34
PROBLEMS.md
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
Тут будет список проблем, с которыми я столкнулся при настройке nixos. Возможно кому-то пригодится
|
||||||
|
|
||||||
|
## Проблемы
|
||||||
|
|
||||||
|
- Некоторые симлинки, созданные через home-manager, могут быть перезаписаны другим софтом, удалив мои настройки
|
||||||
|
- `Mimetypes` удаляют симлинк. Поэтому я сделал отдельный файл в каталоге `shit` и буду копировать готовый файл целиком в нужный каталог
|
||||||
|
- Могут быть проблемы с TUN модом в xray/singbox/clash клиентах. В теории это исправлено в новых версиях системы через использование параметров. Но мне лень обновляться, я просто запускаю с рутом Throne бинарь, скачанный с гитахаба, прокинув нужные зависимости через nix-ld, который имитирует обычную иерархию файловой системы для рандомных прог с инета
|
||||||
|
- `Thunar` удаляет мой конфиг, даже если это не симлинк и даже если я перезапишу настройки в его же собственный файл. Приходится руками всё делать при каждой переустановке системы
|
||||||
|
- `Thunar` крашится при работе с более чем одним окном. Не всегда, но в самый не нужный момент. А `dolphin` тянет 10 терабайт гей порно в зависимости и выводит blowjob по среди экрана. Хз даже что делать. Все файловый менеджеры гавно
|
||||||
|
- `Thunar` криво показывает превью видео. Он генерит рандом кадр из видео в качестве превью, вместо того чтоб взять данные из метаданных, куда все закидывают реальное превью. Они считают, что лучше генерить превью каждый раз, чем взять уже готовое
|
||||||
|
|
||||||
|
Мелочи
|
||||||
|
- Пароли через rofi выдают меню ввода пароля от qt, но оно имеет светлую тему. Темы для qt приложений почти невозможно заставить нормально работать. Не могу починить и ладно
|
||||||
|
- В терминале ssh-agent палит мою почту. Но мб это только при первом запуске терминала
|
||||||
|
|
||||||
|
### Ребилд крашит систему
|
||||||
|
|
||||||
|
Эта проблема была раньше. Сейчас исправлена. Но заметку оставлю, вдруг пригодится в будущем
|
||||||
|
|
||||||
|
Ребилд системы через `switch` или `test` кладёт систему. Чёрный экран без возможности переключить tty через `ctrl + alt + F1-F7`. Можно юзать `boot`, чтоб после ребута пк применялось. Тогда не крашит и после ребута всё работает. Но лучше найти какой сервис виноват и исправить проблему нормально.
|
||||||
|
|
||||||
|
#### Потенциальный способ исправить проблему
|
||||||
|
|
||||||
|
Есть следующие два параметра:
|
||||||
|
- `systemd.services.<name>.restartIfChanged`
|
||||||
|
- `systemd.user.services.<name>.restartIfChanged`
|
||||||
|
|
||||||
|
Они указывают надо ли ребутать указанный сервис при ребилде системы. Мб надо туда что-то указать и сделать false
|
||||||
|
|
||||||
|
Я сделал это для одного сервиса в `nixos/configuration.nix`. Мне помогло. Но если будут ещё сервисы, ребилд на которых зависает и после него крашится система, то можно пробовать запретить рестарт при ребилде.
|
||||||
|
|
||||||
|
#### Реальный способ исправить проблему
|
||||||
|
|
||||||
|
Походу дело было в сервисе `cage`. Когда я его удалил, то всё стало работать нормально
|
||||||
446
README.md
446
README.md
|
|
@ -1,308 +1,27 @@
|
||||||
|
|
||||||
Эта ветка для моего пк сделана. Просто дотсы надо смотреть в ветке main
|
|
||||||
|
|
||||||
## Навигация
|
## Навигация
|
||||||
|
|
||||||
- [Бинды](#бинды)
|
|
||||||
- [Другие README файлы в этих дотсах](#другие-readme-файлы-в-этих-дотсах)
|
- [Другие README файлы в этих дотсах](#другие-readme-файлы-в-этих-дотсах)
|
||||||
- [Проблемы](#проблемы)
|
|
||||||
- [TODO](#todo)
|
- [TODO](#todo)
|
||||||
- [Описание](#описание)
|
|
||||||
- [Нюансы с JetBrains Toolbox](#нюансы-с-jetbrains-toolbox)
|
|
||||||
- [Настройки для игр](#настройки-для-игр)
|
|
||||||
- [MangeHud](#mangohud)
|
|
||||||
- [gamemode](#gamemode)
|
|
||||||
- [gamescope](#gamescope)
|
|
||||||
- [Параметры запуска Steam](#параметры-запуска-steam)
|
|
||||||
- [Настройки мониторов](#настройка-мониторов)
|
|
||||||
- [Системная тема на всех вебсайтах](#системная-тема-на-всех-вебсайтах)
|
|
||||||
- [Мини гайд по NixOS](#мини-гайд-по-nixos)
|
- [Мини гайд по NixOS](#мини-гайд-по-nixos)
|
||||||
- [Процесс установки](#процесс-установки)
|
- [Процесс установки](#процесс-установки)
|
||||||
- [Первый способ](#первый-способ)
|
- [Первый способ](#первый-способ)
|
||||||
- [Второй способ](#второй-способ)
|
- [Второй способ](#второй-способ)
|
||||||
- [После установки надо](#после-установки-надо)
|
- [После установки надо](#после-установки-надо)
|
||||||
- [Изменения для виртуалок](#изменения-для-виртуалок)
|
- [Изменения для виртуалок](#изменения-для-виртуалок)
|
||||||
- [Иконки](#иконки)
|
|
||||||
- [Темы](#темы)
|
|
||||||
|
|
||||||
|
|
||||||
## Бинды
|
|
||||||
|
|
||||||
Клавиша `Super` это клавиша `Win`
|
|
||||||
|
|
||||||
| Bspwm | Описание | Работает? |
|
|
||||||
| --------------------------------- | ------------------------------------------------------------------------------------------- | --------- |
|
|
||||||
| `Super + L` | Lock screen | Да |
|
|
||||||
| `Super + Q` | Quit. Выключить приложение | Да |
|
|
||||||
| `Super + Shift + Q` | Kill. Если приложение не отвечает, то убить его | Да |
|
|
||||||
| `Super + F` | Floating toggle | Да |
|
|
||||||
| `Super + Shift + F` | Tiled 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 + Backspace` | PowerMenu. Выключение пк | Да |
|
|
||||||
| `Super + Tab` | Как alt+tab, переключение окон. На нужный воркспейс само перекинет | Да |
|
|
||||||
| `Super + Alt + T` | Timer. Думаю сделать через утилиту timer |нет|
|
|
||||||
| `Super + Shift + N` | Notification history. История оповещений. Мб сделать только в баре кнопку? Мб не делать вообще |нет|
|
|
||||||
|
|
||||||
| 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 | Да |
|
|
||||||
| `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 | Да |
|
|
||||||
|
|
||||||
Так же есть бинд на зажим дальней боковой кнопки мыши. Если эту кнопку нажимать, то она работает как обычно. Если её зажать и начать двигать мышку, то вместо движения курсора будет плавный скрол. Обычно такое делают на трекболах без колеса мыши, но я люблю этот метод скрола на любом девайсе. Можно скролить с нужной скоростью и точностью куда надо без долгого кручения колеса.
|
|
||||||
|
|
||||||
## Другие README файлы в этих дотсах
|
## Другие README файлы в этих дотсах
|
||||||
|
|
||||||
|
- [Бинды системы](./BINDINGS.md)
|
||||||
|
- [Список базового софта в системе](./SOFTWARE.md)
|
||||||
|
- [Цвета и иконки тем, храню для себя](./THEMES.md)
|
||||||
|
- [Список известных проблем при настройке системы](./PROBLEMS.md)
|
||||||
- [Копия man page для bspwm с доп инфой](./modules/home-manager/wm/bspwm/bspwm.md)
|
- [Копия man page для bspwm с доп инфой](./modules/home-manager/wm/bspwm/bspwm.md)
|
||||||
- [Описание плагинов для mpv](./modules/home-manager/mpv/README.md)
|
- [Описание плагинов для mpv](./modules/home-manager/mpv/README.md)
|
||||||
- [NeoVim config](./nvim/README.md)
|
- [NeoVim config](./nvim/README.md)
|
||||||
|
|
||||||
## Проблемы
|
|
||||||
|
|
||||||
- Некоторые симлинки, созданные через home-manager, могут быть перезаписаны другим софтом, удалив мои настройки
|
|
||||||
- `Mimetypes` удаляют симлинк. Поэтому я сделал отдельный файл в каталоге `shit` и буду копировать готовый файл целиком в нужный каталог
|
|
||||||
- Не работает TUN мод во всех xray/singbox клиентах. Например nekoray пишет, что не удалось `setcap` при вводе пароля. Испробовал все доступные методы подключения, даже голый `singbox` через сервис никса. У меня просто пропадает инет в системе после конекта. Сейчас единственный рабочий метод, это скачать appimage nekoray с гитхаба, обязательно именно версии `3.26`, иначе не заработает, и запустить через sudo. И в настройках tun надо обязательно выключить `strick route`. Обычно я с ним сидел, но тут с ним проблемы и не работает ничего.
|
|
||||||
- `Gitui` выёбывается. Не может запушить, ошибка ssh появляется
|
|
||||||
- `Thunar` удаляет мой конфиг, даже если это не симлинк и даже если я перезапишу настройки в его же собственный файл. Приходится руками всё делать при каждой переустановке системы
|
|
||||||
- `Thunar` крашится при работе с более чем одним окном. Не всегда, но в самый не нужный момент. А `dolphin` тянет 10 терабайт гей порно в зависимости и выводит blowjob по среди экрана, так что я рот ебал. Хз даже что делать. Все файловый менеджеры гавно ебаное
|
|
||||||
- `Thunar` криво показывает превью видео. Это ебло дырявое генерит рандом кадр из видео в качестве превью. Ебантропы не могут взять данные из метаданных, куда все закидывают реальное превью. Они считают, что лучше генерить превью каждый ёбаный раз, чем взять уже готовое
|
|
||||||
- `polybar` и `bspwm` создали пидарасы ебаные бездарные. Одни ломают floating окна и не умеют нормально отображать все символы без ручного указания двух сотен шрифтов, другие не имеют документации и не могут нормально реализовать слои в wm. Ебланы блять. Все floating окна находятся под tiling окнами при запуске ебаного гей бара. Ебантропы не могут даже элементарную работу слоёв реализовать нормально. И эти два куска дерьма называют лучшими wm и status bar? Та нахуй они кому нужны с такими далбаёбами на разрабах. Иногда даже фулскрин находится под флоатингом, а флоатинг под тилингом. Ёбаный олигофрен создал этот bspwm
|
|
||||||
|
|
||||||
Мелочи
|
|
||||||
- Пароли через rofi выдают меню ввода пароля от qt, но оно имеет светлую тему. Ебал рот делать темы для qt, вечно всё через пизду работает
|
|
||||||
- В терминале ssh-agent палит мою почту. Но мб это только при первом запуске терминала
|
|
||||||
- В btop не работает статистика gpu. Установка зависимостей не помогла
|
|
||||||
- Не работает `git push` в `gitui`. Мб надо переподключить репу. Дело не в `ssh-agent`, его я исправил
|
|
||||||
- Не работает нечёткий поиск по истории комманд в терминале, если написать что-то и жать стрелку вверх
|
|
||||||
|
|
||||||
### Ребилд крашит систему
|
|
||||||
|
|
||||||
Эта проблема была раньше. Сейчас исправлена. Но заметку оставлю, вдруг пригодится в будущем
|
|
||||||
|
|
||||||
Ребилд системы через `switch` или `test` кладёт нахуй систему. Чёрный экран без возможности переключить tty через `ctrl + alt + F1-F7`. Можно юзать `boot`, чтоб после ребута пк применялось. Тогда не крашит и после ребута всё работает.
|
|
||||||
|
|
||||||
#### Потенциальный способ исправить проблему
|
|
||||||
|
|
||||||
Есть следующие два параметра:
|
|
||||||
- `systemd.services.<name>.restartIfChanged`
|
|
||||||
- `systemd.user.services.<name>.restartIfChanged`
|
|
||||||
|
|
||||||
Они указывают надо ли ребутать указанный сервис при ребилде системы. Мб надо туда что-то указать и сделать false
|
|
||||||
|
|
||||||
Я сделал это для одного сервиса в `nixos/configuration.nix`. Мне помогло. Но если будут ещё сервисы, ребилд на которых зависает и после него крашится система, то можно пробовать запретить рестарт при ребилде.
|
|
||||||
|
|
||||||
#### Реальный способ исправить проблему
|
|
||||||
|
|
||||||
Походу дело было в сервисе `cage`. Когда я его удалил, то всё стало работать нормально
|
|
||||||
|
|
||||||
## TODO
|
|
||||||
|
|
||||||
Надо сделать декларативную QT тему (ебал их рты). Сейчас у меня есть три каталог в каталоге `shit`. Их я могу скопировать в `~/.config`, нужная переменная окружения в `home.nix` стоит и всё заработает. Но это залупа. Другой человек не сможет это юзать мб. Потому что там в коде написан путь `/home/buliway`. Не всем же быть буливеями. Хотя это изи исправляется, потом сделаю. Но пока что я рот ебал тратить 3 дня на настройку темы бездарных далбаёбов на QT.
|
|
||||||
|
|
||||||
Надо сделать 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)
|
|
||||||
- Яркость экрана. Тоже ноуты. Хз надо ли
|
|
||||||
- Температура и нагрузка на гп
|
|
||||||
- Температура цп
|
|
||||||
- Блютуз. Не знаю отображается ли он сейчас. Не могу проверить, негде
|
|
||||||
|
|
||||||
Установить и настроить:
|
|
||||||
- i3 с его экосистемой софта. Чтоб тот же polybar был лишь на bspwm, а на i3 работал i3bar
|
|
||||||
- Sway. Мб сделать через ags
|
|
||||||
|
|
||||||
## Описание
|
|
||||||
|
|
||||||
Железо, на котором это работает:
|
|
||||||
- CPU: i5 10400f
|
|
||||||
- GPU: AMD RX6600
|
|
||||||
- RAM: 32gb (2x16) ddr4 3200
|
|
||||||
- Motherboard: MSI Z590-A PRO
|
|
||||||
- Два монитора 1920x1080 на 165 и 100 герц
|
|
||||||
|
|
||||||
Основной набор софта
|
|
||||||
|
|
||||||
Изначально я написал конфиги для `bspwm` + `polybar`. Но так как оба эти проги созданы далбаёбами бездарными, я перееду на `i3` + `i3bar`. В теории между ними можно переключаться при запуске пк, так что проблем быть не должно. Если какой-то wm надо выключить, чтоб не засирать систему, то это можно делать в `modules/home-manager/bundle.nix`
|
|
||||||
|
|
||||||
| Software | Name |
|
|
||||||
| ------------ | -------------------------------- |
|
|
||||||
| WM | bspwm/i3 |
|
|
||||||
| Hotkeys | sxhkd/i3 |
|
|
||||||
| Terminal | Alacritty, Kitty |
|
|
||||||
| Multiplexer | Zellij |
|
|
||||||
| Shell | oh-my-zsh with many plugins |
|
|
||||||
| Shell Prompt | Starship |
|
|
||||||
| Apps/Menus | Rofi |
|
|
||||||
| Bar | Polybar/i3bar |
|
|
||||||
| ScreenLock | betterlockscreen/i3lock |
|
|
||||||
| Notification | Dunst |
|
|
||||||
| Files | Thunar, Ranger |
|
|
||||||
| Images | qView, imv, feh |
|
|
||||||
| Video | mpv with plugins |
|
|
||||||
| Music | Strawberry, Picard, Mousai, spek |
|
|
||||||
| Browsers | Librewolf, Firefox, Chromium |
|
|
||||||
| Social | Discord, Telegram, Steam |
|
|
||||||
| Audio | PipeWire, pavucontrol |
|
|
||||||
| Color Theme | Gruvbox Dark Medium |
|
|
||||||
| Icons | Gruvbox Plus Dark |
|
|
||||||
| DM | LightDM |
|
|
||||||
| Compositor | Нет. Мб будет стоковый picom |
|
|
||||||
| Screenshare | OBS, Screenkey, ksnip |
|
|
||||||
| Code Editor | VSCode, JetBrains, nixvim, helix |
|
|
||||||
| Video Editor | Blender |
|
|
||||||
| Fetch | fastfetch |
|
|
||||||
| Torrent | qBittorrent |
|
|
||||||
| Email client | Thunderbird |
|
|
||||||
| Color picker | xcolor, gcolor3 |
|
|
||||||
| Docs/eBook | Evince, LibreOffice, Calibre |
|
|
||||||
| Design | Gimp, Krita |
|
|
||||||
| Productivity | Obsidian, Planify |
|
|
||||||
|
|
||||||
Чтоб узнать sha256 для гитхаб репы, пишем в терминал эту команду:
|
|
||||||
```sh
|
|
||||||
nix-prefetch-git link
|
|
||||||
```
|
|
||||||
|
|
||||||
Если хочется поменять цвета или шрифты в конфиге какой-то программы, но при ребилде получается конфликт, то дело в Stylix, который управляет системной темой и сам везде ставит шрифты и цвета. Если хочется заменить, не трогая stylix, то надо добавить `lib.mkForce` перед значением. Например так:
|
|
||||||
```nix
|
|
||||||
font = lib.mkForce "JetBrainsMono Nerd Font 11";
|
|
||||||
```
|
|
||||||
|
|
||||||
Узнать localhost виртуалки, чтоб конектиться по ssh:
|
|
||||||
```sh
|
|
||||||
ip a
|
|
||||||
```
|
|
||||||
|
|
||||||
В бутменю биоса надо ставить не ссд диск, а `nixos boot`. У меня иначе не работало
|
|
||||||
|
|
||||||
## Нюансы с 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. Всё это можно по разному комбинировать между собой.
|
|
||||||
|
|
||||||
### MangoHud
|
|
||||||
|
|
||||||
Мониторинг ресурсов для vulkan и opengl приложений. Показывает fps и нагрузку на пк, включая температуры цп и гп. Можно использовать как полноценные бенчмарки, логируя всю его инфу и визуализируя данные другой утилитой. Чтоб использовать, надо написать `mangehud приложение`, если запускать через терминал, или `mangohud %command%`, если использовать через steam. Если используется вместе с `gamescope`, то надо писать `gamescope --mangoapp`.
|
|
||||||
|
|
||||||
### gamemode
|
|
||||||
|
|
||||||
Оптимизатор линукса для игр
|
|
||||||
|
|
||||||
### gamescope
|
|
||||||
|
|
||||||
SteamOS session compositing window manager. Можно назвать мини wm внутри wm (хотя можно и в tty запустить, без стороннего wm). Не совсем понимаю когда его надо использовать. Иногда, если у игры есть проблемы с обычным linux, то она может нормально запускаться через `gamescope`
|
|
||||||
|
|
||||||
### Параметры запуска Steam
|
|
||||||
|
|
||||||
Если в параметры запуска захочется добавить что-то помимо того, что я напишу, то надо учитывать порядок написания. Как я понял, если надо используется переменная, то её надо писать в начале. Например, если в игре не работает печать на русском языке, то надо в начало добавить `LC_ALL="ru_RU.UTF-8"`. Если же речь про стандартные параметры запуска стима, по типу `-dev` или `-novid`, то их надо писать после `%command%`. Слово `%command%` скорее всего является игрой, тоесть команда для запуска игры. Тоесть синтаксис как в обычном терминале. Сначала переменные окружения, потом команда, потом параметры запуска через `-параметр`.
|
|
||||||
|
|
||||||
Параметры запуска для игр, чтоб использовать все доступные бафы, что я сделал:
|
|
||||||
Параметр запуска без использования gamescope - `mangohud gamemoderun %command%`.
|
|
||||||
Параметр запуска с использованием gamescop `gamescope --mangoapp gamemoderun %command%`.
|
|
||||||
|
|
||||||
Вот пример параметров запуска для Apex Legends: `mangohud gamemoderun %command% +exec autoexec.cfg -dev`
|
|
||||||
|
|
||||||
FSR в `proton-ge` включается только в фулскрине через `WINE_FULLSCREEN_FSR=1`. Регулировать резкость можно через переменную окружения `WINE_FULLSCREEN_FSR_STRENGTH=N`, где N - это уровень резкости изображения от 0 до 5. Чем выше значение, тем меньше резкость. По умолчанию установлено значение "2", рекомендуют использовать значение "3".
|
|
||||||
|
|
||||||
## Настройка мониторов
|
|
||||||
|
|
||||||
На иксах второй монитор может не работать или все мониторы могут сидеть на 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
|
|
||||||
|
|
||||||
## Мини гайд по NixOS
|
## Мини гайд по NixOS
|
||||||
|
|
||||||
- Одинаковые вещи могут делаться разными способами. Это норма. По началу меня это бесило, когда читал чужие дотсы
|
- Одинаковые вещи могут делаться разными способами. Это норма, ведь nix считается языком програмимрования. По началу меня это бесило, когда читал чужие дотсы
|
||||||
- Нюансы работы NixOS в [этом](https://www.youtube.com/watch?v=7f19R8BWUnU&t=960s) видео. Мне понравилось
|
- Нюансы работы NixOS в [этом](https://www.youtube.com/watch?v=7f19R8BWUnU&t=960s) видео. Мне понравилось
|
||||||
- [Плейлист](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://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 ветке, ибо параметры могут отличаться.
|
- Пакеты искать [тут](https://search.nixos.org/packages). Параметры для сток NixOS [тут](https://search.nixos.org/options). Параметры для home-manager [тут](https://home-manager-options.extranix.com/?query=&release=master). Для моих конфигов надо обязательно искать в unstable ветке, ибо параметры могут отличаться.
|
||||||
|
|
@ -346,7 +65,7 @@ sudo nano /etc/nixos/configuration.nix
|
||||||
sudo nixos-rebuild switch
|
sudo nixos-rebuild switch
|
||||||
```
|
```
|
||||||
|
|
||||||
Дальше есть два способа. Перед использованием любого из них я рекомендую сделать форк и внести следующие изменения в конфиг перед установкой (либо можно сделать гит клон и через nano внести изменения для первых трёх пунктов, остальное менять на готовой системе):
|
Дальше есть два способа. Перед использованием любого из них я рекомендую сделать форк и внести следующие изменения в конфиг перед установкой (либо можно сделать гит клон и через nano/vim внести изменения для первых трёх пунктов, остальное менять на готовой системе):
|
||||||
|
|
||||||
- Переменную `username` в `nixos/configuration.nix`.
|
- Переменную `username` в `nixos/configuration.nix`.
|
||||||
- `username` и `homeDirectory` в `nixos/home.nix`.
|
- `username` и `homeDirectory` в `nixos/home.nix`.
|
||||||
|
|
@ -355,7 +74,7 @@ sudo nixos-rebuild switch
|
||||||
А это можно донастроить уже в готовой системе
|
А это можно донастроить уже в готовой системе
|
||||||
- Путь до `home` в `shit/qt5ct/qt5ct.conf` и `shit/qt6ct/qt6ct.conf`.
|
- Путь до `home` в `shit/qt5ct/qt5ct.conf` и `shit/qt6ct/qt6ct.conf`.
|
||||||
- Параметры мониторов закомментированы в файле `modules/home-manager/wm/bspwm/bspwm.nix`. Можно указать по желанию. Команда xrandr покажет доступные значения и имена мониторов.
|
- Параметры мониторов закомментированы в файле `modules/home-manager/wm/bspwm/bspwm.nix`. Можно указать по желанию. Команда xrandr покажет доступные значения и имена мониторов.
|
||||||
- Если видеокарта от amd, то, чтоб не было тиринга, надо раскомментировать `videoDrivers` в `modules/nixos/xserver.nix`, `boot.initrd.kernelModules` и всю категорию настроек `amdgpu` в `modules/nixos/hardware.nix`.
|
- Если видеокарта не от amd, то, возможно, надо удалить `videoDrivers` в `modules/nixos/xserver.nix`, `boot.initrd.kernelModules` и всю категорию настроек `amdgpu` в `modules/nixos/hardware.nix`. Это настройки для amd gpu, чтоб не было тиринга на x11
|
||||||
- Если надо задать симлинки, то для этого есть файл `modules/home-manager/symlinks.nix`. Там сейчас мои симлинки, их лучше удалить. Чтоб файл заработал, надо раскомментировать `./symlinks.nix` в файле `modules/home-manager/bundle.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/filesystems.nix`. Там сейчас мой второй ссд. Чтоб файл заработал, надо раскомментировать `./filesystems.nix` в файле `modules/nixos/bundle.nix`.
|
||||||
- Если нужна гибернация, то её можно настроить в `modules/nixos/hibernate.nix`. Там надо указать uuid и офсет для swap файла. Чтоб файл заработал, надо раскомментировать `./hibernate.nix` в файле `modules/nixos/bundle.nix`.
|
- Если нужна гибернация, то её можно настроить в `modules/nixos/hibernate.nix`. Там надо указать uuid и офсет для swap файла. Чтоб файл заработал, надо раскомментировать `./hibernate.nix` в файле `modules/nixos/bundle.nix`.
|
||||||
|
|
@ -384,7 +103,7 @@ sudo nixos-rebuild boot --impure --flake ~/nixos-private-dots
|
||||||
|
|
||||||
## После установки надо
|
## После установки надо
|
||||||
|
|
||||||
Это заметка для меня. Каждый ставит то, что ему надо
|
Эта заметка частично для меня. Каждый ставит то, что ему надо
|
||||||
|
|
||||||
- Включить подкачку на 64 гига в `/etc/nixos/hardware-configuration.nix` через такой синтаксис:
|
- Включить подкачку на 64 гига в `/etc/nixos/hardware-configuration.nix` через такой синтаксис:
|
||||||
```nix
|
```nix
|
||||||
|
|
@ -396,7 +115,7 @@ sudo nixos-rebuild boot --impure --flake ~/nixos-private-dots
|
||||||
- Настроить гибренацию в `modules/nixos/hibernate.nix`
|
- Настроить гибренацию в `modules/nixos/hibernate.nix`
|
||||||
- Активировать скрипт в `shit` каталоге, чтоб скопировать нужные конфиги в нужные каталоги. Симлинки не работают
|
- Активировать скрипт в `shit` каталоге, чтоб скопировать нужные конфиги в нужные каталоги. Симлинки не работают
|
||||||
- Настроить приложения `Qt5 Settings`, `Qt6 Settings` и `Kvantum`. Там надо выбрать свою системную тему. Вроде всё интуитивно понятно будет. Можно попробовать обновить систему, в надежде, что системная тема `stylix` начнёт работать с приложениями `qt`. Для этого надо будет закомментить настройки `qt` в конфиге `stylix`.
|
- Настроить приложения `Qt5 Settings`, `Qt6 Settings` и `Kvantum`. Там надо выбрать свою системную тему. Вроде всё интуитивно понятно будет. Можно попробовать обновить систему, в надежде, что системная тема `stylix` начнёт работать с приложениями `qt`. Для этого надо будет закомментить настройки `qt` в конфиге `stylix`.
|
||||||
- Руками настроить `thunar`, бинды для `ksnip`, `discord`, `telegram`, `steam` и `strawberry`
|
- Руками настроить `thunar`, `discord`, `telegram`, `steam`, `strawberry` и бинды для `ksnip`
|
||||||
- Добавить gpg ключи
|
- Добавить gpg ключи
|
||||||
```sh
|
```sh
|
||||||
gpg --import /path/to/your-key.gpg
|
gpg --import /path/to/your-key.gpg
|
||||||
|
|
@ -415,7 +134,7 @@ gpg --edit-key ID-ключа
|
||||||
В файле `modules/nixos/virtualisation.nix` раскомментировать эти строки:
|
В файле `modules/nixos/virtualisation.nix` раскомментировать эти строки:
|
||||||
```diff
|
```diff
|
||||||
+ services = {
|
+ services = {
|
||||||
+ openssh.enable = true; # Потом удали. Это ставится на виртуалку, чтоб к ней конект по ssh работал.
|
+ openssh.enable = true; # Это ставится на виртуалку, чтоб к ней конект по ssh работал.
|
||||||
+ spice-vdagentd.enable = true; # Clipboard sharing
|
+ spice-vdagentd.enable = true; # Clipboard sharing
|
||||||
+ qemuGuest = {
|
+ qemuGuest = {
|
||||||
+ enable = true; # Fix resolution
|
+ enable = true; # Fix resolution
|
||||||
|
|
@ -430,149 +149,4 @@ gpg --edit-key ID-ключа
|
||||||
- xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
|
- xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
|
||||||
+ xrandr --output Virtual-1 --mode 1920x1080 --rate 60
|
+ 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 пропадает. Приходится стопать и по новой запускать отображение
|
|
||||||
|
|
||||||
|
|
||||||
## Иконки
|
|
||||||
|
|
||||||
Искать иконки для nerd шрифта можно [тут](https://www.nerdfonts.com/cheat-sheet).
|
|
||||||
|
|
||||||
Соберу сюда список nerd иконок, которые могут пригодиться. Для их отображения нужен специальный шрифт
|
|
||||||
|
|
||||||
CPU (мб не юзать, а писать текстом и cpu и gpu) -
|
|
||||||
|
|
||||||
RAM -
|
|
||||||
|
|
||||||
CapsLock -
|
|
||||||
|
|
||||||
Клавиатура - или
|
|
||||||
|
|
||||||
Громкость -
|
|
||||||
|
|
||||||
Яркость -
|
|
||||||
|
|
||||||
Календарь -
|
|
||||||
|
|
||||||
Выключение пк - ⏻
|
|
||||||
|
|
||||||
Приложения -
|
|
||||||
|
|
||||||
Блютуз -
|
|
||||||
|
|
||||||
Network -
|
|
||||||
|
|
||||||
Clipboard -
|
|
||||||
|
|
||||||
Оповещения (bell) -
|
|
||||||
|
|
||||||
Reload -
|
|
||||||
|
|
||||||
|
|
||||||
Wifi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Батарейки
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Батарейки зарядка
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Батарейки блютуз
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Температура
|
|
||||||
- Температура по цельсию
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Темы
|
|
||||||
|
|
||||||
У меня в vscode отображаются цвета. Так что я для себя сохраню разные варианты gruvbox
|
|
||||||
|
|
||||||
Цвет это имя цвета в stylix. Потом идёт название 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 |
|
|
||||||
|
|
||||||
Сравнение цветов моей темы gruvbox с другими темами
|
|
||||||
|
|
||||||
|Цвет |gruvbox-d-m| onedark | nord |catppuccin-mocha|catppuccin-latte|rose-pine|rose-pine-moon|tokyo-night-moon|everforest| dracula |
|
|
||||||
|------|-----------|---------|---------|----------------|----------------|---------|--------------|----------------|----------|---------|
|
|
||||||
|base00| #282828 | #282c34 | #2E3440 | #1e1e2e | #eff1f5 | #191724 | #232136 | #222436 | #2d353b | #282a36 |
|
|
||||||
|base01| #3c3836 | #353b45 | #3B4252 | #181825 | #e6e9ef | #1f1d2e | #2a273f | #1e2030 | #343f44 | #363447 |
|
|
||||||
|base02| #504945 | #3e4451 | #434C5E | #313244 | #ccd0da | #26233a | #393552 | #2d3f76 | #475258 | #44475a |
|
|
||||||
|base03| #665c54 | #545862 | #4C566A | #45475a | #bcc0cc | #6e6a86 | #6e6a86 | #636da6 | #859289 | #6272a4 |
|
|
||||||
|base04| #bdae93 | #565c64 | #D8DEE9 | #585b70 | #acb0be | #908caa | #908caa | #828bb8 | #9da9a0 | #9ea8c7 |
|
|
||||||
|base05| #d5c4a1 | #abb2bf | #E5E9F0 | #cdd6f4 | #4c4f69 | #e0def4 | #e0def4 | #3b4261 | #d3c6aa | #f8f8f2 |
|
|
||||||
|base06| #ebdbb2 | #b6bdca | #ECEFF4 | #f5e0dc | #dc8a78 | #e0def4 | #e0def4 | #828bb8 | #e6e2cc | #f0f1f4 |
|
|
||||||
|base07| #fbf1c7 | #c8ccd4 | #8FBCBB | #b4befe | #7287fd | #524f67 | #56526e | #c8d3f5 | #fdf6e3 | #ffffff |
|
|
||||||
|base08| #fb4934 | #e06c75 | #BF616A | #f38ba8 | #d20f39 | #eb6f92 | #eb6f92 | #ff757f | #e67e80 | #ff5555 |
|
|
||||||
|base09| #fe8019 | #d19a66 | #D08770 | #fab387 | #fe640b | #f6c177 | #f6c177 | #ffc777 | #e69875 | #ffb86c |
|
|
||||||
|base0A| #fabd2f | #e5c07b | #EBCB8B | #f9e2af | #df8e1d | #ebbcba | #ea9a97 | #ffc777 | #dbbc7f | #f1fa8c |
|
|
||||||
|base0B| #b8bb26 | #98c379 | #A3BE8C | #a6e3a1 | #40a02b | #31748f | #3e8fb0 | #c3e88d | #a7c080 | #50fa7b |
|
|
||||||
|base0C| #8ec07c | #56b6c2 | #88C0D0 | #94e2d5 | #179299 | #9ccfd8 | #9ccfd8 | #86e1fc | #83c092 | #8be9fd |
|
|
||||||
|base0D| #83a598 | #61afef | #81A1C1 | #89b4fa | #1e66f5 | #c4a7e7 | #c4a7e7 | #82aaff | #7fbbb3 | #80bfff |
|
|
||||||
|base0E| #d3869b | #c678dd | #B48EAD | #cba6f7 | #8839ef | #f6c177 | #f6c177 | #fca7ea | #d699b6 | #ff79c6 |
|
|
||||||
|base0F| #d65d0e | #be5046 | #5E81AC | #f2cdcd | #dd7878 | #524f67 | #56526e | #c53b53 | #9da9a0 | #bd93f9 |
|
|
||||||
|
|
||||||
Цветовая схема **Base16** используется для унификации цветовых тем в разных приложениях. Она определяет 16 базовых цветов, каждый из которых играет определённую роль. Вот основные цвета и их назначения:
|
|
||||||
|
|
||||||
- **Base00** – **Background**: Основной фоновый цвет.
|
|
||||||
- **Base01** – **Lighter Background**: Более светлый цвет для фона, часто используется для элементов вроде выделенных областей.
|
|
||||||
- **Base02** – **Selection Background**: Цвет фона выделений, обычно для текста или других активных областей.
|
|
||||||
- **Base03** – **Comments/Inactive Text**: Цвет для комментариев или неактивного текста, обычно более тусклый или нейтральный.
|
|
||||||
- **Base04** – **Dark Foreground**: Тёмный текст на светлом фоне или для элементов UI.
|
|
||||||
- **Base05** – **Default Foreground**: Основной цвет текста.
|
|
||||||
- **Base06** – **Light Foreground**: Более светлый текст, используется на более тёмных элементах.
|
|
||||||
- **Base07** – **Light Background/Foreground Accent**: Самый светлый цвет, часто используется для акцентированных областей или фона текста.
|
|
||||||
- **Base08** – **Variables/Errors**: Акцентный цвет для переменных или ошибок. Часто красный.
|
|
||||||
- **Base09** – **Integers/Warnings**: Используется для целых чисел или предупреждений. Оранжевый.
|
|
||||||
- **Base0A** – **Booleans/Keys**: Акцентный цвет для логических значений или ключей. Жёлтый.
|
|
||||||
- **Base0B** – **Strings/Success**: Цвет для строк или успешных операций. Зелёный.
|
|
||||||
- **Base0C** – **Support/Functions**: Цвет для поддерживающих элементов, функций или специальных значений. Бирюзовый.
|
|
||||||
- **Base0D** – **Keywords/Declarations**: Используется для ключевых слов или деклараций. Синий.
|
|
||||||
- **Base0E** – **Class Names/Constructors**: Акцентный цвет для имён классов или конструкторов. Фиолетовый.
|
|
||||||
- **Base0F** – **Deprecated Elements/Exceptions**: Обычно используется для устаревших элементов или исключений. Коричневый.
|
|
||||||
|
|
||||||
Эти цвета обеспечивают чёткую структуру для создания тем, где легко отличить синтаксические элементы или UI-компоненты.
|
|
||||||
0
SOFTWARE.md
Normal file
0
SOFTWARE.md
Normal file
130
THEMES.md
Normal file
130
THEMES.md
Normal file
|
|
@ -0,0 +1,130 @@
|
||||||
|
|
||||||
|
## Themes
|
||||||
|
|
||||||
|
У меня в IDE отображаются цвета. Так что я для себя сохраню разные варианты gruvbox
|
||||||
|
|
||||||
|
Цвет это имя цвета в stylix. Потом идёт название 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 |
|
||||||
|
|
||||||
|
Сравнение цветов моей темы gruvbox с другими темами
|
||||||
|
|
||||||
|
|Цвет |gruvbox-d-m| onedark | nord |catppuccin-mocha|catppuccin-latte|rose-pine|rose-pine-moon|tokyo-night-moon|everforest| dracula |
|
||||||
|
|------|-----------|---------|---------|----------------|----------------|---------|--------------|----------------|----------|---------|
|
||||||
|
|base00| #282828 | #282c34 | #2E3440 | #1e1e2e | #eff1f5 | #191724 | #232136 | #222436 | #2d353b | #282a36 |
|
||||||
|
|base01| #3c3836 | #353b45 | #3B4252 | #181825 | #e6e9ef | #1f1d2e | #2a273f | #1e2030 | #343f44 | #363447 |
|
||||||
|
|base02| #504945 | #3e4451 | #434C5E | #313244 | #ccd0da | #26233a | #393552 | #2d3f76 | #475258 | #44475a |
|
||||||
|
|base03| #665c54 | #545862 | #4C566A | #45475a | #bcc0cc | #6e6a86 | #6e6a86 | #636da6 | #859289 | #6272a4 |
|
||||||
|
|base04| #bdae93 | #565c64 | #D8DEE9 | #585b70 | #acb0be | #908caa | #908caa | #828bb8 | #9da9a0 | #9ea8c7 |
|
||||||
|
|base05| #d5c4a1 | #abb2bf | #E5E9F0 | #cdd6f4 | #4c4f69 | #e0def4 | #e0def4 | #3b4261 | #d3c6aa | #f8f8f2 |
|
||||||
|
|base06| #ebdbb2 | #b6bdca | #ECEFF4 | #f5e0dc | #dc8a78 | #e0def4 | #e0def4 | #828bb8 | #e6e2cc | #f0f1f4 |
|
||||||
|
|base07| #fbf1c7 | #c8ccd4 | #8FBCBB | #b4befe | #7287fd | #524f67 | #56526e | #c8d3f5 | #fdf6e3 | #ffffff |
|
||||||
|
|base08| #fb4934 | #e06c75 | #BF616A | #f38ba8 | #d20f39 | #eb6f92 | #eb6f92 | #ff757f | #e67e80 | #ff5555 |
|
||||||
|
|base09| #fe8019 | #d19a66 | #D08770 | #fab387 | #fe640b | #f6c177 | #f6c177 | #ffc777 | #e69875 | #ffb86c |
|
||||||
|
|base0A| #fabd2f | #e5c07b | #EBCB8B | #f9e2af | #df8e1d | #ebbcba | #ea9a97 | #ffc777 | #dbbc7f | #f1fa8c |
|
||||||
|
|base0B| #b8bb26 | #98c379 | #A3BE8C | #a6e3a1 | #40a02b | #31748f | #3e8fb0 | #c3e88d | #a7c080 | #50fa7b |
|
||||||
|
|base0C| #8ec07c | #56b6c2 | #88C0D0 | #94e2d5 | #179299 | #9ccfd8 | #9ccfd8 | #86e1fc | #83c092 | #8be9fd |
|
||||||
|
|base0D| #83a598 | #61afef | #81A1C1 | #89b4fa | #1e66f5 | #c4a7e7 | #c4a7e7 | #82aaff | #7fbbb3 | #80bfff |
|
||||||
|
|base0E| #d3869b | #c678dd | #B48EAD | #cba6f7 | #8839ef | #f6c177 | #f6c177 | #fca7ea | #d699b6 | #ff79c6 |
|
||||||
|
|base0F| #d65d0e | #be5046 | #5E81AC | #f2cdcd | #dd7878 | #524f67 | #56526e | #c53b53 | #9da9a0 | #bd93f9 |
|
||||||
|
|
||||||
|
Цветовая схема **Base16** используется для унификации цветовых тем в разных приложениях. Она определяет 16 базовых цветов, каждый из которых играет определённую роль. Вот основные цвета и их назначения:
|
||||||
|
|
||||||
|
- **Base00** – **Background**: Основной фоновый цвет.
|
||||||
|
- **Base01** – **Lighter Background**: Более светлый цвет для фона, часто используется для элементов вроде выделенных областей.
|
||||||
|
- **Base02** – **Selection Background**: Цвет фона выделений, обычно для текста или других активных областей.
|
||||||
|
- **Base03** – **Comments/Inactive Text**: Цвет для комментариев или неактивного текста, обычно более тусклый или нейтральный.
|
||||||
|
- **Base04** – **Dark Foreground**: Тёмный текст на светлом фоне или для элементов UI.
|
||||||
|
- **Base05** – **Default Foreground**: Основной цвет текста.
|
||||||
|
- **Base06** – **Light Foreground**: Более светлый текст, используется на более тёмных элементах.
|
||||||
|
- **Base07** – **Light Background/Foreground Accent**: Самый светлый цвет, часто используется для акцентированных областей или фона текста.
|
||||||
|
- **Base08** – **Variables/Errors**: Акцентный цвет для переменных или ошибок. Часто красный.
|
||||||
|
- **Base09** – **Integers/Warnings**: Используется для целых чисел или предупреждений. Оранжевый.
|
||||||
|
- **Base0A** – **Booleans/Keys**: Акцентный цвет для логических значений или ключей. Жёлтый.
|
||||||
|
- **Base0B** – **Strings/Success**: Цвет для строк или успешных операций. Зелёный.
|
||||||
|
- **Base0C** – **Support/Functions**: Цвет для поддерживающих элементов, функций или специальных значений. Бирюзовый.
|
||||||
|
- **Base0D** – **Keywords/Declarations**: Используется для ключевых слов или деклараций. Синий.
|
||||||
|
- **Base0E** – **Class Names/Constructors**: Акцентный цвет для имён классов или конструкторов. Фиолетовый.
|
||||||
|
- **Base0F** – **Deprecated Elements/Exceptions**: Обычно используется для устаревших элементов или исключений. Коричневый.
|
||||||
|
|
||||||
|
Эти цвета обеспечивают чёткую структуру для создания тем, где легко отличить синтаксические элементы или UI-компоненты.
|
||||||
|
|
||||||
|
## Icons
|
||||||
|
|
||||||
|
Искать иконки для nerd шрифта можно [тут](https://www.nerdfonts.com/cheat-sheet).
|
||||||
|
|
||||||
|
Соберу сюда список nerd иконок, которые могут пригодиться. Для их отображения нужен специальный шрифт
|
||||||
|
|
||||||
|
CPU (мб не юзать, а писать текстом и cpu и gpu) -
|
||||||
|
|
||||||
|
RAM -
|
||||||
|
|
||||||
|
CapsLock -
|
||||||
|
|
||||||
|
Клавиатура - или
|
||||||
|
|
||||||
|
Громкость -
|
||||||
|
|
||||||
|
Яркость -
|
||||||
|
|
||||||
|
Календарь -
|
||||||
|
|
||||||
|
Выключение пк - ⏻
|
||||||
|
|
||||||
|
Приложения -
|
||||||
|
|
||||||
|
Блютуз -
|
||||||
|
|
||||||
|
Network -
|
||||||
|
|
||||||
|
Clipboard -
|
||||||
|
|
||||||
|
Оповещения (bell) -
|
||||||
|
|
||||||
|
Reload -
|
||||||
|
|
||||||
|
|
||||||
|
Wifi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Батарейки
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Батарейки зарядка
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Батарейки блютуз
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Температура
|
||||||
|
- Температура по цельсию
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Тут будут файлы, которые больше не нужны. Но может быть они мне пригодятся в будущем.
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
programs.chromium = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# Пока что передумал настраивать браузер. Бекаплю каталог целиком
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
programs.firefox = { # Пока что передумал настраивать браузер. Бекаплю каталог целиком
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# profiles.buliway = {
|
|
||||||
|
|
||||||
# search = {
|
|
||||||
# engines = {
|
|
||||||
|
|
||||||
# };
|
|
||||||
|
|
||||||
# force = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# nativeMessagingHosts.ff2mpv = true; # Чтоб ff2mpv работал
|
|
||||||
|
|
||||||
# settings = {
|
|
||||||
# # "extensions.autoDisableScopes" = 0; # To automatically enable extensions
|
|
||||||
# "browser.bookmarks.openInTabClosesMenu" = false;
|
|
||||||
# "browser.tabs.loadBookmarksInBackground" = true;
|
|
||||||
# "layout.css.has-selector.enabled" = true;
|
|
||||||
# # https://github.com/K3V1991/Disable-Firefox-Telemetry-and-Data-Collection
|
|
||||||
# "browser.newtabpage.activity-stream.feeds.telemetry" = false;
|
|
||||||
# "browser.newtabpage.activity-stream.telemetry" = false;
|
|
||||||
# "datareporting.healthreport.uploadEnabled" = false;
|
|
||||||
# "datareporting.policy.dataSubmissionEnabled" = false;
|
|
||||||
# "toolkit.telemetry.archive.enabled" = false;
|
|
||||||
# "toolkit.telemetry.bhrPing.enabled" = false;
|
|
||||||
# "toolkit.telemetry.enabled" = false;
|
|
||||||
# "toolkit.telemetry.firstShutdownPing.enabled" = false;
|
|
||||||
# "toolkit.telemetry.newProfilePing.enabled" = false;
|
|
||||||
# "toolkit.telemetry.reportingpolicy.firstRun" = false;
|
|
||||||
# "toolkit.telemetry.server" = "";
|
|
||||||
# "toolkit.telemetry.shutdownPingSender.enabled" = false;
|
|
||||||
# "toolkit.telemetry.unified" = false;
|
|
||||||
# "toolkit.telemetry.updatePing.enabled" = false;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
{ pkgs, ... }: {
|
|
||||||
programs.librewolf = { # Пока что передумал настраивать браузер. Бекаплю каталог целиком
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# settings = { # Надо из about:config записать сюда свои изменения
|
|
||||||
# "browser.bookmarks.openInTabClosesMenu" = false; # Не закрывать каталог закладок при открытии через СКМ? Не помню
|
|
||||||
# "browser.tabs.loadBookmarksInBackground" = true; # Не перекидывать меня сразу на открытую закладку через СКМ? Не помню
|
|
||||||
# "layout.css.has-selector.enabled" = true; # Некоторые кастом стили это требуют
|
|
||||||
|
|
||||||
# # General
|
|
||||||
|
|
||||||
# # # Search (Если надо вернуть гугл поисковик в стоке)
|
|
||||||
# # "browser.policies.runOncePerModification.extensionsUninstall" = [ # Удалить расширения
|
|
||||||
# # "amazondotcom@search.mozilla.org"
|
|
||||||
# # "ebay@search.mozilla.org"
|
|
||||||
# # "twitter@search.mozilla.org"
|
|
||||||
# # ];
|
|
||||||
# # "browser.policies.runOncePerModification.removeSearchEngines" = [ # Удалить поисковые движки
|
|
||||||
# # "Amazon.com"
|
|
||||||
# # "eBay"
|
|
||||||
# # "Twitter"
|
|
||||||
# # ];
|
|
||||||
# # "browser.policies.runOncePerModification.setDefaultSearchEngine" = "Google"; # Стандартный поисковик
|
|
||||||
|
|
||||||
# # Privacy & Security
|
|
||||||
|
|
||||||
# # LibreWolf
|
|
||||||
# "clipboard.autocopy" = false; # Выкл копирование колесом мыши
|
|
||||||
# "middlemouse.paste" = false; # Выкл копирование колесом мыши
|
|
||||||
# "network.dns.disableIPv6" = true; # Выкл ivp6
|
|
||||||
# "privacy.resistFingerprinting" = false; # Лайтовое и мб не ломает работу сайтов
|
|
||||||
# "privacy.fingerprintingProtection" = false; # Хардовее и может ломать работу сайтов?
|
|
||||||
# "webgl.disabled" = false; # Включить WebGL
|
|
||||||
|
|
||||||
# # Extensions
|
|
||||||
# "browser.policies.runOncePerModification.extensionsInstall" = [ # Установка расширений
|
|
||||||
# "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi" # uBlock
|
|
||||||
# "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger/latest.xpi" # Privacy Badger
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
|
|
||||||
# Чтоб ff2mpv работал. Не надо юзать их скрипт с гитхаба
|
|
||||||
# Надо будет потом написать "nix-build -A ff2mpv", чтоб проверить реальный путь до ff2mpv бинаря
|
|
||||||
# home.file.".librewolf/native-messaging-hosts/ff2mpv.json".text = ''
|
|
||||||
# {
|
|
||||||
# "name": "ff2mpv",
|
|
||||||
# "description": "ff2mpv's external manifest",
|
|
||||||
# "path": "${pkgs.ff2mpv}/bin/ff2mpv.py",
|
|
||||||
# "type": "stdio",
|
|
||||||
# "allowed_extensions": ["ff2mpv@yossarian.net"]
|
|
||||||
# }
|
|
||||||
# '';
|
|
||||||
|
|
||||||
# Ниже сделать настройки расширений декларативными
|
|
||||||
# home.file.".librewolf/?".source = ./?;
|
|
||||||
}
|
|
||||||
105
archive/bspwmrc
105
archive/bspwmrc
|
|
@ -1,105 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Дефолт конфиг https://github.com/baskerville/bspwm/blob/master/examples/bspwmrc
|
|
||||||
# Описание настроек можно найти тут https://manpages.debian.org/testing/bspwm/bspc.1.en.html
|
|
||||||
# Или через "man bspc" в терминале
|
|
||||||
# Или в ./bspwm.md
|
|
||||||
# https://my-take-on.tech/2020/07/03/some-tricks-for-sxhkd-and-bspwm/
|
|
||||||
|
|
||||||
################
|
|
||||||
## Автозапуск ##
|
|
||||||
################
|
|
||||||
|
|
||||||
# Это по сути терминал. Пишем то, как запускается прога через терминал и в конце & обязательно
|
|
||||||
|
|
||||||
# # Как я понял, их не надо запускать, ведь они активированы через services..enable = true;
|
|
||||||
# # Если в nixos что-то включается через services, а не через programs, то nixos сам отвечает за автозапуск сервисов
|
|
||||||
# pgrep -x sxhkd > /dev/null || sxhkd & # Запускаем sxhkd если он не запущен
|
|
||||||
# pgrep -x polybar > /dev/null || polybar & # Запускаем polybar если он не запущен
|
|
||||||
# pgrep -x dunst > /dev/null || dunst & # Запускаем dunst если он не запущен
|
|
||||||
|
|
||||||
# Изменить настройки для основного монитора. Мб вместе с --primary надо
|
|
||||||
xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165
|
|
||||||
# Изменить настройки для второго (правого) монитора
|
|
||||||
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
|
|
||||||
|
|
||||||
ksnip &
|
|
||||||
# nekoray &
|
|
||||||
# obsidian &
|
|
||||||
# planify &
|
|
||||||
lxqt-policykit-agent &
|
|
||||||
|
|
||||||
# Я ебал рот видеть инет в трее. Замени эту ёбань на rofi и отдельную кнопку в polybar
|
|
||||||
nm-applet &
|
|
||||||
|
|
||||||
#########################
|
|
||||||
## Настройки мониторов ##
|
|
||||||
#########################
|
|
||||||
|
|
||||||
# Получаем имена активных мониторов
|
|
||||||
MONITORS=( $(xrandr --listactivemonitors | grep -E '^ [0-9]+:' | cut -d' ' -f6 | sed 's/\n/ /') )
|
|
||||||
|
|
||||||
# Если переменная MONITOR уже задана, то используется её значение.
|
|
||||||
# Если она не задана (то есть пуста или не существует), то используется первый элемент из массива MONITORS (то есть, первый активный монитор).
|
|
||||||
# Это гарантирует, что переменная MONITOR всегда будет содержать значение: либо установленное ранее, либо первый активный монитор по умолчанию.
|
|
||||||
# ":-" Это оператор в Bash, который используется для установки значения по умолчанию. Если переменная не задана или пуста, используется значение после :-
|
|
||||||
MONITOR="${MONITOR:-${MONITORS[0]}}"
|
|
||||||
|
|
||||||
# Для запуска приложений на втором мониторе, если он доступен. Если второго монитора нет, используем первый.
|
|
||||||
MONITOR2="${MONITORS[1]:-${MONITORS[0]}}"
|
|
||||||
|
|
||||||
# # Устанавливаем рабочие столы с именами от 1 до 10 для каждого монитора
|
|
||||||
for mon in ${MONITORS[@]}; do
|
|
||||||
bspc monitor $mon -d {1,2,3,4,5,6,7,8,9,10}
|
|
||||||
done
|
|
||||||
|
|
||||||
# Устанавливаем рабочие столы с именами от 1 до 10 для каждого монитора
|
|
||||||
#bspc monitor -d 1 2 3 4 5 6 7 8 9 10 # Можно заменить на {1,2,3,4,5,6,7,8,9,10}
|
|
||||||
|
|
||||||
# Настройка автоматического удаления настроек для отключённых и отсоединённых мониторов
|
|
||||||
bspc config remove_disabled_monitors false
|
|
||||||
bspc config remove_unplugged_monitors false
|
|
||||||
|
|
||||||
#####################
|
|
||||||
## Настройки bspwm ##
|
|
||||||
#####################
|
|
||||||
|
|
||||||
# Syntax - bspc config [-m MONITOR_SEL|-d DESKTOP_SEL|-n NODE_SEL] <setting> [<value>]
|
|
||||||
|
|
||||||
# Устанавливает ширину границ окон в 2 пикселя.
|
|
||||||
bspc config border_width 2
|
|
||||||
|
|
||||||
# Задаёт расстояние между окнами (отступ) в 5 пикселей.
|
|
||||||
bspc config window_gap 5
|
|
||||||
|
|
||||||
# Настраивает коэффициент разделения окон при их разделении. Значение 0.52 означает, что при разделении окно будет занимать 52% доступного пространства.
|
|
||||||
bspc config split_ratio 0.52
|
|
||||||
|
|
||||||
# В режиме monocle (максимизация окна на весь экран) границы окон будут скрыты.
|
|
||||||
bspc config borderless_monocle true
|
|
||||||
|
|
||||||
# В режиме monocle будет отсутствовать отступ между окнами.
|
|
||||||
bspc config gapless_monocle true
|
|
||||||
|
|
||||||
# Eсли вы активируете режим "monocle" на одном мониторе, другие мониторы остаются в обычном режиме
|
|
||||||
bspc config single_monocle false
|
|
||||||
|
|
||||||
# Фокусировка следует за курсором
|
|
||||||
bspc config focus_follows_pointer true
|
|
||||||
|
|
||||||
|
|
||||||
###############################
|
|
||||||
## Поведение конкретных окон ##
|
|
||||||
###############################
|
|
||||||
|
|
||||||
|
|
||||||
# Yдаляет все существующие правила для всех окон
|
|
||||||
# bspc rule -r '*'
|
|
||||||
|
|
||||||
bspc rule -a "polybar" layer=above
|
|
||||||
|
|
||||||
bspc rule -a "Screenkey" manage=off
|
|
||||||
|
|
||||||
bspc rule -a "ksnip" state=floating center=true focus=on rectangle=1600x900+0+0
|
|
||||||
bspc rule -a "org.kde.ark" state=floating center=true focus=on rectangle=1200x800+0+0
|
|
||||||
bspc rule -a "floating-terminal" state=floating center=true focus=on rectangle=1200x800+0+0
|
|
||||||
|
|
@ -1,121 +0,0 @@
|
||||||
# Команды для терминала
|
|
||||||
# Узнать тип файла - xdg-mime query filetype foo.pdf
|
|
||||||
# Узнать нынешнее дефолт приложения - xdg-mime query default application/pdf
|
|
||||||
# Узнать имя приложения. Для примера взять evince - fd evince.desktop /
|
|
||||||
# Выведет пути, по которым можно понять как называется приложение
|
|
||||||
# В список [] можно через пробел добавить другие варианты. Если первая прога не откроет, то попытается вторая
|
|
||||||
# Список mime types смотрел тут https://mimetype.io/all-types
|
|
||||||
# Нагуглить значение "x-scheme-handler" невозможно. Как я понял, это кастом типы
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# Как система готова, то замени имена прог на реальные. Сейчас на абум стоят #
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
{
|
|
||||||
xdg.mimeApps = { # Конфиг для `~/.config/mimeapps.list`
|
|
||||||
enable = true;
|
|
||||||
defaultApplications = { # Стандартные приложения для открытия нужного файла
|
|
||||||
# Browser
|
|
||||||
"application/x-extension-htm" = [ "librewolf.desktop" ];
|
|
||||||
"application/x-extension-html" = [ "librewolf.desktop" ];
|
|
||||||
"application/x-extension-shtml" = [ "librewolf.desktop" ];
|
|
||||||
"application/x-extension-xht" = [ "librewolf.desktop" ];
|
|
||||||
"application/x-extension-xhtml" = [ "librewolf.desktop" ];
|
|
||||||
"application/xhtml+xml" = [ "librewolf.desktop" ];
|
|
||||||
"x-scheme-handler/about" = [ "librewolf.desktop" ];
|
|
||||||
"x-scheme-handler/chrome" = [ "librewolf.desktop" ];
|
|
||||||
"x-scheme-handler/http" = [ "librewolf.desktop" ];
|
|
||||||
"x-scheme-handler/https" = [ "librewolf.desktop" ];
|
|
||||||
"x-scheme-handler/unknown" = [ "librewolf.desktop" ];
|
|
||||||
# Images
|
|
||||||
"image/*" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/avif" = [ "imv.desktop" "qview.desktop" ];
|
|
||||||
"image/gif" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/jpeg" = [ "qview.desktop" "imv.desktop" ]; # Обычный jpeg, прогрузка сверху вниз
|
|
||||||
"image/pjpeg" = [ "qview.desktop" "imv.desktop" ]; # Сначала размытый и постепенной лучше видно, для медленного инета
|
|
||||||
"image/apng" = [ "qview.desktop" "imv.desktop" ]; # Анимированный png
|
|
||||||
"image/png" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/svg+xml" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/webp" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/x-icon" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/vnd.microsoft.icon" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
# Video
|
|
||||||
"video/*" = [ "mpv.desktop" ];
|
|
||||||
"video/mp4" = [ "mpv.desktop" ];
|
|
||||||
"video/mpeg" = [ "mpv.desktop" ];
|
|
||||||
"video/quicktime" = [ "mpv.desktop" ];
|
|
||||||
"video/webm" = [ "mpv.desktop" ];
|
|
||||||
"video/x-matroska" = [ "mpv.desktop" ];
|
|
||||||
# Audio
|
|
||||||
"audio/*" = [ "mpv.desktop" ];
|
|
||||||
"audio/aac" = [ "mpv.desktop" ];
|
|
||||||
"audio/flac" = [ "mpv.desktop" ];
|
|
||||||
"audio/mp4" = [ "mpv.desktop" ];
|
|
||||||
"audio/mpeg" = [ "mpv.desktop" ];
|
|
||||||
"audio/ogg" = [ "mpv.desktop" ];
|
|
||||||
"audio/opus" = [ "mpv.desktop" ];
|
|
||||||
"audio/vnd.wav" = [ "mpv.desktop" ];
|
|
||||||
"audio/webm" = [ "mpv.desktop" ];
|
|
||||||
"audio/x-matroska" = [ "mpv.desktop" ];
|
|
||||||
"audio/x-mpegurl" = [ "mpv.desktop" ]; # Для .m3u. Это файл-плейлист
|
|
||||||
"audio/x-opus+ogg" = [ "mpv.desktop" ]; # What's this? Why not "audio/ogg" and "audio/opus"?
|
|
||||||
# Text
|
|
||||||
"text/*" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/css" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/csv" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/html" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
|
|
||||||
"text/javascript" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/markdown" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/plain" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/x-asm" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/x-c" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/x-python" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"application/json" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
|
|
||||||
"application/x-sh" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"application/x-shellscript" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"application/xml" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"application/yaml" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
# Мб потом добавить для docs варианты и разные виды архивов и ebook
|
|
||||||
# Other
|
|
||||||
"application/pdf" = [ "org.gnome.Evince.desktop" ];
|
|
||||||
"application/x-zerosize" = [ "nvim.desktop" "code.desktop" ]; # Файл нулевого размера
|
|
||||||
"application/zip" = [ "ark.desktop" ];
|
|
||||||
"application/x-bittorrent" = [ "qbittorrent.desktop" ];
|
|
||||||
"x-scheme-handler/magnet" = [ "qbittorrent.desktop" ];
|
|
||||||
"inode/directory" = [ "thunar.desktop" ];
|
|
||||||
"x-scheme-handler/mailto" = [ "thunderbird.desktop" ];
|
|
||||||
"x-scheme-handler/jetbrains" = [ "jetbrains-toolbox.desktop" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
associations.added = { # Дополнительные приложения для нужного файла. Будет в меню "Открыть с помощью"
|
|
||||||
# Images
|
|
||||||
"image/*" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/avif" = [ "imv.desktop" "qview.desktop" ];
|
|
||||||
"image/gif" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/jpeg" = [ "qview.desktop" "imv.desktop" ]; # Обычный jpeg, прогрузка сверху вниз
|
|
||||||
"image/pjpeg" = [ "qview.desktop" "imv.desktop" ]; # Сначала размытый и постепенной лучше видно, для медленного инета
|
|
||||||
"image/apng" = [ "qview.desktop" "imv.desktop" ]; # Анимированный png
|
|
||||||
"image/png" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/svg+xml" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/webp" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/x-icon" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
"image/vnd.microsoft.icon" = [ "qview.desktop" "imv.desktop" ];
|
|
||||||
# Text
|
|
||||||
"text/*" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/css" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/csv" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/html" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
|
|
||||||
"text/javascript" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/markdown" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/plain" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/x-asm" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/x-c" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"text/x-python" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"application/json" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
|
|
||||||
"application/x-sh" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"application/x-shellscript" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"application/xml" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
"application/yaml" = [ "nvim.desktop" "code.desktop" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
{ pkgs, ... }: {
|
|
||||||
programs.fish = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
shellAliases = let
|
|
||||||
flakeDir = "~/dots";
|
|
||||||
in {
|
|
||||||
rbs = "sudo nixos-rebuild switch --impure --flake ${flakeDir}"; # Применить новый конфиг сразу
|
|
||||||
rbb = "sudo nixos-rebuild boot --impure --flake ${flakeDir}"; # Применить новый конфиг после ребута пк
|
|
||||||
|
|
||||||
# Можно назвать аналогом "sudo pacman -Su", не "Syu", репу не обновляет
|
|
||||||
upg = "sudo nixos-rebuild switch --impure --upgrade --flake ${flakeDir}"; # Обновить пакеты, но не репозиторий во fleke.lock
|
|
||||||
|
|
||||||
# Обновить все flake inputs до последних версий. Возможно это аналог "sudo pacman -Sy" на Arch Linux
|
|
||||||
# Если после upd дописать название инпута из flake.nix, то обновится только указанный инпут
|
|
||||||
# Например `upd nixpkgs2` для обновления анстабле репы
|
|
||||||
upd = "sudo nix flake update --flake ${flakeDir}";
|
|
||||||
|
|
||||||
# Garbage collector. Удалить все не используемые пакеты (например после обновы)
|
|
||||||
grb = "sudo nix-collect-garbage -d";
|
|
||||||
|
|
||||||
pkgs = "nvim ${flakeDir}/nixos/packages.nix";
|
|
||||||
|
|
||||||
vim = "nvim";
|
|
||||||
vi = "nvim";
|
|
||||||
v = "nvim";
|
|
||||||
|
|
||||||
t = "timer";
|
|
||||||
r = "ranger";
|
|
||||||
g = "gitui";
|
|
||||||
f = "fastfetch";
|
|
||||||
yt = "cd /mnt/backups/Media/yt-dlp"; # Конфиги для бекапа YouTube
|
|
||||||
qb = "cd /mnt/backups/Media/Music/Qobuz/qdl"; # Бекапить музыку с Qobuz
|
|
||||||
html = "python3 /mnt/backups/html-library/generate_gallery.py --path"; # Html image gallery
|
|
||||||
};
|
|
||||||
|
|
||||||
# Всё, что в комментах ниже, лишнее. Я нашёл норм способ. Пишем "nix-prefetch-git link" и получаем всю инфу
|
|
||||||
# Узнать rev - git ls-remote https://github.com/{owner}/{repo}.git HEAD
|
|
||||||
# На гитхабе вроде можно просто на странице коммитов нажать ... и copy full SHA
|
|
||||||
# Узнать sha256 - sudo nix-prefetch-url --unpack https://github.com/{owner}/{repo}/archive/{rev}.tar.gz
|
|
||||||
# Ссылку проще получить, открыв страницу релизов и оттуда скопировать ссылку на архив
|
|
||||||
# Если нет релизов - sudo nix-prefetch-url --unpack https://github.com/{owner}/{repo}/archive/refs/heads/{branch}.zip
|
|
||||||
plugin = [
|
|
||||||
{ # The Node.js version manager you'll adore, crafted just for Fish
|
|
||||||
name = "nvm.fish"; # https://github.com/jorgebucaran/nvm.fish
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "jorgebucaran";
|
|
||||||
repo = "nvm.fish";
|
|
||||||
rev = "b8edb1ee24cbbf7259196b0cb3c6c4ab65b07929";
|
|
||||||
sha256 = "17vk608mbmb9mwvvm18hs63iy7vzdrd1ymia94szy1hy5d0li77c";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{ # Utility functions to start your ssh agent when using fish shell
|
|
||||||
name = "fish-ssh-agent"; # https://github.com/danhper/fish-ssh-agent
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "danhper";
|
|
||||||
repo = "fish-ssh-agent";
|
|
||||||
rev = "fd70a2afdd03caf9bf609746bf6b993b9e83be57";
|
|
||||||
sha256 = "1fvl23y9lylj4nz6k7yfja6v9jlsg8jffs2m5mq0ql4ja5vi5pkv";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
home = {
|
|
||||||
packages = with pkgs.fishPlugins; [ # Плагины для Fish из репы никса
|
|
||||||
z # Частые директории https://github.com/jethrokuan/z/blob/master/man/man1/z.md
|
|
||||||
plugin-git # Алиасы для гита https://github.com/jhillyerd/plugin-git
|
|
||||||
fzf-fish # https://github.com/PatrickF1/fzf.fish
|
|
||||||
done # Оповещения для длительных процессов https://github.com/franciscolourenco/done
|
|
||||||
bass # Позволяет юзать bash в fish https://github.com/edc/bass
|
|
||||||
];
|
|
||||||
|
|
||||||
# Чтоб при выходе из ranger я всегда cd в каталог, из которого вышел
|
|
||||||
file.".config/fish/functions/ranger.fish".text = ''
|
|
||||||
function ranger
|
|
||||||
set tempfile (mktemp -t tmp.XXXXXX)
|
|
||||||
command ranger --choosedir=$tempfile $argv
|
|
||||||
set return_value $status
|
|
||||||
|
|
||||||
if test -s $tempfile
|
|
||||||
set ranger_pwd (cat $tempfile)
|
|
||||||
if test -n $ranger_pwd -a -d $ranger_pwd
|
|
||||||
builtin cd -- $ranger_pwd
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -f -- $tempfile
|
|
||||||
return $return_value
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,443 +0,0 @@
|
||||||
[Analyzer]
|
|
||||||
framerate=25
|
|
||||||
type=BlockAnalyzer
|
|
||||||
|
|
||||||
[Appearance]
|
|
||||||
background_image_do_not_cut=true
|
|
||||||
background_image_keep_aspect_ratio=true
|
|
||||||
background_image_max_size=0
|
|
||||||
background_image_position=5
|
|
||||||
background_image_stretch=false
|
|
||||||
background_image_type=1
|
|
||||||
blur_radius=0
|
|
||||||
icon_size_configure_buttons=16
|
|
||||||
icon_size_left_panel_buttons=22
|
|
||||||
icon_size_play_control_buttons=32
|
|
||||||
icon_size_playlist_buttons=20
|
|
||||||
icon_size_tabbar_large_mode=40
|
|
||||||
icon_size_tabbar_small_mode=32
|
|
||||||
opacity_level=40
|
|
||||||
playlist_playing_song_color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0)
|
|
||||||
style=default
|
|
||||||
system_icons=false
|
|
||||||
tab_color=@Variant(\0\0\0\x43\x2\xff\xffOL\x87\x87\x92+\0\0)
|
|
||||||
tab_gradient=true
|
|
||||||
tab_system_color=true
|
|
||||||
|
|
||||||
[Backend]
|
|
||||||
AutoCrossfadeEnabled=false
|
|
||||||
CrossfadeEnabled=false
|
|
||||||
FadeoutDuration=2000
|
|
||||||
FadeoutEnabled=false
|
|
||||||
FadeoutPauseDuration=250
|
|
||||||
FadeoutPauseEnabled=false
|
|
||||||
NoCrossfadeSameAlbum=true
|
|
||||||
alsaplugin=3
|
|
||||||
bs2b=false
|
|
||||||
bufferduration=4000
|
|
||||||
bufferhighwatermark=0.99
|
|
||||||
bufferlowwatermark=0.33
|
|
||||||
channels=2
|
|
||||||
channels_enabled=false
|
|
||||||
device=@Invalid()
|
|
||||||
ebur128_loudness_normalization=false
|
|
||||||
ebur128_target_level_lufs=-23
|
|
||||||
engine=gstreamer
|
|
||||||
http2=false
|
|
||||||
output=autoaudiosink
|
|
||||||
rgcompression=true
|
|
||||||
rgenabled=false
|
|
||||||
rgfallbackgain=0
|
|
||||||
rgmode=1
|
|
||||||
rgpreamp=0
|
|
||||||
strict_ssl=false
|
|
||||||
volume_control=true
|
|
||||||
|
|
||||||
[Behaviour]
|
|
||||||
doubleclick_addmode=1
|
|
||||||
doubleclick_playlist_addmode=1
|
|
||||||
doubleclick_playmode=1
|
|
||||||
keeprunning=false
|
|
||||||
language=
|
|
||||||
menu_playmode=1
|
|
||||||
menu_previousmode=1
|
|
||||||
playing_widget=true
|
|
||||||
resumeplayback=false
|
|
||||||
seek_step_sec=10
|
|
||||||
showtrayicon=true
|
|
||||||
startupbehaviour=1
|
|
||||||
trayicon_progress=false
|
|
||||||
|
|
||||||
[Collection]
|
|
||||||
auto_open=true
|
|
||||||
cache_size=160
|
|
||||||
cache_size_unit=1
|
|
||||||
cover_art_patterns=front, cover
|
|
||||||
delete_files=true
|
|
||||||
disk_cache_enable=false
|
|
||||||
disk_cache_size=360
|
|
||||||
disk_cache_size_unit=1
|
|
||||||
expire_unavailable_songs=60
|
|
||||||
group_by1=1
|
|
||||||
group_by2=4
|
|
||||||
group_by3=0
|
|
||||||
group_by_version=1
|
|
||||||
last_path=/home/buliway/backups/Media/Music
|
|
||||||
mark_songs_unavailable=true
|
|
||||||
monitor=true
|
|
||||||
overwrite_playcount=false
|
|
||||||
overwrite_rating=false
|
|
||||||
pretty_covers=true
|
|
||||||
save_playcounts=true
|
|
||||||
save_ratings=true
|
|
||||||
separate_albums_by_grouping=false
|
|
||||||
show_dividers=true
|
|
||||||
song_ebur128_loudness_analysis=false
|
|
||||||
song_tracking=false
|
|
||||||
startup_scan=true
|
|
||||||
|
|
||||||
[Context]
|
|
||||||
AlbumEnable=true
|
|
||||||
SearchCoverEnable=true
|
|
||||||
SearchLyricsEnable=true
|
|
||||||
SongLyricsEnable=true
|
|
||||||
SummaryFmt=%album%
|
|
||||||
TechnicalDataEnable=false
|
|
||||||
TitleFmt=%title% - %artist%
|
|
||||||
font_headline=Noto Sans
|
|
||||||
font_normal=Noto Sans
|
|
||||||
font_size_headline=11
|
|
||||||
font_size_normal=9
|
|
||||||
|
|
||||||
[Covers]
|
|
||||||
providers=Last.fm, MusicBrainz, Deezer, Musixmatch, Spotify, Tidal, Qobuz
|
|
||||||
save_filename=2
|
|
||||||
save_lowercase=true
|
|
||||||
save_overwrite=false
|
|
||||||
save_pattern=%albumartist-%album
|
|
||||||
save_replace_spaces=true
|
|
||||||
save_type=1
|
|
||||||
types=art_unset, art_manual, art_automatic, art_embedded
|
|
||||||
|
|
||||||
[EditTagDialog]
|
|
||||||
current_tab=1
|
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\xf\x1\0\0\0\x19\0\0\x12\xb1\0\0\x4\x10\0\0\xf\x1\0\0\0\x19\0\0\x12\xc0\0\0\x4$\0\0\0\x1\x2\0\0\0\a\x80\0\0\xf\x1\0\0\0\x19\0\0\x12\xb1\0\0\x4\x10)
|
|
||||||
|
|
||||||
[Equalizer]
|
|
||||||
enable_stereo_balancer=false
|
|
||||||
enabled=false
|
|
||||||
presets\1\name=Classical
|
|
||||||
presets\1\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xd8\xff\xff\xff\xd8\xff\xff\xff\xd8\xff\xff\xff\xce)
|
|
||||||
presets\10\name=Live
|
|
||||||
presets\10\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xe7\0\0\0\0\0\0\0\x14\0\0\0\x19\0\0\0\x1e\0\0\0\x1e\0\0\0\x14\0\0\0\xf\0\0\0\xf\0\0\0\n)
|
|
||||||
presets\11\name=Party
|
|
||||||
presets\11\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0#\0\0\0#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\0\0\0#)
|
|
||||||
presets\12\name=Pop
|
|
||||||
presets\12\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xf6\0\0\0\x19\0\0\0#\0\0\0(\0\0\0\x19\xff\xff\xff\xfb\xff\xff\xff\xf1\xff\xff\xff\xf1\xff\xff\xff\xf6\xff\xff\xff\xf6)
|
|
||||||
presets\13\name=Reggae
|
|
||||||
presets\13\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xfb\xff\xff\xff\xe2\0\0\0\0\xff\xff\xff\xdd\xff\xff\xff\xdd\0\0\0\0\0\0\0\0\0\0\0\0)
|
|
||||||
presets\14\name=Rock
|
|
||||||
presets\14\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0(\0\0\0\x19\xff\xff\xff\xe2\xff\xff\xff\xd8\xff\xff\xff\xec\0\0\0\x14\0\0\0-\0\0\0\x37\0\0\0\x37\0\0\0\x37)
|
|
||||||
presets\15\name=Ska
|
|
||||||
presets\15\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xf1\xff\xff\xff\xe7\xff\xff\xff\xe7\xff\xff\xff\xfb\0\0\0\x14\0\0\0\x1e\0\0\0-\0\0\0\x32\0\0\0\x37\0\0\0\x32)
|
|
||||||
presets\16\name=Soft
|
|
||||||
presets\16\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x19\0\0\0\n\xff\xff\xff\xfb\xff\xff\xff\xf1\xff\xff\xff\xfb\0\0\0\x14\0\0\0-\0\0\0\x32\0\0\0\x37\0\0\0<)
|
|
||||||
presets\17\name=Soft Rock
|
|
||||||
presets\17\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x14\0\0\0\x14\0\0\0\n\xff\xff\xff\xfb\xff\xff\xff\xe7\xff\xff\xff\xe2\xff\xff\xff\xec\xff\xff\xff\xfb\0\0\0\xf\0\0\0-)
|
|
||||||
presets\18\name=Techno
|
|
||||||
presets\18\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0(\0\0\0\x1e\0\0\0\0\xff\xff\xff\xe2\xff\xff\xff\xe7\0\0\0\0\0\0\0(\0\0\0\x32\0\0\0\x32\0\0\0-)
|
|
||||||
presets\19\name=Zero
|
|
||||||
presets\19\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)
|
|
||||||
presets\2\name=Club
|
|
||||||
presets\2\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14\0\0\0\x1e\0\0\0\x1e\0\0\0\x1e\0\0\0\x14\0\0\0\0\0\0\0\0\0\0\0\0)
|
|
||||||
presets\3\name=Custom
|
|
||||||
presets\3\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)
|
|
||||||
presets\4\name=Dance
|
|
||||||
presets\4\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x32\0\0\0#\0\0\0\n\0\0\0\0\0\0\0\0\xff\xff\xff\xe2\xff\xff\xff\xd8\xff\xff\xff\xd8\0\0\0\0\0\0\0\0)
|
|
||||||
presets\5\name=Full Bass
|
|
||||||
presets\5\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x46\0\0\0\x46\0\0\0\x46\0\0\0(\0\0\0\x14\xff\xff\xff\xd3\xff\xff\xff\xce\xff\xff\xff\xc9\xff\xff\xff\xc9\xff\xff\xff\xc9)
|
|
||||||
presets\6\name=Full Bass + Treble
|
|
||||||
presets\6\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0#\0\0\0\x1e\0\0\0\0\xff\xff\xff\xd8\xff\xff\xff\xe7\0\0\0\n\0\0\0-\0\0\0\x37\0\0\0<\0\0\0<)
|
|
||||||
presets\7\name=Full Treble
|
|
||||||
presets\7\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xce\xff\xff\xff\xce\xff\xff\xff\xce\xff\xff\xff\xe7\0\0\0\xf\0\0\0\x37\0\0\0P\0\0\0P\0\0\0P\0\0\0U)
|
|
||||||
presets\8\name=Laptop/Headphones
|
|
||||||
presets\8\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x19\0\0\0\x32\0\0\0\x19\xff\xff\xff\xec\0\0\0\0\xff\xff\xff\xe2\xff\xff\xff\xd8\xff\xff\xff\xd8\0\0\0\0\0\0\0\0)
|
|
||||||
presets\9\name=Large Hall
|
|
||||||
presets\9\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x32\0\0\0\x32\0\0\0\x1e\0\0\0\x1e\0\0\0\0\xff\xff\xff\xe7\xff\xff\xff\xe7\xff\xff\xff\xe7\0\0\0\0\0\0\0\0)
|
|
||||||
presets\size=19
|
|
||||||
selected_preset=Custom
|
|
||||||
stereo_balance=0
|
|
||||||
|
|
||||||
[GlobalShortcuts]
|
|
||||||
dec_volume=
|
|
||||||
inc_volume=
|
|
||||||
love=
|
|
||||||
mute=
|
|
||||||
next_track=Media Next
|
|
||||||
pause=
|
|
||||||
play=
|
|
||||||
play_pause=Media Play
|
|
||||||
prev_track=Media Previous
|
|
||||||
repeat_mode=
|
|
||||||
seek_backward=
|
|
||||||
seek_forward=
|
|
||||||
show_hide=
|
|
||||||
show_osd=
|
|
||||||
shuffle_mode=
|
|
||||||
stop=Media Stop
|
|
||||||
stop_after=
|
|
||||||
toggle_pretty_osd=
|
|
||||||
toggle_scrobbling=
|
|
||||||
use_gnome=false
|
|
||||||
use_kde=true
|
|
||||||
use_mate=false
|
|
||||||
use_x11=false
|
|
||||||
|
|
||||||
[LastFM]
|
|
||||||
enabled=false
|
|
||||||
|
|
||||||
[LibreFM]
|
|
||||||
enabled=false
|
|
||||||
|
|
||||||
[ListenBrainz]
|
|
||||||
enabled=false
|
|
||||||
user_token=
|
|
||||||
|
|
||||||
[Lyrics]
|
|
||||||
providers=Genius, Lyrics.ovh, LoloLyrics, Musixmatch, songlyrics.com, azlyrics.com, elyrics.net, lyricsmode.com
|
|
||||||
|
|
||||||
[MainWindow]
|
|
||||||
add_folder_path=/home/buliway/backups/Media/Music
|
|
||||||
current_tab=1
|
|
||||||
do_not_show_sponsor_message=true
|
|
||||||
file_path=/home/buliway
|
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\xf\0\0\0\0\0\0\0\x16k\0\0\x4\a\0\0\xf\0\0\0\0\0\0\0\x16\x7f\0\0\x4\x37\0\0\0\x1\x2\0\0\0\a\x80\0\0\xf\0\0\0\0\0\0\0\x16k\0\0\x4\a)
|
|
||||||
hidden=false
|
|
||||||
maximized=true
|
|
||||||
minimized=false
|
|
||||||
search_for_cover_auto=true
|
|
||||||
show_sidebar=true
|
|
||||||
splitter_state=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\x1>\0\0\x4W\0\xff\xff\xff\xff\x1\0\0\0\x1\0)
|
|
||||||
tab_collection=1
|
|
||||||
tab_context=0
|
|
||||||
tab_devices=7
|
|
||||||
tab_files=5
|
|
||||||
tab_mode=1
|
|
||||||
tab_playlists=3
|
|
||||||
tab_queue=2
|
|
||||||
tab_radios=6
|
|
||||||
tab_smartplaylists=4
|
|
||||||
|
|
||||||
[Moodbar]
|
|
||||||
enabled=false
|
|
||||||
save=false
|
|
||||||
show=false
|
|
||||||
style=0
|
|
||||||
|
|
||||||
[NetworkProxy]
|
|
||||||
engine=true
|
|
||||||
hostname=
|
|
||||||
mode=0
|
|
||||||
password=
|
|
||||||
port=0
|
|
||||||
type=3
|
|
||||||
use_authentication=false
|
|
||||||
username=
|
|
||||||
|
|
||||||
[OSD]
|
|
||||||
Behaviour=0
|
|
||||||
CustomText1=
|
|
||||||
CustomText2=
|
|
||||||
CustomTextEnabled=false
|
|
||||||
ShowArt=true
|
|
||||||
ShowOnPausePlayback=false
|
|
||||||
ShowOnPlayModeChange=false
|
|
||||||
ShowOnResumePlayback=false
|
|
||||||
ShowOnVolumeChange=false
|
|
||||||
Timeout=5000
|
|
||||||
|
|
||||||
[OSDPretty]
|
|
||||||
background_color=4284913379
|
|
||||||
background_opacity=0.8500000238418579
|
|
||||||
disable_duration=false
|
|
||||||
fading=false
|
|
||||||
font="Verdana,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
|
|
||||||
foreground_color=4278190080
|
|
||||||
popup_pos=@Point(1460 0)
|
|
||||||
popup_screen=DP-3
|
|
||||||
|
|
||||||
[Player]
|
|
||||||
playback_playlist=22
|
|
||||||
playback_position=37
|
|
||||||
playback_state=3
|
|
||||||
volume=6
|
|
||||||
|
|
||||||
[Playlist]
|
|
||||||
alternating_row_colors=true
|
|
||||||
auto_sort=false
|
|
||||||
column_alignments=@Variant(\0\0\0\x7f\0\0\0\x13\x43olumnAlignmentMap\0\0\0\0\v\0\0\0\x6\0\0\0\x82\0\0\0\a\0\0\0\x82\0\0\0\b\0\0\0\x82\0\0\0\t\0\0\0\x82\0\0\0\n\0\0\0\x82\0\0\0\f\0\0\0\x82\0\0\0\r\0\0\0\x82\0\0\0\xe\0\0\0\x82\0\0\0\x11\0\0\0\x82\0\0\0\x15\0\0\0\x82\0\0\0\x16\0\0\0\x82)
|
|
||||||
continue_on_error=false
|
|
||||||
current_playlist=22
|
|
||||||
delete_files=true
|
|
||||||
editmetadatainline=false
|
|
||||||
glow_effect=true
|
|
||||||
greyout_songs_play=true
|
|
||||||
greyout_songs_startup=true
|
|
||||||
last_load_playlist=/home/buliway/backups/Media/Music/Strawberry/Rofl.xspf
|
|
||||||
last_save_all_extension=xspf
|
|
||||||
last_save_all_path=/home/buliway/backups/Media/Music/Strawberry
|
|
||||||
last_save_extension=xspf
|
|
||||||
last_save_filter=XSPF playlists (*.xspf)
|
|
||||||
last_save_path=/home/buliway/backups/Media/Music/Strawberry
|
|
||||||
path_type=2
|
|
||||||
playlist_clear=true
|
|
||||||
rating_locked=false
|
|
||||||
select_track=false
|
|
||||||
show_bars=true
|
|
||||||
show_toolbar=true
|
|
||||||
state="@ByteArray(P,\x95\xf\x1\0\0\0 \0\0\x1\xc4\0\0\0\xdc\0\0\0\0\0\0\0\xdc\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0R\0\0\0\0\0\0\0\x82\0\0\0\x36\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\b\0\0\0\0\0\0\0\x2\0\0\0\x3\0\0\0\x4\0\0\0\x5\0\0\0\x6\0\0\0\a\0\0\0\t\0\0\0\x1\0\0\0\n\0\0\0\v\0\0\0\f\0\0\0\r\0\0\0\xe\0\0\0\xf\0\0\0\x10\0\0\0\x11\0\0\0\x12\0\0\0\x13\0\0\0\x14\0\0\0\x15\0\0\0\x16\0\0\0\x17\0\0\0\x18\0\0\0\x19\0\0\0\x1a\0\0\0\x1b\0\0\0\x1c\0\0\0\x1d\0\0\0\x1e\0\0\0\x1f\0\0\0 ?\xd3\xb4\xaa\x33\x9eW\xe4?\xc3@\x1a\xf9\xf9<\xa4\0\0\0\0\0\0\0\0?\xc3\x41\b\xc4\x39@\x5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\x9e\xd3)\"~\x95\xa7\0\0\0\0\0\0\0\0?\xac\xbb\x86<\xb6:\xdd\0\0\0\0\0\0\0\0?\xb6\xc0\x15\x89h\xe7X?\xa2\xd8)B\xc5\xa6\x33?\xac\xdb\x2\x96\xb7[\x9f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\xaaJ?\x87\x39\x9b<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\xb2Y\xb7\x14\x62\xae`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n)"
|
|
||||||
state_version=1
|
|
||||||
warn_close_playlist=true
|
|
||||||
write_metadata=true
|
|
||||||
|
|
||||||
[PlaylistSequence]
|
|
||||||
repeat_mode=0
|
|
||||||
shuffle_mode=0
|
|
||||||
|
|
||||||
[Qobuz]
|
|
||||||
albums_group_by1=1
|
|
||||||
albums_group_by2=4
|
|
||||||
albums_group_by3=0
|
|
||||||
albums_group_by_version=1
|
|
||||||
albums_separate_albums_by_grouping=false
|
|
||||||
artists_group_by1=1
|
|
||||||
artists_group_by2=4
|
|
||||||
artists_group_by3=0
|
|
||||||
artists_group_by_version=1
|
|
||||||
artists_separate_albums_by_grouping=false
|
|
||||||
search_group_by1=1
|
|
||||||
search_group_by2=4
|
|
||||||
search_group_by3=0
|
|
||||||
search_group_by_version=1
|
|
||||||
songs_group_by1=1
|
|
||||||
songs_group_by2=4
|
|
||||||
songs_group_by3=0
|
|
||||||
songs_group_by_version=1
|
|
||||||
songs_separate_albums_by_grouping=false
|
|
||||||
tab=artists
|
|
||||||
|
|
||||||
[Scrobbler]
|
|
||||||
albumartist=false
|
|
||||||
enabled=false
|
|
||||||
love_button=false
|
|
||||||
offline=false
|
|
||||||
scrobble_button=false
|
|
||||||
show_error_dialog=true
|
|
||||||
sources=collection, file, cd, device, subsonic, tidal, qobuz, stream, somafm, radioparadise, unknown
|
|
||||||
submit=0
|
|
||||||
|
|
||||||
[SerializedSmartPlaylists]
|
|
||||||
songs\1\data=@ByteArray(\0\0\0\0\x2\x11\0\0\0\x14\x2\0)
|
|
||||||
songs\1\name=Newest tracks
|
|
||||||
songs\1\type=1
|
|
||||||
songs\10\data=@ByteArray(\0\0\0\0\0\x3\0\0\0\x14\x2\x1)
|
|
||||||
songs\10\name=Dynamic random mix
|
|
||||||
songs\10\type=1
|
|
||||||
songs\2\data=@ByteArray(\0\0\0\0\0\x3\0\0\0\x32\x2\0)
|
|
||||||
songs\2\name=50 random tracks
|
|
||||||
songs\2\type=1
|
|
||||||
songs\3\data=@ByteArray(\0\0\0\x1\x13\x4\0\0\0\x2\0\0\0\0\0\0\0\0\0\x1\0\0\x3\0\0\0\x14\0\0)
|
|
||||||
songs\3\name=Ever played
|
|
||||||
songs\3\type=1
|
|
||||||
songs\4\data=@ByteArray(\0\0\0\x1\x13\x6\0\0\0\x2\0\0\0\0\0\0\0\0\0\x1\0\0\x3\0\0\0\x14\0\0)
|
|
||||||
songs\4\name=Never played
|
|
||||||
songs\4\type=1
|
|
||||||
songs\5\data=@ByteArray(\0\0\0\0\x2\x15\0\0\0\x14\x2\0)
|
|
||||||
songs\5\name=Last played
|
|
||||||
songs\5\type=1
|
|
||||||
songs\6\data=@ByteArray(\0\0\0\0\x2\x13\0\0\0\x14\x2\0)
|
|
||||||
songs\6\name=Most played
|
|
||||||
songs\6\type=1
|
|
||||||
songs\7\data=@ByteArray(\0\0\0\0\x2\x16\0\0\0\x14\x2\0)
|
|
||||||
songs\7\name=Favourite tracks
|
|
||||||
songs\7\type=1
|
|
||||||
songs\8\data=@ByteArray(\0\0\0\x2\x16\x5\0\0\0\x6\0?\xe0\0\0\0\0\0\0\0\0\0\0\x1\0\x14\x4\0\0\0\x2\0\0\0\0\x4\0\0\0\0\x1\0\x2\x14\0\0\0\x14\x1\0)
|
|
||||||
songs\8\name=Least favourite tracks
|
|
||||||
songs\8\type=1
|
|
||||||
songs\9\data=@ByteArray(\0\0\0\0\x1\x1\xff\xff\xff\xff\x2\0)
|
|
||||||
songs\9\name=All tracks
|
|
||||||
songs\9\type=1
|
|
||||||
songs\size=10
|
|
||||||
songs_version=3
|
|
||||||
|
|
||||||
[SettingsDialog]
|
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x11\"\0\0\0\x9c\0\0\x14\\\0\0\x3\x9b\0\0\x11\"\0\0\0\x9c\0\0\x14\\\0\0\x3\x9b\0\0\0\x1\x2\0\0\0\a\x80\0\0\x11\"\0\0\0\x9c\0\0\x14\\\0\0\x3\x9b)
|
|
||||||
|
|
||||||
[Subsonic]
|
|
||||||
authmethod=1
|
|
||||||
downloadalbumcovers=false
|
|
||||||
enabled=false
|
|
||||||
group_by1=1
|
|
||||||
group_by2=4
|
|
||||||
group_by3=0
|
|
||||||
group_by_version=1
|
|
||||||
http2=false
|
|
||||||
password=
|
|
||||||
separate_albums_by_grouping=false
|
|
||||||
serversidescrobbling=true
|
|
||||||
url=@Variant(\0\0\0\x11\xff\xff\xff\xff)
|
|
||||||
username=
|
|
||||||
verifycertificate=true
|
|
||||||
|
|
||||||
[Tidal]
|
|
||||||
albums_group_by1=1
|
|
||||||
albums_group_by2=4
|
|
||||||
albums_group_by3=0
|
|
||||||
albums_group_by_version=1
|
|
||||||
albums_separate_albums_by_grouping=false
|
|
||||||
artists_group_by1=1
|
|
||||||
artists_group_by2=4
|
|
||||||
artists_group_by3=0
|
|
||||||
artists_group_by_version=1
|
|
||||||
artists_separate_albums_by_grouping=false
|
|
||||||
search_group_by1=1
|
|
||||||
search_group_by2=4
|
|
||||||
search_group_by3=0
|
|
||||||
search_group_by_version=1
|
|
||||||
songs_group_by1=1
|
|
||||||
songs_group_by2=4
|
|
||||||
songs_group_by3=0
|
|
||||||
songs_group_by_version=1
|
|
||||||
songs_separate_albums_by_grouping=false
|
|
||||||
tab=artists
|
|
||||||
|
|
||||||
[Transcoder]
|
|
||||||
faac\bitrate=320000
|
|
||||||
faac\midside=true
|
|
||||||
faac\profile=2
|
|
||||||
faac\shortctl=0
|
|
||||||
faac\tns=false
|
|
||||||
ffenc_wmav2\bitrate=320000
|
|
||||||
flacenc\quality=5
|
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\xf\0\0\0\0\0\0\0\x12\xb0\0\0\x4\a\0\0\xf\0\0\0\0\0\0\0\x12\xbf\0\0\x4\x1b\0\0\0\x1\x2\0\0\0\a\x80\0\0\xf\0\0\0\0\0\0\0\x12\xb0\0\0\x4\a)
|
|
||||||
lamemp3enc\bitrate=320
|
|
||||||
lamemp3enc\cbr=false
|
|
||||||
lamemp3enc\encoding-engine-quality=2
|
|
||||||
lamemp3enc\mono=false
|
|
||||||
lamemp3enc\quality=10
|
|
||||||
lamemp3enc\target=1
|
|
||||||
opusenc\bitrate=320000
|
|
||||||
speexenc\abr=0
|
|
||||||
speexenc\bitrate=0
|
|
||||||
speexenc\complexity=3
|
|
||||||
speexenc\dtx=false
|
|
||||||
speexenc\mode=0
|
|
||||||
speexenc\nframes=1
|
|
||||||
speexenc\quality=10
|
|
||||||
speexenc\vad=false
|
|
||||||
speexenc\vbr=false
|
|
||||||
vorbisenc\bitrate=-1
|
|
||||||
vorbisenc\managed=false
|
|
||||||
vorbisenc\max-bitrate=-1
|
|
||||||
vorbisenc\min-bitrate=-1
|
|
||||||
vorbisenc\quality=1
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<channel name="thunar" version="1.0">
|
|
||||||
<property name="last-details-view-column-widths" type="string" value="50,50,134,126,50,94,50,168,264,50,50,98,50,1378"/>
|
|
||||||
<property name="last-details-view-visible-columns" type="string" value="THUNAR_COLUMN_DATE_MODIFIED,THUNAR_COLUMN_NAME,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_TYPE"/>
|
|
||||||
<property name="last-tabs-left" type="array">
|
|
||||||
<value type="string" value="file:///home/buliway/backups/Backups/memes"/>
|
|
||||||
<value type="string" value="file:///home/buliway/backups/Media/Video"/>
|
|
||||||
</property>
|
|
||||||
<property name="last-focused-tab-left" type="int" value="1"/>
|
|
||||||
<property name="last-view" type="string" value="ThunarIconView"/>
|
|
||||||
<property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_300_PERCENT"/>
|
|
||||||
<property name="last-window-width" type="int" value="1906"/>
|
|
||||||
<property name="last-window-height" type="int" value="1066"/>
|
|
||||||
<property name="last-window-maximized" type="bool" value="false"/>
|
|
||||||
<property name="last-separator-position" type="int" value="225"/>
|
|
||||||
<property name="last-show-hidden" type="bool" value="true"/>
|
|
||||||
<property name="misc-single-click" type="bool" value="false"/>
|
|
||||||
<property name="misc-thumbnail-mode" type="string" value="THUNAR_THUMBNAIL_MODE_ALWAYS"/>
|
|
||||||
<property name="misc-date-style" type="string" value="THUNAR_DATE_STYLE_SIMPLE"/>
|
|
||||||
<property name="shortcuts-icon-emblems" type="bool" value="true"/>
|
|
||||||
<property name="tree-icon-emblems" type="bool" value="true"/>
|
|
||||||
<property name="misc-image-preview-mode" type="string" value="THUNAR_IMAGE_PREVIEW_MODE_EMBEDDED"/>
|
|
||||||
<property name="misc-middle-click-in-tab" type="bool" value="true"/>
|
|
||||||
<property name="misc-open-new-window-as-tab" type="bool" value="false"/>
|
|
||||||
<property name="last-restore-tabs" type="bool" value="true"/>
|
|
||||||
<property name="misc-show-delete-action" type="bool" value="true"/>
|
|
||||||
<property name="misc-parallel-copy-mode" type="string" value="THUNAR_PARALLEL_COPY_MODE_ALWAYS"/>
|
|
||||||
<property name="last-focused-tab-right" type="int" value="0"/>
|
|
||||||
<property name="misc-confirm-close-multiple-tabs" type="bool" value="false"/>
|
|
||||||
<property name="last-side-pane" type="string" value="ThunarShortcutsPane"/>
|
|
||||||
<property name="last-location-bar" type="string" value="ThunarLocationButtons"/>
|
|
||||||
</channel>
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
require("starship"):setup()
|
|
||||||
require("full-border"):setup()
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
# [[manager.prepend_keymap]]
|
|
||||||
# on = [ "y" ]
|
|
||||||
# run = [ "yank", '''
|
|
||||||
# shell --confirm 'for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list'
|
|
||||||
# ''' ]
|
|
||||||
# desc = "Copy to clipboard on Wayland" # https://yazi-rs.github.io/docs/tips
|
|
||||||
|
|
||||||
[[manager.prepend_keymap]]
|
|
||||||
on = [ "y" ]
|
|
||||||
run = [ "yank", '''
|
|
||||||
shell --confirm 'echo "$@" | xclip -i -selection clipboard -t text/uri-list'
|
|
||||||
''' ]
|
|
||||||
desc = "Copy to clipboard on Xorg" # https://yazi-rs.github.io/docs/tips
|
|
||||||
|
|
||||||
[[manager.prepend_keymap]]
|
|
||||||
on = ["C"]
|
|
||||||
run = "plugin ouch --args=zip"
|
|
||||||
desc = "Compress with ouch"
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2024 Sonico98
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
# exifaudio.yazi
|
|
||||||
|
|
||||||
Preview audio metadata and cover on [Yazi](https://github.com/sxyazi/yazi).
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# Linux/macOS
|
|
||||||
git clone https://github.com/Sonico98/exifaudio.yazi.git ~/.config/yazi/plugins/exifaudio.yazi
|
|
||||||
|
|
||||||
# Windows
|
|
||||||
git clone https://github.com/Sonico98/exifaudio.yazi.git %AppData%\yazi\config\plugins\exifaudio.yazi
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
Add the following to your `yazi.toml`:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[plugin]
|
|
||||||
prepend_previewers = [
|
|
||||||
{ mime = "audio/*", run = "exifaudio"}
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
Make sure you have [exiftool](https://exiftool.org/) installed and in your `PATH`.
|
|
||||||
|
|
||||||
## Thanks
|
|
||||||
|
|
||||||
Thanks to [sxyazi](https://github.com/sxyazi) for the PDF previewer code, on which this previewer is based on.
|
|
||||||
|
|
@ -1,139 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
function M:peek()
|
|
||||||
local cache = ya.file_cache(self)
|
|
||||||
if not cache then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local child = Command("exiftool")
|
|
||||||
:args({
|
|
||||||
"-q", "-q", "-S", "-Title", "-SortName",
|
|
||||||
"-TitleSort", "-TitleSortOrder", "-Artist",
|
|
||||||
"-SortArtist", "-ArtistSort", "-PerformerSortOrder",
|
|
||||||
"-Album", "-SortAlbum", "-AlbumSort", "-AlbumSortOrder",
|
|
||||||
"-AlbumArtist", "-SortAlbumArtist", "-AlbumArtistSort",
|
|
||||||
"-AlbumArtistSortOrder", "-Genre", "-TrackNumber",
|
|
||||||
"-Year", "-Duration", "-SampleRate",
|
|
||||||
"-AudioSampleRate", "-AudioBitrate", "-AvgBitrate",
|
|
||||||
"-Channels", "-AudioChannels", tostring(self.file.url),
|
|
||||||
})
|
|
||||||
:stdout(Command.PIPED)
|
|
||||||
:stderr(Command.NULL)
|
|
||||||
:spawn()
|
|
||||||
|
|
||||||
local limit = self.area.h
|
|
||||||
local i, metadata = 0, {}
|
|
||||||
repeat
|
|
||||||
local next, event = child:read_line()
|
|
||||||
if event == 1 then
|
|
||||||
return self:fallback_to_builtin()
|
|
||||||
elseif event ~= 0 then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
|
|
||||||
i = i + 1
|
|
||||||
if i > self.skip then
|
|
||||||
local m_title, m_tag = prettify(next)
|
|
||||||
local ti = ui.Span(m_title):bold()
|
|
||||||
local ta = ui.Span(m_tag)
|
|
||||||
table.insert(metadata, ui.Line{ti, ta})
|
|
||||||
table.insert(metadata, ui.Line{})
|
|
||||||
end
|
|
||||||
until i >= self.skip + limit
|
|
||||||
|
|
||||||
local p = ui.Paragraph(self.area, metadata):wrap(ui.Paragraph.WRAP)
|
|
||||||
ya.preview_widgets(self, { p })
|
|
||||||
|
|
||||||
local cover_width = self.area.w / 2 - 5
|
|
||||||
local cover_height = (self.area.h / 4) + 3
|
|
||||||
|
|
||||||
local bottom_right = ui.Rect {
|
|
||||||
x = self.area.right - cover_width,
|
|
||||||
y = self.area.bottom - cover_height,
|
|
||||||
w = cover_width,
|
|
||||||
h = cover_height,
|
|
||||||
}
|
|
||||||
|
|
||||||
if self:preload() == 1 then
|
|
||||||
ya.image_show(cache, bottom_right)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function prettify(metadata)
|
|
||||||
local substitutions = {
|
|
||||||
Sortname = "Sort Title:",
|
|
||||||
SortName = "Sort Title:",
|
|
||||||
TitleSort = "Sort Title:",
|
|
||||||
TitleSortOrder = "Sort Title:",
|
|
||||||
ArtistSort = "Sort Artist:",
|
|
||||||
SortArtist = "Sort Artist:",
|
|
||||||
Artist = "Artist:",
|
|
||||||
ARTIST = "Artist:",
|
|
||||||
PerformerSortOrder = "Sort Artist:",
|
|
||||||
SortAlbumArtist = "Sort Album Artist:",
|
|
||||||
AlbumArtistSortOrder = "Sort Album Artist:",
|
|
||||||
AlbumArtistSort = "Sort Album Artist:",
|
|
||||||
AlbumSortOrder = "Sort Album:",
|
|
||||||
AlbumSort = "Sort Album:",
|
|
||||||
SortAlbum = "Sort Album:",
|
|
||||||
Album = "Album:",
|
|
||||||
ALBUM = "Album:",
|
|
||||||
AlbumArtist = "Album Artist:",
|
|
||||||
Genre = "Genre:",
|
|
||||||
GENRE = "Genre:",
|
|
||||||
TrackNumber = "Track Number:",
|
|
||||||
Year = "Year:",
|
|
||||||
Duration = "Duration:",
|
|
||||||
AudioBitrate = "Bitrate:",
|
|
||||||
AvgBitrate = "Average Bitrate:",
|
|
||||||
AudioSampleRate = "Sample Rate:",
|
|
||||||
SampleRate = "Sample Rate:",
|
|
||||||
AudioChannels = "Channels:"
|
|
||||||
}
|
|
||||||
|
|
||||||
for k, v in pairs(substitutions) do
|
|
||||||
metadata = metadata:gsub(tostring(k)..":", v, 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Separate the tag title from the tag data
|
|
||||||
local t={}
|
|
||||||
for str in string.gmatch(metadata , "([^"..":".."]+)") do
|
|
||||||
table.insert(t, str)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Add back semicolon to title, rejoin tag data if it happened to contain a semicolon
|
|
||||||
return t[1]..":", table.concat(t, ":", 2)
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:seek(units)
|
|
||||||
local h = cx.active.current.hovered
|
|
||||||
if h and h.url == self.file.url then
|
|
||||||
ya.manager_emit("peek", {
|
|
||||||
tostring(math.max(0, cx.active.preview.skip + units)),
|
|
||||||
only_if = tostring(self.file.url),
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:preload()
|
|
||||||
local cache = ya.file_cache(self)
|
|
||||||
if not cache or fs.cha(cache) then
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
local output = Command("exiftool")
|
|
||||||
:args({ "-b", "-CoverArt", "-Picture", tostring(self.file.url) })
|
|
||||||
:stdout(Command.PIPED)
|
|
||||||
:stderr(Command.PIPED)
|
|
||||||
:output()
|
|
||||||
|
|
||||||
if not output then
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
return fs.write(cache, output.stdout) and 1 or 2
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2023 yazi-rs
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
# full-border.yazi
|
|
||||||
|
|
||||||
Add a full border to Yazi to make it look fancier.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
```sh
|
|
||||||
ya pack -a yazi-rs/plugins#full-border
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
Add this to your `init.lua` to enable the plugin:
|
|
||||||
|
|
||||||
```lua
|
|
||||||
require("full-border"):setup()
|
|
||||||
```
|
|
||||||
|
|
||||||
Or you can customize the border type:
|
|
||||||
|
|
||||||
```lua
|
|
||||||
require("full-border"):setup {
|
|
||||||
-- Available values: ui.Border.PLAIN, ui.Border.ROUNDED
|
|
||||||
type = ui.Border.PLAIN,
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
local function setup(_, opts)
|
|
||||||
local type = opts and opts.type or ui.Border.ROUNDED
|
|
||||||
local old_build = Tab.build
|
|
||||||
|
|
||||||
Tab.build = function(self, ...)
|
|
||||||
local bar = function(c, x, y)
|
|
||||||
if x <= 0 or x == self._area.w - 1 then
|
|
||||||
return ui.Bar(ui.Rect.default, ui.Bar.TOP)
|
|
||||||
end
|
|
||||||
|
|
||||||
return ui.Bar(
|
|
||||||
ui.Rect { x = x, y = math.max(0, y), w = ya.clamp(0, self._area.w - x, 1), h = math.min(1, self._area.h) },
|
|
||||||
ui.Bar.TOP
|
|
||||||
):symbol(c)
|
|
||||||
end
|
|
||||||
|
|
||||||
local c = self._chunks
|
|
||||||
self._chunks = {
|
|
||||||
c[1]:padding(ui.Padding.y(1)),
|
|
||||||
c[2]:padding(ui.Padding(c[1].w > 0 and 0 or 1, c[3].w > 0 and 0 or 1, 1, 1)),
|
|
||||||
c[3]:padding(ui.Padding.y(1)),
|
|
||||||
}
|
|
||||||
|
|
||||||
local style = THEME.manager.border_style
|
|
||||||
self._base = ya.list_merge(self._base or {}, {
|
|
||||||
ui.Border(self._area, ui.Border.ALL):type(type):style(style),
|
|
||||||
ui.Bar(self._chunks[1], ui.Bar.RIGHT):style(style),
|
|
||||||
ui.Bar(self._chunks[3], ui.Bar.LEFT):style(style),
|
|
||||||
|
|
||||||
bar("┬", c[1].right - 1, c[1].y),
|
|
||||||
bar("┴", c[1].right - 1, c[1].bottom - 1),
|
|
||||||
bar("┬", c[2].right, c[2].y),
|
|
||||||
bar("┴", c[2].right, c[2].bottom - 1),
|
|
||||||
})
|
|
||||||
|
|
||||||
old_build(self, ...)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return { setup = setup }
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
Copyright © 2024 Reledia <reledia@prontonmail.com>
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
# glow.yazi
|
|
||||||
|
|
||||||
Plugin for [Yazi](https://github.com/sxyazi/yazi) to preview markdown files with [glow](https://github.com/charmbracelet/glow). To install, clone the repo inside your `~/.config/yazi/plugins/`:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/Reledia/glow.yazi.git
|
|
||||||
```
|
|
||||||
|
|
||||||
then include it in your `yazi.toml` to use:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[plugin]
|
|
||||||
prepend_previewers = [
|
|
||||||
{ name = "*.md", run = "glow" },
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
Make sure you have [glow](https://github.com/charmbracelet/glow) installed, and can be found in `PATH`.
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
function M:peek()
|
|
||||||
local child = Command("glow")
|
|
||||||
:args({
|
|
||||||
"--style",
|
|
||||||
"dark",
|
|
||||||
"--width",
|
|
||||||
tostring(self.area.w),
|
|
||||||
tostring(self.file.url),
|
|
||||||
})
|
|
||||||
:stdout(Command.PIPED)
|
|
||||||
:stderr(Command.PIPED)
|
|
||||||
:spawn()
|
|
||||||
|
|
||||||
if not child then
|
|
||||||
return self:fallback_to_builtin()
|
|
||||||
end
|
|
||||||
|
|
||||||
local limit = self.area.h
|
|
||||||
local i, lines = 0, ""
|
|
||||||
repeat
|
|
||||||
local next, event = child:read_line()
|
|
||||||
if event == 1 then
|
|
||||||
return self:fallback_to_builtin()
|
|
||||||
elseif event ~= 0 then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
|
|
||||||
i = i + 1
|
|
||||||
if i > self.skip then
|
|
||||||
lines = lines .. next
|
|
||||||
end
|
|
||||||
until i >= self.skip + limit
|
|
||||||
|
|
||||||
child:start_kill()
|
|
||||||
if self.skip > 0 and i < self.skip + limit then
|
|
||||||
ya.manager_emit(
|
|
||||||
"peek",
|
|
||||||
{ tostring(math.max(0, i - limit)), only_if = tostring(self.file.url), upper_bound = "" }
|
|
||||||
)
|
|
||||||
else
|
|
||||||
lines = lines:gsub("\t", string.rep(" ", PREVIEW.tab_size))
|
|
||||||
ya.preview_widgets(self, { ui.Paragraph.parse(self.area, lines) })
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:seek(units)
|
|
||||||
local h = cx.active.current.hovered
|
|
||||||
if h and h.url == self.file.url then
|
|
||||||
local step = math.floor(units * self.area.h / 10)
|
|
||||||
ya.manager_emit("peek", {
|
|
||||||
tostring(math.max(0, cx.active.preview.skip + step)),
|
|
||||||
only_if = tostring(self.file.url),
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:fallback_to_builtin()
|
|
||||||
local _, bound = ya.preview_code(self)
|
|
||||||
if bound then
|
|
||||||
ya.manager_emit("peek", { tostring(bound), only_if = tostring(self.file.url), upper_bound = "" })
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
Copyright © 2024 Reledia <reledia@prontonmail.com>
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
# miller.yazi
|
|
||||||
|
|
||||||
[Miller](https://github.com/johnkerl/miller) now in [yazi](https://github.com/sxyazi/yazi). To install, clone the repo inside `~/.config/yazi/plugins/`:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[plugin]
|
|
||||||
prepend_previewers = [
|
|
||||||
{ mime = "text/csv", run = "miller"},
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
## Preview
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Color
|
|
||||||
|
|
||||||
To change colors of keys and values, edit the `init.lua` file after the `--key-color` and `--value-color` flags. To view a list of possible colors, use `mlr --list-color-names`. Make sure to have miller installed and inside your PATH.
|
|
||||||
|
|
||||||
## Other types of file
|
|
||||||
|
|
||||||
To adapt this plugin to the other format supported from miller (like json):
|
|
||||||
- copy the plugin folder
|
|
||||||
- change the name of the copied folder into miller_(fmt)
|
|
||||||
- change the `--icsv` flag inside `init.lua` to `--i(fmt)`
|
|
||||||
- add the correct mime/name rule into `prepend_previewers` and the exec as `miller_(fmt)`
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
function M:peek()
|
|
||||||
local child = Command("mlr")
|
|
||||||
:args({
|
|
||||||
"--icsv",
|
|
||||||
"--opprint",
|
|
||||||
"-C",
|
|
||||||
"--key-color",
|
|
||||||
"darkcyan",
|
|
||||||
"--value-color",
|
|
||||||
"grey70",
|
|
||||||
"cat",
|
|
||||||
tostring(self.file.url),
|
|
||||||
})
|
|
||||||
:stdout(Command.PIPED)
|
|
||||||
:stderr(Command.PIPED)
|
|
||||||
:spawn()
|
|
||||||
|
|
||||||
local limit = self.area.h
|
|
||||||
local i, lines = 0, ""
|
|
||||||
repeat
|
|
||||||
local next, event = child:read_line()
|
|
||||||
if event == 1 then
|
|
||||||
ya.err(tostring(event))
|
|
||||||
elseif event ~= 0 then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
|
|
||||||
i = i + 1
|
|
||||||
if i > self.skip then
|
|
||||||
lines = lines .. next
|
|
||||||
end
|
|
||||||
until i >= self.skip + limit
|
|
||||||
|
|
||||||
child:start_kill()
|
|
||||||
if self.skip > 0 and i < self.skip + limit then
|
|
||||||
ya.manager_emit(
|
|
||||||
"peek",
|
|
||||||
{ tostring(math.max(0, i - limit)), only_if = tostring(self.file.url), upper_bound = "" }
|
|
||||||
)
|
|
||||||
else
|
|
||||||
lines = lines:gsub("\t", string.rep(" ", PREVIEW.tab_size))
|
|
||||||
ya.preview_widgets(self, { ui.Paragraph.parse(self.area, lines) })
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:seek(units)
|
|
||||||
local h = cx.active.current.hovered
|
|
||||||
if h and h.url == self.file.url then
|
|
||||||
local step = math.floor(units * self.area.h / 10)
|
|
||||||
ya.manager_emit("peek", {
|
|
||||||
tostring(math.max(0, cx.active.preview.skip + step)),
|
|
||||||
only_if = tostring(self.file.url),
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2024 ndtoan96
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
||||||
# ouch.yazi
|
|
||||||
|
|
||||||
[ouch](https://github.com/ouch-org/ouch) plugin for [Yazi](https://github.com/sxyazi/yazi).
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Features
|
|
||||||
- Archive preview
|
|
||||||
- Compression
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Linux/macOS
|
|
||||||
git clone https://github.com/ndtoan96/ouch.yazi.git ~/.config/yazi/plugins/ouch.yazi
|
|
||||||
|
|
||||||
# Windows
|
|
||||||
git clone https://github.com/ndtoan96/ouch.yazi.git %AppData%\yazi\config\plugins\ouch.yazi
|
|
||||||
```
|
|
||||||
|
|
||||||
Make sure you have [ouch](https://github.com/ouch-org/ouch) installed and in your `PATH`.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
### Preview
|
|
||||||
For archive preview, add this to your `yazi.toml`:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[plugin]
|
|
||||||
prepend_previewers = [
|
|
||||||
# Archive previewer
|
|
||||||
{ mime = "application/*zip", run = "ouch" },
|
|
||||||
{ mime = "application/x-tar", run = "ouch" },
|
|
||||||
{ mime = "application/x-bzip2", run = "ouch" },
|
|
||||||
{ mime = "application/x-7z-compressed", run = "ouch" },
|
|
||||||
{ mime = "application/x-rar", run = "ouch" },
|
|
||||||
{ mime = "application/x-xz", run = "ouch" },
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
Now go to an archive on Yazi, you should see the archive's content in the preview pane. You can use `Alt-j` and `Alt-k` to roll up and down the preview.
|
|
||||||
|
|
||||||
If you want to change the icon or the style of text, you can modify the `peek` function in `init.lua` file (all of them are stored in the `lines` variable).
|
|
||||||
|
|
||||||
### Compression
|
|
||||||
For compession, add this to your `keymap.toml`:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[[manager.prepend_keymap]]
|
|
||||||
on = ["C"]
|
|
||||||
run = "plugin ouch --args=zip"
|
|
||||||
desc = "Compress with ouch"
|
|
||||||
```
|
|
||||||
|
|
||||||
The `--args=zip` part tells the plugin that default format is `zip`. You can change that to whatever format you want.
|
|
||||||
|
|
||||||
### Decompression
|
|
||||||
This plugin does not provide a decompression feature because it already is supported by Yazi.
|
|
||||||
To decompress with `ouch`, configure the opener in `yazi.toml`.
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[opener]
|
|
||||||
extract = [
|
|
||||||
{ run = 'ouch d -y "%*"', desc = "Extract here with ouch", for = "windows" },
|
|
||||||
{ run = 'ouch d -y "$@"', desc = "Extract here with ouch", for = "unix" },
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
@ -1,143 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
function M:peek()
|
|
||||||
local child = Command("ouch")
|
|
||||||
:args({ "l", "-t", "-y", tostring(self.file.url) })
|
|
||||||
:stdout(Command.PIPED)
|
|
||||||
:stderr(Command.PIPED)
|
|
||||||
:spawn()
|
|
||||||
local limit = self.area.h
|
|
||||||
local file_name = string.match(tostring(self.file.url), ".*[/\\](.*)")
|
|
||||||
local lines = string.format("\x1b[2m📁 %s\x1b[0m\n", file_name)
|
|
||||||
local num_lines = 1
|
|
||||||
local num_skip = 0
|
|
||||||
repeat
|
|
||||||
local line, event = child:read_line()
|
|
||||||
if event == 1 then
|
|
||||||
ya.err(tostring(event))
|
|
||||||
elseif event ~= 0 then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
|
|
||||||
if line:find('Archive', 1, true) ~= 1 and line:find('[INFO]', 1, true) ~= 1 then
|
|
||||||
if num_skip >= self.skip then
|
|
||||||
lines = lines .. line
|
|
||||||
num_lines = num_lines + 1
|
|
||||||
else
|
|
||||||
num_skip = num_skip + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
until num_lines >= limit
|
|
||||||
|
|
||||||
child:start_kill()
|
|
||||||
if self.skip > 0 and num_lines < limit then
|
|
||||||
ya.manager_emit(
|
|
||||||
"peek",
|
|
||||||
{ tostring(math.max(0, self.skip - (limit - num_lines))), only_if = tostring(self.file.url), upper_bound = "" }
|
|
||||||
)
|
|
||||||
else
|
|
||||||
ya.preview_widgets(self, { ui.Paragraph.parse(self.area, lines) })
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:seek(units)
|
|
||||||
local h = cx.active.current.hovered
|
|
||||||
if h and h.url == self.file.url then
|
|
||||||
local step = math.floor(units * self.area.h / 10)
|
|
||||||
ya.manager_emit("peek", {
|
|
||||||
math.max(0, cx.active.preview.skip + step),
|
|
||||||
only_if = tostring(self.file.url),
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Check if file exists
|
|
||||||
local function file_exists(name)
|
|
||||||
local f = io.open(name, "r")
|
|
||||||
if f ~= nil then
|
|
||||||
io.close(f)
|
|
||||||
return true
|
|
||||||
else
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Get the files that need to be compressed and infer a default archive name
|
|
||||||
local get_compression_target = ya.sync(function()
|
|
||||||
local tab = cx.active
|
|
||||||
local default_name
|
|
||||||
local paths = {}
|
|
||||||
if #tab.selected == 0 then
|
|
||||||
if tab.current.hovered then
|
|
||||||
local name = tab.current.hovered.name
|
|
||||||
default_name = name
|
|
||||||
table.insert(paths, name)
|
|
||||||
else
|
|
||||||
return
|
|
||||||
end
|
|
||||||
else
|
|
||||||
default_name = tab.current.cwd:name()
|
|
||||||
for _, url in pairs(tab.selected) do
|
|
||||||
table.insert(paths, tostring(url))
|
|
||||||
end
|
|
||||||
-- The compression targets are aquired, now unselect them
|
|
||||||
ya.manager_emit("escape", {})
|
|
||||||
end
|
|
||||||
return paths, default_name
|
|
||||||
end)
|
|
||||||
|
|
||||||
local function invoke_compress_command(paths, name)
|
|
||||||
local cmd_output, err_code = Command("ouch")
|
|
||||||
:args({ "c", "-y" })
|
|
||||||
:args(paths)
|
|
||||||
:arg(name)
|
|
||||||
:stderr(Command.PIPED)
|
|
||||||
:output()
|
|
||||||
if err_code ~= nil then
|
|
||||||
ya.notify({
|
|
||||||
title = "Failed to run ouch command",
|
|
||||||
content = "Status: " .. err_code,
|
|
||||||
timeout = 5.0,
|
|
||||||
level = "error",
|
|
||||||
})
|
|
||||||
elseif not cmd_output.status.success then
|
|
||||||
ya.notify({
|
|
||||||
title = "Compression failed: status code " .. cmd_output.status.code,
|
|
||||||
content = cmd_output.stderr,
|
|
||||||
timeout = 5.0,
|
|
||||||
level = "error",
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:entry(args)
|
|
||||||
local default_fmt = args[1]
|
|
||||||
|
|
||||||
-- Get the files that need to be compressed and infer a default archive name
|
|
||||||
local paths, default_name = get_compression_target()
|
|
||||||
|
|
||||||
-- Get archive name from user
|
|
||||||
local output_name, name_event = ya.input({
|
|
||||||
title = "Create archive:",
|
|
||||||
value = default_name .. "." .. default_fmt,
|
|
||||||
position = { "top-center", y = 3, w = 40 },
|
|
||||||
})
|
|
||||||
if name_event ~= 1 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Get confirmation if file exists
|
|
||||||
if file_exists(output_name) then
|
|
||||||
local confirm, confirm_event = ya.input({
|
|
||||||
title = "Overwrite " .. output_name .. "? (y/N)",
|
|
||||||
position = { "top-center", y = 3, w = 40 },
|
|
||||||
})
|
|
||||||
if not (confirm_event == 1 and confirm:lower() == "y") then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
invoke_compress_command(paths, output_name)
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2024 Rolv Apneseth
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
||||||
# starship.yazi
|
|
||||||
|
|
||||||
Starship prompt plugin for [Yazi](https://github.com/sxyazi/yazi)
|
|
||||||
|
|
||||||
<https://github.com/Rolv-Apneseth/starship.yazi/assets/69486699/f7314687-5cb1-4d66-8d9d-cca960ba6716>
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
- [Yazi](https://github.com/sxyazi/yazi) - latest main branch
|
|
||||||
- [starship](https://github.com/starship/starship)
|
|
||||||
|
|
||||||
### Package manager
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ya pack -a Rolv-Apneseth/starship
|
|
||||||
```
|
|
||||||
|
|
||||||
### Manual
|
|
||||||
|
|
||||||
#### Linux / MacOS
|
|
||||||
|
|
||||||
```sh
|
|
||||||
git clone https://github.com/Rolv-Apneseth/starship.yazi.git ~/.config/yazi/plugins/starship.yazi
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Windows
|
|
||||||
|
|
||||||
```sh
|
|
||||||
git clone https://github.com/Rolv-Apneseth/starship.yazi.git %AppData%\yazi\config\plugins\starship.yazi
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
Add this to `~/.config/yazi/init.lua`:
|
|
||||||
|
|
||||||
```lua
|
|
||||||
require("starship"):setup()
|
|
||||||
```
|
|
||||||
|
|
||||||
Make sure you have [starship](https://github.com/starship/starship) installed and in your `PATH`.
|
|
||||||
|
|
||||||
## Extra
|
|
||||||
|
|
||||||
If you use a `starship` theme with a background colour, it might look a bit to cramped on just the one line `Yazi` gives the header by default. To fix this, you can add this to your `init.lua`:
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Click to expand</summary>
|
|
||||||
|
|
||||||
```lua
|
|
||||||
local old_build = Tab.build
|
|
||||||
Tab.build = function(self, ...)
|
|
||||||
local bar = function(c, x, y)
|
|
||||||
if x <= 0 or x == self._area.w - 1 then
|
|
||||||
return ui.Bar(ui.Rect.default, ui.Bar.TOP)
|
|
||||||
end
|
|
||||||
|
|
||||||
return ui.Bar(
|
|
||||||
ui.Rect({
|
|
||||||
x = x,
|
|
||||||
y = math.max(0, y),
|
|
||||||
w = ya.clamp(0, self._area.w - x, 1),
|
|
||||||
h = math.min(1, self._area.h),
|
|
||||||
}),
|
|
||||||
ui.Bar.TOP
|
|
||||||
):symbol(c)
|
|
||||||
end
|
|
||||||
|
|
||||||
local c = self._chunks
|
|
||||||
self._chunks = {
|
|
||||||
c[1]:padding(ui.Padding.y(1)),
|
|
||||||
c[2]:padding(ui.Padding(c[1].w > 0 and 0 or 1, c[3].w > 0 and 0 or 1, 1, 1)),
|
|
||||||
c[3]:padding(ui.Padding.y(1)),
|
|
||||||
}
|
|
||||||
|
|
||||||
local style = THEME.manager.border_style
|
|
||||||
self._base = ya.list_merge(self._base or {}, {
|
|
||||||
-- Enable for full border
|
|
||||||
--[[ ui.Border(self._area, ui.Border.ALL):type(ui.Border.ROUNDED):style(style), ]]
|
|
||||||
ui.Bar(self._chunks[1], ui.Bar.RIGHT):style(style),
|
|
||||||
ui.Bar(self._chunks[3], ui.Bar.LEFT):style(style),
|
|
||||||
|
|
||||||
bar("┬", c[1].right - 1, c[1].y),
|
|
||||||
bar("┴", c[1].right - 1, c[1].bottom - 1),
|
|
||||||
bar("┬", c[2].right, c[2].y),
|
|
||||||
bar("┴", c[2].right, c[1].bottom - 1),
|
|
||||||
})
|
|
||||||
|
|
||||||
old_build(self, ...)
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> This works by overriding your `Tab.build` function so make sure this is the only place you're doing that in your config. For example, this would be incompatible with the [full-border plugin](https://github.com/yazi-rs/plugins/tree/main/full-border.yazi)
|
|
||||||
|
|
||||||
## Thanks
|
|
||||||
|
|
||||||
- [sxyazi](https://github.com/sxyazi) for providing the code for this plugin and the demo video [in this comment](https://github.com/sxyazi/yazi/issues/767#issuecomment-1977082834)
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
local save = ya.sync(function(st, cwd, output)
|
|
||||||
if cx.active.current.cwd == Url(cwd) then
|
|
||||||
st.output = output
|
|
||||||
ya.render()
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
return {
|
|
||||||
setup = function(st)
|
|
||||||
Header:children_remove(1, Header.LEFT)
|
|
||||||
Header:children_add(function() return ui.Line.parse(st.output or "") end, 1000, Header.LEFT)
|
|
||||||
|
|
||||||
ps.sub("cd", function()
|
|
||||||
local cwd = cx.active.current.cwd
|
|
||||||
if st.cwd ~= cwd then
|
|
||||||
st.cwd = cwd
|
|
||||||
ya.manager_emit("plugin", { st._id, args = ya.quote(tostring(cwd), true) })
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end,
|
|
||||||
|
|
||||||
entry = function(_, args)
|
|
||||||
local output = Command("starship"):arg("prompt"):cwd(args[1]):env("STARSHIP_SHELL", ""):output()
|
|
||||||
if output then
|
|
||||||
save(args[1], output.stdout:gsub("^%s+", ""))
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
||||||
{ pkgs, ... }: {
|
|
||||||
|
|
||||||
# yazi хуже ranger для моих потребностей, стоит на тесты. Ниже один из примеров, где yazi уступает
|
|
||||||
# Если открыть картинку через yazi, то он просто передаст картинку или каталог в качестве аргумента,
|
|
||||||
# из-за чего сортировка при пролистывании картинок будет "рандомной"
|
|
||||||
# Если же открыть картинку через ranger, то в качетве аргумента он передаст список файлов,
|
|
||||||
# где они отсортированы в том порядке, в котором отображаются у меня на экране в самом ranger
|
|
||||||
|
|
||||||
home = {
|
|
||||||
packages = with pkgs; [
|
|
||||||
ffmpegthumbnailer # for video thumbnails
|
|
||||||
unar # for archive preview
|
|
||||||
jq # for JSON preview
|
|
||||||
poppler # for PDF preview
|
|
||||||
fd # for file searching
|
|
||||||
ripgrep # for file content searching
|
|
||||||
fzf # for quick file subtree navigation
|
|
||||||
zoxide # for historical directories navigation
|
|
||||||
xclip # for system clipboard support on x11
|
|
||||||
#xsel # как xclip, но вроде как функционал больше
|
|
||||||
#wl-clipboard # for system clipboard support on wayland
|
|
||||||
|
|
||||||
# for plugins
|
|
||||||
exiftool # for exifaudio.yazi
|
|
||||||
glow # for glow.yazi
|
|
||||||
ouch # for ouch.yazi
|
|
||||||
miller # for miller.yazi
|
|
||||||
starship # for starship.yazi
|
|
||||||
];
|
|
||||||
|
|
||||||
file = {
|
|
||||||
".config/yazi/yazi.toml".source = ./yazi.toml;
|
|
||||||
".config/yazi/keymap.toml".source = ./keymap.toml;
|
|
||||||
".config/yazi/plugins".source = ./plugins; # https://yazi-rs.github.io/docs/resources/#functional
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.yazi = { # Файловый менеджер в терминале https://yazi-rs.github.io/features
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
enableBashIntegration = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
# enableFishIntegration = true;
|
|
||||||
# enableNushellIntegration = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
# Тут будут мои настройки
|
|
||||||
|
|
||||||
[manager]
|
|
||||||
sort_by = "natural" # Как алфавит, но не "1 < 10 < 2", а "1 < 2 < 10"
|
|
||||||
sort_dir_first = true # Чтоб директории были первыми, не смотря на сортировку
|
|
||||||
#show_hidden = true # Показывать скрытые файлы. Спорно, потому что они первые в списке, бесит. Мб проще бинд юзать
|
|
||||||
|
|
||||||
[plugin]
|
|
||||||
prepend_previewers = [
|
|
||||||
# Preview markdown files
|
|
||||||
{ name = "*.md", run = "glow" },
|
|
||||||
# Preview audio metadata and cover
|
|
||||||
{ mime = "audio/*", run = "exifaudio"},
|
|
||||||
# Preview csv files
|
|
||||||
{ mime = "text/csv", run = "miller"},
|
|
||||||
# Preview archives
|
|
||||||
{ mime = "application/*zip", run = "ouch" },
|
|
||||||
{ mime = "application/x-tar", run = "ouch" },
|
|
||||||
{ mime = "application/x-bzip2", run = "ouch" },
|
|
||||||
{ mime = "application/x-7z-compressed", run = "ouch" },
|
|
||||||
{ mime = "application/x-rar", run = "ouch" },
|
|
||||||
{ mime = "application/x-xz", run = "ouch" },
|
|
||||||
]
|
|
||||||
|
|
||||||
[opener]
|
|
||||||
view = [
|
|
||||||
{ run = 'imv "$@"', desc = "View selected images", orphan = true },
|
|
||||||
]
|
|
||||||
|
|
||||||
[open]
|
|
||||||
prepend_rules = [ # Чтоб мои настройки были в приоритете
|
|
||||||
{ mime = "image/*", use = "view" },
|
|
||||||
]
|
|
||||||
|
|
@ -19,8 +19,6 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
# nixvim =
|
|
||||||
|
|
||||||
nix-gaming = { # Удобно ставить некоторые игры
|
nix-gaming = { # Удобно ставить некоторые игры
|
||||||
url = "github:fufexan/nix-gaming";
|
url = "github:fufexan/nix-gaming";
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
@ -29,8 +27,7 @@
|
||||||
|
|
||||||
outputs = { self, nixpkgs, ... }@inputs:
|
outputs = { self, nixpkgs, ... }@inputs:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux"; # Не понимаю зачем, если это в hardware.nix указывается
|
system = "x86_64-linux";
|
||||||
# pkgs = nixpkgs.legacyPackages.${system};
|
|
||||||
config = {
|
config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
rocmSupport = true;
|
rocmSupport = true;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
imports = [
|
imports = [
|
||||||
./ranger/ranger.nix
|
./ranger/ranger.nix
|
||||||
|
|
||||||
./gui/vscode.nix
|
# ./gui/vscode.nix
|
||||||
|
|
||||||
./imv/imv.nix
|
./imv/imv.nix
|
||||||
./mpv/mpv.nix
|
./mpv/mpv.nix
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
./terminal/zsh.nix
|
./terminal/zsh.nix
|
||||||
|
|
||||||
./mangohud.nix
|
./mangohud.nix
|
||||||
./symlinks.nix
|
# ./symlinks.nix
|
||||||
|
|
||||||
##############
|
##############
|
||||||
## WM (X11) ##
|
## WM (X11) ##
|
||||||
|
|
@ -28,21 +28,12 @@
|
||||||
./wm/dunst.nix
|
./wm/dunst.nix
|
||||||
./wm/lockscreen.nix
|
./wm/lockscreen.nix
|
||||||
|
|
||||||
# Для выключения i3 комментируй все строки ниже
|
# Для выключения i3wm комментируй все строки ниже
|
||||||
./wm/i3.nix
|
./wm/i3.nix
|
||||||
|
|
||||||
# Для выключения bspwm комментируй все строки ниже
|
# Для выключения bspwm комментируй все строки ниже
|
||||||
./wm/bspwm/bspwm.nix
|
./wm/bspwm/bspwm.nix
|
||||||
./wm/bspwm/polybar.nix
|
./wm/bspwm/polybar.nix
|
||||||
./wm/bspwm/sxhkd.nix
|
./wm/bspwm/sxhkd.nix
|
||||||
|
|
||||||
##################
|
|
||||||
## WM (Wayland) ##
|
|
||||||
##################
|
|
||||||
|
|
||||||
# Wayland гавно лаганое, но мб на NixOS дела будут лучше
|
|
||||||
# Мб я сделаю конфиги для sway и hyprland на ags
|
|
||||||
# Каталог wm мб переименовать в X11 и создать отдельный Wayland
|
|
||||||
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ sudo chmod a+rx /usr/local/bin/yt-dlp
|
||||||
|
|
||||||
### Включение нескольких звуковых дорожек
|
### Включение нескольких звуковых дорожек
|
||||||
|
|
||||||
Я немного изменил `menus.lua` в визуальной теме `uosc`. Теперь там появилась возможность включать несколько звуковых дорожек разом. Израдка это может вызывать визуальные артефакты видеоряда в течении 1-2 секунд. Не знаю от чего это зависит. Вот как это работает:
|
Я немного изменил `menus.lua` в визуальной теме `uosc`. Теперь там появилась возможность включать несколько звуковых дорожек разом. Изредка это может вызывать визуальные артефакты видеоряда в течении 1-2 секунд. Не знаю от чего это зависит. Вот как это работает:
|
||||||
|
|
||||||
- Если просто нажимать на звуковую дорожку в меню выбора аудио, то она будет переключаться. Если была активна - выключится, если была не активна - включится
|
- Если просто нажимать на звуковую дорожку в меню выбора аудио, то она будет переключаться. Если была активна - выключится, если была не активна - включится
|
||||||
- Если хочется не переключать, а активировать одну конкретную звуковую дорожку, то на неё надо нажать с зажатым `Ctrl`
|
- Если хочется не переключать, а активировать одну конкретную звуковую дорожку, то на неё надо нажать с зажатым `Ctrl`
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
# Я не уверен надо ли писать "config.lib.file.mkOutOfStoreSymlink"
|
# Я не уверен надо ли писать "config.lib.file.mkOutOfStoreSymlink"
|
||||||
# Вроде это более простой симлинк, чем просто ссылка на файл
|
# Вроде это более простой симлинк, чем просто ссылка на файл
|
||||||
|
# Типо он напрямую симлинк кидает, а не через 100500 симлинков в nix/store
|
||||||
# Но мб меня обманули
|
# Но мб меня обманули
|
||||||
|
|
||||||
{ config, ... }: let
|
{ config, ... }: let
|
||||||
|
|
@ -20,29 +21,14 @@ in {
|
||||||
".password-store".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/.password-store"; # Для утилиты pass
|
".password-store".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/.password-store"; # Для утилиты pass
|
||||||
".ssh".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/.ssh";
|
".ssh".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/.ssh";
|
||||||
|
|
||||||
# Games
|
|
||||||
# ".local/share/osu-wine/osu!/Replays".source = config.lib.file.mkOutOfStoreSymlink "${dir}/games/osu!/Replays";
|
|
||||||
# ".local/share/osu-wine/osu!/Skins".source = config.lib.file.mkOutOfStoreSymlink "${dir}/games/osu!/Skins";
|
|
||||||
# ".local/share/osu-wine/osu!/Songs".source = config.lib.file.mkOutOfStoreSymlink "${dir}/games/osu!/Songs";
|
|
||||||
# ".local/share/osu-wine/osu!/collection.db".source = config.lib.file.mkOutOfStoreSymlink "${dir}/games/osu!/collection.db";
|
|
||||||
# ".local/share/osu-wine/osu!/osu!.buliway.cfg".source = config.lib.file.mkOutOfStoreSymlink "${dir}/games/osu!/osu!.buliway.cfg";
|
|
||||||
|
|
||||||
# Browsers. Мб сделать .force, чтоб удалить сток. А мб руками удалить сток перед этим
|
# Browsers. Мб сделать .force, чтоб удалить сток. А мб руками удалить сток перед этим
|
||||||
".mozilla".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/.mozilla";
|
".mozilla".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/.mozilla";
|
||||||
".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/.librewolf";
|
".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/.librewolf";
|
||||||
|
|
||||||
"Downloads/Telegram Desktop".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Telegram Desktop";
|
"Downloads/Telegram Desktop".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Telegram Desktop";
|
||||||
|
|
||||||
# Не знаю на счёт obs, chatbox, planify, calibre, discord, nekobox
|
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile = { # Это для каталога .config
|
xdg.configFile = { # Это для каталога .config
|
||||||
"qobuz-dl".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Media/Music/Qobuz/.config/qobuz-dl"; # Конфиг для бекапа Qobuz музыки
|
|
||||||
# "chromium".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/chromium";
|
# "chromium".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/chromium";
|
||||||
|
|
||||||
# Ебаный qt, как я тебя ненавижу
|
|
||||||
# "Kvantum".source = ../shit/Kvantum;
|
|
||||||
# "qt5ct".source = ../shit/qt5ct
|
|
||||||
# "qt6ct".source = ../shit/qt6ct
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
enableFishIntegration = true;
|
# enableFishIntegration = true;
|
||||||
enableNushellIntegration = true;
|
enableNushellIntegration = true;
|
||||||
|
|
||||||
enableTransience = true; # Fish Shell only. Отображает пустую строку при нажатии enter?
|
enableTransience = true; # Fish Shell only. Отображает пустую строку при нажатии enter?
|
||||||
|
|
|
||||||
|
|
@ -39,9 +39,6 @@
|
||||||
r = "ranger --choosedir=/tmp/choosedir && cd \"$(cat /tmp/choosedir)\"";
|
r = "ranger --choosedir=/tmp/choosedir && cd \"$(cat /tmp/choosedir)\"";
|
||||||
g = "gitui";
|
g = "gitui";
|
||||||
f = "fastfetch";
|
f = "fastfetch";
|
||||||
yt = "cd /mnt/backups/Media/yt-dlp"; # Конфиги для бекапа YouTube
|
|
||||||
qb = "cd /mnt/backups/Media/Music/Qobuz/qdl"; # Бекапить музыку с Qobuz
|
|
||||||
html = "python3 /mnt/backups/html-library/generate_gallery.py --path"; # Html image gallery
|
|
||||||
};
|
};
|
||||||
|
|
||||||
history = {
|
history = {
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,10 @@
|
||||||
# Как я понял, эти команды выполняются в начале bspwmrc
|
# Как я понял, эти команды выполняются в начале bspwmrc
|
||||||
# Ниже настройки для основного монитора. Мб вместе с --primary надо
|
# Ниже настройки для основного монитора. Мб вместе с --primary надо
|
||||||
# И настройки для второго (правого) монитора
|
# И настройки для второго (правого) монитора
|
||||||
extraConfigEarly = ''
|
# extraConfigEarly = ''
|
||||||
xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165
|
# xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165
|
||||||
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 60 --right-of DisplayPort-2
|
# xrandr --output HDMI-A-0 --mode 1920x1080 --rate 60 --right-of DisplayPort-2
|
||||||
'';
|
# '';
|
||||||
|
|
||||||
# Эти команды выполняются в конце bspwmrc
|
# Эти команды выполняются в конце bspwmrc
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
|
@ -24,10 +24,7 @@
|
||||||
"sxhkd"
|
"sxhkd"
|
||||||
"nm-applet"
|
"nm-applet"
|
||||||
"ksnip"
|
"ksnip"
|
||||||
# "nekoray"
|
"xset s off -dpms" # Отменить затухание экрана через X минут
|
||||||
# "obsidian"
|
|
||||||
# "planify"
|
|
||||||
# "xset s off -dpms" # Отменить затухание экрана через X минут
|
|
||||||
"spice-vdagent" # Для виртуалки
|
"spice-vdagent" # Для виртуалки
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -72,12 +69,10 @@
|
||||||
"librewolf:librewolf:Save Image" = floating;
|
"librewolf:librewolf:Save Image" = floating;
|
||||||
"SshAskpass" = floating;
|
"SshAskpass" = floating;
|
||||||
"Nm-connection-editor" = floating;
|
"Nm-connection-editor" = floating;
|
||||||
"nekoray" = floating;
|
|
||||||
"Kvantum Manager" = floating;
|
"Kvantum Manager" = floating;
|
||||||
"qt5ct" = floating;
|
"qt5ct" = floating;
|
||||||
"qt6ct" = floating;
|
"qt6ct" = floating;
|
||||||
"ksnip" = floating1600x900;
|
"ksnip" = floating1600x900;
|
||||||
# "ark" = floating1200x800; # Удалил, чтоб blowjob на экран не выдавало
|
|
||||||
"file-roller" = floating;
|
"file-roller" = floating;
|
||||||
"floating-terminal" = floating1200x800;
|
"floating-terminal" = floating1200x800;
|
||||||
"pavucontrol" = floating900x600;
|
"pavucontrol" = floating900x600;
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,14 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# ./env.nix # Мб не надо, ибо редачу через home.nix?
|
# ./filesystems.nix
|
||||||
./filesystems.nix
|
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./hibernate.nix
|
# ./hibernate.nix
|
||||||
./locale.nix
|
./locale.nix
|
||||||
./network.nix
|
./network.nix
|
||||||
./sound.nix
|
./sound.nix
|
||||||
./stylix.nix
|
./stylix.nix
|
||||||
./virtualisation.nix
|
./virtualisation.nix
|
||||||
./vr.nix
|
# ./vr.nix
|
||||||
./xserver.nix
|
./xserver.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
environment.variables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
|
# Тут настраивается автомаунт нужных дисков
|
||||||
|
# Замени значения на свои. Узнать uuid можно через `lsblk -f`
|
||||||
|
|
||||||
{
|
{
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/mnt/backups" = {
|
"/mnt/backups" = {
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,6 @@
|
||||||
{ pkgs, ... }: { # Блютуз, интернет, wifi
|
{ # Блютуз, интернет, wifi
|
||||||
hardware.bluetooth = {
|
hardware.bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# settings = {
|
|
||||||
# General = {
|
|
||||||
# Enable = "Source,Sink,Media,Socket";
|
|
||||||
# Experimental = true;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
|
|
@ -16,22 +10,7 @@
|
||||||
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
|
|
||||||
firewall.enable = false;
|
firewall.enable = false;
|
||||||
# firewall = {
|
|
||||||
# allowedTCPPorts = [ 2080 ]; # For nekoray
|
|
||||||
# allowedUDPPorts = [ 2080 ]; # Clients and peers can use the same port, see listenport
|
|
||||||
# };
|
|
||||||
# firewall = {
|
|
||||||
# # allowedUDPPorts = [ 53 2017 2080 20170 20171 20172 46067 55084 57282 58374 ]; # For nekoray
|
|
||||||
# # allowedTCPPorts = [ 53 2017 2080 20170 20171 20172 46067 55084 57282 58374 ]; # Clients and peers can use the same port, see listenport
|
|
||||||
# allowedUDPPortRanges = [ { from = 1; to = 65535; } ];
|
|
||||||
# allowedTCPPortRanges = [ { from = 1; to = 65535; } ];
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.blueman.enable = true; # Tray for bluetooth
|
services.blueman.enable = true; # Tray for bluetooth
|
||||||
|
|
||||||
# services.sing-box = { # Тоже блочит инет, как и nekoray
|
|
||||||
# enable = true;
|
|
||||||
# settings = builtins.fromJSON (builtins.readFile "/home/buliway/nixos-private-dots/modules/nixos/singbox.json");
|
|
||||||
# };
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,23 +54,23 @@
|
||||||
|
|
||||||
# Ниже настройки имеют формат "число - название"
|
# Ниже настройки имеют формат "число - название"
|
||||||
# Число определяет приоритет настройки, а название описывает цель конфига
|
# Число определяет приоритет настройки, а название описывает цель конфига
|
||||||
extraConfig.pipewire = {
|
# extraConfig.pipewire = {
|
||||||
"10-clock-rate" = {
|
# "10-clock-rate" = {
|
||||||
"context.properties" = {
|
# "context.properties" = {
|
||||||
"default.clock.rate" = 48000;
|
# "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)
|
# # Ниже настройки для минимальной задержки в играх (например osu!stable через wine)
|
||||||
# quantum — устанавливает размер буфера (чем меньше значение, тем ниже задержка, но выше нагрузка на процессор).
|
# # quantum — устанавливает размер буфера (чем меньше значение, тем ниже задержка, но выше нагрузка на процессор).
|
||||||
# Можно посчитать теоретическую задержку в секундах, поделив quantum на rate (48/48000 будет 1мс)
|
# # Можно посчитать теоретическую задержку в секундах, поделив quantum на rate (48/48000 будет 1мс)
|
||||||
# Если со звуком есть проблемы (щелчки, прерывания), попробуйте увеличить значение (64, 128, 256) или просто удалить эту настройку
|
# # Если со звуком есть проблемы (щелчки, прерывания), попробуйте увеличить значение (64, 128, 256) или просто удалить эту настройку
|
||||||
# По умолчанию я закомментировал настройку, чтоб у людей не было проблем
|
# # По умолчанию я закомментировал настройку, чтоб у людей не было проблем
|
||||||
# "92-low-latency" = {
|
# # "92-low-latency" = {
|
||||||
# default.clock.quantum = 32; # default = 1024
|
# # default.clock.quantum = 32; # default = 1024
|
||||||
# default.clock.min-quantum = 32; # default = 32
|
# # default.clock.min-quantum = 32; # default = 32
|
||||||
# default.clock.max-quantum = 32; # default = 2048
|
# # default.clock.max-quantum = 32; # default = 2048
|
||||||
|
# # };
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
# Поэтому сразу поставил всё что надо и не пробовал найти необходимый минимум
|
# Поэтому сразу поставил всё что надо и не пробовал найти необходимый минимум
|
||||||
# Мб пригодится поставить opencomposite для трансляции OpenVR в OpenXR
|
# Мб пригодится поставить opencomposite для трансляции OpenVR в OpenXR
|
||||||
|
|
||||||
{ pkgs, ... }: {
|
{
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
|
||||||
# Open source XR runtime
|
# Open source XR runtime
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
sddm = {
|
sddm = {
|
||||||
# Чтоб задать аватарку юзеру, надо отправить png файл такой командой:
|
# Чтоб задать аватарку юзеру, надо отправить png файл такой командой:
|
||||||
# sudo cp image.png /var/lib/AccountsService/icons/username
|
# sudo cp image.png /var/lib/AccountsService/icons/username
|
||||||
# Тоесть именно username, без .png в конце
|
# То есть именно username, без .png в конце
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = pkgs.kdePackages.sddm; # qt6 sddm
|
# package = pkgs.kdePackages.sddm; # qt6 sddm
|
||||||
theme = "chili";
|
theme = "chili";
|
||||||
|
|
@ -33,16 +33,6 @@
|
||||||
i3.enable = true; # i3-gaps доступен в стоке в новых версиях
|
i3.enable = true; # i3-gaps доступен в стоке в новых версиях
|
||||||
};
|
};
|
||||||
|
|
||||||
# Fully disable DPMS and screen blanking
|
|
||||||
config = ''
|
|
||||||
Section "Extensions"
|
|
||||||
Option "DPMS" "false"
|
|
||||||
EndSection
|
|
||||||
Section "ServerFlags"
|
|
||||||
Option "BlankTime" "0"
|
|
||||||
EndSection
|
|
||||||
'';
|
|
||||||
|
|
||||||
xkb = {
|
xkb = {
|
||||||
layout = "us,ru";
|
layout = "us,ru";
|
||||||
variant = "";
|
variant = "";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,3 @@
|
||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{ pkgs, pkgs2, spkgs, inputs, ... }:
|
{ pkgs, pkgs2, spkgs, inputs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
@ -14,8 +10,8 @@ in {
|
||||||
./packages.nix
|
./packages.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Список сервисов, которые не надо ребутать после rebuild switch
|
# Если какие-то сервисы кладут систему при ребилде,
|
||||||
# Мне это надо, потому что некоторые сервисы кладут систему
|
# то их ребут при ребилде можно выключить таким конфигом:
|
||||||
# systemd.services = {
|
# systemd.services = {
|
||||||
# "accounts-daemon".restartIfChanged = false;
|
# "accounts-daemon".restartIfChanged = false;
|
||||||
# "home-manager-buliway".restartIfChanged = false;
|
# "home-manager-buliway".restartIfChanged = false;
|
||||||
|
|
@ -28,7 +24,6 @@ in {
|
||||||
# ];
|
# ];
|
||||||
|
|
||||||
loader = {
|
loader = {
|
||||||
# systemd-boot.enable = true;
|
|
||||||
grub = {
|
grub = {
|
||||||
enable = true;
|
enable = true;
|
||||||
efiSupport = true;
|
efiSupport = true;
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,9 @@
|
||||||
# Если с каким-то софтом будут проблемы, то можно перенести из "packages.nix" сюда
|
# Если с каким-то софтом будут проблемы, то можно перенести из "packages.nix" сюда
|
||||||
# Например, я читал, что если ставить vscode через configuration.nix, а не через пакеты юзера,
|
# Например, я читал, что если ставить vscode через configuration.nix, а не через пакеты юзера,
|
||||||
# то не получится ставить расширения. Потому что там софт ставится от рута и vscode
|
# то не получится ставить расширения. Потому что там софт ставится от рута и vscode
|
||||||
# будет пытаться установить расширения в каталог nix store, куда нельзя что либо ставить без рута.
|
# будет пытаться установить расширения в каталог nix store, куда нельзя что либо ставить даже с рутом.
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
vscode # Надо в home.packages писать, чтоб расширения ставились без рута
|
vscode # Надо в home.packages писать, чтоб расширения ставились
|
||||||
];
|
];
|
||||||
|
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
|
|
|
||||||
|
|
@ -46,44 +46,26 @@
|
||||||
# greenclip.enable = true; # https://github.com/erebe/greenclip (использую clipmenu вместо этого)
|
# greenclip.enable = true; # https://github.com/erebe/greenclip (использую clipmenu вместо этого)
|
||||||
# fstrim.enable = true; # Чистит ssd для норм производительности. Пока не пользуюсь
|
# fstrim.enable = true; # Чистит ssd для норм производительности. Пока не пользуюсь
|
||||||
# archisteamfarm = {}; # Фарм карточек стима афк. Просто раскомментить мало, надо настроить
|
# archisteamfarm = {}; # Фарм карточек стима афк. Просто раскомментить мало, надо настроить
|
||||||
ollama = let
|
ollama = {
|
||||||
pinPackage =
|
|
||||||
{
|
|
||||||
name,
|
|
||||||
commit,
|
|
||||||
sha256,
|
|
||||||
}:
|
|
||||||
(import (builtins.fetchTarball {
|
|
||||||
inherit sha256;
|
|
||||||
url = "https://github.com/NixOS/nixpkgs/archive/${commit}.tar.gz";
|
|
||||||
}) { system = pkgs.system; }).${name};
|
|
||||||
in {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
acceleration = "rocm";
|
acceleration = "rocm";
|
||||||
# Ollama Port 11434/tcp
|
# Ollama Port 11434/tcp
|
||||||
host = "0.0.0.0";
|
host = "0.0.0.0";
|
||||||
port = 11434;
|
port = 11434;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
# pin ollama v0.5.7 until nixpkgs update
|
|
||||||
# https://github.com/NixOS/nixpkgs/issues/375359
|
|
||||||
# package = (pinPackage {
|
|
||||||
# name = "ollama";
|
|
||||||
# commit = "d0169965cf1ce1cd68e50a63eabff7c8b8959743";
|
|
||||||
# sha256 = "sha256:1hh0p0p42yqrm69kqlxwzx30m7i7xqw9m8f224i3bm6wsj4dxm05";
|
|
||||||
# });
|
|
||||||
package = pkgs2.ollama;
|
package = pkgs2.ollama;
|
||||||
rocmOverrideGfx = "10.3.0";
|
rocmOverrideGfx = "10.3.0"; # Лок версии, чтоб на моей видюхе работало всё
|
||||||
# additional environment variables
|
# additional environment variables
|
||||||
# environmentVariables = { HSA_OVERRIDE_GFX_VERSION="10.3.0"; };
|
# environmentVariables = { HSA_OVERRIDE_GFX_VERSION="10.3.0"; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
nix-ld = {
|
nix-ld = { # Имитация файловой системы обычного линукса и пакеты для этого дела
|
||||||
enable = true;
|
enable = true;
|
||||||
libraries = with pkgs2; [
|
libraries = with pkgs2; [
|
||||||
stdenv.cc.cc
|
stdenv.cc.cc
|
||||||
# Nekoray (Throne)
|
# Для запуска Throne бинаря с гитхаб (форк nekoray)
|
||||||
kdePackages.qtbase
|
kdePackages.qtbase
|
||||||
kdePackages.qttools
|
kdePackages.qttools
|
||||||
kdePackages.qtwayland
|
kdePackages.qtwayland
|
||||||
|
|
@ -116,7 +98,6 @@
|
||||||
glib
|
glib
|
||||||
dbus
|
dbus
|
||||||
krb5
|
krb5
|
||||||
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
|
|
@ -124,7 +105,7 @@
|
||||||
gnupg.agent = {
|
gnupg.agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableSSHSupport = true;
|
enableSSHSupport = true;
|
||||||
pinentryPackage = pkgs.pinentry-qt; # Окно ввода пароля
|
pinentryPackage = pkgs.pinentry-qt; # Окно ввода пароля для gpg
|
||||||
};
|
};
|
||||||
|
|
||||||
appimage = { # Чтоб .appimage работал
|
appimage = { # Чтоб .appimage работал
|
||||||
|
|
@ -135,7 +116,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
thunar = { # Can't I use it with home-manager? WTF
|
thunar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = with pkgs.xfce; [
|
plugins = with pkgs.xfce; [
|
||||||
thunar-media-tags-plugin # Tagging and renaming features for media files
|
thunar-media-tags-plugin # Tagging and renaming features for media files
|
||||||
|
|
@ -145,13 +126,6 @@
|
||||||
};
|
};
|
||||||
xfconf.enable = true; # For Thunar configs
|
xfconf.enable = true; # For Thunar configs
|
||||||
|
|
||||||
# gdk-pixbuf-query-loaders | grep avif
|
|
||||||
# ls /run/current-system/sw/lib/gdk-pixbuf-2.0/2.10.0/loaders/
|
|
||||||
# gdk-pixbuf.modulePackages = with pkgs; [
|
|
||||||
# webp-pixbuf-loader
|
|
||||||
# libavif
|
|
||||||
# ];
|
|
||||||
|
|
||||||
steam = {
|
steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = pkgs2.steam;
|
# package = pkgs2.steam;
|
||||||
|
|
@ -169,15 +143,6 @@
|
||||||
# Я хз надо ли оно мне. https://github.com/ValveSoftware/gamescope
|
# Я хз надо ли оно мне. https://github.com/ValveSoftware/gamescope
|
||||||
# Подробносни тут https://ventureo.codeberg.page/source/linux-gaming.html#gamescope
|
# Подробносни тут https://ventureo.codeberg.page/source/linux-gaming.html#gamescope
|
||||||
gamescope.enable = true;
|
gamescope.enable = true;
|
||||||
|
|
||||||
# nekoray = {
|
|
||||||
# enable = true;
|
|
||||||
# package = pkgs2.nekoray;
|
|
||||||
# tunMode = {
|
|
||||||
# enable = true;
|
|
||||||
# # setuid = true; # Рекомендуют вкл, если проблемы с выкл есть
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
@ -203,9 +168,9 @@
|
||||||
clang # Компилятор
|
clang # Компилятор
|
||||||
gcc # Компилятор
|
gcc # Компилятор
|
||||||
glibc # GNU C Library
|
glibc # GNU C Library
|
||||||
gnumake # ?
|
gnumake
|
||||||
cmake-language-server # CMake LSP
|
cmake-language-server # CMake LSP
|
||||||
cmake # ?
|
cmake
|
||||||
# bear # Tool that generates a compilation database for clang tooling
|
# bear # Tool that generates a compilation database for clang tooling
|
||||||
# boost # Collection of C++ libraries
|
# boost # Collection of C++ libraries
|
||||||
|
|
||||||
|
|
@ -222,7 +187,6 @@
|
||||||
|
|
||||||
# Nix
|
# Nix
|
||||||
nixd # Nix LSP. Нет в mason
|
nixd # Nix LSP. Нет в mason
|
||||||
# alejandra # Nix formatter. Usage: alejandra file.nix
|
|
||||||
|
|
||||||
# Lua
|
# Lua
|
||||||
lua5_1 # Scripting language
|
lua5_1 # Scripting language
|
||||||
|
|
@ -238,8 +202,7 @@
|
||||||
|
|
||||||
# SQL
|
# SQL
|
||||||
sqls # SQL LSP
|
sqls # SQL LSP
|
||||||
postgres-lsp # Postgres SQL
|
postgres-lsp # Postgres LSP
|
||||||
# sql-formatter # SQL formatter
|
|
||||||
sqlite
|
sqlite
|
||||||
dbeaver-bin
|
dbeaver-bin
|
||||||
pgadmin4
|
pgadmin4
|
||||||
|
|
@ -273,20 +236,13 @@
|
||||||
vim-language-server # VimScript LSP
|
vim-language-server # VimScript LSP
|
||||||
go-migrate # Database migrations. CLI and Golang library
|
go-migrate # Database migrations. CLI and Golang library
|
||||||
postman # API Development Environment
|
postman # API Development Environment
|
||||||
insomnia
|
insomnia # API client. Мне нравится больше, чем postman
|
||||||
|
|
||||||
# Nushell
|
|
||||||
pkgs2.nushell # Modern shell
|
pkgs2.nushell # Modern shell
|
||||||
pkgs2.nushellPlugins.query # Nushell plugin to query JSON, XML, and various web data
|
|
||||||
pkgs2.nushellPlugins.gstat # Git status plugin for Nushell
|
|
||||||
pkgs2.nushellPlugins.polars # Молниеносная аналитика данных через `dataframe ...`
|
|
||||||
pkgs2.nushellPlugins.formats # Formats plugin for Nushell
|
|
||||||
pkgs2.nushellPlugins.highlight # Syntax highlighting
|
|
||||||
|
|
||||||
# For nvim
|
# For nvim
|
||||||
tree-sitter # For nvim
|
tree-sitter # code parser
|
||||||
ripgrep # For nvim
|
ripgrep # grep
|
||||||
fd # For nvim
|
fd # find
|
||||||
|
|
||||||
############
|
############
|
||||||
## Архивы ##
|
## Архивы ##
|
||||||
|
|
@ -334,7 +290,6 @@
|
||||||
rocmPackages.hipblas # Для работы hip?
|
rocmPackages.hipblas # Для работы hip?
|
||||||
rocmPackages.clr # Для работы hip?
|
rocmPackages.clr # Для работы hip?
|
||||||
pkgs2.yt-dlp # Скачивать и смотреть медиа с разных сайтов
|
pkgs2.yt-dlp # Скачивать и смотреть медиа с разных сайтов
|
||||||
tasktimer # TUI task timer. Можно несколько таймеров с описанием запустить. В терминал tt
|
|
||||||
timer # A "sleep" with progress. Таймер на пельмени "timer 5m"
|
timer # A "sleep" with progress. Таймер на пельмени "timer 5m"
|
||||||
libqalculate # Advanced calculator library
|
libqalculate # Advanced calculator library
|
||||||
fastfetch # Пишешь в теримнал и кидаешь всем со словами I use nixos btw
|
fastfetch # Пишешь в теримнал и кидаешь всем со словами I use nixos btw
|
||||||
|
|
@ -343,7 +298,6 @@
|
||||||
killall # Убить процессы. Мем, что в стоке не стоит
|
killall # Убить процессы. Мем, что в стоке не стоит
|
||||||
libnotify # Вызов оповещений через "notify-send"
|
libnotify # Вызов оповещений через "notify-send"
|
||||||
pkgs2.gallery-dl # Качать много картинок с кучи разных сайтов
|
pkgs2.gallery-dl # Качать много картинок с кучи разных сайтов
|
||||||
shellcheck # Проверка shell скриптов на ошибки
|
|
||||||
pwgen # Генератор паролей
|
pwgen # Генератор паролей
|
||||||
lm_sensors # Сенсоры
|
lm_sensors # Сенсоры
|
||||||
httpie # interacting with APIs & HTTP servers
|
httpie # interacting with APIs & HTTP servers
|
||||||
|
|
@ -363,7 +317,7 @@
|
||||||
## GUI ##
|
## GUI ##
|
||||||
#########
|
#########
|
||||||
|
|
||||||
ksnip # Скрины. Аналоги - Flameshot
|
ksnip # Скрин экрана. Аналог - Flameshot
|
||||||
# kdePackages.ark # Архиватор от kde. Имеет в зависимостях blowjob
|
# kdePackages.ark # Архиватор от kde. Имеет в зависимостях blowjob
|
||||||
file-roller # Архиватор от gnome
|
file-roller # Архиватор от gnome
|
||||||
qbittorrent # Торренты качать
|
qbittorrent # Торренты качать
|
||||||
|
|
@ -443,10 +397,10 @@
|
||||||
###########
|
###########
|
||||||
|
|
||||||
strawberry # Музыкальный плеер
|
strawberry # Музыкальный плеер
|
||||||
obs-studio # Запись видео # TODO: Настройки надо сделать декларативными
|
obs-studio # Запись видео
|
||||||
picard # Массовый редактор метаданных музыки
|
# picard # Массовый редактор метаданных музыки
|
||||||
mousai # Опенсорс шазам. Со временем просит платный api
|
# mousai # Опенсорс шазам. Со временем просит платный api
|
||||||
spek # Спектрограмма аудио.
|
# spek # Спектрограмма аудио.
|
||||||
mpv # Смотреть видео
|
mpv # Смотреть видео
|
||||||
# Смотреть картинки
|
# Смотреть картинки
|
||||||
imv # Не умеет показывать анимированные webp. Через раз может показывать avif
|
imv # Не умеет показывать анимированные webp. Через раз может показывать avif
|
||||||
|
|
@ -457,13 +411,12 @@
|
||||||
## Social ##
|
## Social ##
|
||||||
############
|
############
|
||||||
|
|
||||||
# (pkgs2.discord.override { # Discord
|
# (pkgs2.discord.override { # Discord с плагинами
|
||||||
# # withOpenASAR = true; # Оптимизатор дискрода
|
# # withOpenASAR = true; # Оптимизатор дискрода
|
||||||
# withVencord = true; # Имба плагины # TODO: Настройки надо сделать декларативными
|
# withVencord = true; # Имба плагины # TODO: Настройки надо сделать декларативными
|
||||||
# })
|
# })
|
||||||
pkgs2.discord
|
pkgs2.discord
|
||||||
pkgs2.telegram-desktop
|
pkgs2.telegram-desktop
|
||||||
# revolt-desktop # FOSS аналог дискорда
|
|
||||||
|
|
||||||
###########
|
###########
|
||||||
## Games ##
|
## Games ##
|
||||||
|
|
@ -471,20 +424,13 @@
|
||||||
|
|
||||||
# Чтоб не компилить wine, надо закомментить и сделать ребилд без игры.
|
# Чтоб не компилить wine, надо закомментить и сделать ребилд без игры.
|
||||||
# Потом раскомментить и сделать ребилд с игрой
|
# Потом раскомментить и сделать ребилд с игрой
|
||||||
inputs.nix-gaming.packages.${pkgs.system}.osu-stable # osu!stable from nix-gaming
|
# inputs.nix-gaming.packages.${pkgs.system}.osu-stable # osu!stable from nix-gaming
|
||||||
# inputs.nix-gaming.packages.${pkgs.system}.osu-lazer-bin # osu!lazer from nix-gaming
|
|
||||||
# pkgs2.osu-lazer-bin
|
# pkgs2.osu-lazer-bin
|
||||||
|
|
||||||
# steam # Мб не надо сюда писать, раз через programs.steam редачу
|
|
||||||
# heroic # A Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
|
||||||
# lutris # Запускать игры не из стима
|
|
||||||
# bottles # Минималистичная альтернатива lutris
|
|
||||||
|
|
||||||
# Мб зависимости
|
# Мб зависимости
|
||||||
protonup-qt # Управлять версиями proton-ge?
|
protonup-qt # Управлять версиями proton-ge для steam
|
||||||
steam-run # На всякий случай
|
steam-run # На всякий случай
|
||||||
pkgs2.mangohud # Фпс и нагрузку на пк показывает в играх
|
pkgs2.mangohud # Фпс и нагрузку на пк показывает в играх
|
||||||
# gamemode # Оптимизации линуха и игр
|
|
||||||
pkgs2.wineWowPackages.stableFull # support both 32- and 64-bit applications
|
pkgs2.wineWowPackages.stableFull # support both 32- and 64-bit applications
|
||||||
# wineWowPackages.staging # Можно назвать бета версией вайна
|
# wineWowPackages.staging # Можно назвать бета версией вайна
|
||||||
pkgs2.winetricks # winetricks (all versions)
|
pkgs2.winetricks # winetricks (all versions)
|
||||||
|
|
@ -497,7 +443,7 @@
|
||||||
|
|
||||||
krita # Рисовать 1. Часто крашится
|
krita # Рисовать 1. Часто крашится
|
||||||
pkgs2.gimp3 # Рисовать 2. Потом выберу что оставить
|
pkgs2.gimp3 # Рисовать 2. Потом выберу что оставить
|
||||||
blender-hip # 3д графика и рендер видео
|
# blender-hip # 3д графика и рендер видео
|
||||||
gcolor3 # GUI color picker
|
gcolor3 # GUI color picker
|
||||||
xcolor # CLI color picker https://github.com/Soft/xcolor
|
xcolor # CLI color picker https://github.com/Soft/xcolor
|
||||||
# inkscape # Vector graphic editor
|
# inkscape # Vector graphic editor
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,16 @@
|
||||||
[kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim) fork
|
## Описание
|
||||||
|
|
||||||
|
Это форк [kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim)
|
||||||
|
|
||||||
|
Многие бинды nvim можно найти, нажав `space`, он же называется `leader` в конфигах. Ещё можно нажать `g`, там будет `go to ...`. Например `grd` это `go refactor definition` (перейти к реализации функции) или `grn` это `go refactor rename` (переименовать что либо во всём проекте)
|
||||||
|
|
||||||
|
Сессии nvim создаются через `space Sc` и удаляются через `space Sd`. Открыть файловый менеджер через `\`. Но его стоит закрывать перед выходом из nvim, иначе сессия поломается. Лень фиксить, это походу сложно делается, проще закрыть перед выходом
|
||||||
|
|
||||||
|
Дополнительная информация ниже, но некоторых вещи могли устареть, например бинды. Мне тяжело даётся актуализировать readme моих настроек neovim, потому что я часто что-то меняю. Лучше посмотри эти два видео и сможешь сам разобраться в моих конфигах, найти какие сейчас бинды и кто что делает:
|
||||||
|
- [The Only Video You Need to Get Started with Neovim](https://youtu.be/m8C0Cq9Uv9o)
|
||||||
|
- [0 to LSP: Neovim RC From Scratch](https://youtu.be/w7i4amO_zaE)
|
||||||
|
|
||||||
|
## Старое
|
||||||
|
|
||||||
> ⚠️ **Warning**: 27.04.2025 произошли большие изменения в конфиге, которые мне очень лень описывать в ридми. Документировать изменения сложнее, чем эти самые изменения вносить. Проще по коммитам ориентироваться. Поменялось много биндов и кор плагинов. Адаптировано для работы на neovim 0.11.
|
> ⚠️ **Warning**: 27.04.2025 произошли большие изменения в конфиге, которые мне очень лень описывать в ридми. Документировать изменения сложнее, чем эти самые изменения вносить. Проще по коммитам ориентироваться. Поменялось много биндов и кор плагинов. Адаптировано для работы на neovim 0.11.
|
||||||
|
|
||||||
|
|
@ -8,7 +20,7 @@
|
||||||
|
|
||||||
Для выбора варианта из автокомплита надо жать ctrl+y, а не enter. Это можно исправить в конфиге, но я решил оставить так, как советует разраб kickstart.nvim, потому что я часто был в ситуации, когда готовая ide даёт мне вариант, но он мне не нужен, я уже написал свой, и мне надо перейти на новую строку, я жму enter и получаю комплит, который мне не нужен, мне новая строка нужна была.
|
Для выбора варианта из автокомплита надо жать ctrl+y, а не enter. Это можно исправить в конфиге, но я решил оставить так, как советует разраб kickstart.nvim, потому что я часто был в ситуации, когда готовая ide даёт мне вариант, но он мне не нужен, я уже написал свой, и мне надо перейти на новую строку, я жму enter и получаю комплит, который мне не нужен, мне новая строка нужна была.
|
||||||
|
|
||||||
Вкладки как в vscode я решил не делать, тут есть более удобный инструмент для этого. Например два раза нажать пробел в нормал моде, откроется меню буферов, тоесть файлов, которые в данный момент открыты. Отображаются они в порядке последнего открытия. Ныне открытый файл там не отображается. Это аналог ctrl+tab в vscode. Можно легко и быстро переключаться между "вкладками". Если надо искать что-то среди файлов проекта, то можно нажать пробел sf, от слов search files. В целом пробел+s это поиск чего-то. Подсказки на экране скажут поиск чего будет происходить. Grep поиск это поиск по содержимому всех файлов проекта.
|
Вкладки как в vscode я решил не делать, тут есть более удобный инструмент для этого. Например два раза нажать пробел в нормал моде, откроется меню буферов, то есть файлов, которые в данный момент открыты. Отображаются они в порядке последнего открытия. Ныне открытый файл там не отображается. Это аналог ctrl+tab в vscode. Можно легко и быстро переключаться между "вкладками". Если надо искать что-то среди файлов проекта, то можно нажать пробел sf, от слов search files. В целом пробел+s это поиск чего-то. Подсказки на экране скажут поиск чего будет происходить. Grep поиск это поиск по содержимому всех файлов проекта.
|
||||||
https://medium.com/@jogarcia/you-dont-need-tabs-in-neovim-c6ba5ee44e3e
|
https://medium.com/@jogarcia/you-dont-need-tabs-in-neovim-c6ba5ee44e3e
|
||||||
|
|
||||||
Если будут проблемы с сессиями, то можно написать `:SessionDelete`. Для выхода из проекта лучше использовать `:qa`, а не `:q`, чтоб закрыть все буферы и не ломать сессии
|
Если будут проблемы с сессиями, то можно написать `:SessionDelete`. Для выхода из проекта лучше использовать `:qa`, а не `:q`, чтоб закрыть все буферы и не ломать сессии
|
||||||
|
|
@ -77,7 +89,7 @@ Per project можно использовать `.editorconfig` файл в ко
|
||||||
|
|
||||||
### Мои бинды
|
### Мои бинды
|
||||||
|
|
||||||
Все бинды можно искать прям в neovim, если нажать `Space s k`, тоесть `S`earch `K`eymaps
|
Все бинды можно искать прям в neovim, если нажать `Space s k`, то есть `S`earch `K`eymaps
|
||||||
|
|
||||||
Я не помню откуда эти бинды, может они есть в стоке, а может нет, но они полезные.
|
Я не помню откуда эти бинды, может они есть в стоке, а может нет, но они полезные.
|
||||||
|
|
||||||
|
|
@ -212,7 +224,7 @@ Normal mode. С пробелом
|
||||||
```
|
```
|
||||||
Чтоб выключить форматирование у LSP, можно заглянуть в `lsp.lua` и увидеть примеры кода. Например я выключил форматирование у `sqls` везде и у `html` в файлах `templ`. Если у всех выкл, но что-то форматирует, значит форматтер установлен отдельно.
|
Чтоб выключить форматирование у LSP, можно заглянуть в `lsp.lua` и увидеть примеры кода. Например я выключил форматирование у `sqls` везде и у `html` в файлах `templ`. Если у всех выкл, но что-то форматирует, значит форматтер установлен отдельно.
|
||||||
|
|
||||||
Некоторые LSP/Linter/Formatter не могут просто взять и заработать на каком-то файле. Например для работы `tailwindcss lsp` обязательным условием является `конфиг файл tailwind` в каталоге проекта, иначе ничего не будет работать. Для многих lsp важно находить `root dir`, который определяется по наличию каталога `.git` в проекте, иначе никаких подсказок в коде не будет. Разные инструменты для работы с SQL зачастую требуют делать конект к базе данных, иначе ничего работать не будет. Тоесть с удобством написать тестовый SQL код вне проекта не получится.
|
Некоторые LSP/Linter/Formatter не могут просто взять и заработать на каком-то файле. Например для работы `tailwindcss lsp` обязательным условием является `конфиг файл tailwind` в каталоге проекта, иначе ничего не будет работать. Для многих lsp важно находить `root dir`, который определяется по наличию каталога `.git` в проекте, иначе никаких подсказок в коде не будет. Разные инструменты для работы с SQL зачастую требуют делать конект к базе данных, иначе ничего работать не будет. То есть с удобством написать тестовый SQL код вне проекта не получится.
|
||||||
|
|
||||||
Я постарался исправить это там, где возможно. Например мне пришлось использовать `sqls` вместо `postgres_lsp`, чтоб подсказки работали даже вне проекта. Но зачастую придётся создавать проект и настраивать его, чтоб получить полноценный опыт IDE
|
Я постарался исправить это там, где возможно. Например мне пришлось использовать `sqls` вместо `postgres_lsp`, чтоб подсказки работали даже вне проекта. Но зачастую придётся создавать проект и настраивать его, чтоб получить полноценный опыт IDE
|
||||||
|
|
||||||
|
|
@ -221,7 +233,7 @@ Normal mode. С пробелом
|
||||||
- `YAML LSP` имеет [опциональные настройки](https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.txt#yamlls)
|
- `YAML LSP` имеет [опциональные настройки](https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.txt#yamlls)
|
||||||
- `JSON LSP` имеет [опциональные настройки](https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.txt#jsonls)
|
- `JSON LSP` имеет [опциональные настройки](https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.txt#jsonls)
|
||||||
- `rust-analyzer` имеет много опциональных настроек
|
- `rust-analyzer` имеет много опциональных настроек
|
||||||
- Чтоб `sql` работал внутри `.go` файлов, sql запросы надо писать внутри \`` так `\`. Тоесть внутри \` с пробелом в начале и конце, а не просто строка.
|
- Чтоб `sql` работал внутри `.go` файлов, sql запросы надо писать внутри \`` так `\`. То есть внутри \` с пробелом в начале и конце, а не просто строка.
|
||||||
- `sqlfluff` требует иметь `.sqlfluff` в директории проекта. Вот пример конфига:
|
- `sqlfluff` требует иметь `.sqlfluff` в директории проекта. Вот пример конфига:
|
||||||
```toml
|
```toml
|
||||||
[sqlfluff]
|
[sqlfluff]
|
||||||
|
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
================================================================================
|
|
||||||
INTRODUCTION *kickstart.nvim*
|
|
||||||
|
|
||||||
Kickstart.nvim is a project to help you get started on your neovim journey.
|
|
||||||
|
|
||||||
*kickstart-is-not*
|
|
||||||
It is not:
|
|
||||||
- Complete framework for every plugin under the sun
|
|
||||||
- Place to add every plugin that could ever be useful
|
|
||||||
|
|
||||||
*kickstart-is*
|
|
||||||
It is:
|
|
||||||
- Somewhere that has a good start for the most common "IDE" type features:
|
|
||||||
- autocompletion
|
|
||||||
- goto-definition
|
|
||||||
- find references
|
|
||||||
- fuzzy finding
|
|
||||||
- and hinting at what more can be done :)
|
|
||||||
- A place to _kickstart_ your journey.
|
|
||||||
- You should fork this project and use/modify it so that it matches your
|
|
||||||
style and preferences. If you don't want to do that, there are probably
|
|
||||||
other projects that would fit much better for you (and that's great!)!
|
|
||||||
|
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
|
||||||
|
|
@ -1,233 +0,0 @@
|
||||||
# kickstart.nvim
|
|
||||||
|
|
||||||
## Introduction
|
|
||||||
|
|
||||||
A starting point for Neovim that is:
|
|
||||||
|
|
||||||
* Small
|
|
||||||
* Single-file
|
|
||||||
* Completely Documented
|
|
||||||
|
|
||||||
**NOT** a Neovim distribution, but instead a starting point for your configuration.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
### Install Neovim
|
|
||||||
|
|
||||||
Kickstart.nvim targets *only* the latest
|
|
||||||
['stable'](https://github.com/neovim/neovim/releases/tag/stable) and latest
|
|
||||||
['nightly'](https://github.com/neovim/neovim/releases/tag/nightly) of Neovim.
|
|
||||||
If you are experiencing issues, please make sure you have the latest versions.
|
|
||||||
|
|
||||||
### Install External Dependencies
|
|
||||||
|
|
||||||
External Requirements:
|
|
||||||
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
|
|
||||||
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
|
|
||||||
- Clipboard tool (xclip/xsel/win32yank or other depending on platform)
|
|
||||||
- A [Nerd Font](https://www.nerdfonts.com/): optional, provides various icons
|
|
||||||
- if you have it set `vim.g.have_nerd_font` in `init.lua` to true
|
|
||||||
- Language Setup:
|
|
||||||
- If you want to write Typescript, you need `npm`
|
|
||||||
- If you want to write Golang, you will need `go`
|
|
||||||
- etc.
|
|
||||||
|
|
||||||
> **NOTE**
|
|
||||||
> See [Install Recipes](#Install-Recipes) for additional Windows and Linux specific notes
|
|
||||||
> and quick install snippets
|
|
||||||
|
|
||||||
### Install Kickstart
|
|
||||||
|
|
||||||
> **NOTE**
|
|
||||||
> [Backup](#FAQ) your previous configuration (if any exists)
|
|
||||||
|
|
||||||
Neovim's configurations are located under the following paths, depending on your OS:
|
|
||||||
|
|
||||||
| OS | PATH |
|
|
||||||
| :- | :--- |
|
|
||||||
| Linux, MacOS | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` |
|
|
||||||
| Windows (cmd)| `%localappdata%\nvim\` |
|
|
||||||
| Windows (powershell)| `$env:LOCALAPPDATA\nvim\` |
|
|
||||||
|
|
||||||
#### Recommended Step
|
|
||||||
|
|
||||||
[Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) this repo
|
|
||||||
so that you have your own copy that you can modify, then install by cloning the
|
|
||||||
fork to your machine using one of the commands below, depending on your OS.
|
|
||||||
|
|
||||||
> **NOTE**
|
|
||||||
> Your fork's url will be something like this:
|
|
||||||
> `https://github.com/<your_github_username>/kickstart.nvim.git`
|
|
||||||
|
|
||||||
You likely want to remove `lazy-lock.json` from your fork's `.gitignore` file
|
|
||||||
too - it's ignored in the kickstart repo to make maintenance easier, but it's
|
|
||||||
[recommmended to track it in version control](https://lazy.folke.io/usage/lockfile).
|
|
||||||
|
|
||||||
#### Clone kickstart.nvim
|
|
||||||
> **NOTE**
|
|
||||||
> If following the recommended step above (i.e., forking the repo), replace
|
|
||||||
> `nvim-lua` with `<your_github_username>` in the commands below
|
|
||||||
|
|
||||||
<details><summary> Linux and Mac </summary>
|
|
||||||
|
|
||||||
```sh
|
|
||||||
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details><summary> Windows </summary>
|
|
||||||
|
|
||||||
If you're using `cmd.exe`:
|
|
||||||
|
|
||||||
```
|
|
||||||
git clone https://github.com/nvim-lua/kickstart.nvim.git "%localappdata%\nvim"
|
|
||||||
```
|
|
||||||
|
|
||||||
If you're using `powershell.exe`
|
|
||||||
|
|
||||||
```
|
|
||||||
git clone https://github.com/nvim-lua/kickstart.nvim.git "${env:LOCALAPPDATA}\nvim"
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
### Post Installation
|
|
||||||
|
|
||||||
Start Neovim
|
|
||||||
|
|
||||||
```sh
|
|
||||||
nvim
|
|
||||||
```
|
|
||||||
|
|
||||||
That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
|
|
||||||
current plugin status. Hit `q` to close the window.
|
|
||||||
|
|
||||||
Read through the `init.lua` file in your configuration folder for more
|
|
||||||
information about extending and exploring Neovim. That also includes
|
|
||||||
examples of adding popularly requested plugins.
|
|
||||||
|
|
||||||
|
|
||||||
### Getting Started
|
|
||||||
|
|
||||||
[The Only Video You Need to Get Started with Neovim](https://youtu.be/m8C0Cq9Uv9o)
|
|
||||||
|
|
||||||
### FAQ
|
|
||||||
|
|
||||||
* What should I do if I already have a pre-existing neovim configuration?
|
|
||||||
* You should back it up and then delete all associated files.
|
|
||||||
* This includes your existing init.lua and the neovim files in `~/.local`
|
|
||||||
which can be deleted with `rm -rf ~/.local/share/nvim/`
|
|
||||||
* Can I keep my existing configuration in parallel to kickstart?
|
|
||||||
* Yes! You can use [NVIM_APPNAME](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME)`=nvim-NAME`
|
|
||||||
to maintain multiple configurations. For example, you can install the kickstart
|
|
||||||
configuration in `~/.config/nvim-kickstart` and create an alias:
|
|
||||||
```
|
|
||||||
alias nvim-kickstart='NVIM_APPNAME="nvim-kickstart" nvim'
|
|
||||||
```
|
|
||||||
When you run Neovim using `nvim-kickstart` alias it will use the alternative
|
|
||||||
config directory and the matching local directory
|
|
||||||
`~/.local/share/nvim-kickstart`. You can apply this approach to any Neovim
|
|
||||||
distribution that you would like to try out.
|
|
||||||
* What if I want to "uninstall" this configuration:
|
|
||||||
* See [lazy.nvim uninstall](https://lazy.folke.io/usage#-uninstalling) information
|
|
||||||
* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
|
|
||||||
* The main purpose of kickstart is to serve as a teaching tool and a reference
|
|
||||||
configuration that someone can easily use to `git clone` as a basis for their own.
|
|
||||||
As you progress in learning Neovim and Lua, you might consider splitting `init.lua`
|
|
||||||
into smaller parts. A fork of kickstart that does this while maintaining the
|
|
||||||
same functionality is available here:
|
|
||||||
* [kickstart-modular.nvim](https://github.com/dam9000/kickstart-modular.nvim)
|
|
||||||
* Discussions on this topic can be found here:
|
|
||||||
* [Restructure the configuration](https://github.com/nvim-lua/kickstart.nvim/issues/218)
|
|
||||||
* [Reorganize init.lua into a multi-file setup](https://github.com/nvim-lua/kickstart.nvim/pull/473)
|
|
||||||
|
|
||||||
### Install Recipes
|
|
||||||
|
|
||||||
Below you can find OS specific install instructions for Neovim and dependencies.
|
|
||||||
|
|
||||||
After installing all the dependencies continue with the [Install Kickstart](#Install-Kickstart) step.
|
|
||||||
|
|
||||||
#### Windows Installation
|
|
||||||
|
|
||||||
<details><summary>Windows with Microsoft C++ Build Tools and CMake</summary>
|
|
||||||
Installation may require installing build tools and updating the run command for `telescope-fzf-native`
|
|
||||||
|
|
||||||
See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation)
|
|
||||||
|
|
||||||
This requires:
|
|
||||||
|
|
||||||
- Install CMake and the Microsoft C++ Build Tools on Windows
|
|
||||||
|
|
||||||
```lua
|
|
||||||
{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
<details><summary>Windows with gcc/make using chocolatey</summary>
|
|
||||||
Alternatively, one can install gcc and make which don't require changing the config,
|
|
||||||
the easiest way is to use choco:
|
|
||||||
|
|
||||||
1. install [chocolatey](https://chocolatey.org/install)
|
|
||||||
either follow the instructions on the page or use winget,
|
|
||||||
run in cmd as **admin**:
|
|
||||||
```
|
|
||||||
winget install --accept-source-agreements chocolatey.chocolatey
|
|
||||||
```
|
|
||||||
|
|
||||||
2. install all requirements using choco, exit previous cmd and
|
|
||||||
open a new one so that choco path is set, and run in cmd as **admin**:
|
|
||||||
```
|
|
||||||
choco install -y neovim git ripgrep wget fd unzip gzip mingw make
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
<details><summary>WSL (Windows Subsystem for Linux)</summary>
|
|
||||||
|
|
||||||
```
|
|
||||||
wsl --install
|
|
||||||
wsl
|
|
||||||
sudo add-apt-repository ppa:neovim-ppa/unstable -y
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install make gcc ripgrep unzip git xclip neovim
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
#### Linux Install
|
|
||||||
<details><summary>Ubuntu Install Steps</summary>
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo add-apt-repository ppa:neovim-ppa/unstable -y
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install make gcc ripgrep unzip git xclip neovim
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
<details><summary>Debian Install Steps</summary>
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install make gcc ripgrep unzip git xclip curl
|
|
||||||
|
|
||||||
# Now we install nvim
|
|
||||||
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
|
|
||||||
sudo rm -rf /opt/nvim-linux64
|
|
||||||
sudo mkdir -p /opt/nvim-linux64
|
|
||||||
sudo chmod a+rX /opt/nvim-linux64
|
|
||||||
sudo tar -C /opt -xzf nvim-linux64.tar.gz
|
|
||||||
|
|
||||||
# make it available in /usr/local/bin, distro installs to /usr/bin
|
|
||||||
sudo ln -sf /opt/nvim-linux64/bin/nvim /usr/local/bin/
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
<details><summary>Fedora Install Steps</summary>
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo dnf install -y gcc make git ripgrep fd-find unzip neovim
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details><summary>Arch Install Steps</summary>
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo pacman -S --noconfirm --needed gcc make git ripgrep fd unzip neovim
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
'mrcjkb/rustaceanvim',
|
'mrcjkb/rustaceanvim',
|
||||||
version = '^5', -- Recommended
|
version = '^5', -- For nvim0.11 use '^6'
|
||||||
lazy = false, -- This plugin is already lazy
|
lazy = false, -- This plugin is already lazy
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ return {
|
||||||
SymbolKind.Class,
|
SymbolKind.Class,
|
||||||
SymbolKind.Struct,
|
SymbolKind.Struct,
|
||||||
-- SymbolKind.Variable,
|
-- SymbolKind.Variable,
|
||||||
SymbolKind.Constant,
|
-- SymbolKind.Constant,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
|
|
|
||||||
|
|
@ -263,13 +263,6 @@ return {
|
||||||
}
|
}
|
||||||
|
|
||||||
-- C/C++
|
-- C/C++
|
||||||
-- lspconfig.ccls.setup {
|
|
||||||
-- init_options = {
|
|
||||||
-- cache = {
|
|
||||||
-- directory = ".ccls-cache";
|
|
||||||
-- };
|
|
||||||
-- }
|
|
||||||
-- }
|
|
||||||
lspconfig.clangd.setup {
|
lspconfig.clangd.setup {
|
||||||
filetypes = { 'c', 'cpp', 'objc', 'objcpp', 'cuda' }, -- Удалил "proto"
|
filetypes = { 'c', 'cpp', 'objc', 'objcpp', 'cuda' }, -- Удалил "proto"
|
||||||
}
|
}
|
||||||
|
|
@ -284,7 +277,7 @@ return {
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Rust
|
-- Rust
|
||||||
-- lspconfig.rust_analyzer.setup {}
|
lspconfig.rust_analyzer.setup {}
|
||||||
|
|
||||||
-- Bash
|
-- Bash
|
||||||
lspconfig.bashls.setup {
|
lspconfig.bashls.setup {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
-- You can easily change to a different colorscheme.
|
-- You can easily change to a different colorscheme.
|
||||||
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
||||||
|
|
||||||
-- Cмена тем тут сделана уёбищно
|
-- Cмена тем тут сделана неудобно
|
||||||
-- Чтоб сменить стандартную тему, надо раскомментировать vim.cmd.colorscheme под именем темы
|
-- Чтоб сменить стандартную тему, надо раскомментировать vim.cmd.colorscheme под именем темы
|
||||||
-- и закомментировать это же у прошлой темы
|
-- и закомментировать это же у прошлой темы
|
||||||
|
|
||||||
|
|
@ -149,27 +149,6 @@ return {
|
||||||
vim.cmd.colorscheme 'gruvbox'
|
vim.cmd.colorscheme 'gruvbox'
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
'sainnhe/gruvbox-material',
|
|
||||||
priority = 1000,
|
|
||||||
init = function()
|
|
||||||
-- 'hard', 'medium', 'soft'
|
|
||||||
vim.g.gruvbox_material_background = 'medium'
|
|
||||||
-- 'material', 'mix', 'original'
|
|
||||||
vim.g.gruvbox_material_foreground = 'mix'
|
|
||||||
-- 'grey', 'colored', 'highlighted'
|
|
||||||
vim.g.gruvbox_material_diagnostic_virtual_text = 'colored'
|
|
||||||
vim.g.gruvbox_material_diagnostic_line_highlight = 1
|
|
||||||
vim.g.gruvbox_material_diagnostic_text_highlight = 1
|
|
||||||
|
|
||||||
-- vim.g.gruvbox_material_inlay_hints_background = 'dimmed'
|
|
||||||
-- vim.g.gruvbox_material_better_performance = 1
|
|
||||||
-- vim.g.gruvbox_material_spell_foreground = 'colored'
|
|
||||||
-- vim.g.gruvbox_material_enable_bold = 1
|
|
||||||
-- vim.g.gruvbox_material_enable_italic = true
|
|
||||||
-- vim.cmd.colorscheme 'gruvbox-material'
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
'sainnhe/everforest',
|
'sainnhe/everforest',
|
||||||
priority = 1000,
|
priority = 1000,
|
||||||
|
|
|
||||||
61
nvim/shit.md
61
nvim/shit.md
|
|
@ -1,61 +0,0 @@
|
||||||
Тут будут куски текста из разных источников. Я не хочу засирать ими свои заметки, кину сюда
|
|
||||||
|
|
||||||
## На будущее
|
|
||||||
|
|
||||||
Fix C/C++ - https://www.reddit.com/r/NixOS/comments/1d7zvgu/nvim_cant_find_standard_library_headers/
|
|
||||||
Запишу некоторые комменты из этого поста на реддите
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
||||||
Haven't seen it mentioned, so here is an alternative option.
|
|
||||||
|
|
||||||
I use nix-ld which basically makes the listed libraries available in their expected locations.
|
|
||||||
|
|
||||||
The simple config below fixed Mason for me. it also works with Doom Emacs so it's a more general solution. You can add more packages to the list and any libs will be made available for all external apps.
|
|
||||||
|
|
||||||
```nix
|
|
||||||
nix-ld = {
|
|
||||||
enable = true;
|
|
||||||
libraries = with pkgs; [
|
|
||||||
stdenv.cc.cc
|
|
||||||
];
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
Since then, I have also been able to get X-Plane running natively by adding missing libraries to the list. It can be a bit tedious figuring out which libraries are missing and what packages need to be added, but it only needs to be done once. To figure out what libraries an app needs and which packages they belong to, do the following:
|
|
||||||
|
|
||||||
run nix-index (takes about 5 minutes) which you only need to do the first time to create a file database of nixpkgs.
|
|
||||||
|
|
||||||
Find the libraries an executable needs and whether they are found or missing. ldd ./your_executable_file
|
|
||||||
|
|
||||||
Use nix-locate to find packages that contain that library. For example: nix-locate -w ./libX11.so.6 --top-level It may show several packages.. pick the one that looks most appropriate. In this case it was xorg.libX11
|
|
||||||
|
|
||||||
Add that package to the nix-ld libraries list.
|
|
||||||
|
|
||||||
Once all libraries are added, rebuild your system.
|
|
||||||
|
|
||||||
You may need to reboot or log out and back in again before ldd will find the libraries.
|
|
||||||
|
|
||||||
The nice thing about nix-ld, is once you have a nice collection of common libraries setup, many apps will just work like on other distros.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Hello, sorry for the late response. I've been using that nix-ld setup for Rust, Lua, and Bash, LSPs for a while. Funnily enough it was thanks to one of your previous comments that I first tried it.
|
|
||||||
|
|
||||||
For any of the mentioned languages I didn't have to put anything into nix-ld, even the clangd LSPs in Mason installed correctly, literally the only issue is that NVim doesn't see the standard library headers. I've tried putting every package in there: clang, clang-tools, clangStdenv, libclang, and ccls.
|
|
||||||
|
|
||||||
I'm gonna be completely honest, I'm not sure I understand the instructions, especially the ldd part, I'm not sure what executable I should point to with that command.
|
|
||||||
|
|
||||||
Are there any libraries that you'd recommend I'd put in nix-ld? Like a base line?
|
|
||||||
|
|
||||||
Also as a further question. I'm not using NixOS to manage my NVim config whatsoever, meaning I just put my the nvim config into the ~/.config directory, could that be the issue, or is that ok as a practice?
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Yeah, I'm a bit of a nix-ld fanboy as it saved NixOS for me when I was feeling like giving up.
|
|
||||||
|
|
||||||
I gotta admit, I'm not a developer, so I'm not an expert on dev tools. Maybe try creating a dev shell with nix (or a flake)? You can specify exactly what libraries you need and they should be available when you instantiate the shell.
|
|
||||||
|
|
||||||
This post on github may give you some ideas: https://github.com/NixOS/nixpkgs/issues/92739#issuecomment-861248463. It's a bit old, but it may be worth trying. Try running nvim inside of the dev shell.. maybe the standard libraries will be available then?
|
|
||||||
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
mkdir -p $HOME/.config/xfce4/
|
mkdir -p "$HOME/.config/xfce4/"
|
||||||
cp $HOME/nixos-private-dots/shit/helpers.rc $HOME/.config/xfce4/helpers.rc
|
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 "$HOME/nixos-private-dots/shit/mimeapps.list" "$HOME/.config/mimeapps.list"
|
||||||
|
|
||||||
cp -r $HOME/nixos-private-dots/shit/Kvantum $HOME/.config/Kvantum
|
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/qt5ct" "$HOME/.config/qt5ct"
|
||||||
cp -r $HOME/nixos-private-dots/shit/qt6ct $HOME/.config/qt6ct
|
cp -r "$HOME/nixos-private-dots/shit/qt6ct" "$HOME/.config/qt6ct"
|
||||||
|
|
|
||||||
|
|
@ -1,94 +1,94 @@
|
||||||
[Added Associations]
|
[Added Associations]
|
||||||
application/json=nvim.desktop;code.desktop;librewolf.desktop;firefox.desktop;chromium.desktop
|
application/json=nvim.desktop;code.desktop;librewolf.desktop;firefox.desktop;chromium.desktop;
|
||||||
application/x-sh=nvim.desktop;code.desktop
|
application/x-sh=nvim.desktop;code.desktop;
|
||||||
application/x-shellscript=nvim.desktop;code.desktop
|
application/x-shellscript=nvim.desktop;code.desktop;
|
||||||
application/xml=nvim.desktop;code.desktop
|
application/xml=nvim.desktop;code.desktop;
|
||||||
application/yaml=nvim.desktop;code.desktop
|
application/yaml=nvim.desktop;code.desktop;
|
||||||
image/*=com.interversehq.qView.desktop;imv.desktop
|
image/*=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/apng=com.interversehq.qView.desktop;imv.desktop
|
image/apng=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/avif=com.interversehq.qView.desktop;imv.desktop
|
image/avif=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/gif=com.interversehq.qView.desktop;imv.desktop
|
image/gif=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/jpeg=;com.interversehq.qView.desktop;imv.desktop;
|
image/jpeg=;com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/pjpeg=com.interversehq.qView.desktop;imv.desktop
|
image/pjpeg=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/png=com.interversehq.qView.desktop;imv.desktop;;
|
image/png=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/svg+xml=com.interversehq.qView.desktop;imv.desktop
|
image/svg+xml=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/vnd.microsoft.icon=com.interversehq.qView.desktop;imv.desktop
|
image/vnd.microsoft.icon=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/webp=com.interversehq.qView.desktop;imv.desktop
|
image/webp=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/x-icon=com.interversehq.qView.desktop;imv.desktop
|
image/x-icon=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
text/*=nvim.desktop;code.desktop
|
text/*=nvim.desktop;code.desktop;
|
||||||
text/css=nvim.desktop;code.desktop
|
text/css=nvim.desktop;code.desktop;
|
||||||
text/csv=nvim.desktop;code.desktop
|
text/csv=nvim.desktop;code.desktop;
|
||||||
text/html=nvim.desktop;code.desktop;librewolf.desktop;firefox.desktop;chromium.desktop
|
text/html=nvim.desktop;code.desktop;librewolf.desktop;firefox.desktop;chromium.desktop;
|
||||||
text/javascript=nvim.desktop;code.desktop
|
text/javascript=nvim.desktop;code.desktop;
|
||||||
text/markdown=nvim.desktop;code.desktop
|
text/markdown=nvim.desktop;code.desktop;
|
||||||
text/plain=nvim.desktop;code.desktop
|
text/plain=nvim.desktop;code.desktop;
|
||||||
text/x-asm=nvim.desktop;code.desktop
|
text/x-asm=nvim.desktop;code.desktop;
|
||||||
text/x-c=nvim.desktop;code.desktop
|
text/x-c=nvim.desktop;code.desktop;
|
||||||
text/x-python=nvim.desktop;code.desktop
|
text/x-python=nvim.desktop;code.desktop;
|
||||||
|
|
||||||
[Default Applications]
|
[Default Applications]
|
||||||
application/json=nvim.desktop;code.desktop;librewolf.desktop;firefox.desktop;chromium.desktop
|
application/json=nvim.desktop;code.desktop;librewolf.desktop;firefox.desktop;chromium.desktop;
|
||||||
application/pdf=org.gnome.Evince.desktop
|
application/pdf=org.gnome.Evince.desktop;
|
||||||
application/x-bittorrent=qbittorrent.desktop
|
application/x-bittorrent=qbittorrent.desktop;
|
||||||
application/x-extension-htm=librewolf.desktop
|
application/x-extension-htm=librewolf.desktop;
|
||||||
application/x-extension-html=librewolf.desktop
|
application/x-extension-html=librewolf.desktop;
|
||||||
application/x-extension-shtml=librewolf.desktop
|
application/x-extension-shtml=librewolf.desktop;
|
||||||
application/x-extension-xht=librewolf.desktop
|
application/x-extension-xht=librewolf.desktop;
|
||||||
application/x-extension-xhtml=librewolf.desktop
|
application/x-extension-xhtml=librewolf.desktop;
|
||||||
application/x-sh=nvim.desktop;code.desktop
|
application/x-sh=nvim.desktop;code.desktop;
|
||||||
application/x-shellscript=nvim.desktop;code.desktop
|
application/x-shellscript=nvim.desktop;code.desktop;
|
||||||
application/x-zerosize=nvim.desktop;code.desktop
|
application/x-zerosize=nvim.desktop;code.desktop;
|
||||||
application/xhtml+xml=librewolf.desktop
|
application/xhtml+xml=librewolf.desktop;
|
||||||
application/xml=nvim.desktop;code.desktop
|
application/xml=nvim.desktop;code.desktop;
|
||||||
application/yaml=nvim.desktop;code.desktop
|
application/yaml=nvim.desktop;code.desktop;
|
||||||
application/zip=ark.desktop
|
application/zip=ark.desktop;
|
||||||
audio/*=mpv.desktop
|
audio/*=mpv.desktop;
|
||||||
audio/aac=mpv.desktop
|
audio/aac=mpv.desktop;
|
||||||
audio/flac=mpv.desktop
|
audio/flac=mpv.desktop;
|
||||||
audio/mp4=mpv.desktop
|
audio/mp4=mpv.desktop;
|
||||||
audio/mpeg=mpv.desktop
|
audio/mpeg=mpv.desktop;
|
||||||
audio/ogg=mpv.desktop
|
audio/ogg=mpv.desktop;
|
||||||
audio/opus=mpv.desktop
|
audio/opus=mpv.desktop;
|
||||||
audio/vnd.wav=mpv.desktop
|
audio/vnd.wav=mpv.desktop;
|
||||||
audio/webm=mpv.desktop
|
audio/webm=mpv.desktop;
|
||||||
audio/x-matroska=mpv.desktop
|
audio/x-matroska=mpv.desktop;
|
||||||
audio/x-mpegurl=mpv.desktop
|
audio/x-mpegurl=mpv.desktop;
|
||||||
audio/x-opus+ogg=mpv.desktop
|
audio/x-opus+ogg=mpv.desktop;
|
||||||
image/*=com.interversehq.qView.desktop;imv.desktop
|
image/*=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/apng=com.interversehq.qView.desktop;imv.desktop
|
image/apng=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/avif=com.interversehq.qView.desktop;imv.desktop
|
image/avif=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/gif=com.interversehq.qView.desktop;imv.desktop
|
image/gif=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/jpeg=com.interversehq.qView.desktop;imv.desktop
|
image/jpeg=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/pjpeg=com.interversehq.qView.desktop;imv.desktop
|
image/pjpeg=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/png=com.interversehq.com.interversehq.qView.desktop
|
image/png=com.interversehq.com.interversehq.qView.desktop;
|
||||||
image/svg+xml=com.interversehq.qView.desktop;imv.desktop
|
image/svg+xml=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/vnd.microsoft.icon=com.interversehq.qView.desktop;imv.desktop
|
image/vnd.microsoft.icon=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/webp=com.interversehq.qView.desktop;imv.desktop
|
image/webp=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
image/x-icon=com.interversehq.qView.desktop;imv.desktop
|
image/x-icon=com.interversehq.qView.desktop;imv-dir.desktop;
|
||||||
inode/directory=thunar.desktop
|
inode/directory=thunar.desktop;
|
||||||
text/*=nvim.desktop;code.desktop
|
text/*=nvim.desktop;code.desktop;
|
||||||
text/css=nvim.desktop;code.desktop
|
text/css=nvim.desktop;code.desktop;
|
||||||
text/csv=nvim.desktop;code.desktop
|
text/csv=nvim.desktop;code.desktop;
|
||||||
text/html=librewolf.desktop;firefox.desktop;chromium.desktop;nvim.desktop;code.desktop
|
text/html=librewolf.desktop;firefox.desktop;chromium.desktop;nvim.desktop;code.desktop;
|
||||||
text/javascript=nvim.desktop;code.desktop
|
text/javascript=nvim.desktop;code.desktop;
|
||||||
text/markdown=nvim.desktop;code.desktop
|
text/markdown=nvim.desktop;code.desktop;
|
||||||
text/plain=nvim.desktop;code.desktop
|
text/plain=nvim.desktop;code.desktop;
|
||||||
text/x-asm=nvim.desktop;code.desktop
|
text/x-asm=nvim.desktop;code.desktop;
|
||||||
text/x-c=nvim.desktop;code.desktop
|
text/x-c=nvim.desktop;code.desktop;
|
||||||
text/x-python=nvim.desktop;code.desktop
|
text/x-python=nvim.desktop;code.desktop;
|
||||||
video/*=mpv.desktop
|
video/*=mpv.desktop;
|
||||||
video/mp4=mpv.desktop
|
video/mp4=mpv.desktop;
|
||||||
video/mpeg=mpv.desktop
|
video/mpeg=mpv.desktop;
|
||||||
video/quicktime=mpv.desktop
|
video/quicktime=mpv.desktop;
|
||||||
video/webm=mpv.desktop
|
video/webm=mpv.desktop;
|
||||||
video/x-matroska=mpv.desktop
|
video/x-matroska=mpv.desktop;
|
||||||
x-scheme-handler/about=librewolf.desktop
|
x-scheme-handler/about=librewolf.desktop;
|
||||||
x-scheme-handler/chrome=librewolf.desktop
|
x-scheme-handler/chrome=librewolf.desktop;
|
||||||
x-scheme-handler/http=librewolf.desktop
|
x-scheme-handler/http=librewolf.desktop;
|
||||||
x-scheme-handler/https=librewolf.desktop
|
x-scheme-handler/https=librewolf.desktop;
|
||||||
x-scheme-handler/jetbrains=jetbrains-toolbox.desktop
|
x-scheme-handler/jetbrains=jetbrains-toolbox.desktop;
|
||||||
x-scheme-handler/magnet=qbittorrent.desktop
|
x-scheme-handler/magnet=qbittorrent.desktop;
|
||||||
x-scheme-handler/mailto=thunderbird.desktop
|
x-scheme-handler/mailto=thunderbird.desktop;
|
||||||
x-scheme-handler/unknown=librewolf.desktop
|
x-scheme-handler/unknown=librewolf.desktop;
|
||||||
|
|
||||||
[Removed Associations]
|
[Removed Associations]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue