Commit 232a19e0590c

Vincent Demeester <vincent@sbr.pm>
2024-02-20 16:27:54
systems: cleanup some deprecated profiles.*
… and clean up some hosts Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent e50ef16
systems/hosts/aomi.nix
@@ -130,12 +130,12 @@ in
         guiAddress = "${metadata.hosts.aomi.wireguard.addrs.v4}:8384";
       };
     };
+    virtualisation.libvirt = { enable = true; nested = true; };
   };
 
   profiles = {
     externalbuilder.enable = true;
     home = true;
-    virtualization = { enable = true; nested = true; };
   };
 
 
systems/hosts/kerkouane.nix
@@ -64,9 +64,6 @@ let
 in
 {
   imports = [
-    # (sources.nixos + "/nixos/modules/profiles/qemu-guest.nix")
-    # (import ../../nix).home-manager-stable
-    # ../modules/default.stable.nix
     (import ../../users/vincent)
     (import ../../users/root)
   ];
@@ -129,9 +126,8 @@ in
     buildCores = 1;
   };
 
+  # FIXME: deprecated, move to modules
   profiles = {
-    git.enable = true;
-    # ssh.enable = true;
     wireguard.server.enable = true;
   };
 
systems/hosts/naruhodo.nix
@@ -1,177 +0,0 @@
-# { sources ? import ../../nix
-# , lib ? sources.lib
-# , pkgs ? sources.pkgs { }
-# , ...
-# }:
-{ config, lib, pkgs, ... }:
-
-with lib;
-let
-  hostname = "naruhodo";
-  secretPath = ../../secrets/machines.nix;
-  secretCondition = (builtins.pathExists secretPath);
-
-  endpointIP = strings.optionalString secretCondition (import secretPath).wg.endpointIP;
-  endpointPort = if secretCondition then (import secretPath).wg.listenPort else 0;
-  endpointPublicKey = strings.optionalString secretCondition (import secretPath).wireguard.kerkouane.publicKey;
-
-  getEmulator = system: (lib.systems.elaborate { inherit system; }).emulator pkgs;
-  metadata = importTOML ../../ops/hosts.toml;
-in
-{
-  imports = [
-    ../hardware/thinkpad-t480s.nix
-    # (import ../../nix).home-manager
-    # ../modules
-    import ../../users/vincent
-    import ../../users/root
-  ];
-
-  fileSystems."/" = {
-    device = "/dev/mapper/root";
-    fsType = "ext4";
-    options = [ "noatime" "discard" ];
-  };
-
-  boot.initrd.luks.devices = {
-    root = {
-      device = "/dev/disk/by-uuid/50d7faba-8923-4b30-88f7-40df26e02def";
-      preLVM = true;
-      allowDiscards = true;
-      keyFile = "/dev/disk/by-id/usb-_USB_DISK_2.0_070D375D84327E87-0:0";
-      keyFileOffset = 30992883712;
-      keyFileSize = 4096;
-      fallbackToPassword = true;
-    };
-  };
-
-  fileSystems."/boot" = {
-    device = "/dev/disk/by-uuid/2294-77F4";
-    fsType = "vfat";
-  };
-
-  swapDevices = [{ device = "/dev/disk/by-uuid/c00da13a-39ee-4640-9783-baf0a3d13e73"; }];
-
-  networking = {
-    hostName = hostname;
-  };
-
-  boot = {
-    loader.systemd-boot.netbootxyz.enable = true;
-    kernelPackages = pkgs.linuxPackages_latest;
-    tmpOnTmpfs = true;
-    plymouth = {
-      enable = true;
-      themePackages = [ pkgs.my.adi1090x-plymouth ];
-      theme = "cuts";
-      # hexagon, green_loader, deus_ex, cuts, sphere, spinner_alt
-    };
-    extraModulePackages = with pkgs.linuxPackages_latest; [
-      v4l2loopback
-    ];
-    kernelModules = [ "v4l2loopback" ];
-    kernelParams = [ "cgroup_no_v1=all" "systemd.unified_cgroup_hierarchy=1" ];
-    extraModprobeConfig = ''
-      options v4l2loopback exclusive_caps=1
-    '';
-    binfmt.registrations = {
-      s390x-linux = {
-        # interpreter = getEmulator "s390x-linux";
-        interpreter = "${pkgs.qemu}/bin/qemu-s390x";
-        magicOrExtension = ''\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16'';
-        mask = ''\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'';
-      };
-    };
-    binfmt.emulatedSystems = [
-      "armv6l-linux"
-      "armv7l-linux"
-      "aarch64-linux"
-      # "s390x-linux"
-      "powerpc64le-linux"
-    ];
-  };
-
-  # FIXME Fix tmpOnTmpfs
-  systemd.additionalUpstreamSystemUnits = [ "tmp.mount" ];
-
-
-  services.udev.extraRules = ''
-    # Teensy rules for the Ergodox EZ
-    ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1"
-    ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1"
-    SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", MODE:="0666"
-    KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", MODE:="0666"
-
-    # STM32 rules for the Moonlander and Planck EZ
-    SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", \
-        MODE:="0666", \
-        SYMLINK+="stm32_dfu"
-
-    # Suspend the system when battery level drops to 5% or lower
-    SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[0-5]", RUN+="${pkgs.systemd}/bin/systemctl hibernate"
-  '';
-  services.hardware.bolt.enable = true;
-  core.nix = {
-    # temporary or not
-    localCaches = [ ];
-  };
-
-  modules = {
-    hardware = {
-      yubikey.enable = true;
-    };
-  };
-  profiles = {
-    externalbuilder.enable = true;
-    desktop.i3.enable = true;
-    laptop.enable = true;
-    home = true;
-    dev.enable = true;
-    virtualization = { enable = true; nested = true; };
-    redhat.enable = true;
-    scanning.enable = true;
-    ssh.enable = true;
-    docker.enable = true;
-  };
-  environment.systemPackages = with pkgs; [
-    virtmanager
-    # force xbacklight to work
-    acpilight
-    docker-client
-  ];
-
-  services = {
-    logind.extraConfig = ''
-      HandleLidSwitchExternalPower=ignore
-      HandleLidSwitchDocked=ignore
-    '';
-    wireguard = {
-      enable = true;
-      ips = [ "${metadata.hosts.naruhodo.wireguard.addrs.v4}/24" ];
-      endpoint = endpointIP;
-      endpointPort = endpointPort;
-      endpointPublicKey = endpointPublicKey;
-    };
-    syncthing.guiAddress = "${metadata.hosts.naruhodo.wireguard.addrs.v4}:8384";
-    barrier.enable = true;
-  };
-
-  virtualisation = {
-    podman.enable = true;
-    containers = {
-      enable = true;
-      registries = {
-        search = [ "registry.fedoraproject.org" "registry.access.redhat.com" "registry.centos.org" "docker.io" "quay.io" ];
-      };
-      policy = {
-        default = [{ type = "insecureAcceptAnything"; }];
-        transports = {
-          docker-daemon = {
-            "" = [{ type = "insecureAcceptAnything"; }];
-          };
-        };
-      };
-    };
-  };
-
-}
systems/hosts/sakhalin.nix
@@ -74,7 +74,6 @@ in
   profiles = {
     bind.enable = true;
     home = true;
-    git.enable = true;
   };
 
   fileSystems."/export/gaia" = { device = "/mnt/gaia"; options = [ "bind" ]; };
