11     #../nixos/profiles/debug.nix
 
  12     ../nixos/profiles/graphical.nix
 
  13     #../nixos/profiles/irssi.nix
 
  14     ../nixos/profiles/lang-fr.nix
 
  15     ../nixos/profiles/desktop.nix
 
  16     ../nixos/profiles/printing.nix
 
  17     #../nixos/profiles/radio.nix
 
  18     ../nixos/profiles/tor.nix
 
  19     ../nixos/profiles/bluetooth.nix
 
  20     ../nixos/profiles/home.nix
 
  21     #blackberry/backup.nix
 
  22     blackberry/hardware.nix
 
  24     blackberry/networking.nix
 
  25     #blackberry/pixiecore.nix
 
  26     blackberry/nix-ssh.nix
 
  29   # Lower kernel's security for better performances
 
  30   security.kernel.mitigations = "off";
 
  32   home-manager.users.julm = {
 
  33     imports = [ ../homes/julm.nix ];
 
  36     openssh.authorizedKeys.keys = map lib.readFile [
 
  37       # For nix -L run .#pumpkin.switch
 
  38       ../users/julm/ssh/oignon.pub
 
  39       ../users/julm/ssh/pumpkin.pub
 
  40       ../users/julm/ssh/blackberry.pub
 
  46     # Put the hashedPassword in /nix/store,
 
  47     # though /etc/shadow is not world readable...
 
  48     # printf %s $(mkpasswd -m md5crypt)
 
  49     hashedPassword = lib.readFile blackberry/users/julm/login/hashedPassword.clear;
 
  55       "plugdev" # For rtl-sdr
 
  62       config.services.davfs2.davGroup
 
  65     # If created, zfs-mount.service would require:
 
  66     # zfs set overlay=yes ${hostName}/home
 
  68     openssh.authorizedKeys.keys = map lib.readFile [
 
  69       ../users/julm/ssh/oignon.pub
 
  70       ../users/julm/ssh/pumpkin.pub
 
  71       ../users/julm/ssh/losurdo.pub
 
  80       trusted-public-keys = map lib.readFile [
 
  85   environment.systemPackages = [
 
  86     #pkgs.riseup-vpn # Can't be installed by home-manager because it needs to install policy-kit rules
 
  89   boot.extraModulePackages = [
 
  90     #config.boot.kernelPackages.v4l2loopback
 
  93   programs.fuse.userAllowOther = true;
 
  95   systemd.automounts = [
 
  97       where = "/mnt/aubergine";
 
  98       automountConfig.TimeoutIdleSec = "5 min";
 
 103       # Use the user's gpg-agent session to query
 
 104       # for the password of the SSH key when auto-mounting.
 
 105       sshAsUser = pkgs.writeScript "sshAsUser" ''
 
 107         exec ${pkgs.sudo}/bin/sudo -i -u "$user" \
 
 108           ${pkgs.openssh}/bin/ssh "$@"
 
 115         "exec" # Override "user"'s noexec
 
 119         "ssh_command=${sshAsUser}\\040julm"
 
 122         "x-systemd.automount"
 
 123         #"Compression=yes" # YMMV
 
 124         # Disconnect approximately 2*15=30 seconds after a network failure
 
 125         "ServerAliveCountMax=1"
 
 126         "ServerAliveInterval=15"
 
 133         device = "${pkgs.sshfs-fuse}/bin/sshfs#julm@aubergine.sp:/";
 
 139   networking.firewall.extraCommands = ''
 
 140     ip46tables -A nixos-fw -i wg-intra -p tcp -m tcp --dport 8000 -j ACCEPT
 
 145       layout = "fr,us(altgr-intl)";
 
 149         # Let the session be generated by home-manager
 
 151           name = "home-manager";
 
 153             ${pkgs.runtimeShell} $HOME/.hm-xsession &
 
 161   services.displayManager = {
 
 162     defaultSession = "home-manager";
 
 163     #defaultSession = "none+xmonad";
 
 164     #defaultSession = "mate";
 
 165     #defaultSession = "cinnamon";
 
 167       user = config.users.users.julm.name;
 
 171   nixpkgs.config.allowUnfreePredicate =
 
 173     builtins.elem (lib.getName pkg) [
 
 181   # This value determines the NixOS release with which your system is to be
 
 182   # compatible, in order to avoid breaking some software such as database
 
 183   # servers. You should change this only after NixOS release notes say you should.
 
 184   system.stateVersion = "24.05"; # Did you read the comment?