]> Git — Sourcephile - julm/julm-nix.git/blob - homes/julm.nix
wireguard: restart peer on failure (eg. DNS)
[julm/julm-nix.git] / homes / julm.nix
1 { pkgs, lib, config, ... }:
2 {
3 imports = [
4 ./softwares.nix
5 ./options.nix
6 julm/mutt.nix
7 julm/hosts/oignon.nix
8 julm/hosts/losurdo.nix
9 ];
10 host.desktop = lib.elem config.host.name [ /*"losurdo"*/ "oignon" ];
11 host.server = lib.elem config.host.name [ "losurdo" "mermet" ];
12 programs.bash.enable = true;
13 programs.gpg.enable = true;
14 home.file."${config.programs.gpg.homedir}/gpg.conf".text = ''
15 # julm@autogeree.net
16 trusted-key 0xD15AF7F467E8299B
17 # julm@sourcephile.fr
18 trusted-key 0x2E3618DD0D087650
19 '';
20 services.gpg-agent.enable = true;
21 services.gpg-agent.sshKeys = [
22 # julm@autogeree.net
23 "D275EBA09C7E1FFBFB47F6EEF164E6D56FB24AB2"
24 # julm@sourcephile.fr
25 "123BF80054E9E9CE2BD7B899F07207665392B727"
26 ];
27 programs.direnv.enable = true;
28 programs.htop.enable = true;
29 programs.irssi.enable = config.host.name == "mermet" || config.host.name == "losurdo";
30 programs.irssi.extraConfig = builtins.readFile julm/irssi/config;
31 home.file.".irssi/passwd".text = ''
32 FreeNode : ${pkgs.pass}/bin/pass freenode.net/irc/julm
33 GeekNode : ${pkgs.pass}/bin/pass geeknode.org/irc/julm
34 IndyMedia : ${pkgs.pass}/bin/pass indymedia.org/irc/julm
35 Libera : ${pkgs.pass}/bin/pass libera.chat/irc/julm
36 OFTC : ${pkgs.pass}/bin/pass oftc.net/irc/julm
37 ToileLibre : ${pkgs.pass}/bin/pass toile-libre.org/irc/julm
38 '';
39 programs.man.enable = true;
40 #programs.neovim.enable = true;
41 programs.ssh.enable = true;
42 programs.ssh.matchBlocks."lan.losurdo.sourcephile.fr" = {
43 compression = true; # Helps to get a better framerate with forwardX11
44 forwardX11 = true;
45 forwardX11Trusted = true;
46 serverAliveInterval = 15;
47 };
48 programs.tmux.enable = true;
49 programs.vim.enable = true;
50 manual.manpages.enable = false;
51 programs.git = {
52 enable = true;
53 userName = "Julien Moutinho";
54 userEmail = "julm@sourcephile.fr";
55 signing.key = "0x7182433A39582282929B2A222E3618DD0D087650";
56 signing.signByDefault = false;
57 package =
58 if lib.elem config.host.name [ "losurdo" "oignon" ]
59 then pkgs.gitFull
60 else pkgs.gitMinimal;
61 extraConfig = {
62 sendemail.smtpEncryption = "ssl"; # Yes, "ssl", not "tls" which does not work because it expects STARTTLS.
63 sendemail.smtpServer = "mail.sourcephile.fr";
64 sendemail.smtpServerPort = "465";
65 sendemail.smtpUser = "julm@sourcephile.fr";
66 };
67 };
68 services.redshift.enable = lib.mkDefault config.host.desktop;
69 xsession.enable = lib.mkDefault config.host.desktop;
70 xsession.windowManager.xmonad.enable = lib.mkDefault config.host.desktop;
71 home.stateVersion = "20.09";
72 home.sessionPath = [ "${config.home.homeDirectory}/bin" ];
73 home.sessionVariables = {
74 EDITOR = "vim";
75 LANG = "fr_FR.UTF-8";
76 LESS = "-FRSX";
77 LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive";
78 MANPAGER = "less";
79 };
80 # Warning: triggers a rebuild of mumble
81 #nixpkgs.config.mumble.speechdSupport = lib.mkDefault config.host.desktop;
82 home.packages = [
83 pkgs.acpi
84 #pkgs.amfora
85 pkgs.aria2
86 pkgs.aspell
87 pkgs.aspellDicts.fr
88 pkgs.bc
89 pkgs.binutils
90 pkgs.bison
91 pkgs.bmon
92 #pkgs.browsh
93 #pkgs.cabal2nix
94 pkgs.cachix
95 pkgs.compsize
96 pkgs.convmv
97 pkgs.coreutils
98 pkgs.croc
99 pkgs.cryptsetup
100 pkgs.curl
101 #pkgs.dnsutils
102 pkgs.dstat
103 pkgs.e2fsprogs
104 pkgs.ethtool
105 pkgs.exa
106 pkgs.ffmpeg
107 pkgs.file
108 pkgs.flex
109 pkgs.gcc
110 pkgs.git-crypt
111 pkgs.git-quick-stats
112 #pkgs.git-remote-gpg
113 pkgs.glib # gio
114 #pkgs.go-mtpfs
115 pkgs.gnumake
116 pkgs.gvfs
117 #pkgs.haskell.packages.ghc865.zerobin
118 pkgs.hledger
119 pkgs.home-manager
120 pkgs.htop
121 pkgs.hunspell
122 pkgs.hunspellDicts.fr-moderne
123 pkgs.hwinfo
124 pkgs.imagemagick
125 pkgs.inetutils
126 pkgs.ipfs
127 pkgs.jq
128 pkgs.knot-dns
129 pkgs.ldns
130 pkgs.less
131 pkgs.libfaketime
132 pkgs.libidn
133 pkgs.libxml2.bin
134 #pkgs.linuxPackages.cpupower
135 #pkgs.linuxPackages.perf
136 pkgs.lm_sensors
137 pkgs.lsof
138 pkgs.lsscsi
139 #pkgs.meli
140 pkgs.miniupnpc
141 pkgs.mosh
142 pkgs.ncdu
143 pkgs.ncurses
144 pkgs.neofetch
145 pkgs.nix-prefetch-git
146 pkgs.nixpkgs-review
147 pkgs.nmon
148 pkgs.ntfs3g
149 #pkgs.onionshare
150 pkgs.openssl
151 pkgs.opusTools
152 pkgs.p7zip
153 pkgs.parted
154 pkgs.pass
155 pkgs.pastebinit
156 pkgs.patchelf
157 pkgs.pciutils
158 pkgs.podl
159 pkgs.poppler_utils
160 pkgs.powertop
161 pkgs.procps
162 #pkgs.profanity
163 pkgs.qprint
164 pkgs.ranger
165 pkgs.rdfind
166 pkgs.ripgrep
167 pkgs.sanoid
168 pkgs.shellcheck
169 pkgs.sipcalc
170 pkgs.smartmontools
171 pkgs.sqlite
172 pkgs.sshfs
173 pkgs.stig
174 pkgs.strace
175 pkgs.stress
176 pkgs.sudo
177 pkgs.tcpdump
178 pkgs.thttpd
179 pkgs.tig
180 pkgs.tree
181 pkgs.unzip
182 pkgs.usbutils
183 pkgs.utillinux
184 pkgs.vbetool
185 pkgs.weechat
186 pkgs.wget
187 pkgs.wgetpaste
188 pkgs.which
189 pkgs.xdg_utils
190 pkgs.xmlstarlet
191 pkgs.xsel
192 pkgs.youtube-dl
193 pkgs.zfs
194 ] ++ lib.optionals config.host.desktop [
195 pkgs.amule
196 pkgs.calibre
197 #pkgs.chromium
198 pkgs.dino
199 pkgs.djview
200 pkgs.dmenu
201 pkgs.evince
202 pkgs.firefox
203 pkgs.freeciv_gtk
204 pkgs.gajim
205 pkgs.geeqie
206 pkgs.gimp
207 pkgs.glxinfo
208 pkgs.gparted
209 pkgs.graphviz
210 pkgs.hicolor-icon-theme
211 pkgs.keepass
212 pkgs.libdvdcss
213 pkgs.libreoffice
214 pkgs.liferea
215 pkgs.mplayer
216 pkgs.mpv
217 pkgs.mumble
218 pkgs.networkmanager-openvpn
219 pkgs.networkmanagerapplet
220 pkgs.nix-du
221 pkgs.pavucontrol
222 pkgs.thunderbird
223 pkgs.transmission-gtk
224 pkgs.vlc
225 pkgs.xclip
226 pkgs.xorg.xkill
227 pkgs.xsane
228 ];
229 }