plac

Roon remote in GTK4

Commits at e6e1046d8313ead50438e7f8a3ea22c88e82821b

  1. e6e1046d Delete unused file Shota FUJI authored at Shota FUJI comitted at
  2. c5c794be Ignore "nix build" output Shota FUJI authored at Shota FUJI comitted at
  3. 5488c71b v1.3.0 Shota FUJI authored at Shota FUJI comitted at
  4. 7117b5f9 Add user-customizable keyboard shortcuts https://codeberg.org/pocka/plac-for-gtk4/issues/26 All but "browse back" have no default set for backward-compatibility. "F10" for "Open application menu" might be a good candidate for default, but I'm afraid that stealing key press from DE or other stack's shortcut. --- Why writing own UI and mechansim? GTK4/GNOME does not have good support for keyboard shortcuts. It does not have a native way to let users customize shortcut, or API to do so. This is fundamental design problem of GNOME. From their HIG: https://developer.gnome.org/hig/guidelines/keyboard.html > Use the standard GNOME shortcut keys if your app supports those functions. > ... > Don’t assign awkward reaches. Some people may only be able to use one hand > on the keyboard, so shortcuts that can be easily used with one hand are > preferable for common operations. (This guideline also applies to access > keys below.) While the first line makes sense, the "standard GNOME shortcut keys" lacks many application types they couldn't imagine of, thus "non-standard" applications have difficult time finding unused safe key combinations. The last line is straightup garbage. It's clear they don't understand keyboard accessibility at all: people have different hand shapes, use different keyboard layouts, or may have difficulty using their hand partially or entirely. Application opts to non-configurable keyboard shortcut is *okay*, but UI toolkit and platform embracing hardcoded keyboard shortcuts is not. It's accessibility nightmare. A GUI toolkit can't have great accessibility without user configurable keyboard shortcuts as a first-class citizen. I suspect this situation won't improve for foreseeable future. GTK maintainer's stance is "it's application developer's responsibility." "AdwShortcut*" widgets have no editing capability, and probably will not given the HIG's writing. So each application has to write each own keyboard shortcuts configuration mechanism, I guess. The code is not that complex or massive. It's just I'm disappointed. Shota FUJI authored at Shota FUJI comitted at
  5. a50feb86 Add "Disable changing sensitivity before and after API calls" option https://codeberg.org/pocka/plac-for-gtk4/issues/27 To workaround GTK4 moves focus to a sensitive widget when a widget goes to insensitive state. Although the option suppress the safeguard, GTK4 still moves focus on pressing "play" and "pause", because it's two buttons changing visibility instead of a single button swapping appearance and label. Shota FUJI authored at Shota FUJI comitted at
  6. 96f826fe Define preferences dialog UI in XML file Application.vala got too messy. Shota FUJI authored at Shota FUJI comitted at
  7. 73949790 Add options to change seekbar's step/jump size It has been fixed to 1s/10s. Ideal seekbar step size depends on personal preferences, so I made it customizable. I changed my config to 5s/20s after little fiddling. https://codeberg.org/pocka/plac-for-gtk4/issues/25 Shota FUJI authored at Shota FUJI comitted at
  8. 767d22f8 Add stop button to playback toolbar It works like the one on a cassette player. I wanted it to behave like other apps, but Roon API lacks "clear queue" functionality. It does have "subscribe to queue changes" and "play from this queue item" but using those are hacky and fragile. <https://codeberg.org/pocka/plac-for-gtk4/issues/24> Shota FUJI authored at Shota FUJI comitted at
  9. bcb055cc v1.2.0 Shota FUJI authored at Shota FUJI comitted at
  10. 25338e79 Add "Default category" option I personally don't use "Explorer" category much. The most frequently used category differs by person, or even same person can change the preferred category over time. Shota FUJI authored at Shota FUJI comitted at
  11. 5459e704 Add "Hide window titlebar" preference option Close button and window title does not make sense for certain kind of window managers. Shota FUJI authored at Shota FUJI comitted at
  12. d625bacf Reorganize preference items To use more common terminology. Shota FUJI authored at Shota FUJI comitted at
  13. 0f73b5a7 Get rid of treefmt It's not good. Overall design, speed, touches git, etc. dprint is simple, and `buildFHSEnv` is enough for NixOS. Shota FUJI authored at Shota FUJI comitted at
  14. 2b1e1d3b Fix indentation in README Shota FUJI authored at Shota FUJI comitted at
  15. 2c161d22 Make app menu available at server discovery window Otherwise user has to manually edit dconf entry in order to set UDP port. Shota FUJI authored at Shota FUJI comitted at
  16. 53dd3706 Expose discovery-udp-port option to preference UI Shota FUJI authored at Shota FUJI comitted at
  17. 72378989 Add Installation section to README Shota FUJI authored at Shota FUJI comitted at
  18. 5c89c2aa Add build script for Flatpak single-file bundle Shota FUJI authored at Shota FUJI comitted at
  19. 85815545 Fix illegal icon locations According to Flatpak documentation, it's illegal. Shota FUJI authored at Shota FUJI comitted at
  20. 0aeafce0 Add CHANGELOG Shota FUJI authored at Shota FUJI comitted at
  21. 0b13d726 v1.1.0 Shota FUJI authored at Shota FUJI comitted at
  22. 979547df Add BackSpace keyboard shortcut to go-back browse page Shota FUJI authored at Shota FUJI comitted at
  23. ba96062d Focus browse items on load Because of Plac disables controls to prevent race-condition during API calls, focus jumps back to unnatural position after every load. This opt-in feature brings smoother keyboard experience. What follows after selecting a category is select an item or browse items on list, therefore moving focus to the list is the most suited in this case. Shota FUJI authored at Shota FUJI comitted at
  24. de662386 Do not output warning log for missing artwork image It's an expected status code. Shota FUJI authored at Shota FUJI comitted at
  25. fc35c9b1 Add search page Shota FUJI authored at Shota FUJI comitted at
  26. 1a6e7d04 Output debug log by default for "zig build run" 99.9% of the time I use "zig build run" need debug logs. Shota FUJI authored at Shota FUJI comitted at
  27. d5bbef62 Update flake input (nixpkgs) Changes to ".nix" files: * Rename "nixfmt-rfc-style" to "nixfmt", as it has graduated to non-RFC official tool. * Remove "zig.hook", as it has been integrated to the "pkgs.zig". Shota FUJI authored at Shota FUJI comitted at
  28. c3341f48 Fix app crash on WebSocket disconnection Shota FUJI authored at Shota FUJI comitted at
  29. cffc0847 Set mnemonic to static elements Not great keyboard experience, but I guess this is the ideal GTK way of doing it? Shota FUJI authored at Shota FUJI comitted at
  30. e88c3248 Focus next widget on pressing Tab at browse list The default behavior is focus a next list item, or next widget if the currently focused item is the last item. As user can focus sibling list item using an arrow key, Tab should be reserved for focusing playback toolbar. If the list contains many items, it would be tedious to reach playback toolbar by only using keyboard. Shota FUJI authored at Shota FUJI comitted at