me like nix
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 ];
10
11 # Niri window manager settings, now controlled by the imported module
12 programs.niri = {
13 enable = true;
14 settings = {
15 binds = {
16 "Mod+d".action.spawn = ["wofi" "--show" "drun" "--prompt" "Search..."];
17 "Mod+a".action.spawn = "alacritty";
18 };
19 outputs = {
20 "DP-1" = {
21 scale = 2.0;
22 };
23 };
24 spawn-at-startup = [
25 { command = ["xwayland-satellite"]; }
26 { command = ["mako"]; }
27 { command = ["waybar"]; }
28 { command = ["/usr/bin/lxqt-policykit-agent"]; }
29 { command = ["wl-paste --watch cliphist store"]; }
30 ];
31 environment = {
32 DISPLAY = ":0";
33 };
34 };
35 };
36
37 programs.waybar.enable = true;
38
39 # Catppuccin theme for Waybar
40 catppuccin.waybar = {
41 enable = true;
42 flavor = "mocha";
43 };
44
45 # All your user-specific packages
46 home.packages = with pkgs; [
47 atool
48 httpie
49 helix
50 jujutsu
51 htop
52 zellij # terminal multiplexer
53 # --- ESSENTIAL HYPRLAND ECOSYSTEM TOOLS ---
54 alacritty
55 wofi # Application launcher (or pkgs.rofi-wayland)
56 waybar # Status bar (highly recommended)
57 mako # Notification daemon
58 swaybg # For setting wallpapers (or pkgs.hyprpaper, pkgs.swww)
59 cliphist # Clipboard history manager
60 slurp # For selecting a region for screenshots
61 grim # For taking screenshots
62 pavucontrol # GUI for PulseAudio/PipeWire volume control
63 fd
64 ripgrep
65 yazi
66
67 xwayland-satellite
68
69 # --- FONTS ARE IMPORTANT ---
70 noto-fonts
71 noto-fonts-cjk-sans
72 noto-fonts-emoji
73 font-awesome # For icons in waybar, etc.
74 nerd-fonts.jetbrains-mono
75 # --- POLKIT AGENT (for 1Password GUI, etc.) ---
76 lxqt.lxqt-policykit # Lightweight polkit agent
77 ];
78
79 # Program configurations
80 programs.jujutsu = {
81 enable = true;
82 settings.user = {
83 email = "hello@seanaye.ca";
84 name = "Sean Aye";
85 };
86 };
87
88 programs.home-manager.enable = true;
89 programs.helix.enable = true;
90
91 programs.fish = {
92 enable = true;
93 interactiveShellInit = ''
94 set fish_greeting
95 '';
96 };
97
98 programs.starship = {
99 enable = true;
100 enableFishIntegration = true;
101 };
102
103 # Session variables
104 home.sessionVariables = {
105 EDITOR = "hx";
106 VISUAL = "hx";
107 SUDO_EDITOR = "hx";
108 NIXOS_OZONE_WL = "1";
109 QT_QPA_PLATFORM = "wayland;xcb";
110 QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
111 SDL_VIDEODRIVER = "wayland";
112 XDG_CURRENT_DESKTOP = "Niri";
113 XDG_SESSION_TYPE = "wayland";
114 _JAVA_AWT_WM_NONREPARENTING = "1";
115 };
116
117 # Set the state version for Home Manager
118 home.stateVersion = "25.05";
119}