From 444f4df7d85ffaa8c6aad43ddb4f7818fcadaf36 Mon Sep 17 00:00:00 2001 From: Kate Adkins Date: Wed, 27 Nov 2024 13:01:10 -0700 Subject: [PATCH] add kde configuration~ --- nixos/configs/gui/default.nix | 11 +++++++- packages.nix | 3 +++ packages/kde-karousel.nix | 49 +++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 packages/kde-karousel.nix diff --git a/nixos/configs/gui/default.nix b/nixos/configs/gui/default.nix index 79ea687..98cb8e2 100644 --- a/nixos/configs/gui/default.nix +++ b/nixos/configs/gui/default.nix @@ -3,6 +3,7 @@ niri, pkgs, lib, + deprekages, ... }: { @@ -41,7 +42,6 @@ # Don't let Plasma override TLP with PPD. services.power-profiles-daemon.enable = lib.mkForce false; - # Enable espanso, when possible. services.espanso.enable = true; @@ -125,6 +125,15 @@ enable = true; settings.main.terminal = "wezterm"; }; + + #When using plasma, set things up to be more like Niri. + home.file.".local/share/kwin/scripts/karousel".source = deprekages.kde-karousel; + home.file.".local/share/kwin/effects/animations".source = pkgs.fetchFromGitHub { + owner = "peterfajdiga"; + repo = "kwin4_effect_geometry_change"; + rev = "071609913450fc0b0ea5c39ad985e2fab39a5235"; + hash = "sha256-H3cslx6ceAJGXSa0+gNzmUINRoLeYODhGt4pSFfgNbQ="; + }; }; # Use a graphical greeter. diff --git a/packages.nix b/packages.nix index be91f2c..84b0662 100644 --- a/packages.nix +++ b/packages.nix @@ -102,6 +102,9 @@ flake-utils.lib.eachDefaultSystem ( # vscode vscode-extensions = callPackage ./packages/vscode-extensions.nix { }; + # plasma + kde-karousel = callPackage ./packages/kde-karousel.nix { }; + # xonsh and xontribs xonsh-with-xontribs = pkgs.xonsh.override { extraPackages = pythonPackages: [ diff --git a/packages/kde-karousel.nix b/packages/kde-karousel.nix new file mode 100644 index 0000000..6aa5ddd --- /dev/null +++ b/packages/kde-karousel.nix @@ -0,0 +1,49 @@ +{ + lib, + stdenv, + fetchFromGitHub, + typescript, + nodejs, + bash, +}: +stdenv.mkDerivation rec { + pname = "karousel"; + version = "0.10"; + + src = fetchFromGitHub { + owner = "peterfajdiga"; + repo = "karousel"; + rev = "v${version}"; + hash = "sha256-lI3VaCd4eYhWbnYLEIeFiB88SWjd/DF8CUGFmxEXDXo="; + }; + + nativeBuildInputs = [ + typescript + nodejs + bash + ]; + + dontConfigure = true; + dontBuild = true; + + # Run the simple commands that generate the plugin. + installPhase = '' + mkdir -p $out/contents/code $out/contents/config + + # Build the parts that need to be built... + tsc -p ./src/main --outFile $out/contents/code/main.js + bash ./run-ts.sh ./src/generators/config > $out/contents/config/main.xml + + # ... and copy the rest. + cp -r $src/package/* $out/ + ''; + + meta = { + description = "Scrollable tiling Kwin script"; + homepage = "https://github.com/peterfajdiga/karousel/releases/download/v0.10/karousel_0_10.tar.gz"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ ]; + mainProgram = "karousel"; + platforms = lib.platforms.all; + }; +}