]> Git — Sourcephile - julm/julm-nix.git/blob - homes/julm/hosts/pumpkin.nix
2a118dcab4335cf7e2921a2e448da7bb7aedd711
[julm/julm-nix.git] / homes / julm / hosts / pumpkin.nix
1 {
2 pkgs,
3 lib,
4 config,
5 pkgs-unstable,
6 ...
7 }:
8 {
9 imports = [
10 ../../../home-manager/profiles/chat.nix
11 ../../../home-manager/profiles/developing.nix
12 ../../../home-manager/profiles/direnv.nix
13 ../../../home-manager/profiles/drawing.nix
14 ../../../home-manager/profiles/gaming.nix
15 ../../../home-manager/profiles/git.nix
16 ../../../home-manager/profiles/gnupg.nix
17 ../../../home-manager/profiles/graphical.nix
18 ../../../home-manager/profiles/lang-cmn.nix
19 ../../../home-manager/profiles/lf.nix
20 ../../../home-manager/profiles/mpv.nix
21 ../../../home-manager/profiles/networking.nix
22 ../../../home-manager/profiles/nix.nix
23 ../../../home-manager/profiles/radio.nix
24 ../../../home-manager/profiles/science.nix
25 ../../../home-manager/profiles/video.nix
26 ../../../home-manager/profiles/wireless.nix
27 ../../../home-manager/profiles/yt-dlp.nix
28
29 ../../../home-manager/profiles/emacs.nix
30 ../../../home-manager/profiles/firefox.nix
31 ../../../home-manager/profiles/ghc.nix
32 #../../../home-manager/profiles/starship.nix
33 ../../../home-manager/profiles/xmonad.nix
34 ../../../home-manager/profiles/arbtt.nix
35 ../../../home-manager/profiles/music.nix
36
37 # ../mails.nix
38 ];
39 programs.bash.shellAliases.riseup = "sudo ip netns exec riseup sudo -u $USER PULSE_SERVER=/run/user/$(id -u $USER)/pulse/native";
40 programs.gpg.homedir = "${config.home.homeDirectory}/files/sec/.gnupg";
41 home.sessionVariables = {
42 PASSWORD_STORE_DIR = "$HOME/files/sec/.password-store";
43 };
44 home.packages = [
45 (lib.meta.hiPrio (
46 pkgs.ffmpeg.override {
47 # For pkgs.ab-av1
48 withVmaf = true;
49 }
50 ))
51 pkgs.ab-av1
52 pkgs.cemu
53 pkgs.radicle-node
54 #pkgs.radicle-httpd
55 pkgs.ghostscript
56 #pkgs.go-mtpfs
57 pkgs.ntfs3g
58 pkgs.p7zip
59 pkgs.unar
60 pkgs.pdftk
61 pkgs.vips
62 pkgs.poppler_utils
63 # psnup conflicts with pkgs.texlive.combined.scheme-*
64 (lib.lowPrio pkgs.psutils)
65 pkgs.ink
66 pkgs.djview
67 pkgs.qpdf
68 pkgs.libreoffice
69 pkgs.calibre
70 pkgs.zotero
71 pkgs.evince
72 pkgs.marble
73 pkgs.gcompris
74 pkgs.frozen-bubble
75 pkgs.neverball
76 pkgs.tuxpaint
77 pkgs.rmg
78 pkgs.veloren
79 pkgs.shipwright
80 pkgs.steam-run
81 pkgs.xsane
82 pkgs.transmission
83 pkgs.transmission-remote-gtk
84 pkgs.gthumb
85 pkgs.thunderbird
86 pkgs.element-desktop
87 #pkgs.chromium
88 pkgs.gpsbabel
89 #(pkgs.qgis.override { extraPythonPackages = (ps: [
90 # ps.pyqt5_with_qtwebkit
91 #]); })
92 #pkgs.libva-utils
93 pkgs.otpclient
94 pkgs.pandoc
95 pkgs.pdf2djvu
96 #pkgs.ristretto
97 pkgs.xfce.mousepad
98 #pkgs.mate.pluma
99 pkgs.wxmaxima
100 pkgs.espeak-ng
101 pkgs.iodine
102 pkgs.vdhcoapp
103 #pkgs.qsynth
104 pkgs.giph
105 pkgs.slop
106 pkgs.xorg.xwininfo
107 pkgs.xdotool
108 # FIXME: move to pkgs.signal-desktop when upgrading to a nixpkgs with a working signal-desktop
109 pkgs-unstable.signal-desktop
110 pkgs.sigtop
111 ];
112
113 services.fluidsynth.enable = false;
114
115 xdg.dataFile."arbtt/categorize.cfg".text = ''
116 $idle > 30 ==> tag inactive,
117
118 current window $program = ["evince", "Evince"] && current window $title =~ m!(.*) — (.*)!
119 ==> tag evince,
120 current window $program = ["gl", "mpv"] && current window $title =~ m!MPV: playing: ([^:]*)!
121 ==> tag mpv,
122 current window $program = ["Navigator"] && current window $title =~ m!Web: ([^:]*): ([^:]*)!
123 ==> tag $1:Web,
124 current window $title =~ m!Term: ([^:]*): (?:~|/home/julm)/(?:src|work)/(.*)!
125 ==> tag Work:$2,
126 current window $title =~ m!Term: ([^:]*): (?:~|/home/julm)/(?:files)/(.*)!
127 ==> tag Perso:$2,
128
129 tag Desktop:$current.desktop,
130 tag Program:$current.program,
131 '';
132
133 home.file.".Xmodmap".text = ''
134 ! Make Control_R behave like Super_L, the modMask used in Xmonad
135 remove control = Control_R
136 add mod4 = Control_R
137 '';
138
139 programs.firefox = {
140 package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
141 nativeMessagingHosts = [ pkgs.browserpass ];
142 cfg.speechSynthesisSupport = true;
143 # about:policies#documentation
144 extraPolicies = {
145 CaptivePortal = false;
146 DNSOverHTTPS = {
147 Enabled = false;
148 Locked = true;
149 };
150 DisableAppUpdate = true;
151 DisableFirefoxAccounts = true;
152 DisableFirefoxStudies = true;
153 DisablePocket = true;
154 DisableTelemetry = true;
155 DontCheckDefaultBrowser = true;
156 FirefoxHome = {
157 Pocket = false;
158 Snippets = false;
159 };
160 NetworkPrediction = false;
161 PromptForDownloadLocation = true;
162 SearchEngines = {
163 PreventInstalls = true;
164 };
165 SearchSuggestEnabled = false;
166 UserMessaging = {
167 ExtensionRecommendations = false;
168 SkipOnboarding = true;
169 };
170 };
171 };
172 };
173
174 /*
175 Cannot be automounted
176 systemd.user.mounts = {
177 mnt-aubergine = {
178 Unit = {
179 Wants = [
180 "network-online.target"
181 "wireguard-wg-intra.target"
182 ];
183 After = [
184 "network-online.target"
185 "wireguard-wg-intra.target"
186 ];
187 };
188 Install = {
189 WantedBy = ["default.target"];
190 };
191 Mount = {
192 What = "julm@aubergine.sp:/";
193 Where = "/mnt/aubergine";
194 Type = "fuse.sshfs";
195 Options = lib.concatStringsSep "," [
196 "user"
197 "uid=julm"
198 "gid=users"
199 "allow_other"
200 "exec" # Override "user"'s noexec
201 "noatime"
202 "nosuid"
203 "noauto"
204 "dir_cache=no"
205 #"reconnect"
206 "x-gvfs-hide"
207 # Does not work for user mounts
208 #"x-systemd.automount"
209 "IdentityFile=/home/julm/.ssh/id_ed25519"
210 #"Compression=yes" # YMMV
211 # Disconnect approximately 2*15=30 seconds after a network failure
212 "ServerAliveCountMax=1"
213 "ServerAliveInterval=15"
214 ];
215 };
216 };
217 };
218 */
219 /*
220 Automounting does not work without root privileges
221 systemd.user.automounts = {
222 mnt-aubergine = {
223 Install = {
224 WantedBy = ["user.target"];
225 };
226 Unit = {
227 };
228 Automount = {
229 Where = "/mnt/aubergine";
230 TimeoutIdleSec = "5 min";
231 };
232 };
233 };
234 */
235 }