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