This commit is contained in:
2025-10-11 19:10:48 +05:00
commit d0401c8c07
27 changed files with 1240 additions and 0 deletions

1
README.md Normal file
View File

@@ -0,0 +1 @@
# Error: гайдов на развертку системы не будет.

221
configuration.nix Normal file
View File

@@ -0,0 +1,221 @@
{ config, lib, pkgs, modulesPath, ... }: {
imports = [
./disko.nix
(modulesPath + "/installer/scan/not-detected.nix")
];
# Загрузочная функция.
# Имеет параметры загрузчика,
# а так же настройки initrd.
boot = {
initrd = {
availableKernelModules = [
"xhci_pci"
"ahci"
"ohci_pci"
"ehci_pci"
"usb_storage"
"usbhid"
"sd_mod"
"nvidia_drm"
"nvidia_modeset"
"nvidia"
"nvidia_uvm"
];
kernelModules = [ ];
};
kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ];
loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot";
};
grub = {
efiSupport = true;
device = "nodev";
useOSProber = true;
};
};
plymouth = {
enable = true;
theme = "bgrt";
};
};
# Настройка интернета.
# Указывание хоста,
# а так же включение интернета.
networking = {
hostName = "lenovo";
networkmanager.enable = true;
useDHCP = lib.mkDefault true;
};
# Часовой пояс.
time.timeZone = "Asia/Yekaterinburg";
# Настройка локали.
# как и вся система,
# и консоль.
i18n.defaultLocale = "ru_RU.UTF-8";
console = {
font = "cyr-sun16";
keyMap = "ru";
};
# Настройка пользователя.
# указание группы и оболочка.
users.users.fox = {
isNormalUser = true;
extraGroups = [
"wheel"
"input"
"networkmanager"
"video"
"audio"
];
shell = pkgs.zsh;
};
# Автозагрузка оконного менеджера.
services.getty.autologinUser = "fox";
environment.loginShellInit = ''
[[ "$(tty)" == /dev/tty1 ]] && Hyprland
'';
# Включение защитных утилит.
# тот же sudo для авторизации
# по паролю.
security = {
polkit.enable = true;
sudo = {
enable = true;
extraRules = [{
commands = [
{
command = "${pkgs.systemd}/bin/reboot";
options = [ "NOPASSWD" ];
}
{
command = "${pkgs.systemd}/bin/poweroff";
options = [ "NOPASSWD" ];
}];
groups = [ "wheel" ];
}];
};
};
# Пакеты для всей системы.
# Содержат утилиты и шрифты.
environment = {
systemPackages = with pkgs; [
# Для никс
nh
home-manager
# Файлы/документы
neovim
git
tree
wget
unrar
# Аналитика
fastfetch
btop
# Компилятор
gcc
# Для оборудования #
nvidia-vaapi-driver
nv-codec-headers
ffmpeg-full
dmidecode
nodejs_24
];
};
fonts = {
packages = with pkgs; [
cantarell-fonts
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
fira-code-symbols
fira-code
dejavu_fonts
jetbrains-mono
nerd-fonts.symbols-only
nerd-fonts.jetbrains-mono
];
fontconfig.defaultFonts.emoji = [ "Noto COlor Emoji" ];
};
# Включение программ через функцию programs.xxxx.
programs = {
adb.enable = true;
gamemode.enable = true;
zsh.enable = true;
gamescope = {
enable = true;
capSysNice = true;
};
steam = {
enable = true;
gamescopeSession.enable = false;
};
};
# Системные настройки.
# Никс + система.
system.stateVersion = "25.05";
nixpkgs = {
config.allowUnfree = true;
hostPlatform = lib.mkDefault "x86_64-linux";
};
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Сервисы
services = {
xserver.videoDrivers = [ "nvidia" ]; #
desktopManager = {
gnome.enable = true;
plasma6.enable = false;
};
};
# Оборудование
hardware = {
pulseaudio = {
enable = true;
support32Bit = true;
};
graphics.enable = true;
opengl.enable = true;
nvidia = { #
modesetting.enable = true;
powerManagement = {
enable = false;
finegrained = false;
};
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
};
systemd.services.amnezia = { #
enable = true;
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Description = "AmneziaVPN-Service starter";
Type = "simple";
ExecStart = "${pkgs.amnezia-vpn}/bin/AmneziaVPN-service";
};
};
virtualisation.vmware.host.enable = true; #
}

50
disko.nix Normal file
View File

