aboutsummaryrefslogtreecommitdiff
path: root/content/blog/2022-06-24-fedora-i3.org
blob: e26c64eb67923f49d2d72942338b122bd844a84b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#+date:        [2022-06-24 Fri 00:00:00]
#+title:       Fedora and i3: Back on Linux
#+description: Moving back to Linux: installing Fedora and setting up i3.
#+slug:        fedora-i3
#+filetags:    :linux:

* Leaving macOS

As I noted in a recent post, I have been planning on migrating from macOS back
to a Linux-based operating system (OS). I am happy to say that I have finally
completed my migration and am now stuck in the wonderful world of Linux again.

My decision to leave macOS really came down to just a few important
things:

- Apple Security (Gatekeeper) restricting me from running any software I want.
  Even if you disable Gatekeeper and allow software to bypass the rest of the
  device installation security, you still have to repeat that process every time
  the allowed software is updated.
- macOS sends out nearly constant connections, pings, telemetry, etc. to a
  myriad of mysterious Apple services. I'm not even going to dive into how many
  macOS apps have constant telemetry on, as well.
- Lastly, I just /really/ missed the customization and freedom that comes with
  Linux. Being able to switch to entirely new kernel, OS, or desktop within
  minutes is a freedom I took for granted when I switched to macOS.

Now that I've covered macOS, I'm going to move on to more exciting topics: my
personal choice of OS, desktop environment (DE), and various customizations I'm
using.

* Fedora

After trying a ton of distributions (I think I booted and tested around 20-25
distributions), I finally landed on [[https://getfedora.org/][Fedora Linux]]. I have quite a bit of experience
with Fedora and enjoy the =dnf= package manager. Fedora allows me to keep
up-to-date with recent software (I'm looking at you, Debian), but still provides
a level of stability you don't find in every distribution.

In a very close second place was Arch Linux, as well as its spin-off: Garuda
Linux (Garuda w/ sway is /beautiful/). Arch is great for compatibility and the
massive community it has, but I have just never had the time to properly sit
down and learn the methodology behind their packaging systems.

Basically, everything else I tested was unacceptable in at least one way or
another. Void (=glibc=) was great, but doesn't support all the software I need.
Slackware worked well as a text-based user interface (TUI), but I wasn't skilled
enough to get a tiling window manager (WM) working on it.

** i3

One of the reasons I settled on Fedora is that it comes with an official i3
spin. Being able to use a tiling WM, such as i3 or sway, is one of the biggest
things I wanted to do as soon as I adopted Linux again.

I will probably set up a dotfile repository soon, so that I don't lose any of my
configurations, but nothing big has been configured thus far.

The two main things I have updated in i3wm are natural scrolling and binding my
brightness keys to the =brightnessctl= program.

1. Natural Scrolling

   You can enable natural scrolling by opening the following file:

   #+begin_src sh
   sudo nano /usr/share/X11/xorg.conf.d/40-libinput.conf
   #+end_src

   Within the =40-libinput.conf= file, find the following input sections and
   enable the natural scrolling option.

   This is the =pointer= section:

   #+begin_src conf
   Section "InputClass"
           Identifier "libinput pointer catchall"
           MatchIsPointer "on"
           MatchDevicePath "/dev/input/event*"
           Driver "libinput"
           Option "NaturalScrolling" "True"
   EndSection
   #+end_src

   This is the =touchpad= section:

   #+begin_src conf
   Section "InputClass"
           Identifier "libinput touchpad catchall"
           MatchIsTouchpad "on"
           MatchDevicePath "/dev/input/event*"
           Driver "libinput"
           Option "NaturalScrolling" "True"
   EndSection
   #+end_src

2. Enabling Brightness Keys

   Likewise, enabling brightness key functionality is as simple as binding the
   keys to the =brightnessctl= program.

   To do this, open up your i3 configuration file. Mine is located here:

   #+begin_src sh
   nano /home/<my-user>/.config/i3/config
   #+end_src

   #+begin_src conf
   # Use brightnessctl to adjust brightness.
   bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl --min-val=2 -q set 3%-
   bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl -q set 3%+
   #+end_src

3. =polybar=

   Instead of using the default =i3status= bar, I have opted to use =polybar=
   instead (as you can also see in the screenshot above).

   My configuration for this menu bar is basically just the default settings
   with modified colors and an added battery block to quickly show me the
   machine's battery info.

4. =alacritty=

   Not much to say on this part yet, as I haven't configured it much, but I
   installed =alacritty= as my default terminal, and I am using =zsh= and the
   shell.

* Software Choices

Again, I'm not going to say much that I haven't said yet in other blog posts, so
I'll just do a quick rundown of the apps I installed immediately after I set up
the environment.

Flatpak Apps:

- Cryptomator
- pCloud
- Signal

Fedora Packages:

- gomuks
- neomutt
- neofetch
- Firefox
  - uBlock Origin
  - Bitwarden
  - Stylus
  - Privacy Redirect

Other:

- exiftool