-- Send through the virtual keyboard so universal clipboard shortcuts reach -- both normal windows and focused layer-shell surfaces such as Omarchy panels. -- Hyprland's send_key_state with window = "activewindow" cannot target layers. local function send_shortcut_once(mods, key) return function() local modifier = mods:lower() hl.dispatch(hl.dsp.exec_cmd("wtype -M " .. modifier .. " -k " .. key:lower() .. " -m " .. modifier)) end end local terminal_classes = { alacritty = true, ["com.mitchellh.ghostty"] = true, foot = true, kitty = true, wezterm = true, } local function active_window_is_terminal() local window = hl.get_active_window() if not window or not window.class then return false end return terminal_classes[window.class:lower()] == true end local function universal_clipboard_shortcut(default_mods, default_key, terminal_mods, terminal_key) return function() if active_window_is_terminal() then send_shortcut_once(terminal_mods, terminal_key)() else send_shortcut_once(default_mods, default_key)() end end end o.bind("SUPER + C", "Universal copy", universal_clipboard_shortcut("CTRL", "C", "CTRL", "Insert")) o.bind("SUPER + V", "Universal paste", universal_clipboard_shortcut("CTRL", "V", "SHIFT", "Insert")) o.bind("SUPER + X", "Universal cut", send_shortcut_once("CTRL", "X")) o.bind("SUPER + CTRL + V", "Clipboard manager", "omarchy-shell shell toggle omarchy.clipboard")