1

Home: Rename home/modules to home/homemodules

This commit is contained in:
2026-01-18 15:34:36 +01:00
parent 25e9128875
commit d12b247368
117 changed files with 1 additions and 1 deletions

View File

@ -0,0 +1,488 @@
{
config,
color,
}: {
enable = true;
systemd = {
enable = false;
restartIfChanged = true;
};
# Deprecated
# enableClipboard = true;
# enableBrightnessControl = false;
# enableColorPicker = true;
# enableSystemSound = false;
enableSystemMonitoring = true;
enableVPN = true;
enableDynamicTheming = false;
enableAudioWavelength = true;
enableCalendarEvents = false;
niri = {
enableKeybinds = false;
enableSpawn = false;
};
# This is generated from the DMS settings dialog.
# Run: nix eval --impure --expr 'builtins.fromJSON (builtins.readFile ~/.config/DankMaterialShell/settings.json)'
settings = {
# Bar
barConfigs = [
{
# Widgets
leftWidgets = [
{
enabled = true;
id = "launcherButton";
}
{
enabled = true;
id = "workspaceSwitcher";
}
{
enabled = true;
focusedWindowCompactMode = true;
id = "focusedWindow";
}
];
centerWidgets = [
{
enabled = true;
id = "music";
mediaSize = 1;
}
];
rightWidgets = [
{
enabled = true;
id = "cpuUsage";
minimumWidth = true;
}
{
enabled = true;
id = "memUsage";
minimumWidth = true;
}
{
enabled = true;
id = "diskUsage";
}
{
enabled = true;
id = "clipboard";
}
{
enabled = true;
id = "controlCenterButton";
}
{
enabled = true;
id = "systemTray";
}
{
clockCompactMode = true;
enabled = true;
id = "clock";
}
{
enabled = true;
id = "notificationButton";
}
];
enabled = true;
id = "default";
name = "Main Bar";
# Behavior
autoHide = false;
autoHideDelay = 250;
maximizeDetection = true;
openOnOverview = false;
# Border
borderColor = "surfaceText";
borderEnabled = false;
borderOpacity = 1;
borderThickness = 2;
gothCornerRadiusOverride = false;
gothCornerRadiusValue = 12;
gothCornersEnabled = false;
# Styling
position = 0;
fontScale = 1.1;
bottomGap = 0;
innerPadding = 4;
noBackground = false;
popupGapsAuto = true;
popupGapsManual = 4;
spacing = 0;
transparency = 1;
widgetOutlineColor = "primary";
widgetOutlineEnabled = false;
widgetOutlineOpacity = 1;
widgetOutlineThickness = 2;
widgetTransparency = 1;
squareCorners = true;
screenPreferences = ["all"];
showOnLastDisplay = true;
visible = true;
}
];
# Power saving
acLockTimeout = 0;
acMonitorTimeout = 0;
acProfileName = "";
acSuspendBehavior = 0;
acSuspendTimeout = 0;
animationSpeed = 1;
# Launcher
appLauncherGridColumns = 4;
appLauncherViewMode = "list";
launchPrefix = "";
launcherLogoBrightness = 0.5;
launcherLogoColorInvertOnMode = false;
launcherLogoColorOverride = "";
launcherLogoContrast = 1;
launcherLogoCustomPath = "";
launcherLogoMode = "os";
launcherLogoSizeOffset = 0;
# Audio
audioInputDevicePins = {};
audioOutputDevicePins = {};
audioVisualizerEnabled = true;
# Battery
batteryLockTimeout = 0;
batteryMonitorTimeout = 0;
batteryProfileName = "";
batterySuspendBehavior = 0;
batterySuspendTimeout = 0;
# Wallpaper
blurWallpaperOnOverview = true;
blurredWallpaperLayer = false;
wallpaperFillMode = "Fill";
# Control center
controlCenterShowAudioIcon = true;
controlCenterShowBatteryIcon = false;
controlCenterShowBluetoothIcon = true;
controlCenterShowBrightnessIcon = false;
controlCenterShowMicIcon = true;
controlCenterShowNetworkIcon = true;
controlCenterShowPrinterIcon = false;
controlCenterShowVpnIcon = true;
controlCenterWidgets = [
{
enabled = true;
id = "volumeSlider";
width = 50;
}
{
enabled = true;
id = "brightnessSlider";
width = 50;
}
{
enabled = true;
id = "wifi";
width = 50;
}
{
enabled = true;
id = "bluetooth";
width = 50;
}
{
enabled = true;
id = "audioOutput";
width = 50;
}
{
enabled = true;
id = "audioInput";
width = 50;
}
{
enabled = true;
id = "nightMode";
width = 50;
}
{
enabled = true;
id = "darkMode";
width = 50;
}
];
# Theme
currentThemeName = "custom";
currentThemeCategory = "registry";
customThemeFile = "${config.paths.dotfiles}/dankmaterialshell/catppuccin-mauve.json";
# Styling
cornerRadius = 10;
customAnimationDuration = 500;
fontFamily = "MonoLisa Normal";
monoFontFamily = "MonoLisa Normal";
fontScale = 1;
fontWeight = 500;
gtkThemingEnabled = false;
iconTheme = "System Default";
# Lock
fadeToLockEnabled = true;
fadeToLockGracePeriod = 5;
lockBeforeSuspend = false;
lockDateFormat = "yyyy-MM-dd";
lockScreenActiveMonitor = "all";
lockScreenInactiveColor = "#000000";
lockScreenShowDate = true;
lockScreenShowPasswordField = true;
lockScreenShowPowerActions = true;
lockScreenShowProfileImage = true;
lockScreenShowSystemIcons = true;
lockScreenShowTime = true;
loginctlLockIntegration = true;
# Notifications
notificationOverlayEnabled = false;
notificationPopupPosition = 0;
notificationTimeoutCritical = 0;
notificationTimeoutLow = 5000;
notificationTimeoutNormal = 5000;
# OSD
osdAlwaysShowValue = true;
osdAudioOutputEnabled = true;
osdBrightnessEnabled = true;
osdCapsLockEnabled = true;
osdIdleInhibitorEnabled = true;
osdMediaVolumeEnabled = true;
osdMicMuteEnabled = true;
osdPosition = 7;
osdPowerProfileEnabled = false;
osdVolumeEnabled = true;
# Power menu
powerActionConfirm = true;
powerActionHoldDuration = 0.5;
powerMenuActions = ["reboot" "logout" "poweroff" "lock" "restart"];
powerMenuDefaultAction = "poweroff";
powerMenuGridLayout = false;
# Settings
focusedWindowCompactMode = false;
hideBrightnessSlider = false;
keyboardLayoutNameCompactMode = false;
modalDarkenBackground = true;
nightModeEnabled = false;
niriOverviewOverlayEnabled = true;
showBattery = false;
showCapsLockIndicator = false;
showClipboard = true;
showClock = true;
showControlCenterButton = true;
showCpuTemp = true;
showCpuUsage = true;
showDock = false;
showFocusedWindow = true;
showGpuTemp = false;
showLauncherButton = true;
showMemUsage = true;
showMusic = true;
showNotificationButton = true;
showOccupiedWorkspacesOnly = false;
showPrivacyButton = false;
showSystemTray = true;
showWorkspaceApps = false;
showWorkspaceIndex = false;
showWorkspacePadding = false;
showWorkspaceSwitcher = true;
soundNewNotification = true;
soundPluggedIn = true;
soundVolumeChanged = true;
soundsEnabled = false;
# Launcher
sortAppsAlphabetically = false;
spotlightCloseNiriOverview = true;
spotlightModalViewMode = "list";
# Clock
use24HourClock = true;
showSeconds = true;
clockCompactMode = false;
clockDateFormat = "yyyy-MM-dd";
# Media
waveProgressEnabled = true;
scrollTitleEnabled = true;
# Weather
showWeather = true;
useFahrenheit = false;
useAutoLocation = false;
weatherCoordinates = "51.5142273,7.4652789";
weatherEnabled = true;
weatherLocation = "Dortmund, Nordrhein-Westfalen";
# Workspaces
workspaceNameIcons = {};
workspaceScrolling = false;
workspacesPerMonitor = true;
# Dock
dockAutoHide = false;
dockBorderColor = "surfaceText";
dockBorderEnabled = false;
dockBorderOpacity = 1;
dockBorderThickness = 1;
dockBottomGap = 0;
dockGroupByApp = false;
dockIconSize = 40;
dockIndicatorStyle = "circle";
dockMargin = 0;
dockOpenOnOverview = false;
dockPosition = 1;
dockSpacing = 4;
dockTransparency = 1;
# Random shit
widgetBackgroundColor = "sc";
widgetColorMode = "default";
wifiNetworkPins = {};
brightnessDevicePins = {};
bluetoothDevicePins = {};
centeringMode = "index";
useSystemSoundTheme = false;
vpnLastConnected = "";
syncModeWithPortal = true;
terminalsAlwaysDark = false;
updaterCustomCommand = "";
updaterTerminalAdditionalParams = "";
updaterUseCustomCommand = false;
showOnLastDisplay = {};
dwlShowAllTags = false;
enableFprint = false;
enabledGpuPciIds = [];
customPowerActionHibernate = "";
customPowerActionLock = "";
customPowerActionLogout = "";
customPowerActionPowerOff = "";
customPowerActionReboot = "";
customPowerActionSuspend = "";
displayNameMode = "system";
matugenScheme = "scheme-tonal-spot";
matugenTargetMonitor = "";
matugenTemplateAlacritty = true;
matugenTemplateDgop = true;
matugenTemplateFirefox = true;
matugenTemplateFoot = true;
matugenTemplateGhostty = true;
matugenTemplateGtk = true;
matugenTemplateKcolorscheme = true;
matugenTemplateKitty = true;
matugenTemplateNiri = true;
matugenTemplatePywalfox = true;
matugenTemplateQt5ct = true;
matugenTemplateQt6ct = true;
matugenTemplateVesktop = true;
matugenTemplateVscode = true;
matugenTemplateWezterm = true;
notepadFontFamily = "";
notepadFontSize = 14;
notepadLastCustomTransparency = 0.7;
notepadShowLineNumbers = false;
notepadTransparencyOverride = -1;
notepadUseMonospace = true;
maxFprintTries = 15;
maxWorkspaceIcons = 3;
mediaSize = 1;
networkPreference = "auto";
selectedGpuIndex = 0;
popupTransparency = 1;
privacyShowCameraIcon = false;
privacyShowMicIcon = false;
privacyShowScreenShareIcon = false;
qtThemingEnabled = false;
runDmsMatugenTemplates = false;
runUserMatugenTemplates = false;
runningAppsCompactMode = true;
runningAppsCurrentWorkspace = false;
runningAppsGroupByApp = false;
screenPreferences = {};
configVersion = 2;
};
session = {
# Settings
doNotDisturb = false;
isLightMode = false;
weatherHourlyDetailed = true;
# Night
nightModeAutoEnabled = true;
nightModeAutoMode = "time";
nightModeEnabled = true;
nightModeEndHour = 6;
nightModeEndMinute = 0;
nightModeHighTemperature = 6500;
nightModeLocationProvider = "";
nightModeStartHour = 22;
nightModeStartMinute = 0;
nightModeTemperature = 5500;
nightModeUseIPLocation = false;
# Hardware
nonNvidiaGpuTempEnabled = false;
nvidiaGpuTempEnabled = false;
selectedGpuIndex = 0;
wifiDeviceOverride = "";
enabledGpuPciIds = [];
lastBrightnessDevice = "";
# Wallpapers
perModeWallpaper = false;
perMonitorWallpaper = false;
wallpaperCyclingEnabled = false;
wallpaperCyclingInterval = 300;
wallpaperCyclingMode = "interval";
wallpaperCyclingTime = "06:00";
wallpaperPath = "/home/christoph/NixFlake/wallpapers/Windows.jpg";
wallpaperPathDark = "";
wallpaperPathLight = "";
wallpaperTransition = "iris bloom";
# Random shit
includedTransitions = ["fade" "wipe" "disc" "stripes" "iris bloom" "pixelate" "portal"];
launchPrefix = "";
latitude = 0;
longitude = 0;
pinnedApps = [];
hiddenTrayIds = [];
recentColors = [];
showThirdPartyPlugins = true;
# Ultra random shit
monitorCyclingSettings = {};
monitorWallpapers = {};
monitorWallpapersDark = {};
monitorWallpapersLight = {};
brightnessExponentValues = {};
brightnessExponentialDevices = {};
brightnessUserSetValues = {};
configVersion = 1;
};
}

