Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(plasma-manager): add support for konsole #332

Closed
12 changes: 12 additions & 0 deletions .sources/sources.json
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,18 @@
"url": "https://github.com/catppuccin/k9s/archive/fdbec82284744a1fc2eb3e2d24cb92ef87ffb8b4.tar.gz",
"hash": "0cs7j1z0xq66w0700qcrc6ynzmw3bdr422p1rnkl7hxq8g4a67zn"
},
"konsole": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "catppuccin",
"repo": "konsole"
},
"branch": "main",
"revision": "3b64040e3f4ae5afb2347e7be8a38bc3cd8c73a8",
"url": "https://github.com/catppuccin/konsole/archive/3b64040e3f4ae5afb2347e7be8a38bc3cd8c73a8.tar.gz",
"hash": "05glbl1j0lrczyxbkvzkj7wzmkbp7f2ryhlyqn0nm5yd7a0b57vp"
},
"lazygit": {
"type": "Git",
"repository": {
Expand Down
26 changes: 25 additions & 1 deletion dev/flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 16 additions & 1 deletion dev/flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@
url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs-stable";
};

plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs = {
nixpkgs.follows = "nixpkgs";
home-manager.follows = "home-manager";
};
};
};

outputs =
Expand All @@ -23,6 +31,7 @@
nixpkgs-stable,
home-manager,
home-manager-stable,
plasma-manager,
}:
let
systems = [
Expand Down Expand Up @@ -57,7 +66,7 @@
checks = forAllSystems (
system:
import ../tests rec {
inherit home-manager home-manager-stable;
inherit home-manager home-manager-stable plasma-manager;
inherit (nixpkgs) lib;
nixpkgs = nixpkgsFor.${system}.unstable;
nixpkgs-stable = nixpkgsFor.${system}.stable;
Expand Down Expand Up @@ -88,6 +97,11 @@
moduleRoot = ../modules/home-manager;
};

plasma-manager-doc = mkOptionDoc {
inherit version;
moduleRoot = ../modules/plasma-manager;
};

site = mkSite rec {
pname = "catppuccin-nix-website";
inherit version;
Expand All @@ -105,6 +119,7 @@

nixosDoc = packages'.nixos-doc;
homeManagerDoc = packages'.home-manager-doc;
plasmaManagerDoc = packages'.plasma-manager-doc;
};

add-source =
Expand Down
3 changes: 2 additions & 1 deletion docs/mk-site.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
mdbook,
python3,
}:
{ nixosDoc, homeManagerDoc, ... }@args:
{ nixosDoc, homeManagerDoc, plasmaManagerDoc, ... }@args:
stdenvNoCC.mkDerivation (
finalAttrs:
args
Expand All @@ -20,6 +20,7 @@ stdenvNoCC.mkDerivation (

ln -s ${nixosDoc} src/options/nixos-options.md
ln -s ${homeManagerDoc} src/options/home-manager-options.md
ln -s ${plasmaManagerDoc} src/options/plasma-manager-options.md
mdbook build

runHook postBuild
Expand Down
1 change: 1 addition & 0 deletions docs/src/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ You should first check out our [Getting started](getting-started) guide. Once yo

- [For NixOS](options/nixos-options.md)
- [For home-manager](options/home-manager-options.md)
- [For plasma-manager](options/plasma-manager-options.md)

## Find a problem?

Expand Down
1 change: 1 addition & 0 deletions docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
- [Module options](options/README.md)
- [NixOS](options/nixos-options.md)
- [home-manager](options/home-manager-options.md)
- [plasma-manager](options/plasma-manager-options.md)

- [FAQ](faq.md)

Expand Down
1 change: 1 addition & 0 deletions docs/src/options/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ Below is a (searchable) list of all the options in the modules we provide. Enjoy

- [NixOS options](nixos-options.md)
- [home-manager options](home-manager-options.md)
- [plasma-manager options](plasma-manager-options.md)

If you have any issues with this documentation, don't hesitate to [open an issue](https://github.com/catppuccin/nix/issues/new).
1 change: 1 addition & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
outputs = _: {
homeManagerModules.catppuccin = import ./modules/home-manager;
nixosModules.catppuccin = import ./modules/nixos;
plasmaManagerModules.catppuccin = import ./modules/plasma-manager;
};
}
4 changes: 4 additions & 0 deletions modules/plasma-manager/all-modules.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[
./globals.nix
./konsole.nix
]
12 changes: 12 additions & 0 deletions modules/plasma-manager/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
config,
lib,
pkgs,
...
}:
{
imports = import ../lib/import-modules.nix {
inherit config lib pkgs;
modules = import ./all-modules.nix;
};
}
36 changes: 36 additions & 0 deletions modules/plasma-manager/globals.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{ lib, ... }:
{
config = {
assertions = [ (lib.ctp.assertMinimumVersion "24.05") ];
};

options.catppuccin.plasma = {
enable = lib.mkEnableOption "Catppuccin for plasma-manager globally";

flavor = lib.mkOption {
type = lib.ctp.types.flavorOption;
default = "mocha";
description = "plasma-manager catppuccin flavor";
};

accent = lib.mkOption {
type = lib.ctp.types.accentOption;
default = "mauve";
description = "plasma-manager catppuccin accent";
};

sources =
let
defaultSources = import ../../.sources;
in
lib.mkOption {
type = lib.types.lazyAttrsOf lib.types.raw;
default = defaultSources;
defaultText = "{ ... }";
# HACK!
# without this, overriding one source will delete all others. -@getchoo
apply = lib.recursiveUpdate defaultSources;
description = "Port sources used across all options";
};
};
}
17 changes: 17 additions & 0 deletions modules/plasma-manager/konsole.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{ config, lib, ... }:
let
inherit (config.catppuccin) sources;
cfg = config.programs.konsole.catppuccin;
enable = cfg.enable && config.programs.konsole.enable;
themeName = "catppuccin-${cfg.flavor}";
in
{
options.programs.konsole.catppuccin = lib.ctp.mkCatppuccinOpt {
name = "konsole";
enableDefault = config.catppuccin.plasma.enable;
};

config = lib.mkIf enable {
programs.konsole.customColorSchemes.${themeName} = "${sources.konsole}/themes/${themeName}.colorscheme";
};
}
4 changes: 4 additions & 0 deletions tests/darwin.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@
lib,
pkgs,
home-manager,
plasma-manager,
}:
(home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
plasma-manager.homeManagerModules.plasma-manager

./home.nix

{
Expand All @@ -20,6 +23,7 @@
foot.enable = lib.mkForce false;
fuzzel.enable = lib.mkForce false;
imv.enable = lib.mkForce false;
konsole.enable = lib.mkForce false;
mpv.enable = lib.mkForce false; # NOTE: same as cava, but `mpv` fails to build currently
rio.enable = lib.mkForce false; # marked as broken
rofi.enable = lib.mkForce false;
Expand Down
15 changes: 12 additions & 3 deletions tests/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,23 @@
nixpkgs-stable,
home-manager,
home-manager-stable,
plasma-manager,
}:
lib.optionalAttrs nixpkgs.stdenv.isLinux {
nixos-test-unstable = nixpkgs.callPackage ./nixos.nix { inherit home-manager; };
nixos-test-stable = nixpkgs-stable.callPackage ./nixos.nix { home-manager = home-manager-stable; };
nixos-test-unstable = nixpkgs.callPackage ./nixos.nix {
inherit home-manager plasma-manager;
};
nixos-test-stable = nixpkgs-stable.callPackage ./nixos.nix {
home-manager = home-manager-stable;
inherit plasma-manager;
};
}
// lib.optionalAttrs nixpkgs.stdenv.isDarwin {
darwin-test-unstable = nixpkgs.callPackage ./darwin.nix { inherit home-manager; };
darwin-test-unstable = nixpkgs.callPackage ./darwin.nix {
inherit home-manager plasma-manager;
};
darwin-test-stable = nixpkgs-stable.callPackage ./darwin.nix {
home-manager = home-manager-stable;
inherit plasma-manager;
};
}
2 changes: 2 additions & 0 deletions tests/home.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
{
imports = [
../modules/home-manager
../modules/plasma-manager
./common.nix
];

Expand Down Expand Up @@ -39,6 +40,7 @@
imv.enable = true;
k9s.enable = true;
kitty.enable = true;
konsole.enable = true;
lazygit.enable = true;
micro.enable = true;
mpv.enable = true;
Expand Down
11 changes: 9 additions & 2 deletions tests/nixos.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
{ testers, home-manager }:
{
testers,
home-manager,
plasma-manager,
}:
testers.runNixOSTest {
name = "module-test";

Expand Down Expand Up @@ -37,7 +41,10 @@ testers.runNixOSTest {
};

home-manager.users.test = {
imports = [ ./home.nix ];
imports = [
./home.nix
plasma-manager.homeManagerModules.plasma-manager
];
};
};

Expand Down