full ready, part 1

This commit is contained in:
Buliway 2024-08-10 21:27:06 +03:00
parent 8b1b233d6c
commit 9bbe4cc23b
27 changed files with 221 additions and 296 deletions

View file

@ -1,4 +1,4 @@
Это мои приватные дотсы
Это мои дотсы
Железо, на котором это работает:
- CPU: i5 10400f
@ -16,6 +16,65 @@ nix-prefetch-git link
font = lib.mkForce "JetBrainsMono Nerd Font 11";
```
Узнать localhost виртуалки, чтоб конектиться по ssh:
```sh
ip a
```
## Другие README файлы в этих дотсах
- [Копия man page для bspwm с доп инфой](./modules/home-manager/wm/bspwm/bspwm.md)
- [Описание плагинов для mpv](./modules/home-manager/mpv/README.md)
## Мини гайд по NixOS
- Одинаковые вещи могут делаться разными способами. Это норма. По началу меня это бесило, когда читал чужие дотсы
- [Плейлист](https://www.youtube.com/playlist?list=PLko9chwSoP-15ZtZxu64k_CuTzXrFpxPE) с английскими видео. Мне больше всего понравились видео под номерами [16](https://youtu.be/a67Sv4Mbxmc), [18](https://youtu.be/b641h63lqy0), [21](https://youtu.be/rEovNpg7J0M), [27](https://youtu.be/ljHkWgBaQWU) и [28](https://youtu.be/JCeYq72Sko0).
- Пакеты искать [тут](https://search.nixos.org/packages). Параметры для сток NixOS [тут](https://search.nixos.org/options). Параметры для home-manager [тут](https://home-manager-options.extranix.com/?query=&release=master). Для моих конфигов надо обязательно искать в unstable ветке, ибо параметры могут отличаться.
- Для системной темы тут используется stylix. Все его параметры можно найти [тут](https://stylix.danth.me/options/nixos.html).
## Процесс установки
Сначала качаем nixos kde или nixos gnome вариант и устанавливаем систему через визуальный установщик.
Дальше есть два способа. Оба нужны, чтоб заменить имя юзера на своё перед установкой моих дотсов. Для этого надо открыть файл `./nixos/configuration.nix` и заменить переменную `username` на ник своего юзера.
### Первый способ
Сделать форк этого репозитория. Внести нужные изменения. После установки NixOS временно включить гит и установить систему:
```sh
nix shell -p git
sudo nixos-rebuild boot --flake github:Buliway/nixos-dots --impure
```
Параметр `boot` делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй `switch` вместо `boot`.
### Второй способ
После установки NixOS временно включить гит, клонировать репозиторий, изменить нужный файл, ребилдить систему:
```sh
nix shell -p git
git clone https://github.com/Buliway/nixos-dots
nano ~/nixos-dots/nixos/configuration.nix
# Заменить переменную `username` на ник своего юзера
sudo nixos-rebuild boot --impure --flake ~/nixos-dots
```
Параметр `boot` делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй `switch` вместо `boot`.
## После установки надо
Это заметка для меня. Каждый ставит то, что ему надо
- Включить подкачку на 64 гига в `/etc/nixos/hardware-configuration.nix` через такой синтаксис:
```nix
swapDevices = [ {
device = "/swapfile";
size = 64*1024; # В мегабайтах
} ];
```
- Включить автомаунд бекап ссд и сделать симлинк на него в `~/backups` в файле `./modules/nixos/filesystems.nix` и раскомментировать импорт в `./nixos/configuration.nix`.
- Сделать симлинки на все нужные вещи в `./modules/home-manager/symlinks.nix`. Например браузеры я так бекаплю
- Раскомментировать нужные мне настройки звука в `./modules/nixos/sound.nix`
## Бинды
Клавиша `Super` это клавиша `Win`

17
flake.lock generated
View file

@ -220,27 +220,10 @@
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1722869614,
"narHash": "sha256-7ojM1KSk3mzutD7SkrdSflHXEujPvW1u7QuqWoTLXQU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "883180e6550c1723395a3a342f830bfc5c371f6b",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nixpkgs-stable": "nixpkgs-stable",
"stylix": "stylix"
}
},

View file

@ -3,7 +3,7 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
# nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
stylix = {
url = "github:danth/stylix";
@ -24,7 +24,17 @@
outputs = { self, nixpkgs, ... }@inputs:
let
system = "x86_64-linux"; # Не понимаю зачем, если это в hardware.nix указывается
pkgs = nixpkgs.legacyPackages.${system};
# pkgs = nixpkgs.legacyPackages.${system};
pkgs = import nixpkgs {
inherit system;
config = {
allowUnfree = true;
permittedInsecurePackages = [
"python-2.7.18.8"
"electron-25.9.0"
];
};
};
in
{
nixosConfigurations = {

View file

@ -12,34 +12,6 @@
# force = true;
# };
# bookmarks = [
# {
# name = "wikipedia";
# tags = [ "wiki" ];
# keyword = "wiki";
# url = "https://en.wikipedia.org/wiki/Special:Search?search=%s&go=Go";
# }
# {
# name = "kernel.org";
# url = "https://www.kernel.org";
# }
# {
# name = "Nix sites";
# toolbar = true;
# bookmarks = [
# {
# name = "homepage";
# url = "https://nixos.org/";
# }
# {
# name = "wiki";
# tags = [ "wiki" "nix" ];
# url = "https://wiki.nixos.org/";
# }
# ];
# }
# ];
# nativeMessagingHosts.ff2mpv = true; # Чтоб ff2mpv работал
# settings = {

View file

@ -1,8 +1,8 @@
{
imports = [
./browsers/chromium.nix
./browsers/firefox.nix
./browsers/librewolf.nix
# ./browsers/chromium.nix
# ./browsers/firefox.nix
# ./browsers/librewolf.nix
./browsers/lynx.nix
./file-managers/ranger/ranger.nix
@ -23,7 +23,7 @@
./terminal/zellij.nix
./terminal/zsh.nix
# ./wm/bspwm/bspwm.nix
./wm/bspwm/bspwm.nix
./wm/rofi/rofi.nix
./wm/dunst.nix
./wm/lockscreen.nix

View file

@ -60,25 +60,25 @@
"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" ]; # Надо ли заменять это и всё что ниже на NixVim?
"text/css" = [ "nvim.desktop" ];
"text/csv" = [ "nvim.desktop" ];
"text/html" = [ "nvim.desktop" "librewolf.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" ];
"application/x-sh" = [ "nvim.desktop" ];
"application/x-shellscript" = [ "nvim.desktop" ];
"application/xml" = [ "nvim.desktop" ];
"application/yaml" = [ "nvim.desktop" ];
"text/*" = [ "nvim.desktop" "code.desktop" ]; # Надо ли заменять nvim и всё что ниже на NixVim?
"text/css" = [ "nvim.desktop" "code.desktop" ];
"text/csv" = [ "nvim.desktop" "code.desktop" ];
"text/html" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"text/javascript" = [ "nvim.desktop" "code.desktop" ];
"text/markdown" = [ "nvim.desktop" "code.desktop" ];
"text/plain" = [ "nvim.desktop" "code.desktop" ];
"text/x-asm" = [ "nvim.desktop" "code.desktop" ];
"text/x-c" = [ "nvim.desktop" "code.desktop" ];
"text/x-python" = [ "nvim.desktop" "code.desktop" ];
"application/json" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"application/x-sh" = [ "nvim.desktop" "code.desktop" ];
"application/x-shellscript" = [ "nvim.desktop" "code.desktop" ];
"application/xml" = [ "nvim.desktop" "code.desktop" ];
"application/yaml" = [ "nvim.desktop" "code.desktop" ];
# Мб потом добавить для docs варианты и разные виды архивов и ebook
# Other
"application/pdf" = [ "org.gnome.Evince.desktop" ];
"application/x-zerosize" = [ "nvim.desktop" ]; # Файл нулевого размера
"application/x-zerosize" = [ "nvim.desktop" "code.desktop" ]; # Файл нулевого размера
"application/zip" = [ "ark.desktop" ];
"application/x-bittorrent" = [ "qbittorrent.desktop" ];
"x-scheme-handler/magnet" = [ "qbittorrent.desktop" ];
@ -86,6 +86,7 @@
"x-scheme-handler/mailto" = [ "thunderbird.desktop" ];
"x-scheme-handler/jetbrains" = [ "jetbrains-toolbox.desktop" ];
};
associations.added = { # Дополнительные приложения для нужного файла. Будет в меню "Открыть с помощью"
# Images
"image/*" = [ "imv.desktop" "qview.desktop" ];
@ -100,21 +101,21 @@
"image/x-icon" = [ "imv.desktop" "qview.desktop" ];
"image/vnd.microsoft.icon" = [ "imv.desktop" "qview.desktop" ];
# Text
"text/*" = [ "nvim.desktop" "code.desktop" "codium.desktop" ]; # Надо ли заменять nvim и всё что ниже на NixVim?
"text/css" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"text/csv" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"text/html" = [ "nvim.desktop" "code.desktop" "codium.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"text/javascript" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"text/markdown" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"text/plain" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"text/x-asm" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"text/x-c" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"text/x-python" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"application/json" = [ "nvim.desktop" "code.desktop" "codium.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"application/x-sh" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"application/x-shellscript" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"application/xml" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"application/yaml" = [ "nvim.desktop" "code.desktop" "codium.desktop" ];
"text/*" = [ "nvim.desktop" "code.desktop" ]; # Надо ли заменять nvim и всё что ниже на NixVim?
"text/css" = [ "nvim.desktop" "code.desktop" ];
"text/csv" = [ "nvim.desktop" "code.desktop" ];
"text/html" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"text/javascript" = [ "nvim.desktop" "code.desktop" ];
"text/markdown" = [ "nvim.desktop" "code.desktop" ];
"text/plain" = [ "nvim.desktop" "code.desktop" ];
"text/x-asm" = [ "nvim.desktop" "code.desktop" ];
"text/x-c" = [ "nvim.desktop" "code.desktop" ];
"text/x-python" = [ "nvim.desktop" "code.desktop" ];
"application/json" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ];
"application/x-sh" = [ "nvim.desktop" "code.desktop" ];
"application/x-shellscript" = [ "nvim.desktop" "code.desktop" ];
"application/xml" = [ "nvim.desktop" "code.desktop" ];
"application/yaml" = [ "nvim.desktop" "code.desktop" ];
};
};
}

View file

@ -1,6 +1,8 @@
{ pkgs, ... }: { # https://nixos.wiki/wiki/Visual_Studio_Code
programs.vscode = {
enable = true;
# Что-то из этого может пригодиться, если хочу ставить пакеты без декларативности
# package = pkgs.vscode.fhs; # Почему в вики написано ".fhs", если пакет называется "-fhs"?
# package = pkgs.vscode-with-extensions; # Мб это надо?
@ -34,8 +36,6 @@
];
userSettings = {
# "workbench.colorTheme" = "Gruvbox Dark Medium";
# "editor.fontFamily" = "JetBrainsMono Nerd Font";
"telemetry.telemetryLevel" = "off";
"update.showReleaseNotes" = false;
};

View file

@ -2,7 +2,7 @@ let
dir = "backups"; # Имя каталога для бекапов. Мб захочу поменять
in {
home.file = { # В .config этим нельзя кидать
# "${dir}".source = "/mnt/${dir}"; # Чтоб остальные симлинки были от ~/backups
# "${dir}".source = /mnt/${dir}; # Чтоб остальные симлинки были от ~/backups
# Secrets
# ".password-store".source = "~/${dir}/Backups/.password-store"; # Для утилиты pass

View file

@ -2,26 +2,10 @@
programs.alacritty = { # Минимализм
enable = true;
settings = { # https://alacritty.org/config-alacritty.html
window.pandding = {
x = 15;
y = 15;
window.padding = {
x = 5;
y = 5;
};
# font = let
# nerdFont = "JetBrainsMono Nerd Font";
# in {
# normal = {
# family = nerdFont;
# };
# bold = {
# family = nerdFont;
# };
# italic = {
# family = nerdFont;
# };
# bold_italic = {
# family = nerdFont;
# };
# };
};
};

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: {
{
programs.kitty = { # Быстрое отображение медиа, но кривой SSH
enable = true;
@ -7,11 +7,5 @@
enableFishIntegration = true;
enableZshIntegration = true;
};
# font = { # Stylix сам укажет mono шрифт
# name = "JetBrainsMono Nerd Font";
# package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
# size = 9;
# };
};
}

View file

@ -15,7 +15,7 @@
shellAliases = let
flakeDir = "~/dots";
in {
rb = "sudo nixos-rebuild switch --flake ${flakeDir}"; # Применить новый конфиг
rb = "sudo nixos-rebuild switch --impure --flake ${flakeDir}"; # Применить новый конфиг
# Можно назвать аналогом "sudo pacman -Su", не "Syu", репу не обновляет
upg = "sudo nixos-rebuild switch --upgrade --flake ${flakeDir}"; # Обновить пакеты, но не репозиторий во fleke.lock
@ -43,7 +43,7 @@
oh-my-zsh = { # https://github.com/ohmyzsh/ohmyzsh
enable = true;
plugins = [ # Комментирую то, в надобности чего не уверен, но показалось интересным. Можно удалить
"alias-finder" # Напомнит, если у написанной команды есть алиас
"alias-finder" # Напомнит, если у написанной команды есть алиас (нет)
"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
@ -85,8 +85,8 @@
"universalarchive" # Run "ua <format> <files>"" to compress <files> into an archive file using <format>
#"vi-mode" # https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/vi-mode
#"watson" # Completion for https://github.com/TailorDev/Watson (CLI to track your time)
"z" # Tracks your most visited directories and allows you to access them with very few keystrokes
#"zoxide" # Как "z", но быстрее и с более сложным и точным алгоритмом для ранжирования директорий
# "z" # Tracks your most visited directories and allows you to access them with very few keystrokes
"zoxide" # Как "z", но быстрее и с более сложным и точным алгоритмом для ранжирования директорий
];
};
};

View file

@ -1,5 +1,5 @@
{ # Управление окнами. В инете примерно ноль нормальной документации с описанием всех параметров. Проклинал
# xsession.windowManager.bspwm = {
# xsession.windowManager.bspwm = { # Походу не надо включать тут, если я симлинк ниже использую
# enable = true;
# };

View file

@ -18,14 +18,14 @@
# pgrep -x polybar > /dev/null || polybar & # Запускаем polybar если он не запущен
# pgrep -x dunst > /dev/null || dunst & # Запускаем dunst если он не запущен
# ksnip &
ksnip &
# nekoray &
# obsidian &
# planify &
lxqt-policykit-agent &
# Я ебал рот видеть инет в трее. Замени эту ёбань на rofi и отдельную кнопку в polybar
# nm-applet &
nm-applet &
#########################
## Настройки мониторов ##

View file

@ -43,34 +43,23 @@
progress_bar_max_width = 300; # Set the maximum width for the progress bar
indicate_hidden = "yes"; # Show how many messages are currently hidden (because of notification_limit).
#transparency = 5; # Прозрачность от 0 до 100%. Требует композитор, например picom. Не вижу смысла его ставить
padding = 6; # Padding between text and separator.
horizontal_padding = 6; # Horizontal padding.
text_icon_padding = 0; # Padding between text and icon.
frame_width = 3; # Defines width in pixels of frame around the notification window. Set to 0 to disable.
# frame_color = "#8EC07C"; # Defines color of the frame around the notification window.
sort = "no"; # Sort messages by urgency.
separator_height = 2; # Draw a line of "separator_height" pixel height between two notifications. Set to 0 to disable.
# Don't remove messages, if the user is idle (no mouse or keyboard input) for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules section for how to disable this if necessary
idle_threshold = 0;
separator_height = 2; # Draw a line of "separator_height" pixel height between two notifications. Set to 0 to disable.
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
# separator_color = "frame";
############
### Text ###
############
# font = lib.mkForce "JetBrainsMono Nerd Font 11"; # Перезаписать шрифт от stylix
# The spacing between lines.
# If the height is smaller than the font height, it will get raised to the font height.
line_height = 3;
@ -213,30 +202,18 @@
urgency_low = {
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
# frame_color = "#3B7C87";
# foreground = "#3B7C87";
# background = "#191311";
#background = "#2B313C";
timeout = 4;
# Icon for notifications with low urgency, uncomment to enable
#default_icon = /path/to/icon;
};
urgency_normal = {
# frame_color = "#5B8234";
# foreground = "#5B8234";
# background = "#191311";
#background = "#2B313C";
timeout = 6;
# Icon for notifications with normal urgency, uncomment to enable
#default_icon = /path/to/icon;
};
urgency_critical = {
# frame_color = "#B7472A";
# foreground = "#B7472A";
# background = "#191311";
#background = "#2B313C";
timeout = 8;
# Icon for notifications with critical urgency, uncomment to enable
#default_icon = /path/to/icon;

View file

@ -10,7 +10,6 @@
{ pkgs, ... }: { # Запускатор софта и не только
programs.rofi = { # https://github.com/davatorium/rofi
enable = true;
# font = "JetBrainsMono Nerd Font 10";
terminal = "${pkgs.alacritty}/bin/alacritty"; # Path to the terminal which will be used to run console applications
location = "center"; # The location rofi appears on the screen.
# cycle = true; # Whether to cycle through the results list.
@ -41,6 +40,6 @@
};
# xdg.configFile = {
# "rofi/pidor.rasi".source = config.rasi;
# "rofi/config.rasi".source = config.rasi;
# };
}

View file

@ -1,12 +1,13 @@
{
imports = [
./env.nix
# ./env.nix # Мб не надо, ибо редачу через home.nix?
# ./filesystems.nix
./hardware.nix
./locale.nix
./network.nix
./sound.nix
./stylix.nix
./virtmanager.nix
./virtualisation.nix
./xserver.nix
];
}

View file

@ -4,20 +4,6 @@
{ pkgs, ... }: {
hardware = { # Параметры для 24.05 и unstable могут сильно отличаться
# Список пакетов-драйверов, которые будут активированы лишь при нахождении подходящего оборудования
# firmware = with pkgs; [];
# Мало раскомментить. Надо настроить при необходимости
# fancontrol = {};
# В стоке false. Не понял зачем надо, сохранил из интереса
# enableAllFirmware = true;
# Разные способы управлять яркостью экрана и подсветки для юзеров в группе video
# Подробности тут https://wiki.archlinux.org/title/Backlight#Backlight_utilities
# brillo.enable = true;
# acpilight.enable = true;
amdgpu = {
opencl.enable = true; # # Enable OpenCL support using ROCM runtime library.
amdvlk = {
@ -32,18 +18,7 @@
enable = true;
enable32Bit = true; # install 32-bit drivers for 32-bit applications (such as Wine).
extraPackages = with pkgs; [ # Мб часть пакетов стоит удалить отсюда и закинуть в обычные пакеты
# amdvlk # AMD Open Source Driver For Vulkan
# vulkan-tools
# dxvk # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 8/9/10/11)
# vkd3d # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 12)
# # vkbasalt # Баф Vulkan для улучшения визуальной графики игр https://github.com/DadSchoorse/vkBasalt
libva # VAAPI (Video Acceleration API)
# libva-utils # VAAPI (Video Acceleration API)
# rocmPackages.clr.icd # OpenCL
# clinfo # Проверяет работает ли OpenCL?
# ];
# extraPackages32 = with pkgs; [ # 32 bit
# driversi686Linux.amdvlk # Vulkan support for 32-bit applications
];
};
@ -51,6 +26,23 @@
keyboard.qmk.enable = true; # Еnable non-root access to the firmware of QMK keyboards.
# Список пакетов-драйверов, которые будут активированы лишь при нахождении подходящего оборудования
# firmware = with pkgs; [];
# Мало раскомментить. Надо настроить при необходимости
# fancontrol = {};
# В стоке false. Не понял зачем надо, сохранил из интереса
# enableAllFirmware = true;
# Whether to enable firmware with a license allowing redistribution.
# enableRedistributableFirmware = true;
# Разные способы управлять яркостью экрана и подсветки для юзеров в группе video
# Подробности тут https://wiki.archlinux.org/title/Backlight#Backlight_utilities
# brillo.enable = true;
# acpilight.enable = true;
};
# HIP
@ -59,7 +51,7 @@
# "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"
# ];
boot.initrd.kernelModules = [ "amdgpu" ];
# boot.initrd.kernelModules = [ "amdgpu" ]; # Мб не обязательно
# Для AMD существует два драйвера Vulkan
# Один официальный от AMD - amdvlk

View file

@ -14,8 +14,8 @@
"10-clock-rate" = {
context.properties = {
default.clock.rate = 48000;
# Ниже измени под свой пк. У меня цап поддерживает всё это. Можешь оставить только 48000, если не знаешь что ставить
default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ];
# Ниже измени под свой пк. У меня цап поддерживает всё это. Можешь закомментить, если не знаешь что ставить
# default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ];
};
};
# Ниже настройки для минимальной задержки в играх (например osu!stable через wine)

View file

@ -6,7 +6,7 @@
polarity = "dark"; # "light" or "either". Если "either", то он сам определяет что будет красивее
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml"; # Если хочешь генерить тему из обоев, то удали эту строку
image = config.lib.stylix.pixel "base0A"; # Вместо обоев будет заливка фона одним цветом из темы
image = config.lib.stylix.pixel "base00"; # Вместо обоев будет заливка фона одним цветом из темы
#image = "./wallpaper.png" # Если хочешь норм обои, то просто укажи путь до изображения
cursor = {
@ -17,17 +17,6 @@
fonts = {
# packages = with pkgs; [
# noto-fonts # Шрифт от гугла, цель которого поддержка всех языков мира
# noto-fonts-cjk-serif # Отображение иероглифов. Версия с засечками
# # noto-fonts-cjk-sans # Отображение иероглифов. Версия без засечек
# carlito # Совместим с Calibri, разработан как его свободная альтернатива. Без засечек
# terminus_font
# inconsolata
# font-awesome
# liberation_ttf
# ];
# Ширина символов одинаковая
monospace = { # default = DejaVu Sans Mono
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};

View file

@ -1,15 +0,0 @@
{ pkgs, ... }: { # Работа с виртуальными машинами
virtualisation.libvirtd = { # https://nixos.wiki/wiki/Libvirt
enable = true;
qemu = {
package = pkgs.qemu_full;
};
};
# Network autostart - `virsh net-autostart default` в терминале
programs.virt-manager.enable = true; # https://nixos.wiki/wiki/Virt-manager
}

View file

@ -0,0 +1,54 @@
{ pkgs, ... }: { # Работа с виртуальными машинами
virtualisation = {
# podman.enable = true;
# waydroid.enable = true;
# docker = {
# enable = true;
# # daemon.settings = {
# # fixed-cidr-v6 = "fd00::/80";
# # ipv6 = true;
# # };
# rootless = {
# enable = true;
# # daemon.settings = {
# # fixed-cidr-v6 = "fd00::/80";
# # ipv6 = true;
# # };
# };
# };
# spiceUSBRedirection.enable = true; # Connect USB devices to libvirt VMs, both local and remote.
libvirtd = { # https://nixos.wiki/wiki/Libvirt
enable = true;
qemu.package = pkgs.qemu_full;
};
};
# Network autostart - `virsh net-autostart default` в терминале
programs.virt-manager.enable = true; # https://nixos.wiki/wiki/Virt-manager
#################################################
## Это надо включить на виртуалке, не на хосте ##
## Позволяет работать virtio драйверу ##
## Мб на хосте надо в терминал spice-vdagent ##
#################################################
# The host must provide the needed virtio serial port under the special name org.qemu.guest_agent.0.
# https://wiki.libvirt.org/Qemu_guest_agent.html#setting-qemu-ga-up
# Ниже xml код для qemu. Но не работает. Я не смог заставить работать виртуалку на virtio
# <channel type='unix'>
# <source mode='bind' path='/var/lib/libvirt/qemu/f16x86_64.agent'/>
# <target type='virtio' name='org.qemu.guest_agent.0'/>
# </channel>
# services = {
# openssh.enable = true; # Потом удали. Это ставится на виртуалку, чтоб к ней конект по ssh работал.
# qemuGuest.enable = true; # Time syncing and scripting
# spice-vdagentd.enable = true; # Clipboard sharing
# spice-webdavd.enable = true; # VirtFS alternative for directory sharing
# qemuGuest.package = pkgs.qemu_full; # Time syncing and scripting
# };
}

View file

@ -3,7 +3,8 @@
# https://www.reddit.com/r/NixOS/comments/14dlvbr/sddm_theme/
{
{ pkgs, ... }: {
services.displayManager = {
defaultSession = "none+bspwm"; # only effective for GDM, LightDM and SDDM
};
@ -25,46 +26,13 @@
windowManager.bspwm.enable = true;
displayManager = {
# sddm = { # Display manager от kde
# enable = true; # Вход в систему
# theme = pkgs.sddm-sugar-dark; # https://github.com/MarianArlt/sddm-sugar-dark
# };
lightdm = { # Минималистичный display manager
enable = true;
# background = "./bg.png";
greeters = {
tiny.enable = true; # Фул минималистичная тема без ничего
# gtk = { # GTK тема с кучей настроек. Я поставил сток настройки как шаблон
# enable = true;
# cursorTheme = {
# size = 16;
# package = pkgs.adwaita-icon-theme;
# name = "Adwaita";
# };
# iconTheme = {
# package = pkgs.adwaita-icon-theme;
# name = "Adwaita";
# };
# theme = {
# package = pkgs.gnome-themes-extra;
# name = "Adwaita";
# };
# indicators = [
# "~host"
# "~spacer"
# "~clock"
# "~spacer"
# "~session"
# "~language"
# "~a11y"
# "~power"
# ];
# clock-format = "%H:%M:%S %d.%m.%y";
# extraConfig = "";
# };
};
# greeters = {
# tiny.enable = true; # Фул минималистичная тема без ничего
# # gtk.enable = true; # GTK тема с кучей настроек
# };
};
};
@ -78,7 +46,7 @@
# https://discourse.nixos.org/t/amd-gpu-optimal-settings/27648/3
# videoDrivers = [ "nvidia" ]; # https://nixos.wiki/wiki/Nvidia
videoDrivers = [ "amdgpu" ]; # https://nixos.wiki/wiki/AMD_GPU
# videoDrivers = [ "amdgpu" ]; # https://nixos.wiki/wiki/AMD_GPU
# deviceSection = ''Option "TearFree" "True"'';
};
}

View file

@ -12,11 +12,18 @@ in {
inputs.home-manager.nixosModules.default
../modules/nixos/bundle.nix
./packages.nix
# ./filesystems.nix
];
boot.kernelPackages = pkgs.linuxPackages_latest; # Ядро линуха, ласт версия
# boot.plymouth.enable = true; # Логотип загрузки вместо спама?
boot.loader = {
systemd-boot.enable = true;
# systemd-boot.enable = true;
grub = {
enable = true;
efiSupport = true;
device = "nodev"; # nodev позволяет не устанавливать grub в конкретное место, но видеть его ui
};
efi.canTouchEfiVariables = true;
# kernelParams = [ # https://nixos.wiki/wiki/AMD_GPU#Dual_Monitors
# "video=DP-3:1920x1080@165"

View file

@ -1,40 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/1f25a4af-ec4c-4b98-a17f-27b004c11bbf";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/770E-A86E";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ {
device = "/swapfile";
size = 16*1024;
} ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

View file

@ -15,9 +15,7 @@
# Например, я читал, что если ставить vscode через configuration.nix, а не через пакеты юзера,
# то не получится ставить расширения. Потому что там софт ставится от рута и vscode
# будет пытаться установить расширения в каталог nix store, куда нельзя что либо ставить без рута.
packages = with pkgs; [
];
# packages = with pkgs; [ ];
sessionVariables = {
EDITOR = "nvim";

View file

@ -1,9 +1,4 @@
{ pkgs, ... }: {
nixpkgs.config = {
allowUnfree = true;
permittedInsecurePackages = ["python-2.7.18.8" "electron-25.9.0"];
};
# https://nixos.wiki/wiki/Fonts
fonts.packages = with pkgs; [
@ -25,8 +20,6 @@
tumbler.enable = true; # Thumbnail support for Thunar file manager
unclutter.enable = true; # Enable unclutter to hide your mouse cursor when inactive
# greenclip.enable = true; # https://github.com/erebe/greenclip (использую clipmenu вместо этого)
openssh.enable = true; # Потом удали. Это ставится на виртуалку, чтоб к ней конект по ssh работал.
spice-vdagentd.enable = true; # Общий буфер обмена с виртуалкой
# fstrim.enable = true; # Чистит ssd для норм производительности. Пока не пользуюсь
# archisteamfarm = {}; # Фарм карточек стима афк. Простро раскомментить мало, надо настроить
};
@ -215,7 +208,7 @@
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
# 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, но мб пригодится и в других местах
@ -268,8 +261,8 @@
## Games ##
###########
# steam # Мб не надо сюда писать, раз через programs.steam редачу
# 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
@ -321,5 +314,4 @@
libva-utils # Проверяет работоспособность VAAPI?
clinfo # Проверяет работоспособность OpenCL?
];
}