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
|
# Rahm's Rice'd Desktop Environment
This is Rahm's desktop environment. Namely it's an amalgamation of scripts,
executables, scum, villany, and configuration all duct-taped together to create
a marginally functional desktop environment of dubious stability, but it seems
to be pretty good.
[](https://git.josher.dev/cgit/rde.git/)
(BTW, I'm not actually in Dallas, I'm in the same place as Mr. Money Moustache,
and yes, I use Arch btw)
# Requirements
* Definitely need GHC. If you use Hugs, you deserve the pain.
* X11, duh!
* Xinerama is helpful
* Monofur NERD Font. Should be included with the NERD fonts package.
* GCC, because when I take off my Functional Programmer hat, I put on my
systems-dev glasses.
* Perl, because when I take off my systems-dev glasses, I put on my UNIX beard.
* Not Python, because when I take off the UNIX beard I skip the Soy latte and go
back to the FP hat.
* Knowledge of Linux/Unix or an intense desire for masochism (which, as
long as it's consensual, I'm totally fine with.)
* Linux. BSD support is coming, be patient!!
* Not Winblows -- Get out of here
* Not MacOS -- I don't have a clever pejorative.
# Configuration
## Window Manager
The window manager is XMonad, obviously, but _heavily_ configured.
The way I configured XMonad is to be similar to Vim in that some keys are
actually modal. I.e. require another key-press to effectuate the system
Probably the biggest difference between this configuration and standard
configurations is that there are _many_ workspaces. Actually, there are 36
workspaces, one for each letter and digit (in the English alphabet).
Navigating between all these workspaces is easy, though, just type Mod+g
followed by the workspace you're trying to go to! (G stands for 'go' btw).
### Some things to note
I type in Programmer Dvorak (because of course I do) so many of the key bindings
make little to no sense on QWERTY layout and should probably be changed by the
user. It's in my TODO list to make a QWERTY variant, but I haven't gotten to it.
_Also_ my ModKey is the Hyper key (because of course it is!), which the astute
among you might notice does not actually exist on the keyboard. Aha! [Rahm's XKb
Layout](https://git.josher.dev/cgit/rkb.git) strikes again! I have remapped
pretty much all my modifier keys and reanimated the long-dead Hyper key! "But,
Rahm, you handsome, yet dark and mysterious \*nix landchad, why would you use
such a key no one uses?", I hear you ask. Well, my delightful, yet young
compatriot, it is precisely because no one uses it that I use it. See, it is a
decent way of preventing conflicting bindings in other applications! Plus it
opens the door for using the Super key is [Rahm's patched
Alacritty](https://git.josher.dev/cgit/r-alacritty.git) and thus use it in
[Rahm's patched Neovim](https://git.josher.dev/cgit/rneovim.git) to potentially
program some of [Rahm's STM32 Christmas
Lights](https://git.josher.dev/cgit/stm34l4.git). **Anyway**, the salient point
is that I recommend you learn Programmer Dvorak and switch your keyboard layout
to [Rahm's XKb Layout](https://git.josher.dev/cgit/rkb.git), but in the off
chance you decide against that, you can change the mod key to Super in
`Main.hs`.
## Bar
The Bar Is XMobar, of course, but again, heavily modified.
### Features
* OS Logo
* For Debian, Arch, Ubuntu and BSD
* Kernel version
* Date
* Shows workspace layout as icon (I'm quite proud of this! It took forever to
get working!)
* Workspaces
* Red is current
* Blue is not current, but visible
* Gray is not visible
* Window Name
* Time
* CPU and Mem Usage displayed as dashes.
* Weather Info
* Spotify Info
* Bluetooth Info
* Battery Info
## Battery
XMobar's battery plugin is not quite good enough. I want to be able to display
an icon as I'm charging, etc. So, I included a battery monitor C program
designed to interface with XMobar. Namely the program is in
`xmobar/extras/battery/battery.c`.
## Weather
The Weather is controlled by a barely functional Perl script which Hard Codes
the weather station to KLMO (Longmont, CO). Maybe you should change that? The
TODO here is to use wttr.in, but I'm too lazy to fix it.
## Spotify
If you don't use Spotify, then I'm sorry. It's one of the pieces of proprietary
garbage (PG, for short) I allow on my system (along with the Nvidia Drivers and
Intel Management Sytem, ick).
Rde is admittedly coupled with Spotify, and contains a spotify-control
script to work with it. Maybe you should make that script work with your media
player?
## Bluetooth
The `bluetooth-select` script allows the user to connect to bluetooth devices.
If you haven't paired your bluetooth device yet, maybe you should use
`bluetoothctl`?
## Compositor
Picom/Compton is my compositor, and it mostly works, but sometimes doesn't.
|