me like nix
0

Configure Feed

Select the types of activity you want to include in your feed.

1# This is the configuration for your user 'sean' 2{ pkgs, inputs, ... }: 3 4{ 5 # Import the home-manager modules you want to use 6 imports = [ 7 inputs.catppuccin.homeModules.catppuccin 8 inputs.niri.homeModules.niri 9 inputs.zen-browser.homeModules.beta 10 ]; 11 12 # Niri window manager settings, now controlled by the imported module 13 programs.niri = { 14 enable = true; 15 settings = { 16 layout = { 17 struts = { 18 top = 0; 19 bottom = 0; 20 }; 21 }; 22 gestures = { 23 hot-corners = { 24 }; 25 }; 26 binds = { 27 "Mod+d".action.spawn = [ 28 "wofi" 29 "--show" 30 "drun" 31 "--prompt" 32 "Search..." 33 ]; 34 "Mod+a".action.spawn = "alacritty"; 35 "Mod+h".action = { 36 focus-column-left = { }; 37 }; 38 "Mod+j".action = { 39 focus-workspace-down = { }; 40 }; 41 "Mod+k".action = { 42 focus-workspace-up = { }; 43 }; 44 "Mod+l".action = { 45 focus-column-right = { }; 46 }; 47 "Mod+p".action = { 48 show-hotkey-overlay = { }; 49 }; 50 "Mod+o".action = { 51 toggle-overview = { }; 52 }; 53 "Mod+q".action = { 54 close-window = { }; 55 }; 56 "Mod+s".action = { 57 screenshot = { 58 show-pointer = true; 59 }; 60 }; 61 "Mod+1".action = { 62 set-column-width = "100%"; 63 }; 64 "Mod+2".action = { 65 set-column-width = "50%"; 66 }; 67 }; 68 outputs = { 69 "DP-1" = { 70 scale = 2.0; 71 }; 72 }; 73 spawn-at-startup = [ 74 { command = [ "xwayland-satellite" ]; } 75 { command = [ "swww-daemon" ]; } 76 { command = [ "mako" ]; } 77 { command = [ "waybar" ]; } 78 { command = [ "wl-paste --watch cliphist store" ]; } 79 ]; 80 environment = { 81 DISPLAY = ":0"; 82 }; 83 }; 84 }; 85 86 nixpkgs.config.allowUnfree = true; 87 88 xdg.configFile."waybar/config.jsonc".source = ./waybar/config.jsonc; 89 programs.waybar = { 90 enable = true; 91 92 style = builtins.readFile ./waybar/style.css; 93 }; 94 95 programs.ssh = { 96 enable = true; 97 extraConfig = '' 98 Host * 99 IdentityAgent ~/.1password/agent.sock 100 ''; 101 }; 102 103 # All your user-specific packages 104 home.packages = with pkgs; [ 105 helix 106 git 107 jujutsu # jj-cli 108 htop 109 zellij # terminal multiplexer 110 alacritty 111 wofi # Application launcher (or pkgs.rofi-wayland) 112 waybar # Status bar (highly recommended) 113 mako # Notification daemon 114 swww # For setting wallpapers 115 cliphist # Clipboard history manager 116 pavucontrol # GUI for PulseAudio/PipeWire volume control 117 fd 118 ripgrep 119 yazi # tui file browser 120 gh # github cli 121 signal-desktop 122 xwayland-satellite # for running x11 apps 123 nixfmt-rfc-style # nix formatter 124 nil # nix language server 125 atac # postman-like TUI 126 rsync # file sync utility 127 udiskie # for mounting external drives 128 darktable # photo editing 129 zoxide 130 chromium 131 claude-code 132 nautilus # file browser 133 sqlitebrowser 134 gnome-characters # symbol picker 135 sendme # file transfer 136 137 # --- FONTS ARE IMPORTANT --- 138 noto-fonts 139 noto-fonts-cjk-sans 140 noto-fonts-emoji 141 font-awesome # For icons in waybar, etc. 142 nerd-fonts.jetbrains-mono 143 # --- POLKIT AGENT (for 1Password GUI, etc.) --- 144 lxqt.lxqt-policykit # Lightweight polkit agent 145 ]; 146 147 services.udiskie = { 148 enable = true; 149 tray = "auto"; 150 automount = true; 151 }; 152 153 programs.direnv.enable = true; 154 155 programs.zen-browser.enable = true; 156 # programs.swww.enable = true; 157 programs.zoxide = { 158 enable = true; 159 enableFishIntegration = true; 160 }; 161 162 programs.obs-studio = { 163 enable = true; 164 plugins = with pkgs.obs-studio-plugins; [ 165 obs-backgroundremoval 166 ]; 167 }; 168 169 # Program configurations 170 programs.git = { 171 enable = true; 172 userName = "seanaye"; 173 userEmail = "hello@seanaye.ca"; 174 extraConfig = { 175 init.defaultBranch = "main"; 176 }; 177 }; 178 programs.jujutsu = { 179 enable = true; 180 settings.user = { 181 email = "hello@seanaye.ca"; 182 name = "Sean Aye"; 183 }; 184 }; 185 186 programs.home-manager.enable = true; 187 188 programs.fish = { 189 enable = true; 190 interactiveShellInit = '' 191 set fish_greeting 192 ''; 193 }; 194 195 programs.starship = { 196 enable = true; 197 enableFishIntegration = true; 198 }; 199 200 catppuccin = { 201 enable = true; 202 flavor = "frappe"; 203 }; 204 205 programs.alacritty = { 206 enable = true; 207 settings = { 208 window = { 209 decorations = "none"; 210 }; 211 }; 212 213 }; 214 215 programs.helix = { 216 enable = true; 217 settings = { 218 editor = { 219 bufferline = "multiple"; 220 file-picker = { 221 hidden = false; 222 git-ignore = true; 223 }; 224 cursor-shape = { 225 insert = "bar"; 226 normal = "block"; 227 select = "underline"; 228 }; 229 line-number = "relative"; 230 cursorline = true; 231 auto-format = true; 232 end-of-line-diagnostics = "hint"; 233 soft-wrap = { 234 enable = true; 235 }; 236 lsp = { 237 display-inlay-hints = true; 238 display-messages = true; 239 display-progress-messages = true; 240 }; 241 inline-diagnostics = { 242 cursor-line = "hint"; 243 }; 244 }; 245 keys = { 246 normal = { 247 esc = [ 248 "keep_primary_selection" 249 "collapse_selection" 250 ]; 251 }; 252 253 }; 254 }; 255 languages = { 256 language = [ 257 { 258 name = "nix"; 259 auto-format = true; 260 formatter = { 261 command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; 262 }; 263 } 264 { 265 name = "rust"; 266 auto-format = true; 267 formatter = { 268 command = "${pkgs.rustfmt}/bin/rustfmt --edition 2024"; 269 }; 270 indent = { 271 tab-width = 4; 272 unit = "t"; 273 }; 274 } 275 ]; 276 }; 277 }; 278 279 # Session variables 280 home.sessionVariables = { 281 EDITOR = "hx"; 282 VISUAL = "hx"; 283 SUDO_EDITOR = "hx"; 284 # NIXOS_OZONE_WL = "1"; 285 # QT_QPA_PLATFORM = "wayland;xcb"; 286 # QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; 287 # SDL_VIDEODRIVER = "wayland"; 288 # XDG_CURRENT_DESKTOP = "niri"; 289 # XDG_SESSION_TYPE = "wayland"; 290 SSH_AUTH_SOCK = "~/.1password/agent.sock"; 291 }; 292 293 # Set the state version for Home Manager 294 home.stateVersion = "25.05"; 295}