Welcome to my GitHub repository of personal dotfiles! ๐ Here you can find configuration files for various desktops, tho this is still a Work-In-Progress thing.
- Alacritty as the terminal.
- Catppuccin as the color scheme.
- WormWM as the window manager.
- Picom as the compositor.
- EWW as the widgets [Dashboard, Bar and Sidebar]
- Rofi as the application launcher.
- SLiM as the Display Manager.
- Dunst as the notification daemon.
- Conky as the desktop eyecandy.
- jgmenu as the desktop root menu.
- AltTab as the window switcher.
There are some figma files that you might need while configuring the dotfiles.
You only need these figma files if you are not using my dotfiles, and just need these things. You only need the Lock Screen
figma file while using my dotfiles, and that too if you are using the SLiM greeter. Editing it is very easy.
- The lock screen (Since it is just glued, lol.) -> Figma
- The Conky background -> Figma
- The Lock Screen Background -> Figma
I will try my best to make the installation procedure easier. However, if you need help, feel free to DM me on Discord: Syndrizzle#3826
or you can open an issue on github. ๐
For this setup, you need the following packages:
- WormWM [The main window manager :p]
- EWW [๐ฎ For the beautiful things!]
- Conky [For desktop widget]
- Dunst [For Notifications]
- tint2 [For System Tray]
- jgmenu [For root desktop menu] For jgmenu, pleae edit the
~/.config/jgmenu/prepend.csv
to change the username of the home directory fromsyndrizzle
to your linux username, since jgmenu only recognizes absolute paths for some reason. - rofi [For the application launcher]
- Alacritty [๐ Blazing fast terminal emulator]
- Nitrogen [Wallpaper app]
- Picom (Jonaburg Fix) [The compositor! But with fixes to support shadows with blur โจ]
- Sxhkd [Keybindings Manager]
- PrimeNote [๐ Sticky notes!]
- AltTab [The window switcher for window managers!!]
- XFCE4 Power Manager [As the Power Management Daemon]
- Parcellite [Clipboard Manager]
- Greenclip [Clipboard frontend using rofi.]
- Light & Brightnessctl [Brightness controllers, Some scripts require these programs.]
- Pamixer [Pulseaudio command line mixer, again some scripts require this program.]
- PipeWire [I am using pipewire as my audio backend mainly due to the excellent bluetooth support it provides. However, I think the scripts should work with pulseaudio tho I have not tested it. Open an issue if you think they don't.]
- And various other programs you will need for the scripts to work. Look at the commands below:
Installing WormWM is a bit weird, since it is written in nim, you will need to compile it using the Nim compiler, however using the nim that comes with your package manager on Fedora gave me an error [On ArchLinux it works fine, I have not tested it on ubuntu], so it is recommended to always grab the nim compiler binary directly. The steps are given below:
1. On ArchLinux Simply run:
paru -S worm-git nim
to install it using your favorite AUR helper.
2. On Fedora/Ubuntu We will be using choosenim for this purpose. To install it on your home folder, run this command:
curl https://nim-lang.org/choosenim/init.sh -sSf | sh
Make sure you have curl installed, if not do sudo apt install curl
for ubuntu, sudo dnf install curl
for fedora and sudo pacman -S curl
on ArchLinux.
It usually installs nim on /home/your-username/.nimble/bin
. Next you will need to add it to your path, for that just copy and paste the command it gives you after the installation in your .bashrc
, or if using fish, paste the command in ~/.config/fish/config.fish
. Restart your terminal afterwards.
After installing choosenim, we can finally move on to installing worm.
CD into your ~/Downloads
folder and run:
git clone https://github.com/codic12/worm.git && cd worm
Now run
nimble build -d:release
to compile the window manager.
The static worm binary will be available to you after this step, just move it somewhere in your path, For example,
sudo mv worm /usr/bin/worm
Since we are using SLiM Display Manager, we don't need an Xsession file for the window manager. Instead, SLiM relies on ~/.xinitrc
file, so we just need to append the worm
command inside the file.
Next we need to install EWW widgets, but for that, we need the nightly
version of the Rust programming language to be available on your system.
1. On ArchLinux The rust nightly binary is available in the AUR, you can get it by
paru -S rust-nightly-bin
2. On Fedora/Ubuntu
For this purpose, we will be using rustup
, a rust toolchain installer. Similar to choosenim, it has an installation script.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Now we need to customize the installation, select 2
to change how the installer installs rust. Press Enter/Return
for Default host triple
, next in order to switch to the nightly toolchain, type nightly
when it asks for it. Just press Enter/Return
for everything else and begin the installation. Rustup usually installs the compiler at /home/your-username/.rustup
. Rustup automatically adds the compiler and the cargo packager to your path, in .zshrc
, .bashrc
or .profile
.
Since we are done with installing Rust, it is time to install Eww!
CD into your ~/Downloads
folder and run:
git clone https://github.com/elkowar/eww.git && cd eww
Now, we will have to compile the Eww binary, it is always faster to allow rust to use all your threads when compiling, for that, run the following:
cargo build --release -j $(nproc)
The above command will build EWW using all the threads you have, this still usually takes 5-10 minutes on an 8 threads CPU. Once it is done compiling, we will need to move the EWW binary to your /usr/bin
folder, just run
sudo mv target/release/eww /usr/bin/eww && sudo chmod +x /usr/bin/eww
This installs EWW to your /usr/bin
folder and makes it executable.
With this we are done with the installation of EWW. Now we have to install the packages that we would need for the functioning of the config files.
Installation of packages on ArchLinux:
A one time command to install all these things with your favorite AUR Helper is given below, in this case we are using paru
, you can any other, I don't mind ๐
paru -S xdg-user-dirs git slim dunst tint2 jgmenu rofi alacritty nitrogen sxhkd i3lock-color picom-jonaburg-fix lua starship fish cava gtk brightnessctl zsh playerctl pipewire pipewire-pulse thunar papirus-icon-theme curl jq libappindicator-gtk3 org.freedesktop.secrets light wireless_tools maim gpick mate-polkit yaru-sound-theme xdg-desktop-portal-gtk xdg-desktop-portal mpv jgmenu lxappearance xfce4-power-manager xfce4-settings xprintidle vdirsyncer khal moreutils fortune-mod wmctrl bc unzip bluez bluez-utils imagemagick parcellite xclip pamixer pavucontrol rofimoji rofi-greenclip ninja glibc gcc
Installation of packages on Fedora(36):
sudo dnf install xdg-user-dirs git slim dunst tint2 jgmenu rofi alacritty nitrogen sxhkd lua starship fish cava gtk3 brightnessctl zsh playerctl pipewire pipewire-pulseaudio Thunar papirus-icon-theme curl jq libappindicator-gtk3 gnome-keyring light wireless-tools maim gpick mate-polkit yaru-sound-theme xdg-desktop-portal-gtk xdg-desktop-portal jgmenu lxappearance xfce4-power-manager xfce4-settings vdirsyncer khal moreutils fortune-mod wmctrl bc unzip bluez ImageMagick parcellite xclip pavucontrol rofimoji
NOTE: Some packages are not available in the official fedora repositories, they can be installed using the methods below:
- i3lock-color: Refer to the official README.md on how to install i3lock-color on your system.
- Picom (Jonaburg Fix):
sudo dnf install dbus-devel gcc git libconfig-devel libdrm-devel libev-devel libX11-devel libX11-xcb libXext-devel libxcb-devel mesa-libGL-devel meson pcre-devel pixman-devel uthash-devel xcb-util-image-devel xcb-util-renderutil-devel xorg-x11-proto-devel
then do git clone https://github.com/Arian8j2/picom-jonaburg-fix.git && cd picom-jonaburg-fix
.
then run:
git submodule update --init --recursive
meson --buildtype=release . build
ninja -C build
ninja -C build install
to install Picom (Jonaburg Fix) to your system.
3. MPV:
For this you will need to enable RPM Fusion repository.
Just do sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-36.noarch.rpm
to install RPM Fusion Free.
Then do sudo dnf install mpv
to install MPV.
4. xprintidle
For this you need the RPM Sphere repository.
Just do sudo dnf install https://github.com/rpmsphere/noarch/raw/master/r/rpmsphere-release-36-1.noarch.rpm
to install the RPM Sphere Repository.
Then do sudo dnf install xprintidle
to install xprintidle on your system.
5. Pulseaudio Mixer (pamixer):
Follow the installation instructions in the README of the project here
6. Rofi Greenclip (Clipboard GUI):
Simply run wget -O /usr/bin/greenclip https://github.com/erebe/greenclip/releases/download/v4.2/greenclip
to install Rofi Greenclip to your System.
Installation of packages on Ubuntu(22.04 LTS):
sudo apt install xdg-user-dirs git slim dunst tint2 jgmenu rofi nitrogen sxhkd lua fish cava brightnessctl zsh playerctl pipewire pipewire-pulse thunar papirus-icon-theme curl jq libayatana-appindicator3-1 gnome-keyring light wireless-tools maim gpick mate-polkit yaru-theme-sound xdg-desktop-portal-gtk xdg-desktop-portal mpv jgmenu lxappearance xfce4-power-manager xfce4-settings xprintidle vdirsyncer khal moreutils fortune-mod wmctrl bc unzip bluez imagemagick parcellite xclip pavucontrol
NOTE: Some packages are not available in the official ubuntu repositories, they can be installed using methods below:
- Alacritty:
sudo add-apt-repository ppa:aslatter/ppa
sudo apt update
sudo apt install alacritty
- i3lock-color:
Refer to the official README.md on how to install i3lock-color on your system.
- Picom (Jonaburg Fix):
sudo apt install libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libxcb-glx0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libpcre3-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev meson
then do git clone https://github.com/Arian8j2/picom-jonaburg-fix.git && cd picom-jonaburg-fix
.
then run:
git submodule update --init --recursive
meson --buildtype=release . build
ninja -C build
ninja -C build install
to install Picom (Jonaburg Fix) to your system.
4. Starship Prompt:
curl -fsSL https://starship.rs/install.sh | bash
Run this in your terminal to install starship prompt.
5. Pulseaudio Mixer (pamixer):
Follow the installation instructions in the README of the project here
6. RofiMoji (Emoji Selector)
Make sure you have python3-pip
installed.
Then run sudo pip3 install rofimoji
to install rofimoji.
7. Rofi Greenclip (Clipboard GUI):
Simply run wget -O /usr/bin/greenclip https://github.com/erebe/greenclip/releases/download/v4.2/greenclip
to install Rofi Greenclip to your System
The fonts can be found fonts directory. Just run sudo mv * /usr/share/fonts
to install them to your system.
- UI Font: Proxima Nova
- Monospace Font: JetBrainsMono Nerd Font
Icon Based Fonts:
- Material Design Icons Enhanced: The icon font used by major stuff.
- Google's Material: Google's material font used by some stuff as well.
- Fluency/Favorites: A custom font created by me using icons8's font creation system used by the bottom bar and some other stuff.
- System: Font with general system icons used by the bottom bar to display status of stuff.
- Feather:A really awesome icon font.
Icons: Icons used by some things can be found in icons directory.
The Icon theme used in these config files is Papirus icon theme but with catppuccin flavored Folders. After installing Papirus icon theme from the commands above in the installation section, it is time to install the folders! To install them, simply run the following commands:
git clone https://github.com/catppuccin/papirus-folders.git
cd papirus-folders
sudo cp -r src/* /usr/share/icons/Papirus
./papirus-folders -C blue --theme Papirus-Dark
This modifies the papirus icon theme to use the catppuccin themed folders.
Next is the cursor icon theme. We are using the catppuccin cursors so this can blend well with the icon theme.
git clone https://github.com/catppuccin/cursors.git
cd cursors
cd cursors
unzip Catppuccin-Mocha-Blue-Cursors.zip
sudo mv Catppuccin-Mocha-Blue-Cursors /usr/share/icons/
This installs the cursor theme in the root directory for all users.
- Colorscheme: Catppuccin
- GTK Theme: Catppuccin GTK Theme
- Wallpapers: Taken from Pexels modified using catppuccin-factory All the wallpapers can be found in the
.wallpapers
directory. - SliM Theme: Catppuccin SLiM (๐๏ธ Made with figma)
NOTE: Since the SLiM theme is just a glued picture of images and text on it, the theme is not dynamic. So you will need to edit the SLiM theme yourself using Figma (It is very easy trust me). You can find the figma file here
If you need any help, feel free to contact me on discord (Just a reminder, my discord username is
Syndrizzle#3826
) and I will happily provide you the needed help :)
Welcome to the lovely part, the part you've been waiting for! It is time to install the configuration files.
Clone the repository and CD into it :
git clone https://github.com/syndrizzle/hotfiles && cd hotfiles
Next, as easy as looking at the pictures, just move the folders to their respective places:
cp -r .config .cache .fonts .local .icons .scripts .wallpapers ~/
sudo cp -r usr/ /
sudo cp etc/slim.conf /etc/slim.conf
cp .gtkrc-2.0 .vimrc .xinitrc .Xresources ~/
This installs all the configuration files to their respective places. Reboot your machine and see the magic ๐โจ
Conky, jgmenu and Eww widgets
A beautiful notifiation center you can see while having your morning coffe โ
Gives you all the info you'll ever need!
Tho stuff here except the user and password is glued lol. You can find the figma files for changing it at the top of this readme though.
This is taken from u/dark_dryu's configs found on this reddit post.
Yes, it is usable, like..obviously.
We are using the Python Reddit Api Wrapper (PRAW) for this. You will need a reddit account with the Client ID and the Client Secret of your Reddit App.
To create a Reddit application, you will need to register it on https://www.reddit.com/prefs/apps/ by clicking Create another app
. Give it a name and set redirect and about URLs to https://localhost:8080
. Then copy it's client secret and it's client ID.
Install the PRAW library by executing pip3 install praw
. Then edit the configuration file located as ~/.config/eww/Main/scripts/karma
. You will also need to fill in your reddit username and the password.
If you use GMail, you can get your E-Mails to be shown on the dashboard as well!
For this we are using the imaplib
python module.
You will need to enable Two Factor Authentication on your Google Account. Then head over to https://accounts.google.com/security, scroll down and select App Passwords. Under the Select app
dropdown menu select Mail
, and give it a name. Then copy that password. This is the password we will be using to authenticate IMAP with G-Mail, we are not done yet.
Head over to https://mail.google.com/mail/#settings/fwdandpop and click on the enable IMAP
button, then scroll down and click on Save Changes
.
Edit the Mail file located as ~/.config/eww/Main/scripts/mail
and fill in your G-Mail ID and the App password we created earlier.
You can use rofi for selecting emojis, view your clipboard and even view the keybindings incase you forget something!
To bring up the emoji selector, press Ctrl + .
To bring up the Keybindings viewer, press Ctrl + /
NOTE: You will need to move the sxhkd-keys
script to your /usr/bin/
folder:
sudo mv ~/.scripts/sxhkd-keys /usr/bin/sxhkd-keys
To bring up the clipboard viewer, press Windows/CMD Key + V
Usually you end up with no folders on the thunar's sidepane when using a window managers, for this you just need to run:
xdg-user-dirs-update
in your terminal and reboot, this regenerates your XDG folders. now right click on the folder you want to move and select Send to > Side Pane
, or you can just drag and drop them.
In order to make XFCE4 Power Manager recognize that you have a lock screen, just run this command:
xfconf-query -c xfce4-session -p /general/LockCommand -s "$HOME/.scripts/lock-run" --create -t string
What this does is it runs this command whenever you call the lock screen, like by closing the lid, suspend...etc.
Make sure to change the default username in /etc/slim.conf
from syndrizzle
to your username.
Thanks to pagankeymaster for helping me to achieve this rice. That notification center couldn't have been made possible without this man's work.
- Thanks again to all the members of the r/unixporn discord server who helped me.
- This rice was inspired by many other rices out there, like the-glorious-dotfiles, Axarva's xmonad rice, adi1090x's widgets. Thanks to all of them for their work!
- All the icons are from icons8, flaticon, iconscout and various other sources (Sorry I don't remember each one of them :/)
- The lock screen is just a modified version of a lock screen I spotted on reddit, here is the post and here is the repo.
- The Quotes for the power menu were taken from the-glorious-dotfiles and the default image was taken from this dribble post
- Scripts were taken from:
- vile by pagankeymaster that contained needed stuff for the control center's notification part.
- adi1090x's widgets for eww.
- t2ec and psuinfo by nwg-piotr that helped me to frame the tray for status items on the bottom bar.
- Axarva's xmonad rice again for eww.
- The conky was taken from the Leonis theme pack by closebox73, modified for the use with everblush.
- And various other repositories, if I have left one or more, please open and issue so I can include them.