Add support for Thunar Qubes VM tools
This commit is contained in:
parent
589c32b1e3
commit
0fd109b8f1
2
Makefile
2
Makefile
@ -247,6 +247,8 @@ endif
|
||||
install qubes-rpc/qvm-copy-to-vm.gnome $(DESTDIR)$(LIBDIR)/qubes
|
||||
install qubes-rpc/qvm-move-to-vm.kde $(DESTDIR)$(LIBDIR)/qubes
|
||||
install qubes-rpc/qvm-move-to-vm.gnome $(DESTDIR)$(LIBDIR)/qubes
|
||||
install qubes-rpc/qvm-actions.sh $(DESTDIR)$(LIBDIR)/qubes
|
||||
install -m 0644 misc/uca_qubes.xml $(DESTDIR)$(LIBDIR)/qubes
|
||||
install qubes-rpc/xdg-icon $(DESTDIR)$(LIBDIR)/qubes
|
||||
install qubes-rpc/{vm-file-editor,qfile-agent,qopen-in-vm} $(DESTDIR)$(LIBDIR)/qubes
|
||||
install qubes-rpc/qubes-open $(DESTDIR)$(BINDIR)
|
||||
|
72
misc/uca_qubes.xml
Normal file
72
misc/uca_qubes.xml
Normal file
@ -0,0 +1,72 @@
|
||||
<action>
|
||||
<icon>folder-copy</icon>
|
||||
<name>Copy to VM</name>
|
||||
<unique-id>1507455450991127-4</unique-id>
|
||||
<command>/usr/lib/qubes/qvm-actions.sh copy %F</command>
|
||||
<description></description>
|
||||
<patterns>*</patterns>
|
||||
<directories/>
|
||||
<audio-files/>
|
||||
<image-files/>
|
||||
<other-files/>
|
||||
<text-files/>
|
||||
<video-files/>
|
||||
</action>
|
||||
<action>
|
||||
<icon>folder-move</icon>
|
||||
<name>Move to VM</name>
|
||||
<unique-id>1507455437157027-3</unique-id>
|
||||
<command>/usr/lib/qubes/qvm-actions.sh move %F</command>
|
||||
<description></description>
|
||||
<patterns>*</patterns>
|
||||
<directories/>
|
||||
<audio-files/>
|
||||
<image-files/>
|
||||
<other-files/>
|
||||
<text-files/>
|
||||
<video-files/>
|
||||
</action>
|
||||
<action>
|
||||
<icon>document-open</icon>
|
||||
<name>Open in VM</name>
|
||||
<unique-id>1507455471075266-5</unique-id>
|
||||
<command>/usr/lib/qubes/qvm-actions.sh openvm %F</command>
|
||||
<description></description>
|
||||
<patterns>*</patterns>
|
||||
<audio-files/>
|
||||
<image-files/>
|
||||
<other-files/>
|
||||
<text-files/>
|
||||
<video-files/>
|
||||
</action>
|
||||
<action>
|
||||
<icon>gtk-convert</icon>
|
||||
<name>Convert in DisposableVM</name>
|
||||
<unique-id>1507455488971315-6</unique-id>
|
||||
<command>/usr/lib/qubes/qvm-actions.sh p %F</command>
|
||||
<description></description>
|
||||
<patterns>*.pdf</patterns>
|
||||
<other-files/>
|
||||
</action>
|
||||
<action>
|
||||
<icon>gtk-convert</icon>
|
||||
<name>Convert in DisposableVM</name>
|
||||
<unique-id>1507455503129941-7</unique-id>
|
||||
<command>/usr/lib/qubes/qvm-actions.sh img %F</command>
|
||||
<description></description>
|
||||
<patterns>*</patterns>
|
||||
<image-files/>
|
||||
</action>
|
||||
<action>
|
||||
<icon>document-open</icon>
|
||||
<name>Open in DisposableVM</name>
|
||||
<unique-id>1507455559234996-8</unique-id>
|
||||
<command>/usr/lib/qubes/qvm-actions.sh opendvm %F</command>
|
||||
<description></description>
|
||||
<patterns>*</patterns>
|
||||
<audio-files/>
|
||||
<image-files/>
|
||||
<other-files/>
|
||||
<text-files/>
|
||||
<video-files/>
|
||||
</action>
|
51
qubes-rpc/qvm-actions.sh
Executable file
51
qubes-rpc/qvm-actions.sh
Executable file
@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Allow us to handle filenames with spaces using newline separator from Thunar
|
||||
IFS='
|
||||
'
|
||||
|
||||
# Check if at least two arguments are provided: actions + file(s)
|
||||
if [ "$#" -le 1 ]; then
|
||||
echo "Not enough arguments provided. Aborting..."
|
||||
fi
|
||||
|
||||
# File(s)
|
||||
files=${*:2}
|
||||
|
||||
# copy and move handle a list of files where other actions don't
|
||||
case $1 in
|
||||
copy)
|
||||
qvm-copy-to-vm '$default' $files | zenity --notification --text="Copying files..." --timeout 3
|
||||
;;
|
||||
move)
|
||||
qvm-move-to-vm '$default' $files | zenity --notification --text="Moving files..." --timeout 3
|
||||
;;
|
||||
img)
|
||||
for file in $files
|
||||
do
|
||||
/usr/lib/qubes/qvm-convert-img.gnome $file
|
||||
done
|
||||
;;
|
||||
pdf)
|
||||
for file in $files
|
||||
do
|
||||
/usr/lib/qubes/qvm-convert-pdf.gnome $file
|
||||
done
|
||||
;;
|
||||
openvm)
|
||||
for file in $files
|
||||
do
|
||||
qvm-open-in-vm '$default' $file | zenity --notification --text "Opening $file in VM..." --timeout 3 &
|
||||
done
|
||||
;;
|
||||
opendvm)
|
||||
for file in $files
|
||||
do
|
||||
qvm-open-in-dvm $files | zenity --notification --text "Opening $file in DisposableVM..." --timeout 3 &
|
||||
done
|
||||
;;
|
||||
*)
|
||||
echo "Unknown action. Aborting..."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
@ -268,6 +268,13 @@ switching from user to root. Since all the user data in a VM is accessible
|
||||
already from normal user account, there is not much more to guard there. Qubes
|
||||
VM is a single user system.
|
||||
|
||||
%package thunar
|
||||
Summary: Thunar support for Qubes VM tools
|
||||
Requires: Thunar
|
||||
|
||||
%description thunar
|
||||
Thunar support for Qubes VM tools
|
||||
|
||||
%define _builddir %(pwd)
|
||||
|
||||
%define kde_service_dir /usr/share/kde4/services
|
||||
@ -463,6 +470,22 @@ sed 's/^net.ipv4.ip_forward.*/#\0/' -i /etc/sysctl.conf
|
||||
%post qrexec
|
||||
%systemd_post qubes-qrexec-agent.service
|
||||
|
||||
%post thunar
|
||||
# There is no system-wide Thunar custom actions. There is only a default
|
||||
# file and a user file created from the default one. Qubes actions need
|
||||
# to be placed after all already defined actions and before </actions>
|
||||
# the end of file.
|
||||
if [ "$1" = 1 ]; then
|
||||
if [ -f /etc/xdg/Thunar/uca.xml ] ; then
|
||||
cp -p /etc/xdg/Thunar/uca.xml{,.bak}
|
||||
sed -i '$e cat /usr/lib/qubes/uca_qubes.xml' /etc/xdg/Thunar/uca.xml
|
||||
fi
|
||||
if [ -f /home/user/.config/Thunar/uca.xml ] ; then
|
||||
cp -p /home/user/.config/Thunar/uca.xml{,.bak}
|
||||
sed -i '$e cat /usr/lib/qubes/uca_qubes.xml' /home/user/.config/Thunar/uca.xml
|
||||
fi
|
||||
fi
|
||||
|
||||
%preun
|
||||
if [ "$1" = 0 ] ; then
|
||||
# no more packages left
|
||||
@ -484,6 +507,18 @@ fi
|
||||
%preun qrexec
|
||||
%systemd_preun qubes-qrexec-agent.service
|
||||
|
||||
%postun thunar
|
||||
if [ "$1" = 0 ]; then
|
||||
if [ -f /etc/xdg/Thunar/uca.xml ] ; then
|
||||
mv /etc/xdg/Thunar/uca.xml{,.uninstall}
|
||||
mv /etc/xdg/Thunar/uca.xml{.bak,}
|
||||
fi
|
||||
if [ -f /home/user/.config/Thunar/uca.xml ] ; then
|
||||
mv /home/user/.config/Thunar/uca.xml{,.uninstall}
|
||||
mv /home/user/.config/Thunar/uca.xml{.bak,}
|
||||
fi
|
||||
fi
|
||||
|
||||
%postun
|
||||
if [ $1 -eq 0 ] ; then
|
||||
/usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
|
||||
@ -674,6 +709,10 @@ rm -f %{name}-%{version}
|
||||
/usr/share/nautilus-python/extensions/qvm_move_nautilus.py*
|
||||
/usr/share/nautilus-python/extensions/qvm_dvm_nautilus.py*
|
||||
|
||||
%files thunar
|
||||
/usr/lib/qubes/qvm-actions.sh
|
||||
/usr/lib/qubes/uca_qubes.xml
|
||||
|
||||
%files dom0-updates
|
||||
%dir %attr(0775,user,user) /var/lib/qubes/dom0-updates
|
||||
/usr/lib/qubes/qubes-download-dom0-updates.sh
|
||||
|
Loading…
Reference in New Issue
Block a user