View File

@ -0,0 +1,588 @@
{
config,
nixosConfig,
lib,
mylib,
inputs,
pkgs,
...
}: let
inherit (config.modules) niri color;
in {
options.modules.niri = import ./options.nix {inherit lib mylib;};
config = lib.mkIf niri.enable rec {
assertions = [
{
assertion = nixosConfig.programs.niri.enable;
message = "Can't enable Niri config with Niri disabled!";
}
{
assertion = !(programs.noctalia-shell.enable && programs.dank-material-shell.enable);
message = "Can't enable Noctalia and DankMaterialShell at the same time!";
}
];
gtk = {
enable = true;
iconTheme.package = color.iconPackage;
iconTheme.name = color.iconTheme;
};
# Disable niri polkit if we use DMS, as it has its own
systemd.user.services.niri-flake-polkit = lib.mkForce {};
home = {
sessionVariables = {
QT_QPA_PLATFORMTHEME = "gtk3"; # For Noctalia
GDK_BACKEND = "wayland"; # For screen sharing
};
pointerCursor = {
gtk.enable = true;
x11.enable = true;
package = color.cursorPackage;
name = color.cursor;
size = color.cursorSize;
};
packages = with pkgs; [
xwayland-satellite
ncpamixer # Audio control
nautilus # Fallback file chooser used by xdg-desktop-portal-gnome
# In case we fallback to the default config
alacritty
fuzzel
];
};
programs = {
# TODO: Those should be modules with their own options
noctalia-shell = import ./noctalia.nix {inherit color;};
dank-material-shell = import ./dankMaterialShell.nix {inherit config color;};
# TODO: Extract options
niri = {
# enable = true; # Enabled in system module
settings = {
input = {
focus-follows-mouse = {
enable = true;
max-scroll-amount = "0%"; # Skip partial windows that would scroll the viewport on focus
};
keyboard = {
xkb = {
layout = "us";
variant = "altgr-intl";
options = "nodeadkeys";
};
};
touchpad = {
click-method = "clickfinger";
tap = true;
drag = true;
dwt = true;
natural-scroll = true;
scroll-method = "two-finger";
};
};
hotkey-overlay = {
hide-not-bound = true;
skip-at-startup = true;
};
prefer-no-csd = true; # Disable client-side decorations (e.g. window titlebars)
spawn-at-startup = [
# TODO: Depend on options
# {argv = ["noctalia-shell"];}
{argv = ["dms" "run"];}
{argv = ["kitty" "--hold" "fastfetch"];}
{argv = ["zeal"];}
{argv = ["protonvpn-app"];}
{argv = ["fcitx5"];}
{argv = ["jellyfin-mpv-shim"];}
{sh = "sleep 5s && nextcloud --background";}
{sh = "sleep 5s && keepassxc";}
];
workspaces = {
"1" = {open-on-output = "DP-1";};
"2" = {open-on-output = "DP-1";};
"3" = {open-on-output = "DP-1";};
"4" = {open-on-output = "DP-1";};
"5" = {open-on-output = "DP-1";};
"6" = {open-on-output = "DP-1";};
"7" = {open-on-output = "DP-1";};
"8" = {open-on-output = "DP-1";};
"9" = {open-on-output = "DP-1";};
"10" = {open-on-output = "DP-2";};
};
outputs = {
"DP-1" = {
focus-at-startup = true;
mode = {
width = 3440;
height = 1440;
refresh = 164.999;
};
position = {
x = 1920;
y = 0;
};
};
"DP-2" = {
focus-at-startup = false;
mode = {
width = 1920;
height = 1080;
refresh = 60.0;
};
position = {
x = 0;
y = 0;
};
};
};
cursor = {
hide-when-typing = true;
theme = color.cursor;
size = color.cursorSize;
};
layout = {
# This border is drawn INSIDE the window
border = {
enable = true;
width = 2;
active = {color = color.hex.accent;};
inactive = {color = color.hex.base;};
};
# This border is drawn OUTSIDE of the focused window
focus-ring = {
enable = false;
};
# Hint where a dragged window will be inserted
insert-hint = {
enable = true;
display = {color = color.hex.accentDim;};
};
always-center-single-column = true;
# Gaps between windows
gaps = 8;
# Gaps at screen borders
struts = {
# left = 8;
# right = 8;
top = 4; # Somehow the bar eclusivity doesn't work as expected
bottom = 2;
};
};
gestures = {
hot-corners = {enable = false;};
};
window-rules = [
# Rules for all windows
{
default-column-width.proportion = 0.5;
default-window-height.proportion = 1.0;
# Rounded corners
clip-to-geometry = true;
geometry-corner-radius = {
bottom-left = 8.0;
bottom-right = 8.0;
top-left = 8.0;
top-right = 8.0;
};
# open-floating = false;
# open-focused = false;
# open-fullscreen = false;
# open-maximized = false;
# open-on-output = "DP-1";
# open-on-workspace = "2";
# opacity = 0.8;
}
# Rules for specific windows
{
matches = [{app-id = "Zotero";}];
open-on-workspace = "2";
}
{
matches = [{app-id = "neovide";}];
open-on-workspace = "2";
open-maximized = true;
}
{
matches = [{app-id = "code-url-handler";}];
open-on-workspace = "2";
open-floating = true;
}
{
matches = [{app-id = "obsidian";}];
open-on-workspace = "3";
}
{
matches = [{app-id = "firefox";}];
open-on-workspace = "4";
open-maximized = true;
}
{
matches = [{app-id = "Google-chrome";}];
open-on-workspace = "4";
}
{
matches = [{app-id = "chromium-browser";}];
open-on-workspace = "4";
}
{
matches = [{app-id = "org.qutebrowser.qutebrowser";}];
open-on-workspace = "4";
}
{
matches = [{app-id = "steam";}];
open-on-workspace = "5";
}
{
matches = [{app-id = "steam_app_(.+)";}];
open-on-workspace = "6";
open-floating = true;
open-maximized = true;
}
{
matches = [{app-id = "signal";}];
open-on-workspace = "7";
open-maximized = true;
}
{
matches = [{app-id = "discord";}];
open-on-workspace = "9";
open-maximized = true;
}
];
layer-rules = [
{
# Set the overview wallpaper on the backdrop.
matches = [{namespace = "^noctalia-overview*";}];
place-within-backdrop = true;
}
];
debug = {
# Allows notification actions and window activation from Noctalia.
honor-xdg-activation-with-invalid-serial = [];
};
# TODO: Only start hypr... stuff with hyprland, not systemd (hypridle, hyprpaper currently)
# TODO: Move values to config option and set in home/christoph/niri.nix
binds = with config.lib.niri.actions; {
# Applications
"Mod+T" = {
action = spawn "kitty";
hotkey-overlay = {title = "Spawn Kitty.";};
};
"Mod+E" = {
action = spawn "kitty" "--title=Yazi" "yazi";
hotkey-overlay = {title = "Spawn Yazi.";};
};
"Mod+B" = {
action = spawn "kitty" "--title=Btop" "btop";
hotkey-overlay = {title = "Spawn Btop.";};
};
"Mod+R" = {
action = spawn "kitty" "--title=Rmpc" "rmpc";
hotkey-overlay = {title = "Spawn Rmpc.";};
};
"Mod+N" = {
action = spawn "neovide";
hotkey-overlay = {title = "Spawn Neovide.";};
};
"Mod+Ctrl+N" = {
action = spawn "kitty" "--title=Navi" "navi";
hotkey-overlay = {title = "Call Navi for help.";};
};
"Mod+Shift+N" = {
action = spawn "neovide" "${config.paths.dotfiles}/navi/christoph.cheat";
hotkey-overlay = {title = "Edit the Navi cheats.";};
};
"Mod+Shift+F" = {
action = spawn "neovide" "${config.paths.dotfiles}/flake.nix";
hotkey-overlay = {title = "Edit the NixFlake.";};
};
# TODO: Enable with Noctalia option
# Noctalia
# "Mod+A" = {
# action = spawn "noctalia-shell" "ipc" "call" "launcher" "toggle";
# hotkey-overlay = {title = "Toggle the application launcher.";};
# };
# "Mod+Ctrl+L" = {
# action = spawn "noctalia-shell" "ipc" "call" "lockScreen" "lock";
# hotkey-overlay = {title = "Lock the screen.";};
# };
# "Mod+W" = {
# action = spawn "noctalia-shell" "ipc" "call" "wallpaper" "toggle";
# hotkey-overlay = {title = "Toggle the wallpaper chooser.";};
# };
# "Mod+Escape" = {
# action = spawn "noctalia-shell" "ipc" "call" "sessionMenu" "toggle";
# hotkey-overlay = {title = "Toggle the session menu.";};
# };
# TODO: Enable with DMS option
# DankMaterialShell
"Mod+A" = {
action = spawn "dms" "ipc" "call" "spotlight" "toggle";
hotkey-overlay = {title = "Toggle the application launcher.";};
};
"Mod+Ctrl+L" = {
action = spawn "dms" "ipc" "call" "lock" "lock";
hotkey-overlay = {title = "Lock the screen.";};
};
"Mod+Escape" = {
action = spawn "dms" "ipc" "call" "powermenu" "toggle";
hotkey-overlay = {title = "Toggle the session menu.";};
};
"Mod+C" = {
action = spawn "dms" "ipc" "call" "clipboard" "toggle";
hotkey-overlay = {title = "Show clipboard history.";};
};
# Screenshots
"Mod+S" = {
action.screenshot-window = {write-to-disk = true;};
hotkey-overlay = {title = "Take a screenshot of the current window.";};
};
"Mod+Shift+S" = {
action.screenshot = {show-pointer = true;};
hotkey-overlay = {title = "Take a screenshot of a region.";};
};
# Niri
"Mod+Shift+Slash" = {
action = show-hotkey-overlay;
hotkey-overlay = {hidden = true;};
};
# "Alt+Tab" = {
# action = "next-window";
# hotkey-overlay = {title = "Switch to next window.";};
# };
# "Alt+Shift+Tab" = {
# action = "previous-window";
# hotkey-overlay = {title = "Switch to previous window.";};
# };
# Audio
"XF86AudioRaiseVolume" = {
action = spawn "wpctl" "set-volume" "-l" "1.5" "@DEFAULT_AUDIO_SINK@" "5%+";
hotkey-overlay = {hidden = true;};
};
"XF86AudioLowerVolume" = {
action = spawn "wpctl" "set-volume" "-l" "1.5" "@DEFAULT_AUDIO_SINK@" "5%-";
hotkey-overlay = {hidden = true;};
};
"XF86AudioPlay" = {
action = spawn "playerctl" "play-pause";
hotkey-overlay = {hidden = true;};
};
"XF86AudioPrev" = {
action = spawn "playerctl" "previous";
hotkey-overlay = {hidden = true;};
};
"XF86AudioNext" = {
action = spawn "playerctl" "next";
hotkey-overlay = {hidden = true;};
};
# Niri windows
"Mod+Q" = {
action = close-window;
hotkey-overlay = {title = "Close the current window.";};
};
"Mod+F" = {
action = fullscreen-window;
hotkey-overlay = {title = "Toggle between fullscreen and tiled window.";};
};
"Mod+Equal" = {
action = set-column-width "+10%";
hotkey-overlay = {title = "Increase column width";};
};
"Mod+Minus" = {
action = set-column-width "-10%";
hotkey-overlay = {title = "Decrease column width";};
};
"Mod+Shift+M" = {
action = set-column-width "50%";
hotkey-overlay = {title = "Set column width to 50%";};
};
"Mod+M" = {
action = maximize-column;
hotkey-overlay = {title = "Maximize column.";};
};
"Mod+V" = {
action = toggle-window-floating;
hotkey-overlay = {title = "Toggle between floating and tiled window.";};
};
"Mod+O" = {
action = toggle-overview;
hotkey-overlay = {title = "Toggle overlay.";};
};
"Mod+H" = {
action = focus-column-or-monitor-left;
hotkey-overlay = {title = "Focus column on the left. Equivalent bindings for other directions.";};
};
"Mod+J" = {
action = focus-window-or-workspace-down;
hotkey-overlay = {hidden = true;};
};
"Mod+K" = {
action = focus-window-or-workspace-up;
hotkey-overlay = {hidden = true;};
};
"Mod+L" = {
action = focus-column-or-monitor-right;
hotkey-overlay = {hidden = true;};
};
"Mod+WheelScrollUp" = {
action = focus-column-left;
hotkey-overlay = {title = "Focus column on the left. Equivalent binding for other direction.";};
};
"Mod+WheelScrollDown" = {
action = focus-column-right;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+WheelScrollUp" = {
action = focus-workspace-up;
hotkey-overlay = {title = "Focus previous workspace. Equivalent binding for other direction.";};
};
"Mod+Shift+WheelScrollDown" = {
action = focus-workspace-down;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+H" = {
action = move-column-left-or-to-monitor-left;
hotkey-overlay = {title = "Move column to the left. Equivalent bindings for other directions.";};
};
"Mod+Shift+J" = {
action = move-window-down-or-to-workspace-down;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+K" = {
action = move-window-up-or-to-workspace-up;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+L" = {
action = move-column-right-or-to-monitor-right;
hotkey-overlay = {hidden = true;};
};
# Niri workspaces
"Mod+1" = {
action = focus-workspace 1;
hotkey-overlay = {title = "Focus workspace 1. Equivalent bindings for other workspaces.";};
};
"Mod+2" = {
action = focus-workspace 2;
hotkey-overlay = {hidden = true;};
};
"Mod+3" = {
action = focus-workspace 3;
hotkey-overlay = {hidden = true;};
};
"Mod+4" = {
action = focus-workspace 4;
hotkey-overlay = {hidden = true;};
};
"Mod+5" = {
action = focus-workspace 5;
hotkey-overlay = {hidden = true;};
};
"Mod+6" = {
action = focus-workspace 6;
hotkey-overlay = {hidden = true;};
};
"Mod+7" = {
action = focus-workspace 7;
hotkey-overlay = {hidden = true;};
};
"Mod+8" = {
action = focus-workspace 8;
hotkey-overlay = {hidden = true;};
};
"Mod+9" = {
action = focus-workspace 9;
hotkey-overlay = {hidden = true;};
};
"Mod+0" = {
action = focus-workspace 10;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+1" = {
action.move-window-to-workspace = 1;
hotkey-overlay = {title = "Move current window to workspace 1. Equivalent bindings for other workspaces.";};
};
"Mod+Shift+2" = {
action.move-window-to-workspace = 2;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+3" = {
action.move-window-to-workspace = 3;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+4" = {
action.move-window-to-workspace = 4;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+5" = {
action.move-window-to-workspace = 5;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+6" = {
action.move-window-to-workspace = 6;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+7" = {
action.move-window-to-workspace = 7;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+8" = {
action.move-window-to-workspace = 8;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+9" = {
action.move-window-to-workspace = 9;
hotkey-overlay = {hidden = true;};
};
"Mod+Shift+0" = {
action.move-window-to-workspace = 10;
hotkey-overlay = {hidden = true;};
};
};
};
};
};
};
}

