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 nixpkgs.config.permittedInsecurePackages = [ 88 "libsoup-2.74.3" 89 ]; 90 91 xdg.configFile."waybar/config.jsonc".source = ./waybar/config.jsonc; 92 programs.waybar = { 93 enable = true; 94 95 style = builtins.readFile ./waybar/style.css; 96 }; 97 98 programs.ssh = { 99 enable = true; 100 extraConfig = '' 101 Host * 102 IdentityAgent ~/.1password/agent.sock 103 ''; 104 }; 105 106 # All your user-specific packages 107 home.packages = with pkgs; [ 108 helix 109 git 110 jujutsu # jj-cli 111 htop 112 zellij # terminal multiplexer 113 alacritty 114 wofi # Application launcher (or pkgs.rofi-wayland) 115 waybar # Status bar (highly recommended) 116 mako # Notification daemon 117 swww # For setting wallpapers 118 cliphist # Clipboard history manager 119 pavucontrol # GUI for PulseAudio/PipeWire volume control 120 fd 121 ripgrep 122 yazi # tui file browser 123 gh # github cli 124 signal-desktop 125 xwayland-satellite # for running x11 apps 126 nixfmt-rfc-style # nix formatter 127 nil # nix language server 128 atac # postman-like TUI 129 rsync # file sync utility 130 udiskie # for mounting external drives 131 darktable # photo editing 132 zoxide 133 chromium 134 claude-code 135 nautilus # file browser 136 sqlitebrowser 137 gnome-characters # symbol picker 138 sendme # file transfer 139 awscli2 # aws control 140 vscode-json-languageserver 141 142 # --- FONTS ARE IMPORTANT --- 143 noto-fonts 144 noto-fonts-cjk-sans 145 noto-fonts-emoji 146 font-awesome # For icons in waybar, etc. 147 nerd-fonts.jetbrains-mono 148 # --- POLKIT AGENT (for 1Password GUI, etc.) --- 149 lxqt.lxqt-policykit # Lightweight polkit agent 150 ]; 151 152 services.udiskie = { 153 enable = true; 154 tray = "auto"; 155 automount = true; 156 }; 157 158 programs.direnv.enable = true; 159 160 programs.zellij = { 161 enable = true; 162 settings = { 163 keybinds = { 164 unbind = [ "Ctrl q" ]; 165 }; 166 }; 167 }; 168 169 programs.zen-browser.enable = true; 170 # programs.swww.enable = true; 171 programs.zoxide = { 172 enable = true; 173 enableFishIntegration = true; 174 }; 175 176 programs.obs-studio = { 177 enable = true; 178 plugins = with pkgs.obs-studio-plugins; [ 179 obs-backgroundremoval 180 ]; 181 }; 182 183 # Program configurations 184 programs.git = { 185 enable = true; 186 userName = "seanaye"; 187 userEmail = "hello@seanaye.ca"; 188 extraConfig = { 189 init.defaultBranch = "main"; 190 }; 191 }; 192 programs.jujutsu = { 193 enable = true; 194 settings.user = { 195 email = "hello@seanaye.ca"; 196 name = "Sean Aye"; 197 }; 198 }; 199 200 programs.home-manager.enable = true; 201 202 programs.fish = { 203 enable = true; 204 interactiveShellInit = '' 205 set fish_greeting 206 # Load 1Password CLI plugins 207 if test -f ~/.config/op/plugins.sh 208 source ~/.config/op/plugins.sh 209 end 210 ''; 211 functions = { 212 s3edit = '' 213 set file (basename $argv[1]) 214 set tmpfile /tmp/$file 215 aws s3 cp $argv[1] $tmpfile 216 and $EDITOR $tmpfile 217 and aws s3 cp $tmpfile $argv[1] 218 ''; 219 }; 220 }; 221 222 programs.starship = { 223 enable = true; 224 enableFishIntegration = true; 225 }; 226 227 catppuccin = { 228 enable = true; 229 flavor = "frappe"; 230 }; 231 232 programs.alacritty = { 233 enable = true; 234 settings = { 235 window = { 236 decorations = "none"; 237 }; 238 }; 239 240 }; 241 242 programs.helix = { 243 enable = true; 244 settings = { 245 editor = { 246 bufferline = "multiple"; 247 file-picker = { 248 hidden = false; 249 git-ignore = true; 250 }; 251 cursor-shape = { 252 insert = "bar"; 253 normal = "block"; 254 select = "underline"; 255 }; 256 line-number = "relative"; 257 cursorline = true; 258 auto-format = true; 259 end-of-line-diagnostics = "hint"; 260 soft-wrap = { 261 enable = true; 262 }; 263 lsp = { 264 display-inlay-hints = true; 265 display-messages = true; 266 display-progress-messages = true; 267 }; 268 inline-diagnostics = { 269 cursor-line = "hint"; 270 }; 271 }; 272 keys = { 273 normal = { 274 esc = [ 275 "keep_primary_selection" 276 "collapse_selection" 277 ]; 278 }; 279 280 }; 281 }; 282 languages = { 283 language = [ 284 { 285 name = "nix"; 286 auto-format = true; 287 formatter = { 288 command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; 289 }; 290 } 291 { 292 name = "rust"; 293 auto-format = true; 294 formatter = { 295 command = "rustfmt"; 296 args = [ 297 "--edition" 298 "2024" 299 ]; 300 }; 301 indent = { 302 tab-width = 4; 303 unit = "t"; 304 }; 305 } 306 { 307 name = "astro"; 308 auto-format = true; 309 formatter = { 310 command = "npx"; 311 args = [ 312 "prettier" 313 "." 314 "--write" 315 ]; 316 }; 317 } 318 { 319 name = "json"; 320 auto-format = true; 321 } 322 ]; 323 }; 324 }; 325 326 # Session variables 327 home.sessionVariables = { 328 EDITOR = "hx"; 329 VISUAL = "hx"; 330 SUDO_EDITOR = "hx"; 331 # NIXOS_OZONE_WL = "1"; 332 # QT_QPA_PLATFORM = "wayland;xcb"; 333 # QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; 334 # SDL_VIDEODRIVER = "wayland"; 335 # XDG_CURRENT_DESKTOP = "niri"; 336 # XDG_SESSION_TYPE = "wayland"; 337 SSH_AUTH_SOCK = "~/.1password/agent.sock"; 338 }; 339 340 # Set the state version for Home Manager 341 home.stateVersion = "25.05"; 342}