Hyprland's workspace refactor (hyprwm/Hyprland#16140) broke
Hyprland.focusedWorkspace.monitor as a way to find the focused screen
(quickshell-mirror/quickshell#1119). Quickshell already exposes
Hyprland.focusedMonitor directly, so read the monitor from there
* fix(battery): report when no charge threshold exists instead of faking success
* fix(battery): hide the charge limit controls when there is no battery
Follow-up to the review on #3385: the new explanation showed on
desktops and VMs with no battery at all, where it reads as a fault
report about hardware the machine was never going to have.
Both the explanation and the apply button now require
BatteryService.batteryAvailable. Hiding the button there is the same
point the pull request makes elsewhere: offering a control that cannot
work is what produced the false success in the first place. A machine
without a battery has no charge threshold to write to, so the limit was
never applicable.
BatteryService.batteryAvailable is already the gate used twice in this
file for the same reason.
* fix(clipboard): preserve pinned state when editing entries
* fix(clipboard): address PR review feedback on editEntry
* fix(clipboard): validate empty text and entry size in EditEntry
* fix(clipboard): gate saving entry on full text load completion
* fix(clipboard): add user feedback and error fallback for entry loading
* fix(clipboard): keep entry and gate save with error toast on load failure
* fix(clipboard): reject non-text edits and add translator contexts
* fix(clipboard): support alt text mime types in EditEntry and UI guards
* fix(clipboard): pre-fetch entry before opening editor and allow retry on load failure
* Island: Added option to choose the control center icon to be either
Battery gauge or Connectivity
* Add Control Center to settings search index
* island: keep connectivity dim opacity off the blink target
DankBlink animates opacity and forces it back to 1.0 when it stops,
which broke the icon's binding and left the disabled state fully opaque.
Adds Fortinet gateway support to the NetworkManager openconnect path.
A SAML gateway authenticates through the browser, with the loopback
redirect handled in core and the session traded for the cookie
openconnect needs. Certificate trust is confirmed once and stored as
the digest openfortivpn uses.
openfortivpn config files can be imported as profiles. A saml-login
line selects the browser login, anything else imports as a password
profile carrying whatever credentials the file had.
Co-authored-by: Claude Opus 5 <[email protected]>
When a backend runs the upgrade in a terminal (paru/yay or a custom
command), the popout unconditionally reopened itself once the terminal
closed. Add an updaterReopenAfterUpgrade setting (default: on, keeping
current behavior) so users can opt out and keep the popout closed after
the terminal exits.
* idle inhibitor: add duration presets and timed expiry
Right-click the bar widget or expand the Control Center pill to keep the
system awake for a set duration rather than only indefinitely. The deadline
is persisted so it survives a shell restart, and is re-checked on resume
because timers stop across suspend.
Adds `dms ipc call inhibit enableFor <minutes>`, and `inhibit status` now
reports the remaining time.
* idle inhibitor: add translator context to new duration strings
* refactor(systemtray): convert overflow menu and context menu to DankPopout
* fix(systemtray): correct window-local anchor position mapping and enable contentHandlesKeys for tray menu keyboard navigation
* fix(systemtray): force active focus on tray menu content
* fix(systemtray): address inline PR review feedback
- Force active focus on open for key navigation
- Unregister menu only if matching active instance
- Map anchor trigger position relative to screen origin
* fix(systemtray): gate onMenuOpenChanged on useOverflowPopup
- Prevent registering overflowPopout in inline expansion mode
* fix(systemtray): correct context menu positioning in overflow popout
- Handle screen global coordinate mapping for both connected and standalone popout modes
* fix(systemtray): handle per-screen backend and vertical bar anchor Y offset
- Use overflowPopout.useConnectedBackend for per-screen discriminator
- Add vertical anchor Y centering offset in showForTrayItem
* fix(systemtray): center overflow popout on vertical bar caret
- Add vertical orientation anchor Y offset in _openOverflowAt
* fix(systemtray): clear submenu entryStack on tray menu open
- Expose entryStack alias on trayMenuContentRoot
- Clear entryStack on trayMenuPopout onOpened to avoid submenu state leakage
The cycle fallback fired from a never-cycled state. With one display
enabled and another marked off in settings, a DPMS standby that drops
the DisplayPort link looked like an unplug, and DMS sent an On to the
disabled display over niri IPC. It stayed on until the next config
reload and the workspaces round tripped through it.
Track each output's enabled state the first time a cycle touches it,
drop the entry once it is back at that state, and only rescue outputs
that were on before the cycle disabled them. Outputs that were already
off are never enabled automatically.
* updated dank to support aqueous
* further updates
* aqueous support work
* updated to support workspace options better in aqueous
* added blur to dms shell for aqueous
* added keybinding update
* remove unneeded blur
* clean up per claud review
* swapped to ipc
* aqueous: move IPC integration to QML, delete test fixtures (since we
dont have a QML test structure even setup), delete in-repo docs
* fix staticcheck
* aqueous: consolidate more aqueous specific stuff
* add aqueous logo
---------
Co-authored-by: Zoey <[email protected]>
* feat(screenshot): add touch and stylus input support for region capture
* fix(screenshot): guard against finishSelection on touch up during scroll phase
port 1.6