This commit is contained in:
hand7s 2025-04-21 18:32:39 +03:00
commit b6cdc78668
210 changed files with 9929 additions and 0 deletions

49
hand7s/default.nix Normal file
View file

@ -0,0 +1,49 @@
{
imports = [
./fonts/fonts.nix
./options/gui.nix
./wayland/hyprland.nix
./wayland/river.nix
./wayland/sway.nix
./home/defaults.nix
./home/gui.nix
./home/keyboard.nix
./home/packages.nix
./home/shellAliases.nix
./nixpkgs/config.nix
./nixpkgs/overlays.nix
./services/hypridle.nix
./services/swayidle.nix
./systemd/hyprpanel-service.nix
./systemd/hyprpolkitagent-service.nix
./systemd/yambar-service.nix
./programs/bat.nix
./programs/eza.nix
./programs/fish.nix
./programs/fzf.nix
./programs/ghostty.nix
./programs/git.nix
./programs/mpv.nix
./programs/helix.nix
./programs/index.nix
./programs/obs-studio.nix
./programs/starship.nix
./programs/firefox.nix
./programs/swaylock.nix
./programs/yazi.nix
./programs/zoxide.nix
./programs/chrome.nix
./programs/fuzzel.nix
./programs/hyprlock.nix
./programs/hyprpanel.nix
./programs/spicetify.nix
./programs/vscode.nix
./programs/yambar.nix
];
}

9
hand7s/fonts/fonts.nix Normal file
View file

@ -0,0 +1,9 @@
{
...
}: {
fonts = {
fontconfig = {
enable = true;
};
};
}

12
hand7s/gtk/gtk.nix Normal file
View file

@ -0,0 +1,12 @@
{
pkgs,
...
}: {
gtk = {
enable = true;
iconTheme = {
name = "Whitesur-icon-theme";
package = pkgs.whitesur-icon-theme;
};
};
}

9
hand7s/home/defaults.nix Normal file
View file

@ -0,0 +1,9 @@
{
...
}: {
home = {
stateVersion = "24.11";
username = "hand7s";
homeDirectory = "/home/hand7s";
};
}

26
hand7s/home/gui.nix Normal file
View file

@ -0,0 +1,26 @@
{
osConfig,
lib,
...
}:{
home = {
gui = {
enable = lib.mkIf (
osConfig.networking.hostName == "s0mePC-nix" || osConfig.networking.hostName == "s0melapt0p-nix"
) true;
sessionType = if (
osConfig.networking.hostName == "s0mePC-nix"
) then (
"Hyprland"
) else if (
osConfig.networking.hostName == "s0melapt0p-nix"
) then (
"Sway"
) else (
"None"
);
};
};
}

13
hand7s/home/keyboard.nix Normal file
View file

@ -0,0 +1,13 @@
{
...
}: {
home = {
keyboard = {
variant = "qwerty";
layout = "us, ru";
options = [
"grp:caps_toggle"
];
};
};
}

49
hand7s/home/packages.nix Normal file
View file

@ -0,0 +1,49 @@
{
osConfig,
inputs,
pkgs,
lib,
...
}: let
freesm-launcher = inputs.freesm.packages.${pkgs.system}.freesmlauncher;
in {
home = {
packages = with pkgs; [
gh
sd
nvd
git
dust
procs
gping
dconf
tokei
ifuse
trippy
bottom
kubectl
yt-dlp
ripgrep
tty-clock
freesm-launcher
libimobiledevice
nix-output-monitor
] ++lib.optionals (
osConfig.networking.hostName == "s0mePC-nix"
) [
tetrio-desktop
netbird-ui
thunderbird
mindustry
qbittorrent-enhanced
] ++ lib.optionals (
osConfig.networking.hostName == "s0melapt0p-nix"
) [
iwgtk
brightnessctl
];
};
}

View file

@ -0,0 +1,11 @@
{
...
}: {
home = {
shellAliases = {
e = "eza";
et = "eza -T";
k = "kubectl";
};
};
}

8
hand7s/nix/package.nix Normal file
View file

@ -0,0 +1,8 @@
{
pkgs,
...
}: {
nix = {
package = pkgs.nixVersions.latest;
};
}

View file

@ -0,0 +1,21 @@
{
...
}: {
nix = {
settings = {
substituters = [
# cache.nixos.org
"https://nixos-cache-proxy.cofob.dev"
"https://cache.nixos.org"
# cache.garnix.org
"https://cache.garnix.io"
# cachix
"https://nix-community.cachix.org/"
"https://chaotic-nyx.cachix.org/"
"https://ags.cachix.org"
"https://hyprland.cachix.org"
"https://chaotic-nyx.cachix.org/"
];
};
};
}

View file

@ -0,0 +1,20 @@
{
...
}: {
nix = {
settings = {
trusted-public-keys = [
# cache.nixos.org
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
# cache.garnix.io
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
# cachix.org
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
"ags.cachix.org-1:naAvMrz0CuYqeyGNyLgE010iUiuf/qx6kYrUv3NwAJ8="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
];
};
};
}

10
hand7s/nixpkgs/config.nix Normal file
View file

@ -0,0 +1,10 @@
{
...
}: {
nixpkgs = {
config = {
allowBroken = true;
allowUnfree = true;
};
};
}

View file

@ -0,0 +1,10 @@
{
inputs,
...
}: {
nixpkgs = {
overlays = [
inputs.hyprpanel.overlay
];
};
}

98
hand7s/options/gui.nix Normal file
View file

