From 2c70c86c8e2ee4cd35434dfea3a715c6edc93224 Mon Sep 17 00:00:00 2001 From: Artur Manuel Date: Wed, 16 Oct 2024 17:01:46 +0100 Subject: [PATCH] feat: sddm module --- computers/shared/default.nix | 1 + computers/shared/sddm.nix | 25 +++++++ computers/toothless/default.nix | 121 +++++++++++++++----------------- flake.lock | 59 ++++++++++++++-- flake.nix | 6 ++ lib/default.nix | 3 + overlays/default.nix | 26 +++++++ 7 files changed, 172 insertions(+), 69 deletions(-) create mode 100644 computers/shared/sddm.nix create mode 100644 overlays/default.nix diff --git a/computers/shared/default.nix b/computers/shared/default.nix index 3dd1a50..b6fa1c9 100644 --- a/computers/shared/default.nix +++ b/computers/shared/default.nix @@ -1,5 +1,6 @@ {...}: { imports = [ ./fish.nix + ./sddm.nix ]; } diff --git a/computers/shared/sddm.nix b/computers/shared/sddm.nix new file mode 100644 index 0000000..7ebb327 --- /dev/null +++ b/computers/shared/sddm.nix @@ -0,0 +1,25 @@ +{ + config, + pkgs, + lib, + ... +}: let + cfg = config.alqueva.sddm; +in { + options.alqueva.sddm = { + enable = lib.mkEnableOption "sddm"; + }; + config = lib.mkIf cfg.enable { + services.displayManager.sddm = { + wayland = { + enable = true; + compositor = "kwin"; + }; + enable = true; + theme = "where_is_my_sddm_theme"; + }; + environment.systemPackages = [ + pkgs.i-found-my-sddm-theme + ]; + }; +} diff --git a/computers/toothless/default.nix b/computers/toothless/default.nix index 86b5b8e..95e65c0 100644 --- a/computers/toothless/default.nix +++ b/computers/toothless/default.nix @@ -4,80 +4,71 @@ ./disks.nix ]; - boot.loader = { - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; - }; + config = { + boot.loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; - console = { - font = "Lat2-Terminus16"; - keyMap = "us"; - }; + console = { + font = "Lat2-Terminus16"; + keyMap = "us"; + }; - services = { - displayManager.sddm = { - wayland = { + services = { + desktopManager.plasma6 = { enable = true; - compositor = "kwin"; + enableQt5Integration = false; + notoPackage = pkgs.noto-fonts-lgc-plus; }; - extraPackages = [ - pkgs.where-is-my-sddm-theme - ]; - enable = true; - theme = "where_is_my_sddm_theme"; + + pipewire = { + enable = true; + alsa.enable = true; + pulse.enable = true; + wireplumber.enable = true; + }; + + xserver.xkb = { + layout = "us"; + options = "eurosign:e,ctrl:nocaps"; + }; + + libinput.enable = true; + openssh.enable = true; }; - desktopManager.plasma6 = { - enable = true; - enableQt5Integration = false; - notoPackage = pkgs.noto-fonts-lgc-plus; - }; - - pipewire = { - enable = true; - alsa.enable = true; - pulse.enable = true; - wireplumber.enable = true; - }; - - xserver.xkb = { - layout = "us"; - options = "eurosign:e,ctrl:nocaps"; - }; - - libinput.enable = true; - openssh.enable = true; - }; - - programs = { - git = { - enable = true; - config = { - user = { - name = "Artur Manuel"; - email = "balkenix@outlook.com"; - signingKey = "~/.ssh/id_ed25519"; + programs = { + git = { + enable = true; + config = { + user = { + name = "Artur Manuel"; + email = "balkenix@outlook.com"; + signingKey = "~/.ssh/id_ed25519"; + }; }; }; + neovim.enable = true; + chromium.enable = true; }; - neovim.enable = true; - chromium.enable = true; - }; - environment.systemPackages = builtins.attrValues { - inherit - (pkgs) - nil - statix - deadnix - chromium - alejandra - wget - ; - }; + environment.systemPackages = builtins.attrValues { + inherit + (pkgs) + nil + statix + deadnix + chromium + alejandra + wget + ; + }; - networking.networkmanager.enable = true; - time.timeZone = "Europe/London"; - i18n.defaultLocale = "en_GB.UTF-8"; - system.stateVersion = "24.11"; + alqueva.sddm.enable = true; + networking.networkmanager.enable = true; + time.timeZone = "Europe/London"; + i18n.defaultLocale = "en_GB.UTF-8"; + system.stateVersion = "24.11"; + }; } diff --git a/flake.lock b/flake.lock index 47b237f..6bc481a 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1729010169, - "narHash": "sha256-AjgIlXcreagCs6ltT8mzI1UYEiYgfhlwe4Tl3taxQSU=", + "lastModified": 1729070567, + "narHash": "sha256-r3KMTeBLioUtRPRFjdWbpZqfMmQHr6Dj9vjGaj4OhP8=", "owner": "nix-community", "repo": "disko", - "rev": "9ab6ae4e632016caac1c7e82e15b12b8c672ed76", + "rev": "c8760cee70cf166ad6bcee0bd9f0bba934a3a651", "type": "github" }, "original": { @@ -160,12 +160,63 @@ "type": "github" } }, + "nixpkgs_4": { + "locked": { + "lastModified": 1725103162, + "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "disko": "disko", "flake-parts": "flake-parts", "git-hooks-nix": "git-hooks-nix", - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_3", + "wallpkgs": "wallpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "wallpkgs": { + "inputs": { + "nixpkgs": "nixpkgs_4", + "systems": "systems" + }, + "locked": { + "lastModified": 1728261155, + "narHash": "sha256-bDnPyjl8/EsMPQE2dweWiOkpJ7zYI8LhrVEGx0luquk=", + "owner": "notashelf", + "repo": "wallpkgs", + "rev": "81459dfc37c4420b7908a90a333d2643f24bec33", + "type": "github" + }, + "original": { + "owner": "notashelf", + "repo": "wallpkgs", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 2960652..45abad5 100644 --- a/flake.nix +++ b/flake.nix @@ -23,6 +23,11 @@ owner = "nix-community"; repo = "disko"; }; + wallpkgs = { + type = "github"; + owner = "notashelf"; + repo = "wallpkgs"; + }; }; outputs = inputs @ { nixpkgs, @@ -38,6 +43,7 @@ systems = ["x86_64-linux"]; imports = [ ./computers + ./overlays inputs.git-hooks-nix.flakeModule ]; perSystem = { diff --git a/lib/default.nix b/lib/default.nix index 3bfbebb..47af4fd 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -39,6 +39,9 @@ rebs = "nixos-rebuild --use-remote-sudo switch --flake .#${host}"; rebt = "nixos-rebuild --use-remote-sudo test --flake .#${host}"; }; + nixpkgs.overlays = [ + inputs.self.overlays.default + ]; networking.hostName = host; }; }) diff --git a/overlays/default.nix b/overlays/default.nix new file mode 100644 index 0000000..80235d6 --- /dev/null +++ b/overlays/default.nix @@ -0,0 +1,26 @@ +{inputs, ...}: { + flake.overlays.default = _final: prev: { + i-found-my-sddm-theme = prev.where-is-my-sddm-theme.override { + themeConfig.General = { + backgroundFill = "#161616"; + basicTextColor = "#f2f4f8"; + }; + }; + }; + perSystem = { + pkgs, + system, + ... + }: { + _module.args.pkgs = import inputs.nixpkgs { + inherit system; + overlays = [ + inputs.self.overlays.default + ]; + }; + + packages = { + inherit (pkgs) i-found-my-sddm-theme; + }; + }; +}