summaryrefslogtreecommitdiff
path: root/TODO.org
blob: c59420f3d0dd3762fc3961c2185c7a90742d8c29 (plain)
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
* Archsetup Current Tasks
** TODO [#C] Add new apps to install
- dialect - translation interface
- zoom - video conferencing
- gnome-boxes - virtualization
- warpinator - transfer files with Christine
- kleopatra - gnupg encryption and decryption
** DOING [#B] Remove ability to zap X w/ ctl+alt+backspace or change ttys
*** 2025-05-30 Fri @ 17:28:11 -0500 Adding config in xorg.conf.d fails
- Added the appropriate section as /etc/X11/xorg.conf.d/00-no-vt-or-zap.conf
- Removed a line in /etc/X11/xorg.conf.d/00-keyboard
  setxkbmap -option "terminate:ctrl_alt_bksp"
- Verified setxkbmap statement above wasn't in archsetup project
- Removed /etc/gdm directory as I'd previously removed gdm and it contained setxkbmap statements
- Removed /etc/keyd directory as I'd previously removed keyd
- Removed the changes added previously

  .. failed to work
*** 2025-05-30 Fri @ 00:04:36 -0500 Adding initial xorg.conf config fails
    cat << EOF > /etc/X11/xorg.conf
    Section "ServerFlags"
        Option "DontVTSwitch" "True"
        Option "DontZap"      "True"
EndSection
EOF
...doesn't appear to be working
** DOING [#B] Rofi Integration
*** TODO Investigate Matching Rofi CSS Style to Notification CSS
*** TODO [#B] Investigate Configuring Rofi as Application Menu
*** 2025-06-03 Tue @ 16:10:34 -0500 Install Rofi
** DOING [#B] Get Thunderbird Working and Add Its Dotfiles
*** 2025-06-03 Tue @ 16:28:35 -0500 Installed and
** TODO [#B] fzf doesn't work everywhere
especially the ** expander for all files
** TODO [#B] Fix Archsetup Failed Package Installs
*** TODO adwaita-color-schemes
*** TODO tor-browser
*** TODO multi-markdown
** TODO [#B] Change startdwm to autostart desktop files
desktop files placed in $XDG_CONFIG_HOME/autostart
add
NoDisplay=true

to any desktop file you don't actually want displayed in a menu
then gio launch name.desktop or write a loop

** TODO [#B] Add DWM Icon to Desktop File and Dwm Build
** TODO [#B] Get Mu4e working against Proton and Gmail
** TODO [#B] indicate user should import thunderbird from zip file
** TODO [#C] Install Wayland/Hyprland side by side with X11/DWM
** TODO [#C] Install and Configure Waydroid for Android Apps
*** 2025-06-03 Tue @ 16:13:35 -0500 Initial Notes
Note: This must be done on a Linux machine running Wayland.
However, I do plan on running X11 and Wayland together on this machine, and the project site says I can use Cage with X11. https://github.com/cage-kiosk/cage
*** 2025-06-03 Tue @ 16:15:16 -0500 References / Tutorials
ArchWiki Instructions https://wiki.archlinux.org/title/Waydroid
Here's Brodie talking about it: https://www.youtube.com/watch?v=b-ejwXQB5Xk
** TODO [#C] Connect Android to Velox
*** Valent
*** Termux
Many Tutorials available
*** SFTP Server
I already purchased the copy of an sftp server on android.
This only allows me to
*** 2025-06-03 Tue @ 16:17:39 -0500 Strcpy References
Tech Solutions Video: https://www.youtube.com/watch?v=blm46Vr_JSo
Techmint: https://www.tecmint.com/scrcpy-connect-android-linux/
*** 2025-06-03 Tue @ 16:21:34 -0500 Must Haves and Nice-To Haves
Must Haves
- File Transfers
- Notifications
- Automatically Backup Files
- Find My Phone

Nice to Haves
- Run Android Applications on Linux
- Clipboard Sync Between Phone and Laptop
- Use Phone as Extra Mouse for Laptop
- WiFi Tethering
- SSH to Phone with Linux Tools Available
** TODO [#C] Explore replacing st with ghostty on DWM
** TODO [#C] Check into calendar sync functions b/t Proton and Google
** TODO [#C] Explore Warp or Packet
I installed Warp.
** TODO [#C] Desktop files should be installed using utility
desktop-file-install --dir=$HOME/.local/share/applications ~/app.desktop
ensure it's picked up with
update-desktop-database ~/.local/share/applications
** TODO [#C] Try out nvchad
:LOGBOOK:
- State "DOING"      from "TODO"       [2024-11-20 Wed 02:19]
- State "TODO"       from              [2024-11-20 Wed 02:13]
:END:
https://www.youtube.com/watch?v=Mtgo-nP_r8Y
https://nvchad.com/
and add it to the archsetup script if you like it.
*** TODO [#B] Add nvchad to archlinux
:LOGBOOK:
- State "TODO"       from              [2024-11-20 Wed 02:17]
:END:

** TODO [#C] Review all scripts in ~/.local/bin/
** TODO [#C] Allow SSH To Android Phone
perhaps via Termux?
** TODO [#C] Emacs Signal Client
*** TODO investigate: net/signel.org · master · undefined · GitLab
[[https://gitlab.com/jaor/elibs/-/blob/master/net/signel.org][net/signel.org · master · undefined · GitLab]]
Captured On: [2025-05-29 Thu 04:24]
*** TODO investigate: signel, a barebones signal chat on top of signal-cli
[[https://jao.io/blog/signel.html][signel, a barebones signal chat on top of signal-cli]]
Captured On: [2025-05-29 Thu 04:23]

** TODO [#C] Add Proton Mail Bridge and Setup Mail to Emacs
** TODO [#C] Find Backup Drive, Backup, and Add to Tech Bag
** TODO [#C] Install Chess Games
*** TODO [#C] Install Stockfish
*** TODO [#C] Install Fruit
*** TODO [#C] Install Chess GUI
** TODO [#C] Setup Login Manager With DWM Login
https://www.reddit.com/r/suckless/comments/jj61py/how_do_i_make_dwm_appear_on_my_display_manager/
** TODO [#C] Decide on Login Manager
** TODO [#C] Add all mail secrets files to dotfiles
** TODO [#C] Consider useful CLI tools for Linux system admins
[[https://www.xmodulo.com/useful-cli-tools-linux-system-admins.html][What are useful CLI tools for Linux system admins]]
Captured On: [2025-05-27 Tue 18:23]
** TODO [#B] Investigate Automounting Removeable Drives
*** Autofs - ArchWiki
#+BEGIN_QUOTE
AutoFS provides automounting of removable media or network shares when they are inserted or accessed.

#+END_QUOTE
[[https://wiki.archlinux.org/title/Autofs#Remote_SSH][Autofs - ArchWiki]]
Captured On: [2025-06-04 Wed 10:42]
*** udisks - ArchWiki
#+BEGIN_QUOTE
udisks provides a daemon udisksd, that implements D-Bus interfaces used to query and manipulate storage devices, and a command-line tool udisksctl, used to query and use the daemon.
#+END_QUOTE
[[https://wiki.archlinux.org/title/Udisks][udisks - ArchWiki]]
Captured On: [2025-06-04 Wed 10:41]
** TODO [#B] Add net-tools for netstat to archsetup
allows you to check open network connections with
netstat -nlp
** TODO [#A] enable tlp on archsetup
TLP

Enable tlp with:

systemctl enable --now tlp.service

TLP is used to manage power-saving modes of various hardware. It is usually configured to enable power-saving when not connected to AC, and
to disable it when connected to AC. It does that for all kinds of things, like Wi-Fi, USB, PCIe, Bluetooth, the CPU scheduler, etc.

I’ve made a custom TLP configuration for my Framework Laptop 13 which you can install as follows:

cat <<EOF > "/etc/tlp.d/01-custom.conf"
CPU_SCALING_GOVERNOR_ON_AC=powersave
CPU_SCALING_GOVERNOR_ON_BAT=powersave

CPU_BOOST_ON_AC=0
CPU_BOOST_ON_BAT=0

PCIE_ASPM_ON_BAT=powersupersave

PLATFORM_PROFILE_ON_AC=balanced
PLATFORM_PROFILE_ON_BAT=low-power

USB_ALLOWLIST=32ac:0002
USB_EXCLUDE_BTUSB=1
USB_EXCLUDE_PRINTER=0

WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=off

WOL_DISABLE=N
EOF

After the above, you need to restart the service:

systemctl restart tlp.service

** TODO Add cpupower installation and enabling to archsetup
CpuPowerPermalink

The cpupower service reads from /etc/default/cpupower and configures the default scheduler. Edit that file to set the default scheduler to powersave or performance and then enable it:

systemctl enable --now cpupower.service
https://rubin55.org/blog/running-arch-linux-on-the-framework-laptop-13/#cpupower
** TODO Install Zoxide Integration Into Ranger
[[https://github.com/jchook/ranger-zoxide][jchook/ranger-zoxide: Easily jump between common directories in ranger]]
Captured On: [2025-06-07 Sat 17:11]
** TODO [#B] Install Zoxide and Dotfiles in Archsetup
[[https://gitlab.com/Vonfry/zoxide.el][Vonfry / zoxide.el · GitLab]]
Captured On: [2025-06-07 Sat 16:51]
* ArchSetup v0.5
** TODO [#B] Change Lockscreen to simple lock but not xscreensaver
:LOGBOOK:
- State "TODO"       from              [2024-11-07 Thu 12:32]
:END:
** TODO [#B] Thunderbird dotfiles
:LOGBOOK:
- State "TODO"       from              [2024-11-07 Thu 12:32]
:END:

** TODO [#B] Check into getting fingerprint auth working
:LOGBOOK:
- State "TODO"       from              [2024-11-07 Thu 16:16]
:END:
** TODO [#B] Push Archsetup to Website on Archsetup Commit
:LOGBOOK:
- State "TODO"       from              [2024-04-18 Thu 16:21]
:END:

** TODO [#B] Install VPN w/ GUI
:LOGBOOK:
- State "TODO"       from              [2024-11-07 Thu 05:31]
:END:
** TODO [#B] Fix "at" error during install
:LOGBOOK:
- State "TODO"       from "VERIFY"     [2024-11-30 Sat 16:56]
- State "TODO"       from              [2024-05-06 Mon 21:38]
:END:
*** 2024-11-30 Sat @ 16:56:46 -0600 Failed with yay on ongoing install.
I think this might be the only error.
*** 2024-11-07 Thu @ 05:28:26 -0600 Looks like it's in the extra repository
so changing to aur install
** TODO [#B] Sleep/Suspend Working on Framework Laptop
*** Note: kernel parameter for sleep/suspend issue in Framework Laptop
#+BEGIN_QUOTE
Lastly, my findings… after bit of testing and measuring, it appears that with more or less up-to-date software (current linux kernel, systemd, etc.) it evens out (very scientifically measured:) at around 1.2-1.3 percent/hour in s2idle for the above described configuration (mainly 2x16 GB SO-DIMM sticks), independent of the distribution used (i.e. Fedora and NixOS) but with “rtc_cmos.use_acpi_alarm=1” added to the kernel command line (iiuc, which will become the default in a future systemd release thanks to @Mario_Limonciello et al.) and a “powertop --auto-tune” run at boot time. Considering that refreshing memory in sleep/stand-by mode is the main consumer of energy and that soldered memory consumes around 90% less energy (with the obvious caveats, of course) in sleep than non-soldered solutions, this boils down (again, very scientifically measured) to around 0.7/0.8 watts in s2idle, which is a (very) good result, imo. This would be the first laptop with which i’ve been able to achieve acceptable suspend results now that ACPI S3 appears to have gone everywhere. Thanks a bunch, everybody…
#+END_QUOTE
[[https://community.frame.work/t/battery-drain-on-suspend-sleep-with-linux/42395/7][Battery Drain on Suspend/Sleep with Linux - Framework Laptop 13 - Framework Community]]
Captured On: [2024-03-03 Sun 06:16]
*** Note: kernel parameter to solve battery drain with Sleep/Suspend on Framework
#+BEGIN_QUOTE
Adding the kernel parameter acpi_mask_gpe=0x1A has made sleep much closer to desired with decently low battery drain overnight. Still a bit unpredictable with manual suspend where it’ll just decide to wake up instantly for some reason, but once the automatic 15 minute inactivity is hit it seems to sleep with the lid closed.
#+END_QUOTE
[[https://community.frame.work/t/battery-drain-on-suspend-sleep-with-linux/42395/4][Battery Drain on Suspend/Sleep with Linux - Framework Laptop 13 - Framework Community]]
Captured On: [2024-03-03 Sun 06:14]
*** Note: Suspend Then Hibernate for Framework Laptop
#+BEGIN_QUOTE
In /etc/systemd/logind.conf I have the following relevant lines:

HandleLidSwitch=suspend-then-hibernate
HandleLidSwitchExternalPower=suspend-then-hibernate
IdleAction=suspend-then-hibernate

In /etc/systemd/sleep.conf I have these relevant lines:

#AllowSuspendThenHibernate=yes
HibernateDelaySec=720min
The AllowSuspendThenHibernate line is commented out but that is the default so it is fine.


#+END_QUOTE
[[https://community.frame.work/t/tracking-suspend-on-linux-drains-a-lot-of-battery-compared-to-other-laptop/24737/12][[TRACKING] Suspend on linux drains a lot of battery compared to other laptop - Framework Laptop 13 / Linux - Framework Community]]
Captured On: [2024-03-03 Sun 07:14]
** TODO [#B] Graphical Login
You're going to need this as you'll want to choose between hyprland and dwm
*** TODO SDDM?
  then systemctl enable sddm.service
**** Move All Startup Apps to Startdwm and Call Startdwm From Xinitrc
**** 2024-04-02 Tue @ 18:51:04 -0500 xinit-xsession doesn't work
Steps I followed:
install xinit-xsession to run .xinitrc as a session
.xinitrc needs to be executable

**** Note: How to Add 'dwm.desktop' as an SDDM Session
#+BEGIN_QUOTE
In /usr/share/xsessions/ directory I created a dwm.desktop file:

[Desktop Entry]
Encoding=UTF-8
Name=DWM
Comment=Log in using the Dynamic Window Manager
Exec=/usr/local/bin/dwm
Icon=/usr/local/bin/dwm.png
TryExec=/usr/local/bin/dwm
Type=XSession
and in my ~/.xinitrc file I have added these lines:

# Keyboard Layout
setxkbmap -layout us,gr -option grp:alt_caps_toggle &

# Compositor
picom -f &

#Add Wallpaper
nitrogen --restore &

#Execute DWM
exec dwm
Last edited by mikch (2022-05-15 18:11:34)

Offline

#22022-05-15 13:22:36
seth
Member

Registered: 2012-09-03
Posts: 50,327
Please use code tags, https://bbs.archlinux.org/help.php#bbcode

The xinitrc won't be sourced by SDDM, move that stuff (MINUS the "exec dwm"!) to ~/.xprofile

Edit: though it will then also be sourced by plasma.
In doubt create a /usr/local/bin/dwm.sh wrapper and run that instead.
#+END_QUOTE
[[https://bbs.archlinux.org/viewtopic.php?id=276424][[SOLVED]Cannot start DWM properly from SDDM session menu / Newbie Corner / Arch Linux Forums]]
Captured On: [2024-04-02 Tue 17:38]
**** Note: Starting DWM from SDDM
#+BEGIN_QUOTE
As root create a file like this:

$ cat /usr/share/xsessions/dwm.desktop
[Desktop Entry]
Encoding=UTF-8
Name=dwm
Comment=Dynamic window manager
Exec=dwm
Icon=dwm
Type=XSession
with these permissions

$ ls -l /usr/share/xsessions/dwm.desktop
-rw-r--r-- 1 root root 108 Jun 27 17:24 /usr/share/xsessions/dwm.desktop
Optionally rather than executing dwm directly you could execute a shell script instead that writes stdout / stderr to a file for logging purposes.

E.g.

Exec=startdwm
and

$ cat /usr/local/bin/startdwm
#!/bin/sh
echo "$(date): Starting dwn" >> /path/to/logs/$(date +%Y-%m-%d_%H.dwm.log)
dwm >> /path/to/logs/$(date +%Y-%m-%d_%H.dwm.log) 2>&1


$ ls -l /usr/local/bin/startdwm
-rwxr-xr-x 1 root root 204 Sep 19 14:12 /usr/local/bin/startdwm
#+END_QUOTE
[[https://www.reddit.com/r/suckless/comments/jj61py/how_do_i_make_dwm_appear_on_my_display_manager/][(3) How do I make dwm appear on my display manager? (lightDM) : suckless]]
Captured On: [2024-04-02 Tue 17:46]

** TODO [#B] Add Hyprland Config
:LOGBOOK:
- State "TODO"       from              [2024-11-30 Sat 17:00]
:END:

*** Reference
TechHeart
https://www.youtube.com/watch?v=iE99GrcZzhs

TypeCraft's Playlist
https://www.youtube.com/watch?v=2CP_9-jCV6A&list=PLsz00TDipIfeDrFeSA56W1wPrYYg_Kd-b
*** Hyprland Install

*** HyprPanel as the top bar
https://www.youtube.com/watch?v=6Dn9k8EX0-M
*** nwg-dock-hyprland as the doc
https://www.youtube.com/watch?v=16KX3vnbNcg
*** Other tools
https://www.youtube.com/watch?v=KA1jv40q9lQ
** TODO [#C] Graphical Boot
:LOGBOOK:
- State "TODO"       from              [2024-11-30 Sat 17:10]
:END:
Or perhaps just a black screen during boot if it's quick.
Low on the list, but it'll be weird to have nice UI after boot, but the boot's text raining.
** TODO [#C] Walk through ranger config
:LOGBOOK:
- State "TODO"       from              [2024-11-09 Sat 10:28]
:END:
** TODO [#C] Scenario Test & Bugfixes
*** Virtualbox Installation Testing
*** Reinstall Velox Using Latest
** TODO [#C] Robust Installation Using Local Packages
*** What Problem Am I Trying to Solve?
reinstall current configuration entirely offline
this includes building emacs and all packages
*** requirements
- local package store as current as the last installation
- all git repositories in same location as package store
- archsetup changes to use local if available, otherwise fallback to online repositories as normal.
*** nice-to-have
- bootable archinstall with archsetup
- script that reconfigures the local store as the package repository to use for installs
*** CANCELLED aconfmgr package and restore local package cache from elsewhere?
CLOSED: [2024-04-13 Sat 15:24]
**** Decision
This is a good tool, but not for my purposes. I can get what I want easier in other ways.

It's just too easy to make a mistake with aconfmgr and excluding files or packages by mistake.
Going through the first sort, there were too many files and packages I had no idea about
Excluding them could have been fine, but they could have been important dependencies
The only real way to find out what they do would be to remove them and see how the system runs, or
to see if they come in as a dependency of something else that's important.

It's just too much effort. Much easier to reinstall from scratch.
**** Info / Thoughts
https://github.com/CyberShadow/aconfmgr

would probably need to have aconfmgr script save on systemd timer, and notify when new in unsorted.

Elsewhere could be:
- git repo download (what if no wifi available, and how is this better than using official online repos)?
- local directory (more complex)
  need an attached drive or partition (maybe just partition the install this way?)
  maybe still use git clone as the copy mechanism? (no - probably no need to keep revisions)
  maybe rsync the package cache with --delete and then rsync in reverse during the archsetup script?
- regardless, I need to fallback to network connectivity if local repository fails

*** pacman trigger that copies packages somewhere that will function as local repository.

**** Example Trigger
#+BEGIN_QUOTE
# Force disks to sync to reduce the risk of data corruption
[Trigger]
Operation = Install
Operation = Upgrade
Operation = Remove
Type = Package
Target = *
[Action]
Depends = coreutils
When = PostTransaction
Exec = /usr/bin/sync
#+END_QUOTE
**** More info on triggers
[[https://man.archlinux.org/man/alpm-hooks.5][alpm-hooks(5) — Arch manual pages]]
Captured On: [2024-04-13 Sat 13:19]

** TODO [#C] Cleanup Dotfiles Repository
The .dotfiles repo has configuration for applications I no longer use.
** TODO [#C] Test new apps
:LOGBOOK:
- State "TODO"       from              [2024-11-09 Sat 10:24]
:END:
- [ ] foliate setup properly with resetmimetypes and calibre
- [ ] boxbuddy tested
- [ ] gnome-boxes tested
- [ ] archdev created
** VERIFY [#C] Add Gnome Boxes to ArchSetup
:LOGBOOK:
- State "TODO"       from              [2024-11-07 Thu 12:32]
:END:

** VERIFY [#C] Add OBS Studio
:LOGBOOK:
- State "TODO"       from              [2024-11-07 Thu 12:32]
:END:

** VERIFY [#C] Add Picom
:LOGBOOK:
- State "TODO"       from              [2024-11-07 Thu 12:32]
:END:

** Add vpcserver to archsetup
https://gist.github.com/miguelmota/9cd15049843ddf1ee1a52196f5c7e5ea
* ArchSetup Backlog
** TODO [#D] Rewrite Archsetup in Another Language
There's no current way to test each function, and Archsetup's complexity will grow
*** Which Language?
**** Python
| pros                              | cons                              |
|-----------------------------------+-----------------------------------|
| text based and easily inspectable | needs the interpreter installed   |
| more engineers can contribute     | unit testing frameworks not great |
| great libraries                   |                                   |
| ablity to curl and pipe?          |                                   |
**** Go
| pros                               | cons                            |
|------------------------------------+---------------------------------|
| no interpreter needed              | opaque binary; less credibility |
| great unit test framework built-in |                                 |

** TODO [#D] Evaluate i3 / Sway to Duplicate DWM Workflows
** TODO [#D] Evaluate Rofi Menus
** TODO [#D] Evaluate Binding the Right Alt Key to Mod4 Using Xmodmap
#+BEGIN_QUOTE
Bind the right Alt key to Mod4
When using Mod4 (the Super/Windows Key) as the MODKEY, it may be equally convenient to have the right Alt key (Alt_R) act as Mod4. This will allow you to perform otherwise awkward keystrokes one-handed, such as zooming with Alt_R+Enter.

First, find out which keycode is assigned to Alt_R:

$ xmodmap -pke | grep Alt_R
Then simply add the following to the startup script (e.g. ~/.xinitrc), changing the keycode 113 if necessary to the result gathered by the previous xmodmap command:

Reassign Alt_R to Super_L:

xmodmap -e "keycode 113 = Super_L"
Make sure X keeps it out of the "mod1" group:

xmodmap -e "remove mod1 = Super_L"
After doing so, any functions that are triggered by the Super_L key press will also be triggered by an Alt_R key press.

Note: There is a #define option in config.h which also allows you to switch the modkey.
#+END_QUOTE
[[https://wiki.archlinux.org/title/Dwm][dwm - ArchWiki]]
Captured On: [2024-04-02 Tue 17:42]
* ArchSetup Reference/Research
** Info on Local Pacman Cache/Mirror
[[https://bbs.archlinux.org/viewtopic.php?id=242471][Use pacman cache as local package mirror / Pacman & Package Upgrade Issues / Arch Linux Forums]]
Captured On: [2024-04-13 Sat 12:07]
** Zorin OS Code
    Z217-1PVI-K50J-GYDA
** Arch Install Steps
*** References
[[https://youtu.be/zQQN3Pj4K0Y?list=PLHlcDXHFansDuXdFbU2XZXoNOGQiq1zr3][Stephen's Tech Talks: Arch Linux the Easy Way: Encrypted Wayland KDE, Timeshift, Working Boot from Snapshots]]
*** Arch Install Choices
These are saved as "user_configuration.json" and "user_credentials.json" in the assets folder

**** Disk Layout
- Wipe all selected drives and use a best-effort default partition layout
- Select btrfs
- Select "yes" to using BTRFS subvolumes with a default structure
- Select "yes" to BTRFS compression
**** Encryption password
This is the LUKS encryption password. Choose whatever password you like.
**** Bootloader
- Select "yes" to "use GRUB as bootloader instead of systemd-boot"
**** Profile
- Choose minimal
**** Kernels
- Choose linux
**** Additional Packages
git neovim openssh terminus-font
**** Optional Repositories
Select multilib
*** Chroot Activities
After checking these items, you can exit and reboot
**** Check /etc/fstab
change relatime to noatime for SSD performance
remove space_cache=v2 as it's redundant
**** Check /etc/default/grub
check that encryption is setup properly (look for cryptdevice in grub_cmdline_linux)
add video=1920x1080 in grub_cmdline_linux_default after "loglevel-3 quiet"

if you modify anything, make sure to type

grub-mkconfig -o /boot/grub/grub.cfg
**** Check /etc/mkinitcpio.conf
check MODULES=(btrfs)
ensure that the HOOKS= line has encrypt before filesystems