This commit is contained in:
Buliway 2024-08-09 18:23:09 +03:00
parent 4851e04bfa
commit 8b1b233d6c
19 changed files with 823 additions and 532 deletions

261
flake.lock generated
View file

@ -1,12 +1,216 @@
{ {
"nodes": { "nodes": {
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1708890466,
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "665b3c6748534eb766c777298721cece9453fdae",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1622559957,
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"type": "github"
}
},
"base16-foot": {
"flake": false,
"locked": {
"lastModified": 1696725948,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
"owner": "tinted-theming",
"repo": "base16-foot",
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-foot",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1720809814,
"narHash": "sha256-numb3xigRGnr/deF7wdjBwVg7fpbTH7reFDkJ75AJkY=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "34f41987bec14c0f3f6b2155c19787b1f6489625",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-kitty": {
"flake": false,
"locked": {
"lastModified": 1665001328,
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
"owner": "kdrag0n",
"repo": "base16-kitty",
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
"type": "github"
},
"original": {
"owner": "kdrag0n",
"repo": "base16-kitty",
"type": "github"
}
},
"base16-tmux": {
"flake": false,
"locked": {
"lastModified": 1696725902,
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
"owner": "tinted-theming",
"repo": "base16-tmux",
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-tmux",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1716150083,
"narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1689549921,
"narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1713702291,
"narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "46.1",
"repo": "gnome-shell",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1723015306,
"narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1715930644,
"narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1720768451, "lastModified": 1722813957,
"narHash": "sha256-EYekUHJE2gxeo2pM/zM9Wlqw1Uw2XTJXOSAO79ksc4Y=", "narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7e7c39ea35c5cdd002cd4588b03a3fb9ece6fad9", "rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -16,9 +220,58 @@
"type": "github" "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": { "root": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nixpkgs-stable": "nixpkgs-stable",
"stylix": "stylix"
}
},
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-foot": "base16-foot",
"base16-helix": "base16-helix",
"base16-kitty": "base16-kitty",
"base16-tmux": "base16-tmux",
"base16-vim": "base16-vim",
"flake-compat": "flake-compat",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1722946882,
"narHash": "sha256-mxtnMye8gs82tdQbVC+g6v3aPOZlH150f9WyntHIkTg=",
"owner": "danth",
"repo": "stylix",
"rev": "5853f1a8bd072f2ebabfc3de3973084353cf6f1e",
"type": "github"
},
"original": {
"owner": "danth",
"repo": "stylix",
"type": "github"
} }
} }
}, },

View file

@ -22,16 +22,16 @@
}; };
outputs = { self, nixpkgs, ... }@inputs: outputs = { self, nixpkgs, ... }@inputs:
# let let
# system = "x86_64-linux"; # Не понимаю зачем, если это в hardware.nix указывается system = "x86_64-linux"; # Не понимаю зачем, если это в hardware.nix указывается
# pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
# in in
{ {
nixosConfigurations = { nixosConfigurations = {
nixos = nixpkgs.lib.nixosSystem { nixos = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;}; specialArgs = {inherit inputs;};
# inherit pkgs; inherit pkgs;
# inherit system; inherit system;
modules = [ modules = [
./nixos/configuration.nix ./nixos/configuration.nix
inputs.home-manager.nixosModules.default inputs.home-manager.nixosModules.default

View file

@ -23,7 +23,7 @@
./terminal/zellij.nix ./terminal/zellij.nix
./terminal/zsh.nix ./terminal/zsh.nix
./wm/bspwm/bspwm.nix # ./wm/bspwm/bspwm.nix
./wm/rofi/rofi.nix ./wm/rofi/rofi.nix
./wm/dunst.nix ./wm/dunst.nix
./wm/lockscreen.nix ./wm/lockscreen.nix

View file

@ -19,7 +19,7 @@
exiftool # Information about media files exiftool # Information about media files
odt2txt # For OpenDocument text files odt2txt # For OpenDocument text files
jq # Preview JSON (А зачем? Есть же bat, который красиво код показывает) jq # Preview JSON (А зачем? Есть же bat, который красиво код показывает)
sqlite3 # Listing tables in SQLite database sqlite # Listing tables in SQLite database
sqlite-utils # Fancier box drawing (optional) sqlite-utils # Fancier box drawing (optional)
fontforge # Preview font fontforge # Preview font
openscad # 3D model previews (`stl`, `off`, `dxf`, `scad`, `csg`) openscad # 3D model previews (`stl`, `off`, `dxf`, `scad`, `csg`)
@ -71,16 +71,9 @@
]; ];
}; };
# Не работает, ошибка будет, надо юзать другую команду
# home.file = {
# ".config/ranger/rc.conf".source = "./rc.conf";
# ".config/ranger/rifle.conf".source = "./rifle.conf";
# ".config/ranger/scope.sh".source = "./scope.sh";
# };
xdg.configFile = { xdg.configFile = {
"ranger/rc.conf".source = "./rc.conf"; "ranger/rc.conf".source = ./rc.conf;
"ranger/rifle.conf".source = "./rifle.conf"; "ranger/rifle.conf".source = ./rifle.conf;
"ranger/scope.sh".source = "./scope.sh"; "ranger/scope.sh".source = ./scope.sh;
}; };
} }

View file

@ -35,7 +35,7 @@
userSettings = { userSettings = {
# "workbench.colorTheme" = "Gruvbox Dark Medium"; # "workbench.colorTheme" = "Gruvbox Dark Medium";
"editor.fontFamily" = "JetBrainsMono Nerd Font"; # "editor.fontFamily" = "JetBrainsMono Nerd Font";
"telemetry.telemetryLevel" = "off"; "telemetry.telemetryLevel" = "off";
"update.showReleaseNotes" = false; "update.showReleaseNotes" = false;
}; };

View file

@ -16,5 +16,5 @@
]; ];
}; };
# home.file."config?".source = "./config?"; # Мб потом добавлю конфиги obs сюда # home.file."config?".source = ./config?; # Мб потом добавлю конфиги obs сюда
} }

View file

@ -6,22 +6,22 @@
x = 15; x = 15;
y = 15; y = 15;
}; };
font = let # font = let
nerdFont = "JetBrainsMono Nerd Font"; # nerdFont = "JetBrainsMono Nerd Font";
in { # in {
normal = { # normal = {
family = nerdFont; # family = nerdFont;
}; # };
bold = { # bold = {
family = nerdFont; # family = nerdFont;
}; # };
italic = { # italic = {
family = nerdFont; # family = nerdFont;
}; # };
bold_italic = { # bold_italic = {
family = nerdFont; # family = nerdFont;
}; # };
}; # };
}; };
}; };

