{ config, pkgs, ... }: { home.username = "th3r00t"; home.homeDirectory = "/home/th3r00t"; home.file.".local/usr/bin" = { source = ./home/.local/usr/bin; recursive = true; executable = true; }; home.file.".local/usr/lib/blightmud" = { source = ./home/.local/usr/lib/blightmud; recursive = true; executable = true; }; home.file.".config/nvim" = { source = ./home/config/nvim; recursive = true; executable = true; }; home.file.".irssi" = { source = ./home/.irssi; recursive = true; executable = true; }; home.file.".config/dosbox-x" = { source = ./home/config/dosbox-x; recursive = true; executable = true; }; home.file.".config/waybar/power_menu.xml" = { source = ./home/config/waybar/power_menu.xml; recursive = true; executable = true; }; home.file.".ssh/allowed_signers".text = '' * ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH8P/3yzsruekSaZ9b+yk429VTcfCtI1j8jnkNbPAgnr th3r00t@nixos ''; xdg.enable = true; programs.nix-index.enable = true; home.packages = with pkgs; [ mesa-demos bluez bluez-tools bluez-alsa fastfetch ranger zip unzip xz p7zip ripgrep jq ripgrep eza fzf tmux cowsay lolcat fortune gnused gnutar gnupg hugo bat which nix-output-monitor devenv irssi luarocks lua5_1 gimp lua-language-server go nodejs uv readline cachix sqlite rofi qutebrowser foot vifm-full ranger zoxide ( python313.withPackages ( python-pkgs: [ python-pkgs.prompt_toolkit python-pkgs.pygments python-pkgs.pynvim python-pkgs.pudb python-pkgs.ptpython python-pkgs.ipython ] ) ) neovim zig nodejs go syncthing dosbox-x lazygit wofi qutebrowser waybar uwsm gopls pyright ncurses rustup wayvnc ]; programs.wofi = { enable = true; settings = { location = "top-center"; allow_markup = true; width = 400; }; style = '' /* Base */ window { background-color: rgba(17, 24, 39, 0.6); box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1); border-radius: 1rem; font-size: 1rem; } window #outer-box { } window #outer-box #input { background-color: rgba(17,24,39,0.6); color: #c0caf5; border: none; border-bottom: 1px solid rgba(17,24,39,0.2); padding: 0.8rem 1rem; font-size: 1rem; border-radius: 1rem 1rem 0 0; } /* focus states (no #window!) */ window #outer-box #input:focus, window #outer-box #input:focus-visible, window #outer-box #input:active { border: none; outline: 2px solid transparent; outline-offset: 2px; } window #outer-box #scroll { } window #outer-box #scroll #inner-box { } window #outer-box #scroll #inner-box #entry { color: #c0caf5; background-color: rgba(17,24,39,0.1); padding: 0.6rem 1rem; } window #outer-box #scroll #inner-box #entry #img { width: 1rem; margin-right: 0.5rem; } window #outer-box #scroll #inner-box #entry:selected { color: #c0caf5; background-color: rgba(38,50,56,0.1); outline: none; } ''; }; programs.neovim.plugins = [ pkgs.vimPlugins.nvim-treesitter.withAllGrammars ]; programs.taskwarrior = { enable = true; }; services.syncthing = { enable = true; }; programs.ranger = { enable = true; extraConfig = '' ''; extraPackages = [ ]; mappings = { Q = "quitall"; q = "quit"; }; plugins = [ { name = "zoxide"; src = builtins.fetchGit { url = "https://github.com/jchook/ranger-zoxide.git"; rev = "363df97af34c96ea873c5b13b035413f56b12ead"; }; } { name = "tmux"; src = builtins.fetchGit { url = "https://github.com/joouha/ranger_tmux.git"; rev = "05ba5ddf2ce5659a90aa0ada70eb1078470d972a"; }; } ]; settings = { column_ratios = "1,3,3"; confirm_on_delete = "never"; scroll_offset = 8; unicode_ellipsis = true; }; }; programs.fzf = { enable = true; tmux.enableShellIntegration = true; enableZshIntegration = true; colors = { fg = "#d0d0d0"; bg = "#24283b"; hl = "#5f87af"; "fg+" = "#d0d0d0"; "bg+" = "#414868"; "hl+" = "#5fd7ff"; info = "#afaf87"; prompt = "#d7005f"; pointer = "#af5fff"; marker = "#87ff00"; spinner = "#af5fff"; header = "#87afaf"; }; }; programs.tmux = { enable = true; baseIndex = 1; clock24 = true; disableConfirmationPrompt = true; keyMode = "vi"; mouse = true; newSession = true; plugins = with pkgs; [ tmuxPlugins.cpu { plugin = tmuxPlugins.resurrect; extraConfig = "set -g @resurrect-strategy-nvim 'session'"; } { plugin = tmuxPlugins.continuum; extraConfig = '' set -g @continuum-restore 'on' set -g @continuum-save-interval '60' ''; } tmuxPlugins.yank tmuxPlugins.vim-tmux-navigator tmuxPlugins.vim-tmux-focus-events tmuxPlugins.urlview { plugin = tmuxPlugins.tokyo-night-tmux; extraConfig = '' set -g @tokyo-night-tmux_window_id_style digital set -g @tokyo-night-tmux_pane_id_style hsquare set -g @tokyo-night-tmux_zoom_id_style dsquare set -g @tokyo-night-tmux_show_netspeed 1 set -g @tokyo-night-tmux_netspeed_iface "wlp2s0" # Detected via default route set -g @tokyo-night-tmux_netspeed_showip 1 # Display IPv4 address (default 0) set -g @tokyo-night-tmux_netspeed_refresh 1 # Update interval in seconds (default 1) set -g @tokyo-night-tmux_show_path 1 set -g @tokyo-night-tmux_path_format relative # 'relative' or 'full' set -g @tokyo-night-tmux_show_battery_widget 1 set -g @tokyo-night-tmux_battery_name "BAT0" # some linux distro have 'BAT0' set -g @tokyo-night-tmux_battery_low_threshold 21 # default ''; } tmuxPlugins.tmux-fzf # { # plugin = tmuxPlugins.tilish; # extraConfig = '' # set -g @tilish-navigator 'on' # set -g @tilish-default 'main-vertical' # set -g @tilish-enforce 'none' # set -g escape-time 0 # set -g @tilish-dmenu 'on' # ''; # } ]; prefix = "C-a"; shell = "${pkgs.zsh}/bin/zsh"; # terminal = "xterm-kitty:RGB"; tmuxinator.enable = true; extraConfig = '' set-option -g update-environment "DISPLAY XAUTHORITY WAYLAND_DISPLAY XDG_RUNTIME_DIR HYPRLAND_INSTANCE_SIGNATURE" set -g focus-events on set -g escape-time 3 set-option -g status-position top set-option -as terminal-features 'foot:RGB' set -g default-terminal 'tmux-256color' bind-key b choose-tree -Z "run-shell 'tmux swap-pane -s %%'" # bind C-p display-popup -E -w 60% -h 70% 'tmuxsessions.sh' bind C-p run-shell 'tmuxsessions.sh' bind C-d run-shell 'dotfile-picker.sh' bind [ run-shell 'project-picker.sh' # bind C-c display-popup -E -w 50% -h 50% 'nvim +":cd ~/org" ~/org/refile.norg' # bind C-c display-popup -E -w 50% -h 50% 'nvim +"VimwikiIndex" bind C-c display-popup -E -w 40% -h 60% "pytui -n" # bind C-w display-popup -E -w 40% -h 60% "pytui -D" bind C-o display-popup -E -w 50% -h 50% 'igrep ~/wiki/notes' bind j run-shell 'popuptmux' bind r source-file ~/.config/tmux/tmux.conf \; display "Reloaded!" bind i split-window -v -c '\ #{pane_current_path}' 'emojicherrypick.py --menu fzf\ ' bind-key -n F4 run-shell 'ranger' # bind-key -n C-e split-window -v -c '\ #{pane_current_path}' 'vifm\' bind-key -n C-f split-window 'ranger .' bind F3 send-keys 'igrep .' C-m ''; }; programs.git = { enable = true; userName = "th3r00t"; userEmail = "tty303@proton.me"; extraConfig = { commit.gpgSign = true; gpg.format = "ssh"; gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers"; user.signingkey = "~/.ssh/id_ed25519.pub"; }; }; programs.direnv = { enable = true; enableZshIntegration = true; nix-direnv.enable = true; }; programs.foot = { enable = true; server.enable = true; settings = { main = { term = "foot"; font = "SauceCodePro Nerd Font Mono:size=6"; dpi-aware = "yes"; shell = "${pkgs.zsh}/bin/zsh"; }; mouse = { hide-when-typing = "yes"; }; cursor = { style = "block"; blink = "yes"; }; colors = { alpha = "0.7"; background="1a1b26"; foreground="a9b1d6"; flash="ff9e64"; flash-alpha="0.5"; regular0="1a1b26"; regular1="f7768e"; regular2="9ece6a"; regular3="e0af68"; regular4="7aa2f7"; regular5="bb9af7"; regular6="7dcfff"; regular7="c0caf5"; bright0="545c7e"; bright1="ff7a93"; bright2="b9f27c"; bright3="ff9e64"; bright4="7aa2f7"; bright5="bb9af7"; bright6="7dcfff"; bright7="a9b1d6"; sixel0="1a1b26"; sixel1="7aa2f7"; sixel2="f7768e"; sixel3="9ece6a"; sixel4="bb9af7"; sixel5="7dcfff"; sixel6="e0af68"; sixel7="565f89"; sixel8="414868"; sixel9="4e5173"; sixel10="8f5151"; sixel11="4e7652"; sixel12="8a4d8f"; sixel13="4e757a"; sixel14="8a8851"; sixel15="a9b1d6"; selection-foreground="1a1b26"; selection-background="a9b1d6"; jump-labels="1a1b26 e0af68"; scrollback-indicator="1a1b26 7aa2f7"; search-box-no-match="1a1b26 f7768e"; search-box-match="1a1b26 e0af68"; urls="e0af68"; }; }; }; programs.eza = { enable = true; enableBashIntegration = true; enableZshIntegration = true; }; programs.starship = { enable = true; # custom settings settings = { add_newline = false; aws.disabled = true; gcloud.disabled = true; line_break.disabled = true; }; }; programs.zsh = { enable = true; sessionVariables = { PATH="$PATH:$HOME/.local/usr/bin"; PYTHONBREAKPOINT="pudb.set_trace"; }; oh-my-zsh = { enable = true; plugins = [ "git" "colored-man-pages" "colorize" "command-not-found" "compleat" "dirhistory" "fzf" "git-auto-fetch" "git-extras" "git-prompt" "gitignore" "gpg-agent" "history" "jsontools" "man" "nmap" "pip" "python" "ssh-agent" "sudo" "tmux" "vi-mode" "zsh-navigation-tools" ]; # theme = "starship"; }; }; programs.bash = { enable = true; enableCompletion = true; bashrcExtra = '' export PATH="$PATH:$HOME/.local/usr/bin"; ''; shellAliases = { urlencode = "python3 -c 'import sys, urllib.parse as ul; print(ul.quote_plus(sys.stdin.read()))'"; urldecode = "python3 -c 'import sys, urllib.parse as ul; print(il.unquote_plus(sys.stdin.read()))'"; ls = "eza"; cat = "bat"; }; }; wayland.windowManager.hyprland = { enable = true; systemd.enable = true; xwayland.enable = true; plugins = [ # pkgs.hyprlandPlugins.hyprbars ]; settings = { input = { kb_layout = "us"; kb_options = "caps:escape"; touchpad = { natural_scroll = true; }; }; decoration = { rounding = "10"; rounding_power = "2"; active_opacity = "1"; inactive_opacity = ".7"; shadow = { enabled = true; range = "4"; render_power = "3"; color = "rgba(1a1a1aee)"; }; blur = { enabled = true; size = "3"; passes = "1"; vibrancy = "0.1696"; }; }; "$mainMod" = "SUPER"; bindm = [ "$mainMod, mouse:272, movewindow" "$mainMod, mouse:273, resizewindow" "$mainMod ALT, mouse:272, resizewindow" ]; }; extraConfig = '' general { gaps_in = 5 gaps_out = 5 border_size = 1 col.active_border = rgb(b000b5) col.inactive_border = rgb(1f2335) resize_on_border = true allow_tearing = false layout = dwindle } dwindle { pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # You probably want this default_split_ratio = 1.1 force_split = 0 } exec-once = waybar monitor = eDP-1, preferred,0x0,2 # monitor = Virtual-1, 2800x1752@120, 1920x0, 1 $terminal = footclient -e tmux new-session zsh -c '~/.local/usr/bin/tmuxstartup.sh' $fileManager = footclient -T vifm -e vifm $systeminfo = hyprsysteminfo $menu = wofi --show drun $browser = qutebrowser $notes = footclient -T capture -e pytui -n $sysmon = footclient -T system-monitor -e bashtop bind = $mainMod SHIFT, M, exec, hyprvirtmon.py bind = $mainMod SHIFT, Return, exec, $terminal bind = $mainMod, E, exec, $fileManager bind = $mainMod SHIFT, C, killactive bind = $mainMod SHIFT, Q, exit bind = $mainMod, V, togglefloating bind = $mainMod, R, exec, $menu bind = $mainMod, B, exec, $browser bind = $mainMod, M, exec, $sysmon bind = $mainMod CTRL, N, exec, $notes # bind = $mainMod, P, exec, $menu bind = $mainMod, V, togglefloating bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, TAB, togglesplit, # dwindle bind = $mainMod, Y, fullscreen, 1 # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d # Move focus with mainMod + Vim keys bind = $mainMod, H, movefocus, l bind = $mainMod, SEMICOLON, movefocus, r bind = $mainMod, K, movefocus, u bind = $mainMod, J, movefocus, d # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 bind = $mainMod, S, togglespecialworkspace, magic bind = $mainMod SHIFT, S, movetoworkspace, special:magic bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%- # Requires playerctl bindl = , XF86AudioNext, exec, playerctl next bindl = , XF86AudioPause, exec, playerctl play-pause bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioPrev, exec, playerctl previous bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable" bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, preferred,auto,auto" windowrule = float,title:^(capture)$ windowrule = size 800 600,title:^(capture)$ windowrule = float,title:^(system-monitor)$ windowrule = size 1024 768,title:^(system-monitor)$ windowrulev2 = opacity 1.0 override,class:^(firefox)$ # Ignore maximize requests from apps. You'll probably like this. windowrule = suppressevent maximize, class:.* # Fix some dragging issues with XWayland windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 ''; }; programs.waybar = { enable = true; settings = { mainBar = { layer = "top"; position = "top"; height = 30; modules-left = [ "hyprland/workspaces" "hyprland/mode" "hyprland/window" ]; modules-center = [ "clock" ]; modules-right = [ "mpd" "idle_inhibitor" "pulseaudio" "network" "power-profiles-daemon" "cpu" "memory" "temperature" "backlight" "keyboard-state" "battery" "tray" "clock" "custom/power" ]; "hyprland/workspaces" = { format = "{name}"; }; "hyprland/window" = { max-length = 50; }; clock = { format = "{:%Y-%m-%d %H:%M}"; tooltip = false; }; cpu = { format = "{usage}%"; }; memory = { format = "{}%"; }; network = { format-wifi = "{essid} ({signalStrength}%)"; format-ethernet = "{ifname}: {ipaddr}/{cidr}"; }; battery = { format = "{capacity}%"; format-charging = "⚡ {capacity}%"; }; }; }; style = '' * { /* `otf-font-awesome` is required to be installed for icons */ color: #565f89; font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; font-size: 15px; border-radius: 10px; margin: 0px 5px 0px 5px; background-color: #1f2335 } window#waybar { background-color: rgba(43, 48, 59, 0.5); border-bottom: 3px solid rgba(100, 114, 125, 0.5); color: #ffffff; transition-property: background-color; transition-duration: .5s; } window#waybar.hidden { opacity: 0.2; } /* window#waybar.empty { } window#waybar.solo { } */ window#waybar.termite { } window#waybar.chromium { border: none; } button { /* Use box-shadow instead of border so the text isn't offset */ box-shadow: inset 0 -3px transparent; /* Avoid rounded borders under each button name */ border: none; border-radius: 0; } /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ button:hover { background: inherit; box-shadow: inset 0 -3px #ffffff; } /* you can set a style on hover for any module like this */ #workspaces button { padding: 0 5px; background-color: transparent; color: #ffffff; } #workspaces button:hover { background: rgba(0, 0, 0, 0.2); } #workspaces button.focused { background-color: #64727D; box-shadow: inset 0 -3px #ffffff; } #workspaces button.urgent { background-color: #eb4d4b; } #mode { /* background-color: #64727D; */ box-shadow: inset 0 -3px #ffffff; } #clock, #battery, #cpu, #memory, #disk, #temperature, #backlight, #network, #pulseaudio, #wireplumber, #custom-media, #tray, #mode, #idle_inhibitor, #scratchpad, #power-profiles-daemon, #mpd { padding: 0 10px; /* color: #ffffff; */ } #window, #workspaces { margin: 0 4px; } /* If workspaces is the leftmost module, omit left margin */ .modules-left > widget:first-child > #workspaces { margin-left: 0; } /* If workspaces is the rightmost module, omit right margin */ .modules-right > widget:last-child > #workspaces { margin-right: 0; } #clock { /* background-color: #64727D; */ } #battery { /* background-color: #ffffff; */ /* color: #000000; */ } #battery.charging, #battery.plugged { color: #4fd6be; /* background-color: #26A65B; */ } @keyframes blink { to { /* background-color: #ffffff; */ color: #000000; } } /* Using steps() instead of linear as a timing function to limit cpu usage */ #battery.critical:not(.charging) { /* background-color: #f53c3c; */ color: #ff007c; animation-name: blink; animation-duration: 0.5s; animation-timing-function: steps(12); animation-iteration-count: infinite; animation-direction: alternate; } #power-profiles-daemon { padding-right: 15px; } #power-profiles-daemon.performance { /* background-color: #f53c3c; */ color: #c53b53; } #power-profiles-daemon.balanced { /* background-color: #2980b9; */ color: #565f89; } #power-profiles-daemon.power-saver { /* background-color: #2ecc71; */ color: #9d7cd8; } label:focus { /* background-color: #000000; */ } #cpu { /* background-color: #2ecc71; */ /* color: #000000; */ } #memory { /* background-color: #9b59b6; */ } #disk { /* background-color: #964B00; */ } #backlight { /* background-color: #90b1b1; */ } #network { /* background-color: #2980b9; */ } #network.disconnected { /* background-color: #f53c3c; */ } #wireplumber { /* background-color: #fff0f5; */ /* color: #000000; */ } #wireplumber.muted { /* background-color: #f53c3c; */ } #custom-media { /* background-color: #66cc99; */ color: #2a5c45; min-width: 100px; } #custom-media.custom-spotify { background-color: #66cc99; } #custom-media.custom-vlc { background-color: #ffa000; } #temperature { /* background-color: #f0932b; */ } #temperature.critical { background-color: #eb4d4b; } #tray { /* background-color: #2980b9; */ } #tray > .passive { -gtk-icon-effect: dim; } #tray > .needs-attention { -gtk-icon-effect: highlight; color: #eb4d4b; } #idle_inhibitor { color: #2d3436; } #idle_inhibitor.activated { /* background-color: #ecf0f1; */ color: #2d3436; } #mpd { /* background-color: #66cc99; */ color: #2a5c45; } #mpd.disconnected { /* background-color: #f53c3c; */ } #mpd.stopped { /* background-color: #90b1b1; */ } #mpd.paused { /* background-color: #51a37a; */ } #language { background: #00b093; color: #740864; padding: 0 5px; min-width: 16px; } #keyboard-state { /* background: #97e1ad; */ color: #000000; padding: 0 0px; min-width: 16px; } #keyboard-state > label { padding: 0 5px; } #keyboard-state > label.locked { background: rgba(0, 0, 0, 0.2); } #scratchpad { /* background: rgba(0, 0, 0, 0.2); */ } #scratchpad.empty { background-color: transparent; } #privacy { padding: 0; } #privacy-item { padding: 0 5px; color: white; } #privacy-item.screenshare { background-color: #cf5700; } #privacy-item.audio-in { background-color: #1ca000; } #privacy-item.audio-out { background-color: #0069d4; } #waybar { font-family: "SF Pro Display", Cantarell, Noto Sans, sans-serif; font-size: 16px; } #window { padding: 0 10px; } window#waybar { border: none; border-radius: 0; box-shadow: none; text-shadow: none; transition-duration: 0s; color: rgba(217, 216, 216, 1); background: #1a1b26; } #workspaces { margin: 0 5px; } #workspaces button { padding: 0 8px; color: #565f89; border: 3px solid rgba(9, 85, 225, 0); border-radius: 10px; min-width: 33px; } #workspaces button.visible { color: #a9b1d6; } #workspaces button.active { border-top: 3px solid #7aa2f7; border-bottom: 3px solid #7aa2f7; } #workspaces button.urgent { background-color: #a96d1f; color: white; } #workspaces button:hover { box-shadow: inherit; border-color: #bb9af7; color: #bb9af7; } /* Repeat style here to ensure properties are overwritten as there's no !important and button:hover above resets the colour */ #workspaces button.focused { color: #7aa2f7; } #workspaces button.focused:hover { color: #bb9af7; } #pulseaudio:hover { color: #565f89; } #pulseaudio { /* font-size: 26px; */ /* background-color: #545c73; */ /* color: #000000; */ } #pulseaudio.muted { /* background-color: #c53b53; */ color: #c53b53; } #custom-recorder { font-size: 18px; color:#ee2e24; } #tray, #mode, #battery, #temperature, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #sway-language, #backlight, #custom-storage, #custom-cpu_speed, #custom-powermenu, #custom-spotify, #custom-weather, #custom-mail, #custom-media { padding: 0 5px; /* border-top: 3px solid rgba(217, 216, 216, 0.5); */ } #clock { margin: 0px 5px 0px 5px; min-width: 30px; } #battery.warning { color: rgba(255, 210, 4, 1); } #battery.critical { color: rgba(238, 46, 36, 1); } #battery.charging { color: rgba(217, 216, 216, 1); } #custom-storage.warning { color: rgba(255, 210, 4, 1); } #custom-storage.critical { color: rgba(238, 46, 36, 1); } @keyframes blink { to { background-color: #ffffff; color: black; } } ''; }; programs.hyprlock = { enable = true; settings = { general = { disable_loading_bar = true; grace = 300; hide_cursor = true; no_fade_in = false; }; background = [ { path = "screenshot"; blur_passes = 3; blur_size = 8; } ]; input-field = [ { size = "400, 100"; position = "0, -80"; monitor = ""; dots_center = true; fade_on_empty = false; font_color = "rgb(202, 211, 245)"; inner_color = "rgb(91, 96, 120)"; outer_color = "rgb(24, 25, 38)"; outline_thickness = 5; placeholder_text = "Password"; shadow_passes = 2; } ]; }; }; services.hypridle = { enable = true; settings = { general = { after_sleep_cmd = "hyprctl dispatch dpms on"; ignore_dbus_inhibit = false; lock_cmd = "hyprlock"; }; listener = [ { timeout = 300; on-timeout = "hyprlock"; } { timeout = 600; on-timeout = "hyprctl dispatch dpms off"; on-resume = "hyprctl dispatch dpms on"; } ]; }; }; home.stateVersion = "25.05"; }