@@ -0,0 +1,50 @@
{ inputs, ... }: {
# Импортирование flake модуля.
imports = [ inputs.disko.nixosModules.disko ];
# Функция disko.
disko.devices = {
disk = {
# Основные настройки.
# тип девайса и разделы.
default = {
device = "/dev/sda"; # Тип девайса, может быть /dev/nvme0p1...
type = "disk";
content = {
type = "gpt";
# Разделы дисков.
partitions = {
# Загрузочный раздел
ESP = {
type = "EF00";
size = "1G"; # размер раздела
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
# Подкачка
# (на случай если 32 гб заполнятся ;>)
swap = {
size = "10G";
content = {
type = "swap";
};
};
# Системный раздел
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
}

112
flake.lock generated Normal file
View File

@@ -0,0 +1,112 @@
{
"nodes": {
"disko": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1757508292,
"narHash": "sha256-7lVWL5bC6xBIMWWDal41LlGAG+9u2zUorqo3QCUL4p4=",
"owner": "nix-community",
"repo": "disko",
"rev": "146f45bee02b8bd88812cfce6ffc0f933788875a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "disko",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1757809953,
"narHash": "sha256-29mlXbfAJhz9cWVrPP4STvVPDVZFCfCOmaIN5lFJa+Y=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "17a10049486f6698fca32097d8f52c0c895542b0",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"zen-browser",
"nixpkgs"
]
},
"locked": {
"lastModified": 1752603129,
"narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1757745802,
"narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"disko": "disko",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"zen-browser": "zen-browser"
}
},
"zen-browser": {
"inputs": {
"home-manager": "home-manager_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1758601360,
"narHash": "sha256-pvkHU7dAKt4kFXWsIz9PyJiZCJkiO3wR2xPRccPwsfc=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "a3a511b4d7a2f1d729a10e97fd7cb038a41adbd4",
"type": "github"
},
"original": {
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

50
flake.nix Normal file
View File

@@ -0,0 +1,50 @@
{
description = "furry flake";
# Вход.
# Т.е указание к тем флейкам,
# которые необходимы.
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
# Другие флейки
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
};
# Выход
# Т.е применение функций флейков на
# конфигурацию NixOS.
outputs = { self, nixpkgs, disko, home-manager, ... }@inputs:
# Переменные для быстрой смены параметра,
# И уборка повторяющиехся значений.
let
system = "x86_64-linux";
host = "lenovo";
nick = "fox";
in {
# Применение входных флейков на системную конфигурацию.
nixosConfigurations.${host} = inputs.nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [ /home/fox/conf/configuration.nix disko.nixosModules.disko ];
};
# Указание флейку home-manager, где что выполнять.
homeConfigurations.${nick} = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = inputs.nixpkgs.legacyPackages.${system};
extraSpecialArgs = { inherit inputs; };
modules = [ /home/fox/conf/home/configuration.nix ];
};
};
}

33
home/cli/fastfetch.nix Normal file
View File

@@ -0,0 +1,33 @@
{ pkgs, ... }: {
programs.fastfetch = {
enable = true;
package = pkgs.fastfetch;
settings = {
logo.source = "nixos_small";
display.separator = " :: ";
modules = [
{
type = "os";
key = "dis";
}
{
type = "kernel";
key = "krn";
}
{
type = "uptime";
key = "upt";
}
{
type = "packages";
key = "pks";
}
{
type = "wm";
key = "wdm";
}
];
};
};
}

16
home/cli/neovim.nix Normal file
View File

@@ -0,0 +1,16 @@
{ pkgs, config, ... }: {
programs.neovim = {
enable = true;
package = pkgs.neovim-unwrapped;
defaultEditor = true;
extraPackages = with pkgs; [
nil
];
plugins = with pkgs.vimPlugins; [
lazy-nvim
nvim-lspconfig
nvim-tree-lua
];
};
}

28
home/cli/zsh.nix Normal file
View File

@@ -0,0 +1,28 @@
{ pkgs, ... }: {
programs.zsh = {
enable = true;
package = pkgs.zsh;
plugins = [{
name = "zsh-autosuggestions";
src = pkgs.zsh-autosuggestions;
}
{
name = "zsh-highlighting";
src = pkgs.zsh-syntax-highlighting;
}];
shellAliases =
let
args = "--impure --flake";
flake = "/home/fox/conf";
in {
"switch" = "sudo nixos-rebuild switch ${args} ${flake}#lenovo";
"home-switch" = "home-manager switch ${args} ${flake}#fox";
"clean-nix" = "sudo nix-collect-garbage -d";
"un" = "adb shell pm uninstall -k";
};
initExtra = ''
export PROMPT="%m %2~ %B::%b "
'';
};
}

76
home/configuration.nix Normal file
View File

@@ -0,0 +1,76 @@
{ config, pkgs, inputs, ... }: {
imports = [
# Пути к конфигурациям
./desktop/hyprland.nix
./desktop/hyprpaper.nix
./desktop/eww.nix
./kitty.nix
./cli/neovim.nix
./cli/zsh.nix
./xdg.nix
./cli/fastfetch.nix
# Вызов inputs для определенного флейка
inputs.zen-browser.homeModules.beta
];
# Разрешение на установку проприетарных пакетов.
# Т.е автосоглашения со всеми пакетами при установке.
nixpkgs.config.allowUnfree = true;
# Установка отдельных программ
programs = {
zen-browser.enable = true;
};
# Основная домашняя конфигурация
home = {
# Указание пользователя, его каталога.
username = "fox";
homeDirectory = "/home/fox";
stateVersion = "25.05";
# Пакеты устанавливающиеся только
# к этому пользователю.
packages = with pkgs; [
# Интернет
telegram-desktop
transmission_4-gtk
filezilla
teams-for-linux
chromium
# Игры/эмуляция
prismlauncher
wineWowPackages.stable
# Дизайн/медия
krita
obs-studio
vlc
# Работа с файлами
nemo
file-roller
# Документы
obsidian
libreoffice
vscode
# Остальное
pamixer
cava
pavucontrol
grim
rofi
adwaita-icon-theme
gnome-themes-extra
mako
amnezia-vpn
kdePackages.kdenlive
haguichi
];
};
}

7
home/desktop/eww.nix Normal file
View File

@@ -0,0 +1,7 @@
{ pkgs, ... }: {
programs.eww = {
enable = true;
package = pkgs.eww;
#configDir = "/home/fox/conf/home/desktop/eww_config";
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@@ -0,0 +1,62 @@
// переменные цветов
$bg: #1a1a1a;
$fg: #fcfcfc;
$border: #000000;
// настройка шрифтов
* {
font-family: JetBrains Mono NF;
font-size: 14;
font-weight: 700;
}
// Основной модуль прозрачный
.bar {
background: transparent;
}
// воссоздание такого же модуля бара
.bar1 {
background: $bg;
border: 1px solid $border;
border-radius: 12px;
}
// Левая секция
.ws-number-class {
font-weight: 900;
margin: 0px 5px 0px 10px;
padding: 3px 5px 3px 5px;
}
.ws-title-class {
margin: 0px 5px;
padding: 3px 5px 3px 5px;
}
// Центральная секция
.date-class {
color: $fg;
padding: 3px 5px;
}
// Правая секция
.right {
margin: 0px 9px;
}
.volume-class {
margin: 0px 2px 0px 0px;
}
.language-class {
padding: 0px 10px 0px 5px;
}
.systray-class {
margin: 0px 9px;
}

View File

@@ -0,0 +1,50 @@
; Импорт скриптов
(defpoll TITLE :interval "0.1s" "/home/fox/.config/eww/title.sh")
(defpoll NUMBER :interval "0.1s" "/home/fox/.config/eww/number.sh")
(defpoll DATE :interval "40s" "date +'%H:%M %a, %b'") ;a, b
(defpoll VOLUME :interval "0.1s" "/home/fox/.config/eww/volume.sh")
(defpoll LANGUAGE :interval "0.1s" "/home/fox/.config/eww/language.sh")
(defpoll MUSIC :interval "0.1s" "/home/fox/.config/eww/music.sh")
; Основной модуль
(defwindow bar
:monitor 0
:geometry (geometry :x "0"
:y "15"
:width "680"
:height "45"
:anchor "bottom center")
:stacking "fg"
:exclusive true
:windowtype "dock"
:wm-ignore false
(box :class "bar1" (left) (center) (right)))
; Левый модуль
(defwidget left []
(box :orientation "h"
:valign "center"
:space-evenly "false"
(box :halign "center" :orientation "v" (label :class "ws-number-class" :text NUMBER))
(box :halign "start" :orientation "v" (label :class "ws-title-class" :text TITLE))))
; Центральный модуль
(defwidget center []
(box :orientation "h"
:halign "center"
:space-evenly "false"
(box (label :class "date-class" :text DATE))))
; Правый модуль
(defwidget right []
(eventbox :onclick "exec kitty"
(box :orientation "h"
:halign "end"
:valign "center"
:space-evenly "false"
:class "right"
(box (systray :spacing 5 :icon-size 15 :class "systray-class"))
(box (label :class "language-class" :text LANGUAGE))
(box (label :class "volume-class" :text VOLUME)))))

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
if hyprctl devices | grep -q "active keymap: Russian"; then
echo "ru"
else
echo "en"
fi

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
music=$(playerctl metadata --format "{{title}}" 2>/dev/null)
max_length=15
if [ -z "$music" ]; then
echo ":: No playing ::"
else
if [ ${#music} -gt $max_length ]; then
echo "${music:0:$max_length}..."
else
echo "$music"
fi
fi

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
current_ws=$(hyprctl activeworkspace | grep "workspace ID" | awk '{print $3}' | head -n1)
#echo "Workspace $current_ws"
echo "$current_ws"

22
home/desktop/eww_config/show.sh Executable file
View File

@@ -0,0 +1,22 @@
#!/usr/bin/env bash
file_bar="/home/fox/.cache/bar_opened"
file_power="/home/fox/.cache/power_opened"
case $1 in
bar)
if [[ ! -f "$file_bar" ]] then
touch $file_bar
eww open bar
else
rm $file_bar
eww close bar
fi ;;
power)
if [[ ! -f "$file_power" ]] then
touch $file_power
eww open power
else
rm $file_power
eww close power
fi ;;
esac

View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
current_tl=$(hyprctl activewindow | grep -A1 "title" | tail -n1 | awk '{$1=""; print substr($0, 2)}')
air=""
if [[ $current_tl != $air ]]; then
case $current_tl in
firefox)
echo " Browser"
;;
kitty)
echo " Terminal"
;;
org.telegram.desktop)
echo " Telegram"
;;
obsidian)
echo " Obsidian"
;;
*)
echo "$current_tl"
;;
esac
else
echo "󰇄 Desktop"
fi

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
vol=$(pamixer --get-volume)
echo "$vol "

44
home/desktop/grim.sh Executable file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
screen_name="$(date +%F--%H-%M-%S).png"
screen_path="/home/fox/Pictures"
screen_full="$screen_path$screen_name"
notify_name="Grim"
notify_title="Скриншот сохранён:"
notify_msg="[$screen_full]"
notify_btn="Открыть скриншот"
screen_notify() {
notify_action="$(notify-send -a "$notify_name" "$notify_title" "$notify_msg" -i "$screen_full" --action="open=$notify_btn")"
if [[ "$notify_action" == "open" ]]; then
imv "$screen_full"
fi
}
screen_full() {
grim $screen_full
screen_copy
screen_notify &
}
screen_active() {
grim -g "$(slurp)" $screen_full
screen_copy
screen_notify &
}
screen_area() {
grim -g "$(slurp)" $screen_full
screen_copy
screen_notify &
}
screen_copy() {
wl-copy "$screen_full"
}
case "$1" in
"-f") screen_full; exit ;;
"-a") screen_active; exit ;;
"-s") screen_area; exit ;;
esac

