noctalia: migrate to noctalia v5

This commit is contained in:
2026-08-28 14:25:36 +08:00
parent 527812781f
commit 7c37843808
21 changed files with 342 additions and 219 deletions
Generated
+6 -33
View File
@@ -591,47 +591,20 @@
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"noctalia-qs": "noctalia-qs"
},
"locked": {
"lastModified": 1775169040,
"narHash": "sha256-0xoCuJSRSWcn4mCX382lCxqLbnuOrrqS4dOcdpoUmZg=",
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"rev": "8b0c7c288063e5048a439ca308dd65f7044f42b6",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"ref": "v4.7.5",
"repo": "noctalia-shell",
"type": "github"
}
},
"noctalia-qs": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": [
"systems"
],
"treefmt-nix": [
"treefmt"
]
},
"locked": {
"lastModified": 1775008123,
"narHash": "sha256-zsd/kbsgfX2YQAlbao40JxyeVDwsUmBGyUDZc/Vo1C4=",
"lastModified": 1787858564,
"narHash": "sha256-WijEuINvjcXMO/e/zMqwG1lyGiWNosnVt1QY+ko0Rw8=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "b87f41771c050d3c101d1528532de53293cba6da",
"repo": "noctalia-shell",
"rev": "74e6c2790dd8f39bf496e90e479a9ae370846eed",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"ref": "v5.0.0-beta.10",
"repo": "noctalia-shell",
"type": "github"
}
},
+1 -4
View File
@@ -96,11 +96,8 @@
inputs.treefmt-nix.follows = "treefmt";
};
noctalia = {
url = "github:noctalia-dev/noctalia-shell/v4.7.5";
url = "github:noctalia-dev/noctalia-shell/v5.0.0-beta.10";
inputs.nixpkgs.follows = "nixpkgs";
inputs.noctalia-qs.inputs.nixpkgs.follows = "nixpkgs";
inputs.noctalia-qs.inputs.systems.follows = "systems";
inputs.noctalia-qs.inputs.treefmt-nix.follows = "treefmt";
};
selector4nix = {
url = "github:StarryReverie/selector4nix";
+6 -6
View File
@@ -1,15 +1,15 @@
binds {
Ctrl+Alt+Escape { spawn "missioncenter"; }
Mod+R { spawn "noctalia-shell" "ipc" "call" "launcher" "toggle"; }
Mod+V { spawn "noctalia-shell" "ipc" "call" "launcher" "clipboard"; }
Mod+W { spawn "noctalia-shell" "ipc" "call" "launcher" "windows"; }
Mod+R { spawn "noctalia" "msg" "panel-toggle" "launcher"; }
Mod+V { spawn "noctalia" "msg" "panel-toggle" "clipboard"; }
Mod+W { spawn "noctalia" "msg" "panel-toggle" "launcher" "/win"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_SINK@" "2%+"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_SINK@" "2%-"; }
XF86AudioMute allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "media" "playPause"; }
Super+XF86AudioRaiseVolume allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "media" "next"; }
Super+XF86AudioLowerVolume allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "media" "previous"; }
XF86AudioMute allow-when-locked=true { spawn "noctalia" "msg" "media" "playPause"; }
Super+XF86AudioRaiseVolume allow-when-locked=true { spawn "noctalia" "msg" "media" "next"; }
Super+XF86AudioLowerVolume allow-when-locked=true { spawn "noctalia" "msg" "media" "previous"; }
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "set" "+5%"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "set" "5%-"; }
@@ -46,6 +46,12 @@ layout {
}
}
gestures {
hot-corners {
off
}
}
prefer-no-csd
hotkey-overlay {
+4 -176
View File
@@ -2,7 +2,7 @@
lib,
config,
pkgs,
assets,
impure,
...
}:
let
@@ -69,17 +69,6 @@ in
X-RestartIfChanged=false
'';
};
systemd.user.services.niri-polkit = {
description = "PolicyKit Authentication Agent";
wantedBy = [ "niri.service" ];
after = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
};
};
services.system76-scheduler.enable = true;
@@ -93,177 +82,16 @@ in
mission-center
noctalia-shell
xdg-terminal-exec
];
services.system76-scheduler-niri.enable = true;
programs.noctalia-shell = {
programs.noctalia = {
enable = true;
# modified from official Tokyo-Night theme
colors = {
mError = "#f7768e";
mHover = "#bb9af7";
mOnError = "#16161e";
mOnHover = "#16161e";
mOnPrimary = "#16161e";
mOnSecondary = "#16161e";
mOnSurface = "#c0caf5";
mOnSurfaceVariant = "#9aa5ce";
mOnTertiary = "#16161e";
mOutline = "#353D57";
mPrimary = "#7aa2f7";
mSecondary = "#9a9ef7";
mShadow = "#15161e";
mSurface = "#1a1b26";
mSurfaceVariant = "#24283b";
mTertiary = "#bb9af7";
};
settings = {
appLauncher = {
enableClipboardHistory = true;
useApp2Unit = true;
terminalCommand = "kitty -e";
};
audio.mprisBlacklist = [
"firefox"
"chromium"
"zen"
];
bar = {
density = "comfortable";
floating = true;
marginHorizontal = 0.5;
marginVertical = 0.5;
showCapsule = false;
widgets = {
left = [
{
id = "ControlCenter";
useDistroLogo = true;
}
{
id = "Clock";
formatHorizontal = "HH:mm MM/dd ddd";
useCustomFont = false;
usePrimaryColor = true;
}
{
id = "SystemMonitor";
showCpuTemp = false;
showCpuUsage = true;
showDiskUsage = false;
showMemoryAsPercent = false;
showMemoryUsage = true;
showNetworkStats = true;
}
{
id = "Workspace";
hideUnoccupied = false;
labelMode = "none";
}
];
center = [
{
id = "MediaMini";
hideMode = "hidden";
scrollingMode = "hover";
showAlbumArt = true;
showVisualizer = true;
visualizerType = "wave";
}
];
right = [
{
id = "NotificationHistory";
hideWhenZero = true;
showUnreadBadge = true;
}
{
id = "Tray";
drawerEnabled = false;
colorizeIcons = false;
}
{
id = "Volume";
displayMode = "onhover";
}
{
id = "Microphone";
displayMode = "onhover";
}
{
id = "Battery";
hideIfNotDetected = true;
}
];
};
};
controlCenter = {
cards = [
{
id = "profile-card";
enabled = true;
}
{
id = "shortcuts-card";
enabled = true;
}
{
id = "audio-card";
enabled = true;
}
{
id = "weather-card";
enabled = false;
}
{
id = "media-sysmon-card";
enabled = true;
}
];
position = "top_left";
shortcuts = {
left = [
{ id = "Bluetooth"; }
{ id = "Network"; }
];
right = [ { id = "Notifications"; } ];
};
};
dock.enabled = false;
general = {
avatarImage = "${assets.avatar}";
scaleRatio = 1.05;
radiusRatio = 0.8;
enableShadows = false;
telemetryEnabled = false;
};
location.weatherEnabled = false;
network.wifiEnabled = false;
notifications = {
alwaysOnTop = true;
location = "top";
};
osd = {
alwaysOnTop = true;
# enable all types
enabledTypes = [ ];
location = "top";
};
setupCompleted = true;
ui = {
# I love Jetbrains Mono
fontDefault = "Monospace";
fontFixed = "Monospace";
panelsAttachedToBar = false;
panelsOverlayLayer = true;
tooltipsEnabled = true;
};
wallpaper.enabled = false;
};
systemd.enable = true;
};
xdg.configFile."noctalia".source = impure.mkImpureLink ./noctalia;
};
};
}
@@ -0,0 +1,2 @@
[accessibility]
ui_scale = 1
+14
View File
@@ -0,0 +1,14 @@
[bar.main]
capsule = false
capsule_thickness = 0.75
center = ["media"]
end = ["notifications", "Spacer-12", "tray", "Spacer-12", "output_volume", "input_volume"]
font_family = "monospace"
margin_edge = 6
margin_ends = 10
padding = 12
position = "top"
radius = 16
scale = 1.1
shadow = false
start = ["control-center", "Spacer-12", "clock", "Spacer-12", "sysmon_cpu", "sysmon_ram", "battery", "Spacer-12", "workspaces"]
@@ -0,0 +1,4 @@
[control_center]
hidden_tabs = ["weather"]
shortcuts = []
show_shortcut_labels = false
@@ -0,0 +1,10 @@
[desktop_widgets]
schema_version = 2
widget_order = []
[desktop_widgets.grid]
cell_size = 16
major_interval = 4
visible = true
[desktop_widgets.widget]
@@ -0,0 +1,2 @@
[dock]
enabled = false
@@ -0,0 +1,7 @@
[hot_corners]
delay_ms = 200
enabled = true
[hot_corners.top_left]
action = "command"
command = "niri msg action toggle-overview"
@@ -0,0 +1,17 @@
[idle]
behavior_order = ["lock", "screen-off", "lock-and-suspend"]
[idle.behavior.lock]
action = "lock"
enabled = true
timeout = 300.0
[idle.behavior.lock-and-suspend]
action = "lock_and_suspend"
enabled = false
timeout = 900.0
[idle.behavior.screen-off]
action = "screen_off"
enabled = true
timeout = 600.0
@@ -0,0 +1,103 @@
[lockscreen]
wallpaper = "~/workspace/nixos-dotfiles/assets/wallpaper.png"
[lockscreen_widgets]
enabled = true
schema_version = 2
widget_order = [
"lockscreen-login-box@DP-1",
"lockscreen-login-box@DP-2",
"lockscreen-widget-clock@DP-1",
"lockscreen-widget-clock@DP-2",
]
[lockscreen_widgets.grid]
cell_size = 16
major_interval = 4
visible = true
[lockscreen_widgets.widget."lockscreen-login-box@DP-1"]
box_height = 70.0
box_width = 400.0
cx = 1024.0
cy = 675.0
output = "DP-1"
placement_height = 1152.0
placement_width = 2048.0
rotation = 0.0
type = "login_box"
[lockscreen_widgets.widget."lockscreen-login-box@DP-1".settings]
background_color = "surface_variant"
background_opacity = 0.88
background_radius = 12.0
center_password_text = false
input_opacity = 1.0
input_radius = 6.0
layout = "compact"
show_caps_lock = true
show_keyboard_layout = false
show_login_button = false
show_media = true
show_session_buttons = true
show_unlock_hint = false
show_weather = true
[lockscreen_widgets.widget."lockscreen-login-box@DP-2"]
box_height = 70.0
box_width = 400.0
cx = 1024.0
cy = 675.0
output = "DP-2"
placement_height = 1152.0
placement_width = 2048.0
rotation = 0.0
type = "login_box"
[lockscreen_widgets.widget."lockscreen-login-box@DP-2".settings]
background_color = "surface_variant"
background_opacity = 0.88
background_radius = 12.0
center_password_text = false
input_opacity = 1.0
input_radius = 6.0
layout = "compact"
show_caps_lock = true
show_keyboard_layout = false
show_login_button = false
show_media = true
show_session_buttons = true
show_unlock_hint = false
show_weather = true
[lockscreen_widgets.widget."lockscreen-widget-clock@DP-1"]
box_height = 144.0
box_width = 240.0
cx = 1024.0
cy = 480.0
output = "DP-1"
placement_height = 1152.0
placement_width = 2048.0
rotation = 0.0
type = "clock"
[lockscreen_widgets.widget."lockscreen-widget-clock@DP-1".settings]
background = false
clock_style = "digital"
format = "{:%H:%M}"
[lockscreen_widgets.widget."lockscreen-widget-clock@DP-2"]
box_height = 144.0
box_width = 240.0
cx = 1024.0
cy = 480.0
output = "DP-2"
placement_height = 1152.0
placement_width = 2048.0
rotation = 0.0
type = "clock"
[lockscreen_widgets.widget."lockscreen-widget-clock@DP-2".settings]
background = false
clock_style = "digital"
format = "{:%H:%M}"
@@ -0,0 +1,2 @@
[notification]
layer = "overlay"
@@ -0,0 +1,6 @@
[osd]
position = "top_center"
[osd.kinds]
keyboard_layout = false
media = false
@@ -0,0 +1,48 @@
{
"dark": {
"mPrimary": "#7aa2f7",
"mOnPrimary": "#16161e",
"mSecondary": "#9a9ef7",
"mOnSecondary": "#16161e",
"mTertiary": "#bb9af7",
"mOnTertiary": "#16161e",
"mError": "#f7768e",
"mOnError": "#16161e",
"mSurface": "#1a1b26",
"mOnSurface": "#c0caf5",
"mSurfaceVariant": "#24283b",
"mOnSurfaceVariant": "#9aa5ce",
"mOutline": "#353d57",
"mShadow": "#15161e",
"mHover": "#bb9af7",
"mOnHover": "#16161e",
"terminal": {
"background": "#1a1b26",
"foreground": "#c0caf5",
"cursor": "#c0caf5",
"cursorText": "#1a1b26",
"selectionFg": "#c0caf5",
"selectionBg": "#283457",
"normal": {
"black": "#16161e",
"red": "#f7768e",
"green": "#9ece6a",
"yellow": "#e0af68",
"blue": "#7aa2f7",
"magenta": "#bb9af7",
"cyan": "#7dcfff",
"white": "#c0caf5"
},
"bright": {
"black": "#1a1b26",
"red": "#ff7a93",
"green": "#b9f27c",
"yellow": "#ffc777",
"blue": "#7da6ff",
"magenta": "#bb9af7",
"cyan": "#89ddff",
"white": "#d5d6e3"
}
}
}
}
@@ -0,0 +1,36 @@
[shell]
avatar_path = "~/workspace/nixos-dotfiles/assets/avatar.jpg"
clipboard_enabled = true
corner_radius_scale = 1.5
date_format = "%Y/%m/%d"
font_family = "monospace"
lang = "en"
launch_apps_as_systemd_services = true
panel_anchor_bar = "main"
polkit_agent = true
screen_time_enabled = true
telemetry_enabled = false
[shell.animation]
speed = 0.8
[shell.launcher]
sort_by_usage = true
[shell.mpris]
blacklist = ["firefox", "chromium", "zen"]
[shell.panel]
borders = false
clipboard_placement = "floating"
control_center_placement = "floating"
launcher_placement = "floating"
open_near_click_control_center = true
session_placement = "floating"
session_position = "center"
shadow = true
transparency_mode = "soft"
wallpaper_placement = "floating"
[shell.shadow]
alpha = 0.0
@@ -0,0 +1,4 @@
[theme]
custom_palette = "TokyoNight"
mode = "dark"
source = "custom"
@@ -0,0 +1,2 @@
[wallpaper]
enabled = false
@@ -0,0 +1,2 @@
[weather]
enabled = false
@@ -0,0 +1,60 @@
[widget.Spacer-12]
length = 12
type = "spacer"
[widget.battery]
scale = 1.2
[widget.classic-media]
show_progress = false
[widget.clock]
format = "{:%H:%M %m/%d}"
scale = 0.9
[widget.control-center]
custom_image = "/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg"
scale = 1.25
[widget.input_volume]
show_label = false
[widget.media]
art_size = 30
font_scale = 0.85
title_scroll = "always"
[widget.mic]
device = "input"
type = "volume"
[widget.notifications]
capsule_radius = "auto"
hide_when_no_unread = false
scale = 1.15
[widget.output_volume]
show_label = false
[widget.sysmon_cpu]
scale = 1.2
show_glyph = false
show_value = false
stat = "cpu_usage"
type = "sysmon"
visualization = "graph"
[widget.sysmon_ram]
label_show_units = false
show_value = false
stat = "ram_used"
type = "sysmon"
[widget.tray]
capsule_radius = 16
drawer = false
[widget.workspaces]
hide_when_empty = false
pill_scale = 0.9
show_labels = false