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