config.nix/home/desktop/shell/noctalia.nix

1031 lines
35 KiB
Nix

{
config,
pkgs,
inputs,
lib,
osConfig,
...
}:
{
imports = [
inputs.noctalia.homeModules.default
];
config = {
programs.noctalia-shell =
if osConfig.desktop.shell.noctalia.enable then
{
enable = true;
package = (pkgs.noctalia-shell.override { calendarSupport = true; });
settings = {
settingsVersion = 0;
bar = {
barType = "floating";
position = "top";
monitors = [ ];
density = "comfortable";
showOutline = true;
showCapsule = true;
capsuleOpacity = 1;
capsuleColorKey = "none";
widgetSpacing = 6;
contentPadding = 6;
fontScale = 1;
enableExclusionZoneInset = true;
backgroundOpacity = 0;
useSeparateOpacity = true;
marginVertical = 6;
marginHorizontal = 6;
frameThickness = 8;
frameRadius = 30;
outerCorners = true;
hideOnOverview = false;
displayMode = "always_visible";
autoHideDelay = 500;
autoShowDelay = 150;
showOnWorkspaceSwitch = true;
widgets = {
left = [
{
colorizeSystemIcon = "none";
customIconPath = "";
enableColorization = false;
icon = "rocket";
iconColor = "none";
id = "Launcher";
useDistroLogo = true;
}
{
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 = [ ];
}
{
defaultSettings = { };
id = "plugin:kde-connect";
}
{
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";
}
{
displayMode = "onhover";
iconColor = "none";
id = "Microphone";
middleClickCommand = "pwvucontrol || pavucontrol";
textColor = "none";
}
{
iconColor = "none";
id = "WallpaperSelector";
}
];
};
mouseWheelAction = "workspace";
reverseScroll = false;
mouseWheelWrap = true;
middleClickAction = "settings";
middleClickFollowMouse = true;
middleClickCommand = "";
rightClickAction = "controlCenter";
rightClickFollowMouse = true;
rightClickCommand = "";
screenOverrides = [ ];
};
general = {
avatarImage = "";
dimmerOpacity = 0.1;
showScreenCorners = false;
forceBlackScreenCorners = false;
scaleRatio = 1;
radiusRatio = 2;
iRadiusRatio = 2;
boxRadiusRatio = 1;
screenRadiusRatio = 1;
animationSpeed = 1;
animationDisabled = false;
compactLockScreen = false;
lockScreenAnimations = true;
lockOnSuspend = true;
showSessionButtonsOnLockScreen = true;
showHibernateOnLockScreen = false;
enableLockScreenMediaControls = true;
enableShadows = true;
enableBlurBehind = true;
shadowDirection = "bottom_right";
shadowOffsetX = 2;
shadowOffsetY = 3;
language = "";
allowPanelsOnScreenWithoutBar = true;
showChangelogOnStartup = true;
telemetryEnabled = false;
enableLockScreenCountdown = true;
lockScreenCountdownDuration = 5000;
autoStartAuth = true;
allowPasswordWithFprintd = true;
clockStyle = "custom";
clockFormat = "HH:mm - dd.MM.yyyy";
passwordChars = true;
lockScreenMonitors = [ ];
lockScreenBlur = 0.05;
lockScreenTint = 0;
keybinds = {
keyUp = [
"Up"
];
keyDown = [
"Down"
];
keyLeft = [
"Left"
];
keyRight = [
"Right"
];
keyEnter = [
"Return"
"Enter"
];
keyEscape = [
"Esc"
];
keyRemove = [
"Del"
];
};
reverseScroll = false;
smoothScrollEnabled = true;
};
ui = {
fontDefault = "FiraCode Nerd Font";
fontFixed = "FiraCode Nerd Font";
fontDefaultScale = 1;
fontFixedScale = 1;
tooltipsEnabled = true;
scrollbarAlwaysVisible = true;
boxBorderEnabled = true;
panelBackgroundOpacity = 1;
translucentWidgets = false;
panelsAttachedToBar = false;
settingsPanelMode = "centered";
settingsPanelSideBarCardStyle = true;
};
location = {
name = "";
weatherEnabled = true;
weatherShowEffects = true;
useFahrenheit = false;
use12hourFormat = false;
showWeekNumberInCalendar = true;
showCalendarEvents = true;
showCalendarWeather = true;
analogClockInCalendar = false;
firstDayOfWeek = 1;
hideWeatherTimezone = false;
hideWeatherCityName = true;
autoLocate = true;
};
calendar = {
cards = [
{
enabled = true;
id = "calendar-header-card";
}
{
enabled = true;
id = "calendar-month-card";
}
{
enabled = true;
id = "weather-card";
}
];
};
wallpaper = {
enabled = true;
overviewEnabled = true;
directory = "/home/${osConfig.user.userName}/.local/share/wallpapers";
monitorDirectories = [ ];
enableMultiMonitorDirectories = false;
showHiddenFiles = false;
viewMode = "recursive";
setWallpaperOnAllMonitors = true;
linkLightAndDarkWallpapers = true;
fillMode = "crop";
fillColor = "#000000";
useSolidColor = false;
solidColor = "#1a1a2e";
automationEnabled = true;
wallpaperChangeMode = "random";
randomIntervalSec = 900;
transitionDuration = 1500;
transitionType = [
"fade"
"disc"
"stripes"
"wipe"
"pixelate"
"honeycomb"
];
skipStartupTransition = false;
transitionEdgeSmoothness = 0.05;
panelPosition = "follow_bar";
hideWallpaperFilenames = false;
useOriginalImages = false;
overviewBlur = 0.4;
overviewTint = 0.6;
useWallhaven = false;
wallhavenQuery = "";
wallhavenSorting = "relevance";
wallhavenOrder = "desc";
wallhavenCategories = "111";
wallhavenPurity = "100";
wallhavenRatios = "";
wallhavenApiKey = "";
wallhavenResolutionMode = "atleast";
wallhavenResolutionWidth = "";
wallhavenResolutionHeight = "";
sortOrder = "name";
favorites = [ ];
};
appLauncher = {
enableClipboardHistory = true;
autoPasteClipboard = false;
enableClipPreview = true;
clipboardWrapText = true;
enableClipboardSmartIcons = true;
enableClipboardChips = true;
clipboardWatchTextCommand = "wl-paste --type text --watch cliphist store";
clipboardWatchImageCommand = "wl-paste --type image --watch cliphist store";
position = "top_center";
pinnedApps = [ ];
sortByMostUsed = true;
terminalCommand = "kitty -e";
customLaunchPrefixEnabled = false;
customLaunchPrefix = "";
viewMode = "grid";
showCategories = true;
iconMode = "native";
showIconBackground = true;
enableSettingsSearch = true;
enableWindowsSearch = true;
enableSessionSearch = true;
ignoreMouseInput = false;
screenshotAnnotationTool = "gradia";
overviewLayer = true;
density = "default";
};
controlCenter = {
position = "close_to_bar_button";
diskPath = "/";
shortcuts = {
left = [
{
id = "Network";
}
{
id = "Bluetooth";
}
{
id = "WallpaperSelector";
}
{
id = "NoctaliaPerformance";
}
];
right = [
{
id = "Notifications";
}
{
id = "PowerProfile";
}
{
id = "NightLight";
}
];
};
cards = [
{
enabled = true;
id = "profile-card";
}
{
enabled = true;
id = "shortcuts-card";
}
{
enabled = true;
id = "audio-card";
}
{
enabled = false;
id = "brightness-card";
}
{
enabled = true;
id = "weather-card";
}
{
enabled = true;
id = "media-sysmon-card";
}
];
};
systemMonitor = {
cpuWarningThreshold = 80;
cpuCriticalThreshold = 90;
tempWarningThreshold = 80;
tempCriticalThreshold = 90;
gpuWarningThreshold = 80;
gpuCriticalThreshold = 90;
memWarningThreshold = 80;
memCriticalThreshold = 90;
swapWarningThreshold = 80;
swapCriticalThreshold = 90;
diskWarningThreshold = 80;
diskCriticalThreshold = 90;
diskAvailWarningThreshold = 20;
diskAvailCriticalThreshold = 10;
batteryWarningThreshold = 20;
batteryCriticalThreshold = 5;
enableDgpuMonitoring = false;
useCustomColors = false;
warningColor = "";
criticalColor = "";
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";
};
noctaliaPerformance = {
disableWallpaper = true;
disableDesktopWidgets = true;
};
dock = {
enabled = false;
position = "bottom";
displayMode = "auto_hide";
dockType = "floating";
backgroundOpacity = 1;
floatingRatio = 1;
size = 1;
onlySameOutput = true;
monitors = [ ];
pinnedApps = [ ];
colorizeIcons = false;
showLauncherIcon = false;
launcherPosition = "end";
launcherUseDistroLogo = false;
launcherIcon = "";
launcherIconColor = "none";
pinnedStatic = false;
inactiveIndicators = false;
groupApps = false;
groupContextMenuMode = "extended";
groupClickAction = "cycle";
groupIndicatorStyle = "dots";
deadOpacity = 0.6;
animationSpeed = 1;
sitOnFrame = false;
showDockIndicator = false;
indicatorThickness = 3;
indicatorColor = "primary";
indicatorOpacity = 0.6;
};
network = {
bluetoothRssiPollingEnabled = false;
bluetoothRssiPollIntervalMs = 60000;
networkPanelView = "wifi";
wifiDetailsViewMode = "grid";
bluetoothDetailsViewMode = "grid";
bluetoothHideUnnamedDevices = false;
disableDiscoverability = false;
bluetoothAutoConnect = true;
};
sessionMenu = {
enableCountdown = true;
countdownDuration = 5000;
position = "center";
showHeader = true;
showKeybinds = true;
largeButtonsStyle = true;
largeButtonsLayout = "single-row";
powerOptions = [
{
action = "lock";
enabled = true;
keybind = "1";
}
{
action = "suspend";
enabled = true;
keybind = "2";
}
{
action = "hibernate";
enabled = true;
keybind = "3";
}
{
action = "reboot";
enabled = true;
keybind = "4";
}
{
action = "logout";
enabled = true;
keybind = "5";
}
{
action = "shutdown";
enabled = true;
keybind = "6";
}
{
action = "rebootToUefi";
enabled = true;
keybind = "7";
}
];
};
notifications = {
enabled = true;
enableMarkdown = true;
density = "compact";
monitors = [ ];
location = "top";
overlayLayer = true;
backgroundOpacity = 1;
respectExpireTimeout = true;
lowUrgencyDuration = 3;
normalUrgencyDuration = 8;
criticalUrgencyDuration = 15;
clearDismissed = true;
saveToHistory = {
low = true;
normal = true;
critical = true;
};
sounds = {
enabled = false;
volume = 0.5;
separateSounds = false;
criticalSoundFile = "";
normalSoundFile = "";
lowSoundFile = "";
excludedApps = "discord,firefox,chrome,chromium,edge";
};
enableMediaToast = false;
enableKeyboardLayoutToast = true;
enableBatteryToast = true;
};
osd = {
enabled = true;
location = "top_right";
autoHideMs = 2000;
overlayLayer = true;
backgroundOpacity = 1;
enabledTypes = [
0
1
2
];
monitors = [ ];
};
audio = {
volumeStep = 5;
volumeOverdrive = false;
spectrumFrameRate = 30;
visualizerType = "linear";
spectrumMirrored = true;
mprisBlacklist = [ ];
preferredPlayer = "";
volumeFeedback = false;
volumeFeedbackSoundFile = "";
};
brightness = {
brightnessStep = 5;
enforceMinimum = true;
enableDdcSupport = false;
backlightDeviceMappings = [ ];
};
colorSchemes = {
useWallpaperColors = true;
predefinedScheme = "Noctalia (default)";
darkMode = true;
schedulingMode = "off";
manualSunrise = "06:30";
manualSunset = "18:30";
generationMethod = "tonal-spot";
monitorForColors = "";
syncGsettings = true;
};
templates = {
activeTemplates = [
{
id = "alacritty";
active = true;
enable = true;
}
{
id = "btop";
active = true;
enable = true;
}
{
id = "cava";
active = true;
enable = true;
}
{
id = "emacs";
active = true;
enable = true;
}
{
id = "gtk";
active = true;
enable = true;
}
{
id = "hyprland";
active = true;
enable = true;
}
{
id = "hyprtoolkit";
active = true;
enable = true;
}
{
id = "kcolorscheme";
active = true;
enable = true;
}
{
id = "kitty";
active = true;
enable = true;
}
{
id = "mango";
active = true;
enable = true;
}
{
id = "niri";
active = true;
enable = true;
}
{
id = "qt";
active = true;
enable = true;
}
{
id = "steam";
active = true;
enable = true;
}
{
id = "sway";
active = true;
enable = true;
}
{
id = "code";
active = true;
enable = true;
}
{
id = "walker";
active = true;
enable = true;
}
{
id = "zed";
active = true;
enable = true;
}
{
id = "zenBrowser";
active = true;
enable = true;
}
];
enableUserTheming = false;
};
nightLight = {
enabled = false;
forced = false;
autoSchedule = true;
nightTemp = "4000";
dayTemp = "6500";
manualSunrise = "06:30";
manualSunset = "18:30";
};
hooks = {
enabled = false;
wallpaperChange = "";
darkModeChange = "";
screenLock = "";
screenUnlock = "";
performanceModeEnabled = "";
performanceModeDisabled = "";
startup = "";
session = "";
colorGeneration = "";
};
plugins = {
autoUpdate = false;
notifyUpdates = true;
sources = [
{
enabled = true;
name = "Official Noctalia Plugins";
url = "https://github.com/noctalia-dev/noctalia-plugins";
}
{
enabled = true;
name = "Mic92";
url = "https://github.com/Mic92/noctalia-plugins";
}
{
enabled = true;
name = "anthonyhab";
url = "https://github.com/anthonyhab/noctalia-plugins";
}
];
states = {
catwalk = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
clipper = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
file-search = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
giphy-search = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
kagi-quick-search = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
kaomoji-provider = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
kde-connect = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
keybind-cheatsheet = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
obs-control = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
parallax-wallpaper = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
polkit-agent = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
privacy-indicator = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
rss-feed = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
screen-toolkit = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
slowbongo = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
syncthing-status = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
tailscale = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
vscode-provider = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
weekly-calendar = {
enabled = true;
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
};
homeassistant = {
enabled = true;
sourceUrl = "https://github.com/anthonyhab/noctalia-plugins";
};
rbw-provider = {
enabled = true;
sourceUrl = "https://github.com/Mic92/noctalia-plugins";
};
fprint-notify = {
enabled = true;
sourceUrl = "https://github.com/Mic92/noctalia-plugins";
};
};
};
idle = {
enabled = false;
screenOffTimeout = 600;
lockTimeout = 660;
suspendTimeout = 1800;
fadeDuration = 5;
screenOffCommand = "";
lockCommand = "";
suspendCommand = "";
resumeScreenOffCommand = "";
resumeLockCommand = "";
resumeSuspendCommand = "";
customCommands = "[]";
};
desktopWidgets = {
enabled = false;
overviewEnabled = true;
gridSnap = false;
gridSnapScale = false;
monitorWidgets = [ ];
};
};
}
else
{ };
};
}