107 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
{ pkgs, ... }:
 | 
						|
let
 | 
						|
mkConnection = name: cfg: {
 | 
						|
    connection = {
 | 
						|
        id = name;
 | 
						|
        type = "wifi";
 | 
						|
    };
 | 
						|
    ipv4 = {
 | 
						|
        method = "auto";
 | 
						|
    };
 | 
						|
    ipv6 = {
 | 
						|
        method = "auto";
 | 
						|
    };
 | 
						|
    wifi = {
 | 
						|
        ssid = name;
 | 
						|
        mode = "infrastructure";
 | 
						|
    };
 | 
						|
    wifi-security = {
 | 
						|
        auth-alg = "open";
 | 
						|
        key-mgmt = "wpa-psk";
 | 
						|
        psk = cfg.id;
 | 
						|
    };
 | 
						|
};
 | 
						|
connections = {
 | 
						|
    "The Buttshark" = {
 | 
						|
        id = "$THE_BUTTSHARK";
 | 
						|
    };
 | 
						|
    "5G Research Tower (5000 Watt)" = {
 | 
						|
        id = "$RESEARCH_TOWER";
 | 
						|
    };
 | 
						|
    "5G Research Tower (2400 Watt)" = {
 | 
						|
        id = "$RESEARCH_TOWER";
 | 
						|
    };
 | 
						|
};
 | 
						|
in
 | 
						|
{
 | 
						|
  services.pcscd.enable = true;
 | 
						|
  hardware.opengl.extraPackages = [
 | 
						|
      pkgs.intel-compute-runtime
 | 
						|
      pkgs.intel-media-driver
 | 
						|
  ];
 | 
						|
  services.udev.packages = [ pkgs.yubikey-personalization ];
 | 
						|
 | 
						|
  # Calendar
 | 
						|
  programs.dconf.enable = true;
 | 
						|
  services.gnome.evolution-data-server.enable = true;
 | 
						|
  services.gnome.gnome-online-accounts.enable = true;
 | 
						|
  services.gnome.gnome-keyring.enable = true;
 | 
						|
  environment.systemPackages = with pkgs; [ wireguard-tools ];
 | 
						|
 | 
						|
  # Add the server using gnome-online-accounts:
 | 
						|
  # nix-shell -p gnome.gnome-control-center --run "gnome-control-center"
 | 
						|
  # Just add the main webdav server and gnome-calendar will automatically pick up all available calendars.
 | 
						|
 | 
						|
  networking.wg-quick.interfaces = {
 | 
						|
    wg0 = {
 | 
						|
      address = [ "10.0.0.5/24" "2a02:a03f:83ad:2101::5/128" ];
 | 
						|
      dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ];
 | 
						|
      privateKeyFile = "/home/user/.secrets/Wireguard/Aloria.key";
 | 
						|
      listenPort = 51820;
 | 
						|
      postUp = "resolvectl dns wg0 10.0.0.1; resolvectl domain wg0 ~thomasave.be;";
 | 
						|
      peers = [{
 | 
						|
        publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c=";
 | 
						|
        allowedIPs = [ "10.0.0.1/8"  "192.168.1.2/32" ];
 | 
						|
        endpoint = "h.thomasave.be:13231";
 | 
						|
        persistentKeepalive = 25;
 | 
						|
      }];
 | 
						|
    };
 | 
						|
  };
 | 
						|
  networking.networkmanager = {
 | 
						|
      enable = true;
 | 
						|
      ensureProfiles = {
 | 
						|
        environmentFiles = [
 | 
						|
            "/home/user/.secrets/Wireless/Aloria.env"
 | 
						|
        ];
 | 
						|
        profiles = pkgs.lib.mapAttrs mkConnection connections;
 | 
						|
      };
 | 
						|
  };
 | 
						|
 | 
						|
 | 
						|
  fileSystems."/home/server" = {
 | 
						|
    device = "10.1:/home/server";
 | 
						|
    fsType = "nfs";
 | 
						|
    options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" ];
 | 
						|
  };
 | 
						|
  fileSystems."/home/user/Workspace" = {
 | 
						|
    device = "10.1:/home/server/Workspace";
 | 
						|
    fsType = "nfs";
 | 
						|
    options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" ];
 | 
						|
  };
 | 
						|
  fileSystems."/home/user/Documents" = {
 | 
						|
    device = "10.1:/home/server/Storage/Thomas/Documents";
 | 
						|
    fsType = "nfs";
 | 
						|
    options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" ];
 | 
						|
  };
 | 
						|
  fileSystems."/home/user/Pictures" = {
 | 
						|
    device = "10.1:/home/server/Storage/Thomas/Pictures";
 | 
						|
    fsType = "nfs";
 | 
						|
    options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" ];
 | 
						|
  };
 | 
						|
  fileSystems."/home/user/Videos" = {
 | 
						|
    device = "10.1:/home/server/Storage/Thomas/Videos";
 | 
						|
    fsType = "nfs";
 | 
						|
    options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" ];
 | 
						|
  };
 | 
						|
}
 |