@ -0,0 +1,98 @@
{
lib,
pkgs,
config,
inputs,
...
}: let
cfg = config.home.gui;
ayugram-desktop = inputs.ayugram-desktop.packages.${pkgs.system}.ayugram-desktop;
in {
options.home.gui = {
enable = lib.mkEnableOption ''
Enabling this option will allow you to activate GUI Software,
that exist in my home-manager setup. Enabling this, as you can
see, is depending on hostname of my system. To bypass this,
either delete expression in `home.nix`, or change hostname
to yours.
'';
sessionType = lib.mkOption {
type = lib.types.enum [
"Sway"
"River"
"Hyprland"
"None"
];
default = "None";
description = ''
This option allows to choose current desktop session. All
three: riverwm, sway and Hyprland has their own config. Almost
all of them - their respectful software. WIP.
'';
};
};
config = lib.mkIf cfg.enable {
home = {
packages = with pkgs; [
vesktop
(discord.override {
withVencord = true;
withOpenASAR = false;
})
ayugram-desktop
element-desktop
obsidian
pwvucontrol
easyeffects
hyprpolkitagent
parsec-bin
bitwarden
mindustry
playerctl
lan-mouse
nekoray
] ++ lib.optionals (
cfg.sessionType == "Sway"
) [
swaykbdd
sway-contrib.grimshot
sway-contrib.inactive-windows-transparency
autotiling-rs
sway-audio-idle-inhibit
] ++ lib.optionals (
cfg.sessionType == "River"
) [
wayshot
waylock
wayidle
] ++ lib.optionals (
cfg.sessionType == "Hyprland"
) [
hyprpanel
grimblast
];
};
programs = {
chromium.enable = true;
spicetify.enable = true;
vscode.enable = true;
fuzzel.enable = true;
ghostty.enable = true;
firefox.enable = true;
};
services = with lib.mkDefault; {
hyprpaper.enable = true;
};
};
meta.maintainers = with lib.maintainers; [
s0me1newithhan7ds
# aka hand7s
];
}

12
hand7s/programs/bat.nix Normal file
View file

@ -0,0 +1,12 @@
{
...
}: {
programs = {
bat = {
enable = true;
config = {
pager = "less -FR";
};
};
};
}

View file

@ -0,0 +1,22 @@
{
pkgs,
...
}: {
programs = {
chromium = {
package = (
pkgs.google-chrome.override {
commandLineArgs = [
"--enable-features=AcceleratedVideoEncoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE"
"--enable-features=VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport"
"--enable-features=UseMultiPlaneFormatForHardwareVideo"
"--enable-features=SkiaGraphite"
"--enable-unsafe-webgpu"
"--ignore-gpu-blocklist"
"--enable-zero-copy"
];
}
);
};
};
}

12
hand7s/programs/eza.nix Normal file
View file

@ -0,0 +1,12 @@
{
...
}: {
programs = {
eza = {
enable = true;
enableFishIntegration = true;
git = true;
icons = "always";
};
};
}

View file

@ -0,0 +1,13 @@
{
inputs,
pkgs,
...
}: let
zen-browser = inputs.zen-browser.packages.${pkgs.system}.default;
in {
programs = {
firefox = {
package = zen-browser;
};
};
}

15
hand7s/programs/fish.nix Normal file
View file

@ -0,0 +1,15 @@
{
...
}: {
programs = {
fish = {
enable = true;
generateCompletions = true;
functions = {
fish_greeting = {
body = "echo ' ~ 𝑠𝑛𝑜𝑤𝑦 𝑝𝑙𝑎𝑐𝑒, 𝑓𝑢𝑙𝑙 𝑜𝑓 𝑓𝑙𝑎𝑘𝑒𝑠! '";
};
};
};
};
}

View file

@ -0,0 +1,21 @@
{
pkgs,
...
}: {
programs = {
fuzzel = {
settings = {
main = {
terminal = "${pkgs.ghostty}/bin/ghostty";
layer = "overlay";
prompt = " > ";
};
border = {
width = "2";
radius = "10";
};
};
};
};
}

13
hand7s/programs/fzf.nix Normal file
View file

@ -0,0 +1,13 @@
{
...
}: {
programs = {
fzf = {
enable = true;
enableFishIntegration = true;
tmux = {
enableShellIntegration = true;
};
};
};
}

View file

@ -0,0 +1,24 @@
{
pkgs,
...
}: {
programs = {
ghostty = {
enableFishIntegration = true;
installBatSyntax = true;
settings = {
title = "spooky scary tty";
command = "${pkgs.fish}/bin/fish --login --interactive";
confirm-close-surface = false;
keybind = [
"ctrl+shift+d=new_split:right"
"ctrl+shift+h=goto_split:left"
"ctrl+shift+l=goto_split:right"
];
};
};
};
}

11
hand7s/programs/git.nix Normal file
View file

@ -0,0 +1,11 @@
{
...
}: {
programs = {
git = {
enable = true;
userEmail = "117505144+s0me1newithhand7s@users.noreply.github.com";
userName = "s0me1newithhand7s";
};
};
}

63
hand7s/programs/helix.nix Normal file
View file

@ -0,0 +1,63 @@
{
pkgs,
...
}: {
programs = {
helix = {
enable = true;
defaultEditor = true;
extraPackages = with pkgs; [
nixd
nixfmt-rfc-style
];
settings = {
editor = {
line-number = "relative";
cursorline = true;
lsp = {
display-messages = true;
};
};
};
languages = {
language-servers = {
nixd = {
command = "${pkgs.nixd}/bin/nixd";
args = [
"--inlay-hints=true"
];
};
};
language = [
{
name = "nix";
comment-token = "#";
injection-regex = "nix";
indent = {
tab-width = 4;
unit = " ";
};
formatter = {
command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt-rfc-style";
args = [
"--indent=4"
];
};
file-types = [
"nix"
];
language-servers = [
"nixd"
];
}
];
};
};
};
}

View file