177
home/desktop/hyprland.nix Normal file
View File

@@ -0,0 +1,177 @@
{ pkgs, ... }: {
wayland.windowManager.hyprland = {
enable = true;
package = pkgs.hyprland;
portalPackage = pkgs.xdg-desktop-portal-hyprland;
xwayland.enable = true;
settings = {
autogenerated = 0;
monitor = [
"HDMI-A-1, 1920x1080@100, 0x0, 1"
];
exec-once = [
"hyprpaper"
"hyprctl setcursor Adwaita 24"
"eww open bar"
"rm menu.file" # Заглушка для опознания работы меню
];
env = [
"XCURSOR_SIZE,24"
"HYPRCURSOR_SIZE,24"
"QT_QPA_PLATFORMTHEME,qt6ct"
"XDG_CURRENT_DESKTOP='Hyprland'"
"XDG_SESSION_TYPE='wayland'"
"XDG_SESSION_DESKTOP='Hyprland'"
"QT_AUTO_SCREEN_SCALE_FACTOR='1'"
"QT_QPA_PLATFORM='wayland'"
"QT_QPA_PLATFORMTHEME='gtk3'"
"LIBVA_DRIVER_NAME,nvidia"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
"NVD_BACKEND,direct"
];
#ignorezero, eww-bar
general = {
gaps_in = 15;
gaps_out = 30;
border_size = 0;
resize_on_border = true;
allow_tearing = true;
layout = "dwindle";
};
decoration = {
rounding = 15;
rounding_power = 2;
active_opacity = 1.0;
inactive_opacity = 1.0;
shadow = {
enabled = true;
range = 4;
render_power = 3;
color = "rgb(000000)";
};
blur = {
enabled = true;
size = 6;
passes = 3;
vibrancy = 0.3;
vibrancy_darkness = 0.3;
noise = 0.0;
contrast = 1.0;
brightness = 1.0;
popups = true;
popups_ignorealpha = 0.4;
input_methods = true;
input_methods_ignorealpha = 0.4;
};
};
animations = {
enabled = "yes, please :)";
bezier = [
"easeOutQuint,0.23,1,0.32,1"
"easeInOutCubic,0.65,0.05,0.36,1"
"linear,0,0,1,1"
"almostLinear,0.5,0.5,0.75,1.0"
"quick,0.15,0,0.1,1"
];
animation = [
"global, 1, 10, default"
"border, 1, 5.39, easeOutQuint"
"windows, 1, 4.79, easeOutQuint"
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
"windowsOut, 1, 1.49, linear, popin 87%"
"fadeIn, 1, 1.73, almostLinear"
"fadeOut, 1, 1.46, almostLinear"
"fade, 1, 3.03, quick"
"layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 1, 1.94, almostLinear, fade"
"workspacesIn, 1, 1.21, almostLinear, fade"
"workspacesOut, 1, 1.94, almostLinear, fade"
];
};
dwindle = {
pseudotile = true;
preserve_split = true;
};
layerrule = [ "ignorezero, wofi" "ignorealpha 0.5, wofi" "ignorezero, gtk-layer-shell" ];
blurls = [ "gtk-layer-shell" ];
windowrulev2 = [ "float, workspace:5" ];
misc = {
force_default_wallpaper = 0;
disable_hyprland_logo = true;
};
input = {
kb_layout = "us,ru";
kb_options = "grp:alt_shift_toggle";
follow_mouse = 1;
sensitivity = 1.3;
};
"$mod" = "SUPER";
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, redizewindow"
];
bind = [
"alt, l, exec, eww open lock-dialog"
"alt, g, exec, eww close bar"
"alt, m, exec, eww open bar"
"$mod shift, q, exit"
"$mod ctrl, r, exec, eww open reboot-dialog"
"$mod ctrl, q, exec, eww open off-dialog"
"alt, l, exec, eww open lock-dialog-zopa"
"$mod, c, killactive,"
"$mod, s, togglefloating,"
"$mod, t, pseudo,"
"$mod, g, togglesplit"
"alt, space, exec, rofi -show drun -config /home/fox/conf/home/desktop/rofi_config.rasi"
"$mod alt, g, exec, /home/fox/.config/eww/show.sh bar"
"alt, s, exec, grim $(xdg-user-dir PICTURES)/$(date +'%s_grim.png')"
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod SHIFT, 1, movetoworkspace, 1"
"$mod SHIFT, 2, movetoworkspace, 2"
"$mod SHIFT, 3, movetoworkspace, 3"
"$mod SHIFT, 4, movetoworkspace, 4"
"$mod SHIFT, 5, movetoworkspace, 5"
"$mod SHIFT, 6, movetoworkspace, 6"
"$mod, mouse_down, workspace, e+1"
"$mod, mouse_up, workspace, e-1"
];
};
};
}