View File

@ -0,0 +1,265 @@
{color}: {
enable = false;
settings = {
# configure noctalia here; defaults will
# be deep merged with these attributes.
colorSchemes.predefinedScheme = "Catppuccin";
general = {
avatarImage = ../../../config/face.jpeg;
radiusRatio = 0.2;
showScreenCorners = false;
forceBlackScreenCorners = false;
dimDesktop = true;
scaleRatio = 1;
screenRadiusRatio = 1;
animationSpeed = 1;
animationDisabled = false;
compactLockScreen = false;
lockOnSuspend = true;
enableShadows = true;
shadowDirection = "bottom_right";
shadowOffsetX = 2;
shadowOffsetY = 3;
language = "";
};
ui = {
fontDefault = color.font;
fontFixed = color.font;
tooltipsEnabled = true;
panelsAttachedToBar = true;
settingsPanelAttachTobar = true;
fontDefaultScale = 1;
fontFixedScale = 1;
settingsPanelAttachToBar = false;
};
location = {
name = "Dortmund, Germany";
monthBeforeDay = true;
weatherEnabled = true;
useFahrenheit = false;
use12hourFormat = false;
showWeekNumberInCalendar = false;
showCalendarEvents = true;
showCalendarWeather = true;
analogClockInCalendar = false;
firstDayOfWeek = -1;
};
screenRecorder = {
directory = "~/Videos/Recordings";
frameRate = 60;
audioCodec = "aac";
videoCodec = "h265";
quality = "very_high";
colorRange = "limited";
showCursor = true;
audioSource = "default_output";
videoSource = "portal";
};
wallpaper = {
enabled = true;
overviewEnabled = true;
directory = "~/NixFlake/wallpapers";
enableMultiMonitorDirectories = false;
recursiveSearch = false;
setWallpaperOnAllMonitors = true;
defaultWallpaper = ../../../wallpapers/Windows.jpg;
fillMode = "crop";
fillColor = "#000000";
randomEnabled = false;
randomIntervalSec = 300;
transitionDuration = 1500;
transitionType = "random";
transitionEdgeSmoothness = 0.05;
monitors = [];
panelPosition = "follow_bar";
};
appLauncher = {
enableClipboardHistory = true;
position = "center";
backgroundOpacity = 1;
pinnedExecs = [];
useApp2Unit = false;
sortByMostUsed = true;
terminalCommand = "kitty -e";
customLaunchPrefixEnabled = false;
customLaunchPrefix = "";
};
dock = {
enabled = false;
};
network = {
wifiEnabled = true;
bluetoothEnabled = true;
};
notifications = {
enabled = true;
monitors = [];
location = "top_right";
overlayLayer = true;
backgroundOpacity = 1;
respectExpireTimeout = false;
lowUrgencyDuration = 3;
normalUrgencyDuration = 8;
criticalUrgencyDuration = 15;
};
osd = {
enabled = true;
location = "top_right";
monitors = [];
autoHideMs = 2000;
overlayLayer = true;
};
audio = {
volumeStep = 5;
volumeOverdrive = true;
cavaFrameRate = 30;
visualizerType = "linear";
visualizerQuality = "high";
mprisBlacklist = [];
preferredPlayer = "";
externalMixer = "kitty --title=Ncpamixer ncpamixer";
};
nightLight = {
enabled = false;
forced = false;
autoSchedule = true;
nightTemp = "5000";
dayTemp = "6500";
manualSunrise = "06:30";
manualSunset = "21:30";
};
sessionMenu = {
countdownDuration = 10000;
enableCountdown = true;
position = "center";
powerOptions = [
{
action = "lock";
enabled = true;
}
{
action = "suspend";
enabled = false;
}
{
action = "reboot";
enabled = true;
}
{
action = "logout";
enabled = true;
}
{
action = "shutdown";
enabled = true;
}
];
showHeader = true;
};
bar = {
density = "default";
position = "top";
showCapsule = false;
outerCorners = false;
exclusive = true;
backgroundOpacity = 1;
monitors = [];
floating = false;
marginVertical = 0.25;
marginHorizontal = 0.25;
widgets = {
left = [
{
id = "SidePanelToggle";
useDistroLogo = true;
}
{
hideUnoccupied = false;
id = "Workspace";
labelMode = "none";
}
{
id = "ActiveWindow";
maxWidth = 250;
}
];
center = [
{
id = "MediaMini";
maxWidth = 250;
showAlbumArt = true;
}
{
id = "AudioVisualizer";
width = 100;
visualizerType = "mirrored";
}
];
right = [
# {
# id = "SystemMonitor";
# usePrimaryColor = true;
# showCpuUsage = true;
# showCpuTemp = false;
# showMemoryUsage = true;
# showMemoryAsPercent = false;
# showNetworkStats = true;
# showDiskUsage = true;
# diskPath = "/";
# }
{
id = "Volume";
# displayMode = "alwaysShow";
}
{
id = "Microphone";
# displayMode = "alwaysShow";
}
{
id = "Bluetooth";
# displayMode = "alwaysShow";
}
{
id = "WiFi";
# displayMode = "alwaysShow";
}
{
id = "VPN";
# displayMode = "alwaysShow";
}
{
id = "Tray";
drawerEnabled = false;
}
{
formatHorizontal = "yyyy-MM-dd HH:mm";
formatVertical = "HH mm";
id = "Clock";
useMonospacedFont = true;
usePrimaryColor = true;
}
{
id = "NotificationHistory";
}
];
};
};
};
}

View File

@ -0,0 +1,7 @@
{
lib,
mylib,
...
}: {
enable = lib.mkEnableOption "Niri";
}