github RedBearAK/Toshy Toshy_v26.11.0
Toshy v26.11.0

4 hours ago

Toshy v26.11.0

Releases from this project are meant only as records of major changes. There will be automatic attachments generated by GitHub, but to get the latest version download the zip from the green <> Code ▼ button on the main page, or use the quick-install one-liner command.

Changes

This release covers roughly early August through early November 2026. The headline items are a keymapper fix for keys getting "stuck" when the keymapper starts while a key is held down, a guard that keeps a broken when condition in the config from disrupting keyboard input, Touch Bar support for T1 MacBooks, and support for the newer Synergy and Deskflow log formats.

Note

Existing users with custom keymaps: If a notification appears after upgrading that says Config error: keymap '...' is disabled, one of the when conditions in your config refers to a name that doesn't exist. Before this release that kind of mistake could break keyboard input in confusing ways. Now the keymap is skipped, and toshy-services-log will show which one and why.

One name was retired from the default config in this release: hmp_not_vscode_or_remote. If you used it in a custom keymap, replace it with the two conditions the default config uses now:

    not ctx_app_is_remote and
    not hmp_is_vscode(ctx)

New distro support

  • Add pikaos distro ID (Debian-based). Community PR from @sicardnicolas
  • Setup script now supports 12 package manager types, 19 base Linux distro types, and knows 59 specific distro IDs.

New features and improvements

  • Fix keys getting stuck when the keymapper grabs a keyboard while a key is held^ (xwaykeyz 1.27.0)
  • Guard against broken when conditions in the config^^ (xwaykeyz 1.28.0). Toshy shows a desktop notification when a keymap or modmap has been disabled this way.
  • Support the Touch Bar on T1 MacBooks (2016-2017 models), alongside the existing T2 support (xwaykeyz 1.26.0)
  • Add toshy-touchbar command^^^ for showing or changing what the Touch Bar displays, on T1 and T2 MacBooks
  • Support the JSON Lines log file written by Synergy 3.9 and later, for the feature that pauses remapping while the pointer is on another computer. Started by a community PR from @josephlavin
  • Recognize the "entering computer" and "leaving computer" log messages used by Deskflow 1.27.0 and later (the older "screen" wording still works). Community PR from @MugiSus
  • Read native screenshot, app launcher and input source switching shortcuts on the COSMIC desktop from COSMIC's own settings files
  • Finder Mods: Cmd+O now opens the selected file or folder in the supported file managers, the same as Cmd+Down. It previously worked only in file managers that happen to bind Ctrl+O to "Open".
  • Add a list of apps that keep their native Ctrl+Shift+[ and Ctrl+Shift+] shortcuts (object ordering in design apps, for example) instead of getting the Shift+Cmd+Braces tab navigation remap. Community PR from @resistdesign
  • Split the Shift+Cmd+Left/Right tab navigation remap into its own list of apps, so an app that edits text can use the Ctrl+Tab style of tab navigation without losing "extend selection to beginning/end of line"
  • Recognize the Flatpak app class of Brave (com.brave.Browser) and another app class for VSCode (com.microsoft.VSCode). Brave app classes now live in their own list.
  • Add the Limux terminal to the terminals list. Community PR from @omissis
  • Recognize Apple MTP keyboard and Apple SPI Keyboard as Apple keyboard types (Apple Silicon MacBooks)

Fixes

  • Fix swapped left/right workspace switching remaps on GNOME (#322). The Ubuntu version of those remaps now applies only when the desktop is GNOME.
  • Make the "Wordwise" keymap respect app classes added to the remotes list in the editable part of the config (#639)
  • Updating the Toshy font no longer crashes terminals that are using the font while it is replaced. The new files are swapped into place, and running apps keep the old version until they are restarted.
  • A native shortcut bound to an unusual key (one of the extra "Launch" keys on a ThinkPad, for example) no longer stops the config from loading. Key names read from the desktop environment are now translated through a table, and a key the keymapper doesn't know leaves that shortcut undetected.
  • The keymapper now checks permissions on all input devices, not only the first one
  • Log timestamps from Synergy, Deskflow, Input Leap and Barrier are read with their time zone when one is given, and a malformed timestamp can no longer stop the log monitor

Installer/setup tweaks

  • Add the Wayland protocols package to the native package lists of most distro types, to prevent a build error while installing Python packages into the Toshy environment. The package names for ALT Linux are a best guess and untested.
  • Keymapper dependencies now give minimum versions and no longer block newer releases of those packages
  • Vendor sync xwaykeyz 1.26.0, 1.27.0, and 1.28.0
  • Update the README note for international keyboard users to describe layout correction, and add a section on toshy-touchbar

Wiki updates

^ If a key went down before the keymapper took over a keyboard and came up afterward, the desktop saw the press but never the release, and treated the key as held from then on. This could happen at login, after unlocking the screen, or whenever the Toshy services restarted while a key was down. The keymapper now waits for the keyboard to be idle before taking it over, checks again afterward, and if a key was held anyway it releases that key on the desktop side when the real release arrives.

^^ A when condition is ordinary Python code from the config file, and it can fail while a key is being processed, for example when it uses a name that was removed or misspelled. Before this change such a failure could drop keystrokes and leave a modifier key acting stuck. Now the failing condition counts as "no match", the keymap or modmap it belongs to is named in the log with the full error, and names that don't exist are reported as soon as the config loads, before any key is pressed.

^^^ The keymapper takes over the job of switching the Touch Bar between media keys and function keys while Fn is held. toshy-touchbar shows the current mode, changes it, and can put the original mode back if the keymapper was stopped in the middle of an Fn key hold (toshy-touchbar --reset). It does nothing on machines without a supported Touch Bar driver. T1 models need the out-of-tree apple-touchbar driver.


Auto-generated full release notes (click to expand):

What's Changed

New Contributors

Full Changelog: Toshy_v26.08.0...Toshy_v26.11.0

Don't miss a new Toshy release

NewReleases is sending notifications on new releases.