Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.
/ legacy-dotfiles Public archive

Config files for my Linux systems

License

Notifications You must be signed in to change notification settings

karmicdude/legacy-dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KarmicDude dotfiles

This repository contains a set of configuration files for bash and fish shells, KDE Plasma Desktop and programs that I use most regularly.

My favorite OS is Arch Linux, so package names and config paths are relevant for it and may a bit differ for other distros.

In addition, I use two workstations (PC and a laptop), which have slightly differences in the configs. So some configs are separated for use on different devices.

The installation itself requires GNU Stow - awesome tool as a symlink manager.

Table of contents

Dependencies

  • GNU Stow - A symlink manager
  • alsa-utils - (used in sb_output_switcher.sh script)
  • bat - A cat clone with syntax highlighting and Git integration
  • gist - A GitHub gists tool (used in out alias)
  • git - A most popular source distributed version control system
  • gnupg - An OpenPGP standard implementation
  • Google Chrome Beta - A beta version of Google Chrome Browser
  • fish-shell - A smart and user-friendly new-generation command line shell
  • fisher - A plugin manager for fish
  • fzy - A fast, simple fuzzy text selector for the terminal with an advanced scoring algorithm
  • kitty - A cross-platform, fast, feature-rich, GPU based terminal
  • kubectx - An util to manage and switch between clusters and namespaces (used for abbr: kx and kns)
  • neofetch - A command-line system information tool
  • profile-sync-daemon - A tiny daemon designed to keep your browser profile in tempfs
  • parallel - A shell tool for executing jobs in parallel (used in kubectl function)
  • pastebinit - A multi pastebin service (used in pb alias)
  • pinentry-qt - A GUI application used to enter passphrases
  • pwgen - A password generation tool (used in pwgen alias)
  • starship - A minimal, blazing-fast and infinitely customizable prompt
  • VSCode - A popular code editor (used in c alias)
# Install yay as AUR helper
pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git /tmp/yay
cd /tmp/yay
makepkg -si

# Install deps
yay -S \
  alsa-utils \
  bat \
  gistit \
  gnupg \
  google-chrome-beta \
  imagemagick \
  kubectx \
  fish \
  fisher \
  fzy \
  kitty \
  neofetch \
  openssh \
  pastebinit \
  pinentry \
  profile-sync-daemon \
  pwgen \
  starship \
  stow \
  visual-studio-code-bin

# Add stow default settings
cat << EOF > ~/.stowrc
--target=~
--verbose
EOF

# Starship requires the Nerd font package for your terminal to display icons.
# You can choose any of these. I prefer nerd-fonts-ubuntu-mono
yay -S \
  otf-nerd-fonts-fira-code \
  nerd-fonts-dejavu-complete \
  nerd-fonts-fantasque-sans-mono \
  nerd-fonts-iosevka \
  nerd-fonts-jetbrains-mono \
  nerd-fonts-mononoki \
  nerd-fonts-roboto-mono \
  nerd-fonts-ubuntu-mono

How to use it?

It is assumed that there are no configuration files for what you are installing. If the destination config files exist, an error will appear and you will need to manually resolve the conflict by deleting the existing files if you go to use mine.

# Just cd to repo_path/dotfiles
# Simple run stow [package]. E.g.:
cd repo_path/dotfiles
stow bash inputrc kitty
# Or install all of it at once
stow *

Dependencies configuration

SSH Agent

# Enable ssh-agent service
systemctl --user daemon-reload
systemctl --user enable --now ssh-agent.service

NOTE: If for some reason you decide to disable ssh-agent.service, then the symlink to the source file in stow project will be deleted. To bring it back, you can run from repo_path/dotfiles command stow ssh-agent

Gist

# Create API Token for gist
# https://github.com/settings/tokens
shopt -ou history
echo YOUR_TOKEN_HERE > ~/.gist && \
chmod go-rwx ~/.gist
shopt -os history

Fonts

# After install fonts update the cache
fc-cache -fr
# Show fonts list
fc-list

Google Chrome

# Change the amount of available memory for tmpfs, where chrome will store
# its cache (see chrome-beta-flags.conf) and for storing the profile using psd
# 25% - Change the percentage of total memory for your own reasons.
sudo sed -i "s/.*RuntimeDirectorySize=.*/RuntimeDirectorySize=25%/g" /etc/systemd/logind.conf

Profile Sync Daemon

# Add psd-overlay-helper binary to execute the sudo in passwordless way
echo "$USER ALL=(ALL) NOPASSWD: $(type -P psd-overlay-helper)" | sudo EDITOR='tee -a' visudo
# enable psd service
systemctl --user enable psd

Kubectl

# You can create a file ~/.kube/config_list, in which you can
# list the full paths to the separate cluster configs. E.g.:
cat << EOF > ~/.kube/config_list
/home/user/.kube/cluster1
/home/user/.kube/cluster2
/home/user/.kube/config
EOF

# Note: shortening ~ for home directory does't work

TODO

  • Add installation info about git submodules
  • Add link to fish repo README.md
  • Add infromation about migration from bash to fish
  • Replace bash aliases with fish functions and abbreviations
  • Add stow modules and configs for:

About

Config files for my Linux systems

Resources

License

Stars

Watchers

Forks

Languages