Compare commits

..

42 commits

Author SHA1 Message Date
urec56
a4de868f89 Добавил trivy 2025-08-22 13:54:28 +03:00
urec56
488dfeef5d Добавил gosec 2025-08-22 13:06:12 +03:00
urec56
7308e7cf4d Изменил nix-ld для nekoray 2025-08-22 12:59:48 +03:00
urec56
ccbd8fcc1e Добавил graphviz и uv 2025-08-18 17:45:01 +03:00
urec56
bb2570bf95 Добавил правила исключения для ltex 2025-08-18 17:44:24 +03:00
urec56
42b8ebc10e Изменил бинд для заполнения структуры в go 2025-07-25 13:17:04 +03:00
urec56
7fc7225f5d Обновил версию плагина для md таблиц. Удалил лишние темы 2025-07-13 18:09:05 +03:00
urec56
9d2cb7b821 Вернул vscodium 2025-07-13 18:08:40 +03:00
urec56
b112539961 Фикс форматтера md таблиц 2025-07-13 17:07:31 +03:00
urec56
9c2c3bc71c Убрал автоформат json 2025-07-13 17:06:56 +03:00
urec56
913d9fcfb3 Фикс форматтера md таблиц 2025-07-12 23:08:50 +03:00
urec56
b8249cabc4 Удалил vscodium 2025-07-10 23:26:18 +03:00
urec56
d1dcb46782 Убрал алиас v для nvim 2025-07-02 12:12:52 +03:00
urec56
80c6cb0abe Фикс подсветки lsp в symbol_usage.nvim 2025-06-26 01:42:14 +03:00
urec56
ff2de3a1fe Удалил нахуй languagetool 2025-06-21 22:34:16 +03:00
urec56
1767d28ea5 Добавил алиас для :wa в нвиме 2025-06-17 22:48:38 +03:00
urec56
11fc2ec19d Добавил neoclip для истории буфера обмена в nvim 2025-06-16 22:57:16 +03:00
urec56
9584d54a5b Удалил мусорные сниппеты и лсп для sql 2025-06-13 23:25:34 +03:00
urec56
c0c8552509 Добавил lsp для натуральных языков 2025-06-08 20:46:50 +03:00
urec56
8c7f054891 Убрал sqlfluff. Добавил табы в питон 2025-06-08 19:30:07 +03:00
urec56
df708c7d47 Добавил правило окна для vesktop 2025-05-19 13:35:07 +03:00
urec56
b34d32b101 Поменял настройки symbol usage для вима 2025-05-19 13:32:51 +03:00
urec56
541f654042 Изменил бинд вима для goto implementations 2025-05-18 02:28:14 +03:00
urec56
3d30352617 Удалил софт jetbrains. Добавил мультикурсор и изменил gotags в нвиме 2025-05-15 17:20:10 +03:00
urec56
66380da445 Добавил софт для работы со звуком 2025-05-04 23:05:22 +03:00
urec56
b7a43f2740 Правки вима, убрал пкм+лкм=скм 2025-05-04 17:04:20 +03:00
urec56
16d44a3d12 Добавил выбор комплита на ctrl+tab 2025-04-27 01:07:26 +03:00
urec56
fc6b9032dc Добавил плагин для nvim 2025-04-26 23:04:44 +03:00
urec56
cf53e58538 Убрал лигатуры и редактирование звука микрофона прогами 2025-04-08 19:16:58 +03:00
urec56
9312e2438a Исправил очепятку 2025-04-07 23:18:42 +03:00
urec56
5be2ff2588 Актуализировал рабочий пк, теперь тестить 2025-04-07 23:11:43 +03:00
urec56
4927aa6ba1 Мелкие изменения 2025-04-07 22:53:44 +03:00
urec56
5a937aaf54 Добавил полный ффмпег 2025-02-23 22:47:24 +03:00
urec56
f5ac3e28df Поменял бинд на vscodium 2025-02-17 14:24:06 +03:00
urec56
d64eede581 Добавил алиас на сборку мусора 2025-02-17 13:37:59 +03:00
urec56
32b8b8f7d4 Добавил поддержку протобафа и других инструментов в го 2025-02-17 13:02:20 +03:00
urec56
ca500f6164 Обновил версию ollama 2025-01-30 15:04:09 +03:00
urec56
b2b3c07262 добавил поддерку ollama 2025-01-29 21:09:01 +03:00
urec56
553bd11e70 Поменял алиасы, добавил инпут для ют-длп, убрал синхронизацию истории в разных сессиях zsh 2025-01-24 14:10:11 +03:00
urec56
7e7b94eece Починил rbs 2025-01-04 17:53:48 +03:00
urec56
1c670e3745 Добавил голенд 2025-01-04 17:47:41 +03:00
urec56
a30c7cf765 Фикс мпв 2025-01-04 17:28:09 +03:00
47 changed files with 1001 additions and 568 deletions

View file

@ -71,7 +71,7 @@
| `Super + Shift + B` | Browser Firefox. Паблик активность | Да |
| `Super + Shift + Ctrl + B` | Browser Chromium. Пусть будет | Да |
| `Super + E` | Explorer. Thunar file manager | Да |
| `Super + I` | IDE, text editor | Да |
| `Super + I` | IDE, text editor, NeoVim | Да |
| `Super + M` | Monitor of resources (btop) | Да |
| `Super + G` | Goals. Todo manager. Task tracker | Да |
| `Super + Shift + C` | Color picker. Получить hex в буфер обмена | Да |
@ -193,7 +193,7 @@
| ScreenLock | betterlockscreen/i3lock |
| Notification | Dunst |
| Files | Thunar, Ranger |
| Images | qView, imv, feh |
| Images | imv, qView, feh |
| Video | mpv with plugins |
| Music | Strawberry, Picard, Mousai, spek |
| Browsers | Librewolf, Firefox, Chromium |
@ -204,7 +204,6 @@
| DM | LightDM |
| Compositor | Нет. Мб будет стоковый picom |
| Screenshare | OBS, Screenkey, ksnip |
| Code Editor | VSCode, JetBrains, nixvim, helix |
| Video Editor | Blender |
| Fetch | fastfetch |
| Torrent | qBittorrent |
@ -570,4 +569,4 @@ Wifi
- **Base0E** **Class Names/Constructors**: Акцентный цвет для имён классов или конструкторов. Фиолетовый.
- **Base0F** **Deprecated Elements/Exceptions**: Обычно используется для устаревших элементов или исключений. Коричневый.
Эти цвета обеспечивают чёткую структуру для создания тем, где легко отличить синтаксические элементы или UI-компоненты.
Эти цвета обеспечивают чёткую структуру для создания тем, где легко отличить синтаксические элементы или UI-компоненты.

View file

@ -28,17 +28,17 @@
"x-scheme-handler/https" = [ "librewolf.desktop" ];
"x-scheme-handler/unknown" = [ "librewolf.desktop" ];
# Images
"image/*" = [ "qview.desktop" "imv.desktop" ];
"image/*" = [ "imv.desktop" "qview.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" ];
"image/gif" = [ "imv.desktop" "qview.desktop" ];
"image/jpeg" = [ "imv.desktop" "qview.desktop" ]; # Обычный jpeg, прогрузка сверху вниз
"image/pjpeg" = [ "imv.desktop" "qview.desktop" ]; # Сначала размытый и постепенной лучше видно, для медленного инета
"image/apng" = [ "imv.desktop" "qview.desktop" ]; # Анимированный png
"image/png" = [ "imv.desktop" "qview.desktop" ];
"image/svg+xml" = [ "imv.desktop" "qview.desktop" ];
"image/webp" = [ "imv.desktop" "qview.desktop" ];
"image/x-icon" = [ "imv.desktop" "qview.desktop" ];
"image/vnd.microsoft.icon" = [ "imv.desktop" "qview.desktop" ];
# Video
"video/*" = [ "mpv.desktop" ];
"video/mp4" = [ "mpv.desktop" ];
@ -60,62 +60,62 @@
"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" "codium.desktop" ]; # Надо ли заменять nvim и всё что ниже на NixVim?
"text/css" = [ "nvim.desktop" "codium.desktop" ];
"text/csv" = [ "nvim.desktop" "codium.desktop" ];
"text/html" = [ "nvim.desktop" "codium.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"text/javascript" = [ "nvim.desktop" "codium.desktop" ];
"text/markdown" = [ "nvim.desktop" "codium.desktop" ];
"text/plain" = [ "nvim.desktop" "codium.desktop" ];
"text/x-asm" = [ "nvim.desktop" "codium.desktop" ];
"text/x-c" = [ "nvim.desktop" "codium.desktop" ];
"text/x-python" = [ "nvim.desktop" "codium.desktop" ];
"application/json" = [ "nvim.desktop" "codium.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"application/x-sh" = [ "nvim.desktop" "codium.desktop" ];
"application/x-shellscript" = [ "nvim.desktop" "codium.desktop" ];
"application/xml" = [ "nvim.desktop" "codium.desktop" ];
"application/yaml" = [ "nvim.desktop" "codium.desktop" ];
"text/*" = [ "nvim.desktop" ]; # Надо ли заменять nvim и всё что ниже на NixVim?
"text/css" = [ "nvim.desktop" ];
"text/csv" = [ "nvim.desktop" ];
"text/html" = [ "nvim.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"text/javascript" = [ "nvim.desktop" ];
"text/markdown" = [ "nvim.desktop" ];
"text/plain" = [ "nvim.desktop" ];
"text/x-asm" = [ "nvim.desktop" ];
"text/x-c" = [ "nvim.desktop" ];
"text/x-python" = [ "nvim.desktop" ];
"application/json" = [ "nvim.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"application/x-sh" = [ "nvim.desktop" ];
"application/x-shellscript" = [ "nvim.desktop" ];
"application/xml" = [ "nvim.desktop" ];
"application/yaml" = [ "nvim.desktop" ];
# Мб потом добавить для docs варианты и разные виды архивов и ebook
# Other
"application/pdf" = [ "org.gnome.Evince.desktop" ];
"application/x-zerosize" = [ "nvim.desktop" "codium.desktop" ]; # Файл нулевого размера
"application/x-zerosize" = [ "nvim.desktop" ]; # Файл нулевого размера
"application/zip" = [ "ark.desktop" ];
"application/x-bittorrent" = [ "qbittorrent.desktop" ];
"x-scheme-handler/magnet" = [ "qbittorrent.desktop" ];
"inode/directory" = [ "dolphin.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/*" = [ "imv.desktop" "qview.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" ];
"image/gif" = [ "imv.desktop" "qview.desktop" ];
"image/jpeg" = [ "imv.desktop" "qview.desktop" ]; # Обычный jpeg, прогрузка сверху вниз
"image/pjpeg" = [ "imv.desktop" "qview.desktop" ]; # Сначала размытый и постепенной лучше видно, для медленного инета
"image/apng" = [ "imv.desktop" "qview.desktop" ]; # Анимированный png
"image/png" = [ "imv.desktop" "qview.desktop" ];
"image/svg+xml" = [ "imv.desktop" "qview.desktop" ];
"image/webp" = [ "imv.desktop" "qview.desktop" ];
"image/x-icon" = [ "imv.desktop" "qview.desktop" ];
"image/vnd.microsoft.icon" = [ "imv.desktop" "qview.desktop" ];
# Text
"text/*" = [ "nvim.desktop" "codium.desktop" ]; # Надо ли заменять nvim и всё что ниже на NixVim?
"text/css" = [ "nvim.desktop" "codium.desktop" ];
"text/csv" = [ "nvim.desktop" "codium.desktop" ];
"text/html" = [ "nvim.desktop" "codium.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"text/javascript" = [ "nvim.desktop" "codium.desktop" ];
"text/markdown" = [ "nvim.desktop" "codium.desktop" ];
"text/plain" = [ "nvim.desktop" "codium.desktop" ];
"text/x-asm" = [ "nvim.desktop" "codium.desktop" ];
"text/x-c" = [ "nvim.desktop" "codium.desktop" ];
"text/x-python" = [ "nvim.desktop" "codium.desktop" ];
"application/json" = [ "nvim.desktop" "codium.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"application/x-sh" = [ "nvim.desktop" "codium.desktop" ];
"application/x-shellscript" = [ "nvim.desktop" "codium.desktop" ];
"application/xml" = [ "nvim.desktop" "codium.desktop" ];
"application/yaml" = [ "nvim.desktop" "codium.desktop" ];
"text/*" = [ "nvim.desktop" ]; # Надо ли заменять nvim и всё что ниже на NixVim?
"text/css" = [ "nvim.desktop" ];
"text/csv" = [ "nvim.desktop" ];
"text/html" = [ "nvim.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"text/javascript" = [ "nvim.desktop" ];
"text/markdown" = [ "nvim.desktop" ];
"text/plain" = [ "nvim.desktop" ];
"text/x-asm" = [ "nvim.desktop" ];
"text/x-c" = [ "nvim.desktop" ];
"text/x-python" = [ "nvim.desktop" ];
"application/json" = [ "nvim.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"application/x-sh" = [ "nvim.desktop" ];
"application/x-shellscript" = [ "nvim.desktop" ];
"application/xml" = [ "nvim.desktop" ];
"application/yaml" = [ "nvim.desktop" ];
};
};
}
}

View file

@ -5,22 +5,32 @@
shellAliases = let
flakeDir = "~/dots";
in {
rb = "sudo nixos-rebuild switch --flake ${flakeDir}"; # Применить новый конфиг
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 --upgrade --flake ${flakeDir}"; # Обновить пакеты, но не репозиторий во fleke.lock
upg = "sudo nixos-rebuild switch --impure --upgrade --flake ${flakeDir}"; # Обновить пакеты, но не репозиторий во fleke.lock
# Возможно это аналог "sudo pacman -Sy". Обновить репозиторий, чтоб потом на него обновиться? Пакеты не обновляет
upd = "nix flake update ${flakeDir}"; # Обновляет flake.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";
v = "nvim";
vim = "nvim";
vi = "nvim";
t = "timer";
r = "ranger";
ff = "fastfetch";
yt = "cd /mnt/backups/Media/yt-dlp"; # Бекапить YouTube
qb = "cd /mnt/backups/Media/Music/Qobux/qdl"; # Бекапить музыку с Qobuz
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" и получаем всю инфу
@ -79,4 +89,4 @@
end
'';
};
}
}

93
flake.lock generated
View file

@ -87,11 +87,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"lastModified": 1741352980,
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
"type": "github"
},
"original": {
@ -198,17 +198,14 @@
"nix-gaming": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
],
"umu": "umu"
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1733622933,
"narHash": "sha256-DspyRdaFEPy8QHAONFfqG+EprRFYBe4ro5c6+1JaPqA=",
"lastModified": 1741657497,
"narHash": "sha256-2X7d94f9QcRnBKz1jJQfumATe8w4gXjwRly150ERnek=",
"owner": "fufexan",
"repo": "nix-gaming",
"rev": "b15e082eeea1afdf6bfe7aa0dbe4758097958f80",
"rev": "64a949349294543a48b3f946c9fca84332d1398b",
"type": "github"
},
"original": {
@ -219,30 +216,33 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1733392399,
"narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=",
"owner": "nixos",
"lastModified": 1741678040,
"narHash": "sha256-rmBsz7BBcDwfvDkxnKHmolKceGJrr0nyz5PQYZg0kMk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661",
"rev": "3ee8818da146871cd570b164fc4f438f78479a50",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1733096140,
"narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz"
"lastModified": 1740877520,
"narHash": "sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "147dee35aab2193b174e4c0868bd80ead5ce755c",
"type": "github"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz"
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-stable": {
@ -263,11 +263,27 @@
},
"nixpkgs2": {
"locked": {
"lastModified": 1737885589,
"narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=",
"lastModified": 1742669843,
"narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8",
"rev": "1e5b653dff12029333a6546c11e108ede13052eb",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1733392399,
"narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661",
"type": "github"
},
"original": {
@ -281,7 +297,7 @@
"inputs": {
"home-manager": "home-manager",
"nix-gaming": "nix-gaming",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable",
"nixpkgs2": "nixpkgs2",
"stylix": "stylix"
@ -383,31 +399,6 @@
"repo": "tinted-tmux",
"type": "github"
}
},
"umu": {
"inputs": {
"nixpkgs": [
"nix-gaming",
"nixpkgs"
]
},
"locked": {
"dir": "packaging/nix",
"lastModified": 1733509971,
"narHash": "sha256-LZIrb7HNWyLMU+dSI4fhbo2dMzJbbKKFWwYOpJwVXKE=",
"ref": "refs/heads/main",
"rev": "562e3900eebde0fb276dd2f425c097c8b44ccb92",
"revCount": 865,
"submodules": true,
"type": "git",
"url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"
},
"original": {
"dir": "packaging/nix",
"submodules": true,
"type": "git",
"url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"
}
}
},
"root": "root",

View file

@ -23,7 +23,7 @@
nix-gaming = { # Удобно ставить некоторые игры
url = "github:fufexan/nix-gaming";
inputs.nixpkgs.follows = "nixpkgs";
# inputs.nixpkgs.follows = "nixpkgs";
};
};
@ -34,15 +34,18 @@
config = {
allowUnfree = true;
rocmSupport = true;
allowBroken = true;
permittedInsecurePackages = [
"python-2.7.18.8"
"electron-25.9.0"
];
};
pkgs = import nixpkgs {
inherit system;
inherit config;
};
pkgs2 = import inputs.nixpkgs2 {
inherit system;
inherit config;

View file

@ -2,7 +2,7 @@
imports = [
./ranger/ranger.nix
./gui/vscode.nix
#./gui/vscode.nix
./imv/imv.nix
./mpv/mpv.nix
@ -17,7 +17,7 @@
./terminal/zsh.nix
./mangohud.nix
./symlinks.nix
./symlinks.nix # На виртуалке закомментить
##############
## WM (X11) ##

View file

@ -1,12 +1,13 @@
{ pkgs, ... }: {
{
programs.mpv.enable = true;
home = {
packages = with pkgs; [
yt-dlp # Смотреть онлайн видео через mpv
xclip # Буфер обмена на x11 для некоторых плагинов
#wl-clipboard # Буфер обмена на wayland для некоторых плагинов
];
# Решил нужные зависимости писать в packages.nix
# packages = with pkgs; [
# yt-dlp # Смотреть онлайн видео через mpv
# xclip # Буфер обмена на x11 для некоторых плагинов
# #wl-clipboard # Буфер обмена на wayland для некоторых плагинов
# ];
file = {
".config/mpv/mpv.conf".source = ./mpv.conf;
@ -16,4 +17,4 @@
".config/mpv/fonts".source = ./fonts;
};
};
}
}

View file

@ -1,8 +1,8 @@
# Надо удалить оригинальный файл, прежде чем делать симлинк
# Некоторые проги клали хуй на симлинки и заменяют их своими файлами
# Таких прог я ебал рот и проклинал хуесосов разработчиков
# Некоторые проги забивают на симлинки и заменяют их своими файлами (например thunar)
# Тут уж ничего не поделать, придётся руками настраивать
# Если выдаёт ошибку про home-manager сервис при ребилде,
# Значит такой файл уже существует и симлинк туда кинуть нельзя
# значит такой файл уже существует и симлинк туда кинуть нельзя
# Для таких файлов я сделал каталог shit
# Я не уверен надо ли писать "config.lib.file.mkOutOfStoreSymlink"
@ -14,7 +14,7 @@
dir = "${config.home.homeDirectory}/${home-dir}";
in {
home.file = { # В .config этим нельзя кидать
# "${home-dir}".source = config.lib.file.mkOutOfStoreSymlink "/mnt/${home-dir}"; # Чтоб остальные симлинки были от ~/backups
# "${home-dir}".source = config.lib.file.mkOutOfStoreSymlink "/mnt/${home-dir}"; # Чтоб остальные симлинки были от ~/backups
# Secrets
".password-store".source = config.lib.file.mkOutOfStoreSymlink "${dir}/.password-store"; # Для утилиты pass
@ -25,7 +25,10 @@ in {
# Browsers. Мб сделать .force, чтоб удалить сток. А мб руками удалить сток перед этим
".mozilla".source = config.lib.file.mkOutOfStoreSymlink "${dir}/.mozilla";
".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${dir}/.librewolf";
"Redis+pgAdmin".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Redis+pgAdmin";
".kube".source = config.lib.file.mkOutOfStoreSymlink "${dir}/.kube";
# Временное решение, где `native-messaging-hosts/ff2mpv.json` ссылается на ~/ff2mpv.py
#"ff2mpv.py" = {

View file

@ -11,7 +11,7 @@
#qoutePath = false;
# aliases = {
# pu = "push";
# pu = "push";
# co = "checkout";
# cm = "commit";
# s = "status";
@ -21,4 +21,4 @@
programs.gitui = { # Terminal UI
enable = true;
};
}
}

View file

@ -33,13 +33,12 @@
vim = "nvim";
vi = "nvim";
v = "nvim";
t = "timer";
r = "ranger";
g = "gitui";
f = "fastfetch";
ff = "fastfetch";
yt = "cd /mnt/backups/Media/yt-dlp"; # Конфиги для бекапа YouTube
ytf = "yt-dlp --cookies-from-browser firefox";
qb = "cd /mnt/backups/Media/Music/Qobuz/qdl"; # Бекапить музыку с Qobuz
html = "python3 /mnt/backups/html-library/generate_gallery.py --path"; # Html image gallery
pyenva = "nix-shell --run zsh ${flakeDir}/modules/home-manager/pyenv-shell.nix";
@ -49,6 +48,7 @@
history = {
ignoreAllDups = true; # Удалять дубликаты из истории
ignoreSpace = true; # Не сохранять команду в истории, если перед ней стоит пробел
share = false; # Не синхронизировать историю в разных сессиях
};
# Environment variables that will be set for zsh session.
@ -76,9 +76,9 @@
enable = true;
plugins = [ # Комментирую то, в надобности чего не уверен, но показалось интересным. Можно удалить
# "alias-finder" # Напомнит, если у написанной команды есть алиас (нет, так что заменил пакетом)
"aliases" # "als" в терминале покажет все алиасы (нет). Можно добавить слово для фильтрации
# "aliases" # "als" в терминале покажет все алиасы (нет). Можно добавить слово для фильтрации
# "autoenv" # If a directory contains an .env file, it will automatically be executed when you cd into it (нет)
"bgnotify" # Оповещения для долгих комманд. Make sure you have "notify-send" or "kdialog" installed
# "bgnotify" # Оповещения для долгих комманд. Make sure you have "notify-send" or "kdialog" installed. Хуета. По кд булькает
"colored-man-pages" # Adds colors to man pages
#"command-not-found" # Скажет какой пакет скачать, если команда не найдена
"copypath" # В терминале "copypath" скопирует нынешний абсолютный путь. Можно "copypath файл или дироктория"
@ -90,7 +90,7 @@
# "httpie" # Completion for HTTPie, a command line HTTP client, a friendlier cURL replacement.
# "isodate" # Completion for the ISO 8601, as well as some aliases for common Date commands.
# "mise" # dev tools, env vars, task runner https://github.com/jdx/mise
"safe-paste" # Preventing any code from running while pasting, so you have a chance to review what was pasted
# "safe-paste" # Preventing any code from running while pasting, so you have a chance to review what was pasted
"ssh-agent" # Автостарт ssh-agent. Хз надо ли настраивать и если да, то как
"timer" # Показывает время выполнения команды
"universalarchive" # Run "ua <format> <files>"" to compress <files> into an archive file using <format>
@ -101,14 +101,14 @@
];
extraConfig = ''
zstyle :omz:plugins:ssh-agent identities git-git.urec56.ru echoapps_gitlab_mail@urec56.ru
zstyle :omz:plugins:ssh-agent identities git-git.urec56.ru echoapps_gitlab_mail@urec56.ru wyrenereli_github urec56_github revoluterra_gitlab
'';
};
};
home.packages = with pkgs; [
zsh-autoenv # Плагина autoenv в oh-my-zsh не работает. Мб этот заработает
zsh-you-should-use # Напомнит, если у написанной команды есть алиас
# zsh-you-should-use # Напомнит, если у написанной команды есть алиас
zsh-nix-shell # zsh plugin that lets you use zsh in nix-shell shell
];
}

View file

@ -28,13 +28,14 @@
"ksnip"
# "nekoray"
"obsidian"
"planify"
# "spice-vdagent" # Для виртуалки
"discord"
"io.github.alainm23.planify"
# "spice-vdagent" # На виртуалке раскомментить
# "discord"
"firefox"
"librewolf"
];
monitors = let
workspaces = [ "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"];
in {
@ -65,8 +66,7 @@
state = "floating";
};
in { # А тут правила окон
# "Screenkey" = { manage = false; };
# "Screenkey" = floating;
"Screenkey" = { manage = false; };
"gcolor3" = floating;
"obs" = floating;
"steam" = floating;
@ -82,15 +82,16 @@
"qt6ct" = floating;
"ksnip" = floating1600x900;
# "ark" = floating1200x800; # Удалил, чтоб blowjob на экран не выдавало
"file-roller" = floating;
"file-roller" = floating1200x800;
"floating-terminal" = floating1200x800;
"pavucontrol" = floating900x600;
# blueman-манагер надо флоатинг
"discord" = { monitor = "^2"; desktop = "3"; };
"vesktop" = { monitor = "^2"; desktop = "3"; };
"firefox" = { monitor = "^1"; desktop = "2"; };
"librewolf" = { monitor = "^1"; desktop = "1"; };
"obsidian" = { monitor = "^2"; desktop = "2"; };
"planify" = { monitor = "^2"; desktop = "1"; };
"io.github.alainm23.planify" = { monitor = "^2"; desktop = "1"; };
};
settings = {

View file

@ -5,9 +5,8 @@
# Стандартный конфиг https://github.com/baskerville/bspwm/blob/master/examples/sxhkdrc
{ pkgs, config, ... }: let
muteText = ''then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000'';
notifyMute = ''dunstify "$(if [ "$(pamixer --get-mute)" = "true" ]; ${muteText}'';
notifyMicMute = ''dunstify "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; ${muteText}'';
notifyMute = ''dunstify "$(if [ "$(pamixer --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000'';
notifyMicMute = ''dunstify "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000'';
notifyVolume = ''dunstify " Volume: $(pamixer --get-volume)" -r 91190 -t 800'';
# -r 91190: Это идентификатор уведомления (notification ID). Уведомления с одинаковым ID будут заменять друг друга.
# -t 800: Это время в миллисекундах, через которое уведомление будет автоматически закрыто.
@ -169,16 +168,16 @@ in {
chromium
# Note taking app (obsidian)
super + n
obsidian
# super + n
# obsidian
# Explorer. Thunar file manager
super + e
dolphin
thunar
# IDE, text editor
super + i
code
# super + i
# codium
# Monitor of resources (btop)
super + m

View file

@ -1,15 +1,14 @@
{
imports = [
# ./env.nix # Мб не надо, ибо редачу через home.nix?
./filesystems.nix
./filesystems.nix # На виртуалке закомментить
./hardware.nix
./hibernate.nix
./hibernate.nix # На виртуалке закомментить
./locale.nix
./network.nix
./sound.nix
./stylix.nix
./virtualisation.nix
./vr.nix
./xserver.nix
];
}

View file

@ -2,4 +2,4 @@
environment.variables = {
EDITOR = "nvim";
};
}
}

View file

@ -18,7 +18,6 @@
enable32Bit = true; # install 32-bit drivers for 32-bit applications (such as Wine).
extraPackages = with pkgs; [
libva # VAAPI (Video Acceleration API)
rocmPackages.clr.icd # OpenCL
];
};

View file

@ -12,8 +12,8 @@
{
boot = {
resumeDevice = "/dev/disk/by-uuid/efaee29f-06a9-4486-b1ef-675d3d06c350";
kernelParams = [ "resume_offset=11440128" ];
resumeDevice = "/dev/disk/by-uuid/0951089a-fd89-4647-9ddb-0e3ff63d7b49";
kernelParams = [ "resume_offset=6799360" ];
};
# Не знаю надо ли это. На виртуалке я не могу забутиться в любом случае

View file

@ -23,25 +23,21 @@
table.insert (default_access.rules,{
matches = {
{
{ "application.process.binary", "=", ".Discord-wrapped" }
},
{
{ "application.process.binary", "=", "chromium" }
},
{
{ "application.process.binary", "=", "librewolf" }
},
{
{ "application.process.binary", "=", "firefox" }
},
{
{ "application.process.binary", "=", "steam" }
},
{
{ "application.process.binary", "=", ".telegram-desktop-wrapped" }
{ "application.process.binary", "=", "*" }
}
},
default_permissions = "rx",
default_permissions = "r-x",
})
table.insert (default_access.rules,{
matches = {
{
{ "application.process.binary", "=", ".pavucontrol-wrapped" }
},
{
{ "application.process.binary", "=", ".easyeffects-wrapped" }
}
},
default_permissions = "rwx",
})
'';
};

View file

@ -24,7 +24,7 @@
# Ширина символов одинаковая
monospace = { # default = DejaVu Sans Mono
package = pkgs.nerd-fonts.jetbrains-mono;
name = "JetBrainsMono Nerd Font Mono";
name = "JetBrainsMonoNL Nerd Font Mono";
};
emoji = { # default = Noto Color Emoji
@ -63,13 +63,11 @@
};
##################################################
## Хули блять у всех работают темы для qt ##
## Один я далбаёб проебал 3 дня ##
## Прочитал весь код ебаного stylix ##
## И нихуя не работает блять ##
## Так что поставлю руками грувбокс через qtct ##
##################################################
###################################################
## Тема qt через stylix у меня не работает ##
## Хотя в видео у других людей всё менялось ##
## Приходится руками ставить грувбокс через qtct ##
###################################################
# https://discourse.nixos.org/t/guide-to-installing-qt-theme/35523/2
qt = {
@ -77,4 +75,4 @@
style = "kvantum";
platformTheme = "qt5ct";
};
}
}

View file

@ -35,6 +35,7 @@
# <target type='virtio' name='org.qemu.guest_agent.0'/>
# </channel>
# На виртуалке надо раскомментить
# services = {
# openssh.enable = true; # Это ставится на виртуалку, чтоб к ней конект по ssh работал.
# spice-vdagentd.enable = true; # Clipboard sharing

View file

@ -1,40 +0,0 @@
# Beat Saber является OpenXR игрой, что не поддерживается Alvr из коробки
# Возможно на X11 это можно исправить простой настройкой в SteamVR
# Но на Wayland мне приходилось качать разом весь этот софт на Arch
# Поэтому сразу поставил всё что надо и не пробовал найти необходимый минимум
# Мб пригодится поставить opencomposite для трансляции OpenVR в OpenXR
{ pkgs, ... }: {
services = {
# Open source XR runtime
monado = {
enable = true;
};
# An OpenXR streaming application to a standalone headset
# wivrn = {
# enable = true;
# openFirewall = true;
# };
};
programs = {
# Stream VR games from your PC to your headset via Wi-Fi
alvr = {
enable = true;
openFirewall = true;
};
# UI for Monado, the open source OpenXR runtime
# envision = {
# enable = true;
# openFirewall = true;
# };
};
}

View file

@ -18,6 +18,7 @@
accelProfile = "flat";
scrollMethod = "button";
scrollButton = 9; # Узнать айди можно через `xev -event button | grep button`
middleEmulation = false;
};
touchpad = {
accelProfile = "flat";
@ -44,7 +45,9 @@
xkb = {
layout = "us,ru";
variant = "";
options = "grp:caps_toggle"; # Менять язык на CapsLock
# На виртуалке удалить caps_toggle
options = "grp:caps_toggle,grp:alt_shift_toggle"; # Менять язык на CapsLock или alt + shift
# Применить правила руками `setxkbmap -option grp:alt_shift_toggle`
};
displayManager.sessionCommands = ''

View file

@ -67,19 +67,18 @@ in {
xdg.portal = {
enable = true;
configPackages = with pkgs; [
xdg-desktop-portal-gtk # Чтоб загружать файлы и стримить в дискорде
xdg-desktop-portal
# kdePackages.xdg-desktop-portal-kde
# xdg-desktop-portal-gtk # Чтоб загружать файлы и стримить в дискорде
];
extraPortals = with pkgs; [
xdg-desktop-portal-gtk # Чтоб загружать файлы и стримить в дискорде
xdg-desktop-portal
# kdePackages.xdg-desktop-portal-kde
# xdg-desktop-portal-gtk # Чтоб загружать файлы и стримить в дискорде
];
};
nix.settings = {
experimental-features = ["nix-command" "flakes"];
# For nix-gaming
substituters = ["https://nix-gaming.cachix.org"];
trusted-public-keys = ["nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="];
};
nix.settings.experimental-features = ["nix-command" "flakes"];
system.stateVersion = "24.05"; # Don't change it

View file

@ -16,9 +16,6 @@
# то не получится ставить расширения. Потому что там софт ставится от рута и vscode
# будет пытаться установить расширения в каталог nix store, куда нельзя что либо ставить без рута.
packages = with pkgs; [
#vscode # Мб надо в home.packages писать, чтоб расширения ставились без рута
#jetbrains-toolbox # Мб надо через home.packages писать
jetbrains.pycharm-professional
vscodium
];
@ -34,6 +31,7 @@
#NIX_LD_LIBRARY_PATH = "/run/current-system/sw/share/nix-ld/lib";
#NIX_LD = "/run/current-system/sw/share/nix-ld/lib/ld.so";
LD_LIBRARY_PATH = "/run/current-system/sw/share/nix-ld/lib";
PATH = "$PATH:${config.home.homeDirectory}/go/bin";
};
stateVersion = "24.05"; # Don't change it

View file

@ -45,8 +45,8 @@
# fwupd.enable = true; # DBus service that allows applications to update firmware
# greenclip.enable = true; # https://github.com/erebe/greenclip (использую clipmenu вместо этого)
# fstrim.enable = true; # Чистит ssd для норм производительности. Пока не пользуюсь
# archisteamfarm = {}; # Фарм карточек стима афк. Простро раскомментить мало, надо настроить
ollama = let
# archisteamfarm = {}; # Фарм карточек стима афк. Просто раскомментить мало, надо настроить
ollama = let
pinPackage =
{
name,
@ -75,17 +75,53 @@
# additional environment variables
# environmentVariables = { HSA_OVERRIDE_GFX_VERSION="10.3.0"; };
};
# languagetool = { # Языковой сервер для lsp ltex-ls. Жаба кусок кала, жрёт 1.6гб оперативы без нихуя
# enable = true;
# port = 8081;
# };
};
programs = {
nix-ld = { # Позволяет нормально юзать либы для венва и тп
enable = true;
libraries = with pkgs; [
gcc
libraries = with pkgs2; [
# libGL
# glib
# libGLU.out
stdenv.cc.cc # Нужно чтоб yt-dlp в dev shell видел ffmpeg
# Nekoray (Throne)
kdePackages.qtbase
kdePackages.qttools
kdePackages.qtwayland
kdePackages.qtsvg
kdePackages.qtimageformats
util-linux
zlib
zstd
mesa
libGL
glib
libGLU.out
stdenv.cc.cc
libglvnd
libxkbcommon
freetype
fontconfig
xorg.libX11
xorg.libXext
xorg.libXrandr
xorg.libXrender
xorg.libXcursor
xorg.libXxf86vm
xorg.libXi
xorg.libxcb
xorg.libXfixes
xorg.xcbutil
xorg.xcbutilkeysyms
xorg.xcbutilwm
xorg.xcbutilimage
xorg.xcbutilrenderutil
xcb-util-cursor
glib
dbus
krb5
];
};
zsh.enable = true;
@ -114,13 +150,6 @@
};
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 = {
enable = true;
extraCompatPackages = with pkgs; [ # Доп версии протона. Должны иметь `steamcompattool` output
@ -158,12 +187,13 @@
python3Packages.debugpy # Debug Adapter Protocol for Python
pyright # Python LSP
ruff # Extremely fast Python linter
uv # Fast package manager
# C/C++
clang-tools # Clangd? LSP
ccls # C/C++ LSP
clang # Компилятор
gcc # Компилятор
pkgs2.gcc # Компилятор
glibc # GNU C Library
gnumake # ?
cmake-language-server # CMake LSP
@ -181,6 +211,9 @@
delve # Go debugger
templ # A language for writing HTML user interfaces in Go.
golangci-lint # Fast linters Runner for Go
graphviz # Graph visualisation tool
gosec # Security checker
trivy # Security dependency scanner
# Nix
nixd # Nix LSP. Нет в mason
@ -214,8 +247,8 @@
# tailwindcss
# Protobuf
# protols # LSP
buf # LSP
protols # LSP
# buf # LSP (крашит некоторые проекты в нвиме)
protobuf
protoc-gen-go
protoc-gen-go-grpc
@ -227,6 +260,7 @@
vim-language-server # VimScript LSP
go-migrate # Database migrations. CLI and Golang library
postman # API Development Environment
kubectl # Для управления кубером
# For nvim
tree-sitter # For nvim
@ -248,15 +282,14 @@
## Terminal ##
##############
mdadm
cryptsetup
openssl
mdadm # Для создания рейд массивов
cryptsetup # Для шифрования дисков
pkgs2.openssl
wget
curl
git
xclip # Буфер обмена
ffmpeg_7 # Обработка видео. Нужен всегда и везде как зависимость
# imlib2Full # Image manipulation library
xclip # Для работы буфера обмена
ffmpeg_7-full # Обработка видео. Нужен всегда и везде
imagemagick # Обработка изображений. Мб тоже нужен всегда
vips # В 4 раза быстрее imagemagick?
tree # Структура файлов в терминале
@ -273,6 +306,7 @@
# zscroll # A text scroller for use with panels and shells https://github.com/noctuid/zscroll
tokei # Количество строк кода на разных языках в каталоге
pass # Менеджер паролей в терминале
nvtopPackages.full # Htop like gpu monitor
amdgpu_top # Tool to display AMD GPU usage
btop # Монитор ресурсов в терминале
rocmPackages.rocm-smi # Чтоб в btop было gpu (не работает)
@ -288,7 +322,7 @@
fzf # Нечёткий поиск
killall # Убить процессы. Мем, что в стоке не стоит
libnotify # Вызов оповещений через "notify-send"
pkgs2.gallery-dl # Качать много картинок с кучи разных сайтов
gallery-dl # Качать много картинок с кучи разных сайтов
shellcheck # Проверка shell скриптов на ошибки
pwgen # Генератор паролей
lm_sensors # Сенсоры
@ -356,10 +390,10 @@
f3d # Fast and minimalist 3D viewer using VTK. Thumbnailer for 3D files, including glTF, stl, step, ply, obj, fbx.
openscad # 3D model previews (stl, off, dxf, scad, csg). Этот именно для ranger, но мб пригодится и в других местах
kdePackages.dolphin # Долфин и софт для него
kdePackages.ffmpegthumbs
kdePackages.kdegraphics-thumbnailers
kdePackages.filelight
pkgs2.kdePackages.dolphin # Долфин и софт для него
pkgs2.kdePackages.ffmpegthumbs
pkgs2.kdePackages.kdegraphics-thumbnailers
pkgs2.kdePackages.filelight
##################
## File support ##
@ -394,11 +428,15 @@
mousai # Опенсорс шазам. Со временем просит платный api
spek # Спектрограмма аудио.
mpv # Смотреть видео
qpwgraph # Аналог qjackctl для pipewire
carla # Для накладывания зкуковых эффектов
rnnoise-plugin # Плагин для шумоподавления
# Смотреть картинки
imv # Не умеет показывать анимированные webp. Через раз может показывать avif
qview # Умеет в анимированные webp. Не умеет открывать avif
feh # Нужен в большом количестве софта как зависимость. Может в avif, но криво
############
## Social ##
############
@ -456,12 +494,6 @@
#########
neovim
# helix # A Kakoune/Neovim inspired editor, written in Rust.
# Закинул в home.nix
# vscode
# jetbrains-toolbox
# zed-editor
###########
## Icons ##
@ -513,10 +545,10 @@
pamixer # PulseAudio cli (громкость редачу)
easyeffects # PipeWire settings. Мне для эквалайзера нужен
weston # Для запуска wayland only apps на x11 (ещё есть cage, но он крашит систему при ребилде)
ltex-ls # Lsp для текста
nix-index # Проверить как отображаются некоторые пакеты(например libz.so.1). Запускается nix-index, а потом nix-locate --top-level <Название пакета>
docker
docker-compose
# Для работы некоторых тем sddm
kdePackages.qt5compat
libsForQt5.qt5.qtgraphicaleffects

View file

@ -41,6 +41,7 @@ ln -s ~/nixos-private-dots/nvim ~/.config/nvim
- `fd`
- `xclip` на X11 или `wl-clipboard` на Wayland
- `tree-sitter`
- `ueberzugpp`
- Любой nerd font
Пакеты для разных языков могут часть меняться, так что ищем в `packages.nix`
@ -146,6 +147,9 @@ Per project можно использовать `.editorconfig` файл в ко
| `st` | `S`earch `T`hemes | health.lua |
| `q` | Open diagnostic `Q`uicfix list | settings.lua |
| `f` | `F`ormat buffer | autoformat.lua |
| `Sd` | `S`ession `D`elete | session.lua |
| `Sc` | `S`ession `C`reate | session.lua |
| `Backspace` | Session restore | session.lua |
### Git

4
nvim/ftplugin/proto.lua Normal file
View file

@ -0,0 +1,4 @@
vim.bo.expandtab = true
vim.bo.tabstop = 2
vim.bo.shiftwidth = 2
vim.bo.softtabstop = 2

View file

@ -1,6 +1,7 @@
-- [[ Базовые настройки. Не плагины ]]
require 'kickstart.settings'
require 'custom.terminal'
require 'custom.sessions'
-- [[ Install `lazy.nvim` plugin manager ]]
-- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info
@ -87,17 +88,36 @@ require('lazy').setup({
-- Feature-Rich Go Plugin for Neovim
require 'custom.plugins.golang',
-- Automated session manager
require 'custom.plugins.sessions',
-- Plugins for git
require 'custom.plugins.git',
-- Plugins for color highlight
require 'custom.plugins.colorizer',
-- Multicursor plugin
require 'custom.plugins.multicursor',
-- Symbol usage plugin
require 'custom.plugins.symbol_usage',
-- Adding history for nvim clipboard
require 'custom.plugins.clip_history',
-- Autoformat markdown tables
{
'Kicamon/markdown-table-mode.nvim',
config = function()
require('markdown-table-mode').setup()
require('markdown-table-mode').setup { -- Если не работает, то можно прописать `:Mtm`
filetype = {
'*.md',
},
options = {
insert = true, -- when typing "|"
insert_leave = true, -- when leaving insert
pad_separator_line = false, -- add space in separator line
alig_style = 'default', -- default, left, center, right
},
}
end,
},

View file

@ -1,57 +1,51 @@
{
"LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
"auto-session": { "branch": "main", "commit": "021b64ed7d4ac68a37be3ad28d8e1cba5bec582c" },
"catppuccin": { "branch": "main", "commit": "f67b886d65a029f12ffa298701fb8f1efd89295d" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" },
"cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"conform.nvim": { "branch": "master", "commit": "70019124aa4f2e6838be9fbd2007f6d13b27a96d" },
"conform.nvim": { "branch": "master", "commit": "6632e7d788a85bf8405ea0c812d343fc308b7b8c" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"edge": { "branch": "master", "commit": "12ff979b43e3660053e14cd65101d5928e56f422" },
"everforest": { "branch": "master", "commit": "84fbfc99c9853408682f104063a7ef4465dae46a" },
"fidget.nvim": { "branch": "main", "commit": "9238947645ce17d96f30842e61ba81147185b657" },
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
"go.nvim": { "branch": "master", "commit": "c6d5ca26377d01c4de1f7bff1cd62c8b43baa6bc" },
"gruvbox-material": { "branch": "master", "commit": "e41451337d33997aff4c078a83165a9f66e2d38d" },
"gruvbox.nvim": { "branch": "main", "commit": "68c3460a5d1d1a362318960035c9f3466d5011f5" },
"guihua.lua": { "branch": "master", "commit": "d783191eaa75215beae0c80319fcce5e6b3beeda" },
"image.nvim": { "branch": "master", "commit": "f1163cc2f6fff5b0de7c23c7502eee0df23a3e0e" },
"indent-blankline.nvim": { "branch": "master", "commit": "259357fa4097e232730341fa60988087d189193a" },
"kanagawa.nvim": { "branch": "master", "commit": "18ae5771b22d8f913ef541c827a8180b4cb12c8a" },
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
"lazydev.nvim": { "branch": "main", "commit": "8620f82ee3f59ff2187647167b6b47387a13a018" },
"luvit-meta": { "branch": "main", "commit": "55709f183b0742a7e4f47688c284f81148ad4dc0" },
"markdown-table-mode.nvim": { "branch": "main", "commit": "870d0449c1c78c673faa9637a63036f9537b4caa" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "97d9f1d3ad205dece6bcafd1d71cf1507608f3c7" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "c5e07b8ff54187716334d585db34282e46fa2932" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"mini.nvim": { "branch": "main", "commit": "b1af49d98233180c6045e81f4aef5b663d032b62" },
"monokai-pro.nvim": { "branch": "master", "commit": "6c15e36834a624a32f46c6db8f9fc063995b24b6" },
"neo-tree.nvim": { "branch": "main", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" },
"nightfox.nvim": { "branch": "main", "commit": "595ffb8f291fc4a9bef3201a28b7c0379a41cdee" },
"nordic.nvim": { "branch": "main", "commit": "1ee4044077059b34eacd18d93613495a602c131f" },
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
"nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" },
"nvim-cmp": { "branch": "main", "commit": "8c82d0bd31299dbff7f8e780f5e06d2283de9678" },
"nvim-dap": { "branch": "master", "commit": "0e673accbb512e1e191dfb4fecea89cc38c1bcdd" },
"nvim-dap-go": { "branch": "main", "commit": "6aa88167ea1224bcef578e8c7160fe8afbb44848" },
"nvim-dap-ui": { "branch": "master", "commit": "e94d98649dccb6a3884b66aabc2e07beb279e535" },
"nvim-lint": { "branch": "master", "commit": "dfa45de973c3ce7bd1b9a6d346f896a68ad07e44" },
"nvim-lspconfig": { "branch": "master", "commit": "8121483b8132b7053120fafd83728178fb3febf6" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-treesitter": { "branch": "master", "commit": "622a4a6ba76d1de52b72a965159213ae655b4ac7" },
"nvim-treesitter-context": { "branch": "master", "commit": "d0dd7ce5a9d0be1f28086e818e52fdc5c78975df" },
"nvim-web-devicons": { "branch": "master", "commit": "5740b7382429d20b6ed0bbdb0694185af9507d44" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"rose-pine": { "branch": "main", "commit": "91548dca53b36dbb9d36c10f114385f759731be1" },
"rustaceanvim": { "branch": "master", "commit": "0a1876b970ab946be3f4d341e9d743a5d62d646a" },
"sonokai": { "branch": "master", "commit": "836ad3994d3d0eaea68126cabddf6319508584e8" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" },
"fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" },
"friendly-snippets": { "branch": "main", "commit": "31f2a2657b6261724313281fe0d8ba6f43f4a4fa" },
"gitsigns.nvim": { "branch": "main", "commit": "d600d3922c1d001422689319a8f915136bb64e1e" },
"go.nvim": { "branch": "master", "commit": "ecffa1757ac8e84e1e128f12e0fdbf8418354f6f" },
"gruvbox.nvim": { "branch": "main", "commit": "a933d8666dad9363dc6908ae72cfc832299c2f59" },
"guihua.lua": { "branch": "master", "commit": "3bce83823fe59fe438b0484777e56250153aaebf" },
"hydra.nvim": { "branch": "main", "commit": "8c4a9f621ec7cdc30411a1f3b6d5eebb12b469dc" },
"image.nvim": { "branch": "master", "commit": "2e2d28b7734b5efdfc1219f4da8a46c761587bc2" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
"luvit-meta": { "branch": "main", "commit": "1df30b60b1b4aecfebc785aa98943db6c6989716" },
"markdown-table-mode.nvim": { "branch": "main", "commit": "302ca4c1016c4895938027003a7b71d65a618b09" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "1255518cb067e038a4755f5cb3e980f79b6ab89c" },
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
"mini.nvim": { "branch": "main", "commit": "a8b1d74f45dadf3554c0eed784c6ccd8ade67883" },
"multicursors.nvim": { "branch": "main", "commit": "72225ea9e4443c3f4b9df91d0193e07c4ee8d382" },
"neo-tree.nvim": { "branch": "main", "commit": "9b5d67119c46e3262ffe1508fe6d8540b79ad75d" },
"nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" },
"nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
"nvim-colorizer.lua": { "branch": "master", "commit": "517df88cf2afb36652830df2c655df2da416a0ae" },
"nvim-dap": { "branch": "master", "commit": "7aade9e99bef5f0735cf966e715b3ce45515d786" },
"nvim-dap-go": { "branch": "main", "commit": "8763ced35b19c8dc526e04a70ab07c34e11ad064" },
"nvim-dap-ui": { "branch": "master", "commit": "881a69e25bd6658864fab47450025490b74be878" },
"nvim-lint": { "branch": "master", "commit": "3615c26c4922ae5f7366f0c1943a0e7cece04325" },
"nvim-lspconfig": { "branch": "master", "commit": "a56f4b9dde5daf3d4c7bb50cf78ab609537f2259" },
"nvim-neoclip.lua": { "branch": "main", "commit": "831a97c7697736411a05ff8b91e8798ea4c2d6fb" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-treesitter": { "branch": "master", "commit": "684eeac91ed8e297685a97ef70031d19ac1de25a" },
"nvim-treesitter-context": { "branch": "master", "commit": "b8ec6e391020a3ee18547f3343b25fc7c9ada9cc" },
"nvim-web-devicons": { "branch": "master", "commit": "c90dee4e930ab9f49fa6d77f289bff335b49e972" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"rustaceanvim": { "branch": "master", "commit": "e9c5aaba16fead831379d5f44617547a90b913c7" },
"symbol-usage.nvim": { "branch": "main", "commit": "e8712de8f339d40f96c0c89566f9bb97e647599d" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
"tokyonight.nvim": { "branch": "main", "commit": "7bb270adaa7692c2c33befc35f5567fc596a2504" },
"which-key.nvim": { "branch": "main", "commit": "1f8d414f61e0b05958c342df9b6a4c89ce268766" }
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
}

View file

@ -0,0 +1,14 @@
-- Adding history for nvim clipboard
return {
{
'AckslD/nvim-neoclip.lua',
dependencies = {
{ 'nvim-telescope/telescope.nvim' },
},
config = function()
require('neoclip').setup()
vim.keymap.set('n', '<leader>sc', ':Telescope neoclip<CR>', { desc = '[S]earch [C]lip history' })
end,
},
}

View file

@ -0,0 +1,63 @@
-- A high-performance color highlighter
return {
{
'catgoose/nvim-colorizer.lua',
event = 'BufReadPre',
opts = { -- set to setup table
filetypes = { '*' }, -- Filetype options. Accepts table like `user_default_options`
buftypes = {}, -- Buftype options. Accepts table like `user_default_options`
-- Boolean | List of usercommands to enable. See User commands section.
user_commands = true, -- Enable all or some usercommands
lazy_load = false, -- Lazily schedule buffer highlighting setup function
user_default_options = {
names = true, -- "Name" codes like Blue or red. Added from `vim.api.nvim_get_color_map()`
names_opts = { -- options for mutating/filtering names.
lowercase = true, -- name:lower(), highlight `blue` and `red`
camelcase = true, -- name, highlight `Blue` and `Red`
uppercase = false, -- name:upper(), highlight `BLUE` and `RED`
strip_digits = false, -- ignore names with digits,
-- highlight `blue` and `red`, but not `blue3` and `red4`
},
-- Expects a table of color name to #RRGGBB value pairs. # is optional
-- Example: { cool = "#107dac", ["notcool"] = "ee9240" }
-- Set to false to disable, for example when setting filetype options
names_custom = false, -- Custom names to be highlighted: table|function|false
RGB = true, -- #RGB hex codes
RGBA = true, -- #RGBA hex codes
RRGGBB = true, -- #RRGGBB hex codes
RRGGBBAA = false, -- #RRGGBBAA hex codes
AARRGGBB = false, -- 0xAARRGGBB hex codes
rgb_fn = false, -- CSS rgb() and rgba() functions
hsl_fn = false, -- CSS hsl() and hsla() functions
css = false, -- Enable all CSS *features*:
-- names, RGB, RGBA, RRGGBB, RRGGBBAA, AARRGGBB, rgb_fn, hsl_fn
css_fn = false, -- Enable all CSS *functions*: rgb_fn, hsl_fn
-- Tailwind colors. boolean|'normal'|'lsp'|'both'. True sets to 'normal'
tailwind = false, -- Enable tailwind colors
tailwind_opts = { -- Options for highlighting tailwind names
update_names = false, -- When using tailwind = 'both', update tailwind names from LSP results. See tailwind section
},
-- parsers can contain values used in `user_default_options`
sass = { enable = false, parsers = { 'css' } }, -- Enable sass colors
-- Highlighting mode. 'background'|'foreground'|'virtualtext'
mode = 'background', -- Set the display mode
-- Virtualtext character to use
virtualtext = '',
-- Display virtualtext inline with color. boolean|'before'|'after'. True sets to 'after'
virtualtext_inline = false,
-- Virtualtext highlight mode: 'background'|'foreground'
virtualtext_mode = 'foreground',
-- update color values even if buffer is not focused
-- example use: cmp_menu, cmp_docs
always_update = false,
-- hooks to invert control of colorizer
hooks = {
-- called before line parsing. Accepts boolean or function that returns boolean
-- see hooks section below
disable_line_highlight = false,
},
},
},
},
}

View file

@ -9,11 +9,13 @@ return {
'nvim-treesitter/nvim-treesitter',
},
config = function()
require('go').setup()
require('go').setup {
tag_options = '',
}
vim.keymap.set({ 'n' }, '<leader>gta', ':GoAddTag<CR>', { desc = '[G]o [T]ag [A]dd' })
vim.keymap.set({ 'n' }, '<leader>gtr', ':GoRmTag<CR>', { desc = '[G]o [T]ag [R]emove' })
vim.keymap.set({ 'n' }, '<leader>gs', ':GoFillStruct<CR>', { desc = '[G]o fill [S]truct' })
vim.keymap.set({ 'n' }, '<leader>gc', ':GoFillSwitch<CR>', { desc = '[G]o fill Switch [C]ase' })
vim.keymap.set({ 'n' }, '<leader>gfs', ':GoFillStruct<CR>', { desc = '[G]o [F]ill [S]truct' })
vim.keymap.set({ 'n' }, '<leader>gfc', ':GoFillSwitch<CR>', { desc = '[G]o [F]ill Switch [C]ase' })
-- Go Fix Plurals - change func foo(b int, a int, r int) -> func foo(b, a, r int)
vim.keymap.set({ 'n' }, '<leader>gp', ':GoFixPlurals<CR>', { desc = '[G]o fix [P]lurals' })
vim.keymap.set({ 'n' }, '<leader>ge', ':GoIfErr<CR>', { desc = '[G]o if [E]rr' })

View file

@ -0,0 +1,21 @@
-- Multicursor
return {
{
'smoka7/multicursors.nvim',
event = 'VeryLazy',
dependencies = {
'nvimtools/hydra.nvim',
},
opts = {},
cmd = { 'MCstart', 'MCvisual', 'MCclear', 'MCpattern', 'MCvisualPattern', 'MCunderCursor' },
keys = {
{
mode = { 'v', 'n' },
'<Leader>m',
'<cmd>MCstart<cr>',
desc = 'Create a selection for selected text or word under the cursor',
},
},
},
}

View file

@ -1,16 +0,0 @@
-- A small automated session manager for Neovim
return {
{
'rmagatti/auto-session',
lazy = false,
---enables autocomplete for opts
---@module "auto-session"
---@type AutoSession.Config
opts = {
suppressed_dirs = { '~/', '~/Projects', '~/Downloads', '/' },
-- log_level = 'debug',
},
},
}

View file

@ -0,0 +1,41 @@
-- Symbol usage plugin
local SymbolKind = vim.lsp.protocol.SymbolKind
local function text_format(symbol)
local fragments = {}
-- Indicator that shows if there are any other symbols in the same line
local stacked_functions = symbol.stacked_count > 0 and (' | +%s'):format(symbol.stacked_count) or ''
if symbol.references then
local usage = symbol.references <= 1 and 'usage' or 'usages'
local num = symbol.references == 0 and 'no' or symbol.references
table.insert(fragments, ('%s %s'):format(num, usage))
end
if symbol.definition then
table.insert(fragments, symbol.definition .. ' defs')
end
if symbol.implementation then
table.insert(fragments, symbol.implementation .. ' impls')
end
return table.concat(fragments, ', ') .. stacked_functions
end
return {
{
'Wansmer/symbol-usage.nvim',
event = 'LspAttach', -- need run before LspAttach if you use nvim 0.9. On 0.10 use 'LspAttach'
config = function()
require('symbol-usage').setup {
filetypes = {},
log = { enabled = false, level = 'INFO', stdout = {}, log_file = {}, notify = {} },
text_format = text_format,
kinds = { SymbolKind.Function, SymbolKind.Method, SymbolKind.Class, SymbolKind.Struct, SymbolKind.Variable, SymbolKind.Constant },
}
end,
},
}

View file

@ -0,0 +1,115 @@
-- Add auto-sessions to mini.sessions plugin
-- Session names are generated dynamically based on the project directory and Git branch (if available)
-- Auto-save session on exit will only work if there is an active session in the project,
-- which can be set up, for example, via a custom key binding
-- When starting `nvim` with no arguments, will try to save session on exit
-- Whet starting `nvim .` (or another directory), will try to save session on exit
-- When starting `nvim some_file.txt` (or multiple files), won't do anything
-- Generate session name per project and per git branch for mini.sessions
local function get_git_branch()
local branch = vim.fn.systemlist('git branch --show-current')[1] or ''
return (vim.v.shell_error == 0 and branch ~= '') and branch or nil
end
local function session_name()
local cwd = vim.fn.getcwd() -- current working directory
local branch = get_git_branch()
local name = cwd
local sha = vim.fn.sha256(name)
if branch then
sha = sha .. '-' .. branch
end
return sha
end
-- Auto save session per project and per git branch on exit
local function should_save_session()
-- argc() returns the number of command line arguments
local argc = vim.fn.argc()
-- Case 1: nvim with no arguments
if argc == 0 then
return true
end
-- Case 2: nvim . (argument is a directory)
if argc == 1 then
local first_arg = vim.fn.argv(0) -- Get the first argument
return vim.fn.isdirectory(first_arg) == 1
end
return false
end
local function session_exist()
local session_dir = vim.fn.stdpath 'data' .. '/session/'
local session_path = session_dir .. session_name()
return vim.fn.filereadable(session_path) == 1
end
local function save_session()
if not should_save_session() then
return -- Do not save if there were files in the arguments
end
local name = session_name()
require('mini.sessions').write(name)
print('💾 Session Saved: ' .. name)
end
vim.api.nvim_create_autocmd('VimLeavePre', {
desc = 'Auto save session on exit if session exists',
callback = function()
if not session_exist() then
return -- Do not autosave session if there is no session in the project
end
save_session()
end,
})
-- Session restore
local function restore_session()
if not should_save_session() then
return
end
if not session_exist() then
return -- Do not restore session if there is no session in the project
end
local name = session_name()
require('mini.sessions').read(name)
print('💾 Session Restored: ' .. name)
end
vim.api.nvim_create_autocmd('User', {
pattern = 'VeryLazy', -- Lazy.nvim event
desc = 'Auto restore session after plugin load',
callback = function()
-- Adding a small delay for stability
vim.defer_fn(function()
restore_session()
end, 50)
end,
nested = true,
})
-- vim.keymap.set('n', '<leader><BS>', function()
-- restore_session()
-- end, { desc = 'Restore session' })
-- Session delete
vim.keymap.set('n', '<leader>Sd', function()
local name = session_name()
require('mini.sessions').delete(name)
print('💾 Session Deleted: ' .. name)
end, { desc = '[S]ession [D]elete' })
-- Session create
vim.keymap.set('n', '<leader>Sc', function()
save_session()
end, { desc = '[S]ession [C]reate' })

View file

@ -26,7 +26,7 @@ return {
-- Disable "format_on_save lsp_fallback" for languages that don't
-- have a well standardized coding style. You can add additional
-- languages here or re-enable it for the disabled ones.
local disable_filetypes = { c = true, cpp = true }
local disable_filetypes = { c = true, cpp = true, json = true } -- Руками можно отформатировать через `<leader>f`
local lsp_format_opt
if disable_filetypes[vim.bo[bufnr].filetype] then
lsp_format_opt = 'never'
@ -41,7 +41,7 @@ return {
formatters_by_ft = {
lua = { 'stylua' },
go = { 'gofmt', 'injected' },
sql = { 'sqlfluff' },
-- sql = { 'sqlfluff' },
-- ['*'] = { 'injected' }, -- enables injected-lang formatting for all filetypes
-- Conform can also run multiple formatters sequentially
@ -67,18 +67,18 @@ return {
-- end,
-- stdin = true,
-- },
sqlfluff = {
command = 'sqlfluff',
args = {
'format',
-- 'fix',
-- '--dialect',
-- 'postgres',
-- '--disable-progress-bar',
'-',
},
stdin = true,
},
-- sqlfluff = {
-- command = 'sqlfluff',
-- args = {
-- 'format',
-- -- 'fix',
-- -- '--dialect',
-- -- 'postgres',
-- -- '--disable-progress-bar',
-- '-',
-- },
-- stdin = true,
-- },
},
},
},

View file

@ -24,7 +24,7 @@ return {
{
'rafamadriz/friendly-snippets',
config = function()
require('luasnip.loaders.from_vscode').lazy_load()
-- require('luasnip.loaders.from_vscode').lazy_load()
end,
},
},
@ -36,6 +36,7 @@ return {
-- into multiple repos for maintenance purposes.
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-path',
'hrsh7th/cmp-nvim-lsp-signature-help',
},
config = function()
-- See `:help cmp`
@ -67,11 +68,12 @@ return {
-- This will auto-import if your LSP supports it.
-- This will expand snippets if the LSP sent a snippet.
-- ['<C-y>'] = cmp.mapping.confirm { select = true },
['<Tab>'] = cmp.mapping.confirm { select = true },
-- If you prefer more traditional completion keymaps,
-- you can uncomment the following lines
-- ['<CR>'] = cmp.mapping.confirm { select = true },
['<Tab>'] = cmp.mapping.select_next_item(),
['<C-Tab>'] = cmp.mapping.select_next_item(),
['<S-Tab>'] = cmp.mapping.select_prev_item(),
-- Allows Up arrow to fall back without interacting with cmp
@ -126,6 +128,7 @@ return {
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
{ name = 'path' },
{ name = 'nvim_lsp_signature_help' },
},
}
end,

View file

@ -6,8 +6,9 @@ return {
local lint = require 'lint'
lint.linters_by_ft = {
-- markdown = { 'markdownlint' },
sql = { 'sqlfluff' },
go = { 'golangcilint' },
-- sql = { 'sqlfluff' },
-- go = { 'golangcilint' },
-- proto = { 'buf_lint' }, -- Крашит
}
-- To allow other plugins to add linters to require('lint').linters_by_ft,

View file

@ -83,7 +83,8 @@ return {
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
map('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
-- Было gI [G]oto [I]mplementation
map('gi', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
@ -205,18 +206,22 @@ return {
-- SQL
-- lspconfig.postgres_lsp.setup { force_setup = true }
lspconfig.sqls.setup {
on_attach = function(client)
-- Выключить форматирование
client.server_capabilities.documentFormattingProvider = false
end,
}
-- lspconfig.sqls.setup {
-- on_attach = function(client)
-- -- Выключить форматирование
-- client.server_capabilities.documentFormattingProvider = false
-- end,
-- }
-- Nix
lspconfig.nixd.setup {}
-- Golang
lspconfig.gopls.setup {}
lspconfig.gopls.setup {
completion = {
unimported = false,
},
}
lspconfig.templ.setup {}
-- Frontend
@ -282,7 +287,14 @@ return {
-- lspconfig.rust_analyzer.setup {}
-- Bash
lspconfig.bashls.setup {}
lspconfig.bashls.setup {
on_attach = function(client, bufnr)
local filename = vim.api.nvim_buf_get_name(bufnr)
if filename:match '/%.env$' or filename:match '/%.env%..+$' then
client.stop() -- отключить LSP только для .env
end
end,
}
-- JSON
local cap_json = vim.lsp.protocol.make_client_capabilities()
@ -291,12 +303,31 @@ return {
capabilities = cap_json,
}
-- Natural language
lspconfig.ltex.setup {
settings = {
ltex = {
enabled = { 'bibtex', 'context', 'context.tex', 'html', 'latex', 'markdown', 'org', 'restructuredtext', 'rsweave', 'go' },
language = 'en',
additionalRules = {
enablePickyRules = true,
motherTongue = 'ru-RU',
},
disabledRules = {
['en'] = { 'EN_QUOTES', 'WORD_CONTAINS_UNDERSCORE', 'DASH_RULE', 'PUNCTUATION_PARAGRAPH_END' },
['ru-RU'] = { 'EN_QUOTES', 'WORD_CONTAINS_UNDERSCORE', 'DASH_RULE', 'PUNCTUATION_PARAGRAPH_END' },
},
-- languageToolHttpServerUri = 'http://localhost:8081/',
},
},
}
-- Other
lspconfig.taplo.setup {}
lspconfig.vimls.setup {}
lspconfig.yamlls.setup {}
-- lspconfig.protols.setup {}
lspconfig.buf_ls.setup {}
lspconfig.protols.setup {}
-- lspconfig.buf_ls.setup {}
-- Ensure the servers and tools above are installed
-- To check the current status of installed tools and/or manually install

View file

@ -19,6 +19,29 @@ return {
-- - sr)' - [S]urround [R]eplace [)] [']
require('mini.surround').setup()
-- Sessions
require('mini.sessions').setup {
-- Whether to read default session if Neovim opened without file arguments
autoread = false,
-- Whether to write currently read session before quitting Neovim
autowrite = false,
-- Whether to force possibly harmful actions (meaning depends on function)
force = { read = false, write = true, delete = true },
-- Hook functions for actions. Default `nil` means 'do nothing'.
hooks = {
-- Before successful action
pre = { read = nil, write = nil, delete = nil },
-- After successful action
post = { read = nil, write = nil, delete = nil },
},
-- Whether to print session path after action
verbose = { read = false, write = true, delete = true },
}
-- Simple and easy statusline.
-- You could remove this setup call if you don't like it,
-- and try some other statusline plugin

View file

@ -12,84 +12,84 @@
-- https://dotfyle.com/neovim/colorscheme/top
-- Убедитесь, что Sonokai установлен через lazy.nvim или другой менеджер
local variants = { 'default', 'atlantis', 'andromeda', 'shusia', 'maia', 'espresso' }
-- -- Убедитесь, что Sonokai установлен через lazy.nvim или другой менеджер
-- local variants = { 'default', 'atlantis', 'andromeda', 'shusia', 'maia', 'espresso' }
-- Создаем псевдонимы для каждой темы
for _, variant in ipairs(variants) do
local alias = 'sonokai-' .. variant
vim.api.nvim_create_user_command('Colorscheme' .. variant, function()
vim.g.sonokai_style = variant
vim.cmd 'colorscheme sonokai'
end, {})
-- -- Создаем псевдонимы для каждой темы
-- for _, variant in ipairs(variants) do
-- local alias = 'sonokai-' .. variant
-- vim.api.nvim_create_user_command('Colorscheme' .. variant, function()
-- vim.g.sonokai_style = variant
-- vim.cmd 'colorscheme sonokai'
-- end, {})
-- Регистрируем в Neovim как отдельный colorscheme
vim.api.nvim_set_hl(0, alias, {})
vim.cmd(string.format("autocmd ColorSchemePre %s let g:sonokai_style = '%s' | colorscheme sonokai", alias, variant))
end
-- -- Регистрируем в Neovim как отдельный colorscheme
-- vim.api.nvim_set_hl(0, alias, {})
-- vim.cmd(string.format("autocmd ColorSchemePre %s let g:sonokai_style = '%s' | colorscheme sonokai", alias, variant))
-- end
return {
{
'folke/tokyonight.nvim',
priority = 1000,
init = function()
-- 'tokyonight-storm', 'tokyonight-moon', 'tokyonight-day', 'tokyonight-night'
-- vim.cmd.colorscheme 'tokyonight-night'
vim.cmd.hi 'Comment gui=none' -- Убрать курсив у коммента в коде
end,
},
{
'rose-pine/neovim',
name = 'rose-pine',
priority = 1000,
init = function()
-- 'rose-pine-moon', 'rose-pine-main', 'rose-pine-dawn'
-- vim.cmd.colorscheme 'rose-pine-main'
end,
},
{
'loctvl842/monokai-pro.nvim',
priority = 1000,
config = function()
-- 'monokai-pro', 'monokai-pro-classic', 'monokai-pro-default', 'monokai-pro-machine',
-- 'monokai-pro-octagon', 'monokai-pro-spectrum', 'monokai-pro-ristretto'
-- vim.cmd.colorscheme 'monokai-pro'
end,
},
{
'catppuccin/nvim',
name = 'catppuccin',
priority = 1000,
config = function()
-- 'catppuccin', 'catppuccin-latte', 'catppuccin-frappe',
-- 'catppuccin-macchiato', 'catppuccin-mocha'
-- vim.cmd.colorscheme 'catppuccin'
end,
},
{
'rebelot/kanagawa.nvim',
priority = 1000,
config = function()
-- 'kanagawa-wave', 'kanagawa-dragon', 'kanagawa-lotus',
-- vim.cmd.colorscheme 'kanagawa-dragon'
end,
},
{
'EdenEast/nightfox.nvim',
priority = 1000,
config = function()
-- 'nightfox', 'dayfox', 'dawnfox', 'duskfox'
-- 'nordfox', 'terafox', 'carbonfox'
-- vim.cmd.colorscheme 'carbonfox'
end,
},
{
'AlexvZyl/nordic.nvim',
priority = 1000,
config = function()
-- vim.cmd.colorscheme 'nordic'
end,
},
-- {
-- 'folke/tokyonight.nvim',
-- priority = 1000,
-- init = function()
-- -- 'tokyonight-storm', 'tokyonight-moon', 'tokyonight-day', 'tokyonight-night'
-- -- vim.cmd.colorscheme 'tokyonight-night'
-- vim.cmd.hi 'Comment gui=none' -- Убрать курсив у коммента в коде
-- end,
-- },
-- {
-- 'rose-pine/neovim',
-- name = 'rose-pine',
-- priority = 1000,
-- init = function()
-- -- 'rose-pine-moon', 'rose-pine-main', 'rose-pine-dawn'
-- -- vim.cmd.colorscheme 'rose-pine-main'
-- end,
-- },
-- {
-- 'loctvl842/monokai-pro.nvim',
-- priority = 1000,
-- config = function()
-- -- 'monokai-pro', 'monokai-pro-classic', 'monokai-pro-default', 'monokai-pro-machine',
-- -- 'monokai-pro-octagon', 'monokai-pro-spectrum', 'monokai-pro-ristretto'
-- -- vim.cmd.colorscheme 'monokai-pro'
-- end,
-- },
-- {
-- 'catppuccin/nvim',
-- name = 'catppuccin',
-- priority = 1000,
-- config = function()
-- -- 'catppuccin', 'catppuccin-latte', 'catppuccin-frappe',
-- -- 'catppuccin-macchiato', 'catppuccin-mocha'
-- -- vim.cmd.colorscheme 'catppuccin'
-- end,
-- },
-- {
-- 'rebelot/kanagawa.nvim',
-- priority = 1000,
-- config = function()
-- -- 'kanagawa-wave', 'kanagawa-dragon', 'kanagawa-lotus',
-- -- vim.cmd.colorscheme 'kanagawa-dragon'
-- end,
-- },
-- {
-- 'EdenEast/nightfox.nvim',
-- priority = 1000,
-- config = function()
-- -- 'nightfox', 'dayfox', 'dawnfox', 'duskfox'
-- -- 'nordfox', 'terafox', 'carbonfox'
-- -- vim.cmd.colorscheme 'carbonfox'
-- end,
-- },
-- {
-- 'AlexvZyl/nordic.nvim',
-- priority = 1000,
-- config = function()
-- -- vim.cmd.colorscheme 'nordic'
-- end,
-- },
----------------------------------------------------------
-- Гандоны не дают выбрать тему нормально --
@ -149,59 +149,59 @@ return {
vim.cmd.colorscheme 'gruvbox'
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
-- {
-- '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',
priority = 1000,
init = function()
-- 'hard', 'medium', 'soft'
vim.g.everforest_background = 'hard'
vim.g.everforest_better_performance = 1
-- vim.g.everforest_enable_italic = true
-- vim.cmd.colorscheme 'everforest'
end,
},
{
'sainnhe/sonokai',
priority = 1000,
init = function()
-- Очень разные темы
-- 'default', 'atlantis', 'andromeda', 'shusia', 'maia', 'espresso'
vim.g.sonokai_style = 'shusia'
vim.g.sonokai_better_performance = 1
-- vim.g.sonokai_enable_italic = true
-- vim.cmd.colorscheme 'sonokai'
end,
},
{
'sainnhe/edge',
priority = 1000,
init = function()
-- 'default', 'aura', 'neon'
vim.g.edge_style = 'default'
vim.g.edge_better_performance = 1
-- vim.g.edge_enable_italic = true
-- vim.cmd.colorscheme 'edge'
end,
},
-- -- 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',
-- priority = 1000,
-- init = function()
-- -- 'hard', 'medium', 'soft'
-- vim.g.everforest_background = 'hard'
-- vim.g.everforest_better_performance = 1
-- -- vim.g.everforest_enable_italic = true
-- -- vim.cmd.colorscheme 'everforest'
-- end,
-- },
-- {
-- 'sainnhe/sonokai',
-- priority = 1000,
-- init = function()
-- -- Очень разные темы
-- -- 'default', 'atlantis', 'andromeda', 'shusia', 'maia', 'espresso'
-- vim.g.sonokai_style = 'shusia'
-- vim.g.sonokai_better_performance = 1
-- -- vim.g.sonokai_enable_italic = true
-- -- vim.cmd.colorscheme 'sonokai'
-- end,
-- },
-- {
-- 'sainnhe/edge',
-- priority = 1000,
-- init = function()
-- -- 'default', 'aura', 'neon'
-- vim.g.edge_style = 'default'
-- vim.g.edge_better_performance = 1
-- -- vim.g.edge_enable_italic = true
-- -- vim.cmd.colorscheme 'edge'
-- end,
-- },
}

View file

@ -1,10 +1,22 @@
-- Highlight todo, notes, etc in comments
-- NOTE: adding a note
-- PERF: fully optimised
-- TODO: What else?
-- TEST:
-- HACK: hmmm, this looks a bit funky
-- WARNING: ????
-- WARN:
-- FIXME:
-- FIX: this needs fixing
-- BUG: test
return {
{
'folke/todo-comments.nvim',
event = 'VimEnter',
dependencies = { 'nvim-lua/plenary.nvim' },
opts = { signs = false },
opts = {
-- signs = false
},
},
}

View file

@ -63,6 +63,7 @@ return {
-- { '<leader>d', group = '[D]ocument' },
{ '<leader>r', group = '[R]ename' },
{ '<leader>s', group = '[S]earch' },
{ '<leader>S', group = '[S]ession' },
{ '<leader>w', group = '[W]orkspace' },
{ '<leader>t', group = '[T]oggle' },
{ '<leader>g', group = '[G]olang' },

View file

@ -27,7 +27,8 @@ vim.opt.expandtab = true
-- yaml lsp за меня решают сколько пробелов мне надо. Это фикс
-- Их параметры конфига для переназначения не работают. Пришлось костыль сделать
vim.cmd [[
autocmd FileType yaml setlocal shiftwidth=4 tabstop=4 softtabstop=4 expandtab
autocmd FileType yaml setlocal shiftwidth=2 tabstop=2 softtabstop=2 expandtab
autocmd BufEnter *.py :setlocal shiftwidth=4 tabstop=4 softtabstop=4 noexpandtab
]]
-- Комментировать .proto код биндом
@ -38,6 +39,14 @@ vim.api.nvim_create_autocmd('FileType', {
end,
})
-- Комментировать .sql код биндом
vim.api.nvim_create_autocmd('FileType', {
pattern = 'sql',
callback = function()
vim.bo.commentstring = '-- %s'
end,
})
-- Enable mouse mode, can be useful for resizing splits for example!
vim.opt.mouse = 'a'
@ -174,3 +183,102 @@ vim.api.nvim_create_autocmd('TextYankPost', {
vim.highlight.on_yank()
end,
})
vim.keymap.set('n', 'wa', ':wa<CR>', { desc = 'Alias for :wa' })
-- -- Установка трёх раздельных столбцов
-- vim.opt.signcolumn = 'yes:3' -- [Вирт.номера][Git][Номера строк]
-- vim.opt.number = true
-- vim.opt.relativenumber = true
--
-- -- Группа для виртуальных номеров
-- local virt_sign_group = 'virtnum_group'
--
-- -- Создаём знаки для чисел 1-99
-- for i = 1, 99 do
-- vim.fn.sign_define('VirtNum' .. i, {
-- text = string.format('%2d', i), -- Фиксированная ширина 2 символа
-- texthl = 'LineNr',
-- numhl = '',
-- linehl = '',
-- priority = 5,
-- })
-- end
--
-- -- Знак для текущей строки (пустой)
-- vim.fn.sign_define('VirtNumCurrent', {
-- text = ' ', -- Два пробела для выравнивания
-- texthl = 'LineNr',
-- priority = 5,
-- })
--
-- -- Функция для обновления виртуальных номеров
-- local function update_virtual_numbers()
-- local bufnr = vim.api.nvim_get_current_buf()
-- local cur_line = vim.api.nvim_win_get_cursor(0)[1]
-- local topline = vim.fn.line 'w0'
-- local bottomline = vim.fn.line 'w$'
--
-- -- Убираем только наши знаки
-- vim.fn.sign_unplace(virt_sign_group, { buffer = bufnr })
--
-- for lnum = topline, bottomline do
-- if vim.fn.foldclosed(lnum) == -1 then
-- local sign_name
-- if lnum == cur_line then
-- sign_name = 'VirtNumCurrent'
-- else
-- local dist = math.abs(lnum - cur_line) + 1
-- sign_name = (dist <= 99) and ('VirtNum' .. dist) or 'VirtNum99'
-- end
--
-- vim.fn.sign_place(
-- 0, -- Автоматический ID
-- virt_sign_group,
-- sign_name,
-- bufnr,
-- { lnum = lnum }
-- )
-- end
-- end
-- end
--
-- -- Автокоманды для обновления
-- vim.api.nvim_create_autocmd({
-- 'CursorMoved',
-- 'CursorMovedI',
-- 'BufEnter',
-- 'WinScrolled',
-- 'InsertLeave',
-- 'TextChanged',
-- }, {
-- callback = update_virtual_numbers,
-- })
--
-- -- Фикс для скролла мышью
-- vim.api.nvim_create_autocmd('WinScrolled', {
-- callback = function()
-- vim.schedule(update_virtual_numbers)
-- end,
-- })
--
-- -- Настройка gitsigns с ЯВНЫМ указанием колонки
-- if pcall(require, 'gitsigns') then
-- require('gitsigns').setup {
-- signcolumn = 2, -- Явно указываем вторую колонку для Git
-- numhl = false,
-- current_line_blame = false,
-- update_debounce = 100,
-- signs = {
-- add = { text = '▏', priority = 10 },
-- change = { text = '▏', priority = 10 },
-- delete = { text = '▁', priority = 10 },
-- topdelete = { text = '▔', priority = 10 },
-- changedelete = { text = '▒', priority = 10 },
-- untracked = { text = '┆', priority = 10 },
-- },
-- }
-- end
--
-- -- Настройка отступов
-- vim.opt.numberwidth = 3 -- Ширина колонки номеров строк

View file

@ -1,9 +1,9 @@
Тут будут файлы, которые через nix нельзя сделать нормально. Например некоторые симлинки перезаписываются почти пустыми файлами, если делать их через nix. Так как nix не имеет возможности один раз именно создать файл, а не симлинк, мне приходится делать этот скрипт
Ебучий конфиг для thunar всегда будет класть хуй на мои настройки. Всегда эта блядь будет удалять мои настройки и заменять пустыми, чтоб я восстанавливал всё через gui
Конфиг для thunar всегда будет забивать на мои настройки. Всегда будет удалять мои настройки и заменять пустыми, чтоб я восстанавливал всё через gui
Конфиг для `strawberry` может меняться. Так что прям фул бекапить его мб смысла мало. Надо будет потом симлинк сделать себе в бекапы на ссд (`strawberry` игнорит все мои конфиги, надо через гуи настраивать)
## Применение скрипта
Когда система готова и все симлинки отправлены куда надо, этот скрипт именно скопирует нужные файлы в нужные каталоги. В теории, тогда программы не будут перезаписывать, а будут дополнять этот файл. Но это не точно. Разрабы далбаёбы
Когда система готова и все симлинки отправлены куда надо, этот скрипт именно скопирует нужные файлы в нужные каталоги. В теории, тогда программы не будут перезаписывать, а будут дополнять этот файл. Но это не точно. Разрабы далбаёбы

View file

@ -1,9 +1,9 @@
#!/usr/bin/env bash
mkdir -p $HOME/.config/xfce4/
cp $HOME/nixos-private-dots/shit/helpers.rc $HOME/.config/xfce4/helpers.rc
cp $HOME/nixos-private-dots/shit/mimeapps.list $HOME/.config/mimeapps.list
cp $HOME/nixos_dots/shit/helpers.rc $HOME/.config/xfce4/helpers.rc
cp $HOME/nixos_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/qt5ct $HOME/.config/qt5ct
cp -r $HOME/nixos-private-dots/shit/qt6ct $HOME/.config/qt6ct
cp -r $HOME/nixos_dots/shit/Kvantum $HOME/.config/Kvantum
cp -r $HOME/nixos_dots/shit/qt5ct $HOME/.config/qt5ct
cp -r $HOME/nixos_dots/shit/qt6ct $HOME/.config/qt6ct

View file

@ -1,33 +1,33 @@
[Added Associations]
application/json=nvim.desktop;codium.desktop;librewolf.desktop;firefox.desktop;chromium.desktop
application/x-sh=nvim.desktop;codium.desktop
application/x-shellscript=nvim.desktop;codium.desktop
application/xml=nvim.desktop;codium.desktop
application/yaml=nvim.desktop;codium.desktop
image/*=com.interversehq.qView.desktop;imv.desktop
image/apng=com.interversehq.qView.desktop;imv.desktop
application/json=nvim.desktop;librewolf.desktop;firefox.desktop;chromium.desktop
application/x-sh=nvim.desktop
application/x-shellscript=nvim.desktop
application/xml=nvim.desktop
application/yaml=nvim.desktop
image/*=imv.desktop;com.interversehq.qView.desktop
image/apng=imv.desktop;com.interversehq.qView.desktop
image/avif=imv.desktop
image/gif=com.interversehq.qView.desktop;imv.desktop
image/jpeg=;com.interversehq.qView.desktop;imv.desktop;
image/pjpeg=com.interversehq.qView.desktop;imv.desktop
image/png=com.interversehq.qView.desktop;imv.desktop;;
image/svg+xml=com.interversehq.qView.desktop;imv.desktop
image/vnd.microsoft.icon=com.interversehq.qView.desktop;imv.desktop
image/webp=com.interversehq.qView.desktop;imv.desktop
image/x-icon=com.interversehq.qView.desktop;imv.desktop
text/*=nvim.desktop;codium.desktop
text/css=nvim.desktop;codium.desktop
text/csv=nvim.desktop;codium.desktop
text/html=nvim.desktop;codium.desktop;librewolf.desktop;firefox.desktop;chromium.desktop
text/javascript=nvim.desktop;codium.desktop
text/markdown=nvim.desktop;codium.desktop
text/plain=nvim.desktop;codium.desktop
text/x-asm=nvim.desktop;codium.desktop
text/x-c=nvim.desktop;codium.desktop
text/x-python=nvim.desktop;codium.desktop
image/gif=imv.desktop;com.interversehq.qView.desktop
image/jpeg=imv.desktop;com.interversehq.qView.desktop
image/pjpeg=imv.desktop;com.interversehq.qView.desktop
image/png=imv.desktop;com.interversehq.qView.desktop
image/svg+xml=imv.desktop;com.interversehq.qView.desktop
image/vnd.microsoft.icon=imv.desktop;com.interversehq.qView.desktop
image/webp=imv.desktop;com.interversehq.qView.desktop
image/x-icon=imv.desktop;com.interversehq.qView.desktop
text/*=nvim.desktop
text/css=nvim.desktop
text/csv=nvim.desktop
text/html=nvim.desktop;librewolf.desktop;firefox.desktop;chromium.desktop
text/javascript=nvim.desktop
text/markdown=nvim.desktop
text/plain=nvim.desktop
text/x-asm=nvim.desktop
text/x-c=nvim.desktop
text/x-python=nvim.desktop
[Default Applications]
application/json=nvim.desktop;codium.desktop;librewolf.desktop;firefox.desktop;chromium.desktop
application/json=nvim.desktop;librewolf.desktop;firefox.desktop;chromium.desktop
application/pdf=org.gnome.Evince.desktop
application/x-bittorrent=qbittorrent.desktop
application/x-extension-htm=librewolf.desktop
@ -35,12 +35,12 @@ 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/x-sh=nvim.desktop;codium.desktop
application/x-shellscript=nvim.desktop;codium.desktop
application/x-zerosize=nvim.desktop;codium.desktop
application/x-sh=nvim.desktop
application/x-shellscript=nvim.desktop
application/x-zerosize=nvim.desktop
application/xhtml+xml=librewolf.desktop
application/xml=nvim.desktop;codium.desktop
application/yaml=nvim.desktop;codium.desktop
application/xml=nvim.desktop
application/yaml=nvim.desktop
application/zip=ark.desktop
audio/*=mpv.desktop
audio/aac=mpv.desktop
@ -54,28 +54,28 @@ audio/webm=mpv.desktop
audio/x-matroska=mpv.desktop
audio/x-mpegurl=mpv.desktop
audio/x-opus+ogg=mpv.desktop
image/*=com.interversehq.qView.desktop;imv.desktop
image/apng=com.interversehq.qView.desktop;imv.desktop
image/*=imv.desktop;com.interversehq.qView.desktop
image/apng=imv.desktop;com.interversehq.qView.desktop
image/avif=imv.desktop
image/gif=com.interversehq.qView.desktop;imv.desktop
image/jpeg=com.interversehq.qView.desktop;imv.desktop
image/pjpeg=com.interversehq.qView.desktop;imv.desktop
image/png=com.interversehq.com.interversehq.qView.desktop
image/svg+xml=com.interversehq.qView.desktop;imv.desktop
image/vnd.microsoft.icon=com.interversehq.qView.desktop;imv.desktop
image/webp=com.interversehq.qView.desktop;imv.desktop
image/x-icon=com.interversehq.qView.desktop;imv.desktop
image/gif=imv.desktop;com.interversehq.qView.desktop
image/jpeg=imv.desktop;com.interversehq.qView.desktop
image/pjpeg=imv.desktop;com.interversehq.qView.desktop
image/png=imv.desktop;com.interversehq.qView.desktop
image/svg+xml=imv.desktop;com.interversehq.qView.desktop
image/vnd.microsoft.icon=imv.desktop;com.interversehq.qView.desktop
image/webp=imv.desktop;com.interversehq.qView.desktop
image/x-icon=imv.desktop;com.interversehq.qView.desktop
inode/directory=dolphin.desktop
text/*=nvim.desktop;codium.desktop
text/css=nvim.desktop;codium.desktop
text/csv=nvim.desktop;codium.desktop
text/html=librewolf.desktop;firefox.desktop;chromium.desktop;nvim.desktop;codium.desktop
text/javascript=nvim.desktop;codium.desktop
text/markdown=nvim.desktop;codium.desktop
text/plain=nvim.desktop;codium.desktop
text/x-asm=nvim.desktop;codium.desktop
text/x-c=nvim.desktop;codium.desktop
text/x-python=nvim.desktop;codium.desktop
text/*=nvim.desktop
text/css=nvim.desktop
text/csv=nvim.desktop
text/html=librewolf.desktop;firefox.desktop;chromium.desktop;nvim.desktop
text/javascript=nvim.desktop
text/markdown=nvim.desktop
text/plain=nvim.desktop
text/x-asm=nvim.desktop
text/x-c=nvim.desktop
text/x-python=nvim.desktop
video/*=mpv.desktop
video/mp4=mpv.desktop
video/mpeg=mpv.desktop