Merge upstream quattro for the Qt 6.12 palette fix (#14553)
Qt 6.12 shadows the bare Color singleton, so the bar and every Color role read undefined on fresh installs. Keep our I18n text in the four conflicting files, qualify #14433's notification button color, give the new dictation menu rows and notifications Chinese, and drop table entries for the removed Voxtype and FIDO2 texts.
This commit is contained in:
commit
fcd681c099
239 files changed
+3996
-616
No files matched your search
@@ -6,12 +6,16 @@ hl.layer_rule({ match = { namespace = "omarchy-bar" }, no_anim = true, animation
|
||||
|
||||
-- Launcher, image selector, emojis, clipboard overlays, the OSD, reminders, the
|
||||
-- Wi-Fi QR code and keyboard-driven panels should pop without compositor layer
|
||||
-- animations. The overlays stay mapped between opens and grow from a parked
|
||||
-- 1x1 when shown, which Hyprland would otherwise animate as a slide in from
|
||||
-- the corner. Panels keep their own QML opacity transition for normal
|
||||
-- open/close, and skip it for panel handoff.
|
||||
-- animations. Overlays open as soon as their scale is ready, without a
|
||||
-- compositor fade or slide. Panels keep their own QML opacity transition
|
||||
-- for normal open/close, and skip it for panel handoff.
|
||||
hl.layer_rule({ match = { namespace = "^(omarchy-menu|omarchy-image-selector|omarchy-emojis|omarchy-clipboard|omarchy-keyboard-panel|omarchy-osd|omarchy-reminders|omarchy-network-qr)$" }, no_anim = true, animation = "none" })
|
||||
|
||||
-- A boot intro hands the desktop between OWE's video layer and the shell's
|
||||
-- background layer. The media fades itself, so a compositor fade on either
|
||||
-- layer only dips the screen toward the empty desktop during the handoff.
|
||||
hl.layer_rule({ match = { namespace = "^(omarchy-background|owe-background)$" }, no_anim = true, animation = "none" })
|
||||
|
||||
-- Dev gallery is the main shell workbench; open it maximized like
|
||||
-- SUPER+ALT+F so component previews have the whole workspace.
|
||||
o.window({ class = "^org.quickshell$", title = "^Omarchy shell – dev gallery$" }, { maximize = true })
|
||||
@@ -1,4 +1,12 @@
|
||||
require("default.hypr.startup-cursor")
|
||||
|
||||
hl.on("hyprland.start", function()
|
||||
-- Applications inherit the user's cursor; only the compositor starts blank.
|
||||
if omarchy_startup_cursor_pending then
|
||||
hl.env("XCURSOR_PATH", omarchy_startup_cursor.path)
|
||||
hl.env("XCURSOR_THEME", omarchy_startup_cursor.xcursor)
|
||||
end
|
||||
|
||||
-- Slow app launch fix -- set systemd vars before starting session services.
|
||||
hl.exec_cmd("systemctl --user import-environment $(env | cut -d'=' -f 1)")
|
||||
hl.exec_cmd("dbus-update-activation-environment --systemd --all")
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
if o.shell_succeeds("omarchy-default-dictation") then
|
||||
o.bind("SUPER + CTRL + X", "Toggle dictation", "omarchy-dictation toggle")
|
||||
o.bind("F9", "Start dictation (push-to-talk)", "omarchy-dictation start")
|
||||
o.bind("F9", "Stop dictation (push-to-talk)", "omarchy-dictation stop", { release = true })
|
||||
-- A modifier's mask changes between its press and release. Match the keysym
|
||||
-- independently of that mask; AltGr layouts use a different keysym.
|
||||
o.bind("ALT + Alt_R", "Start dictation (push-to-talk)", "omarchy-dictation start", { ignore_mods = true })
|
||||
o.bind("ALT + Alt_R", "Stop dictation (push-to-talk)", "omarchy-dictation stop", { release = true, ignore_mods = true })
|
||||
end
|
||||
@@ -1,5 +0,0 @@
|
||||
if o.cmd_present("voxtype") then
|
||||
o.bind("SUPER + CTRL + X", "Toggle dictation", "voxtype record toggle")
|
||||
o.bind("F9", "Start dictation (push-to-talk)", "voxtype record start")
|
||||
o.bind("F9", "Stop dictation (push-to-talk)", "voxtype record stop", { release = true })
|
||||
end
|
||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
||||
-- Backends may supply their own desktop integration without editing the
|
||||
-- user's Hyprland config. Recording bindings remain owned by Omarchy.
|
||||
local paths = require("default.hypr.paths")
|
||||
local pipe = io.popen("omarchy-default-dictation 2>/dev/null", "r")
|
||||
if not pipe then
|
||||
return
|
||||
end
|
||||
|
||||
local backend = pipe:read("*l")
|
||||
pipe:close()
|
||||
|
||||
if not backend or not backend:match("^[%w%-]+$") or o.cmd_missing("omarchy-dictation-" .. backend) then
|
||||
return
|
||||
end
|
||||
|
||||
local integration = paths.config_home .. "/" .. backend .. "/shortcuts.lua"
|
||||
local file = io.open(integration, "r")
|
||||
if file then
|
||||
file:close()
|
||||
local ok, error = pcall(dofile, integration)
|
||||
if not ok then
|
||||
print("Could not load dictation backend " .. backend .. ": " .. tostring(error))
|
||||
end
|
||||
end
|
||||
@@ -104,6 +104,7 @@ hl.config({
|
||||
misc = {
|
||||
disable_hyprland_logo = true,
|
||||
disable_splash_rendering = true,
|
||||
background_color = "rgb(000000)",
|
||||
disable_scale_notification = true,
|
||||
focus_on_activate = true,
|
||||
anr_missed_pings = 3,
|
||||
|
||||
@@ -12,7 +12,7 @@ if _G.omarchy_default_bindings ~= false then
|
||||
require("default.hypr.bindings.jis")
|
||||
require("default.hypr.bindings.tiling")
|
||||
require("default.hypr.bindings.utilities")
|
||||
require("default.hypr.bindings.voxtype")
|
||||
require("default.hypr.bindings.dictation")
|
||||
require_optional.module("default.hypr.bindings.applications")
|
||||
end
|
||||
require("default.hypr.envs")
|
||||
@@ -20,6 +20,7 @@ require("default.hypr.looknfeel")
|
||||
require("default.hypr.qconsole")
|
||||
require("default.hypr.input")
|
||||
require("default.hypr.windows")
|
||||
require("default.hypr.dictation-backend")
|
||||
|
||||
-- Current theme overrides.
|
||||
require_optional.module("omarchy.current.theme.hyprland")
|
||||
@@ -0,0 +1,46 @@
|
||||
-- Hyprland polls cursor.invisible, so its first frames need a blank cursor too.
|
||||
function omarchy_startup_cursor_restore(loaded)
|
||||
if not omarchy_startup_cursor_pending then return end
|
||||
local cursor = omarchy_startup_cursor
|
||||
if loaded then
|
||||
omarchy_startup_cursor_pending = false
|
||||
hl.config({ cursor = cursor.config })
|
||||
if cursor.config.enable_hyprcursor and cursor.hyprcursor then
|
||||
hl.exec_cmd("hyprctl setcursor " .. o.shell_quote(cursor.hyprcursor) .. " " .. cursor.size)
|
||||
end
|
||||
elseif not cursor.restoring then
|
||||
-- Reload the normal Xcursor fallback before enabling Hyprcursor or GSettings.
|
||||
cursor.restoring = true
|
||||
hl.exec_cmd("hyprctl setcursor " .. o.shell_quote(cursor.xcursor) .. " " .. cursor.size
|
||||
.. " && hyprctl eval 'omarchy_startup_cursor_restore(true)'")
|
||||
end
|
||||
end
|
||||
|
||||
hl.on("config.reloaded", function()
|
||||
if omarchy_startup_cursor_pending == nil then
|
||||
-- Config updates in an existing compositor must not hide its pointer.
|
||||
omarchy_startup_cursor_pending = #hl.get_monitors() == 0
|
||||
if omarchy_startup_cursor_pending then
|
||||
local hyprcursor = hl.get_config("cursor.enable_hyprcursor")
|
||||
omarchy_startup_cursor = {
|
||||
config = {
|
||||
invisible = hl.get_config("cursor.invisible"),
|
||||
enable_hyprcursor = hyprcursor,
|
||||
sync_gsettings_theme = hl.get_config("cursor.sync_gsettings_theme"),
|
||||
},
|
||||
hyprcursor = os.getenv("HYPRCURSOR_THEME"),
|
||||
size = tonumber((hyprcursor and os.getenv("HYPRCURSOR_SIZE")) or os.getenv("XCURSOR_SIZE")) or 24,
|
||||
path = os.getenv("XCURSOR_PATH") or "~/.local/share/icons:~/.icons:/usr/share/icons:/usr/share/pixmaps",
|
||||
xcursor = os.getenv("XCURSOR_THEME") or "default",
|
||||
}
|
||||
if omarchy_startup_cursor.size <= 0 then omarchy_startup_cursor.size = 24 end
|
||||
hl.env("XCURSOR_PATH", os.getenv("OMARCHY_PATH") .. "/default/hypr/cursors:" .. omarchy_startup_cursor.path)
|
||||
hl.env("XCURSOR_THEME", "omarchy-startup")
|
||||
end
|
||||
end
|
||||
if omarchy_startup_cursor_pending then
|
||||
-- Keep the temporary cursor private to the compositor, including GSettings.
|
||||
hl.config({ cursor = { invisible = true, enable_hyprcursor = false, sync_gsettings_theme = false } })
|
||||
hl.timer(function() omarchy_startup_cursor_restore() end, { timeout = 15000, type = "oneshot" })
|
||||
end
|
||||
end)
|
||||
Reference in new issue
Block a user