This commit is contained in:
TheCrazyInsanity
2026-01-08 15:39:33 +00:00
parent 6d04899436
commit 68f8144c18
6 changed files with 146 additions and 9 deletions

26
flake.lock generated
View File

@@ -52,11 +52,35 @@
"type": "github" "type": "github"
} }
}, },
"plasma-manager": {
"inputs": {
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1767662275,
"narHash": "sha256-d5Q1GmQ+sW1Bt8cgDE0vOihzLaswsm8cSdg8124EqXE=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "51816be33a1ff0d4b22427de83222d5bfa96d30e",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "plasma-manager",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"impermanence": "impermanence", "impermanence": "impermanence",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs",
"plasma-manager": "plasma-manager"
} }
} }
}, },

View File

@@ -12,6 +12,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
impermanence.url = "github:nix-community/impermanence"; impermanence.url = "github:nix-community/impermanence";
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
# nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0"; # nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0";
}; };
@@ -21,6 +26,7 @@
nixpkgs, nixpkgs,
home-manager, home-manager,
impermanence, impermanence,
plasma-manager,
# nix-flatpak, # nix-flatpak,
}@inputs: }@inputs:
let let
@@ -43,6 +49,7 @@
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.laythe = import ./machines/homepc/home.nix; home-manager.users.laythe = import ./machines/homepc/home.nix;
home-manager.sharedModules = [ plasma-manager.homeModules.plasma-manager ];
} }
]; ];
}; };
@@ -58,7 +65,8 @@
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.laythe = import ./machines/homepc/home.nix; home-manager.users.laythe = import ./machines/workstation/home.nix;
home-manager.sharedModules = [ plasma-manager.homeModules.plasma-manager ];
} }
]; ];
}; };

View File

@@ -29,11 +29,11 @@
options = [ "compress=zstd" "subvol=root" ]; options = [ "compress=zstd" "subvol=root" ];
}; };
fileSystems."/home" = { # fileSystems."/home" = {
device = "/dev/disk/by-label/BUTTER"; # device = "/dev/disk/by-label/BUTTER";
fsType = "btrfs"; # fsType = "btrfs";
options = [ "compress=zstd" "subvol=home" ]; # options = [ "compress=zstd" "subvol=home" ];
}; # };
fileSystems."/nix" = { fileSystems."/nix" = {
# device = "/dev/disk/by-uuid/3c89fa92-1d43-4c48-b228-e2725fa70ee9"; # device = "/dev/disk/by-uuid/3c89fa92-1d43-4c48-b228-e2725fa70ee9";

View File

@@ -1,4 +1,11 @@
{config, pkgs, lib, inputs, outputs, ...}: {
config,
pkgs,
lib,
inputs,
outputs,
...
}:
{ {
# These both are probably always going to be the same, but I'll keep them local just in case:tm: # These both are probably always going to be the same, but I'll keep them local just in case:tm:
home.username = "laythe"; home.username = "laythe";
@@ -6,9 +13,10 @@
imports = [ imports = [
../../home/default.nix ../../home/default.nix
../../modules/kde/home.nix
]; ];
home.stateVersion = "25.11"; home.stateVersion = "24.11";
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }

View File

@@ -12,4 +12,5 @@
kdePackages.kate kdePackages.kate
# kdePackages.kdeconnect-kde # kdePackages.kdeconnect-kde
]; ];
services.automatic-timezoned.enable = true;
} }

96
modules/kde/home.nix Normal file
View File

@@ -0,0 +1,96 @@
{ pkgs, ... }:
{
progrmams.plasma = {
workspace = {
lookAndFeel = "org.kde.breezedark.desktop";
};
panels = [
# Windows-like panel at the bottom
{
location = "bottom";
widgets = [
# We can configure the widgets by adding the name and config
# attributes. For example to add the the kickoff widget and set the
# icon to "nix-snowflake-white" use the below configuration. This will
# add the "icon" key to the "General" group for the widget in
# ~/.config/plasma-org.kde.plasma.desktop-appletsrc.
{
name = "org.kde.plasma.kickoff";
config = {
General = {
icon = "nix-snowflake-white";
alphaSort = true;
};
};
}
# Or you can configure the widgets by adding the widget-specific options for it.
# See modules/widgets for supported widgets and options for these widgets.
# For example:
# {
# kickoff = {
# sortAlphabetically = true;
# icon = "nix-snowflake-white";
# };
# }
# Adding configuration to the widgets can also for example be used to
# pin apps to the task-manager, which this example illustrates by
# pinning dolphin and konsole to the task-manager by default with widget-specific options.
# {
# iconTasks = {
# launchers = [
# "applications:org.kde.dolphin.desktop"
# "applications:org.kde.konsole.desktop"
# ];
# };
# }
# Or you can do it manually, for example:
{
name = "org.kde.plasma.icontasks";
config = {
General = {
launchers = [
"applications:org.kde.dolphin.desktop"
"applications:org.kde.konsole.desktop"
];
};
};
}
# If no configuration is needed, specifying only the name of the
# widget will add them with the default configuration.
"org.kde.plasma.marginsseparator"
# If you need configuration for your widget, instead of specifying the
# the keys and values directly using the config attribute as shown
# above, plasma-manager also provides some higher-level interfaces for
# configuring the widgets. See modules/widgets for supported widgets
# and options for these widgets. The widgets below shows two examples
# of usage, one where we add a digital clock, setting 12h time and
# first day of the week to Sunday and another adding a systray with
# some modifications in which entries to show.
{
digitalClock = {
calendar.firstDayOfWeek = "monday";
time.format = "12h";
};
}
{
systemTray.items = {
# We explicitly show bluetooth and battery
shown = [
"org.kde.plasma.battery"
"org.kde.plasma.networkmanagement"
"org.kde.plasma.volume"
];
# And explicitly hide networkmanagement and volume
hidden = [
# "org.kde.plasma.networkmanagement"
# "org.kde.plasma.volume"
"org.kde.plasma.bluetooth"
];
};
}
];
hiding = "none";
}
];
};
}