Has anyone installed i3wm 4.22

Has anyone been able to successfully install or build i3-4.22 ?

I tried several times. There is this: GitHub - QubesOS/qubes-desktop-linux-i3: qubes rpm for i3
Last time I checked it still was 4.21 and a pull request for 4.22 from Jan 23. It looks like it got merged on April 10th. But I did not try yet to install this. Let me know if you succeed. I didn’t.

You need to build it using qubes-builder.

Here’s how to do it:

  • Clone the qubes-builder repo to a qube of your choice (based on fedora, in /home/user/):
    git clone https://github.com/QubesOS/qubes-builder
    
  • Install needed dependencies:
    sudo dnf install git createrepo rpm-build rpm-sign debootstrap devscripts dpkg-dev make python3-sh rpmdevtools rpm-sign dialog perl-open python3-pyyaml perl-Digest-MD5 perl-Digest-SHA systemd-container
    
  • Create a builder.conf file with this content inside:
    RELEASE := 4.1
    include example-configs/qubes-os-r$(RELEASE).conf
    
    # adjust/uncomment these to build from different branches/repos
    # master branch builds kernel-latest pkgs,
    #  bleeding edge and avoids wrecking your stable kernels
    BRANCH_desktop_linux_i3 = main
    
    # adjust these for building different pkgs/targets
    # you have to manually resolve the dependencies!
    COMPONENTS = desktop-linux-i3 desktop-linux-i3-settings-qubes builder-rpm
    DISTS_VM = ""
    
    # mostly needed for kernel builds
    USE_QUBES_REPO_VERSION = $(RELEASE)
    
  • Get sources:
    make get-sources
    
  • Remount filesystem
    make remount
    
  • Build desktop-linux-i3 and desktop-linux-i3-settings-qubes:
    make desktop-linux-i3 desktop-linux-i3-settings-qubes
    
  • Send the files to dom0 (execute in a dom0 terminal):
    qvm-run --pass-io VMNAME 'cat /home/user/qubes-builder/qubes-src/desktop-linux-i3/pkgs/dom0-fc32/x86_64/i3-4.22-1.fc32.x86_64.rpm' > i3-4.22-1.fc32.x86_64.rpm
    qvm-run --pass-io VMNAME 'cat /home/user/qubes-builder/qubes-src/desktop-linux-i3-settings-qubes/pkgs/dom0-fc32/x86_64/i3-settings-qubes-1.10-1.fc32.x86_64.rpm' > i3-settings-qubes-1.10-1.fc32.x86_64.rpm
    
  • Install in dom0:
    sudo dnf install i3-4.22-1.fc32.x86_64.rpm i3-settings-qubes-1.10-1.fc32.x86_64.rpm
    
2 Likes

Well if you know, you know. That worked like a charm. Thanks again for wrapping this up.

1 Like

Do you know, if this should be available on qubes 4.2? I to build it in a fedora-38 qube (with RELEASE := 4.2 and everything else as you wrote it), but I got some errors.

Can you share the errors? I’m not using 4.2 yet, so I don’t know if it’s currently supported on it (it should but we never know).

Here are the logs. (I used a dvm fedora 38 qube)

Initial setup

[user@default-dvm qubes-builder]$ history
    1  cat /etc/os-release 
    2  git clone https://github.com/QubesOS/qubes-builder
    3  sudo dnf install git createrepo rpm-build rpm-sign debootstrap devscripts dpkg-dev make python3-sh rpmdevtools rpm-sign dialog perl-open python3-pyyaml perl-Digest-MD5 perl-Digest-SHA systemd-container
    4  cd qubes-builder/
    5  history
[user@default-dvm qubes-builder]$ 

builder.conf in correct directory:

[user@default-dvm qubes-builder]$ cat builder.conf 
RELEASE := 4.2
include example-configs/qubes-os-r$(RELEASE).conf

# adjust/uncomment these to build from different branches/repos
# master branch builds kernel-latest pkgs,
#  bleeding edge and avoids wrecking your stable kernels
BRANCH_desktop_linux_i3 = main

# adjust these for building different pkgs/targets
# you have to manually resolve the dependencies!
COMPONENTS = desktop-linux-i3 desktop-linux-i3-settings-qubes builder-rpm
DISTS_VM = ""

# mostly needed for kernel builds
USE_QUBES_REPO_VERSION = $(RELEASE)
[user@default-dvm qubes-builder]$ 

make get-sources