@ -0,0 +1,94 @@
{
config,
lib,
...
}: {
programs = {
hyprlock = {
enable = lib.mkIf (
config.home.gui.sessionType == "Hyprland"
) true;
settings = {
general = {
hide_cursor = true;
ignore_empty_input = true;
};
label = [
{
monitor = "";
text = "$TIME";
text_align = "center";
color = config.lib.stylix.colors.base01;
font_size = 48;
font_family = "Nerd Hack Font";
rotate = 0;
position = "0, 50";
halign = "center";
valign = "center";
shadow_passes = 1;
shadow_size = 2;
shadow_color = "rgba(38, 3, 4, 1)";
shadow_boost = 2;
}
{
monitor = "";
text = "> $LAYOUT[en,ru]";
text_align = "center";
color = config.lib.stylix.colors.base06;
font_size = 26;
font_family = "Nerd Hack Font";
rotate = 0;
position = "200, -50";
halign = "center";
valign = "center";
shadow_passes = 1;
shadow_size = 2;
shadow_color = "rgba(38, 3, 4, 1)";
shadow_boost = 2;
}
];
input-field = lib.mkForce [
{
monitor = "";
size = "250, 50";
outline_thickness = 2;
dots_size = 0.35;
dots_spacing = 0.5;
dots_center = true;
dots_rounding = -2;
fade_on_empty = false;
fade_timeout = 0;
placeholder_text = " ";
hide_input = false;
rounding = -0.3;
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
fail_transition = 1000;
capslock_color = -1;
numlock_color = -1;
bothlock_color = -1;
invert_numlock = false;
swap_font_color = false;
position = "0, -50";
halign = "center";
valign = "center";
shadow_passes = 1;
shadow_size = 5;
shadow_boost = 1;
}
];
};
};
};
}

View file

@ -0,0 +1,470 @@
{
config,
pkgs,
lib,
...
}: {
programs = {
hyprpanel = {
enable = lib.mkIf (
config.home.gui.sessionType == "Hyprland"
) true;
hyprland = {
enable = lib.mkIf (
config.home.gui.sessionType == "Hyprland"
) true;
};
overwrite = {
enable = lib.mkIf (
config.home.gui.sessionType == "Hyprland"
) true;
};
overlay = {
enable = lib.mkIf (
config.home.gui.sessionType == "Hyprland"
) true;
};
settings = {
layout = {
"bar.layouts" = {
"*" = {
left = [
"dashboard"
"workspaces"
"media"
];
middle = [
"clock"
"power"
];
right = [
"network"
"kbinput"
"volume"
"systray"
"notifications"
];
};
};
};
scalingPriority = "hyprland";
tear = false;
terminal = "${pkgs.ghostty}/bin/ghostty";
dummy = true;
hyprpanel = {
restartAgs = true;
restartCommand = "${pkgs.systemd}/bin/systemctl --user restart hyprpanel.service";
};
bar = {
autoHide = "never";
scrollSpeed = 5;
battery = {
hideLabelWhenFull = true;
label = true;
};
bluetooth = {
label = true;
};
clock = {
format = "%a, %b %d %I:%M:%S %p";
icon = "󰸗";
showIcon = true;
showTime = true;
};
launcher = {
icon = " ";
autoDetectIcon = true;
};
media = {
format = "{artist: - }{title}";
show_active_only = true;
show_label = true;
truncation = true;
truncation_size = 30;
};
network = {
label = true;
showWifiInfo = true;
truncation = true;
truncation_size = 10;
};
notifications = {
show_total = false;
hideCountWhenZero = true;
};
volume = {
label = true;
scrollDown = "${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-";
scrollUp = "${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+";
rightClick = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
};
windowtitle = {
icon = true;
label = true;
class_name = false;
custom_title = true;
truncation = true;
truncation_size = 50;
};
workspaces = {
show_icons = false;
show_numbered = false;
showApplicationIcons = true;
showAllActive = true;
showWsIcons = true;
numbered_active_indicator = "highlight";
workspaces = 20;
monitorSpecific = true;
reverse_scroll = false;
scroll_speed = 5;
spacing = 1.0;
workspaceMask = true;
ignored = "";
applicationIconEmptyWorkspace = "";
applicationIconFallback = "󰣆";
icons = {
active = "";
available = "";
occupied = "";
};
};
customModules = {
scrollSpeed = 5;
cava = {
showIcon = true;
icon = "";
spaceCharacter = "";
showActiveOnly = true;
stereo = false;
autoSensitivity = true;
bars = 10;
channels = 2;
framerate = 165;
samplerate = 48000;
lowCutoff = 20;
highCutoff = 20000;
barCharacters = [
""
""
""
""
""
""
""
""
];
};
cpu = {
icon = "";
label = true;
round = true;
pollingInterval = 1000;
};
cpuTemp = {
icon = "";
label = true;
pollingInterval = 500;
round = true;
showUnit = true;
sensor = "";
};
hypridle = {
label = true;
pollingInterval = 500;
offIcon = "";
offLabel = "OFF";
onIcon = "";
onLabel = "ON";
};
hyprsunset = {
label = true;
pollingInterval = 500;
offIcon = "󰛨";
offLabel = "OFF";
onIcon = "󱩌";
onLabel = "ON";
};
kbLayout = {
icon = "󰌌";
label = true;
labelType = "code";
rightClick = "${pkgs.hyprland}/bin/hyprctl switchxkblayout monsgeek-monsgeek-keyboard next";
};
netstat = {
icon = "󰖟";
label = true;
pollingInterval = 250;
dynamicIcon = true;
round = true;
rateUnit = "auto";
networkInLabel = "";
networkOutLabel = "";
};
power = {
icon = "";
showLabel = true;
leftClick = "menu:powerdropdown";
};
microphone = {
label = true;
mutedIcon = "";
unmutedIcon = "";
leftClick = "menu:audio";
};
ram = {
icon = "";
label = true;
labelType = "percentage";
pollingInterval = 250;
round = true;
};
storage = {
icon = "󰋊";
label = true;
labelType = "percentage";
pollingInterval = 2000;
round = false;
};
submap = {
label = true;
showSubmapName = true;
enabledIcon = "󰌐";
enabledText = "ON";
disabledIcon = "󰌌";
disabledText = "OFF";
};
updates = {
label = true;
autoHide = true;
padZero = true;
pollingInterval = 1440000;
updateCommand = "nix flake update --flake ~/Projects/flake";
icon = {
pending = "󰏗";
updated = "󰏖";
};
};
weather = {
label = true;
unit = "metric";
};
};
};
menus = {
transition = "crossfade";
transitionTime = 200;
clock = {
time = {
military = false;
hideSeconds = true;
};
weather = {
enabled = true;
location = "Yelabuga";
unit = "metric";
key = "ac3df6535cac4448a4c83337252702";
};
};
dashboard = {
shortcuts = {
left = {
shortcut1 = {
command = "${pkgs.google-chrome}/bin/google-chrome-stable";
icon = "";
tooltip = "Google Chrome";
};
shortcut2 = {
command = "spotify";
icon = "";
tooltip = "Spotify";
};
shortcut3 = {
command = "${pkgs.discord}/bin/discord";
icon = "";
tooltip = "Discord";
};
shortcut4 = {
command = "ayugram-desktop";
icon = "";
tooltip = "Telegram";
};
};
right = {
shortcut1 = {
command = "${pkgs.fuzzel}/bin/fuzzel";
icon = "";
tooltip = "Search";
};
shortcut3 = {
command = "sleep 2; ${pkgs.grimblast}/bin/grimblast --notify --freeze copysave area /home/hand7s/Pictures/Screenshots/$(date '+%y%m%d_%H-%M-%s').png";
icon = "󰄀";
tooltip = "Screenshot";
};
};
};
stats = {
enable_gpu = false;
enabled = true;
interval = 1000;
};
directories = {
enabled = true;
};
powermenu = {
avatar = {
image = "/home/hand7s/Pictures/pfp.jpg";
name = "system";
};
};
};
media = {
displayTime = true;
displayTimeTooltip = true;
noMediaText = "-";
hideAlbum = false;
hideAuthor = false;
};
power = {
confirmation = true;
showLabel = true;
logout = "${pkgs.hyprland}hyprctl dispatch exit";
reboot = "${pkgs.systemd}/bin/systemctl reboot";
shutdown = "${pkgs.systemd}/bin/systemctl poweroff";
sleep = "${pkgs.systemd}/bin/systemctl suspend";
};
volume = {
raiseMaximumVolume = false;
};
};
notifications = {
active_monitor = true;
cache_actions = true;
clearDelay = 50;
displayedTotal = 5;
showActionsOnHover = true;
timeout = 5000;
};
theme = {
matugen = false;
matugen_settings = {
contrast = 0;
mode = "dark";
scheme_type = "monochrome";
variation = "standard_1";
};
font = {
name = "Hack Font Nerd Regular";
size = "16px";
weight = 600;
};
bar = {
transparent = false;
floating = true;
layer = "top";
location = "top";
margin_bottom = "0";
margin_sides = "20px";
margin_top = "20px";
border_radius = "10px";
border = {
location = "full";
width = "2px";
};
buttons = {
enableBorders = false;
monochrome = false;
style = "default";
};
};
osd = {
enable = true;
active_monitor = true;
duration = 2500;
location = "right";
margins = "5px 5px 5px 5px";
muted_zero = false;
radius = "10px";
};
};
wallpaper = {
enable = false;
pywal = false;
image = "";
};
};
};
};
}

