Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ovk/dotfiles
Configuration files for common *nix tools
https://github.com/ovk/dotfiles
arch-linux archlinux dotfiles fish linux neovim sway vifm
Last synced: 7 days ago
JSON representation
Configuration files for common *nix tools
- Host: GitHub
- URL: https://github.com/ovk/dotfiles
- Owner: ovk
- License: mit
- Created: 2020-06-21T23:53:39.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-10T11:58:44.000Z (29 days ago)
- Last Synced: 2024-10-25T00:05:37.128Z (15 days ago)
- Topics: arch-linux, archlinux, dotfiles, fish, linux, neovim, sway, vifm
- Language: Lua
- Homepage:
- Size: 144 KB
- Stars: 18
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: newsboat/config
- License: LICENSE
Awesome Lists containing this project
README
### :house:
## Overview
This repository contains my dotfiles (those that can be safely shared).
Dotfiles are managed with [dotref](https://github.com/ovk/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
![image](https://user-images.githubusercontent.com/693072/185769726-b8eeb07b-0938-4720-be8e-daf404bc6ee6.png)
![image](https://user-images.githubusercontent.com/693072/185769737-782ba3b6-ef67-47d7-8c1b-58602f1beb0c.png)
![image](https://user-images.githubusercontent.com/693072/185769746-622331cf-5e0e-4fd1-9925-18213557234a.png)
## 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](https://fishshell.com/) - smart and user-friendly command line shell
- [Neovim](https://neovim.io/) - hyperextensible Vim-based text editor
- [Vifm](https://vifm.info/) - file manager with curses interface, which provides Vim-like environment for managing objects within file systems
- [Git](https://git-scm.com/) - distributed version control system
- [Tig](https://jonas.github.io/tig/) - text-mode interface for Git
- [Tmux](https://github.com/tmux/tmux) - terminal multiplexor
- [Htop](https://htop.dev/) - 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](https://codeberg.org/dnkl/foot) - fast, lightweight and minimalistic Wayland terminal emulator
- [Sway](https://swaywm.org/) - tiling Wayland compositor
- [Waybar](https://github.com/Alexays/Waybar) - highly customizable Wayland bar for Sway and Wlroots based compositors
- [Wofi](https://hg.sr.ht/~scoopta/wofi) - launcher/menu program for Wlroots based Wayland compositors such as Sway
- [Swaylock](https://github.com/swaywm/swaylock) - screen locker for Wayland
- [Mako](https://github.com/emersion/mako) - lightweight Wayland notification daemon
- [Imv](https://sr.ht/~exec64/imv/) - command line image viewer intended for use with tiling window managers
- [Newsboat](https://newsboat.org/) - RSS/Atom feed reader for the text consolePlease 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](https://fonts.google.com/noto) fonts,
while terminal uses [Ubuntu](https://design.ubuntu.com/font/) font.
[Nerd Fonts](https://www.nerdfonts.com/) 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](https://wiki.archlinux.org/title/XDG_Base_Directory).
[xdg-ninja](https://github.com/b3nj5m1n/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](https://mywiki.wooledge.org/DotFiles) 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](https://github.com/ovk/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.