From b1e1b0f1dd20cc77d10c6cfee4d683d116e168a7 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 22 Apr 2021 14:22:55 +0200 Subject: [PATCH] boreal: setup sddm theme module --- boreal.nix | 4 +++- flake.nix | 4 ++++ hosts/boreal/default.nix | 3 ++- modules/default.nix | 6 ++++++ modules/sddm.nix | 23 +++++++++++++++++++++++ pkgs/default.nix | 4 ++++ pkgs/sddm-sugar-candy.nix | 18 ++++++++++++++++++ 7 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 modules/default.nix create mode 100644 modules/sddm.nix create mode 100644 pkgs/default.nix create mode 100644 pkgs/sddm-sugar-candy.nix diff --git a/boreal.nix b/boreal.nix index 174e1d9..498c76a 100644 --- a/boreal.nix +++ b/boreal.nix @@ -1,11 +1,13 @@ { ... }: - { imports = [ # Default configuration ./base ./base/gui-programs.nix + # Module definitions + ./modules + # Service definitions ./services diff --git a/flake.nix b/flake.nix index c7f0e9f..d97a6ac 100644 --- a/flake.nix +++ b/flake.nix @@ -74,6 +74,10 @@ nixpkgs.overlays = [ emacs-overlay.overlay + (self: super: { + packages = import ./pkgs { pkgs = super; }; + }) + # uncomment this to build everything from scratch, fun but takes a # while # diff --git a/hosts/boreal/default.nix b/hosts/boreal/default.nix index 18759a6..2c6783b 100644 --- a/hosts/boreal/default.nix +++ b/hosts/boreal/default.nix @@ -67,12 +67,13 @@ in xserver = { enable = true; videoDrivers = [ "nvidia" ]; - displayManager.sddm.enable = true; windowManager.i3.enable = true; layout = "fr"; xkbVariant = "us"; }; }; + my.displayManager.sddm.enable = true; + sound.enable = true; hardware.pulseaudio = { diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..0b7755f --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + imports = [ + ./sddm.nix + ]; +} diff --git a/modules/sddm.nix b/modules/sddm.nix new file mode 100644 index 0000000..785a681 --- /dev/null +++ b/modules/sddm.nix @@ -0,0 +1,23 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.my.displayManager.sddm; +in +{ + options.my.displayManager.sddm.enable = lib.mkEnableOption "SDDM setup"; + + config = lib.mkIf cfg.enable { + services.xserver.displayManager.sddm = { + enable = true; + theme = "sugar-candy"; + }; + + environment.systemPackages = with pkgs; [ + packages.sddm-sugar-candy + + # dependencies for sugar-candy theme + libsForQt5.qt5.qtgraphicaleffects + libsForQt5.qt5.qtquickcontrols2 + libsForQt5.qt5.qtsvg + ]; + }; +} diff --git a/pkgs/default.nix b/pkgs/default.nix new file mode 100644 index 0000000..fc0d931 --- /dev/null +++ b/pkgs/default.nix @@ -0,0 +1,4 @@ +{ pkgs }: +{ + sddm-sugar-candy = pkgs.callPackage ./sddm-sugar-candy.nix {}; +} diff --git a/pkgs/sddm-sugar-candy.nix b/pkgs/sddm-sugar-candy.nix new file mode 100644 index 0000000..d446428 --- /dev/null +++ b/pkgs/sddm-sugar-candy.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchFromGitLab }: +stdenv.mkDerivation rec { + pname = "sddm-sugar-candy"; + # latest master commit, no recent tags :( + version = "2b72ef6c6f720fe0ffde5ea5c7c48152e02f6c4f"; + dontBuild = true; + installPhase = '' + mkdir -p $out/share/sddm/themes + cp -aR $src $out/share/sddm/themes/sugar-candy + ''; + src = fetchFromGitLab { + domain = "framagit.org"; + owner = "MarianArlt"; + repo = "sddm-sugar-candy"; + rev = version; + sha256 = "sha256-XggFVsEXLYklrfy1ElkIp9fkTw4wvXbyVkaVCZq4ZLU="; + }; +}