diff --git a/TODO.md b/TODO.md index 16dd9fb..2ac043d 100644 --- a/TODO.md +++ b/TODO.md @@ -1,10 +1,10 @@ 1. [*] Pozbyć się conditional importów 1. https://github.com/nix-community/plasma-manager - - pasek zadań - - zmienić na ikonowo-tekstowy - - Ikonki na pasku zadań, które mają być ukryte, pokazane - - ukryć spotify - - pokazać baterię, wifi, jasność, dźwięk, muzyka + - [*] pasek zadań + - [*] zmienić na ikonowo-tekstowy + - [*] Ikonki na pasku zadań, które mają być ukryte, pokazane + - [*] ukryć spotify + - [*] pokazać baterię, wifi, jasność, dźwięk, muzyka - reguły okien: - minimalny rozmiar discord - nie wyłączaj głądzika przy pisaniu @@ -15,6 +15,8 @@ - rozwinięty terminal - ukryte pliki - tryb nocny włączyć + - zarządzanie zasilaniem + - wyłączyć usypianie na pc 2. https://github.com/gmodena/nix-flatpak 3. https://github.com/NixOS/nixos-hardware - dla acera diff --git a/flake.lock b/flake.lock index 3cd7106..52df02e 100644 --- a/flake.lock +++ b/flake.lock @@ -69,12 +69,36 @@ "type": "github" } }, + "plasma-manager": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1748196248, + "narHash": "sha256-1iHjsH6/5UOerJEoZKE+Gx1BgAoge/YcnUsOA4wQ/BU=", + "owner": "nix-community", + "repo": "plasma-manager", + "rev": "b7697abe89967839b273a863a3805345ea54ab56", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "plasma-manager", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", "nix-flatpak": "nix-flatpak", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "plasma-manager": "plasma-manager" } } }, diff --git a/flake.nix b/flake.nix index 61d5e09..466d738 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest"; + plasma-manager = { + url = "github:nix-community/plasma-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager"; + }; }; outputs = { self, nixos-hardware, ... }@inputs: diff --git a/home-modules/default.nix b/home-modules/default.nix index ae459eb..6d30b80 100644 --- a/home-modules/default.nix +++ b/home-modules/default.nix @@ -6,5 +6,6 @@ ./pc.nix ./dev.nix ./gaming.nix + ./plasma.nix ]; } \ No newline at end of file diff --git a/home-modules/plasma.nix b/home-modules/plasma.nix new file mode 100644 index 0000000..6dd2672 --- /dev/null +++ b/home-modules/plasma.nix @@ -0,0 +1,56 @@ +{ config, lib, pkgs, osConfig, ... }: + +{ + config = lib.mkIf osConfig.lumpiasty.enablePlasma { + programs.plasma = { + enable = true; + workspace = { + # wallpaper = "${pkgs.kdePackages.plasma-workspace-wallpapers}/share/wallpapers/Patak/contents/images/1080x1920.png"; + + }; + panels = [ + { + location = "bottom"; + # screen is broken, outputs some panel.writeConfig("lastScreen[$i]", 0) nonsense + # https://github.com/nix-community/plasma-manager/blob/b7697abe89967839b273a863a3805345ea54ab56/lib/panel.nix#L38 + # screen = 0; + # JS code to be added at the end of activation script + extraSettings = '' + panel.screen = 0; + ''; + widgets = [ + { + kickoff = { + sortAlphabetically = true; + icon = "nix-snowflake-white"; + }; + } + "org.kde.plasma.pager" + "org.kde.plasma.taskmanager" + "org.kde.plasma.marginsseparator" + { + # systemTray module is broken + # https://github.com/nix-community/plasma-manager/blame/b7697abe89967839b273a863a3805345ea54ab56/modules/widgets/system-tray.nix#L223 + # SystrayContainmentId appears to be null so no settings are applied + name = "org.kde.plasma.systemtray"; + config = { + General = { + hiddenItems = [ "spotify-client" ]; + shownItems = [ + "org.kde.plasma.mediacontroller" + "org.kde.plasma.networkmanagement" + "org.kde.plasma.brightness" + "org.kde.plasma.volume" + "plasmashell_microphone" + ]; + }; + }; + } + "org.kde.plasma.digitalclock" + "org.kde.plasma.showdesktop" + ]; + } + ]; + }; + }; +} \ No newline at end of file diff --git a/lib/mkHome.nix b/lib/mkHome.nix index d70b278..a662378 100644 --- a/lib/mkHome.nix +++ b/lib/mkHome.nix @@ -1,10 +1,11 @@ -{ lib, nix-flatpak }: +{ lib, nix-flatpak, plasma-manager }: condition: home: lib.mkIf condition ( { ... }: { imports = [ nix-flatpak.homeManagerModules.nix-flatpak + plasma-manager.homeManagerModules.plasma-manager ../home-modules home ]; diff --git a/lib/mkNixosSystem.nix b/lib/mkNixosSystem.nix index cef58b7..908ed58 100644 --- a/lib/mkNixosSystem.nix +++ b/lib/mkNixosSystem.nix @@ -1,10 +1,11 @@ -{ self, nixpkgs, home-manager, nix-flatpak, ... }: +{ self, nixpkgs, home-manager, nix-flatpak, plasma-manager, ... }: hardwareConfig: hostConfig: nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { - nix-flatpak = nix-flatpak; + inherit nix-flatpak; + inherit plasma-manager; }; modules = [ hardwareConfig diff --git a/modules/system/users.nix b/modules/system/users.nix index 819c256..56808ea 100644 --- a/modules/system/users.nix +++ b/modules/system/users.nix @@ -1,9 +1,13 @@ -{ config, lib, pkgs, modulesPath, nix-flatpak, ... }: +{ config, lib, pkgs, modulesPath, nix-flatpak, plasma-manager, ... }: let cfg = config.lumpiasty.users; - mkHome = import ../../lib/mkHome.nix { lib = lib; nix-flatpak = nix-flatpak; }; - mkUser = import ../../lib/mkUser.nix { lib = lib; }; + mkHome = import ../../lib/mkHome.nix { + inherit lib; + inherit nix-flatpak; + inherit plasma-manager; + }; + mkUser = import ../../lib/mkUser.nix { inherit lib; }; in { options.lumpiasty.users = {