-
released this
2026-06-20 20:21:34 +00:00 | 0 commits to master since this releaseAdded
- Daemon session D-Bus interface (
org.zenbookduo.Daemon) publishing live
keyboard-dock state; the Shell extension now shows a "keyboard docked"
indicator and a keyboard-backlight slider driven by it. - Stylus libwacom tablet files so the pen is classified per panel.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Daemon session D-Bus interface (
-
released this
2026-06-20 20:04:03 +00:00 | 11 commits to master since this releaseAdded
- Expanded the test suite: coverage for the file/sysfs I/O helpers (charge-limit
write with clamping, backlight read, USB dock parsing edge cases), an
all-modules import smoke test, and more reconciler state-transition tests
(96 tests total).
Security
- Supply-chain hardening: the CI base image is pinned by digest;
rufflinting
and desktop-file validation run as CI gates; and released RPMs now ship a
SHA256SUMSchecksum file for integrity verification.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Expanded the test suite: coverage for the file/sysfs I/O helpers (charge-limit
-
released this
2026-06-20 19:37:26 +00:00 | 17 commits to master since this releaseAdded
zenbook-duo-control— a GTK4/libadwaita settings window for all options
(backlight level, charge limit, scale, platform profile, and the toggles).
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
released this
2026-06-20 19:24:38 +00:00 | 24 commits to master since this releaseAdded
- GNOME Shell Quick Settings extension (
zenbook-duo-ctl@jd.jdneer.com) with
toggles for auto-rotate, brightness sync, bottom screen, and touch mapping
(Shell 48/49/50).
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- GNOME Shell Quick Settings extension (
-
released this
2026-06-20 19:13:46 +00:00 | 30 commits to master since this releaseAdded
- Battery charge limit (
battery-charge-limit, 60–100%) applied via the kernel
charge-threshold attribute (granted to the user with a tmpfiles rule), and
platform power profile (platform-profile: quiet/balanced/performance) set
through power-profiles-daemon — both with no root daemon.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Battery charge limit (
-
released this
2026-06-20 18:53:04 +00:00 | 38 commits to master since this releaseAdded
- Map each touchscreen and stylus to its own panel (
touchscreen-mapping) so
touch lands on the screen you touch, disambiguating the two identical-EDID
panels by connector name.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Map each touchscreen and stylus to its own panel (
-
released this
2026-06-20 17:41:08 +00:00 | 45 commits to master since this releaseAdded
- Automatically rotate both panels together to match the accelerometer
(auto-rotate), keeping the bottom panel positioned relative to the top, and
disabling GNOME's own auto-rotate so the two don't fight.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Automatically rotate both panels together to match the accelerometer
-
released this
2026-06-20 16:58:07 +00:00 | 57 commits to master since this releaseAdded
- Automatically turn the bottom screen off when the keyboard is docked and back
on when detached (bottom-screen-auto,monitor-scale), via gdctl. - Mirror the top panel's brightness onto the bottom panel (
brightness-sync),
set through logind with no root.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Automatically turn the bottom screen off when the keyboard is docked and back
-
released this
2026-06-20 15:10:41 +00:00 | 70 commits to master since this releaseDocumentation
- Document the uninstall lifecycle in the README — disable the
zenbook-duod
user service beforednf remove, the live-session stop caveat, and the
optional dconf cleanup.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Document the uninstall lifecycle in the README — disable the
-
released this
2026-06-20 14:51:23 +00:00 | 72 commits to master since this releaseInitial release — a user-session daemon that controls the ASUS Zenbook Duo
(UX8406) keyboard backlight on Fedora/GNOME, with a fully automated,
self-contained RPM build.Keyboard backlight
- Sets the keyboard backlight level (0–3) over the vendor HID feature report,
working in both docked (USB, PID 1bf2) and detached (Bluetooth, PID 1bf3)
modes — the correct hidraw node is found dynamically by its0x5Areport
descriptor, so the same path works on both transports. - Configurable via the
org.zenbookduoGSettings schema
(keyboard-backlight-level); the daemon applies changes live. - Idempotent reconciler: re-applies the desired level on startup, keyboard
dock/undock, and config change, and writes only on an actual change.
Daemon & system integration
- Event-driven
zenbook-duoddaemon on the GLib main loop, with USB hotplug
observed via aNETLINK_KOBJECT_UEVENTsocket and dock state read from sysfs. - Runs as a user systemd service, enabled on install via a systemd user
preset (auto-starts at the next graphical login). Hardware access is granted
to the active session through a loginduaccessudev ACL — no root, no
sudo, no group membership, no/etc/sudoersedits. - Zero third-party Python dependencies (standard library + PyGObject only).
Packaging & CI
- Self-contained,
noarchRPM with a fully offline build;Requiresonly
python3andpython3-gobject. - Two Forgejo Actions workflows (
buildverification,release) that use no
external/marketplace actions — plaingitcheckout and a stdlib-only
release helper authenticated by the built-in Actions token. - The RPM is attached to the Forgejo Release for each
vX.Y.Ztag; release
notes are generated from thisCHANGELOG.md(with a commit-log fallback).
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Sets the keyboard backlight level (0–3) over the vendor HID feature report,