From c1417cf36d2f54acf59be8e4627a83d9d24961da Mon Sep 17 00:00:00 2001
From: Felix Albrigtsen <felix@albrigtsen.it>
Date: Tue, 3 Dec 2024 22:44:25 +0100
Subject: [PATCH] sisko: Install and configure desktop apps, hyprland, etc.

---
 hosts/sisko/applications.nix           | 10 -----
 hosts/sisko/configuration.nix          | 10 +++--
 hosts/sisko/desktop.nix                | 30 +++++++++++----
 hosts/sisko/hardware-configuration.nix |  5 +++
 hosts/sisko/home.nix                   | 53 +++++++++++++++++++++-----
 5 files changed, 78 insertions(+), 30 deletions(-)
 delete mode 100644 hosts/sisko/applications.nix

diff --git a/hosts/sisko/applications.nix b/hosts/sisko/applications.nix
deleted file mode 100644
index 39fba52..0000000
--- a/hosts/sisko/applications.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ config, pkgs, lib, ... }:
-{
-  programs.steam = {
-     enable = true;
-    remotePlay.openFirewall = true;
-  };
-
-  environment.systemPackages = with pkgs; [
-  ];
-}
diff --git a/hosts/sisko/configuration.nix b/hosts/sisko/configuration.nix
index 498bffa..e56dba0 100644
--- a/hosts/sisko/configuration.nix
+++ b/hosts/sisko/configuration.nix
@@ -7,7 +7,6 @@
       ../../common/metrics-exporters.nix
       ./hardware-configuration.nix
       ./desktop.nix
-      ./applications.nix
   ];
 
   networking = {
@@ -22,14 +21,19 @@
   };
 
   hardware.bluetooth.enable = true;
-
   sops.defaultSopsFile = ../../secrets/sisko/sisko.yaml;
-
   environment.variables = { EDITOR = "vim"; };
 
+  programs.gamemode.enable = true;
+  programs.steam = {
+    enable = true;
+    remotePlay.openFirewall = true;
+  };
+
   nixpkgs.config = {
     allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
       "copilot.vim"
+      "discord"
       "steam"
       "steam-unwrapped"
       "tlclient"
diff --git a/hosts/sisko/desktop.nix b/hosts/sisko/desktop.nix
index dc2ebce..5b83e94 100644
--- a/hosts/sisko/desktop.nix
+++ b/hosts/sisko/desktop.nix
@@ -5,16 +5,13 @@
     enable = true;
     enable32Bit = true;
   };
-  # services.displayManager.ly.enable = true;
+  services.displayManager.ly.enable = true;
+  services.xserver.enable = true;
+
   programs.hyprland = {
     enable = true;
-    withUWSM = true;
     xwayland.enable = true;
   };
-  services.xserver.enable = true;
-  services.xserver.displayManager.gdm.enable = true;
-  services.xserver.desktopManager.gnome.enable = true;
-
 
   # Audio
   services.pipewire = {
@@ -50,9 +47,26 @@
 
   services.gnome.gnome-keyring.enable = true;
 
+  # Dark mode
   home-manager.users.felixalb = {
-    services = {
-      dunst.enable = true;
+    dconf.settings = {
+      "org/gnome/desktop/interface" = {
+        color-scheme = "prefer-dark";
+      };
+    };
+
+    gtk = {
+      enable = true;
+      theme = {
+        name = "Adwaita-dark";
+        package = pkgs.gnome-themes-extra;
+      };
     };
   };
+
+  qt = {
+    enable = true;
+    platformTheme = "gnome";
+    style = "adwaita-dark";
+  };
 }
diff --git a/hosts/sisko/hardware-configuration.nix b/hosts/sisko/hardware-configuration.nix
index 333d874..323835c 100644
--- a/hosts/sisko/hardware-configuration.nix
+++ b/hosts/sisko/hardware-configuration.nix
@@ -10,6 +10,11 @@
   boot.kernelModules = [ "kvm-amd" ];
   boot.extraModulePackages = [ ];
 
+  boot.kernel.sysctl = {
+    "vm.max_map_count" = 16777216;
+    # "fs.file-max" = 524288;
+  };
+
   fileSystems."/" =
     { device = "/dev/disk/by-uuid/60a70caf-ca37-488d-8c2a-98a7e9b67d84";
       fsType = "btrfs";
diff --git a/hosts/sisko/home.nix b/hosts/sisko/home.nix
index 51bfcd9..b9f55d5 100644
--- a/hosts/sisko/home.nix
+++ b/hosts/sisko/home.nix
@@ -7,26 +7,47 @@
   ];
 
   home.packages = with pkgs; [
+    # GUI Applications
+    chromium
+    discord
+    element-desktop
+    jellyfin-media-player
+    kitty
+    libreoffice
+    mpv
+    mumble
+    pavucontrol
+    prismlauncher
+
+    # Window Manager Extras
+    bibata-cursors
+    hyprcursor
+    hypridle
+    hyprlock
+    hyprpaper
+    hyprshot
+    nautilus
+    networkmanager
+    rofi-rbw-wayland
+    swaynotificationcenter
+    waybar
+
+    # Misc tools
     bc
     catimg
-    chromium
     dante
     dig
-    element-desktop
     hunspellDicts.en_US
     hunspellDicts.nb_NO
     jq
-    libreoffice
-    mpv
     nixpkgs-2211.remmina
     openssl
+    playerctl
     pwgen
-    tlclient
     traceroute
-    virt-manager
     w3m
 
-    (python311.withPackages (ps: with ps; [
+    (python312.withPackages (ps: with ps; [
       numpy
       pycryptodome
       requests
@@ -38,8 +59,12 @@
       enable = true;
       package = pkgs.aerc;
     };
-    alacritty.enable = true;
+    alacritty = {
+      enable = true;
+      settings.window.opacity = 0.92;
+    };
     firefox.enable = true;
+    neovim.plugins = with pkgs.vimPlugins; [ copilot-vim ];
     rbw = {
       enable = true;
       settings = {
@@ -51,13 +76,23 @@
     rofi = {
       enable = true;
       theme = "iggy";
+      package = pkgs.rofi-wayland;
     };
     zsh = {
       shellAliases."rebuild" = "sudo nixos-rebuild switch --flake /config";
       prezto.pmodules = [ "ssh" ];
     };
+  };
 
-    neovim.plugins = with pkgs.vimPlugins; [ copilot-vim ];
+  home.pointerCursor = {
+    name = "Bibata-Modern-Ice";
+    package = pkgs.bibata-cursors;
+    size = 24;
+    gtk.enable = true;
+    x11 = {
+      enable = true;
+      defaultCursor = true;
+    };
   };
 
   xdg.mimeApps = {