10
hand7s/programs/index.nix Normal file
View file

@ -0,0 +1,10 @@
{
...
}: {
programs = {
nix-index = {
enable = true;
enableFishIntegration = true;
};
};
}

9
hand7s/programs/mpv.nix Normal file
View file

@ -0,0 +1,9 @@
{
...
}: {
programs = {
mpv = {
enable = true;
};
};
}

View file

@ -0,0 +1,22 @@
{
config,
pkgs,
lib,
...
}: {
programs = {
obs-studio = {
enable = lib.mkIf (
config.home.gui.sessionType == "Hyprland"
) true;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
waveform
obs-vkcapture
obs-pipewire-audio-capture
obs-webkitgtk
];
};
};
}

View file

@ -0,0 +1,19 @@
{
lib,
pkgs,
inputs,
...
}: {
programs = {
spicetify = {
enabledExtensions = with inputs.spicetify-nix.legacyPackages.${pkgs.system}.extensions; [
adblock
hidePodcasts
shuffle
];
theme = lib.mkForce inputs.spicetify-nix.legacyPackages.${pkgs.system}.themes.text;
colorScheme = lib.mkForce "Spotify";
};
};
}

View file

@ -0,0 +1,55 @@
{
...
}: {
programs = {
starship = {
enable = true;
enableFishIntegration = true;
settings = {
add_newline = true;
format = ''
[](bold blue) $hostname $os
[](bold blue) $directory$git_branch$git_commit$git_state$git_metrics$git_status
[>](bold blue)
'';
right_format = ''$cmd_duration ($character) at $time'';
os = {
format = "on [($name $codename$version$edition $symbol )]($style)";
style = "bold blue";
disabled = false;
};
hostname = {
ssh_only = false;
format = "[$hostname]($style)";
style = "bold red";
disabled = false;
};
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
};
time = {
disabled = false;
format = " [$time]($style)";
time_format = "%H:%M";
utc_time_offset = "local";
style = "pale blue";
};
cmd_duration = {
disabled = false;
min_time = 250;
show_milliseconds = false;
show_notifications = false;
format = "was [$duration](bold green)";
};
};
};
};
}

View file

@ -0,0 +1,17 @@
{
config,
lib,
...
}: {
programs = {
swaylock = {
enable = lib.mkIf (
config.home.gui.sessionType == "Sway"
) true;
settings = {
show-failed-attempts = true;
};
};
};
}

View file

