Hey there! π
This is my personal dotfiles repository.
I created this repo to help me backup my config files and to easily deploy them in a new machine with the help of Ansible and yadm. It has some files exclusive to my personal use (programming, gaming, etc) so it's not just a rice.
At first I didn't think about ricing but more and more, my focus has got into creating a good and aesthetic rice, with a lot of customization, as well as maintaining the easy deploy and use for my multiple machines.
If you wanna know how to install them, go to the setup section. There is a guided installation.
I've been working on this for a long time so I hope you like it!
- πΆοΈ Dark Mode for the Whole System
- π€ Neovim powered by LazyVim with Custom Extras Added (More than 200!)
- βοΈ Screenshot, Keybindings, Games, Clipboard, Color and Wallpaper Picker
- πͺ Animations for nearly all the System
- π₯οΈ AwesomeWM Workspace Behavior
- π Following XDG Base Directory Standard
- π Automatic Mounting of USB Devices with Notification
- π Scratchpads
- π« Beautiful Wallpapers
- π€ Shell Prompt with Nerd Icons
- β Extra Hyprland Plugins
- π Custom Userchrome and Extension Configurations
- π Minimal VSCodium with Native Integration of your Neovim Setup
- π¦ Rust Alternatives
- π Notification Center
- π Volume and Brightness OSD
- π¨ Color Scripts for the Terminal
- π Idle and Lock apps
- β‘ Performance Mode
- βοΈ Various other Tweaks
The rice codename is Artemis πΉ, named after the Greek goddess of the hunt and the wild.
- OS: Arch Linux π₯
- WM: hyprland πͺ
- Shell: fish π
- Terminal Emulator: kitty π±
- Panel: waybar π§
- Text Editor: neovim β¨οΈ
- App Launcher: rofi π
- File Manager: yazi / nemo π
- Browser: Floorp π
- Notification Manager: swaync π
- Colorscheme: Catppuccin π¨
Here is all the information about my setup:
Note
Some of this apps have the config files included in the repo, which are marked with βοΈ. Also, my favorite are programs and tools are marked with π.
π§ System
π Entry | β¨ App |
---|---|
OS | π Arch Linux |
Package Manager | pacman βοΈ |
AUR Helper | π yay βοΈ |
Display Manager | greetd (with tuigreet) |
Window Manager | π hyprland βοΈ |
Notification Daemon/Center | swaync βοΈ |
OSD Popup | swayosd |
Bar | π waybar βοΈ |
Audio Daemon | pipewire |
Application Launcher | π rofi βοΈ |
Firewall | ufw |
Clipboard Manager | wl-clipboard (with cliphist) |
Wallpaper Switcher | swww |
Lock Screen | hyprlock βοΈ |
Idle Timeout | hypridle βοΈ |
Color Picker | hyprpicker |
Screenshot Tool | hyprshot (Using grim and slurp) |
Image Annotation | satty βοΈ |
π₯οΈ CLI/TUI Apps
π Entry | β¨ App |
---|---|
Shell | π fish βοΈ |
Terminal Emulator | π kitty βοΈ |
Terminal Multiplexer | tmux βοΈ |
Shell Prompt | starship βοΈ |
Text Editor | π neovim βοΈ |
Shell History | atuin βοΈ |
CD Replacement | π zoxide |
LS Replacement | eza |
Cat Replacement | bat βοΈ |
Find Replacement | fd βοΈ |
File Manager | π yazi βοΈ |
Help Pages | navi / TLDR βοΈ |
Fuzzy File Finder | π fzf |
Fuzzy Word Finder | ripgrep βοΈ |
Git TUI | π lazygit βοΈ |
Npm Manager TUI | lazynpm |
Docker TUI | lazydocker |
Arch Package Search TUI | pacseek βοΈ |
Trash CLI | gtrash |
Update Tool | topgrade βοΈ |
Audio Visualizer | cava βοΈ |
System Monitor | btop βοΈ |
GPU Monitor | nvtop |
System Fetch | fastfetch βοΈ |
Git Fetch | onefetch |
Keybindings TUI | keyb βοΈ |
π±οΈ GUI Apps
π Entry | β¨ App |
---|---|
Music Player | Spotify (patched with Spicetify) βοΈ |
Fallback Text Editor | VSCodium βοΈ |
Web Browser | π Floorp βοΈ |
Messaging App | Vesktop (Custom Discord Client) βοΈ |
Email Client | Thunderbird |
PDF Viewer | Zathura βοΈ |
Note Taking App | π Obsidian βοΈ |
Video Player | MPV βοΈ |
Image Viewer | qimgv βοΈ |
File Manager | Nemo |
Audio Effects | Easyeffects |
Image Editor | Krita |
VM Manager | Virt-Manager (QEMU) |
Recording Program | OBS |
Office Apps | LibreOffice |
π Other
π Entry | β¨ App |
---|---|
Colorscheme | π Catppuccin Macchiato |
Font | JetBrainsMono Nerd Font |
Icon Theme | Catppuccin-SE |
Dotfiles Manager | π yadm βοΈ |
Automatic System Deployment | π Ansible βοΈ |
Warning
The installation guide is under construction, try it at your own risk!
Note
The names of the packages are from the AUR and Arch Repos; adapt them to your system. Most of the packages are available on other distros official repos (most of the time out-to-date). To install CLI/TUI specific packages in non-arch based distros, I recommend to use homebrew.
- Base Packages
First, lets start with the required base packages for the configuration to function. Assuming you're running Arch Linux, and your AUR helper is yay:
yay -Sy hyprland hyprlock hypridle xdg-desktop-portal-hyprland hyprpicker \
swww waybar rofi-wayland swaync swayosd-git wl-clipboard wl-clip-persist \
pyprland qt5ct pavucontrol cliphist playerctl udiskie devify fzf jq eza fd \
catppuccin-gtk-theme-macchiato catppuccin-cursors-macchiato cava slurp grim satty \
vivid fish starship
On the first line we have the hypr ecosystem packages and on the other lines we have the must have packages.
- Optional Packages
Now lets move to the Optional Packages (If you don't want to install any more packages, move to the Dotfiles Installation step)
yay -Sy yazi nemo kitty ttf-ms-win11-auto ttf-jetbrainsmono-nerd zathura zathura-pdf-mupdf qimgv-light \
mpv
Here we have some packages that you can replace with your favorite ones and are not required at all for the desktop to function (though it wont look the same). For example, the terminal (kitty), the file manager (nemo and yazi), the font (ttf-jetbrainsmono-nerd), the video player (mpv), etc.
Useful CLI/TUI packages
yay -Sy ripgrep riprep-all sd duf nvtop btop dua-cli bat pacseek sysz gtrash-bin topgrade fastfetch
Useful GUI packages
yay -Sy pika-backup vesktop-bin nwg-displays nwg-look gnome-logs galculator gparted nm-connection-editor
- Bluetooth
Lets start by installing bluez (bluetooth support) and overskride (GUI):
yay -Sy bluez overskride
After installing the required packages, we have to start the Bluetooth service. With systemd is pretty straightforward:
systemctl --user enable --now bluetooth.service
Now launch overskride and there you have it.
- Icon Theme
First off, we have to download the icon package from the releases page of their repo. You can do it very easily by using curl.
curl -LJO https://github.com/ljmill/catppuccin-icons/releases/download/v0.2.0/Catppuccin-SE.tar.bz2
Once you have that, its time to extract the compressed package.
tar -xf Catppuccin-SE.tar.bz2
And finally, move them to the ~/.local/share/icons directory.
mv Catppuccin-SE ~/.local/share/icons/
- Fonts
Install the following fonts:
yay -Sy ttf-jetbrains-mono-nerd ttf-nerd-fonts-symbols ttf-nerd-fonts-symbols-mono ttf-nerd-fonts-symbols-common \
ttf-font-awesome noto-fonts-cjk ttf-ms-win11-auto
After that, be sure to refresh the font cache:
fc-cache -fv
Warning
Here we can take two routes. CHOOSE ONE, NOT BOTH!
Yadm is amazing. It lets you manage your dotfiles with git without the hassle of creating a git repo on your home directory as well as gitignoring a lot of files.
It also lets you pull from the repos that you set up on remote to your local repo and then push to your personal remote.
I'd recommend you to look at it if you want a more personal and advanced config.
For now, we are going to install it the simple way without to many complications and just to have an origin to pull and another to push.
Firstly, be sure to backup your existing config files. Then, we are going to install yadm. You can do it using pacman with the following command:
sudo pacman -S yadm
After that, its time to clone the dotfiles repo into your system using yadm.
Note
If you any file of the repo that already exists in your system and the content differs, the local file will be left unmodified and you'll have to review the changes and resolve the differences.
yadm clone https://github.com/Matt-FTW/dotfiles.git
Congratulations, at this point your done installing the configuration! π
Logout from your current desktop session and log back into the Hyprland session.
If you want to pull from my remote, commit or add any files you can do it using yadm and then the git command you want to use (pull, commit, add, etc).
Now, if you want to add your personal remote, use the following command:
yadm remote add origin <url>
Then, be sure to push your changes to your remote!
Now you can receive new updates from my repo and modify your custom one π
If you had any issues feel free to open an issue. Do you have some questions about the installation process? You can create a new discussion post then. Be sure to read the FAQ first!
Firstly, clone this repository (remember to have git installed).
git clone https://github.com/Matt-FTW/dotfiles.git
cd dotfiles
Now is time to copy the files into their respective directories. Be sure to backup your existing configuration files before copying the files. Once you have that, its time to copy the config files.
cp -r .config/* ~/.config/
cp -r .local/bin/* ~/.local/bin/
Congratulations, at this point your done installing the configuration! π
Logout from your current desktop session and log back into the Hyprland session.
If you had any issues feel free to open an issue. Do you have some questions about the installation process? You can create a new discussion post then. Be sure to read the FAQ first!
Once the dependencies and dotfiles are installed, you can take a look at some specific app configuration. You can check them at the config section of the READMEs from each app in their respective config folders.
Some configuration examples are:
Note
For specific images and videos about each tool, check out their own READMEs at their respective config folders. (STILL WIP π§)
Note
If you want to check the wallpapers, they are available right here.
System Fetch, Pacman Colorscript, App Launcher and Notif. Center |
---|
Text Editor |
---|
TUI File Manager, ls replacement and System Fetch |
---|
GUI Text Editor |
---|
System Fetch, Matrix Script and Browser on r/unixporn |
---|
Browser with Main Page |
---|
Lockscreen |
---|
TUI System Monitor, Doom and Clock Script, ls replacement and Notif. Center |
---|
Text Editor and Audio Visualizer |
---|
File Manager, pipes script and Note Taking App |
---|
Text Editor and Git UI Manager |
---|
Audio Visualizer, Fuzzy Finder in a Git Directory and Image Viewer |
---|
Text Editor |
---|
Game Platform and Music Player |
---|
Text Editor |
---|
Old Browser with Main Page |
---|
Big thanks to everyone at r/unixporn for inspiring me to make this!
I wanna point out some resources that helped me the most with the setup:
- ArchWiki for all the awesome documentation and for helping me to not lose my mind.
- Folke for his amazing contributions to the Neovim community with some awesome plugins and with the distro that i use: LazyVim. Also, his READMEs and dotfiles are amazing!
- Yoru's README to help me with the distribution of the README.
- Amadeus Dots for helping me with the startup setup of the Hyprland WM.
- Hyprdots for helping me to take ideas from their work. Also, their setup is the best one I've ever seen for Hyprland; it's pretty awesome!.
- Catppuccin for making the Best Colorscheme Ever ποΈ
- Github-issue-templates for the some of the markdown templates of the repo.
- Shina-Fox for the incredible userChrome.
- Catppuccin-Startpage an asthetic and clean startpage for the browser.
Those were the biggest inspiring factor for me, though you can find a lot more of setups that helped me in my list of favorite dotfiles from the Stars section of my Github Profile: Check it out!
Part of what makes the open source community special are the contributions. Any contributions will be highly appreciated!
If you have any ideas or suggestions to make, feel free to open an issue or submit a PR
Please, before submitting a PR or opening an issue, be sure to follow the contributing guidelines, as well as the issues and pull requests formatting rules.
Blank or repeated issues and PRs will be closed.
If you want to support my work, please consider donating.
This is optional, but it's always appreciated.
Thank you! π
Thanks to everyone who have contributed and given an star to this project!