Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: ideas for GUI tray app #991

Open
eugenesvk opened this issue Apr 28, 2024 · 1 comment
Open

Feature request: ideas for GUI tray app #991

eugenesvk opened this issue Apr 28, 2024 · 1 comment
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@eugenesvk
Copy link
Contributor

eugenesvk commented Apr 28, 2024

Is your feature request related to a problem? Please describe.

These are some feature ideas re. how to make the gui app better, currently Windows only as that's the only platform natively supported (and also some of the issues are tied to the windows GUI framework)

So maybe slap a help-needed tag just so some helpful soul could notice?

Describe the solution you'd like.

  • Allow users to modify layout from config:
    • add custom menus, e.g., specific configs as menuitems in the main menu instead of the submenu
    • allow changing menu names
    • allow user config of accelerators in context menus, for configs and in general
    • menu positions
  • Logging
    • ✗ Blocked by Rust libs: Allow changing log level from the menu: simplelog doesn't support it issue
    • add a key output window in the nice "simulated output" format
    • to file / memory and show result in the app's own window instead of using other debugging tools
    • add a way to flash icon / send user tray notifications / show popup on some warnings/errors? (partially exists on config reloads etc)
    • Redirect stdout to a logger so that current println! work
  • Misc UI
    • ✗ Blocked by Windows bugs: Auto-cleanup/remove tray icon on forced exit src
    • ✗ Blocked by kanata: Add pause to the tray menu
    • Focus tray menu with a kanata keybind
    • show active config reload shortcuts
    • ✗ Blocked by NWG framework (or maybe not)
      • Track right click events on menuitems to open target in the file explorer on right click
      • Same to show full path in the tooltip on menuitems hover fr
      • Make accelerators work for any layout, reflect physical key, not a keycapfr
      • How to dynamically change current menu items src

Describe alternatives you've considered.

n/a

Additional context

(an a much bigger can of worms: is there any x-platform Rust GUI framework that can make tray apps?)

@eugenesvk eugenesvk added the enhancement New feature or request label Apr 28, 2024
@jtroo jtroo added help wanted Extra attention is needed windows Issue pertains to Windows only and removed windows Issue pertains to Windows only labels Apr 28, 2024
jtroo pushed a commit that referenced this issue May 7, 2024
Add a `gui` feature allowing compiling kanata as a native tray-only
Windows GUI application. This greatly simplifies launching the app on
startup instead of resorting to hacks like this:

	#193

It gets rid of the console window and also allows UIAccess to work in
elevated apps. There is a kanata-tray project which helps with the
former, but doesn't allow UIAccess.

	issue: (rszyma/kanata-tray#19)

It also supports custom icon indicator per config and per layer within
the same config, as well as (re)loading configs. Other configs are
passed as cli args in the `.lnk` file

It also supports being launched from a console as a regular cli app, so
it's possible to replace the main `kanata.exe` with this or let it be
some separate `kanata-tray.exe` file

It also opens an avenue to more interesting ideas, but will add those in
a separate issue #991
@eugenesvk
Copy link
Contributor Author

Focus tray menu with a kanata keybind

Can this be achieved by sending some kind of window message to the tray icon controle? #1082

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants