1{
2 pkgs,
3 lib,
4 self,
5 config,
6 ...
7}: {
8 imports = [
9 self.homeModules.default
10 self.inputs.nix-flatpak.homeManagerModules.nix-flatpak
11 self.inputs.fontix.homeModules.default
12 ];
13
14 config = lib.mkMerge [
15 {
16 home = {
17 packages = with pkgs; [
18 # development
19 ffmpeg-full
20 love
21 luajit
22 #nodejs
23 bun
24 typescript
25
26 # applications
27 aseprite
28 rclone
29 #rclone-browser
30 signal-desktop-bin
31 bitwarden-desktop
32 yt-dlp
33 obsidian
34 ];
35
36 username = "ayla";
37 stateVersion = "25.05";
38 };
39
40 programs.home-manager.enable = true;
41 xdg.enable = true;
42
43 myHome = {
44 programs = {
45 helium.enable = true;
46 fastfetch.enable = true;
47 firefox = {
48 enable = true;
49 mode = "sidebar";
50 };
51 git.enable = true;
52 helix.enable = true;
53 jujutsu.enable = true;
54 micro.enable = true;
55 mpv.enable = true;
56 ssh.enable = true;
57 zed-editor.enable = true;
58 };
59
60 profiles = {
61 betterLocations.enable = true;
62 shell.enable = true;
63 fixMimeTypes.enable = true;
64 defaultApps = {
65 enable = true;
66 forceMimeAssociations = true;
67 editor = {
68 package = config.programs.helix.package;
69 terminal = true;
70 icon = "helix";
71 };
72 terminalEditor.package = config.programs.helix.package;
73 webBrowser = {
74 package = config.programs.helium.package;
75 icon = "helium";
76 };
77 };
78 };
79 };
80
81 fontix = {
82 fonts = {
83 monospace = {
84 name = "JetBrainsMono Nerd Font";
85 package = pkgs.nerd-fonts.jetbrains-mono;
86 };
87
88 sansSerif = {
89 name = "Roboto Flex";
90 package = pkgs.roboto-flex;
91 };
92
93 serif = {
94 name = "Source Serif Pro";
95 package = pkgs.source-serif-pro;
96 };
97 };
98
99 sizes = {
100 applications = 10;
101 desktop = 10;
102 };
103
104 font-packages.enable = true;
105 fontconfig.enable = true;
106 gnome.enable = lib.mkIf pkgs.stdenv.isLinux true;
107 gtk.enable = lib.mkIf pkgs.stdenv.isLinux true;
108 };
109
110 systemd.user.startServices = true; # Needed for auto-mounting agenix secrets.
111 }
112
113 (lib.mkIf pkgs.stdenv.isLinux {
114 gtk.gtk3.bookmarks = lib.mkAfter [
115 "file:///data/DCIM"
116 "file:///data/ Data"
117 ];
118
119 home = {
120 homeDirectory = "/home/ayla";
121
122 packages = with pkgs; [
123 # libraries
124 libsecret
125 wl-clipboard
126 libnotify
127 wl-clipboard
128 libnotify
129
130 zip
131 xz
132 unzip
133 p7zip
134 ];
135 };
136
137 myHome = {
138 desktop.gnome.enable = true;
139
140 programs = {
141 lutris.enable = true;
142 };
143 };
144
145 services.flatpak = {
146 packages = [
147 # creative
148 "io.lmms.LMMS"
149 "org.blender.Blender"
150 "org.gimp.GIMP"
151 "org.inkscape.Inkscape"
152 "org.kde.kdenlive"
153 "org.kde.krita"
154 "com.obsproject.Studio"
155
156 # gaming
157 "com.github.Anuken.Mindustry"
158 "io.mgba.mGBA"
159 "net.kuribo64.melonDS"
160 "org.openttd.OpenTTD"
161 "org.prismlauncher.PrismLauncher"
162
163 # internet
164 "org.nicotine_plus.Nicotine"
165 "org.qbittorrent.qBittorrent"
166
167 # media
168 "com.github.iwalton3.jellyfin-media-player"
169 "org.atheme.audacious"
170 "org.freac.freac"
171 "org.musicbrainz.Picard"
172 "org.audacityteam.Audacity"
173
174 # productivity
175 "com.calibre_ebook.calibre"
176 "net.ankiweb.Anki"
177
178 # social (basically useless but)
179 "im.dino.Dino"
180 "org.gnome.Fractal"
181 "org.squidowl.halloy"
182
183 # utilities
184 "com.github.tchx84.Flatseal"
185 "org.keepassxc.KeePassXC"
186 ];
187 update.auto = {
188 enable = true;
189 onCalendar = "daily";
190 };
191 };
192 })
193 ];
194}