From 66e51474a166eef10765a946005476381ae5d19e Mon Sep 17 00:00:00 2001 From: The_miro Date: Fri, 26 Jun 2026 11:08:32 +0200 Subject: [PATCH] feat(apps): add OpenDeck + ydotool module Installs ydotool via pacman and OpenDeck via Flatpak, wires ydotoold and OpenDeck into the Hyprland autostart. Registers the module in the TUI installer, answerfile generator, and docs. Co-Authored-By: Claude Sonnet 4.6 --- desktopenvs/hyprlua/hypr/usr/autostart.lua | 2 ++ docs/md/modules.md | 1 + setup/generate-answerfile.sh | 1 + .../modules/optional-Modules/apps/opendeck.sh | 22 +++++++++++++++++++ setup/tui-install.sh | 4 ++++ 5 files changed, 30 insertions(+) create mode 100755 setup/modules/optional-Modules/apps/opendeck.sh diff --git a/desktopenvs/hyprlua/hypr/usr/autostart.lua b/desktopenvs/hyprlua/hypr/usr/autostart.lua index 09beef1..5617b06 100644 --- a/desktopenvs/hyprlua/hypr/usr/autostart.lua +++ b/desktopenvs/hyprlua/hypr/usr/autostart.lua @@ -22,4 +22,6 @@ hl.on("hyprland.start", function() hl.exec_cmd("hypridle") hl.exec_cmd("bash ~/Dotfiles/desktopenvs/hyprlua/scripts/presence-detect.sh") hl.exec_cmd("chamel") + hl.exec_cmd("ydotoold") + hl.exec_cmd("flatpak run com.mairtech.OpenDeck") end) diff --git a/docs/md/modules.md b/docs/md/modules.md index 639d7db..66c53ab 100644 --- a/docs/md/modules.md +++ b/docs/md/modules.md @@ -217,6 +217,7 @@ bash ~/Dotfiles/setup/install-modules.sh | `butter` | butter (AUR) | Btrfs snapshot backup manager | | `localsend` | localsend (AUR) | LAN file transfer (AirDrop-like) | | `croc` | croc | Cross-platform encrypted file transfer | +| `opendeck` | ydotool (pacman) · OpenDeck (Flatpak) | Stream Deck controller; ydotoold + OpenDeck added to Hyprland autostart | | `localtunnel` | localtunnel (npm) | Expose localhost over a public URL | | `onlyoffice` | onlyoffice-bin (AUR) | Office suite (Docs, Sheets, Slides) | diff --git a/setup/generate-answerfile.sh b/setup/generate-answerfile.sh index 9b70f1d..92777da 100644 --- a/setup/generate-answerfile.sh +++ b/setup/generate-answerfile.sh @@ -253,6 +253,7 @@ if [[ "$AF_RUN_TUI" == "true" ]]; then "stuntrally" "Stunt Rally rally racing game (Flatpak)" off \ "localsend" "LocalSend LAN file transfer (AUR)" off \ "croc" "croc cross-platform file transfer" off \ + "opendeck" "OpenDeck Stream Deck controller (Flatpak+ydotool)" off \ "onlyoffice" "OnlyOffice office suite (AUR)" off \ "xournal" "Xournal++ note-taking & PDF annotator" off \ "gimp" "GIMP GNU image manipulation program" off \ diff --git a/setup/modules/optional-Modules/apps/opendeck.sh b/setup/modules/optional-Modules/apps/opendeck.sh new file mode 100755 index 0000000..69fd4ac --- /dev/null +++ b/setup/modules/optional-Modules/apps/opendeck.sh @@ -0,0 +1,22 @@ +#!/bin/bash +set -euo pipefail +source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh" + +log "Installing ydotool (pacman)..." +sudo pacman -S --noconfirm --needed ydotool + +log "Installing OpenDeck (Flatpak)..." +ensure_flatpak +flatpak install -y flathub com.mairtech.OpenDeck + +log "Wiring ydotoold + OpenDeck into Hyprland autostart..." +AUTOSTART="$HOME/Dotfiles/desktopenvs/hyprlua/hypr/usr/autostart.lua" +if grep -q "ydotoold\|OpenDeck\|com.mairtech.OpenDeck" "$AUTOSTART"; then + skip "ydotoold/OpenDeck already present in autostart.lua — skipping." +else + # Insert before the closing end) so entries appear inside the on("hyprland.start") block + sed -i 's|^end)$| hl.exec_cmd("ydotoold")\n hl.exec_cmd("flatpak run com.mairtech.OpenDeck")\nend)|' "$AUTOSTART" + log "Autostart entries added." +fi + +log "OpenDeck + ydotool installed." diff --git a/setup/tui-install.sh b/setup/tui-install.sh index 461dcef..f6e3a27 100755 --- a/setup/tui-install.sh +++ b/setup/tui-install.sh @@ -194,6 +194,7 @@ count_steps() { [[ "$a" == *"stuntrally"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"localsend"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"croc"* ]] && TOTAL=$(( TOTAL + 1 )) + [[ "$a" == *"opendeck"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"onlyoffice"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"wireshark"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"k8s"* ]] && TOTAL=$(( TOTAL + 1 )) @@ -474,6 +475,7 @@ else "stuntrally" "Stunt Rally rally racing game (Flatpak)" off \ "localsend" "LocalSend LAN file transfer (AUR)" off \ "croc" "croc cross-platform file transfer" off \ + "opendeck" "OpenDeck Stream Deck controller (Flatpak+ydotool)" off \ "onlyoffice" "OnlyOffice office suite (AUR)" off \ "xournal" "Xournal++ note-taking & PDF annotator" off \ "gimp" "GIMP GNU image manipulation program" off \ @@ -584,6 +586,7 @@ if ! $ANSWERFILE_MODE; then [[ "$SELECTED_APPS" == *"stuntrally"* ]] && SUMMARY+=" ✦ Stunt Rally\n" [[ "$SELECTED_APPS" == *"localsend"* ]] && SUMMARY+=" ✦ LocalSend\n" [[ "$SELECTED_APPS" == *"croc"* ]] && SUMMARY+=" ✦ croc\n" + [[ "$SELECTED_APPS" == *"opendeck"* ]] && SUMMARY+=" ✦ OpenDeck + ydotool\n" [[ "$SELECTED_APPS" == *"onlyoffice"* ]] && SUMMARY+=" ✦ OnlyOffice\n" [[ "$SELECTED_APPS" == *"xournal"* ]] && SUMMARY+=" ✦ Xournal++\n" [[ "$SELECTED_APPS" == *"gimp"* ]] && SUMMARY+=" ✦ GIMP\n" @@ -702,6 +705,7 @@ fi [[ "$SELECTED_APPS" == *"stuntrally"* ]] && run_module "Stunt Rally" "$APPS/stuntrally.sh" [[ "$SELECTED_APPS" == *"localsend"* ]] && run_module "LocalSend" "$APPS/localsend.sh" [[ "$SELECTED_APPS" == *"croc"* ]] && run_module "croc" "$APPS/croc.sh" +[[ "$SELECTED_APPS" == *"opendeck"* ]] && run_module "OpenDeck" "$APPS/opendeck.sh" [[ "$SELECTED_APPS" == *"onlyoffice"* ]] && run_module "OnlyOffice" "$APPS/onlyoffice.sh" [[ "$SELECTED_APPS" == *"xournal"* ]] && run_module "Xournal++" "$APPS/xournal.sh" [[ "$SELECTED_APPS" == *"gimp"* ]] && run_module "GIMP" "$APPS/gimp.sh"