dotfiles
dotfiles copied to clipboard
Configuration files for common *nix tools
:house:
Overview
This repository contains my dotfiles (those that can be safely shared). Dotfiles are managed with dotref tool, which is a simple Python tool that I created to help me manage dotfiles for multiple devices.
Note
Many dotfiles in this repo require software to be on the most recent versions. While this is usually not a problem for distros like Arch, it may not work for distros that contain outdated software by default (like Debian or Ubuntu).
Screenshots



Included configuration
Colors
In general, Nord-like low contrast colors are used in most places (except GTK and Qt themes, see below).
Basic tools
The base profile includes configurations for the most essential tools:
- Fish - smart and user-friendly command line shell
- Neovim - hyperextensible Vim-based text editor
- Vifm - file manager with curses interface, which provides Vim-like environment for managing objects within file systems
- Git - distributed version control system
- Tig - text-mode interface for Git
- Tmux - terminal multiplexor
- Htop - interactive process viewer
Desktop
The desktop profile builds on top of the base profile and contains configuration
for the desktop environment based on Sway:
- Foot - fast, lightweight and minimalistic Wayland terminal emulator
- Sway - tiling Wayland compositor
- Waybar - highly customizable Wayland bar for Sway and Wlroots based compositors
- Wofi - launcher/menu program for Wlroots based Wayland compositors such as Sway
- Swaylock - screen locker for Wayland
- Mako - lightweight Wayland notification daemon
- Imv - command line image viewer intended for use with tiling window managers
- Newsboat - RSS/Atom feed reader for the text console
Please note, that this repository only contains user dotfiles and system config files (such as, for example, for login manager) are not part of this repo.
Fonts and themes
Graphical environment is configured to use Noto fonts, while terminal uses Ubuntu font. Nerd Fonts used for icons.
Dotfiles also include configuration for Qt and GTK themes. Arc is used at the main theme and Papirus as the icon theme.
XDG
Where possible, dotfiles follow XDG Base Directory specification. xdg-ninja is a great tool that can help to detect and move config files from home directory to appropriate XDG directory.
Dotfiles in this repository assume that all XDG user directories are at their default locations.
Environment
Making sure that user environment variables are consistent across all login sessions is notoriously
difficult in Linux (see this great article for a short overview).
Even more so, after pam_environment deprecation.
In this repository, all user environment variables are configured in ~/.profile file.
While this file is read by most login managers (e.g. Greetd, which is what I use) and POSIX shells (such as bash),
fish shell doesn't read it.
As a workaround, config.fish runs this file in a bash login session and imports additional
environment. See import_posix_env function in the fish/functions/import_posix_env .fish file.
This is only done if environment variables from the ~/.profile weren't already imported (e.g. by login manager).
How to use
See dotref page for the complete documentation on
how to use Dotref for dotfile management.
The easiest way to start is to clone this repository somewhere, select base profile and apply it
to the system.
Clone the dotfiles repository:
git clone --depth 1 https://github.com/ovk/dotfiles
cd dotfiles
Check Dotref profiles list with dotref profiles and select base profile:
dotref init -p base
See what will be changed with dotref status command, and if it looks sane,
apply the dotfiles:
dotref sync
Please note, that if there are any conflicts (i.e. you already have a config file which should otherwise be overwritten by dotref) you have to resolve them manually, for example, by backing up and removing conflicting config files.