71 lines
2.9 KiB
Markdown
71 lines
2.9 KiB
Markdown
|
# My dotfiles
|
|||
|
![](./screenshots/desktop.png) ![](./screenshots/desktop-terminals.png)
|
|||
|
|
|||
|
These are my personal dotfiles for configuring my workstation. I use
|
|||
|
[stow](https://www.gnu.org/software/stow/) to manage them, hence why
|
|||
|
everything is under its own module, so I can use `stow */` to symlink
|
|||
|
them to the right place.
|
|||
|
|
|||
|
This configuration uses git submodules in order to pull some plugins and
|
|||
|
to integrate my Emacs config in a separate repository, so make sure to
|
|||
|
initialize them before trying to install it (installation instructions
|
|||
|
below).
|
|||
|
|
|||
|
# Installing
|
|||
|
|
|||
|
You could install it on any Linux distribution that you want, but I
|
|||
|
recommend Arch Linux as there is a file containing a list of required
|
|||
|
packages installable via pacman or your favorite AUR helper.
|
|||
|
|
|||
|
- Clone the config in your home directory
|
|||
|
`git clone git@github.com:nezia1/dotfiles.git ~/.dotfiles`
|
|||
|
- Initialize submodules with `git submodule update --init`
|
|||
|
- If you\'re using Arch Linux, install the packages with
|
|||
|
`sudo pacman -S < packages` or using your favorite AUR helper
|
|||
|
- `stow */` to symlink everything to the right place
|
|||
|
- `fisher update` to install fish plugins
|
|||
|
|
|||
|
# Theme
|
|||
|
|
|||
|
I use [catppuccin](https://github.com/catppuccin/catppuccin) as my theme
|
|||
|
(the mocha variant). I love the soothing pastel colors. The GTK theme
|
|||
|
and the Qt5 theme are also configured to be used with supported
|
|||
|
applications.
|
|||
|
|
|||
|
# Shell setup
|
|||
|
|
|||
|
I use [fish](https://github.com/fish-shell/fish-shell) as my interactive
|
|||
|
shell, but I still keep [bash](https://www.gnu.org/software/bash/) as my
|
|||
|
non-interactive shell for compatibility purposes, as some pieces of
|
|||
|
software that I use require the user to have a POSIX compliant shell.
|
|||
|
This is why I have a bash module, where I setup everything that I want
|
|||
|
to have non-interactively and interactively and if running
|
|||
|
interactively, have it start a fish session.
|
|||
|
|
|||
|
It also keeps variables set in .profile, since we\'re starting fish from
|
|||
|
bash.
|
|||
|
|
|||
|
# Software used
|
|||
|
|
|||
|
- Operating system: [Arch Linux](https://archlinux.org/)
|
|||
|
- Window manager: [Hyprland](https://hyprland.org)
|
|||
|
- Status bar: [Waybar](https://github.com/Alexays/Waybar)
|
|||
|
- Application launcher: [wofi](https://sr.ht/~scoopta/wofi/)
|
|||
|
- Terminal emulator: [kitty](https://github.com/kovidgoyal/kitty)
|
|||
|
- Shell: [fish](https://github.com/fish-shell/fish-shell)
|
|||
|
- Text editor: [Emacs](https://www.gnu.org/software/emacs/)
|
|||
|
- Notification daemon: [dunst](https://github.com/dunst-project/dunst)
|
|||
|
- Password manager: [pass](https://www.passwordstore.org/)
|
|||
|
|
|||
|
Hyprland is configured to use a random wallpaper from the
|
|||
|
`$HOME/.dotfiles` directory, so you need to have your wallpapers in it.
|
|||
|
|
|||
|
# Services and timers
|
|||
|
|
|||
|
The user-services module contains different systemd daemons and timers
|
|||
|
that you might or might not need depending on your specific use-case:
|
|||
|
|
|||
|
- sync: a systemd timer that synchronizes my org directory using
|
|||
|
[rclone](https://rclone.org/) to a remote called drive (runs every 5
|
|||
|
minutes)
|