[user@default-dvm qubes-builder]$ make get-sources
-> Updating sources for builder-rpm...
--> Fetching from https://github.com/QubesOS/qubes-builder-rpm.git main...
--> Verifying tags...
gpg: keybox '/home/user/qubes-builder/keyrings/git/builder-rpm/pubring.kbx' created
gpg: /home/user/qubes-builder/keyrings/git/builder-rpm/trustdb.gpg: trustdb created
gpg: key DDFA1A3E36879494: public key "Qubes Master Signing Key" imported
gpg: key 063938BA42CFA724: public key "Marek Marczykowski-Górecki (Qubes OS signing key) <marmarek@invisiblethingslab.com>" imported
gpg: key DA0434BC706E1FCF: public key "Simon Gaiser (Qubes OS signing key) <simon@invisiblethingslab.com>" imported
gpg: Total number processed: 3
gpg:               imported: 3
gpg: no ultimately trusted keys found
gpg: inserting ownertrust of 6
gpg: key DDFA1A3E36879494: "Qubes Master Signing Key" not changed
gpg: key 063938BA42CFA724: "Marek Marczykowski-Górecki (Qubes OS signing key) <marmarek@invisiblethingslab.com>" not changed
gpg: key DA0434BC706E1FCF: "Simon Gaiser (Qubes OS signing key) <simon@invisiblethingslab.com>" not changed
gpg: Total number processed: 3
gpg:              unchanged: 3
---> Good tag 6264ecfb28c2cd079f18e1c519f961a0ee2a99f3
--> Switching branch from main branch to main
Reset branch 'main'
Your branch is up to date with 'origin/main'.

-> Updating sources for desktop-linux-i3...
--> Fetching from https://github.com/QubesOS/qubes-desktop-linux-i3.git main...
--> Verifying tags...
gpg: keybox '/home/user/qubes-builder/keyrings/git/desktop-linux-i3/pubring.kbx' created
gpg: /home/user/qubes-builder/keyrings/git/desktop-linux-i3/trustdb.gpg: trustdb created
gpg: key DDFA1A3E36879494: public key "Qubes Master Signing Key" imported
gpg: key 063938BA42CFA724: public key "Marek Marczykowski-Górecki (Qubes OS signing key) <marmarek@invisiblethingslab.com>" imported
gpg: key DA0434BC706E1FCF: public key "Simon Gaiser (Qubes OS signing key) <simon@invisiblethingslab.com>" imported
gpg: Total number processed: 3
gpg:               imported: 3
gpg: no ultimately trusted keys found
gpg: inserting ownertrust of 6
gpg: key DDFA1A3E36879494: "Qubes Master Signing Key" not changed
gpg: key 063938BA42CFA724: "Marek Marczykowski-Górecki (Qubes OS signing key) <marmarek@invisiblethingslab.com>" not changed
gpg: key DA0434BC706E1FCF: "Simon Gaiser (Qubes OS signing key) <simon@invisiblethingslab.com>" not changed
gpg: Total number processed: 3
gpg:              unchanged: 3
---> Good tag fa730c5091908fd2f14cfd52764fe5568a60ff4e
--> Switching branch from main branch to main
Reset branch 'main'
Your branch is up to date with 'origin/main'.

-> Updating sources for desktop-linux-i3-settings-qubes...
--> Fetching from https://github.com/QubesOS/qubes-desktop-linux-i3-settings-qubes.git main...
--> Verifying tags...
gpg: keybox '/home/user/qubes-builder/keyrings/git/desktop-linux-i3-settings-qubes/pubring.kbx' created
gpg: /home/user/qubes-builder/keyrings/git/desktop-linux-i3-settings-qubes/trustdb.gpg: trustdb created
gpg: key DDFA1A3E36879494: public key "Qubes Master Signing Key" imported
gpg: key 063938BA42CFA724: public key "Marek Marczykowski-Górecki (Qubes OS signing key) <marmarek@invisiblethingslab.com>" imported
gpg: key DA0434BC706E1FCF: public key "Simon Gaiser (Qubes OS signing key) <simon@invisiblethingslab.com>" imported
gpg: Total number processed: 3
gpg:               imported: 3
gpg: no ultimately trusted keys found
gpg: inserting ownertrust of 6
gpg: key DDFA1A3E36879494: "Qubes Master Signing Key" not changed
gpg: key 063938BA42CFA724: "Marek Marczykowski-Górecki (Qubes OS signing key) <marmarek@invisiblethingslab.com>" not changed
gpg: key DA0434BC706E1FCF: "Simon Gaiser (Qubes OS signing key) <simon@invisiblethingslab.com>" not changed
gpg: Total number processed: 3
gpg:              unchanged: 3
---> Good tag 9e4b65c8a67a6c9df4d38abaa3eb7a676dee99bc
--> Switching branch from main branch to main
Reset branch 'main'
Your branch is up to date with 'origin/main'.

--> Downloading additional sources for desktop-linux-i3...
make[1]: Entering directory '/home/user/qubes-builder/qubes-src/desktop-linux-i3'
make[1]: Leaving directory '/home/user/qubes-builder/qubes-src/desktop-linux-i3'
--> Verifying the sources...
make[1]: Entering directory '/home/user/qubes-builder/qubes-src/desktop-linux-i3'
make[1]: Leaving directory '/home/user/qubes-builder/qubes-src/desktop-linux-i3'

remount

[user@default-dvm qubes-builder]$ make remount
+ sudo mount /home -o dev,suid,remount
[user@default-dvm qubes-builder]$ 

Error: make desktop-linux-i3 desktop-linux-i3-settings-qubes

[user@default-dvm qubes-builder]$ make desktop-linux-i3 desktop-linux-i3-settings-qubes
Currently installed dependencies:
createrepo_c-0.21.1-1.fc38.x86_64
git-2.41.0-1.fc38.x86_64
perl-Digest-MD5-2.58-490.fc38.x86_64
perl-Digest-SHA-6.04-1.fc38.x86_64
python3-sh-1.14.3-2.fc38.noarch
rpm-build-4.18.1-3.fc38.x86_64
rpmdevtools-9.6-3.fc38.noarch
systemd-container-253.7-1.fc38.x86_64
wget-1.21.3-5.fc38.x86_64
make[1]: Entering directory '/home/user/qubes-builder'
-> Preparing fc32 build environment
+ '[' -z /home/user/qubes-builder/qubes-packages-mirror-repo/dom0-fc32 ']'
+ REPO_DIR=/home/user/qubes-builder/qubes-packages-mirror-repo/dom0-fc32
++ which createrepo_c createrepo
++ head -n 1
+ createrepo=/usr/bin/createrepo_c
+ mkdir -p /home/user/qubes-builder/qubes-packages-mirror-repo/dom0-fc32/rpm
+ '[' -e /home/user/qubes-builder/qubes-packages-mirror-repo/dom0-fc32/repodata/repomd.xml ']'
+ /usr/bin/createrepo_c -q /home/user/qubes-builder/qubes-packages-mirror-repo/dom0-fc32
++ id -u
+ '[' 1000 -eq 0 ']'
INFO: Initializing RPM database...
error: can't create transaction lock on /home/user/qubes-builder/chroot-dom0-fc32/usr/lib/sysimage/rpm/.rpm.lock (Permission denied)
make[1]: *** [/home/user/qubes-builder/qubes-src/builder-rpm/Makefile-legacy.rpmbuilder:37: /home/user/qubes-builder/chroot-dom0-fc32/home/user/.prepared_base] Error 1
make[1]: Leaving directory '/home/user/qubes-builder'
make: *** [Makefile:273: desktop-linux-i3-dom0] Error 1
[user@default-dvm qubes-builder]$ 

Since you’re on 4.2 with a Fedora-38 template, it might be a SELinux issue. Does running the make command with sudo make any difference?
If you have the same error again, I think the best solution would be to use the new qubes-builder. Configuration is different, but not complicated.

No, it does not make any difference.
So if it is a SELinux issue, I could try it out with fedora-37?

I’m not sure if SELinux is only a fedora-38 thing or if it’s enabled on all Fedora templates on 4.2. It says “SELinux support in Fedora templates” in the 4.2-rc2 release post so I guess it’s on every Fedora template?

Try to disable SELinux temporarily with this:

sudo setenforce 0 
sudo setenforce Permissive 

I got it working on fedora-37. I will do a full backup before installation and coming back with the results.

1 Like

Do your packages contain “fc32” in their name? If that’s the case, you should rebuild them for Fedora-37 since 4.2 dom0 run on this version. Edit builder.conf and add DIST_DOM0 ?= fc37 before the include line (it’s important, otherwise it will still use fc32).

Yeah, you’re right.

[user@tmp-fedora-37 qubes-builder]$ ls qubes-src/desktop-linux-i3/pkgs/dom0-fc32/x86_64/
i3-4.22-1.fc32.x86_64.rpm  i3-debuginfo-4.22-1.fc32.x86_64.rpm  i3-debugsource-4.22-1.fc32.x86_64.rpm  i3-devel-4.22-1.fc32.x86_64.rpm

The DIST_DOM0 ?= fc37 did work as you said.

[user@tmp-fedora-37 x86_64]$ pwd
/home/user/qubes-builder/qubes-src/desktop-linux-i3/pkgs/dom0-fc37/x86_64
[user@tmp-fedora-37 x86_64]$ ls
i3-4.22-1.fc37.x86_64.rpm  i3-debuginfo-4.22-1.fc37.x86_64.rpm  i3-debugsource-4.22-1.fc37.x86_64.rpm  i3-devel-4.22-1.fc37.x86_64.rpm
[user@tmp-fedora-37 x86_64]$ 

Ok I moved the files to dom0 and executed dnf install...

[user@dom0 Desktop]$ sudo dnf install i3-4.22-1.fc37.x86_64.rpm i3-settings-qubes-1.10-1.fc37.x86_64.rpm 
Qubes OS Repository for Dom0                    2.9 MB/s | 3.0 kB     00:00    
Error: 
 Problem 1: conflicting requests
  - nothing provides xorg-x11-fonts-misc needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides libev.so.4()(64bit) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides libxcb-cursor.so.0()(64bit) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides libxcb-xrm.so.0()(64bit) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(AnyEvent::I3) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(Data::Dumper) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(File::Find) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(JSON::XS) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(open) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(AnyEvent::I3) >= 0.12 needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
 Problem 2: conflicting requests
  - nothing provides i3lock needed by i3-settings-qubes-1.10-1.fc37.x86_64 from @commandline
  - nothing provides perl-Data-Dumper needed by i3-settings-qubes-1.10-1.fc37.x86_64 from @commandline
  - nothing provides perl-open needed by i3-settings-qubes-1.10-1.fc37.x86_64 from @commandline
  - nothing provides xautolock needed by i3-settings-qubes-1.10-1.fc37.x86_64 from @commandline
(try to add '--skip-broken' to skip uninstallable packages)
[user@dom0 Desktop]$ 

I have a clean install of qubes-4.2.rc2 and only updated dom0 without other changes.

Do you have Fedora-37 repos in dom0? Can you check in /etc/yum.repos.d/if you see anything related to fedora-37 official repos?

Sure

[user@dom0 yum.repos.d]$ ls
fedora.repo  fedora-updates.repo  qubes-dom0.repo  qubes-templates.repo

fedora.repo

[user@dom0 yum.repos.d]$ cat fedora.repo 
[fedora]
name=Fedora 37 - x86_64
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/37/Everything/x86_64/os/
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-37&arch=x86_64
skip_if_unavailable=False
enabled=1
enablegroups=0
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-37-primary

[fedora-debuginfo]
name=Fedora 37 - x86_64 - Debug
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/37/Everything/x86_64/debug/
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-37&arch=x86_64
skip_if_unavailable=False
enabled=0
enablegroups=0
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-37-primary

[fedora-source]
name=Fedora 37 - Source
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/37/Everything/source/SRPMS/
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-37&arch=x86_64
skip_if_unavailable=False
enabled=0
enablegroups=0
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-37-primary

fedora-updates.repo

[user@dom0 yum.repos.d]$ cat fedora-updates.repo 
[updates]
name=Fedora 37 - x86_64 - Updates
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/37/x86_64/
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f37&arch=x86_64
skip_if_unavailable=False
enabled=1
enablegroups=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-37-primary

[updates-debuginfo]
name=Fedora 37 - x86_64 - Updates - Debug
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/37/x86_64/debug/
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f37&arch=x86_64
skip_if_unavailable=False
enabled=0
enablegroups=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-37-primary

[updates-source]
name=Fedora 37 - Updates Source
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/37/SRPMS/
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f37&arch=x86_64
skip_if_unavailable=False
enabled=0
enablegroups=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-37-primary
[user@dom0 yum.repos.d]$ 

qubes-dom0.repo

[user@dom0 yum.repos.d]$ cat qubes-dom0.repo 
[qubes-dom0-current]
name = Qubes Host Repository (updates)
#baseurl = https://yum.qubes-os.org/r$releasever/current/host/fc37
#baseurl = http://yum.qubesosfasa4zl44o4tws22di6kepyzfeqv3tg4e3ztknltfxqrymdad.onion/r$releasever/current/host/fc37
metalink = https://yum.qubes-os.org/r$releasever/current/host/fc37/repodata/repomd.xml.metalink
skip_if_unavailable=False
enabled = 1
metadata_expire = 6h
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-primary

[qubes-dom0-current-testing]
name = Qubes Host Repository (updates-testing)
#baseurl = https://yum.qubes-os.org/r$releasever/current-testing/host/fc37
#baseurl = http://yum.qubesosfasa4zl44o4tws22di6kepyzfeqv3tg4e3ztknltfxqrymdad.onion/r$releasever/current-testing/host/fc37
metalink = https://yum.qubes-os.org/r$releasever/current-testing/host/fc37/repodata/repomd.xml.metalink
skip_if_unavailable=False
enabled = 0
metadata_expire = 6h
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-primary

[qubes-dom0-security-testing]
name = Qubes Host Repository (security-testing)
#baseurl = https://yum.qubes-os.org/r$releasever/security-testing/host/fc37
#baseurl = http://yum.qubesosfasa4zl44o4tws22di6kepyzfeqv3tg4e3ztknltfxqrymdad.onion/r$releasever/security-testing/host/fc37
metalink = https://yum.qubes-os.org/r$releasever/security-testing/host/fc37/repodata/repomd.xml.metalink
skip_if_unavailable=False
enabled = 0
metadata_expire = 6h
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-primary

[qubes-dom0-unstable]
name = Qubes Host Repository (unstable)
#baseurl = https://yum.qubes-os.org/r$releasever/unstable/host/fc37
#baseurl = http://yum.qubesosfasa4zl44o4tws22di6kepyzfeqv3tg4e3ztknltfxqrymdad.onion/r$releasever/unstable/host/fc37
metalink = https://yum.qubes-os.org/r$releasever/unstable/host/fc37/repodata/repomd.xml.metalink
skip_if_unavailable=False
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-unstable


Do you get any error by installing a missing component like i3lock?

sudo qubes-dom0-update i3lock

This is working fine.

For some reason it’s not using Fedora 37 repos. Can you try to install all the dependencies manually with qubes-dom0-update and then retry to use dnf for the .rpm packages?

I managed to install

  118  sudo qubes-dom0-update xorg-x11-fonts-misc
  119  sudo qubes-dom0-update perl-Data-Dumper
  120  sudo qubes-dom0-update perl-open
  121  sudo qubes-dom0-update xautolock
  122  sudo qubes-dom0-update perl

But these did not work:

Using sys-firewall as UpdateVM to download updates for Dom0; this may take some time...
Fedora 37 - x86_64                               35 kB/s |  19 kB     00:00    
Fedora 37 - x86_64 - Updates                     29 kB/s |  15 kB     00:00    
Qubes Host Repository (updates)                  25 kB/s | 2.7 kB     00:00    
No match for argument: libxcb-cursor
Error: Unable to find a match: libxcb-cursor
[user@dom0 Desktop]$ sudo qubes-dom0-update per-AnyEvent-I3
Using sys-firewall as UpdateVM to download updates for Dom0; this may take some time...
Fedora 37 - x86_64                              169 kB/s |  19 kB     00:00    
Fedora 37 - x86_64 - Updates                     30 kB/s |  15 kB     00:00    
Qubes Host Repository (updates)                  32 kB/s | 2.7 kB     00:00    
No match for argument: per-AnyEvent-I3
Error: Unable to find a match: per-AnyEvent-I3
[user@dom0 Desktop]$ sudo qubes-dom0-update per-JSON-I3
Using sys-firewall as UpdateVM to download updates for Dom0; this may take some time...
Fedora 37 - x86_64                               37 kB/s |  19 kB     00:00    
Fedora 37 - x86_64 - Updates                     32 kB/s |  15 kB     00:00    
Qubes Host Repository (updates)                  35 kB/s | 2.7 kB     00:00    
No match for argument: per-JSON-I3
Error: Unable to find a match: per-JSON-I3
[user@dom0 Desktop]$ history

current error:

[user@dom0 Desktop]$ sudo dnf install i3-4.22-1.fc37.x86_64.rpm i3-settings-qubes-1.10-1.fc37.x86_64.rpm 
Qubes OS Repository for Dom0                                                                                                   2.9 MB/s | 3.0 kB     00:00    
Error: 
 Problem 1: conflicting requests
  - nothing provides libxcb-cursor.so.0()(64bit) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(AnyEvent::I3) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(JSON::XS) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(AnyEvent::I3) >= 0.12 needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
 Problem 2: package i3-settings-qubes-1.10-1.fc37.x86_64 from @commandline requires i3, but none of the providers can be installed
  - conflicting requests
  - nothing provides libxcb-cursor.so.0()(64bit) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(AnyEvent::I3) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(JSON::XS) needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
  - nothing provides perl(AnyEvent::I3) >= 0.12 needed by i3-1000:4.22-1.fc37.x86_64 from @commandline
(try to add '--skip-broken' to skip uninstallable packages)
[user@dom0 Desktop]$ 

How do I intall the remaining dependencies?