systems/hosts/shikoku.nix
@@ -88,6 +88,23 @@ in
 
   modules = {
     core.binfmt.enable = true;
+    dev = {
+      enable = false;
+      docker = {
+        enable = true;
+        package = pkgs.docker_24;
+      };
+      podman.enable = true;
+      buildkit = {
+        enable = true;
+        grpcAddress = [
+          "unix:///run/buildkit/buildkitd.sock"
+          "tcp://aomi.home:1234"
+          "tcp://${metadata.hosts.shikoku.addrs.v4}:1234"
+          "tcp://${metadata.hosts.shikoku.wireguard.addrs.v4}:1234"
+        ];
+      };
+    };
     services = {
       syncthing = {
         enable = true;
@@ -105,9 +122,6 @@ in
   profiles = {
     bind.enable = true;
     home = true;
-    dev.enable = lib.mkForce false;
-    desktop.enable = lib.mkForce false;
-    docker.enable = true;
   };
   services = {
     aria2 = {
systems/hosts/wakasu.nix
@@ -117,13 +117,11 @@ in
       };
       ssh.enable = true;
     };
+    virtualisation.libvirt = { enable = true; nested = true; };
   };
 
   # TODO Migrate to modules
   profiles.home = true;
-  # Temporarly disable external builders, home network is down.
-  # profiles.externalbuilder.enable = true;
-  profiles.virtualization = { enable = true; nested = true; };
   virtualisation.podman.dockerSocket.enable = true;
   virtualisation.podman.autoPrune.enable = true;
   environment.systemPackages = with pkgs; [
systems/modules/hardware/yubikey.nix
@@ -35,9 +35,9 @@ in
         };
       };
     }
