Skip to content

3ximus/dotfiles

Repository files navigation

My Dotfiles

Vim / Nvim

My config is compatible with both vim and neovim. (Some plugins are only available on neovim)

To install all the vim plugins open vim and run :PluginInstall

Vim configuration is huge but it's organized and documented, so just open the .vimrc file and check it out

Plugins (using vim-plug):

Check the .vimrc on the VIM PLUG PLUGINS section for the list of plugins

7

Prompts

77 77f

Other prompts are available and can be set with the function prompt [1-7], or directly source one of the files inside prompts

Prompts support:

  • git directories and status of the files (untracked, staged... aswell as upstream checks), but you must source .bash/git-prompt.sh
  • diferent colors for normal user / root / ssh session user (in prompt 6, 7 this segment is hidden unless the user is root or in an ssh session)
  • python conda/virtual environments. except prompt 1
  • last command exit status ( failed or succeded )
  • compress some paths ( my repository path is compressed into "R:" . except prompt 5, 6, 7
  • background jobs counter
  • command counter only prompt 5, 6, 7
  • show the respective tty. except 6, 7
  • display virtual machine environment indicator only prompt 7

Tmux

To install the tmux plugins press <prefix>+I (it will freeze for a few seconds...)

8

Tmux has a lot of custom configurations added in .tmux.conf and a few plugins inside .tmux added as submodules that are managed through TPM (Tmux Plugin Manager)

WM / KDE

Window decorations

My custom KDE window decorations are here , a fork from this 12

Firefox

10 I've used firefox color in the past but it's not able to theme everything. So I've made my own custom theme and got it signed: firefox/gruvbox-dark-cyan.zip. I also have some custom tweaks on firefox/userChrome.css and custom developer tools theme on firefox/userContent.css

Slack

10 My slack style hack with the following sidebar settings:

#282828,#232527,#3C3836,#EBDBB2,#3C3836,#EBDBB2,#EBDBB2,#3C3836,#282828,#EBDBB2

Spotify

My spotify modified text theme to use with spicetify

  • To fix spotify glitches disable gpu with --disable-gpu

21

Whatsapp

My modified whatsapp style (not up to date with the modified style file on this repo)

22

My main configuration files:

  • Dependencies

  • Installation/Cloning

  • .bashrc only contains some bash options and sources all scripts inside .bash, which contains:

    • prompts
    • functions and aliases
    • ble.sh contains ble.sh, which is a new readline implementation and it's simply amazing! There is also blerc which contains custom settings and themes to make blesh suit my preferences...
    • fzf-bindings.bash for fzf bindings that defines some custom bindings through ble.sh. And fzf-marks-plugin.sh for directory marks with fzf which saves a lot of typing :)
    • fzf-git.bash contains some functions to use fzf with git. There are some better projects with these
    • scripts with some useless utilities that I didn't want to create as a function...
  • inputrc contains some bindings for bash readline that are accepted in ble.sh too. I use this file for more barebones configs that I don't want running ble.sh

  • .gitconfig with my configuration for git (uses delta to view diffs)

  • fonts in .fonts are from nerd fonts. They are stored in lfs so see the lfs section bellow

  • konsole contains my konsole themes and profile (lives in $HOME/.local/share/konsole)

  • icons contains papirus icons edited to match gruvbox style (there is a script inside to install these icons)

  • css contains styles to inject somewhere

  • .gdbinit contains a dashboard from gdb-dashboard that takes gdb out of the dark ages.

  • custom.layout.latte contains latte-dock configuration

  • Files inside .config

    • bottom and htop configs
    • ranger configs. The scope.sh inside it is also used by fzf to preview files if it exists. Which makes not sense but I didn't bother to place it better where it can be used by both programs...
    • rofi with a custom colorscheme, that I use in rofi launch script for Plasma to look like this and bind a key to something like this $HOME/.bash/scripts/rofi-blurred.sh -show run
    • zathura directory with gruvbox colorstyle for zathura copied from abdullaev
    • other old files for the combo: bspwm + sxhkd + polybar + Compton. Now I just use plasma for mental health reasons...

Most of my files are set with the gruvbox colorscheme that is the only one I don't get tired of...

Dependencies

  • gawk for building ble.sh
  • fzf for some keybindings and bookmark directories in bash
  • delta for generating git diffs (setup in .gitconfig) delta
  • ripgrep to use with vim-fzf searching for file contents

Installation and Cloning

This repository contains submodules for the ble.sh, vim-plug and Tmux Plugin Manager. Do either:

git clone --recurse-submodules -j8 https://github.com/3ximus/dotfiles.git

where -j8 is the number of jobs to run in paralell. Or:

git clone https://github.com/3ximus/dotfiles.git
git submodule init
git submodule update

NOTE To configure the first time you need to run make inside .bash/ble.sh (this is where the gawk dependency comes in)

To update the vim plugins and the repo use

git pull --recurse-submodules -j8

If new submodules where added you might need to run git submodule init again

To copy/link the files you want run install/config.sh --help to check the usage of this script

For unattendend install:

./install/config.sh --force --post --batch

lfs files

Some larger files are stored on lfs, they are normally excluded so for pulling them use this command:

# Use -I to get only specific files, otherwise omitting that pulls all lfs files
# -X is required so it doesn't use exclude rules on .lfsconfig
git lfs pull -I '*.ttf' -X ''

Older themes to go along with the gruvbox colorscheme