diff --git a/home/desktop/shell/noctalia.nix b/home/desktop/shell/noctalia.nix index 4075fd7..cb46ce1 100644 --- a/home/desktop/shell/noctalia.nix +++ b/home/desktop/shell/noctalia.nix @@ -8,13 +8,9 @@ }: { - imports = - if true then - [ - inputs.noctalia.homeModules.default - ] - else - [ ]; + imports = [ + inputs.noctalia.homeModules.default + ]; config = { programs.noctalia-shell = @@ -52,44 +48,293 @@ widgets = { left = [ { + colorizeSystemIcon = "none"; + customIconPath = ""; + enableColorization = false; + icon = "rocket"; + iconColor = "none"; id = "Launcher"; + useDistroLogo = true; } { - id = "Clock"; - } - { - id = "SystemMonitor"; - } - { - id = "ActiveWindow"; - } - { + compactMode = false; + hideMode = "hidden"; + hideWhenIdle = false; id = "MediaMini"; + maxWidth = 145; + panelShowAlbumArt = true; + scrollingMode = "hover"; + showAlbumArt = true; + showArtistFirst = true; + showProgressRing = true; + showVisualizer = false; + textColor = "none"; + useFixedWidth = false; + visualizerType = "linear"; + } + { + hideWhenZero = false; + hideWhenZeroUnread = false; + iconColor = "none"; + id = "NotificationHistory"; + showUnreadBadge = true; + unreadBadgeColor = "primary"; + } + { + compactMode = true; + diskPath = "/"; + iconColor = "none"; + id = "SystemMonitor"; + showCpuCores = false; + showCpuFreq = false; + showCpuTemp = true; + showCpuUsage = true; + showDiskAvailable = false; + showDiskUsage = true; + showDiskUsageAsPercent = false; + showGpuTemp = false; + showLoadAverage = false; + showMemoryAsPercent = false; + showMemoryUsage = true; + showNetworkStats = false; + showSwapUsage = true; + textColor = "none"; + useMonospaceFont = true; + usePadding = false; + } + ( + if (osConfig.device.type == "laptop") then + { + deviceNativePath = "__default__"; + displayMode = "icon-hover"; + hideIfIdle = false; + hideIfNotDetected = false; + id = "Battery"; + showNoctaliaPerformance = true; + showPowerProfiles = true; + } + else + { } + ) + { + displayMode = "alwaysHide"; + iconColor = "none"; + id = "Network"; + textColor = "none"; + } + { + displayMode = "alwaysHide"; + iconColor = "none"; + id = "Bluetooth"; + textColor = "none"; + } + { + defaultSettings = { + autoHeight = true; + cheatsheetData = [ ]; + columnCount = 3; + detectedCompositor = ""; + hyprlandConfigPath = "~/.config/hypr/hyprland.conf"; + modKeyVariable = "$mod"; + niriConfigPath = "~/.config/niri/config.kdl"; + windowHeight = 0; + windowWidth = 1400; + }; + id = "plugin:keybind-cheatsheet"; + } + { + defaultSettings = { + autoCloseManagedObs = true; + barLabelMode = "short-label"; + launchBehavior = "minimized-to-tray"; + leftClickAction = "panel"; + openVideosAfterStop = true; + pollIntervalMs = 2500; + showBarWhenReady = true; + showBarWhenRecording = true; + showBarWhenReplay = false; + showBarWhenStreaming = true; + showControlCenterWhenReady = false; + showControlCenterWhenRecording = true; + showControlCenterWhenReplay = true; + showControlCenterWhenStreaming = true; + showElapsedInBar = false; + videosOpener = "xdg-open"; + videosPath = ""; + }; + id = "plugin:obs-control"; + } + { + defaultSettings = { + activeColor = "primary"; + enableToast = true; + hideInactive = false; + iconSpacing = 4; + inactiveColor = "none"; + micFilterRegex = ""; + removeMargins = false; + }; + id = "plugin:privacy-indicator"; + } + { + defaultSettings = { + colorHistory = [ ]; + detectedCompositor = ""; + detectedRecorder = ""; + filenameFormat = ""; + installedLangs = [ + "eng" + ]; + paletteColors = [ ]; + screenshotPath = ""; + selectedOcrLang = "eng"; + transAvailable = false; + videoPath = ""; + }; + id = "plugin:screen-toolkit"; } ]; center = [ { + defaultSettings = { + hideBackground = false; + minimumThreshold = 10; + }; + id = "plugin:catwalk"; + } + { + clockColor = "none"; + customFont = ""; + formatHorizontal = "HH:mm ddd, dd. MMM"; + formatVertical = "HH mm - dd MM"; + id = "Clock"; + tooltipFormat = "HH:mm ddd, dd. MMM"; + useCustomFont = false; + } + { + id = "plugin:weekly-calendar"; + } + { + characterCount = 2; + colorizeIcons = false; + emptyColor = "none"; + enableScrollWheel = true; + focusedColor = "primary"; + followFocusedScreen = false; + fontWeight = "bold"; + groupedBorderOpacity = 1; + hideUnoccupied = false; + iconScale = 0.8; id = "Workspace"; + labelMode = "index"; + occupiedColor = "none"; + pillSize = 0.6; + showApplications = false; + showApplicationsHover = false; + showBadge = true; + showLabelsOnlyWhenOccupied = true; + unfocusedIconsOpacity = 1; + } + { + defaultSettings = { + enableTodoIntegration = false; + notecardsEnabled = true; + pincardsEnabled = true; + showCloseButton = true; + }; + id = "plugin:clipper"; + } + { + defaultSettings = { + catColor = "default"; + catOffsetY = 0; + catSize = 1; + idleTimeout = 150; + raveMode = false; + tappyMode = false; + useMprisFilter = false; + waitingTimeout = 30000; + }; + id = "plugin:slowbongo"; } ]; right = [ { + blacklist = [ + "*kdeconnect*" + "*syncthing*" + ]; + chevronColor = "none"; + colorizeIcons = false; + drawerEnabled = false; + hidePassive = false; id = "Tray"; + pinned = [ ]; } { - id = "NotificationHistory"; + defaultSettings = { }; + id = "plugin:kde-connect"; } { - id = "Battery"; + defaultSettings = { + apiKey = ""; + apiUrl = ""; + configPath = ""; + enabled = true; + folderIds = [ ]; + pollIntervalMs = 10000; + verifyTls = false; + }; + id = "plugin:syncthing-status"; } { + defaultSettings = { + compactMode = false; + defaultPeerAction = "copy-ip"; + hideDisconnected = false; + hideMullvadExitNodes = true; + pingCount = 5; + refreshInterval = 5000; + showIpAddress = true; + showPeerCount = true; + sshUsername = ""; + taildropDownloadDir = "~/Downloads"; + taildropEnabled = true; + taildropReceiveMode = "operator"; + terminalCommand = ""; + }; + id = "plugin:tailscale"; + } + + ( + if (osConfig.device.type == "laptop") then + { + applyToAllMonitors = false; + displayMode = "onhover"; + iconColor = "none"; + id = "Brightness"; + textColor = "none"; + } + else + { } + ) + { + displayMode = "onhover"; + iconColor = "none"; id = "Volume"; + middleClickCommand = "pwvucontrol || pavucontrol"; + textColor = "none"; } { - id = "Brightness"; + displayMode = "onhover"; + iconColor = "none"; + id = "Microphone"; + middleClickCommand = "pwvucontrol || pavucontrol"; + textColor = "none"; } { - id = "ControlCenter"; + iconColor = "none"; + id = "WallpaperSelector"; } ]; }; @@ -229,7 +474,7 @@ solidColor = "#1a1a2e"; automationEnabled = true; wallpaperChangeMode = "random"; - randomIntervalSec = 300; + randomIntervalSec = 900; transitionDuration = 1500; transitionType = [ "fade" @@ -531,60 +776,78 @@ syncGsettings = true; }; templates = { - activeTemplates = [ - { id = alacritty; - enable = true; + activeTemplates = [ + { + id = "alacritty"; + enable = true; } - { id = btop; - enable = true; + { + id = "btop"; + enable = true; } - { id = cava; - enable = true; + { + id = "cava"; + enable = true; } - { id = emacs; - enable = true; + { + id = "emacs"; + enable = true; } - { id = gtk; - enable = true; + { + id = "gtk"; + enable = true; } - { id = hyprland; - enable = true; + { + id = "hyprland"; + enable = true; } - { id = hyprtoolkit; - enable = true; + { + id = "hyprtoolkit"; + enable = true; } - { id = kcolorscheme; - enable = true; + { + id = "kcolorscheme"; + enable = true; } - { id = kitty; - enable = true; + { + id = "kitty"; + enable = true; } - { id = mango; - enable = true; + { + id = "mango"; + enable = true; } - { id = niri; - enable = true; + { + id = "niri"; + enable = true; } - { id = qt; - enable = true; + { + id = "qt"; + enable = true; } - { id = steam; - enable = true; + { + id = "steam"; + enable = true; } - { id = sway; - enable = true; + { + id = "sway"; + enable = true; } - { id = code; - enable = true; + { + id = "code"; + enable = true; } - { id = walker; - enable = true; + { + id = "walker"; + enable = true; } - { id = zed; - enable = true; + { + id = "zed"; + enable = true; } - { id = zenBrowser; - enable = true; + { + id = "zenBrowser"; + enable = true; } ]; enableUserTheming = false; diff --git a/hosts/default.nix b/hosts/default.nix deleted file mode 100644 index 033a955..0000000 --- a/hosts/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -let - type = config.device.type; -in - -{ - options = { - device = { - type = lib.mkOption { - default = "desktop"; - description = "device preset: desktop, laptop, server"; - }; - }; - }; - config = { - apps = { - audio = { - base.enable = (lib.mkIf (type == "desktop")) true; - media.enable = true; - editing.enable = true; - }; - video = { - base.enable = true; - media.enable = true; - editing.enable = true; - }; - image = { - base.enable = true; - editing.enable = true; - }; - gaming = { - steam.enable = true; - }; - terminal = { - kitty = { - enable = true; - }; - default = "kitty"; - toys = true; - }; - }; - desktop = { - window-managers = { - hyprland = { - enable = true; - }; - niri = { - enable = true; - }; - sway = { - enable = false; - }; - }; - shell = { - noctalia = { - enable = true; - }; - swww = { - enable = false; - }; - walker = { - enable = true; - }; - waybar = { - enable = false; - }; - }; - utilities = { - grimblast = { - enable = true; - }; - }; - }; - }; -} diff --git a/hosts/marty-pc/options.nix b/hosts/marty-pc/options.nix index 78b8e05..f2b386e 100644 --- a/hosts/marty-pc/options.nix +++ b/hosts/marty-pc/options.nix @@ -17,6 +17,7 @@ locale = "de_DE.UTF-8"; hostname = "marty-pc"; }; + device.type = "desktop"; apps = { audio = { base.enable = true; @@ -72,6 +73,7 @@ kde-connect.enable = true; nextcloud.enable = true; syncthing = { + enable = true; devices = { marty-pc = { id = "6PJZD52-EEWIO7U-MZMJJ5B-33DGNSU-O7DJVRT-GAE7QZG-ZY3VIMV-VSMBDQP"; diff --git a/modules/apps/misc/default.nix b/modules/apps/misc/default.nix index 7610d39..411502e 100644 --- a/modules/apps/misc/default.nix +++ b/modules/apps/misc/default.nix @@ -57,9 +57,14 @@ ); programs = { seahorse.enable = true; + dconf.enable = true; }; services = { - gnome.gnome-keyring.enable = true; + gnome = { + gnome-keyring.enable = true; + evolution-data-server.enable = true; + gnome-online-accounts.enable = true; + }; }; }; } diff --git a/modules/apps/sync/default.nix b/modules/apps/sync/default.nix index 7dcef03..47a4de5 100644 --- a/modules/apps/sync/default.nix +++ b/modules/apps/sync/default.nix @@ -58,7 +58,6 @@ if config.apps.sync.syncthing.enable then { enable = true; - tray.enable = true; guiAddress = "0.0.0.0:8384"; settings = { devices = config.apps.sync.syncthing.devices; diff --git a/modules/apps/video/default.nix b/modules/apps/video/default.nix index 7ce7168..55f516f 100644 --- a/modules/apps/video/default.nix +++ b/modules/apps/video/default.nix @@ -32,7 +32,11 @@ ++ ( if config.apps.video.editing.enable then - [ kdePackages.kdenlive ] + [ + kdePackages.kdenlive + kdePackages.qtwebsockets + obs-studio + ] else [ ] ) diff --git a/modules/default.nix b/modules/default.nix index 552c0d1..ad53f55 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -9,6 +9,7 @@ imports = [ ./apps ./desktop + ./device ./server ./system ./user diff --git a/modules/desktop/shell/noctalia.nix b/modules/desktop/shell/noctalia.nix index 2bdab48..bd8eaaf 100644 --- a/modules/desktop/shell/noctalia.nix +++ b/modules/desktop/shell/noctalia.nix @@ -12,5 +12,4 @@ noctalia.enable = lib.mkEnableOption "enable noctalia"; }; }; - config.services.gnome.evolution-data-server.enable = true; } diff --git a/modules/device/default.nix b/modules/device/default.nix new file mode 100644 index 0000000..87422e4 --- /dev/null +++ b/modules/device/default.nix @@ -0,0 +1,22 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + options = { + device.type = lib.mkOption { + default = "minimal"; + description = "device type (desktop, laptop, server, minimal) for base config"; + }; + }; + + imports = [ + ./minimal.nix + ./desktop.nix + ./laptop.nix + ./server.nix + ]; +} diff --git a/modules/device/desktop.nix b/modules/device/desktop.nix new file mode 100644 index 0000000..2085aba --- /dev/null +++ b/modules/device/desktop.nix @@ -0,0 +1,10 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + config = { }; +} diff --git a/modules/device/laptop.nix b/modules/device/laptop.nix new file mode 100644 index 0000000..2085aba --- /dev/null +++ b/modules/device/laptop.nix @@ -0,0 +1,10 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + config = { }; +} diff --git a/modules/device/minimal.nix b/modules/device/minimal.nix new file mode 100644 index 0000000..2085aba --- /dev/null +++ b/modules/device/minimal.nix @@ -0,0 +1,10 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + config = { }; +} diff --git a/modules/device/server.nix b/modules/device/server.nix new file mode 100644 index 0000000..2085aba --- /dev/null +++ b/modules/device/server.nix @@ -0,0 +1,10 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + config = { }; +} diff --git a/modules/server/misc/lauti.nix b/modules/server/misc/lauti.nix index 2bd6c08..8606f0a 100644 --- a/modules/server/misc/lauti.nix +++ b/modules/server/misc/lauti.nix @@ -5,7 +5,7 @@ ... }: let - domain = ${config.server.misc.lauti.subdomain}.${config.networking.domain}; + domain = "${config.server.misc.lauti.subdomain}.${config.networking.domain}"; in { options = {