Skip to content

Latest commit

 

History

History
179 lines (137 loc) · 11.5 KB

README.org

File metadata and controls

179 lines (137 loc) · 11.5 KB

Raven2cz’s Dofiles GNU/Linux Configuration

██████╗  █████╗ ██╗   ██╗███████╗███╗   ██╗  Antonin Fischer (raven2cz)
██╔══██╗██╔══██╗██║   ██║██╔════╝████╗  ██║  https://fishlive.org/
██████╔╝███████║██║   ██║█████╗  ██╔██╗ ██║  https://arch-linux.cz/
██╔══██╗██╔══██║╚██╗ ██╔╝██╔══╝  ██║╚██╗██║  https://github.com/raven2cz
██║  ██║██║  ██║ ╚████╔╝ ███████╗██║ ╚████║
╚═╝  ╚═╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═══╝

DOTFILES PROJECT

Table of Contents

Introduction

Dotfiles are the customization and configuration files that are used to personalize your GNU/Linux or other *nix-based system. You can tell that a file is a dotfile because the name of the file will start with a period–a dot (e.g. .xinitrc). The period at the beginning of a filename or directory name indicates that it is a hidden file or hidden directory. This repository contains my personal dotfiles as global union of many mine and other github projects. They are stored here for convenience so that I may quickly access them on new machines or new installation. Also, others may find some of my configurations helpful in customizing their own dotfiles.

Main GIT Subtree Project Dependencies

Github Project’s list added as git subtrees to the dotfiles project. These depended projects are similar as libraries; can be used alone. The dotfiles project creates union of these projects and add additional configs for global usage “together”.

AwesomeWM (git-main branch) configuration with new 80s DarkOne Theme, Amazing Theme.

80s OneDark Theme is focused to Atom colors and 80s pastel color schemes. New complex configuration of main panel with many features and additional modifications of conky, xmenu, rofi and alacritty settings.

Amazing Theme is focused to green colors with gold highlights. Applications styling and additional colors are based on Nordic Colors and KDE Nordic Theme An arctic, north-bluish color palette.

Polybar configuration with patched and improved modules for Awesome, i3 and XFCE4. Base design fits to MX-Linux (Debian Stable) and Arch Distros.

This is my personal Doom Emacs config. Doom Emacs is a distribution of Emacs that uses the “evil” keybindings (Vim keybindings) and includes a number of nice extensions and a bit of configuration out of the box. I am maintaining this config not just for myself, but also for those that want to explore some of what is possible with Emacs 🐧.

Raw configuration of Neovim 5 with complete Lua plugins and configuration. The project is very raw and it needs time. Neovim is hyperextensible Vim-based text editor.

Welcome to my Trading Room! My popular configuration for xfce4 for Arch and MX-Linux distributions. Xfce is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast and low on system resources, while still being visually appealing and user friendly.

Qtile is a full-featured, hackable tiling window manager written and configured in Python. My inherited configuration from Arco Linux is attached and changed to my Arch Linux env.

i3 is a tiling window manager, completely written from scratch. The target platforms are GNU/Linux and BSD operating systems, our code is Free and Open Source Software (FOSS) under the BSD license. i3 is primarily targeted at advanced users and developers. Based upon the experiences we made when wanting to hack/fix wmii. Other description is included in my main config file.

Applications

Shells and Terminals

Shells

The configured are ZSH and Fish. The ZSH was configured powerlevel10k. But I’m using Fish now. The ZSH is connected with Fish inside .zshrc. The full configuration of Fish is inside file $HOME/fish/config.fish. The fisher plugin manager is used for fish configuration, because I’m Fischer 🐧.

Terminals

Alacritty and Kitty are used.

Colorscripts Installation

The colorscripts have to be installed: fish-logo, DT-colorscripts, Pokemon-coloscripts.

Ranger Configuration

Ranger is configured in $HOME/.config/ranger with plugins. Ranger is using ueberzug which has to be installed with python or from aur.

Rofi Configuration

Rofi my several themes are attached in the .root folder. All directories and files in this folder has to be copied to the real / appropriate folders. You will understand after look…

XMENU Configuration

Xmenu configuration is attached to the $HOME/xmenu. The project is phillbush/xmenu. It is very great project, installation is described in the github project. Check youtube records with xmenu for more details.

Pass - The Standard Unix Password Manager

Pass is configured in private repo. There are usage of passFF and other browser plugins…

Public Wallpapers

Public wallpapers are provided by github project Public-Wallpapers. The wallpapers are used for other my projects and dotfiles.

The dirtory or symlink has to created to $HOME/Pictures/wallpapers/public-wallpapers. I’m using symlink for whole $HOME/Pictures mapped to cloud repository.

Dotfiles Repository Administration Support

No extra tooling, no symlinks, files are tracked on a version control system, you can use different branches for different computers, you can replicate you configuration easily on new installation.

The technique consists in storing a Git bare repository in a “side” folder (like $HOME/.dotfiles) using a specially crafted alias so that commands are run against that repository and not the usual .git local folder, which would interfere with any other Git repositories around. Based on article https://www.atlassian.com/git/tutorials/dotfiles

Define GIT Bare Repository.

This dotfiles project is defined as git bare repository. You can ensure your dotfiles by similar way. See the usage concept. In this case, the git bare repository is cloned to the $HOME/.dotfiles and the existing files which are already included in the bare are moved to the $HOME/.config-backup directory. After it, all config files are checkout to correct places in your $HOME directory and synch with this repo. You can make similar approach with your dotfiles.

git clone --bare [email protected]:raven2cz/dotfiles.git $HOME/.dotfiles
function config {
   /usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME $@
}
mkdir -p .config-backup
config checkout
if [ $? = 0 ]; then
  echo "Checked out config.";
  else
    echo "Backing up pre-existing dotfiles.";
    config checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | xargs -I{} mv {} .config-backup/{}
fi;
config checkout
config config status.showUntrackedFiles no

For your shell, you can use alias. Basic usage is following:

alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
config config --local status.showUntrackedFiles no

config status
config add .xinitrc
config commit -m "Add xinitrc"
config add .bashrc
config commit -m "Add bashrc"
config push

Update dependency git subtrees projects.

Git subtree lets you nest one repository inside another as a sub-directory. It is one of several ways Git projects can manage project dependencies.

Why you may want to consider git subtree

  • Management of a simple workflow is easy.
  • Older version of Git are supported (even older than v1.5.2).
  • The sub-project’s code is available right after the clone of the super project is done.
  • git subtree does not require users of your repository to learn anything new. They can ignore the fact that you are using git subtree to manage dependencies.
  • git subtree does not add new metadata files like git submodule does (i.e., .gitmodule).
  • Contents of the module can be modified without having a separate repository copy of the dependency somewhere else.

The idea is based on this article https://www.atlassian.com/git/tutorials/git-subtree

Dotfiles project dependencies based on github subtrees

The dotfiles project is union of the github configuration projects. Each configuration is separated git subtree. The dotfiles project is automatically merged.

Just for information, updates/initial scripts are placed in $HOME/bin directory.

$HOME/bin/init-git-subtrees-dotfiles.sh

$HOME/bin/pull-git-subtrees-dotfiles.sh

#!/bin/bash
function config {
   /usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME $@
}

config subtree pull --prefix .config/awesome [email protected]:raven2cz/awesomewm-config.git master --squash

License

The files and scripts in this repository are licensed under the MIT License, which is a very permissive license allowing you to use, modify, copy, distribute, sell, give away, etc. the software. In other words, do what you want with it. The only requirement with the MIT License is that the license and copyright notice must be provided with the software.

The configuration files are added in LICENSE (Antonin Fischer (raven2cz) repository), and LICENSE-DT (inherited several files from Derek Taylor). Other projects and licenses are added as git subtrees. Each git subtree is attached as whole git project with appropariate README.md and License descriptions inside of specific folder.