mirror of
https://github.com/QubesOS/qubes-doc.git
synced 2024-12-26 07:49:34 -05:00
3806ecf338
Those are redundant, and yaml parser strips them in fact. By removing them, loading and saving yaml file without any change indeed produce the same output. This is useful for prepare_for_translation.py script (which adds lang and ref tags) - to produce only change that indeed was made.
109 lines
3.6 KiB
Markdown
109 lines
3.6 KiB
Markdown
---
|
|
lang: en
|
|
layout: doc
|
|
permalink: /doc/i3/
|
|
redirect_from:
|
|
- /en/doc/i3/
|
|
- /doc/UserDoc/i3/
|
|
- /wiki/UserDoc/i3/
|
|
ref: 183
|
|
title: i3 (window manager)
|
|
---
|
|
|
|
i3 is part of the stable repository (as of Qubes R3.1) and can be installed by
|
|
using the [dom0 update mechanism](/doc/how-to-install-software-in-dom0/). To install the i3
|
|
window manager and the its Qubes specific configuration:
|
|
|
|
```shell_session
|
|
$ 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:
|
|
|
|
```shell_session
|
|
$ 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:
|
|
|
|
```shell_session
|
|
$ 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:
|
|
|
|
```shell_session
|
|
$ 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:
|
|
|
|
```shell_session
|
|
$ 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:
|
|
|
|
```shell_session
|
|
$ 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:
|
|
|
|
```shell_session
|
|
$ sudo yum localinstall i3.rpm
|
|
```
|
|
|
|
Log out, select i3, then log in again.
|