Recent releases of Fedora do not package devilspie2 because the packager retired and no one has stepped up to take their place, and therefore it is not available in dom0 through the regular channel. The downstream program is still maintained, though. I use devilspie2 fairly extensively to isolate VMs to workspaces, manipulate window placement and geometry, help launch apps- so I wanted it back in 4.3.
devilspie2 in dom0:Download & install one of the 'recent' RPMs available here:
https://koji.fedoraproject.org/koji/packageinfo?packageID=19633
I tried the one for fc38 and it worked in dom0's fc41. But the source of these RPMs is 3+ years old and there have been a fair number of changes to devilspie2 in the meantime.
devilspie2 in dom0:Build and install HEAD of the source repo (caveat emptor) https://savannah.nongnu.org/git/?group=devilspie2
Or, the most recent release: http://download.savannah.nongnu.org/releases/devilspie2/devilspie2_0.45-src.tar.gz
Probably best to build the binary in Fedora 41, as dom0 runs Fedora 41 and I want to sidestep any runtime library/linking issues.1 And maybe it would be useful into the future to have available a build/test template that roughly matches dom0. The fedora-41 templates are obsolete and unavailable in 4.3, but still installable in 4.2.
Steps:
- Append to /etc/qubes/repo-templates/qubes-templates.repo (temporarily):
[qubes-templates-itl-42]
name = Qubes Templates repository 4.2
# if using sys-whonix as updatevm
baseurl = http://yum.qubesosfasa4zl44o4tws22di6kepyzfeqv3tg4e3ztknltfxqrymdad.onion/r4.2/templates-itl
# otherwise:
# baseurl = https://yum.qubes-os.org/r4.2/templates-itl
enabled = 1
fastestmirror = 1
metadata_expire = 7d
gpgcheck = 1
gpgkey = file:///etc/qubes/repo-templates/keys/RPM-GPG-KEY-qubes-4.2-primary
[user@dom0 ~]$ qvm-template --refresh list
# (everything looks ok, fedora-41 templates now available from the 4.2 repo)
- [user@dom0 ~]$ qvm-template install fedora-41-xfce
# wait.
- (Now remove or comment out the [qubes-templates-itl-42] repo we added, as we aren't going to need it again)
- [user@dom0 ~]$ qubes-vm-update --force-update --targets fedora-41-xfce
# (expect a long upgrade)
- Create a new network-accessing qube based on fedora-41-xfce:
[user@dom0 ~]$ qvm-create --class AppVM --template fedora-41-xfce --label red build-devilspie2
Then, on the VM:
# Install build deps named in the README
[user@build-devilspie2 ~]$ sudo dnf install --assumeyes pkgconf-pkg-config glib2-devel lua-devel libwnck3-devel gtk3-devel gettext gettext-devel libXrandr libXrandr-devel
# ...
# Get the devilspie2 source code.
# Could use devilspie2_0.45-src.tar.gz linked above, or HEAD:
[user@build-devilspie2 ~]$ git clone --depth 1 https://https.git.savannah.gnu.org/git/devilspie2.git
# ...
# Build the binary:
[user@build-devilspie2 ~]$ cd devilspie2 && make
Transfer the binary to dom0 (caveat emptor), put it somewhere that makes sense.
[user@dom0 ~]$ qvm-run -p build-devilspie2 'cat devilspie2/bin/devilspie2' > ./devilspie2
[user@dom0 ~]$ chmod u+x devilspie2
Create an entry for it in System Settings -> Session and Startup -> Application Autostart. Or create a file like this:
/home/user/.config/autostart/devilspie2.desktop:
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=devilspie2
Comment=
Exec=/PATH/TO/devilspie2
OnlyShowIn=XFCE;
RunHook=0
StartupNotify=false
Terminal=false
Hidden=false
But see the post below by @renehoj; no Fedora 41 required. ↩