plasma wip
This commit is contained in:
parent
1dcc9b436d
commit
e06f1e887b
6 changed files with 30 additions and 151 deletions
|
|
@ -45,12 +45,6 @@ in
|
|||
description = "Enable Breeze Dark, GTK Breeze-Dark, and dark cursors.";
|
||||
};
|
||||
|
||||
flatpak.enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable Flatpak.";
|
||||
};
|
||||
|
||||
sddm.autologinUser = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
|
|
@ -98,96 +92,6 @@ in
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
# TODO how to use same type as home manager programs.plasma.panels.*
|
||||
# panels = mkOption {
|
||||
# type = types.listOf types.;
|
||||
# default = [ defaultPanel ];
|
||||
# };
|
||||
|
||||
shortcuts = {
|
||||
terminal = mkOption {
|
||||
type = types.str;
|
||||
default = "kitty";
|
||||
};
|
||||
launcher = mkOption {
|
||||
type = types.enum [
|
||||
"krunner"
|
||||
"rofi"
|
||||
];
|
||||
default = "krunner";
|
||||
};
|
||||
useI3Like = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
};
|
||||
closeWindow = mkOption {
|
||||
type = types.str;
|
||||
default = "Meta+Q";
|
||||
};
|
||||
workspaceKeys = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [
|
||||
"Meta+1"
|
||||
"Meta+2"
|
||||
"Meta+3"
|
||||
"Meta+4"
|
||||
"Meta+5"
|
||||
"Meta+6"
|
||||
"Meta+7"
|
||||
"Meta+8"
|
||||
"Meta+9"
|
||||
];
|
||||
};
|
||||
moveWindowWorkspaceKeys = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [
|
||||
"Meta+Shift+1"
|
||||
"Meta+Shift+2"
|
||||
"Meta+Shift+3"
|
||||
"Meta+Shift+4"
|
||||
"Meta+Shift+5"
|
||||
"Meta+Shift+6"
|
||||
"Meta+Shift+7"
|
||||
"Meta+Shift+8"
|
||||
"Meta+Shift+9"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
monitors = {
|
||||
enableOverrides = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
commands = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
};
|
||||
scriptDelayMs = mkOption {
|
||||
type = types.int;
|
||||
default = 500;
|
||||
};
|
||||
};
|
||||
|
||||
apps.include = mkOption {
|
||||
type = types.listOf types.package;
|
||||
default = with pkgs; [
|
||||
# Core KDE tools
|
||||
kdePackages.kde-gtk-config
|
||||
kdePackages.konsole
|
||||
kdePackages.dolphin
|
||||
kdePackages.spectacle
|
||||
kdePackages.plasma-browser-integration
|
||||
kdePackages.plasma-workspace-wallpapers
|
||||
# Panel applets required for widgets
|
||||
kdePackages.plasma-nm # org.kde.plasma.networkmanagement
|
||||
kdePackages.bluedevil # org.kde.plasma.bluetooth
|
||||
kdePackages.plasma-pa # org.kde.plasma.volume
|
||||
kdePackages.kdeplasma-addons # extra widgets
|
||||
kdePackages.powerdevil # power management services
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
|
|
@ -216,7 +120,6 @@ in
|
|||
};
|
||||
|
||||
services.power-profiles-daemon.enable = true;
|
||||
services.flatpak.enable = cfg.flatpak.enable;
|
||||
|
||||
# Wayland-friendly Electron/Chromium
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
|
|
@ -231,7 +134,22 @@ in
|
|||
programs.kdeconnect.enable = true;
|
||||
|
||||
# Useful KDE packages
|
||||
environment.systemPackages = cfg.apps.include;
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Core KDE tools
|
||||
kdePackages.kde-gtk-config
|
||||
kdePackages.konsole
|
||||
kdePackages.dolphin
|
||||
kdePackages.spectacle
|
||||
kdePackages.plasma-browser-integration
|
||||
# kdePackages.plasma-workspace-wallpapers
|
||||
|
||||
# Panel applets required for widgets
|
||||
kdePackages.plasma-nm # org.kde.plasma.networkmanagement
|
||||
kdePackages.bluedevil # org.kde.plasma.bluetooth
|
||||
kdePackages.plasma-pa # org.kde.plasma.volume
|
||||
kdePackages.kdeplasma-addons # extra widgets
|
||||
kdePackages.powerdevil # power management services;
|
||||
];
|
||||
|
||||
# Keyboard like sway/i3
|
||||
console.useXkbConfig = true;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
}:
|
||||
let
|
||||
cfg = osConfig.ringofstorms.dePlasma;
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkDefault;
|
||||
|
||||
defaultPanel = {
|
||||
location = "top";
|
||||
|
|
@ -36,6 +36,6 @@ in
|
|||
{
|
||||
options = { };
|
||||
config = mkIf cfg.enable {
|
||||
programs.plasma.panels = [ defaultPanel ];
|
||||
programs.plasma.panels = mkDefault [ defaultPanel ];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ osConfig, lib, pkgs, ... }:
|
||||
{ osConfig, lib, ... }:
|
||||
let
|
||||
cfg = osConfig.ringofstorms.dePlasma;
|
||||
inherit (lib) mkIf;
|
||||
|
|
@ -6,10 +6,8 @@ in
|
|||
{
|
||||
options = {};
|
||||
config = mkIf cfg.enable {
|
||||
# plasma-manager base enable
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
# Tweak some global Plasma config if desired later
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
{ osConfig, lib, ... }:
|
||||
{ ... }:
|
||||
let
|
||||
cfg = osConfig.ringofstorms.dePlasma;
|
||||
inherit (lib) mkIf;
|
||||
workspaces = builtins.genList (i: i + 1) 9;
|
||||
kwinWorkspace = builtins.listToAttrs (
|
||||
map (i: {
|
||||
|
|
@ -15,42 +13,22 @@ let
|
|||
value = "Meta+Shift+${toString i}";
|
||||
}) workspaces
|
||||
);
|
||||
krunnerShortcut =
|
||||
if cfg.shortcuts.launcher == "krunner" then
|
||||
{
|
||||
krunner = {
|
||||
"Run Command" = "Meta+Space";
|
||||
};
|
||||
}
|
||||
else
|
||||
{ };
|
||||
in
|
||||
{
|
||||
options = { };
|
||||
config = mkIf (cfg.enable && cfg.shortcuts.useI3Like) {
|
||||
programs.plasma.shortcuts = (
|
||||
{
|
||||
kwin = ({ "Close Window" = cfg.shortcuts.closeWindow; } // kwinWorkspace // kwinMoveWorkspace);
|
||||
}
|
||||
// krunnerShortcut
|
||||
);
|
||||
config = {
|
||||
programs.plasma.shortcuts = ({
|
||||
kwin = ({ "Close Window" = "Meta+Q"; } // kwinWorkspace // kwinMoveWorkspace);
|
||||
krunner = {
|
||||
"Run Command" = "Meta+Space";
|
||||
};
|
||||
});
|
||||
|
||||
programs.plasma.hotkeys.commands = {
|
||||
ringofstorms-terminal = {
|
||||
key = "Meta+Return";
|
||||
command = cfg.shortcuts.terminal;
|
||||
};
|
||||
}
|
||||
// (
|
||||
if cfg.shortcuts.launcher == "rofi" then
|
||||
{
|
||||
ringofstorms-launcher = {
|
||||
key = "Meta+Space";
|
||||
command = "rofi -show drun";
|
||||
};
|
||||
}
|
||||
else
|
||||
{ }
|
||||
);
|
||||
command = "foot"; # TODO configurable?
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,8 +16,6 @@ in
|
|||
lookAndFeel = "org.kde.breezedark.desktop";
|
||||
cursor.theme = "breeze_cursors";
|
||||
};
|
||||
fonts = { }; # keep defaults
|
||||
kscreenlocker = { }; # swaylock analog not applicable; left default
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,21 +17,8 @@ in
|
|||
];
|
||||
scriptDelayMs = 500;
|
||||
};
|
||||
shortcuts = {
|
||||
terminal = "kitty";
|
||||
launcher = "krunner";
|
||||
useI3Like = true;
|
||||
closeWindow = "Meta+Q";
|
||||
};
|
||||
panel = {
|
||||
enabled = true;
|
||||
location = "top";
|
||||
height = 28;
|
||||
opacity = "translucent";
|
||||
};
|
||||
sddm.autologinUser = null;
|
||||
flatpak.enable = false;
|
||||
# GPU vendor left unset; set per machine if needed
|
||||
# GPU vendor left unset; set per machine if needed TODO
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue