noctalia: switch to v5 shell

This commit is contained in:
2026-06-03 20:08:27 +02:00
parent 51ed9aa7ef
commit 807a2b59aa
6 changed files with 156 additions and 19 deletions

View File

@@ -6,3 +6,6 @@ require("lua/theme")
require("lua/input") require("lua/input")
require("lua/binds") require("lua/binds")
require("lua/window_rules") require("lua/window_rules")
-- For Noctalia Color templates
require("noctalia")

View File

@@ -11,7 +11,7 @@ local utils = require("lua/utils")
hl.on("hyprland.start", function () hl.on("hyprland.start", function ()
hl.exec_cmd(utils.uwsm("nm-applet")) hl.exec_cmd(utils.uwsm("nm-applet"))
hl.exec_cmd(utils.uwsm("qs -c noctalia-shell")) hl.exec_cmd(utils.uwsm("noctalia"))
hl.exec_cmd(utils.uwsm("batsignal -b -e -w 30 -c 20 -d 10 -f 100")) hl.exec_cmd(utils.uwsm("batsignal -b -e -w 30 -c 20 -d 10 -f 100"))
hl.exec_cmd(utils.uwsm("blueman-applet")) hl.exec_cmd(utils.uwsm("blueman-applet"))
hl.exec_cmd(utils.uwsm("udiskie --tray")) hl.exec_cmd(utils.uwsm("udiskie --tray"))

View File

@@ -13,15 +13,15 @@ hl.bind(mainMod .. " + M", hl.dsp.exec_cmd(utils.uwsm(defaults.apps.messenger)))
--hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'")) --hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(utils.uwsm(defaults.apps.fileManager))) hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(utils.uwsm(defaults.apps.fileManager)))
hl.bind(mainMod .. " + W", hl.dsp.exec_cmd(utils.uwsm(defaults.apps.browser))) hl.bind(mainMod .. " + W", hl.dsp.exec_cmd(utils.uwsm(defaults.apps.browser)))
hl.bind(mainMod .. "+ SHIFT + W", hl.dsp.exec_cmd(utils.noctalia_ipc("wallpaper toggle"))) hl.bind(mainMod .. "+ SHIFT + W", hl.dsp.exec_cmd("noctalia msg panel-toggle wallpaper"))
hl.bind(mainMod .. " + S", hl.dsp.exec_cmd(utils.uwsm("sh -c 'IMG=$(xdg-user-dir PICTURES)/Screenshots/$(date +'%s_grim.png') && grim $IMG && wl-copy < $IMG'"))) hl.bind(mainMod .. " + S", hl.dsp.exec_cmd(utils.uwsm("sh -c 'IMG=$(xdg-user-dir PICTURES)/Screenshots/$(date +'%s_grim.png') && grim $IMG && wl-copy < $IMG'")))
hl.bind(mainMod .. "+ SHIFT + S", hl.dsp.exec_cmd(utils.uwsm("sh -c 'IMG=$(xdg-user-dir PICTURES)/Screenshots/$(date +'%s_grim.png') && grim -g \"$(slurp)\" $IMG && wl-copy < $IMG'"))) hl.bind(mainMod .. "+ SHIFT + S", hl.dsp.exec_cmd(utils.uwsm("sh -c 'IMG=$(xdg-user-dir PICTURES)/Screenshots/$(date +'%s_grim.png') && grim -g \"$(slurp)\" $IMG && wl-copy < $IMG'")))
hl.bind("PRINT", hl.dsp.exec_cmd(utils.uwsm("pkill slurp; sh -c 'IMG=$(xdg-user-dir PICTURES)/Screenshots/$(date +'%s_grim.png') && grim -g \"$(slurp)\" $IMG && wl-copy < $IMG'"))) hl.bind("PRINT", hl.dsp.exec_cmd(utils.uwsm("pkill slurp; sh -c 'IMG=$(xdg-user-dir PICTURES)/Screenshots/$(date +'%s_grim.png') && grim -g \"$(slurp)\" $IMG && wl-copy < $IMG'")))
hl.bind(mainMod .. " + R", hl.dsp.exec_cmd(utils.noctalia_ipc("launcher toggle"))) hl.bind(mainMod .. " + R", hl.dsp.exec_cmd("noctalia msg panel-toggle launcher"))
hl.bind(mainMod .. " + T", hl.dsp.window.float({ action = "toggle" })) hl.bind(mainMod .. " + T", hl.dsp.window.float({ action = "toggle" }))
hl.bind(mainMod .. " + P", hl.dsp.window.pseudo()) hl.bind(mainMod .. " + P", hl.dsp.window.pseudo())
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen({ action = "toggle" })) hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen({ action = "toggle" }))
hl.bind(mainMod .. " + B", hl.dsp.exec_cmd(utils.noctalia_ipc("bar toggle"))) hl.bind(mainMod .. " + B", hl.dsp.exec_cmd("noctalia msg bar-toggle"))
-- Move focus with mainMod + arrow keys -- Move focus with mainMod + arrow keys
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" })) hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
@@ -63,27 +63,26 @@ hl.bind(mainMod .. "+ SHIFT + j", hl.dsp.window.resize({x=0, y=10, relative = tr
-- --
-- Laptop multimedia keys for volume and LCD brightness -- Laptop multimedia keys for volume and LCD brightness
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd(utils.noctalia_ipc("volume increase")), { locked = true, repeating = true }) hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("noctalia msg volume-up"), { locked = true, repeating = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd(utils.noctalia_ipc("volume decrease")), { locked = true, repeating = true }) hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("noctalia msg volume-down"), { locked = true, repeating = true })
-- Mic volume -- Mic volume
hl.bind(mainMod .. " + XF86AudioRaiseVolume", hl.dsp.exec_cmd("amixer -q set Dmic0 3%+"), { locked = true, repeating = true }) hl.bind(mainMod .. " + XF86AudioRaiseVolume", hl.dsp.exec_cmd("amixer -q set Dmic0 3%+"), { locked = true, repeating = true })
hl.bind(mainMod .. " + XF86AudioLowerVolume", hl.dsp.exec_cmd("amixer -q set Dmic0 3%-"), { locked = true, repeating = true }) hl.bind(mainMod .. " + XF86AudioLowerVolume", hl.dsp.exec_cmd("amixer -q set Dmic0 3%-"), { locked = true, repeating = true })
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd(utils.noctalia_ipc("volume decrease")), { locked = true, repeating = true }) hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("noctalia msg volume-down"), { locked = true, repeating = true })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd(utils.noctalia_ipc("volume muteOutput")), { locked = true, repeating = true }) hl.bind("XF86AudioMute", hl.dsp.exec_cmd("noctalia msg volume-mute"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd(utils.noctalia_ipc("brightness increase")), { locked = true, repeating = true }) hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("noctalia msg brightness-up"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd(utils.noctalia_ipc("brightness decrease")), { locked = true, repeating = true }) hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("noctalia msg brightness-down"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd(utils.noctalia_ipc("brightness decrease")),{ locked = true, repeating = true })
-- Noctalia shutdown menu -- Noctalia shutdown menu
hl.bind(mainMod .. " + Delete",hl.dsp.exec_cmd(utils.noctalia_ipc("sessionMenu toggle")),{ release = true, locked = false, repeating = false }) hl.bind(mainMod .. " + Delete",hl.dsp.exec_cmd("noctalia msg panel-toggle session"),{ release = true, locked = false, repeating = false })
-- Long press for lock screen (prevents accidental presses) -- Long press for lock screen (prevents accidental presses)
hl.bind(mainMod .. " + Delete",hl.dsp.exec_cmd(utils.noctalia_ipc("lockScreen lock")),{ long_press = true, locked = false, repeating = false }) hl.bind(mainMod .. " + Delete",hl.dsp.exec_cmd("noctalia msg session lock"),{ long_press = true, locked = false, repeating = false })
-- Noctalia settings menu -- Noctalia settings menu
hl.bind(mainMod .. " + HOME",hl.dsp.exec_cmd(utils.noctalia_ipc("settings toggle")),{ locked = false, repeating = false }) hl.bind(mainMod .. " + HOME",hl.dsp.exec_cmd("noctalia msg settings-toggle"),{ locked = false, repeating = false })
-- Do not disturb -- Do not disturb
hl.bind("XF86NotificationCenter",hl.dsp.exec_cmd(utils.noctalia_ipc("notifications toggleDND")),{ locked = false, repeating = false }) hl.bind("XF86NotificationCenter",hl.dsp.exec_cmd("noctalia msg notification-dnd-toggle"),{ locked = false, repeating = false })
-- Media controls (requires playerctl) -- Media controls (requires playerctl)
hl.bind("XF86Favorites", hl.dsp.exec_cmd("playerctl next"), { locked = true }) hl.bind("XF86Favorites", hl.dsp.exec_cmd("playerctl next"), { locked = true })

View File

@@ -3,8 +3,4 @@ return {
assert(cmd, "uwsm() -> cmd is required") assert(cmd, "uwsm() -> cmd is required")
return "uwsm-app -- " .. cmd return "uwsm-app -- " .. cmd
end, end,
noctalia_ipc = function(cmd)
assert(cmd, "noctalia_ipc() -> cmd is required")
return "qs -c noctalia-shell ipc call " .. cmd
end
} }

