From 9033e01b07522c34c492a5d35ff0e0fc893624ef Mon Sep 17 00:00:00 2001 From: Chris Kruining Date: Tue, 13 Aug 2024 22:38:15 +0200 Subject: [PATCH] initial setup of plasma-manager --- flake.lock | 24 ++++++++++++++ flake.nix | 6 ++++ modules/desktop/applications/email.nix | 25 ++++++++++++--- modules/desktop/applications/passwords.nix | 21 ++++++++++++ modules/desktop/plasma.nix | 37 ++++++++++++++++++++++ modules/options.nix | 6 ++-- 6 files changed, 113 insertions(+), 6 deletions(-) create mode 100644 modules/desktop/applications/passwords.nix diff --git a/flake.lock b/flake.lock index 59655fb..1ec9117 100644 --- a/flake.lock +++ b/flake.lock @@ -405,12 +405,36 @@ "type": "github" } }, + "plasma-manager": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1723391864, + "narHash": "sha256-nX/aloqD8ZHcuPS7sk7fx1txTaXCi+o6iYm0mIX4uIE=", + "owner": "nix-community", + "repo": "plasma-manager", + "rev": "f843f4258eea57c5ba60f6ce1d96d12d6494b56e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "plasma-manager", + "type": "github" + } + }, "root": { "inputs": { "firefox": "firefox", "home-manager": "home-manager", "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable", + "plasma-manager": "plasma-manager", "rust": "rust", "stylix": "stylix" } diff --git a/flake.nix b/flake.nix index b765a01..50ef845 100644 --- a/flake.nix +++ b/flake.nix @@ -10,6 +10,12 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + plasma-manager = { + url = "github:nix-community/plasma-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager"; + }; + firefox.url = "github:nix-community/flake-firefox-nightly"; stylix.url = "github:danth/stylix"; diff --git a/modules/desktop/applications/email.nix b/modules/desktop/applications/email.nix index f75faa1..56ebd22 100644 --- a/modules/desktop/applications/email.nix +++ b/modules/desktop/applications/email.nix @@ -14,23 +14,40 @@ in config = mkIf cfg.enable { - user.packages = attrValues { - inherit (pkgs) thunderbird; +# user.packages = attrValues { +# inherit (pkgs) thunderbird; +# }; + + programs.thunderbird = { + enable = true; +# profiles.chris = { +# isDefault = true; +# }; }; hm.accounts.email.accounts = { kruining = { primary = true; address = "chris@kruinin.eu"; - thunderbird.enable = true; realName = "Chris Kruining"; + imap = { + host = "imap.kruining.eu"; + port = 993; + }; + thunderbird = { + enable = true; + profiles = [ "chris" ]; + }; }; cgames = { primary = false; address = "chris@cgames.nl"; - thunderbird.enable = true; realName = "Chris P Bacon"; + imap = { + host = "imap.cgames.nl"; + port = 993; + }; }; }; }; diff --git a/modules/desktop/applications/passwords.nix b/modules/desktop/applications/passwords.nix new file mode 100644 index 0000000..d896702 --- /dev/null +++ b/modules/desktop/applications/passwords.nix @@ -0,0 +1,21 @@ +{ options, config, lib, pkgs, ... }: +let + inherit (lib.modules) mkIf mkForce mkMerge; + inherit (lib.attrsets) attrValues; + + cfg = config.modules.desktop.applications.passwords; +in +{ + options.modules.desktop.applications.passwords = let + inherit (lib.options) mkEnableOption; + in { + enable = mkEnableOption "Enable password manager (bitwarden)"; + }; + + config = mkIf cfg.enable + { + user.packages = attrValues { + inherit (pkgs) bitwarden-desktop; + }; + }; +} diff --git a/modules/desktop/plasma.nix b/modules/desktop/plasma.nix index f87004e..fa1be31 100644 --- a/modules/desktop/plasma.nix +++ b/modules/desktop/plasma.nix @@ -34,5 +34,42 @@ in # should enable theme integration with gtk apps (i.e. firefox, thunderbird) programs.dconf.enable = true; + + hm.programs.plasma = { + enable = true; + +# panels = [ +# { +# location = "bottom"; +# widgets = [ +# { +# name = "org.kde.plasma.kickoff"; +# config = { +# General = { +# icon = "nix-snowflake-white"; +# alphaSort = true; +# }; +# }; +# } +# +# { +# kickoff = { +# sortAlphabetically = true; +# icon = "nix-snowflake-white"; +# }; +# } +# ]; +# } +# ]; + + kwin = { + edgeBarrier = 0; + cornerBarrier = false; + }; + + spectacle.shortcuts = { + captureRectangularRegion = "Meta+Shift+S"; + }; + }; }; } diff --git a/modules/options.nix b/modules/options.nix index e870f05..fff5f19 100644 --- a/modules/options.nix +++ b/modules/options.nix @@ -1,4 +1,4 @@ -{ config, options, lib, pkgs, ... }: +{ inputs, config, options, lib, pkgs, ... }: let inherit (builtins) elem isList pathExists toString; inherit (lib.attrsets) mapAttrs mapAttrsToList; @@ -35,7 +35,8 @@ in in { inherit name; - description = "Primary user account"; +# description = "Primary user account"; + description = "Chris Kruining"; extraGroups = [ "wheel" ]; isNormalUser = true; home = "/home/${name}"; @@ -46,6 +47,7 @@ in home-manager = { useGlobalPkgs = true; useUserPackages = true; + sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ]; }; home = {