From 6fcff83ce6134d25cf073ce5817cb326dbf2f4c3 Mon Sep 17 00:00:00 2001 From: Remco Ros Date: Sat, 10 Feb 2024 22:11:10 +0000 Subject: [PATCH] several improvements: - handle opening urls with a desktop notification, allowing the user to copy it to the clipboard - move autostart/menu.xml/rc.xml to system folder, allowing updates to these files without clearing the user config folder - since we dont use gpu accel, remove unused video driver packages --- Dockerfile | 27 +++++++++++++++------ Dockerfile.aarch64 | 27 +++++++++++++++------ docker_entrypoint.sh | 8 +++--- root/defaults/autostart | 11 +-------- root/etc/xdg/openbox/autostart | 9 +++++++ root/{defaults => etc/xdg/openbox}/menu.xml | 0 root/{defaults => etc/xdg/openbox}/rc.xml | 3 ++- root/usr/bin/showurl | 8 ++++++ root/usr/share/applications/showurl.desktop | 5 ++++ 9 files changed, 69 insertions(+), 29 deletions(-) create mode 100644 root/etc/xdg/openbox/autostart rename root/{defaults => etc/xdg/openbox}/menu.xml (100%) rename root/{defaults => etc/xdg/openbox}/rc.xml (99%) create mode 100755 root/usr/bin/showurl create mode 100644 root/usr/share/applications/showurl.desktop diff --git a/Dockerfile b/Dockerfile index 2295b2f..2c17a22 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,10 +22,15 @@ RUN \ # from 'recommended packages', solves a few warnings thunar-archive-plugin \ librsvg2-common \ - notification-daemon \ python3-xdg \ # dark theme + hsetroot \ gnome-themes-extra \ + # desktop notifications + xfce4-notifyd \ + libnotify-bin \ + notification-daemon \ + xclip \ # other wget \ socat \ @@ -42,6 +47,14 @@ RUN \ docker-compose-plugin \ fonts-noto-color-emoji \ fonts-noto-core \ + intel-media-va-driver \ + mesa-va-drivers \ + xserver-xorg-video-amdgpu \ + xserver-xorg-video-ati \ + xserver-xorg-video-intel \ + xserver-xorg-video-nouveau \ + xserver-xorg-video-qxl \ + xserver-xorg-video-radeon \ perl \ locales-all && \ # remove left-over locales and generate default @@ -75,9 +88,9 @@ RUN \ mkdir -p /usr/share/desktop-directories/ && \ # Download and install Sparrow (todo: gpg sig verification) wget --quiet https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow_${SPARROW_DEBVERSION}_${PLATFORM}.deb \ - https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow-${SPARROW_VERSION}-manifest.txt \ - https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow-${SPARROW_VERSION}-manifest.txt.asc \ - https://keybase.io/craigraw/pgp_keys.asc && \ + https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow-${SPARROW_VERSION}-manifest.txt \ + https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow-${SPARROW_VERSION}-manifest.txt.asc \ + https://keybase.io/craigraw/pgp_keys.asc && \ # verify pgp and sha signatures gpg --import pgp_keys.asc && \ gpg --status-fd 1 --verify sparrow-${SPARROW_VERSION}-manifest.txt.asc | grep -q "GOODSIG ${SPARROW_PGP_SIG} Craig Raw " || exit 1 && \ @@ -116,7 +129,9 @@ ENV \ NVIDIA_DRIVER_CAPABILITIES=all \ # set dark theme GTK_THEME=Adwaita:dark \ - GTK2_RC_FILES=/usr/share/themes/Adwaita-dark/gtk-2.0/gtkrc + GTK2_RC_FILES=/usr/share/themes/Adwaita-dark/gtk-2.0/gtkrc \ + # prevent kasm from touching our rc.xml + NO_FULL=1 # add local files COPY /root / @@ -127,5 +142,3 @@ COPY --chmod=664 icon.png /kclient/public/favicon.ico # ports and volumes EXPOSE 3000 VOLUME /config - -ENTRYPOINT ["/init"] diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index a1021c5..67db654 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -22,10 +22,15 @@ RUN \ # from 'recommended packages', solves a few warnings thunar-archive-plugin \ librsvg2-common \ - notification-daemon \ python3-xdg \ # dark theme + hsetroot \ gnome-themes-extra \ + # desktop notifications + xfce4-notifyd \ + libnotify-bin \ + notification-daemon \ + xclip \ # other wget \ socat \ @@ -42,6 +47,14 @@ RUN \ docker-compose-plugin \ fonts-noto-color-emoji \ fonts-noto-core \ + intel-media-va-driver \ + mesa-va-drivers \ + xserver-xorg-video-amdgpu \ + xserver-xorg-video-ati \ + xserver-xorg-video-intel \ + xserver-xorg-video-nouveau \ + xserver-xorg-video-qxl \ + xserver-xorg-video-radeon \ perl \ locales-all && \ # remove left-over locales and generate default @@ -75,9 +88,9 @@ RUN \ mkdir -p /usr/share/desktop-directories/ && \ # Download and install Sparrow (todo: gpg sig verification) wget --quiet https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow_${SPARROW_DEBVERSION}_${PLATFORM}.deb \ - https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow-${SPARROW_VERSION}-manifest.txt \ - https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow-${SPARROW_VERSION}-manifest.txt.asc \ - https://keybase.io/craigraw/pgp_keys.asc && \ + https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow-${SPARROW_VERSION}-manifest.txt \ + https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow-${SPARROW_VERSION}-manifest.txt.asc \ + https://keybase.io/craigraw/pgp_keys.asc && \ # verify pgp and sha signatures gpg --import pgp_keys.asc && \ gpg --status-fd 1 --verify sparrow-${SPARROW_VERSION}-manifest.txt.asc | grep -q "GOODSIG ${SPARROW_PGP_SIG} Craig Raw " || exit 1 && \ @@ -116,7 +129,9 @@ ENV \ NVIDIA_DRIVER_CAPABILITIES=all \ # set dark theme GTK_THEME=Adwaita:dark \ - GTK2_RC_FILES=/usr/share/themes/Adwaita-dark/gtk-2.0/gtkrc + GTK2_RC_FILES=/usr/share/themes/Adwaita-dark/gtk-2.0/gtkrc \ + # prevent kasm from touching our rc.xml + NO_FULL=1 # add local files COPY /root / @@ -127,5 +142,3 @@ COPY --chmod=664 icon.png /kclient/public/favicon.ico # ports and volumes EXPOSE 3000 VOLUME /config - -ENTRYPOINT ["/init"] diff --git a/docker_entrypoint.sh b/docker_entrypoint.sh index fc0e2e7..68fa4ef 100755 --- a/docker_entrypoint.sh +++ b/docker_entrypoint.sh @@ -29,10 +29,10 @@ data: EOF # Copy default files -if [ ! -f /config/.config/openbox/rc.xml ]; then - mkdir -p /config/.config/openbox - cp /defaults/rc.xml /config/.config/openbox/rc.xml - chown -R $PUID:$PGID /config/.config/openbox +if [ ! -f /config/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml ]; then + mkdir -p /config/.config/xfce4/xfconf/xfce-perchannel-xml + cp /defaults/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml /config/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml + chown -R $PUID:$PGID /config/.config/xfce4 fi if [ ! -f /config/.sparrow/config ]; then diff --git a/root/defaults/autostart b/root/defaults/autostart index e8085ca..cc03e0b 100755 --- a/root/defaults/autostart +++ b/root/defaults/autostart @@ -1,10 +1 @@ -# default file copies first run -if [ ! -f $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml ]; then - mkdir -p $HOME/.config/xfce4/xfconf/xfce-perchannel-xml - cp /defaults/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml -fi - -# open files and directories with thunar (file manager) -xdg-mime default thunar.desktop inode/directory - -/opt/sparrow/bin/Sparrow & +/opt/sparrow/bin/Sparrow diff --git a/root/etc/xdg/openbox/autostart b/root/etc/xdg/openbox/autostart new file mode 100644 index 0000000..556d546 --- /dev/null +++ b/root/etc/xdg/openbox/autostart @@ -0,0 +1,9 @@ +# open files and directories with thunar (file manager) +xdg-mime default thunar.desktop inode/directory + +# open URL's with our custom handler +xdg-settings set default-web-browser showurl.desktop +xdg-mime default showurl.desktop x-scheme-handler/http x-scheme-handler/https + +# set desktop background color +hsetroot -solid "#181818" 2> /dev/null diff --git a/root/defaults/menu.xml b/root/etc/xdg/openbox/menu.xml similarity index 100% rename from root/defaults/menu.xml rename to root/etc/xdg/openbox/menu.xml diff --git a/root/defaults/rc.xml b/root/etc/xdg/openbox/rc.xml similarity index 99% rename from root/defaults/rc.xml rename to root/etc/xdg/openbox/rc.xml index 64eaab2..9489325 100644 --- a/root/defaults/rc.xml +++ b/root/etc/xdg/openbox/rc.xml @@ -669,8 +669,9 @@ - menu.xml + + /etc/xdg/openbox/menu.xml 200 diff --git a/root/usr/bin/showurl b/root/usr/bin/showurl new file mode 100755 index 0000000..7ba351f --- /dev/null +++ b/root/usr/bin/showurl @@ -0,0 +1,8 @@ +#!/usr/bin/bash + +URL="$1" +RESULT=$(notify-send -i /usr/share/icons/Adwaita/scalable/legacy/web-browser-symbolic.svg "Open URL requested:" "$URL" -A "copy=Copy to clipboard" -A "close=Close" -w) + +if [ "$RESULT" == "copy" ]; then + echo $URL | xclip -selection clipboard +fi diff --git a/root/usr/share/applications/showurl.desktop b/root/usr/share/applications/showurl.desktop new file mode 100644 index 0000000..eff10e2 --- /dev/null +++ b/root/usr/share/applications/showurl.desktop @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Application +Name=Show URL +Exec=/usr/bin/showurl %u +StartupNotify=false