{ lib, config, pkgs, ... }: let cfg = config.suites.desktop; in { imports = [ ./firefox.nix ./chromium.nix ./waybar.nix ./terminal.nix ]; options.suites.desktop = { enable = lib.mkEnableOption "Desktop"; # Keybinds keybinds = { mod = lib.mkOption { type = with lib.types; str; default = "Mod"; description = "Modifyer for all Desktop Keybinds"; }; focusRight = lib.mkOption { type = with lib.types; str; default = "Mod+Right"; description = "Modifyer for all Desktop Keybinds"; }; #focusLeft = "${keybinds.mod}+Left"; #focusUp = "${keybinds.mod}+Up"; #focusDown = "${keybinds.mod}+Down"; #moveRight = "${keybinds.mod}+Shift+Right"; #moveLeft = "${keybinds.mod}+Shift+Left"; #moveUp = "${keybinds.mod}+Shift+Up"; #moveDown = "${keybinds.mod}+Shift+Down"; #toggleTiling = "${keybinds.mod}+Space"; #toggleFullscreen = "${keybinds.mod}+F"; #modeResize = "${keybinds.mod}+R"; # Use Arrow-Keys to Resize, Exit using Esc or Enter #switchWS1 = "${keybinds.mod}+1"; #switchWS2 = "${keybinds.mod}+2"; #switchWS3 = "${keybinds.mod}+3"; #switchWS4 = "${keybinds.mod}+4"; #switchWS5 = "${keybinds.mod}+5"; #nextWS = "${keybinds.mod}+Tab"; #previousWS = "${keybinds.mod}+Shift+Tab"; #moveToWS1 = "${keybinds.mod}+Shift+1"; #moveToWS2 = "${keybinds.mod}+Shift+2"; #moveToWS3 = "${keybinds.mod}+Shift+3"; #moveToWS4 = "${keybinds.mod}+Shift+4"; #moveToWS5 = "${keybinds.mod}+Shift+5"; #launcher = "${keybinds.mod}+D"; #appLauncher = "${keybinds.mod}+Shift+D"; #exit = "${keybinds.mod}+Shift+E"; #reloadConfig = "${keybinds.mod}+Shift+C"; #close = "${keybinds.mod}+Backspace"; #viewScratchpad = "${keybinds.mod}+-"; #moveToScratchpad = "${keybinds.mod}+Shift+-"; }; ############ # Programs # ############ firefox.enable = lib.mkOption { type = with lib.types; bool; default = cfg.enable; description = "Enable Firefox"; }; firefox.disableuBlockOrigin = lib.mkOption { type = with lib.types; bool; default = false; }; firefox.disableIDontCareAboutCookies = lib.mkOption { type = with lib.types; bool; default = false; }; firefox.disableKeepassxcBrowser = lib.mkOption { type = with lib.types; bool; default = false; }; firefox.disableOfflineQr = lib.mkOption { type = with lib.types; bool; default = false; }; firefox.disableDarkReader = lib.mkOption { type = with lib.types; bool; default = false; }; firefox.disableLanguageTool = lib.mkOption { type = with lib.types; bool; default = false; }; firefox.disableDefaultBookmarks = lib.mkOption { type = with lib.types; bool; default = false; }; chromium.enable = lib.mkOption { type = with lib.types; bool; default = cfg.enable; description = "Enable Chromium"; }; chromium.enableWideVine = lib.mkOption { type = with lib.types; bool; default = true; }; chromium.disableChromiumWebStore = lib.mkOption { type = with lib.types; bool; default = false; }; chromium.disableuBlockOrigin = lib.mkOption { type = with lib.types; bool; default = false; }; chromium.disableIDontCareAboutCookies = lib.mkOption { type = with lib.types; bool; default = false; }; chromium.disableKeepassxcBrowser = lib.mkOption { type = with lib.types; bool; default = false; }; chromium.disableLanguageTool = lib.mkOption { type = with lib.types; bool; default = false; }; chromium.disableDarkReader = lib.mkOption { type = with lib.types; bool; default = false; }; terminal = { enable = lib.mkOption { type = with lib.types; bool; default = cfg.enable; description = "Enable Customized Terminal"; }; }; waybar.enable = lib.mkOption { type = with lib.types; bool; default = cfg.enable; description = "Enable Customized Waybar"; }; waybar.outputs = lib.mkOption { type = with lib.types; nullOr (listOf str); default = [ "eDP-1" ]; example = [ "eDP-1" "DP-2" "DP-3" "DP-4" "HDMI-A-1" ]; }; }; config = lib.mkIf cfg.enable { }; }