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