-    (mkIf config.profiles.desktop.enable {
+    (mkIf config.modules.desktop.enable {
       environment.systemPackages = with pkgs; [
-        yubioath-desktop
+        yubioath-flutter
       ];
     })
     (mkIf cfg.u2f {
systems/modules/profiles/desktop.nix
@@ -1,157 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.profiles.desktop;
-in
-{
-  options = {
-    profiles.desktop = {
-      enable = mkEnableOption "Enable desktop profile";
-      avahi = mkOption {
-        default = true;
-        description = "Enable avahi  with the desktop profile";
-        type = types.bool;
-      };
-      audio = mkOption {
-        default = true;
-        description = "Enable audio with the desktop profile";
-        type = types.bool;
-      };
-      syncthing = mkOption {
-        default = true;
-        description = "Enable syncthing with the desktop profile";
-        type = types.bool;
-      };
-      scanning = mkOption {
-        default = true;
-        description = "Enable scanning with the desktop profile";
-        type = types.bool;
-      };
-      printing = mkOption {
-        default = true;
-        description = "Enable printing with the desktop profile";
-        type = types.bool;
-      };
-      networkmanager = mkOption {
-        default = true;
-        description = "Enable networkmanager with the desktop profile";
-        type = types.bool;
-      };
-    };
-  };
-  config = mkIf cfg.enable {
-    profiles.printing.enable = cfg.printing;
-    profiles.scanning.enable = cfg.scanning;
-
-    modules = {
-      hardware = {
-        bluetooth.enable = true;
-        audio.enable = cfg.audio;
-      };
-      services = {
-        avahi.enable = cfg.avahi;
-        syncthing.enable = cfg.syncthing;
-      };
-    };
-
-    networking.networkmanager = {
-      enable = cfg.networkmanager;
-      unmanaged = [
-        "interface-name:br-*"
-        "interface-name:ve-*"
-        "interface-name:veth*"
-      ]
-      # Do not manager wireguard
-      ++ lib.optionals config.networking.wireguard.enable [ "interface-name:wg0" ]
-      # Do not manage docker interfaces
-      ++ lib.optionals config.virtualisation.docker.enable [ "interface-name:docker0" ]
-      # Do not manager libvirt interfaces
-      ++ lib.optionals config.virtualisation.libvirtd.enable [ "interface-name:virbr*" ];
-      packages = with pkgs; [ networkmanager-openvpn ];
-      dispatcherScripts = [{
-        # https://askubuntu.com/questions/1271491/disable-wifi-if-lan-is-connected
-        source = pkgs.writeText "wifi-wired-exclusive" ''
-          #!${pkgs.bash}/bin/bash
-          export LC_ALL=C
-
-          enable_disable_wifi ()
-          {
-              result=$(${pkgs.networkmanager}/bin/nmcli dev | ${pkgs.gnugrep}/bin/grep "ethernet" | ${pkgs.gnugrep}/bin/grep -w "connected")
-              if [ -n "$result" ]; then
-                  ${pkgs.networkmanager}/bin/nmcli radio wifi off
-              else
-                  ${pkgs.networkmanager}/bin/nmcli radio wifi on
-              fi
-          }
-
-          if [ "$2" = "up" ]; then
-              enable_disable_wifi
-          fi
-
-          if [ "$2" = "down" ]; then
-              enable_disable_wifi
-          fi
-        '';
-        type = "basic";
-      }];
-    };
-
-    services = {
-      xserver = {
-        enable = true;
-        enableTCP = false;
-        libinput.enable = true;
-        synaptics.enable = false;
-        layout = "fr";
-        xkbVariant = "bepo";
-        xkbOptions = "grp:menu_toggle,grp_led:caps,compose:caps";
-      };
-    };
-    fonts = {
-      fontDir.enable = true;
-      enableGhostscriptFonts = true;
-      fonts = with pkgs; [
-        liberation_ttf
-        corefonts
-        dejavu_fonts
-        emojione
-        feh
-        fira
-        fira-code
-        fira-code-symbols
-        fira-mono
-        hasklig
-        inconsolata
-        input
-        ia-fonts
-        iosevka
-        noto-fonts
-        noto-fonts-cjk
-        noto-fonts-emoji
-        noto-fonts-extra
-        overpass
-        symbola
-        source-code-pro
-        twemoji-color-font
-        ubuntu_font_family
-        unifont
-      ];
-    };
-
-    environment.systemPackages = with pkgs; [
-      cryptsetup
-      xorg.xmodmap
-      # xorg.xbacklight
-      xorg.xdpyinfo
-      xorg.xhost
-      xorg.xinit
-      xss-lock
-      xorg.xmessage
-      unzip
-      gnupg
-      pinentry
-      inxi
-    ];
-  };
-}
systems/modules/profiles/dev.nix
@@ -1,25 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.profiles.dev;
-in
-{
-  options = {
-    profiles.dev = {
-      enable = mkEnableOption "Enable dev profile";
-    };
-  };
-  config = mkIf cfg.enable {
-    profiles.git.enable = true;
-    # services.lorri.enable = true;
-    environment.systemPackages = with pkgs; [
-      git
-      tig
-      grc
-      ripgrep
-      gnumake
-      sops
-    ];
-  };
-}
systems/modules/profiles/git.nix
@@ -1,69 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.profiles.git;
-in
-{
-  options = {
-    profiles.git = {
-      enable = mkEnableOption "Enable git profile";
-    };
-  };
-  config = mkIf cfg.enable {
-    environment.systemPackages = with pkgs; [
-      git
-      # gitAndTools.git-extras
-    ];
-    environment.etc."gitconfig" = rec {
-      text = ''
-        [alias]
-            co = checkout
-            st = status
-            ci = commit --signoff
-            ca = commit --amend
-            b = branc --color -v
-            br = branch
-            unstage = reset HEAD
-            lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
-            lga = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative --branches --remotes
-            lol = log --pretty=oneline --abbrev-commit --graph --decorate
-            conflicts = !git ls-files --unmerged | cut -c51- | sort -u | xargs $EDITOR
-            resolve = !git ls-files --unmerged | cut -c51- | sort -u | xargs git add
-        [color]
-          branch = auto
-          diff = auto
-          status = auto
-        [color "branch"]
-          current = cyan reverse
-          local = cyan
-          remote = green
-        [color "diff"]
-          meta = white reverse
-          frag = magenta reverse
-          old = red
-          new = green
-        [color "status"]
-          added = green
-          changed = yellow
-          untracked = red
-        [core]
-          #excludesfile = ~/.gitignore.global
-        [push]
-          default = matching
-        [merge]
-            tool = vimdiff
-
-        [user]
-            name = Vincent Demeester
-            email = vincent@sbr.pm
-
-        [http]
-                cookiefile = /home/vincent/.gitcookies
-
-        [url "git@github.com:"]
-            pushInsteadOf = git://github.com/
-      '';
-    };
-  };
-}
systems/modules/profiles/gnome.nix
@@ -1,31 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.profiles.desktop.gnome;
-in
-{
-  options = {
-    profiles.desktop.gnome = {
-      enable = mkEnableOption "Enable Gnome desktop profile";
-    };
-  };
-  config = mkIf cfg.enable {
-    modules.services.avahi.enable = true;
-    profiles = {
-      desktop.enable = true;
-    };
-    services = {
-      gnome = {
-        chrome-gnome-shell.enable = true;
-        core-shell.enable = true;
-        core-os-services.enable = true;
-        core-utilities.enable = true;
-      };
-      xserver = {
-        displayManager.gdm.enable = true;
-        desktopManager.gnome3.enable = true;
-      };
-    };
-  };
-}
systems/modules/profiles/i3.nix
@@ -1,37 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.profiles.desktop.i3;
-in
-{
-  options = {
-    profiles.desktop.i3 = {
-      enable = mkEnableOption "Enable i3 desktop profile";
-    };
-  };
-
-  config = mkIf cfg.enable {
-    profiles = {
-      desktop.enable = true;
-    };
-    services = {
-      blueman.enable = true;
-      autorandr.enable = true;
-      xserver = {
-        displayManager = {
-          defaultSession = "none+i3";
-          lightdm.enable = true;
-          lightdm.greeters.pantheon.enable = true;
-        };
-        windowManager.i3.enable = true;
-      };
-      dbus = {
-        enable = true;
-        # socketActivated = true;
-        packages = [ pkgs.dconf ];
-      };
-    };
-    programs.dconf.enable = true;
-  };
-}
systems/modules/profiles/virtualization.nix
@@ -1,58 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.profiles.virtualization;
-in
-{
-  options = {
-    profiles.virtualization = {
-      enable = mkEnableOption "Enable virtualization profile";
-      nested = mkOption {
-        default = false;
-        description = "Enable nested virtualization";
-        type = types.bool;
-      };
-      listenTCP = mkOption {
-        default = false;
-        description = "Make libvirt listen to TCP";
-        type = types.bool;
-      };
-    };
-  };
-  config = mkIf cfg.enable (mkMerge [
-    {
-      virtualisation.libvirtd = {
-        enable = true;
-      };
-      environment.systemPackages = with pkgs; [
-        qemu
-        vde2
-        libosinfo
-      ];
-    }
-    (mkIf cfg.nested {
-      boot.kernelParams = [ "kvm_intel.nested=1" ];
-      environment.etc."modprobe.d/kvm.conf".text = ''
-        options kvm_intel nested=1
-      '';
-    })
-    (mkIf config.profiles.desktop.enable {
-      environment.systemPackages = with pkgs; [ virtmanager ];
-    })
-    (mkIf cfg.listenTCP {
-      boot.kernel.sysctl = { "net.ipv4.ip_forward" = 1; };
-      virtualisation.libvirtd = {
-        allowedBridges = [ "br1" ];
-        extraConfig = ''
-          listen_tls = 0
-          listen_tcp = 1
-          auth_tcp="none"
-          tcp_port = "16509"
-        '';
-        # extraOptions = [ "--listen" ];
-      };
-      networking.firewall.allowedTCPPorts = [ 16509 ];
-    })
-  ]);
-}
systems/modules/virtualisation/libvirt.nix
@@ -21,7 +21,7 @@ in
       environment.systemPackages = with pkgs; [ qemu vde2 libosinfo ];
     }
     (mkIf config.modules.desktop.enable {
-      environment.systemPackages = with pkgs; [ virtmanager ];
+      environment.systemPackages = with pkgs; [ virt-manager ];
     })
     (mkIf cfg.nested {
       boot.kernelParams = [ "kvm_intel.nested=1" ];
users/modules/profiles/vscode.nix
@@ -1,197 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.profiles.dev.vscode;
-in
-{
-  options = {
-    profiles.dev.vscode = {
-      enable = mkEnableOption "Enable VS Code profile";
-    };
-  };
-  config = mkIf cfg.enable {
-    programs.vscode = {
-      enable = true;
-      userSettings = {
-        "workbench.iconTheme" = "material-icon-theme";
-        "workbench.colorTheme" = "plain";
-        "editor.fontFamily" = "'Fira Code','Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'";
-        "[nix]"."editor.tabSize" = 2;
-        "editor.minimap.enabled" = false;
-        "window.titleBarStyle" = "custom";
-        "breadcrumbs.enabled" = true;
-        "go.useLanguageServer" = true;
-      };
-      extensions = pkgs.vscode-utils.extensionsFromVscodeMarketplace [
-        {
-          name = "remote-ssh";
-          publisher = "ms-vscode-remote";
-          version = "0.42.2";
-          sha256 = "0aqjlbndiq1q8gh4dkj68sbr56ya458c8xh7f8bkhw5rnmz31pj5";
-        }
-        {
-          name = "remote-ssh-edit";
-          publisher = "ms-vscode-remote";
-          version = "0.42.2";
-          sha256 = "0qkdz1ng5mk35x8awa9wavb138hd454da8gsf7m66xyfifsmcn6h";
-        }
-        {
-          name = "remote-ssh-explorer";
-          publisher = "ms-vscode-remote";
-          version = "0.42.2";
-          sha256 = "02wg1bvl9923ldxlkj0qdlpf0njrd2r805561dkw5yp8siiim768";
-        }
-        {
-          name = "EditorConfig";
-          publisher = "EditorConfig";
-          version = "0.12.4";
-          sha256 = "067mxkzjmgz9lv5443ig7jc4dpgml4pz0dac0xmqrdmiwml6j4k4";
-        }
-        {
-          name = "vsc-material-theme";
-          publisher = "Equinusocio";
-          version = "2.6.3";
-          sha256 = "1ghqp0yfcpcnjcwgvxw7aix9fj5q8kr0i97lmzlw2jqslmyvxg5x";
-        }
-        {
-          name = "material-icon-theme";
-          publisher = "PKief";
-          version = "3.6.0";
-          sha256 = "0jphqqs41pkyv11mq1a3wzx14sl6pifcfyz3lw5wany003fv5s9s";
-        }
-        {
-          name = "fish-vscode";
-          publisher = "skyapps";
-          version = "0.2.0";
-          sha256 = "148r186y3h7n84fcyh6wa2qwl2q3pfi8aykwkc9dhfj3kwfcm5rb";
-        }
-        {
-          name = "code-runner";
-          publisher = "formulahendry";
-          version = "0.9.4";
-          sha256 = "08qq21gaa7igklv9si35qxhs79na893vyp96hf7rvyv7c4fn1pvw";
-        }
-        {
-          name = "gitlens";
-          publisher = "eamodio";
-          version = "8.5.6";
-          sha256 = "1vn6fvxn4g3759pg9rp8hqdc58pgyvcdma1ylfwmdnipga37xfd3";
-        }
-        {
-          name = "vscode-direnv";
-          publisher = "Rubymaniac";
-          version = "0.0.2";
-          sha256 = "1gml41bc77qlydnvk1rkaiv95rwprzqgj895kxllqy4ps8ly6nsd";
-        }
-        {
-          name = "vscode-proto3";
-          publisher = "zxh404";
-          version = "0.2.1";
-          sha256 = "12yf66a9ws5hlyj38nmn91y8a1jrq8696fnmgk60w9anyfalbn4q";
-        }
-        {
-          name = "project-manager";
-          publisher = "alefragnani";
-          version = "9.0.1";
-          sha256 = "0aqyavgpaqvv62q15h4dkxcgj4khsgr1rlzr3wi9aflyncg7addb";
-        }
-        {
-          name = "tslint";
-          publisher = "eg2";
-          version = "1.0.39";
-          sha256 = "1al61xzz7p6rqgk7rplg3njj4hyiipx7w89pqfn8634skw7r32rl";
-        }
-        {
-          name = "vscode-npm-script";
-          publisher = "eg2";
-          version = "0.3.5";
-          sha256 = "1v4081siab0fm0zfn6vlvqlc4vx131q8y6f3h3l46mvpndsa2rck";
-        }
-        {
-          name = "vscode-pull-request-github";
-          publisher = "GitHub";
-          version = "0.1.6";
-          sha256 = "08r0i265q4gk6kmz3ynxglhssdk5020bifagl9jr8spfs5sacnsx";
-        }
-        {
-          name = "vscode-kubernetes-tools";
-          publisher = "ms-kubernetes-tools";
-          version = "0.1.14";
-          sha256 = "0ixs1cydbz6qizf9cs0jdqpxwfg7gs74jdy9hp2v9h8q7vq6503l";
-        }
-        # languages
-        {
-          name = "Go";
-          publisher = "ms-vscode";
-          version = "0.6.89";
-          sha256 = "05mzw4bwsa9wxldnkdgk0b4n4xm8gzhmrbqy6j8lbk3p360wdg8z";
-        }
-        {
-          name = "rust";
-          publisher = "rust-lang";
-          version = "0.4.10";
-          sha256 = "1y7sb3585knv2pbq7vf2cjf3xy1fgzrqzn2h3fx2d2bj6ns6vpy3";
-        }
-        {
-          name = "crates";
-          publisher = "serayuzgur";
-          version = "0.3.2";
-          sha256 = "0xn24vghmcf8fi8cdgaa3f0npmkdr4fdn9y1g56l2fzrx2z4rw3q";
-        }
-        {
-          name = "Kotlin";
-          publisher = "mathiasfrohlich";
-          version = "1.7.0";
-          sha256 = "1d81rgfh1c1wkz4la0mmjj6k28if237f835diyk3z6n63cazapli";
-        }
-        {
-          name = "java";
-          publisher = "redhat";
-          version = "0.31.0";
-          sha256 = "1hzqiqkja4931k7rb4pmva6k80ss53nvyksiqvq6kxj25rg3kd1b";
-        }
-        {
-          name = "vscode-java-debug";
-          publisher = "vscjava";
-          version = "0.13.0";
-          sha256 = "11xvd1b0qsvrbm4yb0c7fm537p1gs6wz45xzl6v1a7k08dapi20i";
-        }
-        {
-          name = "vscode-java-test";
-          publisher = "vscjava";
-          version = "0.9.0";
-          sha256 = "0000v5qh100n3n529r1nzx79cawx83kvprrmhw6pb4j0m5b3p3p2";
-        }
-        {
-          name = "gradle-language";
-          publisher = "naco-siren";
-          version = "0.2.3";
-          sha256 = "15lzxvym0mkljjn57av1p4z6hqqwbsbn5idw2fn7nccgrl93aywf";
-        }
-        {
-          name = "vscode-yaml";
-          publisher = "redhat";
-          version = "0.0.16";
-          sha256 = "0v21qj65nrp850r0jmivmsm9y5i99ymxxm8ganzdia4vbv5hzx9r";
-        }
-        {
-          name = "better-toml";
-          publisher = "bungcip";
-          version = "0.3.2";
-          sha256 = "08lhzhrn6p0xwi0hcyp6lj9bvpfj87vr99klzsiy8ji7621dzql3";
-        }
-        {
-          name = "plain";
-          publisher = "konstantin";
-          version = "0.0.7";
-          sha256 = "0qbn8bdcbvz8qfjb42n4j9asmsd6zf33w9ypyinb7x37ylw482nx";
-        }
-      ] ++ [
-        pkgs.vscode-extensions.bbenoist.Nix
-        pkgs.vscode-extensions.ms-python.python
-        # pkgs.vscodeliveshare
-      ];
-    };
-  };
-}
users/vincent/desktop/default.nix
@@ -16,13 +16,13 @@ in
     ./audio.nix
   ]
   ++ optionals nixosConfig.modules.desktop.xorg.enable [ ./xorg.nix ]
-  ++ optionals nixosConfig.profiles.desktop.i3.enable [ ./i3.nix ./xorg.nix ]
   ++ optionals nixosConfig.modules.desktop.wayland.enable [ ./wayland.nix ]
   ++ optionals nixosConfig.modules.desktop.wayland.sway.enable [ ./sway.nix ]
-  ++ optionals nixosConfig.modules.desktop.wayland.hyprland.enable [ ./hyprland.nix ]
-  ++ optionals nixosConfig.profiles.desktop.gnome.enable [ (import ./gnome.nix) ];
+  ++ optionals nixosConfig.modules.desktop.wayland.hyprland.enable [ ./hyprland.nix ];
 
-  home.sessionVariables = { WEBKIT_DISABLE_COMPOSITING_MODE = 1; };
+  home.sessionVariables = {
+    WEBKIT_DISABLE_COMPOSITING_MODE = 1;
+  };
   home.packages = with pkgs; [
     aspell
     aspellDicts.en
users/vincent/default.nix
@@ -24,13 +24,11 @@ in
     extraGroups = [ "wheel" "input" ]
       ++ optionals config.networking.networkmanager.enable [ "networkmanager" ]
       ++ optionals config.modules.desktop.enable [ "audio" "video" ]
-      ++ optionals config.profiles.desktop.enable [ "audio" "video" ] # FIXME deprecated
       ++ optionals config.profiles.scanning.enable [ "lp" "scanner" ]
       ++ optionals config.networking.networkmanager.enable [ "networkmanager" ]
       ++ optionals config.virtualisation.docker.enable [ "docker" ]
       ++ optionals config.virtualisation.buildkitd.enable [ "buildkit" ]
       ++ optionals config.modules.virtualisation.libvirt.enable [ "libvirtd" ]
-      ++ optionals config.profiles.virtualization.enable [ "libvirtd" ] # FIXME deprecated
       ++ optionals config.services.nginx.enable [ "nginx" ];
     shell = mkIf config.programs.zsh.enable pkgs.zsh;
     isNormalUser = true;
@@ -82,23 +80,15 @@ in
         (import ./containers/kubernetes.nix)
         (import ./containers/openshift.nix)
         (import ./containers/tekton.nix)
-      ]
-      ++ optionals config.modules.dev.containers.enable [
-        (import ./containers)
-      ]
-      ++ optionals config.modules.desktop.enable [ (import ./desktop) ]
-      ++ optionals config.profiles.dev.enable [
-        (import ./dev)
-        (import ./containers)
-        (import ./containers/kubernetes.nix)
-        (import ./containers/openshift.nix)
-        (import ./containers/tekton.nix)
         {
           # Enable only on dev, could do something better than this longterm 😀
           services.keybase.enable = true;
         }
       ]
-      ++ optionals config.profiles.desktop.enable [ (import ./desktop) ]
+      ++ optionals config.modules.dev.containers.enable [
+        (import ./containers)
+      ]
+      ++ optionals config.modules.desktop.enable [ (import ./desktop) ]
       ++ optionals (config.networking.hostName == "wakasu" || config.networking.hostName == "aomi") [
         {
           home.packages = with pkgs; [
flake.nix
@@ -60,15 +60,10 @@
         # Profiles probably need to go away
         ./systems/modules/profiles/base.nix
         ./systems/modules/profiles/builder.nix
-        ./systems/modules/profiles/desktop.nix
-        ./systems/modules/profiles/dev.nix
         ./systems/modules/profiles/dns.nix
         ./systems/modules/profiles/docker.nix
-        ./systems/modules/profiles/git.nix
-        ./systems/modules/profiles/gnome.nix
         ./systems/modules/profiles/home.nix
         ./systems/modules/profiles/i18n.nix
-        ./systems/modules/profiles/i3.nix
         ./systems/modules/profiles/ipfs.nix
         ./systems/modules/profiles/kubernetes.nix
         ./systems/modules/profiles/laptop.nix
@@ -77,7 +72,6 @@
         ./systems/modules/profiles/qemu.nix
         ./systems/modules/profiles/redhat.nix
         ./systems/modules/profiles/scanning.nix
-        ./systems/modules/profiles/virtualization.nix
         ./systems/modules/profiles/wireguard.server.nix
         ./systems/modules/profiles/zsh.nix
         inputs.sops-nix.nixosModules.sops