This is my personal setup that I use to quickly bootstrap my machines with a
single git clone
.
It targets Linux systems, but can also be used on WSLs, systems with just TTY, and Android (via Termux).
In .config
there are the configuration files for: shell prompt, terminal,
windows manager, status bars, lockscreen, notification daemon, application
launchers, fonts, general theming and more.
In .local/bin
there are a bunch of bash scripts which wrap the many utilities
used and aims to improve interoperability between them, while providing some
QoL features on top.
In .config/nvim
there is my heavily customized neovim setup, with custom
colorscheme, custom keybindings and other customizations.
Since the 4.0 release, I target Wayland based systems; although the scripts should be compatible with both X11 and Wayland, X11 side of the dotfiles should be considered unmaintained, and Wayland should be preferred
Here is a list of the Wayland packages that replaced their X11 counterpart:
Utility | X11 | Wayland |
---|---|---|
Status bar | polybar | waybar |
Window manager | i3wm | swayvm (swayfx fork) |
Window compositor | picom | included in swayfx |
Lockscreen | i3lock (i3lock-color fork) | swaylock (swaylock-effects fork) |
Night mode | redshift | gammastep |
Screenshots | scrot | grim + slurp |
Warning
Before proceeding to installation make sure to backup your system
-
Install the required packages
-
Clone the dotfiles
git clone --bare https://github.com/simonvic/dotfiles.git ${XDG_DATA_HOME:-$HOME/.local/share}/.dotfiles
-
Checkout the content
git --git-dir=${XDG_DATA_HOME:-$HOME/.local/share}/.dotfiles/ --work-tree=$HOME checkout
-
Hide the untracked files
git --git-dir=${XDG_DATA_HOME:-$HOME/.local/share}/.dotfiles/ --work-tree=$HOME config --local status.showUntrackedFiles no
-
Add
.local/bin
to thePATH
enviroment variableecho ' if [[ $UID -ge 1000 && -d $HOME/.local/bin && -z $(echo $PATH | grep -o $HOME/.local/bin) ]]; then export PATH="${PATH}:$HOME/.local/bin" fi' >> /etc/profile
-
Make the scripts executable (
chmod +x <script>
) -
Relog or reboot your system to make sure the changes have taken effect
Tip
Visit the installation guide for a more in-depth guide.
Note
The previews may not be up to date with the latest changes
Rofi themes have been made to be easily configurable and customized. The configuration files and themes are structured like this:
|_ config (defines rofi behaviour, components and default base UI layout/structure)
|_ Theme (defines UI layout and structure)
|_ Style (defines UI components color and text font)
|_ Fonts (defines a set of fonts)
|_ Palette (defines a color palette)
A Theme
(e.g. fullscreen.rasi, reverse.rasi, window_reverse.rasi etc)
only takes care of how the UI components are structured and arranged. It
imports a Style
.
A Style
defines text fonts, imported from a Fonts
, and the colors of the
components, imported from a Palette
sPolybarctl
will manage your status bars. It can launch
, show
, hide
or toggle
them.
$ sPolybarctl show myFirstBar # make visible "myFirstBar"
$ sPolybarctl toggle mySecondBar # toggle visibility state for "mySecondBar"
$ sPolybarctl hide # hide all bars
sPlayerctl helps you in controlling your media players
A great QoL feature is the quick selection of the player you wish to control (via CLI or via media keys)
$ sPlayerctl select-player set spotify
...or even better prompt the selection with a UI via Dunst
and Rofi
With sWifi you can quickly scan for WiFi signals, filter and connect to them with few keystrokes.
sScreenshot allows you to take area or full screenshot, copy it to clipboard and paste it anywhere.
Nothing special here. sVolumectl and sMicrophonectl allows you to change the volume of the speakers and microphone while showing a dunst notification with a personalizable bar
sBrightnessctl will adjust the brightness and manage the "night mode" (blue shift) temperature.
sTodo is a minimal TODO manager, which can also show a popup via the notification daemon