mirror of
https://github.com/QubesOS/qubes-doc.git
synced 2025-01-03 03:31:04 -05:00
131 lines
3.7 KiB
ReStructuredText
131 lines
3.7 KiB
ReStructuredText
|
===================
|
|||
|
i3 (window manager)
|
|||
|
===================
|
|||
|
|
|||
|
|
|||
|
i3 is part of the stable repository (as of Qubes R3.1) and can be
|
|||
|
installed by using the :doc:`dom0 update mechanism </user/advanced-topics/how-to-install-software-in-dom0>`. To install the i3
|
|||
|
window manager and the its Qubes specific configuration:
|
|||
|
|
|||
|
.. code:: bash
|
|||
|
|
|||
|
$ sudo qubes-dom0-update i3 i3-settings-qubes
|
|||
|
|
|||
|
|
|||
|
The Qubes-specific configuration (package ``i3-settings-qubes``) can be
|
|||
|
installed optionally in case you would prefer writing your own
|
|||
|
configuration (see `customization <#customization>`__ section for
|
|||
|
scripts and configuration).
|
|||
|
|
|||
|
That’s it. After logging out, you can select i3 in the login manager.
|
|||
|
|
|||
|
Customization
|
|||
|
-------------
|
|||
|
|
|||
|
|
|||
|
**Caution:** The following external resources may not have been reviewed
|
|||
|
by the Qubes team.
|
|||
|
|
|||
|
- `xdg_autostart_script <https://gist.github.com/SietsevanderMolen/7b4cc32ce7b4884513b0a639540e454f>`__
|
|||
|
|
|||
|
- `i3bar_script <https://gist.github.com/SietsevanderMolen/e7f594f209dfaa3596907e427b657e30>`__
|
|||
|
|
|||
|
- `terminal_start_script <https://gist.github.com/SietsevanderMolen/7c6f2b5773dbc0c08e1509e49abd1e96>`__
|
|||
|
|
|||
|
- `i3 config with dmenu-i3-window-jumper <https://github.com/anadahz/qubes-i3-config/blob/master/config>`__
|
|||
|
|
|||
|
- `dmenu script to open a terminal in a chosen VM <https://gist.github.com/dmoerner/65528941dd20b05c98ee79e92d7e0183>`__
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Compilation and installation from source
|
|||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|||
|
|
|||
|
|
|||
|
Note that the compilation from source is done in a Fedora based domU
|
|||
|
(could be dispvm). The end result is always an ``.rpm`` that is copied
|
|||
|
to dom0 and then installed through the package manager.
|
|||
|
|
|||
|
Getting the code
|
|||
|
----------------
|
|||
|
|
|||
|
|
|||
|
Clone the i3-qubes repository here:
|
|||
|
|
|||
|
.. code:: bash
|
|||
|
|
|||
|
$ git clone https://github.com/QubesOS/qubes-desktop-linux-i3
|
|||
|
|
|||
|
|
|||
|
In this case, the most interesting file is probably
|
|||
|
``i3/0001-Show-qubes-domain-in-non-optional-colored-borders.patch`` It’s
|
|||
|
the patch with changes that are necessary to make i3 work nicely with
|
|||
|
Qubes OS. The code should not need much explanation, it just gets the
|
|||
|
vmname and label from Qubes OS and changes some defaults so the user
|
|||
|
can’t override decisions.
|
|||
|
|
|||
|
If you want to make any changes to the package, this is the time and
|
|||
|
place to do it.
|
|||
|
|
|||
|
Building
|
|||
|
--------
|
|||
|
|
|||
|
|
|||
|
You’ll need to install the build dependencies, which are listed in
|
|||
|
build-deps.list. You can verify them and then install them with:
|
|||
|
|
|||
|
.. code:: bash
|
|||
|
|
|||
|
$ sudo dnf install -y $(cat build-deps.list)
|
|||
|
|
|||
|
|
|||
|
This used to be more complicated, but I finally redid this and use the
|
|||
|
same buildsystem that’s used by Qubes OS for XFCE. It’s just a Makefile
|
|||
|
that helps you get the sources and start off the build:
|
|||
|
|
|||
|
.. code:: bash
|
|||
|
|
|||
|
$ make get-sources
|
|||
|
$ make verify-sources
|
|||
|
$ make rpms
|
|||
|
|
|||
|
|
|||
|
Installing
|
|||
|
----------
|
|||
|
|
|||
|
|
|||
|
**Warning**: Manually installing software in dom0 is inherently risky,
|
|||
|
and the method described here circumvents the usual security mechanisms
|
|||
|
of qubes-dom0-update.
|
|||
|
|
|||
|
You should now have your i3 rpm in
|
|||
|
``./rpm/x86_64/i3-4.8-3.fc20.x86_64.rpm``. Protip: copying this file to
|
|||
|
``~/i3.rpm`` now will save you some typing in the next step.
|
|||
|
|
|||
|
Now in dom0, copy in the rpm:
|
|||
|
|
|||
|
.. code:: bash
|
|||
|
|
|||
|
$ qvm-run --pass-io <src_domain> 'cat </path/to/rpm_in_src_domain>' > i3.rpm
|
|||
|
|
|||
|
|
|||
|
Now that the rpm is in dom0 we can proceed with installing it. i3 has
|
|||
|
some dependencies that we can easily install with:
|
|||
|
|
|||
|
.. code:: bash
|
|||
|
|
|||
|
$ sudo qubes-dom0-update perl-AnyEvent-I3 xorg-x11-apps \\
|
|||
|
rxvt-unicode xcb-util-wm perl-JSON-XS xcb-util-cursor \\
|
|||
|
dzen2 dmenu xorg-x11-fonts-misc libev
|
|||
|
|
|||
|
|
|||
|
After that you can just install the generated rpm like any other local
|
|||
|
package:
|
|||
|
|
|||
|
.. code:: bash
|
|||
|
|
|||
|
$ sudo yum localinstall i3.rpm
|
|||
|
|
|||
|
|
|||
|
Log out, select i3, then log in again.
|