Skip to content

lvdund/dotfiles

Repository files navigation

lvdund dotfiles

A comprehensive collection of configuration files for Linux development environments, supporting both Debian/Ubuntu and Arch Linux systems.

Table of Contents

Prerequisites

Required Packages

Install the following packages before proceeding:

  • stow - For managing dotfiles symlinks

System-Specific Installation

Ubuntu/Debian

# Core system packages
sudo apt install -y xorg i3 i3status i3lock xinit xorg lightdm dunst

# Development and utility packages
sudo apt install -y stow git bat fd-find ripgrep trash-cli tmux kitty fish \
    wget curl xclip rofi feh maim lsd playerctl gparted thunar \
    xarchiver gvfs pavucontrol gcc g++ linux-headers-amd64 lxappearance clangd

# Install Neovim (latest version)
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo rm -rf /opt/nvim
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz

# Install fzf
wget https://github.com/junegunn/fzf/releases/download/v0.65.2/fzf-0.65.2-linux_amd64.tar.gz
tar -xzf fzf-0.65.2-linux_amd64.tar.gz
sudo mv fzf /usr/bin/
rm fzf-0.65.2-linux_amd64.tar.gz

Arch Linux

paru -S stow git fzf ripgrep neovim tmux xclip ibus-bamboo lsd bash-completion \
    maim clang rofi i3 i3status dunst dmenu pavucontrol ttf-firacode-nerd feh \
    thunar gvfs xdg-desktop-portal xdg-desktop-portal-gtk firefox lxappearance os-prober

Input Method (IBus-Bamboo)

For Vietnamese input support:

echo 'deb http://download.opensuse.org/repositories/home:/lamlng/Debian_12/ /' | \
    sudo tee /etc/apt/sources.list.d/home:lamlng.list

curl -fsSL https://download.opensuse.org/repositories/home:lamlng/Debian_12/Release.key | \
    gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_lamlng.gpg > /dev/null

sudo apt update
sudo apt install ibus-bamboo
ibus restart

env DCONF_PROFILE=ibus dconf write /desktop/ibus/general/preload-engines \
    "['BambooUs', 'Bamboo']" && \
    gsettings set org.gnome.desktop.input-sources sources \
    "[('xkb', 'us'), ('ibus', 'Bamboo')]"

Fonts Installation

# Download and install Nerd Fonts
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/FiraCode.zip
unzip FiraCode.zip -d FiraCode
sudo mv FiraCode /usr/share/fonts/opentype/

# Install system fonts
sudo apt install fonts-dejavu fonts-liberation fonts-noto fonts-noto-core \
    fonts-freefont-ttf fonts-font-awesome fonts-noto-color-emoji \
    papirus-icon-theme breeze-icon-theme

Cleanup

Remove existing configuration files before installation:

rm ~/.bashrc
rm ~/.tmux.conf
rm -rf ~/.tmux
rm -rf ~/.config/kitty
rm -rf ~/.config/fish
rm -rf ~/.config/i3
rm -rf ~/.config/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.cache/nvim

Installation

Clone and Setup Dotfiles

git clone https://github.com/lvdund/dotfiles.git ~/.dotfiles
cd ~/.dotfiles 

# Apply configurations using stow
stow bash_debian  # or bash_arch for Arch systems
stow nvim
stow tmux
stow kitty
stow fish
stow i3

cd
source ~/.bashrc

Additional Software

Go Development Environment

Python Vir Env

mkdir -p ~/env/pyenv/
sudo apt install python3-venv -y
python3 -m venv main

Install Go

# Create Go directory structure
mkdir -p ~/env/golang/gopath/go1.24.4/{bin,pkg,src}
mkdir -p ~/env/golang/goroot

# Download and install Go
wget https://dl.google.com/go/go1.24.4.linux-amd64.tar.gz
tar -C ~/env/golang/goroot -zxvf go1.24.4.linux-amd64.tar.gz
mv ~/env/golang/goroot/go ~/env/golang/goroot/go1.24.4

# Clean up
rm go1.24.4.linux-amd64.tar.gz
# Create Go directory structure
mkdir -p ~/env/golang/gopath/go1.25.3/{bin,pkg,src}
mkdir -p ~/env/golang/goroot

# Download and install Go
wget https://dl.google.com/go/go1.25.3.linux-amd64.tar.gz
tar -C ~/env/golang/goroot -zxvf go1.25.3.linux-amd64.tar.gz
mv ~/env/golang/goroot/go ~/env/golang/goroot/go1.25.3

# Clean up
rm go1.25.3.linux-amd64.tar.gz

Install Go Tools

go install golang.org/x/tools/gopls@latest
go install github.com/go-delve/delve/cmd/dlv@latest
go install mvdan.cc/gofumpt@latest
go install mvdan.cc/sh/v3/cmd/shfmt@latest
go install golang.org/x/tools/cmd/goimports@latest
go install github.com/fatih/gomodifytags@latest
go install github.com/jesseduffield/lazygit@latest
go install github.com/jesseduffield/lazydocker@latest
go install github.com/josharian/impl@latest

Java Development Environment

# Install Maven
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz
sudo tar -xvzf apache-maven-3.9.9-bin.tar.gz -C ~/env/java

# Install JDK
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz
sudo tar -xvzf jdk-21_linux-x64_bin.tar.gz -C ~/env/java

Bash Language Server

npm i -g bash-language-server
npm install -g eslint
npm install -g typescript-language-server typescript

Auto Mount Disk

Check Disk UUID

lsblk -o NAME,FSTYPE,UUID,MOUNTPOINT
# or
blkid

Create Mount Point and Configure Auto-mount

# Create mount folder (replace "disk_name" with your desired name)
sudo mkdir -p /mnt/disk_name

# Edit fstab for auto-mounting
sudo nano /etc/fstab

# Add line (replace UUID and mount point as needed):
# UUID=your-disk-uuid  /mnt/disk_name  ext4  defaults  0  0

Apply Mount Configuration

sudo systemctl daemon-reload
sudo mount -a

Create usb boot

Git config

git config --global user.email "lvdund@gmail.com"
git config --global user.name "lvdund"

Configuration Structure

This dotfiles repository includes configurations for:

  • bash_debian/ - Bash configuration for Debian/Ubuntu
  • bash_arch/ - Bash configuration for Arch Linux
  • fish/ - Fish shell configuration
  • nvim/ - Neovim configuration with plugins
  • tmux/ - Terminal multiplexer configuration
  • kitty/ - Kitty terminal emulator configuration
  • i3/ - i3 window manager configuration
  • hyprland/ - Hyprland compositor configuration
  • zsh_debian/ - Zsh configuration for Debian systems

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks