Files
the_information_nexus/tech_docs/linux/system_setup.md
2024-05-01 12:28:44 -06:00

9.1 KiB

Streamlining the guide further, we aim for precision and clarity, targeting users well-versed in Linux environments. The revised guide focuses on setting up i3, TMUX, and Vim on Debian 12, incorporating a clean approach to dotfiles management with GNU Stow.

Efficient Setup of i3, TMUX, and Vim on Debian 12

This guide is tailored for experienced Linux users looking to establish a keyboard-centric development environment on Debian 12 (Bookworm) using i3, TMUX, and Vim, complemented by efficient dotfiles management with GNU Stow.

System Preparation

Update and Install Essential Packages:

sudo apt update && sudo apt upgrade -y
sudo apt install git curl build-essential stow i3 tmux vim -y

Environment Setup

i3

  • Install i3 and reload your session. Choose your mod key (usually Super/Windows) when prompted during the first i3 startup.
  • Customize i3 by editing ~/.config/i3/config, tailoring keybindings and settings.

TMUX

  • Launch TMUX with tmux and configure it by editing ~/.tmux.conf to fit your workflow, ensuring harmony with i3 keybindings.

Vim

  • Start Vim and adjust ~/.vimrc for your development needs. Consider plugin management solutions like vim-plug for extended functionality.

Dotfiles Management with GNU Stow

  1. Organize Configurations: Create a ~/dotfiles directory. Inside, segregate configurations into application-specific folders (i3, TMUX, Vim).

  2. Apply Stow: Use GNU Stow from the ~/dotfiles directory to symlink configurations to their respective locations.

    stow i3 tmux vim
    
  3. Version Control: Initialize a Git repository in ~/dotfiles for easy management and replication of your configurations.

Automation

  • Scripting: Create a setup.sh script in ~/dotfiles to automate the installation and configuration process for new setups. Ensure the script is executable with chmod +x setup.sh.

Key Tips

  • Use i3 workspaces for project-specific tasks.
  • Employ TMUX for terminal session management within i3 windows.
  • Master Vim keybindings for efficient code editing.

Additional Tools

Consider enhancing your setup with i3blocks or polybar for status bar customization, and explore terminal emulators like gnome-terminal, alacritty, or urxvt for better integration with your environment.

Conclusion

Adopting this setup on Debian 12 provides a streamlined, efficient development environment. Leveraging i3, TMUX, and Vim in conjunction with GNU Stow for dotfiles management enhances productivity, offering a powerful, keyboard-driven user experience for seasoned Linux enthusiasts.


Streamlined Guide for Setting Up i3, TMUX, and Vim on Debian 12

This guide provides a straightforward approach to setting up a highly efficient development environment on Debian 12 (Bookworm) using i3 window manager, TMUX, and Vim. It's tailored for users who value keyboard-driven productivity and minimalism.

Initial System Update and Setup

  1. Update Your System: Open a terminal and execute the following commands to ensure your system is up to date.

    sudo apt update && sudo apt upgrade -y
    
  2. Install Required Utilities: Some utilities like git, curl, and build-essential are essential for the subsequent steps.

    sudo apt install git curl build-essential -y
    

Installing and Configuring i3

  1. Install i3 Window Manager:

    sudo apt install i3 -y
    

    Logout and select i3 at your login screen to start your i3 session.

  2. Basic Configuration: Upon first login, i3 will ask you to create a configuration file and choose a mod key (typically, the Super/Windows key).

  3. Customize i3 Config: Edit the ~/.config/i3/config file to refine your setup. Start by setting keybindings that complement your workflow with Vim and TMUX.

Setting Up TMUX

  1. Install TMUX:

    sudo apt install tmux -y
    
  2. Configure TMUX:

    • Create a new configuration file:
      touch ~/.tmux.conf
      
    • Use the TMUX configuration discussed previously to populate ~/.tmux.conf.
    • Remember to adjust the prefix key if it conflicts with i3 or Vim shortcuts.
  3. Session Management: Use TMUX for managing terminal sessions within i3 windows. Practice creating, detaching, and attaching sessions as described earlier.

Installing and Customizing Vim

  1. Install Vim:

    sudo apt install vim -y
    
  2. Configure Vim:

    • Create your Vim configuration file:
      touch ~/.vimrc
      
    • Implement the Vim settings provided earlier for a solid starting point.
    • Consider installing Vim plugins like vim-plug for extended functionality.

Integrating Dotfiles Management

  1. Manage Configurations:

    • Use a Git repository to manage your dotfiles (i3, TMUX, Vim) for easy replication and version control.
    • Create symbolic links (ln -s) from your actual config locations to the files in your dotfiles repository.
  2. Automate Setup:

    • Write shell scripts to automate the installation and configuration process for new machines or fresh installs.

Workflow Tips

  • Leverage i3 for Workspace Management: Use different i3 workspaces for various tasks and projects.
  • Utilize TMUX Within i3: Run TMUX in your terminals to multiplex inside a clean i3 workspace.
  • Vim for Editing: Within TMUX sessions, use Vim for code editing, ensuring a keyboard-centric development process.

Additional Recommendations

  • Explore i3blocks or polybar: Enhance your i3 status bar with useful information.
  • Learn Vim Keybindings: Increase your efficiency in Vim by mastering its keybindings and commands.
  • Customize Your Terminal: Use gnome-terminal, alacritty, or urxvt for better integration with i3 and TMUX.

By following this guide, you'll set up a Debian 12 system optimized for productivity and efficiency, with i3, TMUX, and Vim at the core of your workflow. This setup is ideal for developers and system administrators who prefer a keyboard-driven environment, offering powerful tools for managing windows, terminal sessions, and code editing seamlessly.


For a robust and efficient i3 window manager setup on Debian, power users often incorporate a variety of packages to enhance functionality, customization, and productivity. Below is a concise list of commonly used packages tailored for such an environment.

System Tools and Utilities

  • git: Version control system essential for managing codebases and dotfiles.
  • curl / wget: Tools for downloading files from the internet.
  • build-essential: Package containing compilers and libraries essential for compiling software.

Terminal Emulation and Shell

  • gnome-terminal, alacritty, or urxvt: Terminal emulators that offer great customization and integration with i3.
  • zsh or fish: Alternative shells to Bash, known for their enhancements, plugins, and themes.

File Management

  • ranger: Console-based file manager with VI keybindings.
  • thunar: A lightweight GUI file manager if occasional graphical management is preferred.

System Monitoring and Management

  • htop: An interactive process viewer, superior to top.
  • ncdu: Disk usage analyzer with an ncurses interface.
  • lm-sensors / psensor: Hardware temperature monitoring tools.

Networking Tools

  • nmap: Network exploration tool and security / port scanner.
  • traceroute / tracepath: Tools to trace the path packets take to a network host.

Text Editing and Development

  • vim-gtk3 or neovim: Enhanced versions of Vim, the text editor, with additional features such as clipboard support.
  • tmux: Terminal multiplexer, for managing multiple terminal sessions.

Appearance and Theming

  • lxappearance: GUI tool for changing GTK themes.
  • feh: Lightweight image viewer and background setter.
  • nitrogen: Background browser and setter for X windows.
  • picom: A compositor for Xorg, providing window effects like transparency and shadows.

Media and Document Viewing

  • vlc: Versatile media player capable of playing most media formats.
  • zathura: Highly customizable and functional document viewer, with Vim-like keybindings.
  • imagemagick: Software suite to create, edit, compose, or convert bitmap images.

Miscellaneous Utilities

  • xclip or xsel: Command line clipboard utilities. Essential for clipboard management within terminal sessions.
  • rofi or dmenu: Application launchers that allow quick finding and launching of applications and commands.

Installation Command

Combine the installation into a single command for convenience:

sudo apt update && sudo apt install git curl wget build-essential gnome-terminal alacritty ranger thunar htop ncdu lm-sensors nmap traceroute vim-gtk3 neovim tmux lxappearance feh nitrogen picom vlc zathura imagemagick xclip rofi -y

Adjust the list based on your preferences and needs. This setup provides a comprehensive toolset for power users, ensuring a wide range of tasks can be efficiently managed within a Debian-based i3wm environment.