Configuration scripts and notes in literate style configuration using Org-Babel. The configurations kept here are for the following machines:
euclid-red
that runs Manjaro with StumpWM (X). This is primarily a keyboard driven system (Legion Y720) and stays at my home workspace.euclid-blue
that runs Manjaro with GNOME (Wayland). This is a convertible laptop (HP Spectre x360) that I use to move around, read, and take notes.euclid-black
is my Android based cell phone.euclid-white
is an M1 Macbook Air (2020) from my current workplace.euclid-silver
is a Raspberry PI 4 with Home Assistant OS used for home automation and other home network applications.
Name prefix has a historical reason. There are a few other cloud machines other than these. The repository itself has a few other items and assets that might not be connected with the process in this org file.
My current OS is Manjaro across almost all Linux systems so this stage is common across my two main machines.
uname -a
Install yay
before going ahead:
pacman -S yay
For blue:
yay -S $(grep -vE "^\s*#" ./packages/manjaro.euclid-blue | tr "\n" " ")
For red:
yay -S $(grep -vE "^\s*#" ./packages/manjaro.euclid-red | tr "\n" " ")
Now that fish
is installed, we will set it as the default shell.
chsh -s $(which fish)
Install fish packages
# Install fisher
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
for p in (cat ./fish/.config/fish/fishfile)
fisher install $p
end
stow -t ~/ fish
stow -t ~/ git
stow -t ~/ scripts
All of these are for the main machine running StumpWM.
stow -t ~/ stumpwm
stow -t ~/ polybar
stow -t ~/ dunst
stow -t ~/ picom
stow -t ~/ redshift
Use theme set up from here and the following colors.
/* colors */ * { al: #00000000; bg: #2E3440ff; se: #374C6Bff; fg: #D8DEE9cc; ac: #81A1C1ff; red: #434C5Eff; green: #475C6Bff; yellow: #8a9899ff; blue: #42A5F5ff; purple: #B48EADff; cyan: #4DD0E1ff; }
Need two sbcl setups. The one from main repo is going to run stumpwm with swank. The following snip setups that. Needs quicklisp:
sbcl --eval "(ql:quickload '(clx-truetype swank stumpwm cl-strings inferior-shell))" --quit
mkdir -p ~/stumpwm
Clone the repo and use make from there on
git clone https://github.com/stumpwm/stumpwm
# Should checkout to some version
git clone https://github.com/stumpwm/stumpwm-contrib ./contrib
Here goes the xinitrc
#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
exec stumpwm
chmod +x ~/.xinitrc
I might also need to disable the default display manager. See this.
There might be a font loading issue which is fixed by (xft:cache-fonts)
.
Few fonts are already installed when I install the basic packages. Rest are listed here.
git clone [email protected]:lepisma/iosevka-lepisma /tmp/iosevka-lepisma
mkdir /usr/share/fonts/iosevka/
mv /tmp/iosevka-lepisma/ttf/patched/*ttf /usr/share/fonts/iosevka/
Override medium fonts
yes | cp iosevka/iosevka-lepisma-regular.ttf iosevka/iosevka-lepisma-medium.ttf
yes | cp iosevka/iosevka-lepisma-italic.ttf iosevka/iosevka-lepisma-mediumitalic.ttf
yes | cp iosevka/iosevka-lepisma-oblique.ttf iosevka/iosevka-lepisma-mediumoblique.ttf
fc-cache -f
git clone [email protected]:edwardtufte/et-book /tmp/et-book
mkdir /usr/share/fonts/et-book/
mv /tmp/et-book/et-book/*/*.ttf /usr/share/fonts/et-book/
fc-cache -f
(require 'all-the-icons)
(all-the-icons-install-fonts)
I use Konsole as the terminal emulator across machines.
[Appearance]
AntiAliasFonts=true
BoldIntense=true
ColorScheme=Nordic
Font=Iosevka,12,-1,5,50,0,0,0,0,0
LineSpacing=4
UseFontLineChararacters=false
[Cursor Options]
CursorShape=1
[General]
Command=/usr/bin/fish
DimWhenInactive=false
Directory=/home/lepisma/Desktop
LocalTabTitleFormat=%d | %n
Name=lepisma
Parent=FALLBACK/
RemoteTabTitleFormat=%d | %n
TerminalCenter=false
TerminalMargin=10
[Interaction Options]
AutoCopySelectedText=true
[Scrolling]
HistoryMode=2
ScrollBarPosition=2
[Terminal Features]
BlinkingCursorEnabled=true
UrlHintsModifiers=67108864
cp ./konsole/Nordic.colorscheme ~/.local/share/konsole/Nordic.colorscheme
Programming language setup as needed. I only keep primary languages here and rest as on-demand.
First set up pyenv.
pip install -r ./packages/pip
IPython init
get_ipython().magic("%load_ext autoreload")
get_ipython().magic("%autoreload 2")
I use node primarily for a few CLI tools listed here.
On this machine, I use a combination of offlineimap and mu4e.
stow -t ~/ offlineimap
Create .authinfo.gpg
file in ~~/~ with two items like the following for each
account:
# -*- epa-file-encrypt-to: ("<gpg-key-email-id>") -*- machine imap.gmail.com name gmail-imap port 993 login <> password <> email <> machine smtp.gmail.com name gmail-smtp port 465 login <> password <> email <>
[Desktop Entry]
Type=Application
Name=Compose Mail
Exec=/home/lepisma/bin/compose-mail %u
StartupNotify=false
MimeType=x-scheme-handler/mailto
Dumping commands. Need to enable bluetooth service and stuff.
pacmd list-sinks | grep -e 'name:' -e 'index:'
pacmd set-default-sink <n>
>>>>>>> ce96b50 (add example for authinfo entry)
I have been using geary here and that works well.
As a common item, I have a script www
that dispatches urls to the right browser.
That’s supposed to be set as the primary web handler.
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=/home/lepisma/bin/www
Name=www
Comment=Browser dispatch
Org protocol for capturing literature nodes
[Desktop Entry]
Name=Org-Protocol
Exec=emacsclient %u
Icon=emacs-icon
Type=Application
Terminal=false
MimeType=x-scheme-handler/org-protocol
xdg-mime default feh.desktop image/jpeg
xdg-mime default feh.desktop image/png
xdg-mime default www.desktop x-scheme-handler/http
xdg-mime default www.desktop x-scheme-handler/https
xdg-mime default compose-mail.desktop x-scheme-handler/mailto
xdg-mime default org.kde.okular.desktop application/pdf
xdg-mime default org-protocol.desktop x-scheme-handler/org-protocol
handlr set inode/directory nautilus.desktop
handlr set .doc org.onlyoffice.desktopeditors.desktop
handlr set .docx org.onlyoffice.desktopeditors.desktop
I don’t have much customization here and I let GNOME handle most of items.
xdg-mime default www.desktop x-scheme-handler/http
xdg-mime default www.desktop x-scheme-handler/https
xdg-mime default org-protocol.desktop x-scheme-handler/org-protocol
Hardware specific configurations or installation steps.
For Wacom One, run configure-tablet
.
Two finger for right click.
Section "InputClass"
Identifier "touchpad overrides"
Driver "libinput"
MatchIsTouchpad "on"
Option "Tapping" "on"
Option "TappingButtonMap" "lrm"
EndSection
Swap keys on laptop’s main board.
clear lock
clear control
keycode 66 = Control_L
add control = Control_L Control_R
Installed KMonad and set up the service for macropad.
My laptop has Intel and Nvidia card. I switch to just Nvidia drivers which works
well for me. Relevant portion for xinitrc
:
# Goes above exec stump..
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
Import config from ~~./streamdeck~.
Install tlp
(already done in package installation), and enable the service.
systemctl enable tlp.service
systemctl start tlp.service
Installed KMonad and set up this service for colemak-dh.
Firefox needs some configuration to enable intuitive scrolling in touchscreen laptops. Here is a guide.