Development for this project has moved to sourcehut here. This repository is now in a read-only state.
Configuration scripts and notes in literate style configuration using Org-Babel. The configurations kept here are for the following machines:
euclid-redthat runs Manjaro with StumpWM (X). This is primarily a keyboard driven system (Legion Y720) and stays at my home workspace.euclid-bluethat runs Manjaro with GNOME (Wayland). This is a convertible laptop (HP Spectre x360) that I use to move around, read, and take notes.euclid-blackis my Android based cell phone.euclid-whiteis an M1 Macbook Air (2020) from my current workplace.euclid-silveris 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 -aInstall yay before going ahead:
pacman -S yayFor 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
endstow -t ~/ fish
stow -t ~/ git
stow -t ~/ scriptsAll of these are for the main machine running StumpWM.
stow -t ~/ stumpwm
stow -t ~/ polybar
stow -t ~/ dunst
stow -t ~/ picom
stow -t ~/ redshiftUse 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 ~/stumpwmClone 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 ./contribHere goes the xinitrc
#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
exec stumpwmchmod +x ~/.xinitrcI 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 git@github.com: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 -fgit clone git@github.com: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.colorschemeProgramming language setup as needed. I only keep primary languages here and rest as on-demand.
First set up pyenv.
pip install -r ./packages/pipIPython 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 ~/ offlineimapCreate .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/mailtoDumping 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 dispatchOrg 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-protocolxdg-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.desktopI 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-protocolHardware 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"
EndSectionSwap keys on laptop’s main board.
clear lock
clear control
keycode 66 = Control_L
add control = Control_L Control_RInstalled 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 --autoImport config from ~~./streamdeck~.
Install tlp (already done in package installation), and enable the service.
systemctl enable tlp.service
systemctl start tlp.serviceInstalled KMonad and set up this service for colemak-dh.
Firefox needs some configuration to enable intuitive scrolling in touchscreen laptops. Here is a guide.