Hi Fedora i3 SIG,
I work on a desktop environment project called Regolith which
currently supports Ubuntu-based systems. We have an open issue for
porting our desktop environment to Fedora and a user noted the existence of
this project and suggested maybe we could work together. I clicked around
a bit in your project pages but did not find much in the way of concrete
details. Things that I am interested in, and may be topics for discussion:
1. How do you intend to handle the "desktop environment" stuff (Set screen
resolution, sound output, user locale, etc.)?
2. How do you intend to create your package dependency graph?
From the 2 or so years I've worked on this project, I think a big design
challenge is how to allow for users to modify and extend their desktop in
such a way that updates over time do not break user configurations but
still allow the freedom to make changes under the hood. I am working on a
design for decomposition of an i3 config file into conf.d style
partials. I'd also be curious as to what insights you may have here.
Currently I am working on breaking the package topology of Regolith to
allow for easier porting to package formats such as RPM and host operating
systems such as Debian, and potentially also entirely different desktop
systems such as Wayland/Sway.
# Fedora i3 Spin First Impressions
I successfully created the i3 spin iso and bootable usb using the
following (my first time ever using a kickstart).
sudo su -
dnf install git livecd-tools
git clone https://pagure.io/i3-sig/Fedora-i3-Spin.git # commit 9fb6abd3
livecd-creator --verbose --config=fedora-live-i3.ks --fslabel=I3
wipefs --all /dev/sdX
dd if=I3.iso of=/dev/sdX bs=64k status=progress && sync
It was a really good experience, so I wanted to provide some feedback.
## Install Process
Everything worked as advertised, and the usb successfully booted on my
2015 macbook pro retina without any issues.
It was not obvious once booted into the live image how to install to
hard drive. First I tried $mod+d to look for the installer in dmenu, but
could not find it (I tried running `anaconda` from dmenu but nothing
Next I opened a shell with $mod+enter to try and search for the
installer and saw the message in the terminal with the hint how to start
the installer. After starting the installer the rest of the installation
process was smooth as butter.
But if I didn't know to open a terminal with $mod+Enter I would have
assumed the spin was broken and moved on without further consideration
(or at least that is my assumption of what an inexperienced i3 user
I rebooted the laptop and was greeted with the lightdm login screen as
expected and logged in without issue.
## First Impressions
Since i3 is just a window manager, and not a desktop environment, it was
a bit disorienting at first to not have any of the utilities which are
typically included in a desktop environment.
In the past I have been installing the xfce spin, and then using `dnf`
to install i3. So my natural reaction was to use dnf to install
`xfce4-terminal`. `urxvt` is included in the i3 spin, but after spending
lots of time in the past trying to get urxvt usable (I was never able to
get powerline fonts to work in `urxvt` and [in my opinion] it requires
lots of config to make it 'presentable'), and trying alternatives such
as allacrity (didn't work well for me with ssh to remote servers), I
have found [that for me] `xfce4-terminal` has become my goto because it
seems to work without issue in all of my use cases. The i3 docs include
an ordered list of terminals that `i3-sensible-terminal` will try, and
`xfce4-terminal` has a higher priority than `uxrvt`, so if it is
installed it will be used.
### Screen Configuration
I am using a macbook with retina display and two external monitors.
Everything worked perfect with the external monitors, but is very small
on the retina display, so I have been using `arandr` to configure it in
my i3 config.
I don't know how they do it, but the xfce spin seems to accommodate this
automatically and scale the retina display to 2x without any user action
(but other spins, and even the default gnome spin don't [in my
experience]). It would be nice if we could get this worked out with
lightdm so ultimately even the login screen would be scaled right for
people using ultra high def displays.
I guess this could be a collaborative effort with all the spins if it is
addressed at the display manager level instead of the window manager
level. Also, the xfce spin has worked out how to do the scaling without
having a gap between the retina display and the one next to it. I
haven't worked out how to do this yet because every time I try to
display the retina display correctly it includes a big gap in the
monitor layout (seems the monitor still takes up the full space, and
only the "view" is scaled).
By default i3 does not include compositing, but that causes problems
with some screen sharing applications (such as MS Teams - which I have
to use for work). Installing `compton` compositor, and then including an
exec line in the i3 config to start it fixes this issue.
### Session Locking
The default i3 config includes a line to use `xss-lock` to run `i3lock`
when the session is locked, but `xss-lock` is not included in the spin.
By default, `dmenu` shows all applications (instead of just desktop
applications) which is a bit disorienting, especially since the first 38
menu items start with `abrt-xxxx`. The default i3 config already
includes a commented out config for `rofi`, which I personally prefer
since it is easier for me to read the items in vertical layout instead
of horizontal layout. So I installed rofi, commented out the dmenu line
in the i3 config, uncommented the rofi line, and added 'drun' to the
beginning of the '-modi' list (to make it show desktop items by default).
### Default i3 Config
I really like Fedora's 'upstream first' principle because it makes the
upstream documentation more relevant. Having said that, i3 works so much
better when the config is tweaked to match user preferences.
Also, since it is a keyboard focused workflow the i3 upstream has done a
good job making the generated default config work well regardless of the
users keyboard layout (I use 'us -variant dvp' for example). This makes
it a bit more complicated to include a customized config.
My initial thoughts are to include a generator script in an ancillary
package that can modify the default config and merge in some ricing
(based on keycodes due to keyboard layout issues) - mostly just to show
people the possibilities and give examples for them to extend.
## Final Recommendations
I generally support keeping the spin lean, but think that it needs a bit
more of the daily utilities. Perhaps a good starting point is everything
included in the xfce spin except the things that aren't applicable (such
as xfce settings). If so, we should also prominently credit the xfce and
xfce spin teams in the i3 spin documentation.
In summary, what about:
* include in base spin:
* `xfce4-terminal` (so it is the default instead of `uxrvt`)
* a new package 'i3-firstboot' that includes a simple systemd unit to
open a html page describing next steps for new users the first time a
new installation is booted
* `xss-lock` (already included in default i3 config but not included
in the spin)
* `arandr` (for configuring monitors)
* create a new i3-spin-utilities package (if the intention is to keep
the base spin very lean - which is probably more consistent with what an
experienced i3 user is used to) including:
* thunar (file explorer)
* other relevant packages from the xfce spin
* rofi (instead of dmenu - just my personal preference)
* compton (compositor required by some apps such as screen sharing in
* riced i3 config generator script (as a reference so people can see
what a more customized setup could be)
### After Thought
I love i3wm, but it was a couple years between my first exposure to it
and embracing it. Over the years there have been a couple times where I
installed a bunch of window managers on various distributions and tried
them all. But every time I tried i3 I thought it was not installed
properly because I couldn't even find the application menu (because I
didn't understand what i3 was all about). So I moved on without giving
it a second thought.
Once I finally realized what i3 was all about I fell in love with it.
I suggest the i3-SIG put some effort into documenting not only the spin,
but how users can get the most from the spin including introduction
* on the spin page
* on first boot
* in an intro video on some video sharing platforms (not just youtube)
Hi folks, following up on our postponed meeting for today, this is a
short recap of progress on the Fedora i3 Spin as we pick back up after
the new year.
* Status update on ISO builds
* Help wanted with i3 Spin release prep
* i3 package group
* Roadmap and other resources
Full details below.
== Status update on ISO builds
Kickstarts are mostly complete. Some decisions are still pending, but
these will be finalized before the Completion Deadline (testable) on
Next step is to coordinate with RelEng by submitting a Pull Request to
the fedora-kickstarts repo. We hope to have this in advance of the
Completion Deadline so we can organize a Test Day event with the QA team
using officially-built ISOs.
== Help wanted with i3 Spin release prep
The i3 SIG is looking for help to prepare for the F34 release. Two good
issues for newcomers are to help us take screenshots and write an
elevator pitch of the Spin. Th
ese will be used on the Fedora Spins
We are also looking for help with workflows to release our kickstarts
and submit them downstream to the fedora-kickstarts repo. For more
info, see the i3 SIG ticket.
== i3 package group
Additionally, we are also working on a new package group to land in time
for the Software String Freeze on 2021-01-26. A list of proposed
packages can be found in the i3 SIG documentation.
== Roadmap and other resources
Follow the progress of the Fedora i3 Spin on our Pagure Roadmap.
Currently we are on track for Fedora 34, but we could always use help
from enthusiastic early adopters to help us prep for release day.
That's all! We'll use this email recap as a starting point on our next
text meeting on 19 January 2020 at 16:00 UTC in #fedora-i3 /
Justin W. Flory (he/him)
After a brief discussion in IRC/Telegram, we decided to postpone the
meeting today since many SIG members were unavailable today.
Instead, x3mboy and I are doing ticket triage on the Fedora-i3-Spin
Pagure repo. Once the ticket queue is cleaned up, I will write a new
year update email to the list about our current status and important
Justin W. Flory (he/him)