View File

@@ -0,0 +1,17 @@
{ pkgs, ... }: {
services.hyprpaper = {
enable = true;
package = pkgs.hyprpaper;
settings = let
wallpaper = "/home/fox/conf/home/desktop/wallp.jpg";
monitor-1 = "HDMI-A-1";
monitor-2 = "DP-1";
in {
preload = [ "${wallpaper}" ];
wallpaper = [
"${monitor-1},${wallpaper}"
"${monitor-2},${wallpaper}"
];
};
};
}

View File

@@ -0,0 +1,98 @@
* {
bg: #1d1d1d;
fg: #fcfcfc;
}
configuration {
modes: "drun";
font: "JetBrainsMono Regular 10";
location: 0;
xoffset: 0;
yoffset: 0;
}
window {
background-color: @bg;
width: 400;
border-radius: 12px;
border: 1px solid;
border-color: #000000;
}
mainbox {
background-color: @bg;
padding: 6px;
margin: 8px;
border-radius: 12px;
}
inputbar {
background-color: #383838;
border: 2px solid;
border-color: #383838;
padding: 6px;
border-radius: 5px;
}
prompt {
enabled: false;
}
textbox-prompt-colon {
expand: false;
str: " ";
background-color: #383838;
text-color: @bg;
}
entry {
background-color: #383838;
text-color: @fg;
cursor: text;
placeholder: "Search...";
placeholder-color: @fg;
}
listview {
columns: 1;
lines: 16;
dynamic: true;
scrollbar: false;
fixed-height: true;
fixed-columns: true;
background-color: @bg;
text-color: @fg;
margin: 5px 0px 0px 0px;
border: 1px solid;
border-color: @bg;
}
element {
background-color: @bg;
text-color: @fg;
padding: 8px 3px;
}
element normal.normal,
element alternate.normal,
message,
error-message {
background-color: @bg;
text-color: @fg;
}
element selected.normal {
background-color: #2a2a2a;
text-color: @fg;
border-radius: 5px;
padding: 8px 4px;
}
error-message,
textbox {
padding: 3px;
background-color: @bg;
text-color: @fg;
}

