Skip to content

Matt-FTW/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 



Stargazers Forks Commit Activity Size

🌿 β€Ž About

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!

✨ Features

  • πŸ•ΆοΈ 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
  • πŸ”§ Modular Configuration
  • πŸ–₯️ 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

🌸 Core System Info

rice-logo

The rice codename is Artemis 🏹, named after the Greek goddess of the hunt and the wild.


🐧 Whole System Info

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 βš™οΈ

πŸ”§ β€Ž Setup

Warning

The installation guide is under construction, try it at your own risk!

It is also ment only for Arch based systems. All other distros are not supported and I will not be helping with issues related to them.

Tip

Do you want to only install the neovim config? Check over here!

πŸ“¦ Dependencies Installation

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.

In the guide, I will be using Yay as the AUR helper. Be sure to install it or change the commands to your preferred one.

  • Base Packages

    • System

      yay -Sy hyprland hyprlock hypridle xdg-desktop-portal-hyprland hyprpicker \
              swww waybar waybar-updates rofi-wayland swaync swayosd-git \
              wl-clipboard cliphist udiskie devify polkit-gnome playerctl \
              pyprland grim slurp \
    • CLI/TUI

      yay -Sy fastfetch fzf jq eza fd vivid fish starship ripgrep bat yazi
    • GUI Apps

      yay -Sy pavucontrol satty nemo zathura zathura-pdf-mupdf qimgv-light mpv
  • Graphics Drivers

Warning

Skip this step if you already have the correct drivers for your graphics card.

Chose one if this commands depending on your graphics card brand.

# AMD (Open Source)
yay -Sy xf86-video-amdgpu xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon vulkan-tools \
        opencl-clover-mesa lib32-opencl-clover-mesa libva-mesa-driver lib32-libva-mesa-driver \
        mesa lib32-mesa mesa-vdpau lib32-mesa-vdpau vdpauinfo clinfo

# Nvidia (Propietary)
yay -Sy nvidia nvidia-utils nvidia-settings opencl-nvidia lib32-nvidia-utils \
        lib32-opencl-nvidia cuda vdpauinfo clinfo

# Intel (Open Source)
yay -Sy xf86-video-intel vulkan-intel lib32-vulkan-intel vulkan-tools libva-intel-driver \
        lib32-libva-intel-driver mesa lib32-mesa mesa-vdpau lib32-mesa-vdpau
  • Color Theme

To install the color theme for GTK and QT apps use the following command:

yay -Sy catppuccin-gtk-theme-macchiato catppuccin-cursors-macchiato qt5ct qt5-wayland qt6-wayland

If you want to edit your GTK settings, install nwg-look:

yay -Sy nwg-look
  • 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

πŸ’Ύ Dotfiles Installation

Caution

Here we can take two routes (Yadm or Git). CHOOSE ONE, NOT BOTH!

  • Yadm Method (Recommended)

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:

yay -Sy yadm

After that, its time to clone the dotfiles repo into your system using yadm.

Important

If any file in your local machine differs from the one in the remote repository, your local file will remain unmodified. You'll need to manually review and resolve any 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 😎

  • Git Method

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.

βž• Post Installation

Here are some things you might consider changing or adding:

  • Change Outputs

Firstly, change the outputs defined in this file. They are the ones defined for Hyprland to use, so is very important that you change them. If you wanna know what ID does your monitor has, execute hyprctl monitors.

You also need to change the workspaces associated with that monitor. For that, check this file.

For more information about Hyprland monitors and workspaces, check the docs.

Now, for the Waybar to appear you also need to change the output definition on this file.

  • Change Default Applications

To change the default applications by filetype, be sure to install this app.

yay -Sy selectdefaultapplication-fork-git

If you wanna change the default apps used in the Hyprland bindings, change the variables over on this file.

  • Git Changes

If you are going to use git, be sure to change the user definition as well as the credentials over on the gitconfig file.

  • Laptop Additions

    • Automatic CPU Frequency (Recommended)

      This one is a must have for all laptops users, even for desktop pc users as well. Firstly, install auto-cpufreq:

      yay -Sy auto-cpufreq

      After that, install the daemon by using this command:

      sudo auto-cpufreq --install

      If that didn't work, enable the systemd unit:

      sudo systemctl enable --now auto-cpufreq.service

      Now your good to go, check their documentation for more details on how to configure it. I personally use the default profile it comes with and I didn't had any issues.

    • 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:

      systemctl --user enable --now bluetooth.service

      Now launch overskride and there you have it.

    • Brightness

      Brightness control is integrated with SwayOSD. It was installed in the first steps, so you should be able to change it. If not, be sure to read this part on the SwayOSD documentation.

      If you wanna have automatic screen brightness, install wluma.

      yay -Sy wluma

      Then, enable the systemd unit.

      systemctl --user enable --now wluma.service
    • Wi-Fi

      To manage your Wi-Fi connections, I'd recommend you to install iwgtk:

      yay -Sy iwgtk

      To manage all the other network configurations, use nm-connection-editor

  • Keyring Support

There are some applications that you might need the keyring for. Examples: bitwarden, dbeaver, protonmail-bridge, vlc...

To enable the keyring support, install the following packages:

yay -Sy gnome-keyring libsecret
  • Misc

    • Bat

      Bat needs to rebuild the cache to load the themes. Make sure to run this command:

      bat cache --build
    • SwayOSD

      If you want to have a caps-lock popup, enable the swayosd-libinput-backend service:

      sudo systemctl enable --now swayosd-libinput-backend.service
  • Audio Service (Optional)

Warning

If you have Pipewire already setup on your system, you dont have to follow this step.

Firstly, install this dependencies:

yay -Sy pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber alsa-utils

Now enable pipewire and wireplumber systemd services:

systemctl --user enable --now pipewire wireplumber

And there you have it.

  • Specific Configs/Information (Optional)

Finally, if you want to take a look at some specific app configuration, check the READMEs from each app in their respective config folders.

Some configuration examples are:

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!

πŸ“· β€Ž Gallery

Note

For specific images and videos about each tool, check out their own READMEs at their respective config folders. (STILL WIP 🚧)

If you want to check the wallpapers, they are available right here.

System Fetch, Pacman Colorscript, App Launcher and Notif. Center
overview-1
Text Editor
overview-2
TUI File Manager, ls replacement and System Fetch
overview-3
GUI Text Editor
overview-4
System Fetch, Matrix Script and Browser on r/unixporn
overview-5
Browser with Main Page
overview-6
Lockscreen
overview-7
TUI System Monitor, Doom and Clock Script, ls replacement and Notif. Center
overview-8
Text Editor and Audio Visualizer
overview-9
File Manager, pipes script and Note Taking App
overview-10
Text Editor and Git UI Manager
overview-11
Audio Visualizer, Fuzzy Finder in a Git Directory and Image Viewer
overview-12
Text Editor
overview-13
Game Platform and Music Player
overview-14
Text Editor
overview-15
Old Browser with Main Page
overview-16

πŸŽ‰ β€Ž Credits

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!

✍️ Contributing

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.

πŸ’΅ Donating

If you want to support my work, please consider donating.

This is optional, but it's always appreciated.

Thank you! πŸ’–

πŸ’• Star History and Contributors

Thanks to everyone who have contributed and given an star to this project!

✏️ Contributors

⭐ Star History