@ -0,0 +1,45 @@
{
lib,
pkgs,
...
}: {
programs = {
vscode = {
profiles = {
default = {
extensions = with pkgs.vscode-extensions; [
jnoortheen.nix-ide
ms-vscode-remote.vscode-remote-extensionpack
ms-vsliveshare.vsliveshare
redhat.vscode-yaml
redhat.ansible
];
userSettings = lib.mkForce {
"editor.fontFamily" = "'Hack Nerd Font'";
"editor.fontSize" = 16;
"editor.cursorBlinking" = "smooth";
"editor.cursorSmoothCaretAnimation" = "on";
"editor.wordWrap" = "on";
"workbench.colorTheme" = "Blazing Red";
"workbench.sideBar.location" = "right";
"workbench.activityBar.location" = "top";
"workbench.editor.editorActionsLocation" = "titleBar";
"workbench.editor.showTabs" = "none";
"window.menuBarVisibility" = "hidden";
"files.autoSave" = "afterDelay";
"[nix]" = {
"editor.insertSpaces" = true;
"editor.tabSize" = 4;
};
};
};
};
};
};
}

1949
hand7s/programs/yambar.nix Normal file

File diff suppressed because it is too large Load diff

61
hand7s/programs/yazi.nix Normal file
View file

@ -0,0 +1,61 @@
{
pkgs,
...
}: {
programs = {
yazi = {
enable = true;
enableFishIntegration = true;
shellWrapperName = "yz";
settings = {
manager = {
sort_by = "natural";
sort_sensitive = true;
sort_reverse = false;
sort_translit = true;
linemode = "size";
show_hidden = true;
show_symlink = true;
};
preview = {
tab_size = 4;
image_filter = "lanczos3";
image_quality = 90;
};
opener = {
play = [
{
run = "${pkgs.mpv}/bin/mpv ''$@''";
block = true;
for = "unix";
}
];
edit = [
{
run = "${pkgs.helix}/bin/hx ''$@''";
block = true;
for = "unix";
}
];
open = [
{
run = "${pkgs.xdg-utils}/bin/xdg-open ''$@''";
block = true;
for = "unix";
}
];
};
input = {
cursor_blink = true;
};
};
};
};
}

View file

@ -0,0 +1,10 @@
{
...
}: {
programs = {
zoxide = {
enable = true;
enableFishIntegration = true;
};
};
}

7
hand7s/qt/qt.nix Normal file
View file

@ -0,0 +1,7 @@
{
...
}: {
qt = {
enable = true;
};
}

View file

@ -0,0 +1,39 @@
{
config,
pkgs,
lib,
...
}: {
services = {
hypridle = {
enable = lib.mkIf (
config.home.gui.sessionType == "Hyprland"
) true;
settings = {
general = {
before_sleep_cmd = "${pkgs.hyprland}/bin/hyprctl dispatch dpms off";
after_sleep_cmd = "${pkgs.hyprland}/bin/hyprctl dispatch dpms on";
};
listener = [
{
timeout = 300;
on-timeout = "${pkgs.brightnessctl}/bin/brightnessctl -s set 10";
on-resume = "${pkgs.brightnessctl}/bin/brightnessctl -r";
}
{
timeout = 600;
on-timeout = "${pkgs.hyprlock}/bin/hyprlock";
}
{
timeout = 900;
on-timeout = "${pkgs.systemd}/bin/systemctl suspend";
}
];
};
};
};
}

View file

@ -0,0 +1,49 @@
{
config,
pkgs,
lib,
...
}: {
services = {
swayidle = {
enable = lib.mkIf (
config.home.gui.sessionType == "Sway"
) true;
events = [
{
event = "lock";
command = "${pkgs.swaylock}/bin/swaylock";
}
{
event = "before-sleep";
command = "${pkgs.sway}/bin/swaymsg 'output * power off'";
}
{
event = "after-resume";
command = "${pkgs.sway}/bin/swaymsg 'output * power on'";
}
];
timeouts = [
{
timeout = 300;
command = "${pkgs.brightnessctl}/bin/brightnessctl -s set 10";
resumeCommand = "${pkgs.brightnessctl}/bin/brightnessctl -r";
}
{
timeout = 600;
command = "${pkgs.swaylock}/bin/swaylock";
}
{
timeout = 900;
command = "${pkgs.systemd}/bin/systemctl suspend";
}
];
};
};
}

54
hand7s/standalone.nix Normal file
View file

@ -0,0 +1,54 @@
{
imports = [
./fonts/fonts.nix
./options/gui.nix
./wayland/hyprland.nix
./wayland/river.nix
./nix/settings/substituters.nix
./nix/settings/trusted-public-keys.nix
./nix/package.nix
./stylix/base16Scheme.nix
./stylix/cursor.nix
./stylix/defaults.nix
./stylix/fonts.nix
./stylix/image.nix
./nixpkgs/config.nix
./nixpkgs/overlays.nix
./home/defaults.nix
./home/gui.nix
./home/keyboard.nix
./home/packages.nix
./home/shellAliases.nix
./services/hypridle.nix
./systemd/hyprpanel-service.nix
./systemd/hyprpolkitagent-service.nix
./programs/bat.nix
./programs/eza.nix
./programs/fish.nix
./programs/fzf.nix
./programs/ghostty.nix
./programs/git.nix
./programs/helix.nix
./programs/index.nix
./programs/obs-studio.nix
./programs/starship.nix
./programs/yazi.nix
./programs/zoxide.nix
./programs/chrome.nix
./programs/fuzzel.nix
./programs/hyprlock.nix
./programs/hyprpanel.nix
./programs/spicetify.nix
./programs/vscode.nix
./programs/waybar.nix
./programs/wlogout.nix
];
}

View file

@ -0,0 +1,34 @@
{
...
}: {
stylix = {
base16Scheme = {
base00 = "2a1617";
base01 = "5d3f3f";
base02 = "7a5bab";
base03 = "bb9499";
base04 = "eea1cf";
base05 = "f5dddd";
base06 = "ffebff";
base07 = "ffede9";
base08 = "e36b70";
base09 = "ac878e";
base0A = "db7356";
base0B = "a78897";
base0C = "ca7a79";
base0D = "b28776";
base0E = "d8708b";
base0F = "ec6653";
base10 = "2a1617";
base11 = "2a1617";
base12 = "e36b70";
base13 = "ac878e";
base14 = "a78897";
base15 = "ca7a79";
base16 = "b28776";
base17 = "d8708b";
scheme = "hand7s";
name = "red_ish";
};
};
}

11
hand7s/stylix/cursor.nix Normal file
View file

@ -0,0 +1,11 @@
{
pkgs,
...
}: {
stylix = {
cursor = {
name = "Whitesur-cursors";
package = pkgs.whitesur-cursors;
};
};
}

View file

@ -0,0 +1,9 @@
{
...
}: {
stylix = {
enable = true;
autoEnable = true;
polarity = "dark";
};
}

35
hand7s/stylix/fonts.nix Normal file
View file

@ -0,0 +1,35 @@
{
pkgs,
...
}: {
stylix = {
fonts = {
sizes = {
applications = 10;
desktop = 8;
popups = 10;
terminal = 8;
};
monospace = {
package = pkgs.nerd-fonts.roboto-mono;
name = "Roboto-Mono Nerd Font";
};
emoji = {
package = pkgs.nerd-fonts.symbols-only;
name = "Symbols Only Nerd Font";
};
sansSerif = {
package = pkgs.nerd-fonts.aurulent-sans-mono;
name = "Aurulent Sans Mono Nerd Font";
};
serif = {
package = pkgs.nerd-fonts.hack;
name = "Hack Nerd Font";
};
};
};
}

7
hand7s/stylix/image.nix Normal file
View file

@ -0,0 +1,7 @@
{
...
}: {
stylix = {
image = ./wallpaper.jpg;
};
}

BIN
hand7s/stylix/wallpaper.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

View file

@ -0,0 +1,29 @@
{
pkgs,
...
}: {
systemd = {
user = {
services = {
hyprpanel = {
Unit = {
Description = "Hyprpanel service.";
WantedBy = "graphical-session.target";
};
Service = {
ExecStart = "${pkgs.hyprpanel}/bin/hyprpanel";
Restart = "always";
RestartSec = 1;
};
Install = {
After = "graphical-session.target";
ConditionEnvironment = "WAYLAND_DISPLAY";
PartOf = "graphical-session.target";
};
};
};
};
};
}

View file

@ -0,0 +1,29 @@
{
pkgs,
...
}: {
systemd = {
user = {
services = {
hyprpolkitagent = {
Unit = {
Description = "Hyprpolkitagent service.";
WantedBy = "graphical-session.target";
};
Service = {
ExecStart = "${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent";
Restart = "always";
RestartSec = 10;
};
Install = {
After = "graphical-session.target";
ConditionEnvironment = "WAYLAND_DISPLAY";
PartOf = "graphical-session.target";
};
};
};
};
};
}

View file

@ -0,0 +1,29 @@
{
pkgs,
...
}: {
systemd = {
user = {
services = {
yambar = {
Unit = {
Description = "Yambar service.";
WantedBy = "graphical-session.target";
};
Service = {
ExecStart = "${pkgs.yambar}/bin/yambar";
Restart = "always";
RestartSec = 1;
};
Install = {
After = "graphical-session.target";
ConditionEnvironment = "WAYLAND_DISPLAY";
PartOf = "graphical-session.target";
};
};
};
};
};
}

238
hand7s/wayland/hyprland.nix Normal file
View file

@ -0,0 +1,238 @@
{
inputs,
config,
pkgs,
lib,
...
}: {
wayland = {
windowManager = {
hyprland = {
enable = lib.mkIf (
config.home.gui.sessionType == "Hyprland"
) true;
settings = {
monitor = ", 2560x1440@165.00Hz, 0x0, 1";
general = {
gaps_in = "5";
gaps_out = "20";
border_size = "2";
layout = "dwindle";
snap = {
enabled = true;
window_gap = "5";
monitor_gap = "5";
border_overlap = false;
};
};
input = {
kb_layout = "us, ru";
kb_options = "grp:caps_toggle";
numlock_by_default = true;
follow_mouse = "1";
left_handed = true;
sensitivity = "0";
special_fallthrough = true;
focus_on_close = 1;
touchpad = {
disable_while_typing = true;
tap-to-click = true;
};
tablet = {
output = "current";
left_handed = true;
};
};
gestures = {
workspace_swipe = true;
workspace_swipe_fingers = true;
workspace_swipe_distance = 400;
};
group = {
auto_group = true;
insert_after_current = true;
focus_removed_window = true;
drag_into_group = "2";
merge_groups_on_drag = true;
merge_groups_on_groupbar = true;
group_on_movetoworkspace = true;
groupbar = {
enabled = true;
};
};
decoration = {
active_opacity = "0.85";
inactive_opacity = "0.65";
fullscreen_opacity = "1.0";
rounding = "10";
dim_inactive = true;
dim_strength = "0.15";
dim_special = "0.0";
dim_around = "0.05";
shadow = {
enabled = true;
render_power = "4";
range = "4";
ignore_window = false;
};
blur = {
enabled = true;
size = "10";
passes = "5";
};
};
exec-once = [
"${pkgs.systemd}/bin/systemctl --user start hyprpaper.service"
"${pkgs.systemd}/bin/systemctl --user start hypridle.service"
"${pkgs.systemd}/bin/systemctl --user start hyprpolkitagent.service"
"${pkgs.systemd}/bin/systemctl --user start hyprpanel.service"
];
bind = [
"ALT, return, exec, ${pkgs.ghostty}/bin/ghostty"
"ALT, Q, killactive,"
"ALT, S, exec, ${pkgs.fuzzel}/bin/fuzzel"
"ALT, F, fullscreen, 0"
"ALT, L, exec, ${pkgs.hyprlock}/bin/hyprlock"
"ALT SHIFT, E, exit,"
"ALT SHIFT, space, togglefloating, active"
"ALT SHIFT, S, exec, ${pkgs.grimblast}/bin/grimblast --notify --freeze copysave area /home/hand7s/Pictures/Screenshots/$(date '+%y%m%d_%H-%M-%s').png"
"ALT, left, movefocus, l"
"ALT, right, movefocus, r"
"ALT, up, movefocus, u"
"ALT, down, movefocus, d"
"ALT, 1, workspace, 1"
"ALT, 2, workspace, 2"
"ALT, 3, workspace, 3"
"ALT, 4, workspace, 4"
"ALT, 5, workspace, 5"
"ALT, 6, workspace, 6"
"ALT, 7, workspace, 7"
"ALT, 8, workspace, 8"
"ALT, 9, workspace, 9"
"ALT, 0, workspace, 0"
"ALT, H, togglespecialworkspace, special"
"ALT SHIFT, 1, movetoworkspace, 1"
"ALT SHIFT, 2, movetoworkspace, 2"
"ALT SHIFT, 3, movetoworkspace, 3"
"ALT SHIFT, 4, movetoworkspace, 4"
"ALT SHIFT, 5, movetoworkspace, 5"
"ALT SHIFT, 6, movetoworkspace, 6"
"ALT SHIFT, 7, movetoworkspace, 7"
"ALT SHIFT, 8, movetoworkspace, 8"
"ALT SHIFT, 9, movetoworkspace, 9"
"ALT SHIFT, 0, movetoworkspace, 0"
"ALT SHIFT, H, movetoworkspace, special"
"ALT, mouse_down, workspace, e+1"
"ALT, mouse_up, workspace, e-1"
];
bindel = [
", XF86AudioRaiseVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
", XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl set 5%-"
", XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl set +5%"
];
bindl = [
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous"
", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next"
", XF86AudioMute, exec, ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
"ALT, TAB, hyprexpo:expo, toggle"
];
bindm = [
"ALT, mouse:272, movewindow"
"ALT, mouse:273, resizewindow"
];
animation = [
"enabled = true"
"bezier = bez, 0.05, 0.9, 0.1, 1.05"
"animation = windows, 1, 7, bez"
"animation = windowsOut, 1, 7, default, popin 80%"
"animation = border, 1, 10, default"
"animation = borderangle, 1, 10, default"
"animation = fade, 1, 7, default"
"animation = workspaces, 1, 7, default"
];
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
middle_click_paste = false;
animate_manual_resizes = true;
animate_mouse_windowdragging = true;
focus_on_activate = true;
close_special_on_empty = true;
initial_workspace_tracking = "2";
};
binds = {
workspace_back_and_forth = true;
allow_workspace_cycles = true;
workspace_center_on = true;
};
xwayland = {
enabled = true;
use_nearest_neighbor = true;
force_zero_scaling = false;
};
ecosystem = {
no_update_news = true;
no_donation_nag = true;
};
debug = {
suppress_errors = true;
};
plugin = {
hyprexpo = {
columns = 3;
gap_size = 5;
enable_gesture = true;
gesture_fingers = 3;
gesture_distance = 300;
gesture_positive = false;
};
};
};
plugins = with inputs; [
# inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo
];
};
};
};
}

113
hand7s/wayland/river.nix Normal file
View file

@ -0,0 +1,113 @@
{
config,
pkgs,
lib,
...
}: {
wayland = {
windowManager = {
river = {
enable = lib.mkIf (
config.home.gui.sessionType == "River"
) true;
settings = {
default-layout = "rivertile";
focus-follows-cursor = "normal";
border-width = 2;
declare-mod = [
"locked"
"normal"
];
xwayland = {
enable = true;
};
map = {
normal = {
"Alt Q" = "close";
"Alt S" = "spawn fuzzel";
"Alt Return" = "spawn ghostty";
"Alt L" = "spawn hyprlock";
"Alt F" = "toggle-fullscreen";
"Alt+Shift S" = "spawn wayshot --clipboard";
"Alt+Shift E" = "exit";
"Alt+Shift Space" = "toggle-float";
"Alt Up" = "send-to-output next";
"Alt Down" = "send-to-output previous";
"Alt Right" = "send-to-output next";
"Alt Left" = "send-to-output previous";
"Alt 1" = "set-focused-tags 0";
"Alt 2" = "set-focused-tags 1";
"Alt 3" = "set-focused-tags 2";
"Alt 4" = "set-focused-tags 3";
"Alt 5" = "set-focused-tags 4";
"Alt 6" = "set-focused-tags 5";
"Alt 7" = "set-focused-tags 6";
"Alt 8" = "set-focused-tags 7";
"Alt 9" = "set-focused-tags 8";
"Alt H" = "toggle-focused-tags 20";
"Alt+Shift 1" = "set-view-tags 0";
"Alt+Shift 2" = "set-view-tags 1";
"Alt+Shift 3" = "set-view-tags 2";
"Alt+Shift 4" = "set-view-tags 3";
"Alt+Shift 5" = "set-view-tags 4";
"Alt+Shift 6" = "set-view-tags 5";
"Alt+Shift 7" = "set-view-tags 6";
"Alt+Shift 8" = "set-view-tags 7";
"Alt+Shift 9" = "set-view-tags 8";
"Alt+Shift H" = "set-view-tags 20";
"Alt+Control 1" = "toggle-focused-tags 0";
"Alt+Control 2" = "toggle-focused-tags 1";
"Alt+Control 3" = "toggle-focused-tags 2";
"Alt+Control 4" = "toggle-focused-tags 3";
"Alt+Control 5" = "toggle-focused-tags 4";
"Alt+Control 6" = "toggle-focused-tags 5";
"Alt+Control 7" = "toggle-focused-tags 6";
"Alt+Control 8" = "toggle-focused-tags 7";
"Alt+Control 9" = "toggle-focused-tags 8";
"Alt+Control H" = "toggle-focused-tags 20";
"Alt+Shift+Control 1" = "toggle-view-tags 0";
"Alt+Shift+Control 2" = "toggle-view-tags 1";
"Alt+Shift+Control 3" = "toggle-view-tags 2";
"Alt+Shift+Control 4" = "toggle-view-tags 3";
"Alt+Shift+Control 5" = "toggle-view-tags 4";
"Alt+Shift+Control 6" = "toggle-view-tags 5";
"Alt+Shift+Control 7" = "toggle-view-tags 6";
"Alt+Shift+Control 8" = "toggle-view-tags 7";
"Alt+Shift+Control 9" = "toggle-view-tags 8";
"Alt+Shift+Control H" = "toggle-view-tags 20";
};
spawn = [
"${pkgs.systemd}/bin/systemctl --user start hyprpaper.service"
"${pkgs.systemd}/bin/systemctl --user start hyprpolkitagent.service"
"${pkgs.yambar}/bin/yambar"
"${pkgs.wayidle}/bin/wayidle -t=300 ${pkgs.brightnessctl}/bin/brightnessctl -s set 10"
"${pkgs.wayidle}/bin/wayidle -t=600 ${pkgs.waylock}/bin/waylock"
];
map-pointer = {
normal = {
"Alt BTN_LEFT" = "move-view";
"Alt BTN_RIGHT" = "resize-view";
};
};
};
};
extraConfig = ''
riverctl keyboard-layout -options "grp:caps_toggle" "us,ru"
'';
};
};
};
}