View file

@ -1,7 +1,10 @@
{ # Управление окнами. В инете примерно ноль нормальной документации с описанием всех параметров. Проклинал { # Управление окнами. В инете примерно ноль нормальной документации с описанием всех параметров. Проклинал
xsession.windowManager.bspwm = { # xsession.windowManager.bspwm = {
enable = true; # enable = true;
}; # };
xdg.configFile."bspwm/bspwmrc".source = "./bspwmrc"; xdg.configFile."bspwm/bspwmrc" = {
source = ./bspwmrc;
executable = true;
};
} }

View file

@ -22,6 +22,7 @@
# nekoray & # nekoray &
# obsidian & # obsidian &
# planify & # planify &
lxqt-policykit-agent &
# Я ебал рот видеть инет в трее. Замени эту ёбань на rofi и отдельную кнопку в polybar # Я ебал рот видеть инет в трее. Замени эту ёбань на rofi и отдельную кнопку в polybar
# nm-applet & # nm-applet &

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }: { { pkgs, ... }: {
# Оповещения. Бинды можно делать через "dunstctl" # Оповещения. Бинды можно делать через "dunstctl"
# https://wiki.archlinux.org/title/Dunst # https://wiki.archlinux.org/title/Dunst
# https://dunst-project.org/documentation/ # https://dunst-project.org/documentation/
@ -69,7 +69,7 @@
### Text ### ### Text ###
############ ############
font = lib.mkForce "JetBrainsMono Nerd Font 11"; # Перезаписать шрифт от stylix # font = lib.mkForce "JetBrainsMono Nerd Font 11"; # Перезаписать шрифт от stylix
# The spacing between lines. # The spacing between lines.
# If the height is smaller than the font height, it will get raised to the font height. # If the height is smaller than the font height, it will get raised to the font height.

View file

@ -37,422 +37,435 @@
# double-click-middle # double-click-middle
# double-click-right # double-click-right
{ config, ... }: let # { config, ... }: let
gruvbox = { # gruvbox = {
black = "#000000"; # black = "#000000";
dark = "#1d1d1d"; # dark = "#1d1d1d";
disabled = "${config.lib.stylix.colors.base00}"; # #282828 # disabled = "${config.lib.stylix.colors.base00}"; # #282828
red = "${config.lib.stylix.colors.base08}"; # #fb4934 # red = "${config.lib.stylix.colors.base08}"; # #fb4934
red-alt = "#b22222"; # red-alt = "#b22222";
orange = "${config.lib.stylix.colors.base09}"; # #fe8019 # orange = "${config.lib.stylix.colors.base09}"; # #fe8019
orange-mat = "#e78a4e"; # orange-mat = "#e78a4e";
yellow = "${config.lib.stylix.colors.base0A}"; # #fabd2f # yellow = "${config.lib.stylix.colors.base0A}"; # #fabd2f
yellow-mat = "#d8a657"; # yellow-mat = "#d8a657";
green = "${config.lib.stylix.colors.base0B}"; # #b8bb26 # green = "${config.lib.stylix.colors.base0B}"; # #b8bb26
green-alt = "#98971a"; # green-alt = "#98971a";
aqua = "${config.lib.stylix.colors.base0C}"; # #8ec07c # aqua = "${config.lib.stylix.colors.base0C}"; # #8ec07c
aqua-alt = "#689d6a"; # aqua-alt = "#689d6a";
blue = "#458588"; # blue = "#458588";
blue-alt = "${config.lib.stylix.colors.base0D}"; # #83a598 # blue-alt = "${config.lib.stylix.colors.base0D}"; # #83a598
grey = "#313131"; # grey = "#313131";
dark-grey = "#222222"; # dark-grey = "#222222";
cream = "${config.lib.stylix.colors.base07}"; # #fbf1c7 # cream = "${config.lib.stylix.colors.base07}"; # #fbf1c7
white = "#FFFFFF"; # white = "#FFFFFF";
transparent = "#00000000"; # transparent = "#00000000";
Stransparent = "#CC000000"; # Stransparent = "#CC000000";
}; # };
in { # Статус бар внизу # in
{ # Статус бар внизу
services.polybar = { services.polybar = {
enable = true; enable = true;
settings = { # Или переимоневать в "config"? Не понял в чём разница script = "polybar bottom &";
# "colors" = {};
settings = {
"global/wm" = { "global/wm" = {
margin-bottom = 0; margin-bottom = 0;
}; };
# bottom это просто имя, это не говорит бару быть внизу, можно написать что угодно
"bar/bottom" = { "bar/bottom" = {
monitor = "polybar -M | cut -d ':' -f 1"; # содержит список мониторов monitor = "polybar -M | cut -d ':' -f 1"; # содержит список мониторов
monitor-strict = false; # Require the monitor to be in connected state
monitor-exact = true; # Зачем? Нечёткий поиск мониторов, если они называются по разному с разными драйверами
bottom = true; # Put the bar at the bottom of the screen
fixed-center = true; # Мидл модуль будет по центру экрана. При false будет между левым и правым модулями fixed-center = true; # Мидл модуль будет по центру экрана. При false будет между левым и правым модулями
width = "100%"; # Ширина относительно ширины монитора
height = "20pt"; # Высота относительно высоты монитора. Не ебу что значит pt
offset-x = 0; # Offset the bar window in the x and/or y direction.
offset-y = 0; # Supports any percentage with offset relative to the monitor width or height
padding = 0; # Padding to add at the beginning/end of the bar. Можно юзать padding-{left,right}
enable-ipc = true; # Enable support for inter-process messaging
double-click-interval = 400; # If two clicks are received within this interval (ms), they are recognized as a double click.
module-margin = 1; # Margin to add before/after each module. Можно юзать module-margin-{left,right}
# separator = " "; # The separator will be inserted between the output of each module
# separator-foreground = gruvbox.transparent;
# background = gruvbox.transparent; # Фон бара
# foreground = gruvbox.cream; # Передний план
# border-color = gruvbox.transparent; # Цвет контура
# border-size = "3pt"; # Размер контура
# line-color = "#f00"; # Under-/overline argb color. Может быть {overline,underline}-color
# line-size = 0; # Under-/overline pixel size. Может быть {overline,underline}-size
# If you don't explicitly set the font-index for a tag,
# the bar will iterate the font list and pick the first one that is able to draw the character
font-0 = "JetBrainsMono Nerd Font";
modules-left = "bspwm title";
modules-center = "time";
modules-right = "cpu cpu-temp gpu-temp battery memory pulseaudio tray xkeyboard rofi";
# Restack the bar window and put it above the selected window manager's root
# Fixes the issue where the bar is being drawn on top of fullscreen window's
# Currently supported values:
# generic (Tries the ewmh strategy and falls back to the bottom strategy.
# This is a best-effort strategy and may change and be tweaked in
# the future, the individual strategies are available on their own)
# (New in version 3.6.0)
# (Changed in version 3.7.0: Tries the ewmh strategy instead of just the bottom strategy)
# bspwm (Moves the bar window above all bspwm root windows)
# bottom (Moves the bar window above the first window in the window stack.
# Works in xmonad, may not work on other WMs
# New in version 3.7.0)
# ewmh (Moves the bar above the window specified in _NET_SUPPORTING_WM_CHECK, if it is set
# New in version 3.7.0)
# i3 (requires `override-redirect = true`)
wm-restack = "bspwm";
};
"module/rofi" = {
type = "custom/text";
click-left = "exec rofi -show drun";
label = " ";
};
"module/bspwm" = { # Воркспейсы bspwm
type = "internal/bspwm";
pin-workspaces = true; # Only show workspaces defined on the same output as the bar
inline-mode = true; # Output mode flags after focused state label. Не понял что значит
enable-click = true; # Create click handler used to focus workspace
enable-scroll = false; # Create scroll handlers used to cycle workspaces
reverse-scroll = false; # Set the scroll cycle direction
occupied-scroll = true; # Only scroll through occupied workspaces
ws-icon-0 = "0;0";
ws-icon-1 = "1;1";
ws-icon-2 = "2;2";
ws-icon-3 = "3;3";
ws-icon-4 = "4;4";
ws-icon-5 = "5;5";
ws-icon-6 = "6;6";
ws-icon-7 = "7;7";
ws-icon-8 = "8;8";
ws-icon-9 = "9;9";
ws-icon-10 = "10;10";
format = "<label-state> <label-mode>"; # Это невозможно описать. Я сам не до конца понял
# label-mode = "%mode%";
# label-mode-padding = 1;
# label-mode-background = gruvbox.red-alt;
# label-mode-foreground = gruvbox.white;
# label-separator = "";
# label-separator-padding = 0;
# label-separator-foreground = gruvbox.transparen;
# label-focused = "%icon% %name%";
# label-focused-font = 5;
# label-focused-foreground = gruvbox.yellow;
# label-focused-underline = "#565c64";
# label-focused-padding = 1;
# label-focused-background = gruvbox.black;
# label-occupied = "%icon%";
# label-occupied-foreground = "#646870";
# label-occupied-background = "#2b2f37";
# label-occupied-padding = 1;
# label-empty = "%icon%";
# label-empty-foreground = gruvbox.yellow;
# label-empty-padding = 1;
# label-empty-background = "#2b2f37";
# label-unfocused = "%icon%";
# label-unfocused-font = 5;
# label-unfocused-foreground = gruvbox.cream;
# label-unfocused-background= gruvbox.black;
# label-unfocused-padding = 2;
# label-visible = "%icon%";
# label-visible-padding = 2;
# label-urgent = "%icon%";
# label-urgent-font = 5
# label-urgent-foreground = gruvbox.red-alt;
# label-urgent-background = gruvbox.black;
# label-urgent-padding = 2;
};
"module/title" = { # Отображение имени окна
type = internal/xwindow;
format-prefix = " ";
# format-prefix-foreground = gruvbox.yellow-mat;
# format-prefix-background = gruvbox.black;
# format-background = "#f00";
# format-foreground = "#000";
# format-padding = 4;
# label = "%title%";
label = "%class%";
label-maxlen = 60;
# label-foreground = gruvbox.cream;
# label-background = gruvbox.dark;
label-padding-left = 2;
label-padding-right = 2;
};
# %A: Полное название дня недели (например, "Monday")
# %d: День месяца в формате двух цифр (например, "01")
# %b или %B: Сокращённое или полное название месяца ("Jan", "January")
# %m: Месяц в формате двух цифр (например, "01" для января)
"module/time" = {
type = "internal/date";
interval = 1;
# format = "🕓 <label>";
# format-prefix = "  ";
# format-prefix-foreground = gruvbox.aqua;
# format-prefix-background = gruvbox.black;
# date = "%A %d %b %Y | %H:%M:%S";
date = "%d %B %Y";
time = "%H:%M:%S";
date-alt = "%d-%m-%Y"; # If defined, clicking will toggle between formats
# time-alt = "%H:%M:%S"; # If defined, clicking will toggle between formats
label = "%date% %time%";
# label-foreground = gruvbox.cream;
# label-background = gruvbox.dark;
# label-font = 3;
label-padding-left = 2;
label-padding-right = 2;
};
"module/xkeyboard" = {
type = internal/xkeyboard;
blacklist-0 = "num lock";
blacklist-1 = "scroll lock";
format = "<label-layout> <label-indicator>";
label-layout-padding = 1;
label-layout-foreground = "#fff";
label-indicator-on = "%name%";
# layout-icon-default = "some-icon";
layout-icon-0 = "RU";
layout-icon-1 = "EN";
label-indicator-on-capslock = "!";
label-indicator-off-capslock = "";
};
"module/tray" = {
type = "internal/tray";
format = <tray>;
# format-prefix = " 󱊖 ";
# format-prefix-foreground = gruvbox.orange;
# format-prefix-background = gruvbox.black;
tray-spacing = "8px";
# tray-size = "66%"; # relative to bar height, non-negative
format-padding = "5px";
# format-background = gruvbox.black;
# tray-background = gruvbox.black;
# tray-foreground = gruvbox.cream; # сам добавил
};
"module/pulseaudio" = {
type = "internal/pulseaudio";
format-volume-prefix = " ";
# format-volume-prefix-foreground = gruvbox.blue-alt;
# format-volume-prefix-background= gruvbox.black;
format-volume = "<label-volume>";
label-volume = "%percentage%%";
# label-volume-foreground= gruvbox.cream;
# label-volume-background= gruvbox.dark;
label-volume-padding-left=2;
label-volume-padding-right=2;
format-muted-prefix = " ";
# format-muted-foreground = gruvbox.orange;
# format-muted-background = gruvbox.black;
label-muted = "muted";
# label-muted-foreground = gruvbox.orange-mat;
# label-muted-background = gruvbox.dark;
label-muted-padding = 2;
};
"module/memory" = {
type = "internal/memory";
interval = 3;
# format-prefix = "  ";
# format-prefix-foreground = gruvbox.blue;
# format-prefix-background = gruvbox.black;
label = "RAM: %gb_used%/%gb_total% | SWAP: %gb_swap_used%/%gb_swap_total%";
# label-foreground = gruvbox.cream;
# label-background = gruvbox.dark;
label-padding-left = 2;
label-padding-right = 2;
};
"module/battery" = {
type = internal/battery;
full-at = 98;
low-at = 20;
battery = "BAT0";
adapter = "ADP1";
poll-interval = 5;
time-format = "%H:%M";
format-charging = "<animation-charging><label-charging>";
# format-charging-foreground = gruvbox.green;
# format-charging-background = gruvbox.black;
label-charging = "%percentage%%";
# label-charging-foreground = gruvbox.cream;
# label-charging-background = gruvbox.dark;
label-charging-padding= 2;
format-discharging = "<ramp-capacity><label-discharging>";
# format-discharging-foreground = gruvbox.green-alt;
# format-discharging-background = gruvbox.black;
label-discharging = "%percentage%%";
# label-discharging-foreground = gruvbox.cream;
# label-discharging-background = gruvbox.dark;
label-discharging-padding = 2;
format-full-prefix = " ";
# format-full-foreground = gruvbox.aqua;
# format-full-background = gruvbox.black;
label-full = "%percentage%%";
# label-full-foreground = gruvbox.cream;
# label-full-background = gruvbox.dark;
label-full-padding = 2;
label-low = "[ BATTERY LOW ] %percentage%%";
# label-low-foreground = gruvbox.black;
# label-low-background = gruvbox.red-alt;
label-low-padding = 2;
# Only applies if <ramp-capacity> is used
ramp-capacity-0 = " ";
ramp-capacity-1 = " ";
ramp-capacity-2 = " ";
ramp-capacity-3 = " ";
ramp-capacity-4 = " ";
ramp-capacity-0-padding = 3;
ramp-capacity-1-padding = 3;
ramp-capacity-2-padding = 3;
ramp-capacity-3-padding = 3;
ramp-capacity-4-padding = 3;
# ramp-capacity-0-foreground = gruvbox.red-alt;
# ramp-capacity-1-foreground = gruvbox.green-alt;
# ramp-capacity-2-foreground = gruvbox.green-alt;
# ramp-capacity-3-foreground = gruvbox.green-alt;
# ramp-capacity-4-foreground = gruvbox.green-alt;
# ramp-capacity-0-background = gruvbox.black;
# ramp-capacity-1-background = gruvbox.black;
# ramp-capacity-2-background = gruvbox.black;
# ramp-capacity-3-background = gruvbox.black;
# ramp-capacity-4-background = gruvbox.black;
# Only applies if <bar-capacity> is used
bar-capacity-width = 10;
# Only applies if <animation-charging> is used
animation-charging-0 = " ";
animation-charging-1 = " ";
animation-charging-2 = " ";
animation-charging-3 = " ";
animation-charging-4 = " ";
animation-charging-framerate = 750;
animation-charging-0-padding = 3;
animation-charging-1-padding = 3;
animation-charging-2-padding = 3;
animation-charging-3-padding = 3;
animation-charging-4-padding = 3;
# Animation-charging color
# animation-charging-0-foreground = gruvbox.green;
# animation-charging-1-foreground = gruvbox.green;
# animation-charging-2-foreground = gruvbox.green;
# animation-charging-3-foreground = gruvbox.green;
# animation-charging-4-foreground = gruvbox.green;
# animation-charging-0-background = gruvbox.black;
# animation-charging-1-background = gruvbox.black;
# animation-charging-2-background = gruvbox.black;
# animation-charging-3-background = gruvbox.black;
# animation-charging-4-background = gruvbox.black;
# Only applies if <animation-discharging> is used;
animation-discharging-0 = "[ ]";
animation-discharging-1 = "[ ]";
animation-discharging-2 = "[ ]";
animation-discharging-3 = "[ ]";
animation-discharging-4 = "[ ]";
animation-discharging-framerate = 500;
animation-discharging-0-padding = 1;
animation-discharging-1-padding = 1;
animation-discharging-2-padding = 1;
animation-discharging-3-padding = 1;
animation-discharging-4-padding = 1;
# Animation discharging color
# animation-discharging-0-foreground = gruvbox.cream;
# animation-discharging-1-foreground = gruvbox.cream;
# animation-discharging-2-foreground = gruvbox.cream;
# animation-discharging-3-foreground = gruvbox.cream;
# animation-discharging-4-foreground = gruvbox.cream;
# animation-discharging-0-background = gruvbox.green-alt;
# animation-discharging-1-background = gruvbox.green-alt;
# animation-discharging-2-background = gruvbox.green-alt;
# animation-discharging-3-background = gruvbox.green-alt;
# animation-discharging-4-background = gruvbox.green-alt;
animation-low-0 = "!";
animation-low-1 = "!!";
animation-low-framerate = 200;
};
"module/cpu" = {
type = "internal/cpu";
warn-percentage = 95;
label = "CPU %percentage%%";
label-warn = "CPU %percentage%%";
};
# Full path of temperature sysfs path
# Use `sensors` to find preferred temperature source, then run
# $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done
# to find path to desired file
# Default reverts to thermal zone setting
"module/cpu-temp" = {
type = "internal/temperature";
hwmon-path = "/sys/devices/platform/coretemp.0/hwmon/hwmon4/temp1_input";
warn-temperature = 80;
label = "%temperature-c% °C";
label-warn = "%temperature-c% °C";
# label-warn-foreground = "#f00";
};
"module/gpu-temp" = {
type = "internal/temperature";
hwmon-path = "/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/hwmon/hwmon5/temp3_input";
warn-temperature = 80;
label = "GPU %temperature-c% °C";
label-warn = "GPU %temperature-c% °C";
# label-warn-foreground = "#f00";
}; };
}; };
# settings = { # Или переимоневать в "config"? Не понял в чём разница
# # "colors" = {};
# "global/wm" = {
# margin-bottom = 0;
# };
# # bottom это просто имя, это не говорит бару быть внизу, можно написать что угодно
# "bar/bottom" = {
# monitor = "polybar -M | cut -d ':' -f 1"; # содержит список мониторов
# monitor-strict = false; # Require the monitor to be in connected state
# monitor-exact = true; # Зачем? Нечёткий поиск мониторов, если они называются по разному с разными драйверами
# bottom = true; # Put the bar at the bottom of the screen
# fixed-center = true; # Мидл модуль будет по центру экрана. При false будет между левым и правым модулями
# width = "100%"; # Ширина относительно ширины монитора
# height = "20pt"; # Высота относительно высоты монитора. Не ебу что значит pt
# offset-x = 0; # Offset the bar window in the x and/or y direction.
# offset-y = 0; # Supports any percentage with offset relative to the monitor width or height
# padding = 0; # Padding to add at the beginning/end of the bar. Можно юзать padding-{left,right}
# enable-ipc = true; # Enable support for inter-process messaging
# double-click-interval = 400; # If two clicks are received within this interval (ms), they are recognized as a double click.
# module-margin = 1; # Margin to add before/after each module. Можно юзать module-margin-{left,right}
# # separator = " "; # The separator will be inserted between the output of each module
# # separator-foreground = gruvbox.transparent;
# # background = gruvbox.transparent; # Фон бара
# # foreground = gruvbox.cream; # Передний план
# # border-color = gruvbox.transparent; # Цвет контура
# # border-size = "3pt"; # Размер контура
# # line-color = "#f00"; # Under-/overline argb color. Может быть {overline,underline}-color
# # line-size = 0; # Under-/overline pixel size. Может быть {overline,underline}-size
# # If you don't explicitly set the font-index for a tag,
# # the bar will iterate the font list and pick the first one that is able to draw the character
# # font-0 = "JetBrainsMono Nerd Font";
# modules-left = "bspwm title";
# modules-center = "time";
# modules-right = "cpu cpu-temp gpu-temp battery memory pulseaudio tray xkeyboard rofi";
# # Restack the bar window and put it above the selected window manager's root
# # Fixes the issue where the bar is being drawn on top of fullscreen window's
# # Currently supported values:
# # generic (Tries the ewmh strategy and falls back to the bottom strategy.
# # This is a best-effort strategy and may change and be tweaked in
# # the future, the individual strategies are available on their own)
# # (New in version 3.6.0)
# # (Changed in version 3.7.0: Tries the ewmh strategy instead of just the bottom strategy)
# # bspwm (Moves the bar window above all bspwm root windows)
# # bottom (Moves the bar window above the first window in the window stack.
# # Works in xmonad, may not work on other WMs
# # New in version 3.7.0)
# # ewmh (Moves the bar above the window specified in _NET_SUPPORTING_WM_CHECK, if it is set
# # New in version 3.7.0)
# # i3 (requires `override-redirect = true`)
# wm-restack = "bspwm";
# };
# "module/rofi" = {
# type = "custom/text";
# click-left = "exec rofi -show drun";
# label = " ";
# };
# "module/bspwm" = { # Воркспейсы bspwm
# type = "internal/bspwm";
# pin-workspaces = true; # Only show workspaces defined on the same output as the bar
# inline-mode = true; # Output mode flags after focused state label. Не понял что значит
# enable-click = true; # Create click handler used to focus workspace
# enable-scroll = false; # Create scroll handlers used to cycle workspaces
# reverse-scroll = false; # Set the scroll cycle direction
# occupied-scroll = true; # Only scroll through occupied workspaces
# ws-icon-0 = "0;0";
# ws-icon-1 = "1;1";
# ws-icon-2 = "2;2";
# ws-icon-3 = "3;3";
# ws-icon-4 = "4;4";
# ws-icon-5 = "5;5";
# ws-icon-6 = "6;6";
# ws-icon-7 = "7;7";
# ws-icon-8 = "8;8";
# ws-icon-9 = "9;9";
# ws-icon-10 = "10;10";
# format = "<label-state> <label-mode>"; # Это невозможно описать. Я сам не до конца понял
# # label-mode = "%mode%";
# # label-mode-padding = 1;
# # label-mode-background = gruvbox.red-alt;
# # label-mode-foreground = gruvbox.white;
# # label-separator = "";
# # label-separator-padding = 0;
# # label-separator-foreground = gruvbox.transparen;
# # label-focused = "%icon% %name%";
# # label-focused-font = 5;
# # label-focused-foreground = gruvbox.yellow;
# # label-focused-underline = "#565c64";
# # label-focused-padding = 1;
# # label-focused-background = gruvbox.black;
# # label-occupied = "%icon%";
# # label-occupied-foreground = "#646870";
# # label-occupied-background = "#2b2f37";
# # label-occupied-padding = 1;
# # label-empty = "%icon%";
# # label-empty-foreground = gruvbox.yellow;
# # label-empty-padding = 1;
# # label-empty-background = "#2b2f37";
# # label-unfocused = "%icon%";
# # label-unfocused-font = 5;
# # label-unfocused-foreground = gruvbox.cream;
# # label-unfocused-background= gruvbox.black;
# # label-unfocused-padding = 2;
# # label-visible = "%icon%";
# # label-visible-padding = 2;
# # label-urgent = "%icon%";
# # label-urgent-font = 5
# # label-urgent-foreground = gruvbox.red-alt;
# # label-urgent-background = gruvbox.black;
# # label-urgent-padding = 2;
# };
# "module/title" = { # Отображение имени окна
# type = "internal/xwindow";
# format-prefix = "  ";
# # format-prefix-foreground = gruvbox.yellow-mat;
# # format-prefix-background = gruvbox.black;
# # format-background = "#f00";
# # format-foreground = "#000";
# # format-padding = 4;
# # label = "%title%";
# label = "%class%";
# label-maxlen = 60;
# # label-foreground = gruvbox.cream;
# # label-background = gruvbox.dark;
# label-padding-left = 2;
# label-padding-right = 2;
# };
# # %A: Полное название дня недели (например, "Monday")
# # %d: День месяца в формате двух цифр (например, "01")
# # %b или %B: Сокращённое или полное название месяца ("Jan", "January")
# # %m: Месяц в формате двух цифр (например, "01" для января)
# "module/time" = {
# type = "internal/date";
# interval = 1;
# # format = "🕓 <label>";
# # format-prefix = "  ";
# # format-prefix-foreground = gruvbox.aqua;
# # format-prefix-background = gruvbox.black;
# # date = "%A %d %b %Y | %H:%M:%S";
# date = "%d %B %Y";
# time = "%H:%M:%S";
# date-alt = "%d-%m-%Y"; # If defined, clicking will toggle between formats
# # time-alt = "%H:%M:%S"; # If defined, clicking will toggle between formats
# label = "%date% %time%";
# # label-foreground = gruvbox.cream;
# # label-background = gruvbox.dark;
# # label-font = 3;
# label-padding-left = 2;
# label-padding-right = 2;
# };
# "module/xkeyboard" = {
# type = "internal/xkeyboard";
# blacklist-0 = "num lock";
# blacklist-1 = "scroll lock";
# format = "<label-layout> <label-indicator>";
# label-layout-padding = 1;
# # label-layout-foreground = "#fff";
# label-indicator-on = "%name%";
# # layout-icon-default = "some-icon";
# layout-icon-0 = "RU";
# layout-icon-1 = "EN";
# label-indicator-on-capslock = "!";
# label-indicator-off-capslock = "";
# };
# "module/tray" = {
# type = "internal/tray";
# format = "<tray>";
# # format-prefix = " 󱊖 ";
# # format-prefix-foreground = gruvbox.orange;
# # format-prefix-background = gruvbox.black;
# tray-spacing = "8px";
# # tray-size = "66%"; # relative to bar height, non-negative
# format-padding = "5px";
# # format-background = gruvbox.black;
# # tray-background = gruvbox.black;
# # tray-foreground = gruvbox.cream; # сам добавил
# };
# "module/pulseaudio" = {
# type = "internal/pulseaudio";
# format-volume-prefix = "  ";
# # format-volume-prefix-foreground = gruvbox.blue-alt;
# # format-volume-prefix-background= gruvbox.black;
# format-volume = "<label-volume>";
# label-volume = "%percentage%%";
# # label-volume-foreground= gruvbox.cream;
# # label-volume-background= gruvbox.dark;
# label-volume-padding-left=2;
# label-volume-padding-right=2;
# format-muted-prefix = "  ";
# # format-muted-foreground = gruvbox.orange;
# # format-muted-background = gruvbox.black;
# label-muted = "muted";
# # label-muted-foreground = gruvbox.orange-mat;
# # label-muted-background = gruvbox.dark;
# label-muted-padding = 2;
# };
# "module/memory" = {
# type = "internal/memory";
# interval = 3;
# # format-prefix = "  ";
# # format-prefix-foreground = gruvbox.blue;
# # format-prefix-background = gruvbox.black;
# label = "RAM: %gb_used%/%gb_total% | SWAP: %gb_swap_used%/%gb_swap_total%";
# # label-foreground = gruvbox.cream;
# # label-background = gruvbox.dark;
# label-padding-left = 2;
# label-padding-right = 2;
# };
# "module/battery" = {
# type = internal/battery;
# full-at = 98;
# low-at = 20;
# battery = "BAT0";
# adapter = "ADP1";
# poll-interval = 5;
# time-format = "%H:%M";
# format-charging = "<animation-charging><label-charging>";
# # format-charging-foreground = gruvbox.green;
# # format-charging-background = gruvbox.black;
# label-charging = "%percentage%%";
# # label-charging-foreground = gruvbox.cream;
# # label-charging-background = gruvbox.dark;
# label-charging-padding= 2;
# format-discharging = "<ramp-capacity><label-discharging>";
# # format-discharging-foreground = gruvbox.green-alt;
# # format-discharging-background = gruvbox.black;
# label-discharging = "%percentage%%";
# # label-discharging-foreground = gruvbox.cream;
# # label-discharging-background = gruvbox.dark;
# label-discharging-padding = 2;
# format-full-prefix = "  ";
# # format-full-foreground = gruvbox.aqua;
# # format-full-background = gruvbox.black;
# label-full = "%percentage%%";
# # label-full-foreground = gruvbox.cream;
# # label-full-background = gruvbox.dark;
# label-full-padding = 2;
# label-low = "[ BATTERY LOW ] %percentage%%";
# # label-low-foreground = gruvbox.black;
# # label-low-background = gruvbox.red-alt;
# label-low-padding = 2;
# # Only applies if <ramp-capacity> is used
# ramp-capacity-0 = "  ";
# ramp-capacity-1 = "  ";
# ramp-capacity-2 = "  ";
# ramp-capacity-3 = "  ";
# ramp-capacity-4 = "  ";
# ramp-capacity-0-padding = 3;
# ramp-capacity-1-padding = 3;
# ramp-capacity-2-padding = 3;
# ramp-capacity-3-padding = 3;
# ramp-capacity-4-padding = 3;
# # ramp-capacity-0-foreground = gruvbox.red-alt;
# # ramp-capacity-1-foreground = gruvbox.green-alt;
# # ramp-capacity-2-foreground = gruvbox.green-alt;
# # ramp-capacity-3-foreground = gruvbox.green-alt;
# # ramp-capacity-4-foreground = gruvbox.green-alt;
# # ramp-capacity-0-background = gruvbox.black;
# # ramp-capacity-1-background = gruvbox.black;
# # ramp-capacity-2-background = gruvbox.black;
# # ramp-capacity-3-background = gruvbox.black;
# # ramp-capacity-4-background = gruvbox.black;
# # Only applies if <bar-capacity> is used
# bar-capacity-width = 10;
# # Only applies if <animation-charging> is used
# animation-charging-0 = "  ";
# animation-charging-1 = "  ";
# animation-charging-2 = "  ";
# animation-charging-3 = "  ";
# animation-charging-4 = "  ";
# animation-charging-framerate = 750;
# animation-charging-0-padding = 3;
# animation-charging-1-padding = 3;
# animation-charging-2-padding = 3;
# animation-charging-3-padding = 3;
# animation-charging-4-padding = 3;
# # Animation-charging color
# # animation-charging-0-foreground = gruvbox.green;
# # animation-charging-1-foreground = gruvbox.green;
# # animation-charging-2-foreground = gruvbox.green;
# # animation-charging-3-foreground = gruvbox.green;
# # animation-charging-4-foreground = gruvbox.green;
# # animation-charging-0-background = gruvbox.black;
# # animation-charging-1-background = gruvbox.black;
# # animation-charging-2-background = gruvbox.black;
# # animation-charging-3-background = gruvbox.black;
# # animation-charging-4-background = gruvbox.black;
# # Only applies if <animation-discharging> is used;
# animation-discharging-0 = "[  ]";
# animation-discharging-1 = "[  ]";
# animation-discharging-2 = "[  ]";
# animation-discharging-3 = "[  ]";
# animation-discharging-4 = "[  ]";
# animation-discharging-framerate = 500;
# animation-discharging-0-padding = 1;
# animation-discharging-1-padding = 1;
# animation-discharging-2-padding = 1;
# animation-discharging-3-padding = 1;
# animation-discharging-4-padding = 1;
# # Animation discharging color
# # animation-discharging-0-foreground = gruvbox.cream;
# # animation-discharging-1-foreground = gruvbox.cream;
# # animation-discharging-2-foreground = gruvbox.cream;
# # animation-discharging-3-foreground = gruvbox.cream;
# # animation-discharging-4-foreground = gruvbox.cream;
# # animation-discharging-0-background = gruvbox.green-alt;
# # animation-discharging-1-background = gruvbox.green-alt;
# # animation-discharging-2-background = gruvbox.green-alt;
# # animation-discharging-3-background = gruvbox.green-alt;
# # animation-discharging-4-background = gruvbox.green-alt;
# animation-low-0 = "!";
# animation-low-1 = "!!";
# animation-low-framerate = 200;
# };
# "module/cpu" = {
# type = "internal/cpu";
# warn-percentage = 95;
# label = "CPU %percentage%%";
# label-warn = "CPU %percentage%%";
# };
# # Full path of temperature sysfs path
# # Use `sensors` to find preferred temperature source, then run
# # $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done
# # to find path to desired file
# # Default reverts to thermal zone setting
# "module/cpu-temp" = {
# type = "internal/temperature";
# hwmon-path = "/sys/devices/platform/coretemp.0/hwmon/hwmon4/temp1_input";
# warn-temperature = 80;
# label = "%temperature-c% °C";
# label-warn = "%temperature-c% °C";
# # label-warn-foreground = "#f00";
# };
# "module/gpu-temp" = {
# type = "internal/temperature";
# hwmon-path = "/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/hwmon/hwmon5/temp3_input";
# warn-temperature = 80;
# label = "GPU %temperature-c% °C";
# label-warn = "GPU %temperature-c% °C";
# # label-warn-foreground = "#f00";
# };
# };
}; };
} }

View file

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

View file

@ -32,19 +32,19 @@
enable = true; enable = true;
enable32Bit = true; # install 32-bit drivers for 32-bit applications (such as Wine). enable32Bit = true; # install 32-bit drivers for 32-bit applications (such as Wine).
extraPackages = with pkgs; [ # Мб часть пакетов стоит удалить отсюда и закинуть в обычные пакеты extraPackages = with pkgs; [ # Мб часть пакетов стоит удалить отсюда и закинуть в обычные пакеты
amdvlk # AMD Open Source Driver For Vulkan # amdvlk # AMD Open Source Driver For Vulkan
vulkan-tools # vulkan-tools
dxvk # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 8/9/10/11) # dxvk # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 8/9/10/11)
vkd3d # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 12) # vkd3d # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 12)
# vkbasalt # Баф Vulkan для улучшения визуальной графики игр https://github.com/DadSchoorse/vkBasalt # # vkbasalt # Баф Vulkan для улучшения визуальной графики игр https://github.com/DadSchoorse/vkBasalt
libva # VAAPI (Video Acceleration API) libva # VAAPI (Video Acceleration API)
libva-utils # VAAPI (Video Acceleration API) # libva-utils # VAAPI (Video Acceleration API)
rocmPackages.clr.icd # OpenCL # rocmPackages.clr.icd # OpenCL
clinfo # Проверяет работает ли OpenCL? # clinfo # Проверяет работает ли OpenCL?
]; # ];
# extraPackages32 = with pkgs; [ # 32 bit # extraPackages32 = with pkgs; [ # 32 bit
# driversi686Linux.amdvlk # Vulkan support for 32-bit applications # driversi686Linux.amdvlk # Vulkan support for 32-bit applications
# ]; ];
}; };
opentabletdriver.enable = true; # Установить, настроить и добавить в автозапуск otd opentabletdriver.enable = true; # Установить, настроить и добавить в автозапуск otd

View file

@ -1,5 +1,4 @@
{ # Настройки звука { # Настройки звука
sound.enable = true;
hardware.pulseaudio.enable = false; hardware.pulseaudio.enable = false;
security.rtkit.enable = true; # Уменьшает задержку? security.rtkit.enable = true; # Уменьшает задержку?
services.pipewire = { services.pipewire = {

View file

@ -17,16 +17,16 @@
fonts = { fonts = {
packages = with pkgs; [ # packages = with pkgs; [
noto-fonts # Шрифт от гугла, цель которого поддержка всех языков мира # noto-fonts # Шрифт от гугла, цель которого поддержка всех языков мира
noto-fonts-cjk-serif # Отображение иероглифов. Версия с засечками # noto-fonts-cjk-serif # Отображение иероглифов. Версия с засечками
# noto-fonts-cjk-sans # Отображение иероглифов. Версия без засечек # # noto-fonts-cjk-sans # Отображение иероглифов. Версия без засечек
carlito # Совместим с Calibri, разработан как его свободная альтернатива. Без засечек # carlito # Совместим с Calibri, разработан как его свободная альтернатива. Без засечек
terminus_font # terminus_font
inconsolata # inconsolata
font-awesome # font-awesome
liberation_ttf # liberation_ttf
]; # ];
# Ширина символов одинаковая # Ширина символов одинаковая
monospace = { # default = DejaVu Sans Mono monospace = { # default = DejaVu Sans Mono

View file

@ -3,57 +3,69 @@
# https://www.reddit.com/r/NixOS/comments/14dlvbr/sddm_theme/ # https://www.reddit.com/r/NixOS/comments/14dlvbr/sddm_theme/
{ pkgs, ... }: { {
services.displayManager = { services.displayManager = {
defaultSession = "none+bspwm"; # only effective for GDM, LightDM and SDDM defaultSession = "none+bspwm"; # only effective for GDM, LightDM and SDDM
}; };
services.libinput = {
enable = true;
mouse = {
accelProfile = "flat";
scrollMethod = "button";
scrollButton = 9; # Узнать айди можно через `xev -event button | grep button`
};
touchpad = {
accelProfile = "flat";
};
};
services.xserver = { services.xserver = {
enable = true; enable = true;
windowManager.bspwm.enable = true; windowManager.bspwm.enable = true;
displayManager = { displayManager = {
# sddm = { # Display manager от kde # sddm = { # Display manager от kde
# enable = true; # Вход в систему # enable = true; # Вход в систему
# theme = pkgs.sddm-sugar-dark; # https://github.com/MarianArlt/sddm-sugar-dark # theme = pkgs.sddm-sugar-dark; # https://github.com/MarianArlt/sddm-sugar-dark
# }; # };
lightdm = { # Минималистичный display manager lightdm = { # Минималистичный display manager
enable = true; enable = true;
# background = "./bg.png"; # background = "./bg.png";
greeters = { greeters = {
tiny.enable = true; # Фул минималистичная тема без ничего tiny.enable = true; # Фул минималистичная тема без ничего
# gtk = { # GTK тема с кучей настроек. Я поставил сток настройки как шаблон # gtk = { # GTK тема с кучей настроек. Я поставил сток настройки как шаблон
# enable = true; # enable = true;
# cursorTheme = { # cursorTheme = {
# size = 16; # size = 16;
# package = pkgs.adwaita-icon-theme; # package = pkgs.adwaita-icon-theme;
# name = "Adwaita"; # name = "Adwaita";
# }; # };
# iconTheme = { # iconTheme = {
# package = pkgs.adwaita-icon-theme; # package = pkgs.adwaita-icon-theme;
# name = "Adwaita"; # name = "Adwaita";
# }; # };
# theme = { # theme = {
# package = pkgs.gnome-themes-extra; # package = pkgs.gnome-themes-extra;
# name = "Adwaita"; # name = "Adwaita";
# }; # };
# indicators = [ # indicators = [
# "~host" # "~host"
# "~spacer" # "~spacer"
# "~clock" # "~clock"
# "~spacer" # "~spacer"
# "~session" # "~session"
# "~language" # "~language"
# "~a11y" # "~a11y"
# "~power" # "~power"
# ]; # ];
# clock-format = "%H:%M:%S %d.%m.%y"; # clock-format = "%H:%M:%S %d.%m.%y";
# extraConfig = ""; # extraConfig = "";
# }; # };
};
}; };
};
}; };
xkb = { xkb = {
@ -62,18 +74,6 @@
options = "grp:caps_toggle"; # Менять язык на CapsLock options = "grp:caps_toggle"; # Менять язык на CapsLock
}; };
libinput = {
enable = true;
mouse = {
accelProfile = "flat";
scrollMethod = "button";
scrollButton = 9; # Узнать айди можно через `xev -event button | grep button`
};
touchpad = {
accelProfile = "flat";
};
};
# Мб видеодрайвер можно не указывать # Мб видеодрайвер можно не указывать
# https://discourse.nixos.org/t/amd-gpu-optimal-settings/27648/3 # https://discourse.nixos.org/t/amd-gpu-optimal-settings/27648/3

View file

@ -7,8 +7,6 @@
let let
username = "buliway"; username = "buliway";
in { in {
nixpkgs.config.allowUnfree = true;
imports = [ imports = [
/etc/nixos/hardware-configuration.nix /etc/nixos/hardware-configuration.nix
inputs.home-manager.nixosModules.default inputs.home-manager.nixosModules.default
@ -47,12 +45,13 @@ in {
security.polkit = { # Всплывающее меню для ввода пароля security.polkit = { # Всплывающее меню для ввода пароля
enable = true; enable = true;
# package = pkgs.polkit_gnome; # Legacy polkit authentication agent for GNOME
package = pkgs.lxde.lxsession; # Lightweight X11 gtk2 session manager
}; };
xdg.portal = { xdg.portal = {
enable = true; enable = true;
configPackages = with pkgs; [
xdg-desktop-portal-gtk # Чтоб загружать файлы и стримить в дискорде
];
extraPortals = with pkgs; [ extraPortals = with pkgs; [
xdg-desktop-portal-gtk # Чтоб загружать файлы и стримить в дискорде xdg-desktop-portal-gtk # Чтоб загружать файлы и стримить в дискорде
]; ];

View file

@ -24,7 +24,10 @@
options = [ "fmask=0022" "dmask=0022" ]; options = [ "fmask=0022" "dmask=0022" ];
}; };
swapDevices = [ ]; swapDevices = [ {
device = "/swapfile";
size = 16*1024;
} ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,5 +1,25 @@
{ pkgs, ... }: { { pkgs, ... }: {
nixpkgs.config = {
allowUnfree = true;
permittedInsecurePackages = ["python-2.7.18.8" "electron-25.9.0"];
};
# 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"];})
carlito # Совместим с Calibri, разработан как его свободная альтернатива. Без засечек
terminus_font
inconsolata
font-awesome
liberation_ttf
dejavu_fonts
];
services = { services = {
gvfs.enable = true; # Mount, trash, and other functionalities for Thunar file manager gvfs.enable = true; # Mount, trash, and other functionalities for Thunar file manager
tumbler.enable = true; # Thumbnail support for Thunar file manager tumbler.enable = true; # Thumbnail support for Thunar file manager
@ -180,7 +200,7 @@
libreoffice # Редактировать документы libreoffice # Редактировать документы
hunspell # Проверка орфографии для libreoffice hunspell # Проверка орфографии для libreoffice
hunspellDicts.ru_RU # Словарь для проверки орфографии hunspellDicts.ru_RU # Словарь для проверки орфографии
hunspellDicts.en_EN # Словарь для проверки орфографии hunspellDicts.en_US # Словарь для проверки орфографии
calibre # Работа с ebook. Иногда даёт thumbnail в файловом менеджере calibre # Работа с ebook. Иногда даёт thumbnail в файловом менеджере
drawio # Desktop application for creating diagrams. Вроде даёт thumbnail в ranger drawio # Desktop application for creating diagrams. Вроде даёт thumbnail в ranger
@ -238,7 +258,7 @@
## Social ## ## Social ##
############ ############
(pkgs.discord.override { # Discord (discord.override { # Discord
withOpenASAR = true; # Оптимизатор дискрода? withOpenASAR = true; # Оптимизатор дискрода?
withVencord = true; # Имба плагины # TODO: Настройки надо сделать декларативными withVencord = true; # Имба плагины # TODO: Настройки надо сделать декларативными
}) })
@ -293,6 +313,13 @@
fontconfig fontconfig
zlib zlib
google-fonts google-fonts
lxqt.lxqt-policykit # Меню для воода пароля при запуске с правами админа
vulkan-tools # Для vkcube в терминале?
dxvk # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 8/9/10/11)
vkd3d # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 12)
# vkbasalt # Баф Vulkan для улучшения визуальной графики игр https://github.com/DadSchoorse/vkBasalt
libva-utils # Проверяет работоспособность VAAPI?
clinfo # Проверяет работоспособность OpenCL?
]; ];
} }