nixos-config/modules/nixos/_private/workflows/knome/default.nix

85 lines
2.6 KiB
Nix
Raw Normal View History

{ config, lib, pkgs, ... }:
let
cfg = config.workflows.workflows.knome;
2022-11-19 03:05:31 +00:00
in
{
options.workflows.workflows.knome.enable = lib.mkEnableOption "KNOME, an attempt to bring as much GNOME to KDE Plasma";
config = lib.mkIf cfg.enable {
services.xserver = {
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;
};
}