183
hand7s/wayland/sway.nix Normal file
View file

@ -0,0 +1,183 @@
{
config,
pkgs,
lib,
...
}: {
wayland = {
windowManager = {
sway = {
enable = lib.mkIf (
config.home.gui.sessionType == "Sway"
) true;
package = pkgs.sway;
config = {
bindkeysToCode = true;
defaultWorkspace = "workspace number 1";
workspaceAutoBackAndForth = true;
bars = [];
window = {
border = 2;
titlebar = false;
hideEdgeBorders = "both";
};
floating = {
border = 2;
titlebar = false;
modifier = "Mod1";
};
focus = {
forceWrapping = true;
mouseWarping = true;
followMouse = "always";
newWindow = "smart";
wrapping = "yes";
};
gaps = {
vertical = null;
horizontal = null;
outer = null;
inner = null;
top = null;
bottom = null;
left = null;
right = null;
smartGaps = false;
smartBorders = "no_gaps";
};
startup = [
{
command = "${pkgs.systemd}/bin/systemctl --user start hyprpaper.service";
}
{
command = "${pkgs.systemd}/bin/systemctl --user start hypridle.service";
}
{
command = "${pkgs.systemd}/bin/systemctl --user start hyprpolkitagent.service";
}
{
command = "${pkgs.sway-audio-idle-inhibit}/bin/sway-audio-idle-inhibit";
}
{
command = "${pkgs.autotiling-rs}/bin/autotiling-rs";
}
{
command = "${pkgs.swaykbdd}/bin/swaykbdd";
}
{
command = "${pkgs.yambar}/bin/yambar";
}
];
keybindings = lib.mkOptionDefault {
"Mod1+q" = "kill";
"Mod1+s" = "exec ${pkgs.fuzzel}/bin/fuzzel";
"Mod1+Return" = "exec ${pkgs.ghostty}/bin/ghostty";
"Mod1+l" = "exec ${pkgs.swaylock}/bin/swaylock";
"Mod1+f" = "fullscreen toggle";
"Mod1+Shift+s" = "exec ${pkgs.sway-contrib.grimshot}/bin/grimshot --notify copy area /home/hand7s/Pictures/Screenshots/$(date '+%y%m%d_%H-%M-%s').png";
"Mod1+Shift+e" = "exec ${pkgs.sway}/bin/swaymsg exit";
"Mod1+Space" = "floating toggle";
"Mod1+r" = "mode resize";
"Mod1+Left" = "focus left";
"Mod1+Right" = "focus right";
"Mod1+Up" = "focus up";
"Mod1+Down" = "focus down";
"Mod1+1" = "workspace number 1";
"Mod1+2" = "workspace number 2";
"Mod1+3" = "workspace number 3";
"Mod1+4" = "workspace number 4";
"Mod1+5" = "workspace number 5";
"Mod1+6" = "workspace number 6";
"Mod1+7" = "workspace number 7";
"Mod1+8" = "workspace number 8";
"Mod1+9" = "workspace number 9";
"Mod1+0" = "workspace number 10";
"Mod1+h" = "scratchpad show";
"Mod1+Shift+1" = "move container to workspace number 1";
"Mod1+Shift+2" = "move container to workspace number 2";
"Mod1+Shift+3" = "move container to workspace number 3";
"Mod1+Shift+4" = "move container to workspace number 4";
"Mod1+Shift+5" = "move container to workspace number 5";
"Mod1+Shift+6" = "move container to workspace number 6";
"Mod1+Shift+7" = "move container to workspace number 7";
"Mod1+Shift+8" = "move container to workspace number 8";
"Mod1+Shift+9" = "move container to workspace number 9";
"Mod1+Shift+0" = "move container to workspace number 10";
"Mod1+Shift+h" = "move scratchpad";
"XF86AudioRaiseVolume" = "exec ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+";
"XF86AudioLowerVolume" = "exec ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-";
"XF86AudioMute" = "exec ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
"XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set 5%-";
"XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set +5%";
};
modes = {
resize = {
"Left" = "resize shrink width 10px";
"Right" = "resize shrink width 10px";
"Up" = "resize shrink height 10px";
"Down" = "resize shrink height 10px";
"Shift+Left" = "resize grow width 10px";
"Shift+Right" = "resize grow width 10px";
"Shift+Up" = "resize grow height 10px";
"Shift+Down" = "resize grow height 10px";
"Escape" = "mode default";
"Return" = "mode default";
};
};
input = {
"type:pointer" = {
accel_profile = "flat";
pointer_accel = "0";
};
"type:keyboard" = {
xkb_layout = "us,ru";
xkb_options = "grp:caps_toggle";
};
"type:touchpad" = {
natural_scroll = "enabled";
tap = "enabled";
};
};
};
extraConfig = ''
bindswitch lid:on exec swaylock
'';
};
};
};
}