{ pkgs, config, ... }: { programs.noctalia-shell = { enable = true; colors = with config.scheme.withHashtag; { mPrimary = config.scheme.withHashtag.${config.colors.accent}; mOnPrimary = base00; mSecondary = base13; mOnSecondary = base00; mTertiary = base04; mOnTertiary = base00; mError = base12; mOnError = base00; mSurface = base00; mOnSurface = base05; mSurfaceVariant = base01; mOnSurfaceVariant = base05; mOutline = base02; mShadow = base00; mHover = base04; mOnHover = base00; }; settings = { appLauncher = { autoPasteClipboard = false; clipboardWatchImageCommand = "wl-paste --type image --watch cliphist store"; clipboardWatchTextCommand = "wl-paste --type text --watch cliphist store"; clipboardWrapText = true; customLaunchPrefix = ""; customLaunchPrefixEnabled = false; enableClipPreview = true; enableClipboardHistory = true; enableSettingsSearch = true; enableWindowsSearch = true; iconMode = "tabler"; ignoreMouseInput = false; overviewLayer = false; pinnedApps = [ ]; position = "top_left"; screenshotAnnotationTool = ""; showCategories = true; showIconBackground = false; sortByMostUsed = true; terminalCommand = "kitty -e"; useApp2Unit = false; viewMode = "list"; }; audio = { cavaFrameRate = 30; mprisBlacklist = [ ]; preferredPlayer = ""; visualizerType = "linear"; volumeFeedback = false; volumeOverdrive = false; volumeStep = 5; }; bar = { autoHideDelay = 500; autoShowDelay = 150; backgroundOpacity = 0.90; monitors = [ ]; showCapsule = true; barType = "simple"; capsuleColorKey = "none"; capsuleOpacity = 0.90; displayMode = "always_visible"; floating = false; marginHorizontal = 5; marginVertical = 5; frameRadius = 12; frameThickness = 8; hideOnOverview = false; outerCorners = false; screenOverrides = [ ]; showOutline = false; useSeparateOpacity = true; widgets = { center = [ ]; left = [ { colorizeSystemIcon = "none"; enableColorization = true; hideMode = "alwaysExpanded"; icon = "rocket"; id = "CustomButton"; ipcIdentifier = ""; leftClickExec = "niri msg action spawn -- fuzzel"; leftClickUpdateText = false; maxTextLength = { horizontal = 10; vertical = 10; }; middleClickExec = ""; middleClickUpdateText = false; parseJson = false; rightClickExec = ""; rightClickUpdateText = false; showIcon = true; textCollapse = ""; textCommand = ""; textIntervalMs = 3000; textStream = false; wheelDownExec = ""; wheelDownUpdateText = false; wheelExec = ""; wheelMode = "unified"; wheelUpExec = ""; wheelUpUpdateText = false; wheelUpdateText = false; } { characterCount = 2; colorizeIcons = false; emptyColor = "secondary"; enableScrollWheel = true; focusedColor = "primary"; followFocusedScreen = false; groupedBorderOpacity = 1; hideUnoccupied = true; iconScale = 0.6; id = "Workspace"; labelMode = "index"; occupiedColor = "secondary"; pillSize = 0.6; reverseScroll = false; showApplications = true; showBadge = true; showLabelsOnlyWhenOccupied = true; unfocusedIconsOpacity = 1; } { compactMode = true; diskPath = "/"; iconColor = "none"; id = "SystemMonitor"; showCpuFreq = false; showCpuTemp = false; showCpuUsage = true; showDiskAvailable = false; showDiskUsage = true; showDiskUsageAsPercent = false; showGpuTemp = false; showLoadAverage = false; showMemoryAsPercent = true; showMemoryUsage = true; showNetworkStats = false; showSwapUsage = false; textColor = "none"; useMonospaceFont = true; } { colorizeIcons = false; hideMode = "hidden"; id = "ActiveWindow"; maxWidth = 600; scrollingMode = "always"; showIcon = true; textColor = "none"; useFixedWidth = false; } ]; right = [ { compactMode = false; compactShowAlbumArt = true; compactShowVisualizer = false; hideMode = "hidden"; hideWhenIdle = false; id = "MediaMini"; maxWidth = 380; panelShowAlbumArt = true; panelShowVisualizer = true; scrollingMode = "hover"; showAlbumArt = false; showArtistFirst = false; showProgressRing = true; showVisualizer = false; textColor = "none"; useFixedWidth = false; visualizerType = "linear"; } { blacklist = [ ]; chevronColor = "none"; colorizeIcons = true; drawerEnabled = false; hidePassive = false; id = "Tray"; pinned = [ ]; } { hideWhenZero = false; hideWhenZeroUnread = true; iconColor = "none"; id = "NotificationHistory"; showUnreadBadge = true; unreadBadgeColor = "primary"; } { deviceNativePath = "__default__"; displayMode = "icon-hover"; hideIfIdle = false; hideIfNotDetected = true; id = "Battery"; showNoctaliaPerformance = false; showPowerProfiles = true; } { displayMode = "onhover"; iconColor = "none"; id = "Volume"; middleClickCommand = "pwvucontrol || pavucontrol"; textColor = "none"; } { displayMode = "onhover"; iconColor = "none"; id = "Brightness"; textColor = "none"; } { colorizeDistroLogo = false; colorizeSystemIcon = "none"; customIconPath = ""; enableColorization = false; icon = "noctalia"; id = "ControlCenter"; useDistroLogo = false; } { clockColor = "none"; customFont = ""; formatHorizontal = "ddd MMM dd yyyy @ h:mm AP"; formatVertical = "HH mm - dd MM"; id = "Clock"; tooltipFormat = "HH:mm ddd, MMM dd"; useCustomFont = false; } ]; }; }; brightness = { brightnessStep = 5; enforceMinimum = false; }; calendar = { cards = [ { enabled = true; id = "calendar-header-card"; } { enabled = true; id = "calendar-month-card"; } { enabled = true; id = "weather-card"; } { enabled = true; id = "timer-card"; } ]; }; colorSchemes = { darkMode = true; generationMethod = "tonal-spot"; manualSunrise = "06:30"; manualSunset = "18:30"; monitorForColors = ""; predefinedScheme = "Noctalia (default)"; schedulingMode = "off"; useWallpaperColors = false; }; controlCenter = { cards = [ { enabled = true; id = "profile-card"; } { enabled = true; id = "shortcuts-card"; } { enabled = true; id = "audio-card"; } { enabled = true; id = "media-sysmon-card"; } ]; diskPath = "/"; position = "close_to_bar_button"; shortcuts = { left = [ { id = "Network"; } { id = "Bluetooth"; } { id = "WallpaperSelector"; } ]; right = [ { id = "Notifications"; } { id = "PowerProfile"; } { id = "KeepAwake"; } { id = "NightLight"; } ]; }; }; desktopWidgets = { enabled = false; gridSnap = false; monitorWidgets = [ ]; }; dock = { animationSpeed = 1; backgroundOpacity = 1; colorizeIcons = false; deadOpacity = 0.6; displayMode = "auto_hide"; enabled = false; floatingRatio = 1; inactiveIndicators = false; monitors = [ ]; onlySameOutput = true; pinnedApps = [ ]; pinnedStatic = false; position = "bottom"; size = 1; }; general = { allowPanelsOnScreenWithoutBar = true; allowPasswordWithFprintd = false; animationDisabled = false; animationSpeed = 1; autoStartAuth = false; avatarImage = "/home/sckova/.face"; boxRadiusRatio = 1; clockFormat = "hh\\nmm"; clockStyle = "custom"; compactLockScreen = false; dimmerOpacity = 0.5; enableLockScreenCountdown = true; enableShadows = false; forceBlackScreenCorners = false; iRadiusRatio = 1; language = ""; lockOnSuspend = true; lockScreenAnimations = false; lockScreenCountdownDuration = 10000; lockScreenMonitors = [ ]; radiusRatio = 1; scaleRatio = 1; screenRadiusRatio = 1; shadowDirection = "bottom_right"; shadowOffsetX = 2; shadowOffsetY = 3; showChangelogOnStartup = true; showHibernateOnLockScreen = false; showScreenCorners = false; showSessionButtonsOnLockScreen = true; telemetryEnabled = false; }; hooks = { darkModeChange = ""; enabled = false; performanceModeDisabled = ""; performanceModeEnabled = ""; screenLock = ""; screenUnlock = ""; session = ""; startup = ""; wallpaperChange = ""; }; location = { analogClockInCalendar = false; firstDayOfWeek = -1; hideWeatherCityName = false; hideWeatherTimezone = false; name = "Atlanta, US"; showCalendarEvents = true; showCalendarWeather = true; showWeekNumberInCalendar = true; use12hourFormat = true; useFahrenheit = true; weatherEnabled = true; weatherShowEffects = true; }; network = { bluetoothDetailsViewMode = "grid"; bluetoothHideUnnamedDevices = false; bluetoothRssiPollIntervalMs = 10000; bluetoothRssiPollingEnabled = false; wifiDetailsViewMode = "grid"; wifiEnabled = true; }; nightLight = { autoSchedule = true; dayTemp = "6500"; enabled = true; forced = false; manualSunrise = "06:30"; manualSunset = "18:30"; nightTemp = "4000"; }; notifications = { backgroundOpacity = 1; criticalUrgencyDuration = 15; enableBatteryToast = true; enableKeyboardLayoutToast = true; enableMediaToast = false; enabled = true; location = "top_right"; lowUrgencyDuration = 3; monitors = [ ]; normalUrgencyDuration = 8; overlayLayer = true; respectExpireTimeout = false; saveToHistory = { critical = true; low = true; normal = true; }; sounds = { criticalSoundFile = ""; enabled = true; excludedApps = "discord,firefox,chrome,chromium,edge"; lowSoundFile = ""; normalSoundFile = ""; separateSounds = false; volume = 0.5; }; }; osd = { autoHideMs = 2000; backgroundOpacity = 1; enabled = true; enabledTypes = [ 0 1 2 ]; location = "top_right"; monitors = [ ]; overlayLayer = true; }; plugins.autoUpdate = false; sessionMenu = { countdownDuration = 5000; enableCountdown = true; largeButtonsLayout = "single-row"; largeButtonsStyle = true; position = "center"; powerOptions = [ { action = "lock"; enabled = true; } { action = "suspend"; enabled = true; } { action = "hibernate"; enabled = true; } { action = "reboot"; enabled = true; } { action = "logout"; enabled = true; } { action = "shutdown"; enabled = true; } ]; showHeader = true; showNumberLabels = true; }; settingsVersion = 49; systemMonitor = { batteryCriticalThreshold = 5; batteryWarningThreshold = 20; cpuCriticalThreshold = 90; cpuPollingInterval = 1000; cpuWarningThreshold = 80; criticalColor = ""; diskAvailCriticalThreshold = 10; diskAvailWarningThreshold = 20; diskCriticalThreshold = 90; diskPollingInterval = 3000; diskWarningThreshold = 80; enableDgpuMonitoring = false; externalMonitor = "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor"; gpuCriticalThreshold = 90; gpuPollingInterval = 3000; gpuWarningThreshold = 80; loadAvgPollingInterval = 3000; memCriticalThreshold = 90; memPollingInterval = 1000; memWarningThreshold = 80; networkPollingInterval = 1000; swapCriticalThreshold = 90; swapWarningThreshold = 80; tempCriticalThreshold = 90; tempWarningThreshold = 80; useCustomColors = false; warningColor = ""; }; templates = { activeTemplates = [ ]; enableUserTheming = false; }; ui = { bluetoothDetailsViewMode = "grid"; bluetoothHideUnnamedDevices = false; boxBorderEnabled = false; fontDefault = "Noto Sans"; fontDefaultScale = 1; fontFixed = "FiraMono Nerd Font Mono"; fontFixedScale = 1; networkPanelView = "wifi"; panelBackgroundOpacity = 1; panelsAttachedToBar = true; settingsPanelMode = "attached"; tooltipsEnabled = true; wifiDetailsViewMode = "grid"; }; wallpaper = { automationEnabled = false; directory = "/home/sckova/.local/share/wallpaper"; enableMultiMonitorDirectories = false; enabled = false; fillColor = "#1e1e2e"; fillMode = "crop"; hideWallpaperFilenames = true; monitorDirectories = [ ]; overviewEnabled = false; panelPosition = "follow_bar"; randomIntervalSec = 300; setWallpaperOnAllMonitors = true; showHiddenFiles = false; solidColor = "#1a1a2e"; sortOrder = "name"; transitionDuration = 1500; transitionEdgeSmoothness = 0.05; transitionType = "random"; useSolidColor = false; useWallhaven = false; viewMode = "single"; wallhavenApiKey = ""; wallhavenCategories = "111"; wallhavenOrder = "desc"; wallhavenPurity = "100"; wallhavenQuery = ""; wallhavenRatios = ""; wallhavenResolutionHeight = ""; wallhavenResolutionMode = "atleast"; wallhavenResolutionWidth = ""; wallhavenSorting = "relevance"; wallpaperChangeMode = "random"; }; }; }; systemd.user.services.noctalia-shell = { Unit = { After = [ "niri.service" ]; PartOf = [ "niri.service" ]; Description = "Noctalia Shell - Wayland desktop shell"; Documentation = "https://docs.noctalia.dev"; X-Restart-Triggers = [ "${config.xdg.configFile."noctalia/settings.json".source}" "${config.xdg.configFile."noctalia/colors.json".source}" ]; }; Service = { ExecStart = "${pkgs.noctalia-shell}/bin/noctalia-shell"; Restart = "on-failure"; Environment = [ "QT_QPA_PLATFORMTHEME=qt6ct" ]; }; Install.WantedBy = [ "niri.service" ]; }; }