Skip to content

Repository files navigation

dwm

My current dwm build and my daily driver. For readme and installation, visit it's repo.

Eww

Here's the config.

chastity

MacOS inspired Openbox™ rice. Reddit post.

Other Rices

older dwm designs

Pome 2.0

My daily driver before chastity using BerryWM. Reddit post.

Pome

Made using 2bWM. Reddit post.
2bwm is doesnt seem to be very power efficient so not recommended.


Note

My older rices (endless on dwm, and dkwm) would be in my junkyard and dwm repo.

Overview

Dependencies

Type Software/Packages
terminal st
shell zsh zsh-syntax-highlighting
editor neovim
file manager lf bat ueberzug
window manager openbox obconf lxappearance xorg-server xorg-xinit
app launcher rofi
bar, dock polybar plank
browser firefox
image viewer nsxiv
document reader sioyek
video player mpv
music mpd ncmpcpp
torrent transmission tremc
font management gucharmap

Directory Structure and Whereabouts

$HOME
├── .config
├── .local
│   ├── share
│   │   ├── fonts
│   │   ├── icons # ~/.icons is linked to here
│   │   ├── themes # ~/.themes is linked to here
│   │   └── music
│   │       ├── playlists
│   │       └── lyrics
│   ├── scripts # shell scripts
│   └── bin # local binaries
├── code
├── dlds
├── dox
│   └── quotes # quote script fetches from here
├── mus
│   ├── **/*.mp3
│   └── dlmus # download music script
├── pix
│   ├── scrots # screenshots
│   └── assets
│       └── icons # icons for notifications
└── vids
    └── watch_later # watchvid script downloads here using yt-dlp

Keybindings

Read through ~/.config/openbox/rc.xml for more shortcuts.

Keybind Function
MOD + Enter Launch terminal (st)
MOD + Q Close window
MOD + {H,J,K,L} Move the window to {Left, Down, Up, Right}
MOD + Shift + {H,J,K,L} Resize the window
MOD + Shift + F Monocle a window
MOD + F Fullscreen a window
MOD + P Open app launcher
MOD + S List out the useful scripts in ~/.local/scipts/ in rofi
MOD + Shift + S Take Screenshot (using maim and slop)
MOD + R Open lf (terminal file manager)

Note: MOD is the windows key

Installation

I am working on a script, but till it's done, you'll have to follow the steps manually. Create an issue if you encounter a problem.

1. Install the Dependencies

This command is for arch. You'll have to search the corresponding package names yourself for the package manager you use.

paru -S zsh zsh-syntax-highlighting neovim lf bat xorg-server xorg-xauth xorg-xinit openbox obconf lxappearance ueberzug redshift rofi firefox nsxiv sioyek mpv mpd ncmpcpp transmission-cli tremc-git gucharmap polybar plank xorg-xset xorg-xrdb xorg-xsetroot xorg-setxkbmap xclip maim slop dunst libnotify imagemagick xcolor xdo xdotool wmctrl light pamixer pulsemixer stow ffmpeg ffmpegthumbnailer cronie

Search for packages in your package manager.

$ apt search "<string you want to query>"
$ xbps-query -Rs "<string you want to query>"
$ pacman -Ss "<string you want to query>"

2. Clone the Repo

Clone the repo into ~/.local/repos/. Change this directory to your liking, but make sure it is somewhere organised.

mkdir -p ~/.local/repos
cd ~/.local/repos
git clone https://github.com/savar95x/dotfiles
cd dotfiles

3. Symlink Dotfiles

This will backup conflicting configs and symlink my dots instead.

./linkdots.sh

4. Build and install Binaries

Important

Build and install at least the Terminal, rest are optional

Terminal (st)
git clone https://github.com/savar95x/st
cd st
./compilest
cd ..
auto-cpufreq
git clone https://github.com/AdnanHodzic/auto-cpufreq
cd auto-cpufreq
./auto-cpufreq-installer
cd ..
yt-dlp
curl -LO https://github.com/yt-dlp/yt-dlp/releases/download/2024.12.23/yt-dlp
chmod +x ./yt-dlp
mv yt-dlp ~/.local/bin/
spotdl (in a virtual env)
python -m venv ~/.local/venv
~/.local/venv/bin/python -m pip install --upgrade pip
~/.local/venv/bin/pip install spotdl
gotop
curl -LO https://github.com/cjbassi/gotop/releases/download/3.0.0/gotop_3.0.0_linux_amd64.tgz
tar xvf gotop_3.0.0_linux_amd64.tgz
chmod +x ./gotop
mv gotop ~/.local/bin/
rm gotop_3.0.0_linux_amd64.tgz
more
sudo pacman -S hugo syncthing zed

5. Drivers and Audio

Note

Ignore this if you use user-friendly distros

sudo pacman -S xf86-input-libinput mesa vulkan-intel intel-media-driver
sudo pacman -S pipewire wireplumber bluez bluez-utils sof-firmware

6. Theme, Icons and Fonts

mkdir -p ~/.local/share/themes
ln -s ~/.local/share/themes ~/.themes
mkdir -p ~/.local/share/icons
ln -s ~/.local/share/icons ~/.icons
mkdir -p ~/.local/share/fonts


Icon pack is Numix circle. Clone this into ~/.icons/
GTK theme is Gruvbox Material. Clone this into ~/.theme/
Cursor is Simp1e. Extract and copy this into ~/.icons/ as well.

Once copied, you can set these using lxappearance.

Openbox theme is mine. cd into dotfiles/.

cp -r .assets/chastity/gruvopenbox ~/.themes/gruvbox

Set it using obconf.

The fonts I use are Schibsted Grotesk, Inter, and Fragment Mono. Polybar icons are from nerd fonts symbols and font awesome. Make sure their files (.ttf or .otf) are extracted (somewhere) in ~/.local/share/fonts/

Run this once after extracting fonts

fc-cache -fv

7. Notification Icons

           

cd into the dotfiles/ directory.

mkdir -p ~/pix/assets
cp -r .assets/icons ~/pix/assets/icons

This directory has been hardcoded for now, I am yet to update the scripts to use $XDG_PICTURES_DIR instead of ~/pix.
You can of course change them yourself if you'd like.

8. Periodic Notifications (using cronjob)

Enable cronie.

sudo systemctl enable cronie

Type crontab -e in the command-line and add the following line

# periodic notifications
30 * * * * ~/.local/scripts/health
0 */2 * * * ~/.local/scripts/quote

For cron to be able send notifications, it needs the active session's dbus ID, which has been taken care of by producing ~/.dbus/Xdbus while logging into openbox ;)

9. Change Default Shell to zsh

ln -s ~/.config/zsh/rc ~/.zshrc
ln -s ~/.config/zsh/profile ~/.zprofile
chsh -s /usr/bin/zsh

Launching

Caution

If your system somehow manages audio, you might consider commenting the audio_server.sh command in ~/.zprofile

If you do not use a display manager, openbox should launch itself when you login from tty1 with zsh as the default shell.
If it doesn't, something might be wrong, check if you linked .zprofile.
You can try doing this though

[ -f ~/.xinitrc ] && mv ~/.xinitrc ~/.config.bak/
ln -s ~/.config/x11/openbox ~/.xinitrc

Then run

startx

todo for myself
push transmission-daemon and redshift config from older laptop
also, backup the hugo precompile directory somehow

About

configuration files for my daily driver

Resources

Stars

106 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages