nixos-private-dots/nixos/packages.nix

387 lines
18 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ pkgs, ... }: {
# https://nixos.wiki/wiki/Fonts
fonts.packages = with pkgs; [
noto-fonts # Шрифт от гугла, цель которого поддержка всех языков мира
noto-fonts-cjk-serif # Отображение иероглифов. Версия с засечками
noto-fonts-cjk-sans # Отображение иероглифов. Версия без засечек
noto-fonts-color-emoji
(nerdfonts.override {fonts = ["JetBrainsMono" "Noto" "CascadiaCode"];})
carlito # Совместим с Calibri, разработан как его свободная альтернатива. Без засечек
terminus_font
inconsolata
font-awesome
liberation_ttf
dejavu_fonts
cantarell-fonts
];
systemd = {
user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
services = {
gvfs.enable = true; # Mount, trash, and other functionalities for Thunar file manager
tumbler.enable = true; # Thumbnail support for Thunar file manager
unclutter.enable = true; # Enable unclutter to hide your mouse cursor when inactive
# fwupd.enable = true; # DBus service that allows applications to update firmware
# greenclip.enable = true; # https://github.com/erebe/greenclip (использую clipmenu вместо этого)
# fstrim.enable = true; # Чистит ssd для норм производительности. Пока не пользуюсь
# archisteamfarm = {}; # Фарм карточек стима афк. Простро раскомментить мало, надо настроить
};
programs = {
zsh.enable = true;
mtr.enable = true; # Объединяет функции утилит traceroute и ping
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
appimage = {
enable = true;
binfmt = true;
package = pkgs.appimage-run.override {
extraPkgs = pkgs: with pkgs; [ libpng libpng12 libepoxy pcre2 double-conversion ];
};
};
thunar = { # Can't I use it with home-manager? WTF
enable = true;
plugins = with pkgs.xfce; [
thunar-media-tags-plugin # Thunar plugin providing tagging and renaming features for media files
thunar-archive-plugin # Thunar plugin providing file context menus for archives
thunar-volman # Thunar extension for automatic management of removable drives and media
];
};
xfconf.enable = true; # For Thunar configs
# Параметры запуска для игр, чтоб юзать все доступные бафы, что я сделал
# Параметр запуска без использования gamescope:
# mangohud gamemoderun %command%
# Параметр запуска с использованием gamescop:
# gamescope --mangoapp gamemoderun %command%
# Если надо печатать на русском языке, то добавать в начало LC_ALL="ru_RU.UTF-8"
# FSR в proton-ge включается только в фулскрине через WINE_FULLSCREEN_FSR=1
# Регулировать резкость можно через переменную окружения WINE_FULLSCREEN_FSR_STRENGTH=N,
# где N - это уровень резкости изображения от 0 до 5. Чем выше значение, тем меньше резкость.
# По умолчанию установлено значение "2", рекомендуют использовать значение "3".
steam = {
enable = true;
extraCompatPackages = with pkgs; [ # Доп версии протона. Должны иметь `steamcompattool` output
proton-ge-bin
];
# fontPackages = with pkgs; []; # Font packages to use in Steam
# extraPackages = with pkgs; []; # Additional
# protontricks.enable = true; # Running Winetricks commands for Proton-enabled games.
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
# Я хз надо ли оно мне. https://github.com/ValveSoftware/gamescope
# Помню как на Hyprland пытался этим fsr включить.
# Качество картинки было таким, будто я головой в анус залез
# Подробносни тут https://ventureo.codeberg.page/source/linux-gaming.html#gamescope
# gamescopeSession = { # Run a GameScope driven Steam session from your display-manager
# enable = true;
# # args = []; # Arguments to be passed to GameScope for the session.
# # env = {}; # Environmental variables to be passed to GameScope for the session.
# };
# package = pkgs.steam.override {
# privateTmp = false;
# # extraEnv = {
# # MANGOHUD = true;
# # OBS_VKCAPTURE = true;
# # # RADV_TEX_ANISO = 16; # Улучшает качество текстур с драйвером radv?
# # };
# extraPkgs = pkgs: with pkgs; [
# xorg.libXcursor xorg.libXi xorg.libXinerama xorg.libXScrnSaver
# libpng libpulseaudio libvorbis stdenv.cc.cc.lib
# libkrb5 keyutils steam-run pango libthai harfbuzz
# vulkan-tools vulkan-loader vulkan-headers wine-staging
# ];
# # extraLibraries = p: with p; [ atk ]; # почему тут with p, а не pkgs?
# extraLibraries = pkgs: with pkgs; [ atk gperftools pkgsi686Linux.gperftools gamemode vulkan-tools vulkan-loader vulkan-headers wine-staging ];
# };
};
# Оптимизация для игр. https://github.com/FeralInteractive/gamemode
gamemode.enable = true;
gamescope.enable = true;
};
# Многое из этого продублировано в home-manager. Мне так удобней
environment.systemPackages = with pkgs; [
######################
## Программирование ##
######################
# Это рекомендуют ставить не на всю систему,
# а только на nix shell внутри проекта, где нужны эти пакеты
go # Go programming language
rustup # Управление версиями языка Rust
nil # Nix language server
hugo # Для моего блога
############
## Архивы ##
############
zip # Архивировать
unzip # Разархивировать
unrar # Разархивировать
gnutar # Для .tar?
_7zz # Это пакет для 7z?
bzip2 # .bz2 архивы
##############
## Terminal ##
##############
wget
curl
git
python
xclip # Для работы буфера обмена
ffmpeg_7 # Обработка видео. Нужен всегда и везде
imagemagick # Обработка изображений. Мб тоже нужен всегда
tree # Структура файлов в терминале
gnugrep # Поиск в терминале
gawk # Обработка и анализ текста в терминале
rsync # Синхронизация файлов
bat # A cat(1) clone with syntax highlighting and Git integration.
xorg.xwininfo # Для команды xprop?
xorg.xrandr # Для команды xrandr
xorg.xev # Для команды xev, чтоб узнать бинды
xdg-utils # Set of command line tools that assist applications with a variety of desktop integration tasks
feh # Смотреть изображения. Вроде нужен в большом количестве софта как зависимость
playerctl # Command-line utility and library for controlling media players that implement MPRIS
xdotool # Fake keyboard/mouse input, window management, and more. Автоматизация
zscroll # A text scroller for use with panels and shells https://github.com/noctuid/zscroll
tokei # Показывает количество строк кода на разных языках внутри каталога
pass # Менеджер паролей в терминале
btop # Монитор ресурсов в терминале
yt-dlp # Скачивать и смотреть медиа с разных сайтов
tasktimer # TUI task timer. Можно несколько таймеров с описанием запустить
timer # A "sleep" with progress. Таймер на пельмени "timer 5m"
libqalculate # Advanced calculator library
fastfetch # Пишешь в теримнал и кидаешь всем со словами I use nixos btw
zoxide # Замена cd для частых каталогов
fzf # Нечёткий поиск
killall # Убить процессы. Мем, что в стоке не стоит
# zsh-nix-shell # zsh plugin that lets you use zsh in nix-shell shell
alacritty # Минималистичный терминал. Основной у меня
kitty # Самый быстрый протокол отображения медиа, но ssh через жопу работает
#########
## GUI ##
#########
nekoray # VPN
ksnip # Скрины. Аналоги - Flameshot
kdePackages.ark # Архиватор
qbittorrent # Торренты качать
thunderbird # Почтовый клиент для своей почты
screenkey # A screencast tool to display your keys
pavucontrol # PulseAudio Volume Control
# pwvucontrol # Pipewire Volume Control (Не знаю может ли полностью заменить pavucontrol)
networkmanagerapplet # Tray for network manager
brightnessctl # Brightness control for laptop
gcolor3 # GUI color picker
xcolor # CLI color picker https://github.com/Soft/xcolor
# goverlay # UI для редактирования конфигов. Мне для mangohud нужен
##############
## Browsers ##
##############
librewolf
firefox
chromium
ff2mpv # Open online videos in mpv
lynx # Текстовый браузер в терминале. Без картинок
##########
## Docs ##
##########
evince # Смотреть документы (так же превью PDF файлов для Thunar) (не читает FB2)
# papers # Я так понимаю это современная замена для evince под GTK4. Оба от gnome
libreoffice # Редактировать документы
hunspell # Проверка орфографии для libreoffice
hunspellDicts.ru_RU # Словарь для проверки орфографии
hunspellDicts.en_US # Словарь для проверки орфографии
calibre # Работа с ebook. Иногда даёт thumbnail в файловом менеджере
drawio # Desktop application for creating diagrams. Вроде даёт thumbnail в ranger
###################
## File managers ##
###################
yazi # Terminal file manager
ranger # Terminal file manager
xfce.thunar # GUI file manager (допы выше в `programs` и `services`)
xfce.catfish # File searching (for Thunar)
xfce.exo # Мб надо, чтоб терминал открывать в каталоге
ffmpegthumbnailer # A lightweight video thumbnailer
gnome-epub-thumbnailer # Thumbnailer for EPub and MOBI books
nufraw-thumbnailer # Thumbnailer for .raw images from digital cameras
# mcomix # Comic book reader and image viewer. Thumbnailer for .crb comicbook archives (требует mupdf, который крашит систему)
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, но мб пригодится и в других местах
##################
## File support ##
##################
kdePackages.kimageformats # Image format plugins for Qt 6
kdePackages.qtimageformats # Plugins for additional image formats: TIFF, MNG, TGA, WBMP
kdePackages.qtsvg # SVG support
kdePackages.karchive # Plugin for Krita and OpenRaster images
webp-pixbuf-loader # .webp support (what's this?)
libwebp # .webp support
libavif # AVIF format support
libheif # HEIF format support
libgsf # .odf support
libjxl # JPEG-XL format support
libraw # RAW format support
jxrlib # JPEG XR image support
poppler # PDF support
freetype # Font rendering engine
imath # EXR format support
openexr # High dynamic-range (HDR) image file format
###########
## Media ##
###########
strawberry # Музыкальный плеер
obs-studio # Запись видео # TODO: Настройки надо сделать декларативными
picard # Массовый редактор метаданных музыки
mousai # Опенсорс шазам. Со временем просит платный api
spek # Спектрограмма аудио.
mpv # Смотреть видео
imv # Смотреть картинки 1. Не умеет показывать анимированные webp
qview # Смотреть картинки 2. Если imv не может что-то открыть
viewnior # До перехода на wayland юзал его. Если сортирует лучше imv, то удалить imv
############
## Social ##
############
(discord.override { # Discord
withOpenASAR = true; # Оптимизатор дискрода?
withVencord = true; # Имба плагины # TODO: Настройки надо сделать декларативными
})
telegram-desktop
###########
## Games ##
###########
# inputs.nix-gaming.packages.${pkgs.system}.osu-stable # osu!stable from nix-gaming
# steam # Мб не надо сюда писать, раз через programs.steam редачу
# heroic # A Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
# lutris # Запускать игры не из стима
bottles # Минималистичная альтернатива lutris
# Мб зависимости
steam-run
mangohud
gamemode
wine
winetricks
wine-staging
protontricks
gnutls
openldap
libgpgerror
freetype
sqlite
libxml2
xml2
SDL2
############
## Design ##
############
krita # Рисовать 1. Часто крашится
gimp # Рисовать 2. Потом выберу что оставить
blender-hip # 3д графика и рендер видео
##################
## Productivity ##
##################
obsidian # Заметки
planify # Task manager
#########
## IDE ##
#########
# neovim # Мб не надо писать, он у меня необычный через nixvim flake
# vscode # Мб надо в home.packages писать, чтоб расширения ставились без рута
# vscodium # VSCode без телеметрии и прочего кала. Не имеет обратной совместимости с расширениями vscode
# jetbrains-toolbox # У меня крашит. Качай отдельно https://nixos.wiki/wiki/Jetbrains_Tools
# jetbrains.webstorm
# jetbrains.rust-rover
# jetbrains.pycharm-professional
# jetbrains.goland
# jetbrains.clion
helix # A Kakoune / Neovim inspired editor, written in Rust.
###########
## Other ##
###########
qmk # Прошивка для моих раздельных клавиатур
vial # GUI для qmk, если клавиатура поддерживает
fontconfig
zlib
google-fonts
libva-utils # Проверяет работоспособность VAAPI?
clinfo # Проверяет работоспособность OpenCL?
libcap # Мб надо для nekoray
# Vulcan?
gfxreconstruct
glslang
spirv-cross
spirv-headers
spirv-tools
vulkan-extension-layer
vulkan-headers
vulkan-loader
vulkan-tools
vulkan-tools-lunarg
vulkan-utility-libraries
vulkan-validation-layers
vkdisplayinfo
vk-bootstrap
dxvk # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 8/9/10/11)
vkd3d # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 12)
vkd3d-proton
# vkbasalt # Баф Vulkan для улучшения визуальной графики игр https://github.com/DadSchoorse/vkBasalt
# lxqt.lxqt-policykit # Меню для воода пароля при запуске с правами админа
];
}