mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-01-31 16:57:55 +00:00
f21c92a5b7
Finally decided to try out KDE Plasma for a little while (at least a week from now). It is said to be flexible so I'll attempt to recreate my workflow from GNOME as closely as possible.
85 lines
2.6 KiB
Nix
85 lines
2.6 KiB
Nix
{ config, options, lib, pkgs, ... }:
|
|
|
|
let
|
|
cfg = config.themes.themes.knome;
|
|
in {
|
|
options.themes.themes.knome.enable = lib.mkEnableOption "KNOME, an attempt to bring as much GNOME to KDE Plasma";
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
services.xserver = {
|
|
enable = true;
|
|
displayManager.sddm.enable = true;
|
|
desktopManager.plasma5 = {
|
|
enable = true;
|
|
|
|
# CAUTION: These are internal options so expect sudden changes.
|
|
kwinrc = {
|
|
Compositing.OpenGLIsUnsafe = false;
|
|
Effect-PresentWindows = {
|
|
BorderActivate = 7;
|
|
BorderActivateAll = 9;
|
|
};
|
|
ModifierOnlyShortcuts.Meta = "org.kde.krunner,/App,,toggleDisplay";
|
|
NightColor.Active = true;
|
|
Plugins.overviewEnabled = true;
|
|
|
|
# The title bar decorations.
|
|
"org.kde.kdecoration2" = {
|
|
ButtonsOnLeft = "N";
|
|
ButtonsOnRight = "X";
|
|
ShowToolTips = false;
|
|
};
|
|
|
|
# Set touch edges to nothing as my preferences.
|
|
# I let my keyboard do the work as much as possible.
|
|
TouchEdges = {
|
|
Bottom = "none";
|
|
Left = "none";
|
|
Right = "none";
|
|
Top = "none";
|
|
};
|
|
|
|
# Filtering windows by the current activity only and nothing else.
|
|
# The default also includes through the same desktop which severely limits my task switching.
|
|
TabBox = {
|
|
ApplicationsMode = 1;
|
|
DesktopMode = 0;
|
|
};
|
|
};
|
|
|
|
kdeglobals = {
|
|
KDE = {
|
|
AnimationDuration = 0.5;
|
|
LookAndFeelPackage = "org.kde.breezedark.desktop";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# Put all of the Plasma dotfiles in certain locations.
|
|
environment.etc = {
|
|
"xdg/baloofilerc".source = ./config/kde/baloofilerc;
|
|
"xdg/kglobalshortcutsrc".source = ./config/kde/kglobalshortcutsrc;
|
|
"xdg/khotkeysrc".source = ./config/kde/khotkeysrc;
|
|
"xdg/klaunchrc".source = ./config/kde/klaunchrc;
|
|
"xdg/krunnerrc".source = ./config/kde/krunnerrc;
|
|
"xdg/plasma-org.kde.plasma.desktop-appletsrc".source = ./config/kde/plasma-org.kde.plasma.desktop-appletsrc;
|
|
"xdg/plasmanotifyrc".source = ./config/kde/plasmanotifyrc;
|
|
"xdg/plasmarc".source = ./config/kde/plasmarc;
|
|
};
|
|
|
|
# Install additional packages.
|
|
environment.systemPackages = with pkgs; [
|
|
kitty # The preferred terminal emulator.
|
|
] ++ (with pkgs.plasma5Packages; [
|
|
bismuth # Tiling inside Plasma?
|
|
|
|
# Powering up Krunner.
|
|
krunner-symbols
|
|
krunner-ssh
|
|
]);
|
|
|
|
programs.kdeconnect.enable = true;
|
|
};
|
|
}
|