A comprehensive collection of configuration files for Linux development environments, supporting both Debian/Ubuntu and Arch Linux systems.
- Prerequisites
- Installation
- Cleanup
- Configuration
- Additional Software
- Desktop Environments
- Auto Mount Disk
Install the following packages before proceeding:
- stow - For managing dotfiles symlinks
# 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.gzparu -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-proberFor 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')]"# 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-themeRemove 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/nvimgit 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 ~/.bashrcmkdir -p ~/env/pyenv/
sudo apt install python3-venv -y
python3 -m venv main# 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.gzgo 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# 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/javanpm i -g bash-language-server
npm install -g eslint
npm install -g typescript-language-server typescriptlsblk -o NAME,FSTYPE,UUID,MOUNTPOINT
# or
blkid# 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 0sudo systemctl daemon-reload
sudo mount -agit config --global user.email "lvdund@gmail.com"
git config --global user.name "lvdund"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