BIN
home/desktop/wallp.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

16
home/gtk.nix Normal file
View File

@@ -0,0 +1,16 @@
# Настройка гтк на темную тему.
{ pkgs, ... }: {
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
gtk = {
enable = true;
theme = {
name = "Adwaita-dark";
package = pkgs.gnome-themes-extra;
};
};
}

57
home/kitty.nix Normal file
View File

@@ -0,0 +1,57 @@
{ pkgs, ... }: {
programs.kitty = {
enable = true;
package = pkgs.kitty;
font = {
size = 10;
name = "JetBrainsMono NF";
};
settings = {
cursor_shape = "beam";
window_padding_width = 6;
background = "#1d1d1d";
foreground = "#deddda";
selection_background = "#303030";
selection_foreground = "#c0bfbc";
url_color = "#1a5fb4";
wayland_titlebar_color = "system";
cursor = "#deddda";
cursor_text_color = "#1d1d1d";
active_border_color = "#4f4f4f";
inactive_border_color = "#282828";
bell_border_color = "#ed333b";
visual_bell_color = "none";
active_tab_background = "#242424";
active_tab_foreground = "#fcfcfc";
inactive_tab_background = "#303030";
inactive_tab_foreground = "#b0afac";
tab_bar_background = "none";
tab_bar_margin_color = "none";
color0 = "#1d1d1d";
color1 = "#ed333b";
color2 = "#57e389";
color3 = "#ff7800";
color4 = "#62a0ea";
color5 = "#9141ac";
color6 = "#5bc8af";
color7 = "#deddda";
color8 = "#9a9996";
color9 = "#f66151";
color10 = "#8ff0a4";
color11 = "#ffa348";
color12 = "#99c1f1";
color13 = "#dc8add";
color14 = "#93ddc2";
color15 = "#f6f5f4";
};
};
}

44
home/xdg.nix Normal file
View File

@@ -0,0 +1,44 @@
{ config, pkgs, ... }: {
# Основные параметры xdg.
# Настройка порталов.
xdg = {
enable = true;
portal = {
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
config = {
common.default = "gtk";
};
};
# Указания скрытых домашних каталогов.
cacheHome = builtins.toPath "${config.home.homeDirectory}/.cache";
configHome = builtins.toPath "${config.home.homeDirectory}/.config";
dataHome = builtins.toPath "${config.home.homeDirectory}/.local/share";
stateHome = builtins.toPath "${config.home.homeDirectory}/.local/state";
# Указания системных каталогов.
systemDirs = {
config = [ "/etc/xdg" ];
data = [ "/usr/share" "/usr/local/share" ];
};
# Указание пользовательских каталогов.
# null = не назначать каталог(т.е полностью убрать).
userDirs = {
enable = true;
createDirectories = true;
desktop = builtins.toPath "${config.home.homeDirectory}/Desktop";
documents = builtins.toPath "${config.home.homeDirectory}/Documents";
download = builtins.toPath "${config.home.homeDirectory}/Downloads";
pictures = builtins.toPath "${config.home.homeDirectory}/Pictures";
videos = null;
music = null;
publicShare = null;
templates = null;
};
};
}