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 micro.enable = true;
54 mpv.enable = true;
55 ssh.enable = true;
56 zed-editor.enable = true;
57 };
58
59 profiles = {
60 betterLocations.enable = true;
61 shell.enable = true;
62 defaultApps = {
63 enable = true;
64 forceMimeAssociations = true;
65 archiveViewer.package = pkgs.file-roller;
66 audioPlayer.package = config.programs.mpv.finalPackage;
67 videoPlayer.package = config.programs.mpv.finalPackage;
68 editor.package = pkgs.gnome-text-editor;
69 fileManager.package = pkgs.nautilus;
70 imageViewer.package = pkgs.loupe;
71 pdfViewer.package = pkgs.papers;
72 #terminal.package = pkgs.ptyxis;
73 terminalEditor.package = config.programs.helix.package;
74 webBrowser.package = config.programs.helium.package;
75 };
76 };
77 };
78
79 fontix = {
80 fonts = {
81 monospace = {
82 name = "JetBrainsMono Nerd Font";
83 package = pkgs.nerd-fonts.jetbrains-mono;
84 };
85
86 sansSerif = {
87 name = "Roboto Flex";
88 package = pkgs.roboto-flex;
89 };
90
91 serif = {
92 name = "Source Serif Pro";
93 package = pkgs.source-serif-pro;
94 };
95 };
96
97 sizes = {
98 applications = 10;
99 desktop = 10;
100 };
101
102 font-packages.enable = true;
103 fontconfig.enable = true;
104 gnome.enable = lib.mkIf pkgs.stdenv.isLinux true;
105 gtk.enable = lib.mkIf pkgs.stdenv.isLinux true;
106 };
107
108 systemd.user.startServices = true; # Needed for auto-mounting agenix secrets.
109 }
110
111 (lib.mkIf pkgs.stdenv.isLinux {
112 gtk.gtk3.bookmarks = lib.mkAfter [
113 "file:///data/DCIM"
114 "file:///data/ Data"
115 ];
116
117 home = {
118 homeDirectory = "/home/ayla";
119
120 packages = with pkgs; [
121 # libraries
122 libsecret
123 wl-clipboard
124 libnotify
125 wl-clipboard
126 libnotify
127
128 zip
129 xz
130 unzip
131 p7zip
132 ];
133 };
134
135 myHome = {
136 desktop = {
137 gnome.enable = true;
138 };
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}