Skip to content

AssachanDev/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛠️ back-up-tools

Personal Linux dotfiles & auto-install script

Clone on a fresh machine → run one command → everything is ready.

Arch Linux Ubuntu Shell Script


⚡ Quick Start

git clone https://github.com/<your-username>/back-up-tools.git ~/back-up-tools
cd ~/back-up-tools
chmod +x install.sh
./install.sh

The script will automatically:

  1. 🔍 Detect your distro (Arch or Ubuntu/Debian)
  2. 📦 Install all packages via the native package manager
  3. 🔌 Install Zsh plugins and TPM (Tmux Plugin Manager)
  4. 🔗 Symlink all configs into the correct locations
  5. 🐚 Set Zsh as the default shell

📦 Tools Installed

CLI Essentials

Tool Description
git Version control
zsh Main shell
tmux Terminal multiplexer
neovim Text editor
kitty GPU-accelerated terminal emulator

Modern Unix Tools

Tool Replaces Description
eza ls Modern file listing with icons
bat cat Syntax highlighting pager
fd find Fast and user-friendly file finder
ripgrep grep Fast recursive content search
duf df Better disk usage overview
tree tree Directory structure as a tree

Productivity

Tool Description
fzf Fuzzy finder for files, history, etc.
zoxide Smarter cd — jumps to frecent directories
atuin Shell history with search and sync
yazi Terminal file manager
lazygit Terminal UI for git
btop Resource monitor (CPU / mem / net / disk)

DevOps

Tool Description
docker Container runtime (docker.io or docker-ce depending on environment)
lazydocker Terminal UI for Docker

Note

On Ubuntu, if containerd.io (Docker's official package) is already installed, the script will automatically install docker-ce from Docker's official repository instead of docker.io to avoid package conflicts.

Zsh Plugins

Plugin Description
oh-my-zsh Zsh framework with plugins and helpers
Powerlevel10k Fast and customizable Zsh prompt theme
zsh-autosuggestions Fish-like command suggestions
zsh-syntax-highlighting Syntax highlighting in the shell

oh-my-zsh plugins enabled: git sudo docker extract


⚙️ Configs Included

🐚 Zshconfigs/zsh/
  • zshrc — main Zsh config
  • p10k.zsh — Powerlevel10k prompt config

Aliases:

alias ls='eza --icons --group-directories-first'
alias ll='eza -lh --icons --group-directories-first'
alias la='eza -a --icons --group-directories-first'
alias tree='eza --tree --icons'
alias nv='nvim'
alias yz='yazi'
alias rg='rg --smart-case'

[!NOTE] cd is powered by zoxide via zoxide init zsh --cmd cd — tab completion works as expected.

🐱 Kittyconfigs/kitty/
  • kitty.conf — main terminal config
  • current-theme.conf — Catppuccin Mocha color theme
Setting Value
Font JetBrainsMono Nerd Font
Font size 12
Background opacity 0.85
Cursor shape Beam
Tab bar style Powerline (slanted)

[!NOTE] Requires JetBrainsMono Nerd Font — install via:

# Arch
sudo pacman -S ttf-jetbrains-mono-nerd
# Ubuntu
sudo apt install fonts-jetbrains-mono
Keybinding Action
Ctrl+Shift+T New tab in current directory
Ctrl+Shift+Enter New window in current directory
📟 Tmuxconfigs/tmux/
  • .tmux.conf — main tmux config

[!IMPORTANT] Prefix key has been changed from Ctrl+BCtrl+Space

Plugins (via TPM):

Plugin Description
tmux-sensible Sensible default settings
tmux-resurrect Save and restore sessions
tmux-continuum Auto-save sessions continuously
tmux-yank Copy to system clipboard
tmux-open Open files/URLs from tmux
tmux-fzf Manage tmux with fzf
catppuccin/tmux Catppuccin Mocha theme

After install, open tmux and press Ctrl+Space + I to install plugins.

Pane navigation (shared with Neovim via vim-tmux-navigator):

Key Action
Ctrl+H Move to left pane
Ctrl+J Move to bottom pane
Ctrl+K Move to top pane
Ctrl+L Move to right pane
🗂️ Yaziconfigs/yazi/
  • yazi.toml — file manager config
Setting Value
Show hidden files enabled
Default editor nvim
📊 Btopconfigs/btop/
  • btop.conf — main config
  • themes/caelestia.theme — custom color theme
Setting Value
Theme caelestia (included)
Background transparent
Graph style braille (high resolution)
🦥 Lazygit

No custom config — uses default settings.

🦇 Bat

No config file — works out of the box with syntax highlighting.

[!NOTE] On Ubuntu/Debian, bat is installed as batcat. Add this alias if needed:

alias bat='batcat'

📝 Neovim

Neovim is installed by this script but no config is included here. Config lives in a separate repo → AssachanDev/nvim


✅ Verify Installation

After running install.sh, verify everything is working:

bash scripts/check_tools.sh

📁 Project Structure

back-up-tools/
├── install.sh              # Main entry point
├── scripts/
│   ├── utils.sh            # Logging helpers, link_config()
│   ├── detect_distro.sh    # Auto-detect Arch / Ubuntu / Debian
│   ├── packages_arch.sh    # Arch package list
│   ├── packages_ubuntu.sh  # Ubuntu/Debian package list
│   ├── setup_configs.sh    # Symlink configs + install plugins
│   └── check_tools.sh      # Verify all tools are installed correctly
└── configs/
    ├── zsh/
    ├── kitty/
    ├── tmux/
    ├── yazi/
    └── btop/

About

Personal Linux dotfiles & auto-install script. Supports Arch and Ubuntu — clone, run, done.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages