diff --git a/flake.nix b/flake.nix index 7aa3517..a5899d4 100644 --- a/flake.nix +++ b/flake.nix @@ -38,12 +38,6 @@ url = "github:ghostty-org/ghostty"; }; - # Speech to text - handy = { - url = "github:cjpais/Handy"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - # Shell / Launcher vicinae.url = "github:vicinaehq/vicinae"; diff --git a/hosts/galleria/nixos.nix b/hosts/galleria/nixos.nix index 6ce065a..48289ce 100644 --- a/hosts/galleria/nixos.nix +++ b/hosts/galleria/nixos.nix @@ -8,6 +8,13 @@ boot.initrd.luks.devices.cryptroot.device = "/dev/disk/by-partuuid/04295552-cbb8-4511-ac1e-1171ec20f8d1"; + # Keep Windows data and recovery partitions out of UDisks-based file + # managers. The shared EFI System Partition stays available as /boot. + services.udev.extraRules = '' + ENV{ID_PART_ENTRY_UUID}=="0480f887-d1f9-489d-b8fe-78549ced1938", ENV{UDISKS_IGNORE}="1" + ENV{ID_PART_ENTRY_UUID}=="6c70041b-3f65-4eb1-8b08-18ed20001877", ENV{UDISKS_IGNORE}="1" + ''; + environment.systemPackages = with inputs.browser-previews.packages.${pkgs.system}; [ google-chrome-beta ]; diff --git a/modules/applications/handy/darwin.nix b/modules/applications/handy/darwin.nix deleted file mode 100644 index 84ac6a8..0000000 --- a/modules/applications/handy/darwin.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - homebrew.casks = [ "handy" ]; - - launchd.agents.handy = { - command = "/usr/bin/open -gja Handy --args --start-hidden"; - serviceConfig.RunAtLoad = true; - }; -} diff --git a/modules/applications/handy/home/nixos.nix b/modules/applications/handy/home/nixos.nix deleted file mode 100644 index f8d8ef4..0000000 --- a/modules/applications/handy/home/nixos.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ - config, - inputs, - lib, - pkgs, - ... -}: -let - handy = inputs.handy.packages.${pkgs.stdenv.hostPlatform.system}.handy; - settingsFile = "${config.xdg.configHome}/com.pais.handy/settings_store.json"; -in -{ - home.packages = [ - handy - pkgs.wtype - ]; - - # Handy has no disabled-shortcut setting. Empty bindings are rejected before - # registration, leaving niri and labwc as the sole owners of Ctrl+Space. - home.activation.disableHandyGlobalShortcuts = { - after = [ "writeBoundary" ]; - before = [ ]; - data = '' - settingsFile=${lib.escapeShellArg settingsFile} - mkdir -p "$(dirname "$settingsFile")" - - if [ -f "$settingsFile" ]; then - ${lib.getExe pkgs.jq} \ - '.settings.bindings.transcribe.current_binding = "" - | .settings.bindings.transcribe_with_post_process.current_binding = ""' \ - "$settingsFile" > "$settingsFile.tmp" - else - ${lib.getExe pkgs.jq} -n ' - { - settings: { - bindings: { - transcribe: { - id: "transcribe", - name: "Transcribe", - description: "Converts your speech into text.", - default_binding: "ctrl+space", - current_binding: "" - }, - transcribe_with_post_process: { - id: "transcribe_with_post_process", - name: "Transcribe with Post-Processing", - description: "Converts your speech into text and applies AI post-processing.", - default_binding: "ctrl+shift+space", - current_binding: "" - } - } - } - } - ' > "$settingsFile.tmp" - fi - - mv "$settingsFile.tmp" "$settingsFile" - ''; - }; - - systemd.user.services.handy = { - Unit = { - Description = "Handy speech-to-text"; - After = [ "graphical-session.target" ]; - PartOf = [ "graphical-session.target" ]; - }; - Service = { - ExecStart = "${lib.getExe handy} --start-hidden"; - Restart = "on-failure"; - RestartSec = 5; - }; - Install.WantedBy = [ "graphical-session.target" ]; - }; -} diff --git a/modules/applications/handy/meta.nix b/modules/applications/handy/meta.nix deleted file mode 100644 index 4e78283..0000000 --- a/modules/applications/handy/meta.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - description = "Handy offline speech-to-text"; -} diff --git a/modules/applications/labwc/home.nix b/modules/applications/labwc/home.nix index 6dab1a9..cb3c7a2 100644 --- a/modules/applications/labwc/home.nix +++ b/modules/applications/labwc/home.nix @@ -128,7 +128,6 @@ in (execute "W-space" "ghostty +toggle-quick-terminal") (execute "W-p" "wdisplays") (execute "W-z" "wl-find-cursor -c 0xCCFF453A -s 160 -d 1200") - (execute "C-space" "handy --toggle-transcription") # Function keys (sync with niri modules/applications/niri/home.nix) (execute "XF86AudioRaiseVolume" "noctalia msg volume-up") diff --git a/modules/applications/niri/home/nixos.nix b/modules/applications/niri/home/nixos.nix index 07ec535..966e3ae 100644 --- a/modules/applications/niri/home/nixos.nix +++ b/modules/applications/niri/home/nixos.nix @@ -151,13 +151,6 @@ in ]; hotkey-overlay.title = "Find Cursor"; }; - "Ctrl+Space" = { - action.spawn = [ - "handy" - "--toggle-transcription" - ]; - hotkey-overlay.title = "Toggle Handy Transcription"; - }; # Function keys (sync with labwc modules/applications/labwc/home.nix) "XF86AudioRaiseVolume".action.spawn = [ diff --git a/modules/profiles/README.md b/modules/profiles/README.md index 45e8803..62fedb2 100644 --- a/modules/profiles/README.md +++ b/modules/profiles/README.md @@ -63,13 +63,6 @@ enables performance improvements, synced lyrics, tracker blocking, the album color theme, and custom output-device selection while preserving user-owned settings such as the selected device. -`workload.personal` also provides Handy for offline speech-to-text. It starts -hidden when the graphical session begins. On niri and labwc, `Ctrl+Space` is -owned by the compositor and invokes Handy's `--toggle-transcription` command; -Handy's own shortcut bindings are disabled on NixOS so it does not monitor -keyboard events under Wayland. Handy uses the Homebrew cask and starts at login -on macOS. - `workload.personal` provides ActivityWatch for local activity tracking. On NixOS, its server and Wayland-compatible watcher run as Home Manager user services. On macOS, the Homebrew cask starts at login. diff --git a/modules/profiles/workload/personal/meta.nix b/modules/profiles/workload/personal/meta.nix index 25d18a7..d08565a 100644 --- a/modules/profiles/workload/personal/meta.nix +++ b/modules/profiles/workload/personal/meta.nix @@ -7,7 +7,6 @@ "applications.chrome" "applications.discord" "applications.gnome-text-editor" - "applications.handy" "applications.kde" "applications.moonlight" "applications.slack"