nixos-config/modules/nixos/themes/knome/default.nix
Gabriel Arazas f21c92a5b7 themes/knome: create theme
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.
2022-04-17 22:34:14 +08:00

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;
};
}