My dotfiles
Arch Linux build:
- display server: Xorg (X11)
- no desktop environment
- display manager: LightDM
- window manager: XMonad
- compositor: yshui/picom
Install xorg-server
https://wiki.archlinux.org/title/Xorg
Install picom
Install the following packages
pipewire wireplumber pipewire-pulse pipewire-alsa pavucontrol
Install LightDM and its GTK greeter
lightdm lightdm-gtk-greeter
Enable lightdm.service
Copy lightdm/lightdm-gtk-greeter.conf to /etc/lightdm/
https://wiki.archlinux.org/title/LightDM#Installation
Main fonts
ttf-inconsolata ttf-roboto noto-fonts ttf-dejavu ttf-liberation
Emoji font
noto-fonts-emoji
Refresh font cache
fc-cache
fc-listFirst create the directory /usr/local/share/fonts/ttf/ and
place any custom fonts under it
Important
Most of the required system deps should be already installed (via xorg).
But some of them could be missing and need to be installed,
like libxss ref
Then install stack. Take the bin version from AUR to avoid the
plethora of Haskell dependencies.
rua install stack-binClone the sources in /opt/xmonad
git clone https://github.com/xmonad/xmonad
git clone https://github.com/xmonad/xmonad-contribCopy the config file xmonad/xmonad.hs to /opt/xmonad/.
Copy the xmonad/lib directory to /opt/xmonad/ (it contains a
custom layout).
Init the project to generate the stack.yaml file
stack initstack installXmonad expects xmonad.hs and stack.yaml to be in
~/.config/xmonad/
Use symlinks instead (does not make sense to have source files
under the config directory)
cd ~/.config/xmonad
ln -s /opt/xmonad/xmonad.hs xmonad.hs
ln -s /opt/xmonad/stack.yaml stack.yamlsource: https://xmonad.org/INSTALL.html
Copy xsessions/xmonad.desktop in /usr/share/xsessions
source: https://wiki.archlinux.org/title/Display_manager#Session_configuration
Clone the sources and build the project
git clone https://codeberg.org/xmobar/xmobar.gitOverride stack.yaml to only build needed features
cp xmobar/stack.yaml .Add xmobarrc to ~/config/xmobar/.
Finally build and install it
stack installrofi dmenu clipmenu trayer shotgun graphicsmagick xwallpaper
udiskie xclip slop gpick ouch
aur
trashy
sudo pacman -S xdg-user-dirs
xdg-user-dirs-updatesource: https://wiki.archlinux.org/title/XDG_user_directories
Tip
To remove unwanted dirs like ~/Desktop, ~/Templates or ~/Public
just rm -rf them then run xdg-user-dirs-update
Install i3lock-color from AUR
Copy systemd_unit/[email protected] to /etc/systemd/system/
and enable it
sudo systemctl enable [email protected]
https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Sleep_hooks
Install materia
materia-gtk-theme
edit .config/gtk-3.0/settings.ini
[Settings]
gtk-icon-theme-name = Papirus
gtk-theme-name = Materia-dark
gtk-font-name = Roboto 12
edit ~/.gtkrc-2.0
gtk-icon-theme-name = "Papirus"
gtk-theme-name = "Materia-dark"
gtk-font-name = "Roboto 12"
For gnome apps
gsettings set org.gnome.desktop.interface gtk-theme Materia-dark
gsettings set org.gnome.desktop.interface color-scheme prefer-dark
gsettings set org.gnome.desktop.interface icon-theme Papirus
gsettings set org.gnome.desktop.interface cursor-theme Paper
gsettings set org.gnome.desktop.interface cursor-size 48flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gtk.Gtk3theme.Materia-darkInstall hicolor-icon-theme and papirus-icon-theme Papirus
Edit /usr/share/icons/default/index.theme
[Icon Theme]
Inherits=Papirus
https://wiki.archlinux.org/title/Icons#Manually
Install https://github.com/snwh/paper-icon-theme
Important
install under /usr (cmake prefix) as it must be accessible
by lightDM which supports only /usr/share/icons path
To apply the theme edit .Xresources
Xcursor.theme: Paper
https://wiki.archlinux.org/title/Cursor_themes
Install xwallpaper package
xwallpaper is spawned by XMonad
The wallpaper image is defined by $BG_PRIMARY env variable
eg. in .xprofile
export BG_PRIMARY=$HOME/Pictures/dark_ocean.pngDPI is set in .Xresources
Xft.dpi: 144
it will be loaded during display manager (ligthdm) starts and sources .xprofile
[[ -f "$home/.Xresources" ]] && xrdb -merge $home/.Xresourcessources:
- https://wiki.archlinux.org/title/HiDPI#X_Resources
- https://wiki.archlinux.org/title/LightDM#Environment_variables
larger font for linux console
$ sudo pacman -S terminus-fontadd in /etc/vconsole.conf
FONT=ter-v22b
FONT_MAP=cp437
source: https://wiki.archlinux.org/title/HiDPI#Linux_console_(tty)
The following notes are relevant to the installation of ArchLinux.
cd /var/lib/flatpak/exports/share/applicationsrename the links to match this format: obs.desktop, vlc.desktop
To prevent the journal to take 4Gb space of disk memory copy the
configuration file 00-journal-size.conf (from the conf dir in
this repo) into /etc/systemd/journald.conf.d/ directory (create it)
(the default is 4Gb)
source: https://wiki.archlinux.org/title/Systemd/Journal#Journal_size_limit
Install gnome-keyring and libsecret
Enable the following systemd user unit (⚠ no sudo)
systemctl --user enable gcr-ssh-agent.socketSet the env var SSH_AUTH_SOCK to /run/user/1000/gcr/ssh
(.xprofile/ fish config)
→ https://wiki.archlinux.org/title/GNOME/Keyring
about:config tweaks:
- increase UI size
ui.textScaleFactor 180
- scrollbar width
widget.non-native-theme.scrollbar.size.override 48
widget.non-native-theme.enable true
install
bluez bluetui
start/enable bluetooth.service
To customize the speed use the magic trackpoint multiplier
First, find the device name
sudo libinput list-devices | rg -i trackpoint
Create /etc/libinput/local-overrides.quirks
[Trackpoint Override]
MatchUdevType=pointingstick
MatchName=*TPPS/2 Elan TrackPoint*
AttrTrackpointMultiplier=1.5
Default multiplier value is 1.0
ref:
https://wayland.freedesktop.org/libinput/doc/latest/trackpoint-configuration.html\
ref https://wiki.archlinux.org/title/TrackPoint#device-quirks