summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-01-30 15:26:56 -0600
committerCraig Jennings <c@cjennings.net>2026-01-30 15:26:56 -0600
commit1bca8a134da63dcaf31380b9dc11a4890e8302ab (patch)
treefde85d0f4abbc990597d48cf053c0bf13021a9b0
parentc99fe3b11cd3abe4364cbdb1de03f8d1d2d99919 (diff)
feat(archsetup): add hyprland plugins and migrate yt-dlp to pipx
Add Hyprland plugin section with hyprpm for hyprscrolling, xtra-dispatchers, and hy3. Migrate yt-dlp from pacman to pipx for current releases. Add deno as required JS runtime for YouTube extraction.
-rwxr-xr-xarchsetup29
-rw-r--r--assets/2026-01-30-yt-dlp-deno-requirement.md24
-rw-r--r--assets/2026-01-30-yt-dlp-pipx-migration.md32
3 files changed, 84 insertions, 1 deletions
diff --git a/archsetup b/archsetup
index 4b076f5..37b608d 100755
--- a/archsetup
+++ b/archsetup
@@ -1422,6 +1422,32 @@ hyprland() {
pacman_install nautilus # file manager
pacman_install sushi # nautilus spacebar file preview
aur_install nautilus-open-any-terminal # right-click "open in terminal" with configurable terminal
+
+ # Hyprland Plugins (via hyprpm)
+ # Plugins require compilation, so cmake must be installed first
+ action="Hyprland Plugins" && display "subtitle" "$action"
+ pacman_install cmake # required for plugin compilation
+
+ # Add plugin repositories and enable plugins (runs as user)
+ action="installing hyprland-plugins repository" && display "task" "$action"
+ (sudo -u "$username" hyprpm add https://github.com/hyprwm/hyprland-plugins --notify >> "$logfile" 2>&1) || \
+ error "warn" "$action" "$?"
+
+ action="enabling hyprscrolling plugin" && display "task" "$action"
+ (sudo -u "$username" hyprpm enable hyprscrolling >> "$logfile" 2>&1) || \
+ error "warn" "$action" "$?"
+
+ action="enabling xtra-dispatchers plugin" && display "task" "$action"
+ (sudo -u "$username" hyprpm enable xtra-dispatchers >> "$logfile" 2>&1) || \
+ error "warn" "$action" "$?"
+
+ action="installing hy3 repository" && display "task" "$action"
+ (sudo -u "$username" hyprpm add https://github.com/outfoxxed/hy3 --notify >> "$logfile" 2>&1) || \
+ error "warn" "$action" "$?"
+
+ action="enabling hy3 plugin" && display "task" "$action"
+ (sudo -u "$username" hyprpm enable hy3 >> "$logfile" 2>&1) || \
+ error "warn" "$action" "$?"
}
### Display Server (conditional)
@@ -1749,7 +1775,8 @@ developer_workstation() {
pacman_install python-lsp-server # python language support
pacman_install rlwrap # adds readline support to programs (SBCL-related)
pacman_install sdcv # stardict dictionary system
- pacman_install yt-dlp # video download
+ pacman_install deno # JS runtime for yt-dlp YouTube extraction
+ pipx_install yt-dlp # video download (pipx keeps it current)
action="setting up emacs configuration files" && display "task" "$action"
emacs_dir="/home/$username/.emacs.d"
diff --git a/assets/2026-01-30-yt-dlp-deno-requirement.md b/assets/2026-01-30-yt-dlp-deno-requirement.md
new file mode 100644
index 0000000..84e11fa
--- /dev/null
+++ b/assets/2026-01-30-yt-dlp-deno-requirement.md
@@ -0,0 +1,24 @@
+# Install deno for yt-dlp JavaScript runtime
+
+## Problem
+
+yt-dlp now requires a JavaScript runtime for full YouTube extraction. Without it, you get this warning:
+
+```
+WARNING: No supported JavaScript runtime could be found.
+YouTube extraction without a JS runtime has been deprecated, and some formats may be missing.
+```
+
+## Solution
+
+Install deno (the default supported runtime):
+
+```bash
+sudo pacman -S deno
+```
+
+## Why
+
+YouTube uses JavaScript for some format extraction. Without a JS runtime, yt-dlp may not be able to access all video formats or could fail on certain videos.
+
+See: https://github.com/yt-dlp/yt-dlp/wiki/EJS
diff --git a/assets/2026-01-30-yt-dlp-pipx-migration.md b/assets/2026-01-30-yt-dlp-pipx-migration.md
new file mode 100644
index 0000000..a128baa
--- /dev/null
+++ b/assets/2026-01-30-yt-dlp-pipx-migration.md
@@ -0,0 +1,32 @@
+# Change yt-dlp installation from pacman to pipx
+
+## Problem
+
+yt-dlp stopped working because the Arch repos were behind upstream. The pacman version was 2025.12.08 while the latest release was 2026.01.29 (7 weeks behind).
+
+yt-dlp updates frequently to keep up with site API changes, so being outdated often causes extraction failures.
+
+## Solution
+
+Install yt-dlp via pipx instead of pacman:
+
+```bash
+# Install pipx if not already installed
+sudo pacman -S python-pipx
+
+# Install yt-dlp via pipx
+pipx install yt-dlp
+
+# Remove the pacman version to avoid PATH conflicts
+sudo pacman -R yt-dlp
+```
+
+## Updating
+
+To update yt-dlp in the future:
+
+```bash
+pipx upgrade yt-dlp
+```
+
+This pulls directly from PyPI which stays current with upstream releases.