cmc/cleberg.net

My personal web garden & blog.

clone: git clone https://gitbay.org/cmc/cleberg.net.git

main: content/blog/2022-06-24-fedora-i3.org · raw

  1#+date:        [2022-06-24 Fri 00:00:00]
  2#+title:       Fedora and i3: Back on Linux
  3#+description: Moving back to Linux: installing Fedora and setting up i3.
  4#+slug:        fedora-i3
  5#+filetags:    :linux:
  6
  7* Leaving macOS
  8
  9As I noted in a recent post, I have been planning on migrating from macOS back
 10to a Linux-based operating system (OS). I am happy to say that I have finally
 11completed my migration and am now stuck in the wonderful world of Linux again.
 12
 13My decision to leave macOS really came down to just a few important
 14things:
 15
 16- Apple Security (Gatekeeper) restricting me from running any software I want.
 17  Even if you disable Gatekeeper and allow software to bypass the rest of the
 18  device installation security, you still have to repeat that process every time
 19  the allowed software is updated.
 20- macOS sends out nearly constant connections, pings, telemetry, etc. to a
 21  myriad of mysterious Apple services. I'm not even going to dive into how many
 22  macOS apps have constant telemetry on, as well.
 23- Lastly, I just /really/ missed the customization and freedom that comes with
 24  Linux. Being able to switch to entirely new kernel, OS, or desktop within
 25  minutes is a freedom I took for granted when I switched to macOS.
 26
 27Now that I've covered macOS, I'm going to move on to more exciting topics: my
 28personal choice of OS, desktop environment (DE), and various customizations I'm
 29using.
 30
 31* Fedora
 32
 33After trying a ton of distributions (I think I booted and tested around 20-25
 34distributions), I finally landed on [[https://getfedora.org/][Fedora Linux]]. I have quite a bit of experience
 35with Fedora and enjoy the =dnf= package manager. Fedora allows me to keep
 36up-to-date with recent software (I'm looking at you, Debian), but still provides
 37a level of stability you don't find in every distribution.
 38
 39In a very close second place was Arch Linux, as well as its spin-off: Garuda
 40Linux (Garuda w/ sway is /beautiful/). Arch is great for compatibility and the
 41massive community it has, but I have just never had the time to properly sit
 42down and learn the methodology behind their packaging systems.
 43
 44Basically, everything else I tested was unacceptable in at least one way or
 45another. Void (=glibc=) was great, but doesn't support all the software I need.
 46Slackware worked well as a text-based user interface (TUI), but I wasn't skilled
 47enough to get a tiling window manager (WM) working on it.
 48
 49** i3
 50
 51One of the reasons I settled on Fedora is that it comes with an official i3
 52spin. Being able to use a tiling WM, such as i3 or sway, is one of the biggest
 53things I wanted to do as soon as I adopted Linux again.
 54
 55I will probably set up a dotfile repository soon, so that I don't lose any of my
 56configurations, but nothing big has been configured thus far.
 57
 58The two main things I have updated in i3wm are natural scrolling and binding my
 59brightness keys to the =brightnessctl= program.
 60
 611. Natural Scrolling
 62
 63   You can enable natural scrolling by opening the following file:
 64
 65   #+begin_src sh
 66   sudo nano /usr/share/X11/xorg.conf.d/40-libinput.conf
 67   #+end_src
 68
 69   Within the =40-libinput.conf= file, find the following input sections and
 70   enable the natural scrolling option.
 71
 72   This is the =pointer= section:
 73
 74   #+begin_src conf
 75   Section "InputClass"
 76           Identifier "libinput pointer catchall"
 77           MatchIsPointer "on"
 78           MatchDevicePath "/dev/input/event*"
 79           Driver "libinput"
 80           Option "NaturalScrolling" "True"
 81   EndSection
 82   #+end_src
 83
 84   This is the =touchpad= section:
 85
 86   #+begin_src conf
 87   Section "InputClass"
 88           Identifier "libinput touchpad catchall"
 89           MatchIsTouchpad "on"
 90           MatchDevicePath "/dev/input/event*"
 91           Driver "libinput"
 92           Option "NaturalScrolling" "True"
 93   EndSection
 94   #+end_src
 95
 962. Enabling Brightness Keys
 97
 98   Likewise, enabling brightness key functionality is as simple as binding the
 99   keys to the =brightnessctl= program.
100
101   To do this, open up your i3 configuration file. Mine is located here:
102
103   #+begin_src sh
104   nano /home/<my-user>/.config/i3/config
105   #+end_src
106
107   #+begin_src conf
108   # Use brightnessctl to adjust brightness.
109   bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl --min-val=2 -q set 3%-
110   bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl -q set 3%+
111   #+end_src
112
1133. =polybar=
114
115   Instead of using the default =i3status= bar, I have opted to use =polybar=
116   instead (as you can also see in the screenshot above).
117
118   My configuration for this menu bar is basically just the default settings
119   with modified colors and an added battery block to quickly show me the
120   machine's battery info.
121
1224. =alacritty=
123
124   Not much to say on this part yet, as I haven't configured it much, but I
125   installed =alacritty= as my default terminal, and I am using =zsh= and the
126   shell.
127
128* Software Choices
129
130Again, I'm not going to say much that I haven't said yet in other blog posts, so
131I'll just do a quick rundown of the apps I installed immediately after I set up
132the environment.
133
134Flatpak Apps:
135
136- Cryptomator
137- pCloud
138- Signal
139
140Fedora Packages:
141
142- gomuks
143- neomutt
144- neofetch
145- Firefox
146  - uBlock Origin
147  - Bitwarden
148  - Stylus
149  - Privacy Redirect
150
151Other:
152
153- exiftool