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 140 # --- FONTS ARE IMPORTANT --- 141 noto-fonts 142 noto-fonts-cjk-sans 143 noto-fonts-emoji 144 font-awesome # For icons in waybar, etc. 145 nerd-fonts.jetbrains-mono 146 # --- POLKIT AGENT (for 1Password GUI, etc.) --- 147 lxqt.lxqt-policykit # Lightweight polkit agent 148 ]; 149 150 services.udiskie = { 151 enable = true; 152 tray = "auto"; 153 automount = true; 154 }; 155 156 programs.direnv.enable = true; 157 158 programs.zen-browser.enable = true; 159 # programs.swww.enable = true; 160 programs.zoxide = { 161 enable = true; 162 enableFishIntegration = true; 163 }; 164 165 programs.obs-studio = { 166 enable = true; 167 plugins = with pkgs.obs-studio-plugins; [ 168 obs-backgroundremoval 169 ]; 170 }; 171 172 # Program configurations 173 programs.git = { 174 enable = true; 175 userName = "seanaye"; 176 userEmail = "hello@seanaye.ca"; 177 extraConfig = { 178 init.defaultBranch = "main"; 179 }; 180 }; 181 programs.jujutsu = { 182 enable = true; 183 settings.user = { 184 email = "hello@seanaye.ca"; 185 name = "Sean Aye"; 186 }; 187 }; 188 189 programs.home-manager.enable = true; 190 191 programs.fish = { 192 enable = true; 193 interactiveShellInit = '' 194 set fish_greeting 195 ''; 196 }; 197 198 programs.starship = { 199 enable = true; 200 enableFishIntegration = true; 201 }; 202 203 catppuccin = { 204 enable = true; 205 flavor = "frappe"; 206 }; 207 208 programs.alacritty = { 209 enable = true; 210 settings = { 211 window = { 212 decorations = "none"; 213 }; 214 }; 215 216 }; 217 218 programs.helix = { 219 enable = true; 220 settings = { 221 editor = { 222 bufferline = "multiple"; 223 file-picker = { 224 hidden = false; 225 git-ignore = true; 226 }; 227 cursor-shape = { 228 insert = "bar"; 229 normal = "block"; 230 select = "underline"; 231 }; 232 line-number = "relative"; 233 cursorline = true; 234 auto-format = true; 235 end-of-line-diagnostics = "hint"; 236 soft-wrap = { 237 enable = true; 238 }; 239 lsp = { 240 display-inlay-hints = true; 241 display-messages = true; 242 display-progress-messages = true; 243 }; 244 inline-diagnostics = { 245 cursor-line = "hint"; 246 }; 247 }; 248 keys = { 249 normal = { 250 esc = [ 251 "keep_primary_selection" 252 "collapse_selection" 253 ]; 254 }; 255 256 }; 257 }; 258 languages = { 259 language = [ 260 { 261 name = "nix"; 262 auto-format = true; 263 formatter = { 264 command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; 265 }; 266 } 267 { 268 name = "rust"; 269 auto-format = true; 270 formatter = { 271 command = "${pkgs.rustfmt}/bin/rustfmt --edition 2024"; 272 }; 273 indent = { 274 tab-width = 4; 275 unit = "t"; 276 }; 277 } 278 ]; 279 }; 280 }; 281 282 # Session variables 283 home.sessionVariables = { 284 EDITOR = "hx"; 285 VISUAL = "hx"; 286 SUDO_EDITOR = "hx"; 287 # NIXOS_OZONE_WL = "1"; 288 # QT_QPA_PLATFORM = "wayland;xcb"; 289 # QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; 290 # SDL_VIDEODRIVER = "wayland"; 291 # XDG_CURRENT_DESKTOP = "niri"; 292 # XDG_SESSION_TYPE = "wayland"; 293 SSH_AUTH_SOCK = "~/.1password/agent.sock"; 294 }; 295 296 # Set the state version for Home Manager 297 home.stateVersion = "25.05"; 298}