View File

@@ -0,0 +1,15 @@
schema_version = 1
[grid]
cell_size = 16
major_interval = 4
visible = true
[[widget]]
cx = 816.0
cy = 128.0
id = "desktop-widget-0000000000000001"
output = "eDP-1"
rotation = 0.0
scale = 2.3113992214202881
type = "clock"

View File

@@ -0,0 +1,124 @@
[bar]
order = [ "default" ]
[bar.default]
background_opacity = 0.0
capsule = true
capsule_border = "outline"
capsule_fill = "surface"
capsule_opacity = 0.5
capsule_padding = 9.0
end = [ "volume", "brightness", "clipboard", "notifications", "network", "bluetooth", "battery", "control-center" ]
margin_edge = 5
margin_ends = 0
padding = 5
shadow = false
start = [ "tray", "caffeine", "group:g1" ]
thickness = 30
widget_spacing = 2
[[bar.default.capsule_group]]
border = "outline"
fill = "surface"
id = "g1"
members = [ "cpu", "temp", "ram", "sysmon" ]
opacity = 0.55000001192092896
padding = 6.0
[desktop_widgets]
schema_version = 1
widget_order = [ "desktop-widget-0000000000000001" ]
[desktop_widgets.grid]
cell_size = 16
major_interval = 4
visible = true
[desktop_widgets.widget.desktop-widget-0000000000000001]
cx = 1461.5
cy = 919.3074951171875
output = "eDP-1"
rotation = 0.0
scale = 1.2566845417022705
type = "clock"
[desktop_widgets.widget.desktop-widget-0000000000000001.settings]
background = true
background_opacity = 0.54000000000000004
[notification]
background_opacity = 0.97999995946884155
[shell]
font_family = "JetBrainsMono NF"
screen_time_enabled = true
settings_show_advanced = true
[shell.panel]
background_opacity = 0.99999997764825821
clipboard_placement = "floating"
control_center_placement = "floating"
launcher_categories = false
open_near_click_control_center = true
session_placement = "centered"
wallpaper_placement = "floating"
[theme]
builtin = "m3-content"
community_palette = "Doomed"
mode = "dark"
source = "wallpaper"
wallpaper_scheme = "Doomed"
[theme.templates]
builtin_ids = [ "gtk3", "gtk4", "hyprland", "qt" ]
[wallpaper]
directory = "/home/daniele/.config/hypr/wallpapers"
transition = [ "fade" ]
transition_duration = 300
[wallpaper.default]
path = "/home/daniele/.config/hypr/wallpapers/wwdc-2023-8k-swirls-3840x2160-12596.jpg"
[wallpaper.last]
path = "/home/daniele/.config/hypr/wallpapers/wwdc-2023-8k-swirls-3840x2160-12596.jpg"
[wallpaper.monitors.eDP-1]
path = "/home/daniele/.config/hypr/wallpapers/wwdc-2023-8k-swirls-3840x2160-12596.jpg"
[widget.battery]
capsule = true
[widget.bongocat]
script = "scripts/bongocat.lua"
type = "scripted"
[widget.clock]
format = "{:%H:%M %a, %b %d}"
[widget.control-center]
glyph = "baseline-density-medium"
[widget.cpu]
display = "text"
[widget.ram]
display = "text"
[widget.screen_recorder]
script = "scripts/screen_recorder.lua"
type = "scripted"
[widget.sysmon]
display = "text"
stat = "disk_pct"
[widget.temp]
display = "text"
[widget.tray]
anchor = true
drawer = true
drawer_columns = 5
hidden = [ "Xwayland Video Bridge_pipewireToXProxy" ]