Making my HTPC easier for non-technical people to use
I have a Ubuntu 16.04 instance (I'm not proud) because at the time, Kodi only
supported 16.04 of the Ubuntu family and I didn't feel like compiling it
myself on another platform, or depending on prebuilt binaries (if that's even
an option). I ended up not really liking the 10-foot interface that Kodi had
to offer (as well as it seemed to really stink at populating its indices of my
own local content!), and I really like the paradigm of a desktop environment
with traditional file manager and media player programs. So I will reimage the
system with Devuan at some point, but that's another day's problem. One of the
little issues that I have discovered somehow between PulseAudio and HDMI is
that upon each boot, the default audio out is the built-in speakers in the
computer case. I have to manually adjust pavucontrol to set it to be the HDMI
out audio that sends it to the big screen. I decided to automate this so
others don't have to know what option to select on what tab in what program,
in order to get the sound to goto the TV. I remember (fondly, actually) my
automation days in obsolete, proprietary OSes using
AutoHotKey. A great way to simulate key presses
in X11 (because Wayland seems as scary as systemd or pulseaudio) is to use
xdotool (which I've written about
before). Using my tried-and-true
desktop-file-calls-shell-script method, I have whipped up a nice desktop icon
for the user to call after first logging in.
[Desktop Entry]
Name=Output audio to HDMI
Exec=/home/kodi/bin/set-sound.sh
Type=Application
StartupNotify=true
Path=/home/kodi
Icon=multimedia-volume-control
StartupWMClass=pavucontrol
Terminal=true
Comment=Configures pulseaudio to send audio to HDMI automatically
And the shell script:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
The hard part of course was finding how to notate the different keystrokes
very precisely, with the capitalization and special characters.
Auxiliary info and asides
Pro tip: Don't ever configure "Alt+F4" in an xdotool script, especially when you load it up into ~/.config/autostart, and not bound to a specific window class. I really messed up the Xfce session almost permanently because I magically closed out xfwm, xfdesktop, and I think even xfpanel. That was embarrassing, big-time. Took me a while to even figure out what I had done. I couldn't figure out how to use the "search" window stack population function of xdotool, to identify the pavucontrol window, so I couldn't restrict my simulated keypresses to just pavucontrol. I also learned later that when the terminal window running the shell script is terminated, it kills even the backgrounded job of pavucontrol, so no ALT+F4 was required.
Comments