nixos-config/modules/nixos/workflows/knome/default.nix
Gabriel Arazas 03590ad834
nixos/workflows: disable display manager services
This is now on the individual configurations to enable them since most
workflows are expected to be quite similar to desktop environments like from
default NixOS modules.
2024-02-15 23:14:33 +08:00

85 lines
2.6 KiB
Nix

{ config, lib, pkgs, ... }:
let
cfg = config.workflows.workflows.knome;
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;
};
}