{ config, pkgs, ... }: { home.username = "jane"; home.homeDirectory = "/home/jane"; home.file.".icons/default".source = "${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ"; xresources.properties = { "Xcursor.size" = 16; }; fonts.fontconfig.enable = true; home.packages = with pkgs; [ discord hyprshot (pkgs.nerdfonts.override { fonts = [ "SourceCodePro" ]; }) fuzzel hyfetch htop networkmanagerapplet mako emacs swaybg mpdscribble pavucontrol mpc-cli cm_unicode ]; programs.ssh = { enable = true; addKeysToAgent = "yes"; }; services.syncthing = { enable = true; }; programs.hyprlock = { enable = true; settings = { general = { disable_loading_bar = true; grace = 0; hide_cursor = true; no_fade_in = false; }; background = [ { path = "~/.wallpaper"; blur_passes = 3; blur_size = 8; } ]; input-field = [ { size = "200, 50"; 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; } ]; }; }; programs.ncmpcpp = { enable = true; bindings = [ { key = "j"; command = "scroll_down"; } { key = "k"; command = "scroll_up"; } { key = "h"; command = "previous_column"; } { key = "l"; command = "next_column"; } { key = "g"; command = "move_home"; } { key = "G"; command = "move_end"; } { key = "n"; command = "next_found_item"; } { key = "N"; command = "previous_found_item"; } ]; mpdMusicDir = "~/Music"; settings = { ncmpcpp_directory = "~/.config/nmcpcpp"; mpd_host = "localhost"; mpd_port = "6600"; }; }; services.mpd = { enable = true; musicDirectory = "~/Music"; extraConfig = '' audio_output { type "pipewire" name "Pipewire" mixer_type "hardware" enabled "yes" } ''; }; programs.waybar = { enable = true; settings = { mainBar = { height = 30; spacing = 4; modules-left = [ "hyprland/workspaces" ]; modules-center = [ "hyprland/window" ]; modules-right = [ "mpd" "pulseaudio" "cpu" "memory" "clock" "tray" ]; mpd = { format = "{stateIcon} {artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) [{songPosition}|{queueLength}] 🎵"; format-disconnected = "Disconnected 🎵"; format-stopped = "{consumeIcon}Stopped 🎵"; unknown-tag = "N/A"; interval = 2; state-icons = { paused = ""; playing = ""; }; tooltip-format = "MPD (connected)"; tooltip-format-disconnected = "MPD (disconnected)"; on-click = "foot -e ncmpcpp"; }; tray = { icon-size = 21; spacing = 10; show-passive-items = true; }; clock = { format = "{:%H:%M\t%Y-%m-%d}"; tooltip-format = "{:%Y %B}\n{calendar}"; }; cpu = { format = "{usage}% "; tooltip = false; }; memory = { format = "{}% "; }; network = { format-wifi = ""; tooltip = false; format-ethernet = ""; format-linked = ""; format-disconnected = "⚠"; on-click = "kcmshell5 kcm_networkmanagement"; }; pulseaudio = { format = "{volume}% {icon}"; format-bluetooth = "{volume}% {icon}"; format-bluetooth-muted = " {icon}"; format-muted = " "; format-source = "{volume}% "; format-source-muted = ""; format-icons = { headphone = ""; hands-free = ""; headset = ""; phone = ""; portable = ""; car = ""; default = ["" "" ""]; }; on-click = "pavucontrol"; }; }; }; style = '' window#waybar { font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; font-size: 13px; background: transparent; color: #ffffff; text-shadow: 1px 1px #64727D; transition-property: background-color; transition-duration: .5s; } button { border: none; border-radius: 0; } button:hover { background: inherit; box-shadow: inset 0 -3px #ffffff; } #workspaces button { padding: 0 5px; text-shadow: 1px 1px #64727D; background-color: transparent; color: #ffffff; } #workspaces button:hover { background: rgba(0, 0, 0, 0.2); } #workspaces button.focused { background: transparent; box-shadow: inset 0 -3px #ffffff; } #workspaces button.urgent { background-color: #eb4d4b; } #clock, #cpu, #memory, #disk, #network, #pulseaudio, #wireplumber, #custom-media, #tray, #mode, #scratchpad, #mpd { padding: 0 10px; } #window, #workspaces { margin: 0 4px; } .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; } #tray > .passive { -gtk-icon-effect: dim; } #tray > .needs-attention { -gtk-icon-effect: highlight; } #scratchpad { background: rgba(0, 0, 0, 0.2); } #scratchpad.empty { background-color: transparent; } ''; }; programs.fastfetch = { enable = true; settings = { logo = { type = "raw"; source = "~/.config/fastfetch/logo.sixel"; width = 40; height = 19; }; display = { separator = " "; }; modules = [ "title" { type = "custom"; format = "──────────────────────────────────"; } { type = "os"; key = ""; } { type = "kernel"; key = "󰞸"; } { type = "uptime"; key = ""; } { type = "packages"; key = ""; } { type = "shell"; key = ""; } { type = "display"; key = "󰍹"; } { type = "wm"; key = ""; } { type = "terminal"; key = ""; } { type = "cpu"; key = ""; } { type = "gpu"; key = ""; } { type = "memory"; key = ""; } { type = "disk"; key = ""; } { type = "locale"; key = ""; } "break" "colors" ]; }; }; programs.zsh = { enable = true; autocd = true; autosuggestion = { enable = true; # highlight = "fg=#ff00ff,bg=cyan,bold,underline"; }; defaultKeymap = "viins"; history = { append = true; ignoreAllDups = true; }; shellAliases = { "ll" = "ls -alF"; "la" = "ls -a"; "l" = "ls -F"; "sl" = "ls"; }; syntaxHighlighting.enable = true; initExtra = '' which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s" which eza &> /dev/null && alias ls=eza which nvim &> /dev/null && alias vi=nvim && alias vim=nvim parse_git_dirty() { git_status="$(git status 2> /dev/null)" [[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f" [[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f" [[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f" [[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f" } setopt prompt_subst autoload -Uz vcs_info precmd () { vcs_info } zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main) PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ ' ''; profileExtra = '' if [ ! -S ~/.ssh/ssh_auth_sock ]; then eval `ssh-agent` > /dev/null ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock fi export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock ''; }; programs.git = { enable = true; userName = "Jacob Janzen"; userEmail = "jacob.a.s.janzen@gmail.com"; }; programs.foot.enable = true; programs.foot.settings = { main = { font = "SauceCodePro Nerd Font:size=10"; pad = "6x6"; }; mouse = { hide-when-typing = "yes"; }; colors = { alpha = "0.9"; background = "ece0c9"; foreground = "191916"; regular0 = "191916"; regular1 = "ac4438"; regular2 = "354d52"; regular3 = "ba9151"; regular4 = "465b91"; regular5 = "5b5489"; regular6 = "4e6062"; regular7 = "c9ad7a"; bright0 = "293c3c"; bright1 = "d8611c"; bright2 = "4b7b53"; bright3 = "d8974b"; bright4 = "2f3d91"; bright5 = "735e82"; bright6 = "6b8f92"; bright7 = "ece0c9"; }; }; wayland.windowManager.hyprland.enable = true; wayland.windowManager.hyprland.settings = { monitor = [ "DP-2, 2560x1440@180, 0x0, 1" "HDMI-A-2, 1920x1080@60, -1080x-100, 1, transform, 3" ]; "$terminal" = "foot"; "$fileManager" = "dolphin"; "$menu" = "fuzzel"; exec-once = [ "nm-applet &" "blueman-applet &" "waybar" "mako" "emacs --daemon" "swaybg -m fill -i ~/.wallpaper" "mpdscribble" ]; env = [ "XCURSOR_SIZE,24" "HYPRCURSOR_SIZE,24" ]; general = { gaps_in = 5; gaps_out = 20; border_size = 2; resize_on_border = false; layout = "dwindle"; "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; "col.inactive_border" = "rgba(595959aa)"; }; decoration = { rounding = 10; active_opacity = 1.0; inactive_opacity = 1.0; drop_shadow = true; shadow_range = 4; shadow_render_power = 3; "col.shadow" = "rgba(1a1a1aee)"; blur = { enabled = true; size = 3; passes = 1; vibrancy = "0.1696"; }; }; animations = { enabled = true; bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; animation = [ "windows, 1, 7, myBezier" "windowsOut, 1, 7, default, popin 80%" "border, 1, 10, default" "borderangle, 1, 8, default" "fade, 1, 7, default" "workspaces, 1, 6, default" ]; }; dwindle = { pseudotile = true; preserve_split = true; }; master = { new_status = "master"; }; input = { kb_layout = "us"; follow_mouse = 1; sensitivity = 0; }; "$mainMod" = "SUPER"; bind = [ "$mainMod, RETURN, exec, $terminal" "$mainMod SHIFT, Q, killactive" "$mainMod, E, exec, $fileManager" "$mainMod SHIFT, SPACE, togglefloating" "$mainMod, D, exec, $menu" "$mainMod, P, pseudo" "$mainMod SHIFT, E, togglesplit" "$mainMod, H, movefocus, l" "$mainMod, J, movefocus, d" "$mainMod, K, movefocus, u" "$mainMod, L, movefocus, r" "$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" "$mainMod CONTROL, L, exec, hyprlock" "$mainMod, S, exec, hyprshot -m window --clipboard-only" "$mainMod SHIFT, S, exec, hyprshot -m region --clipboard-only" "$mainMod SHIFT CONTROL, S, exec, hyprshot -m output --clipboard-only" ]; bindel = [ ",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" ",XF86Eject, exec, mpc toggle" ]; bindm = [ "$mainMod, mouse:272, movewindow" "$mainMod, mouse:273, resizewindow" ]; windowrulev2 = "suppressevent maximize, class:.*"; }; wayland.windowManager.hyprland.extraConfig = '' ################### ### KEYBINDINGS ### ################### # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, M, exit, ''; home.stateVersion = "24.05"; programs.home-manager.enable = true; }