{ inputs, ... }: { flake.modules.nixos.scrolling-desktop = { pkgs, ... }: { programs.niri.enable = true; security.polkit.enable = true; services.gnome.gnome-keyring.enable = true; xdg.portal = { enable = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-gnome ]; }; services.gvfs.enable = true; services.displayManager = { enable = true; ly = { enable = true; settings = { asterisk = "0x2022"; bigclock = "en"; default_input = "password"; doom_fire_height = 1; doom_top_color = "0x00c57faf"; doom_middle_color = "0x00d369af"; doom_bottom_color = "0x00572454"; session_log = ".local/share/ly-session.log"; vi_mode = true; vi_default_mode = "insert"; bg = "0x000f0b15"; border_fg = "0x00807c9f"; box-title = "dnsc-machine"; }; }; }; environment.systemPackages = with pkgs; [ xwayland-satellite bibata-cursors gimp darktable reversal-icon-theme adwaita-fonts bodoni-moda nautilus nautilus-open-any-terminal noto-fonts-color-emoji adw-gtk3 kdePackages.qt6ct usbutils ]; home-manager.sharedModules = [ inputs.self.modules.homeManager.scrolling-desktop ]; }; flake.modules.homeManager.scrolling-desktop = { pkgs, config, ... }: { imports = [ ({ lib, pkgs, ... }: lib.mkIf pkgs.stdenv.isDarwin { }) ]; services.polkit-gnome.enable = true; services.mpris-proxy.enable = true; xdg.desktopEntries = { screenshot = { type = "Application"; name = "Screenshot"; exec = "niri msg action screenshot"; icon = "screenie"; }; screenshot-screen = { type = "Application"; name = "Screenshot Screen"; exec = "niri msg action screenshot-screen"; icon = "screenie"; }; color-pickers = { type = "Application"; name = "Color Picker"; exec = "hyprpicker -a -f=hex -n -l -q"; icon = "colorpicker"; }; notes = { type = "Application"; name = "Notes"; exec = "ghostty --working-directory=${config.home.homeDirectory}/notes -e nvim -c \":lua Snacks.picker('files')\""; icon = "gnotes"; }; lock = { type = "Application"; name = "Lock"; exec = "hyprlock"; icon = "lock-screen"; }; logout = { type = "Application"; name = "Logout"; exec = "niri msg action quit"; icon = "administration"; }; shutdown = { type = "Application"; name = "Shutdown"; exec = "shutdown now"; icon = "com.github.bcedu.shutdownscheduler"; }; }; fonts.fontconfig = { enable = true; antialiasing = true; defaultFonts = { monospace = [ "VictorMono Nerd Font" ]; sansSerif = [ "Adwaita Sans" "Noto Color Emoji" ]; serif = [ "Bodoni Moda" ]; }; }; gtk = { enable = true; colorScheme = "dark"; theme.name = "adw-gtk3"; font = { package = pkgs.adwaita-fonts; name = "Adwaita Sans"; size = 11; }; iconTheme = { package = pkgs.reversal-icon-theme; name = "Reversal-dark"; }; gtk4.iconTheme = { package = pkgs.reversal-icon-theme; name = "Reversal-dark"; }; cursorTheme = { package = pkgs.bibata-cursors; name = "Bibata-Modern-Ice"; size = 24; }; }; imports = [ inputs.dms.homeModules.dank-material-shell ]; home.packages = with pkgs; [ nerd-fonts.victor-mono ]; programs.dank-material-shell = { enable = true; systemd = { enable = true; restartIfChanged = true; }; enableSystemMonitoring = true; enableVPN = true; enableClipboardPaste = true; settings = { currentThemeName = "dynamic"; currentThemeCategory = "dynamic"; customThemeFile = ""; registryThemeVariants = { }; matugenScheme = "scheme-tonal-spot"; runUserMatugenTemplates = true; matugenTargetMonitor = ""; popupTransparency = 1; dockTransparency = 1; widgetBackgroundColor = "sch"; widgetColorMode = "default"; controlCenterTileColorMode = "primary"; buttonColorMode = "primary"; cornerRadius = 12; niriLayoutGapsOverride = 8; layoutBorderSize = 2; showSeconds = false; padHours12Hour = false; useFahrenheit = false; windSpeedUnit = "ms"; nightModeEnabled = false; animationSpeed = 1; customAnimationDuration = 500; syncComponentAnimationSpeeds = true; popoutAnimationSpeed = 1; popoutCustomAnimationDuration = 150; modalAnimationSpeed = 1; modalCustomAnimationDuration = 150; enableRippleEffects = false; wallpaperFillMode = "Fill"; blurredWallpaperLayer = false; blurWallpaperOnOverview = false; showLauncherButton = true; showWorkspaceSwitcher = true; showFocusedWindow = true; showWeather = true; showMusic = true; showClipboard = true; showCpuUsage = true; showMemUsage = true; showCpuTemp = true; showGpuTemp = true; selectedGpuIndex = 0; enabledGpuPciIds = [ ]; showSystemTray = true; showClock = true; showNotificationButton = true; showBattery = true; showControlCenterButton = true; showCapsLockIndicator = true; controlCenterShowNetworkIcon = true; controlCenterShowBluetoothIcon = true; controlCenterShowAudioIcon = true; controlCenterShowAudioPercent = false; controlCenterShowVpnIcon = true; controlCenterShowBrightnessIcon = false; controlCenterShowBrightnessPercent = false; controlCenterShowMicIcon = false; controlCenterShowMicPercent = false; controlCenterShowBatteryIcon = false; controlCenterShowPrinterIcon = false; controlCenterShowScreenSharingIcon = true; showPrivacyButton = true; privacyShowMicIcon = false; privacyShowCameraIcon = false; privacyShowScreenShareIcon = false; controlCenterWidgets = [ { id = "volumeSlider"; enabled = true; width = 50; } { id = "brightnessSlider"; enabled = true; width = 50; } { id = "wifi"; enabled = true; width = 50; } { id = "bluetooth"; enabled = true; width = 50; } { id = "audioOutput"; enabled = true; width = 50; } { id = "audioInput"; enabled = true; width = 50; } { id = "nightMode"; enabled = true; width = 50; } { id = "darkMode"; enabled = true; width = 50; } ]; showWorkspaceIndex = true; showWorkspaceName = false; showWorkspacePadding = false; workspaceScrolling = false; showWorkspaceApps = false; workspaceDragReorder = true; maxWorkspaceIcons = 3; workspaceAppIconSizeOffset = 0; groupWorkspaceApps = true; workspaceFollowFocus = false; showOccupiedWorkspacesOnly = false; reverseScrolling = false; dwlShowAllTags = false; workspaceColorMode = "default"; workspaceOccupiedColorMode = "none"; workspaceUnfocusedColorMode = "default"; workspaceUrgentColorMode = "default"; workspaceFocusedBorderEnabled = false; workspaceFocusedBorderColor = "primary"; workspaceFocusedBorderThickness = 2; workspaceNameIcons = { }; waveProgressEnabled = true; scrollTitleEnabled = true; audioVisualizerEnabled = false; audioScrollMode = "volume"; audioWheelScrollAmount = 5; clockCompactMode = false; focusedWindowCompactMode = false; runningAppsCompactMode = true; barMaxVisibleApps = 0; barMaxVisibleRunningApps = 0; barShowOverflowBadge = true; appsDockHideIndicators = false; appsDockColorizeActive = false; appsDockActiveColorMode = "primary"; appsDockEnlargeOnHover = false; appsDockEnlargePercentage = 125; appsDockIconSizePercentage = 100; keyboardLayoutNameCompactMode = false; runningAppsCurrentWorkspace = true; runningAppsGroupByApp = false; runningAppsCurrentMonitor = false; appIdSubstitutions = [ { pattern = "Spotify"; replacement = "spotify"; type = "exact"; } { pattern = "beepertexts"; replacement = "beeper"; type = "exact"; } { pattern = "home assistant desktop"; replacement = "homeassistant-desktop"; type = "exact"; } { pattern = "com.transmissionbt.transmission"; replacement = "transmission-gtk"; type = "contains"; } { pattern = "^steam_app_(\\d+)$"; replacement = "steam_icon_$1"; type = "regex"; } ]; centeringMode = "index"; clockDateFormat = "dddd, MMMM d"; lockDateFormat = "dddd, MMMM d"; mediaSize = 1; appLauncherViewMode = "list"; spotlightModalViewMode = "list"; browserPickerViewMode = "grid"; browserUsageHistory = { }; appPickerViewMode = "grid"; filePickerUsageHistory = { }; sortAppsAlphabetically = false; appLauncherGridColumns = 4; spotlightCloseNiriOverview = true; spotlightSectionViewModes = { }; appDrawerSectionViewModes = { }; niriOverviewOverlayEnabled = true; dankLauncherV2Size = "compact"; dankLauncherV2BorderEnabled = false; dankLauncherV2BorderThickness = 2; dankLauncherV2BorderColor = "primary"; dankLauncherV2ShowFooter = true; dankLauncherV2UnloadOnClose = false; useAutoLocation = false; weatherEnabled = true; networkPreference = "auto"; iconTheme = "System Default"; cursorSettings = { theme = "Bibata-Modern-Ice"; size = 24; niri = { hideWhenTyping = false; hideAfterInactiveMs = 0; }; hyprland = { hideOnKeyPress = false; hideOnTouch = false; inactiveTimeout = 0; }; dwl = { cursorHideTimeout = 0; }; }; launcherLogoMode = "apps"; launcherLogoCustomPath = ""; launcherLogoColorOverride = ""; launcherLogoColorInvertOnMode = false; launcherLogoBrightness = 0.5; launcherLogoContrast = 1; launcherLogoSizeOffset = 0; fontFamily = "Adwaita Sans"; monoFontFamily = "Fira Code"; fontWeight = 400; fontScale = 1; notepadUseMonospace = true; notepadFontFamily = ""; notepadFontSize = 14; notepadShowLineNumbers = false; adLastCustomTransparency = 0.7; soundsEnabled = true; useSystemSoundTheme = false; soundNewNotification = true; soundVolumeChanged = true; soundPluggedIn = true; acMonitorTimeout = 0; acLockTimeout = 0; acSuspendTimeout = 0; acSuspendBehavior = 0; acProfileName = ""; batteryMonitorTimeout = 0; batteryLockTimeout = 0; batterySuspendTimeout = 0; batterySuspendBehavior = 0; batteryProfileName = ""; batteryChargeLimit = 100; lockBeforeSuspend = false; loginctlLockIntegration = true; fadeToLockEnabled = true; fadeToLockGracePeriod = 5; fadeToDpmsEnabled = true; fadeToDpmsGracePeriod = 5; launchPrefix = ""; brightnessDevicePins = { }; wifiNetworkPins = { }; bluetoothDevicePins = { }; audioInputDevicePins = { }; audioOutputDevicePins = { }; gtkThemingEnabled = false; qtThemingEnabled = false; syncModeWithPortal = true; terminalsAlwaysDark = false; runDmsMatugenTemplates = true; matugenTemplateGtk = true; matugenTemplateNiri = true; matugenTemplateHyprland = true; matugenTemplateMangowc = true; matugenTemplateQt5ct = true; matugenTemplateQt6ct = true; matugenTemplateFirefox = true; matugenTemplatePywalfox = true; matugenTemplateZenBrowser = true; matugenTemplateVesktop = true; matugenTemplateEquibop = true; matugenTemplateGhostty = false; matugenTemplateKitty = true; matugenTemplateFoot = true; matugenTemplateAlacritty = true; matugenTemplateNeovim = false; matugenTemplateWezterm = true; matugenTemplateDgop = true; matugenTemplateKcolorscheme = true; matugenTemplateVscode = true; matugenTemplateEmacs = true; showDock = false; dockAutoHide = false; dockSmartAutoHide = false; dockGroupByApp = false; dockOpenOnOverview = false; dockPosition = 1; dockSpacing = 4; dockBottomGap = 0; dockMargin = 0; dockIconSize = 40; dockIndicatorStyle = "circle"; dockBorderEnabled = false; dockBorderColor = "surfaceText"; dockBorderOpacity = 1; dockBorderThickness = 1; dockIsolateDisplays = false; dockLauncherEnabled = false; dockLauncherLogoMode = "apps"; dockLauncherLogoCustomPath = ""; dockLauncherLogoColorOverride = ""; dockLauncherLogoSizeOffset = 0; dockLauncherLogoBrightness = 0.5; dockLauncherLogoContrast = 1; dockMaxVisibleApps = 0; dockMaxVisibleRunningApps = 0; dockShowOverflowBadge = true; notificationOverlayEnabled = false; notificationPopupShadowEnabled = true; notificationPopupPrivacyMode = false; modalDarkenBackground = true; lockScreenShowPowerActions = true; lockScreenShowSystemIcons = true; lockScreenShowTime = true; lockScreenShowDate = true; lockScreenShowProfileImage = true; lockScreenShowPasswordField = true; lockScreenShowMediaPlayer = true; lockScreenPowerOffMonitorsOnLock = false; lockAtStartup = false; enableFprint = false; maxFprintTries = 15; lockScreenActiveMonitor = "all"; lockScreenInactiveColor = "#000000"; lockScreenNotificationMode = 0; hideBrightnessSlider = false; notificationTimeoutLow = 5000; notificationTimeoutNormal = 5000; notificationTimeoutCritical = 0; notificationCompactMode = false; notificationPopupPosition = 0; notificationAnimationSpeed = 1; notificationCustomAnimationDuration = 400; notificationHistoryEnabled = true; notificationHistoryMaxCount = 50; notificationHistoryMaxAgeDays = 7; notificationHistorySaveLow = true; notificationHistorySaveNormal = true; notificationHistorySaveCritical = true; notificationRules = [ ]; osdAlwaysShowValue = false; osdPosition = 5; osdVolumeEnabled = true; osdMediaVolumeEnabled = true; osdMediaPlaybackEnabled = false; osdBrightnessEnabled = true; osdIdleInhibitorEnabled = true; osdMicMuteEnabled = true; osdCapsLockEnabled = true; osdPowerProfileEnabled = false; osdAudioOutputEnabled = true; powerActionConfirm = true; powerActionHoldDuration = 0.5; powerMenuActions = [ "reboot" "logout" "poweroff" "lock" "suspend" "restart" ]; powerMenuDefaultAction = "logout"; powerMenuGridLayout = false; customPowerActionLock = ""; customPowerActionLogout = ""; customPowerActionSuspend = ""; customPowerActionHibernate = ""; customPowerActionReboot = ""; customPowerActionPowerOff = ""; updaterHideWidget = false; updaterUseCustomCommand = false; updaterCustomCommand = ""; updaterTerminalAdditionalParams = ""; displayNameMode = "system"; screenPreferences = { }; showOnLastDisplay = { }; niriOutputSettings = { }; hyprlandOutputSettings = { }; displayProfiles = { }; activeDisplayProfile = { }; displayProfileAutoSelect = false; displayShowDisconnected = false; displaySnapToEdge = true; barConfigs = [ { id = "default"; name = "Main Bar"; enabled = true; position = 0; screenPreferences = [ "all" ]; showOnLastDisplay = true; leftWidgets = [ { id = "workspaceSwitcher"; enabled = true; } { id = "focusedWindow"; enabled = true; } { id = "appsDock"; enabled = true; } ]; centerWidgets = [ "music" ]; rightWidgets = [ { id = "systemTray"; enabled = true; } { id = "clipboard"; enabled = true; } { id = "clock"; enabled = true; } { id = "controlCenterButton"; enabled = true; } ]; spacing = 0; transparency = 1; widgetTransparency = 1; squareCorners = true; noBackground = false; gothCornersEnabled = false; gothCornerRadiusOverride = false; gothCornerRadiusValue = 12; borderEnabled = false; borderColor = "surfaceText"; borderOpacity = 1; borderThickness = 1; fontScale = 1.05; autoHide = false; autoHideDelay = 250; openOnOverview = false; visible = true; popupGapsAuto = true; popupGapsManual = 0; maximizeDetection = false; widgetPadding = 12; iconScale = 1.1; maximizeWidgetIcons = false; maximizeWidgetText = false; removeWidgetPadding = false; shadowIntensity = 0; shadowOpacity = 37; widgetOutlineEnabled = false; } ]; desktopClockEnabled = false; desktopClockStyle = "analog"; desktopClockTransparency = 0.8; desktopClockColorMode = "primary"; desktopClockShowDate = true; desktopClockShowAnalogNumbers = false; desktopClockShowAnalogSeconds = true; desktopClockWidth = 280; desktopClockHeight = 180; desktopClockDisplayPreferences = [ "all" ]; systemMonitorEnabled = false; systemMonitorShowHeader = true; systemMonitorTransparency = 0.8; systemMonitorColorMode = "primary"; systemMonitorShowCpu = true; systemMonitorShowCpuGraph = true; systemMonitorShowCpuTemp = true; systemMonitorShowGpuTemp = false; systemMonitorGpuPciId = ""; systemMonitorShowMemory = true; systemMonitorShowMemoryGraph = true; systemMonitorShowNetwork = true; systemMonitorShowNetworkGraph = true; systemMonitorShowDisk = true; systemMonitorShowTopProcesses = false; systemMonitorTopProcessCount = 3; systemMonitorTopProcessSortBy = "cpu"; systemMonitorGraphInterval = 60; systemMonitorLayoutMode = "auto"; systemMonitorWidth = 320; systemMonitorHeight = 480; systemMonitorDisplayPreferences = [ "all" ]; systemMonitorVariants = [ ]; desktopWidgetPositions = { }; desktopWidgetGridSettings = { }; desktopWidgetInstances = [ ]; desktopWidgetGroups = [ ]; builtInPluginSettings = { dms_settings_search = { trigger = "?"; }; }; clipboardEnterToPaste = false; launcherPluginVisibility = { }; launcherPluginOrder = [ ]; configVersion = 5; }; session = { isLightMode = false; doNotDisturb = false; wallpaperPath = "/home/dennis/Pictures/Wallpapers/safe/dark/mountain.jpg"; perMonitorWallpaper = false; monitorWallpapers = { }; perModeWallpaper = false; wallpaperPathLight = ""; wallpaperPathDark = ""; monitorWallpapersLight = { }; monitorWallpapersDark = { }; monitorWallpaperFillModes = { }; wallpaperTransition = "fade"; includedTransitions = [ "fade" "wipe" "disc" "stripes" "iris bloom" "pixelate" "portal" ]; wallpaperCyclingEnabled = false; wallpaperCyclingMode = "interval"; wallpaperCyclingInterval = 300; wallpaperCyclingTime = "06:00"; monitorCyclingSettings = { }; nightModeEnabled = false; nightModeTemperature = 4500; nightModeHighTemperature = 6500; nightModeAutoEnabled = false; nightModeAutoMode = "time"; nightModeStartHour = 18; nightModeStartMinute = 0; nightModeEndHour = 6; nightModeEndMinute = 0; latitude = 0; longitude = 0; nightModeUseIPLocation = false; nightModeLocationProvider = ""; themeModeAutoEnabled = false; themeModeAutoMode = "time"; themeModeStartHour = 18; themeModeStartMinute = 0; themeModeEndHour = 6; themeModeEndMinute = 0; themeModeShareGammaSettings = true; weatherLocation = "München, Bayern"; weatherCoordinates = "48.1371079,11.5753822"; pinnedApps = [ ]; barPinnedApps = [ ]; dockLauncherPosition = 0; hiddenTrayIds = [ ]; trayItemOrder = [ ]; recentColors = [ ]; showThirdPartyPlugins = false; launchPrefix = ""; lastBrightnessDevice = ""; brightnessExponentialDevices = { }; brightnessUserSetValues = { }; brightnessExponentValues = { }; selectedGpuIndex = 0; nvidiaGpuTempEnabled = false; nonNvidiaGpuTempEnabled = false; enabledGpuPciIds = [ ]; wifiDeviceOverride = ""; weatherHourlyDetailed = true; hiddenApps = [ ]; appOverrides = { }; searchAppActions = true; vpnLastConnected = ""; deviceMaxVolumes = { }; hiddenOutputDeviceNames = [ ]; hiddenInputDeviceNames = [ ]; launcherLastMode = "all"; appDrawerLastMode = "apps"; niriOverviewLastMode = "apps"; configVersion = 3; }; }; xdg.configFile."niri" = { source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dev/nix-config/modules/scrolling-desktop/niri"; }; }; }