Skip to content

simonvic/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation





Getting started

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.

X11 to Wayland

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

Quickstart

Warning

Before proceeding to installation make sure to backup your system

  1. Install the required packages

  2. Clone the dotfiles

    git clone --bare https://github.com/simonvic/dotfiles.git ${XDG_DATA_HOME:-$HOME/.local/share}/.dotfiles
  3. Checkout the content

    git --git-dir=${XDG_DATA_HOME:-$HOME/.local/share}/.dotfiles/ --work-tree=$HOME checkout
  4. Hide the untracked files

    git --git-dir=${XDG_DATA_HOME:-$HOME/.local/share}/.dotfiles/ --work-tree=$HOME config --local status.showUntrackedFiles no
  5. Add .local/bin to the PATH enviroment variable

    echo '
    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
  6. Make the scripts executable (chmod +x <script>)

  7. Relog or reboot your system to make sure the changes have taken effect

Tip

Visit the installation guide for a more in-depth guide.


Showcase

Note

The previews may not be up to date with the latest changes

Lockscreen

Other themes preview

Application launcher, window switcher and calculator (Rofi)

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


Status bars

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


TODO manager,Notifications and more (Dunst)

Music control (sPlayerctl) + custom Spotify notification

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

App notifications


WiFi

With sWifi you can quickly scan for WiFi signals, filter and connect to them with few keystrokes.


sScreenshot

sScreenshot allows you to take area or full screenshot, copy it to clipboard and paste it anywhere.


Speaker and microphone control

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


Brightness and Redshift control

sBrightnessctl will adjust the brightness and manage the "night mode" (blue shift) temperature.


ToDo popup with context action

sTodo is a minimal TODO manager, which can also show a popup via the notification daemon


Contact me




Buy me a coffee :)