Initial commit

This commit is contained in:
Artyom Belousov 2026-01-13 15:34:28 +03:00 committed by Артём Белоусов
commit b79d352847
37 changed files with 2191 additions and 0 deletions

221
home/hyprland/default.nix Normal file
View file

@ -0,0 +1,221 @@
{
lib,
pkgs,
config,
...
}:
{
options = {
custom.hyprland.enable = lib.mkEnableOption "Enable hyprland config";
};
config = lib.mkIf config.custom.hyprland.enable {
xdg.dataFile = {
avatar = {
source = ./avatar.png;
target = "images/avatar.png";
};
};
programs = {
vicinae.enable = true;
ghostty = {
enable = true;
settings = {
font-family = "FiraCode Nerd Font";
window-padding-x = 15;
window-padding-y = 10;
confirm-close-surface = false;
resize-overlay = "never";
app-notifications = "no-clipboard-copy";
};
};
hyprlock = {
enable = true;
settings = {
"$font" = "Roboto";
general = {
hide_cursor = true;
};
background = {
monitor = "";
};
label = {
monitor = "";
text = "$LAYOUT[EN,RU]";
font_size = 18;
font_family = "$font";
position = "0, -120";
halign = "center";
valign = "center";
};
image = {
monitor = "";
path = "$HOME/.local/share/images/avatar.png";
size = 120;
rounding = 10;
border_size = 2;
position = "0, 100";
halign = "center";
valign = "center";
};
input-field = {
monitor = "";
size = "300, 60";
outline_thickness = 2;
dots_size = 0.2;
dots_spacing = 0.2;
dots_center = true;
placeholder_text = "Введите пароль";
fade_on_empty = false;
hide_input = false;
fail_text = "Неверный пароль";
position = "0, -47";
halign = "center";
valign = "center";
};
};
};
};
home.packages = with pkgs; [
acpi
grim
jq
slurp
wl-clipboard
];
wayland.windowManager.hyprland = {
enable = true;
settings = {
general = {
layout = "master";
border_size = 3;
gaps_in = 7;
gaps_out = 14;
};
decoration.rounding = 10;
input = {
kb_layout = "us,ru";
kb_options = "grp:alt_shift_toggle";
touchpad.natural_scroll = true;
};
"$mainMod" = "SUPER";
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
bind = [
"$mainMod SHIFT, Q, exit,"
"$mainMod, RETURN, exec, ghostty"
"$mainMod, D, exec, vicinae open"
"$mainMod, Q, killactive,"
"$mainMod, V, togglefloating,"
"$mainMod, F, fullscreen"
"$mainMod, K, layoutmsg, cycleprev"
"$mainMod, J, layoutmsg, cyclenext"
"$mainMod SHIFT, K, layoutmsg, swapprev"
"$mainMod SHIFT, J, layoutmsg, swapnext"
"$mainMod, L, exec, loginctl lock-session"
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
"$mainMod SHIFT, 1, movetoworkspace, 1"
"$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod SHIFT, 3, movetoworkspace, 3"
"$mainMod SHIFT, 4, movetoworkspace, 4"
"$mainMod SHIFT, 5, movetoworkspace, 5"
"$mainMod SHIFT, 6, movetoworkspace, 6"
"$mainMod SHIFT, 7, movetoworkspace, 7"
"$mainMod SHIFT, 8, movetoworkspace, 8"
"$mainMod SHIFT, 9, movetoworkspace, 9"
"$mainMod SHIFT, 0, movetoworkspace, 10"
", Print, exec, mkdir -p ~/Изображения/Скриншоты && grim -o \"$(hyprctl activeworkspace -j | jq -r '.monitor')\" - | tee ~/Изображения/Скриншоты/`date +'%Y_%m_%d_%H_%M_%S_%3N.png'` | wl-copy && dunstify \"Снимок всего экрана сделан\""
"SHIFT, Print, exec, mkdir -p ~/Изображения/Скриншоты && grim -g \"$(slurp -d)\" - | tee ~/Изображения/Скриншоты/`date +'%Y_%m_%d_%H_%M_%S_%3N.png'` | wl-copy && dunstify 'Снимок области сделан'"
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86MonBrightnessUp, exec, brightnessctl set +10%"
", XF86MonBrightnessDown, exec, brightnessctl set 10%-"
];
gesture = [
"3, horizontal, workspace"
];
exec-once = [
"dunst"
"waybar"
"vicinae server"
];
};
};
services = {
hyprpaper = {
enable = true;
settings = {
splash = false;
};
};
network-manager-applet.enable = true;
blueman-applet.enable = true;
dunst = {
enable = true;
settings = {
global = {
font = "Roboto 12";
corner_radius = 16;
};
};
};
hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock";
before_sleep_cmd = "loginctl lock-session";
after_sleep_cmd = "hyprctl dispatch dpms on";
};
listener = [
{
timeout = 150;
on-timeout = "brightnessctl -s set 10";
on-resume = "brightnessctl -r";
}
{
timeout = 300;
on-timeout = "loginctl lock-session";
}
{
timeout = 330;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on && brightnessctl -r";
}
{
timeout = 1800;
on-timeout = "systemctl suspend";
}
];
};
};
};
};
}