Open
Conversation
…rtal shortcuts, text insertion Comprehensive Linux/Wayland support including: - Recording indicator pill working on Hyprland with windowrulev2 rules for float/pin/noborder/size, positioned at top-centre via hyprctl - Sound feedback via canberra-gtk-play with freedesktop sound theme IDs (message-new-instant for start, message-sent-instant for stop) - XDG Desktop Portal GlobalShortcuts backend for native Wayland hotkeys - Text insertion via wtype (Wayland) with wl-copy/wl-paste clipboard ops - Platform detection module (Wayland/X11, compositor identification) - Pipeline events emitted directly to indicator window for reliable delivery - CursorDot style auto-upgraded to Pill on Wayland (no mouse tracking) - Audio capture improvements for Linux ALSA/PulseAudio compatibility - Nix flake devshell with CUDA, system library, and tool dependencies
- Replace dummy cargoHash/pnpmDeps hashes with computed values - Add fetcherVersion = 3 for fetchPnpmDeps API change - Switch pnpm.fetchDeps to fetchPnpmDeps (non-deprecated) - Fix deprecated xorg.* references to top-level libx11 etc - Add git to nativeBuildInputs (whisper.cpp CMakeLists needs it) - Track src-tauri/Cargo.lock in git (required for nix flake builds) - Disable updater signing in nix sandbox via preBuild substituteInPlace
Also update README Linux section with NixOS flake install instructions and mark Linux/Wayland support as shipped.
- Use buildFeatures/buildNoDefaultFeatures (not cargoBuild* variants) so cargo-tauri hook passes --features cuda to the build - Link against CUDA stubs for libcuda.so in nix sandbox - Wrap binary with LD_LIBRARY_PATH for cuda_cudart, libcublas, libappindicator, vulkan-loader, and /run/opengl-driver/lib - Set WEBKIT_DISABLE_COMPOSITING_MODE=1 in wrapper for Wayland
Ensures theme detection, sound feedback, and Hyprland keybind bridge work when launched from app launchers (fuzzel) that don't inherit the user's full shell PATH.
…──────────────────────�[0m
�[38;5;238m│ �[0m�[1mSTDIN�[0m
�[38;5;238m─────┼──────────────────────────────────────────────────────────────────────────�[0m
�[38;5;238m 1�[0m �[38;5;238m│�[0m �[38;5;189mfix: Hyprland keybinds not working when launched from app launcher�[0m
�[38;5;238m 2�[0m �[38;5;238m│�[0m
�[38;5;238m 3�[0m �[38;5;238m│�[0m �[38;5;189mPortal signal delivery via D-Bus silently fails when launched from�[0m
�[38;5;238m 4�[0m �[38;5;238m│�[0m �[38;5;189mfuzzel/other app launchers (ashpd zbus connection dies). Replace the�[0m
�[38;5;238m 5�[0m �[38;5;238m│�[0m �[38;5;189mportal `global` dispatcher with Unix socket IPC — hyprctl `exec`�[0m
�[38;5;238m 6�[0m �[38;5;238m│�[0m �[38;5;189mwrites shortcut IDs to a socket that Thoth listens on directly.�[0m
�[38;5;238m 7�[0m �[38;5;238m│�[0m
�[38;5;238m 8�[0m �[38;5;238m│�[0m �[38;5;189m- Add socket listener for Hyprland shortcut IPC�[0m
�[38;5;238m 9�[0m �[38;5;238m│�[0m �[38;5;189m- Use `exec` dispatcher + socat instead of `global` dispatcher�[0m
�[38;5;238m 10�[0m �[38;5;238m│�[0m �[38;5;189m- Unbind stale hyprctl binds before rebinding�[0m
�[38;5;238m 11�[0m �[38;5;238m│�[0m �[38;5;189m- Resolve socat absolute nix store path at runtime�[0m
�[38;5;238m 12�[0m �[38;5;238m│�[0m �[38;5;189m- Add socat to nix wrapper PATH�[0m
�[38;5;238m─────┴──────────────────────────────────────────────────────────────────────────�[0m
- Reduce symlinks from 5 to 2 (rules/master, docs/master) - Remove legacy symlinks (commands/master, hooks/master, skills/) - Add/update settings.json with permissions + mimir plugin enablement - Commands, skills, and hooks now come from the mimir plugin Co-Authored-By: Claude <noreply@anthropic.com>
This reverts commit 1b913cf.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Comprehensive Linux/Wayland support for Thoth, tested on NixOS + Hyprland with NVIDIA RTX 3080.
windowrulev2rules (float, pin, noborder, size) with top-centre positioning viahyprctlcanberra-gtk-playwith freedesktop sound theme IDswtype(Wayland) withwl-copy/wl-pasteclipboard operationsKey changes
src-tauri/src/shortcuts/portal.rs— New XDG Portal GlobalShortcuts backend with Hyprland keybind bridgesrc-tauri/src/platform/linux.rs— Wayland/X11 detection, compositor identification, GPU detectionsrc-tauri/src/recording_indicator.rs— Hyprland windowrulev2 integration for borderless pill indicatorsrc-tauri/src/text_insert.rs— wtype-based text insertion for Waylandsrc-tauri/src/sound.rs— Linux sound feedback via canberra-gtk-playflake.nix— Working nix build with CUDA, correct hashes, runtime wrappingTest plan
nix buildproduces working package