nixos-config/modules/nixos/_private/workflows/knome/default.nix
Gabriel Arazas 580e0ebe93
nixos/workflows: restructure enable option
The type is probably not apprioriate since I want to be able to install
multiple of them at a given time but we'll see.
2024-05-18 16:41:21 +08:00

88 lines
2.6 KiB
Nix

{ config, lib, pkgs, ... }:
let
workflowName = "knome";
cfg = config.workflows.workflows.${workflowName};
in
{
options.workflows.enable = lib.mkOption {
type = with lib.types; listOf (enum [ workflowName ]);
};
config = lib.mkIf (lib.elem workflowName config.workflows.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;
};
}