// Master the keyboard. Reject bloat.
// WHAT WE'RE BUILDING
In this tutorial, you'll install Debian Linux (CLI only) and set up i3, a tiling window manager. i3 is fast, lightweight, and completely keyboard-driven. You'll learn to do everything without a mouse - because reaching for a mouse slows you down.
// WHY THIS MATTERS
Most Linux distributions ship with bloated desktop environments that consume gigabytes of RAM and CPU. i3 is different - it uses a fraction of the resources and forces you to learn the keyboard. Once you master i3, you'll never want to go back. You'll be faster, more efficient, and your computer will run cooler and faster.
This project teaches you:
i3 is a tiling window manager for X11. Unlike traditional desktop environments (GNOME, KDE, XFCE), i3 doesn't have panels, docks, or desktop icons. It simply manages windows - and it does it brilliantly.
"Tiling" means i3 automatically arranges your windows to fill the screen. No dragging, resizing, or maximizing. When you open a new window, i3 decides where it goes based on which mode you're in.
A display manager (GDM, SDDM, LightDM) shows you a login screen and starts your desktop. But if you have only one user and boot to console, you don't need one. startx does the job - it starts X11 and launches i3 directly.
Prerequisites
Debian with i3 is incredibly lightweight:
We'll install Debian with no desktop environment - just the base system and SSH server.
Download the Debian netinst ISO (small installer that downloads packages):
Visit debian.org/distrib and download "Small CD" or "netinst" for your architecture (amd64 for most modern computers).
$ lsblk # Find your USB drive (likely /dev/sdX)
$ sudo dd if=debian-12.x.x-amd64-netinst.iso of=/dev/sdX bs=4M status=progress # Replace sdX with your USB device
Boot from USB and follow these steps:
For a simple desktop, use the guided partitioner:
This is crucial - don't select any desktop environment:
Only check "ssh server" and "standard system utilities".
Wait for the installation to complete, then reboot. You'll see a login prompt - you've got a minimal Debian system!
debian login: your-username Password: your-password Linux debian 6.1.0-21-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 x86_64 The programs included with the Debian GNU/Linux are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Feb 25 10:00:00 from 192.168.1.1 user@debian:~$
$ sudo apt update # Update package lists
$ sudo apt upgrade # Install updates
$ su - Password: root-password root@debian:~# apt install sudo root@debian:~# usermod -aG sudo username root@debian:~# exit
Important
Log out and log back in for sudo group membership to take effect!
Now let's install the graphical stack: X11, i3, and a terminal.
$ sudo apt install xorg # X11 windowing system
$ sudo apt install i3 # i3 window manager
$ sudo apt install xinit # Start X without display manager
$ sudo apt install xfce4-terminal # A good terminal emulator
Recommended Additional Packages
Install these for a better experience:
$ sudo apt install feh nitrogen rxvt-unicode rofi dmenu scrot compton lm-sensors # feh: wallpaper | nitrogen: wallpaper manager | rofi/dmenu: app launcher | scrot: screenshots | compton: transparency | lm-sensors: hardware monitoring
$ sudo apt install fonts-terminus fonts-firacode # Nice monospace fonts
Create ~/.xinitrc to tell xinit what to start:
$ nano ~/.xinitrc
# ~/.xinitrc # Set background color (fallback if no wallpaper) xsetroot -solid "#1a1a1a" # Start i3 exec i3
$ chmod +x ~/.xinitrc
Logout or switch to a virtual terminal (Ctrl+Alt+F2), then:
$ startx # Launch i3!
First Launch
On first launch, i3 will ask if you want to generate a config file. Choose "Yes" and press Enter.
Without a file manager or graphical text editor, you'll need to learn command-line alternatives. This section covers everything you need.
You have several options, from easiest to most powerful:
$ nano filename.txt # Simple text editor
Controls:
$ vim filename.txt # Or vi
Vim has two modes:
Basic Vim commands:
Tip
Run vimtutor to learn Vim in 30 minutes. It's the best way to learn!
$ sudo apt install emacs-nox $ emacs -nw filename.txt # -nw = no window (terminal mode)
Instead of a file manager, use the command line:
$ ls # List files $ ls -la # List with details $ ls -lh # Human-readable sizes $ ls -la | head -20 # First 20 files
$ cd /path/to/dir # Change directory $ cd ~ # Go home $ cd - # Go to previous directory $ pwd # Print working directory
$ cat file.txt # Print entire file $ less file.txt # View file with scrolling (q to quit) $ head -20 file.txt # First 20 lines $ tail -20 file.txt # Last 20 lines $ tail -f /var/log/syslog # Follow log file
$ touch file.txt # Create empty file $ mkdir newdir # Create directory $ mkdir -p dir1/dir2/dir3 # Create nested directories $ echo "text" > file.txt # Write text to file (overwrites) $ echo "text" >> file.txt # Append text to file
$ cp source.txt dest.txt # Copy file $ cp -r dir/ backup/ # Copy directory recursively $ mv oldname.txt newname.txt # Rename/move file $ rm file.txt # Delete file $ rm -r dir/ # Delete directory $ rm -rf dir/ # Force delete (be careful!)
DANGER
rm -rf / will destroy your system! Never run commands you don't understand.
$ find /home -name "*.txt" # Find all .txt files in home $ find / -type d -name "Documents" # Find directories named Documents $ locate filename # Quick search (needs updatedb first)
$ chmod +x script.sh # Make executable $ chmod 755 file # rwxr-xr-x permissions $ chown user:group file # Change owner
Debian uses APT (Advanced Package Tool):
$ sudo apt update # Update package lists $ sudo apt upgrade # Upgrade all packages $ sudo apt install packagename # Install package $ sudo apt remove packagename # Remove package $ apt search term # Search for packages $ apt show packagename # Show package info $ dpkg -l # List installed packages
$ top # Interactive process viewer $ htop # Better process viewer (install first) $ ps aux # List all processes $ pkill processname # Kill process by name $ kill 1234 # Kill process by PID $ kill -9 1234 # Force kill
$ uname -a # Kernel info $ free -h # Memory usage $ df -h # Disk usage $ lsblk # Block devices $ ip addr # Network addresses $ uptime # How long running $ cat /proc/cpuinfo # CPU info $ sudo sensors # Temperature (if lm-sensors installed)
Now you have i3 running. Let's make it productive.
i3 uses a "mod" key (usually Mod4 = Windows key, or Mod1 = Alt):
Press Mod+d to open dmenu - a minimal application launcher. Start typing the name of the program you want to launch:
Edit ~/.config/i3/config to customize i3:
$ mkdir -p ~/.config/i3 $ cp /etc/i3/config ~/.config/i3/config # Copy default config
# Find this line and change it: set $mod Mod1 # Or use Windows key: set $mod Mod4
# Launch terminal with Mod+Enter bindsym $mod+Return exec xfce4-terminal # Launch browser with Mod+b bindsym $mod+b exec firefox # Screenshot with Print key bindsym Print exec scrot ~/screenshot-%Y%m%d-%H%M%S.png
Install i3status for a status bar:
$ sudo apt install i3status
Configure in ~/.config/i3status/config or use i3blocks for more options.
$ xrandr # List monitors and outputs
$ xrandr --output HDMI-1 --mode 1920x1080 --right-of DP-1 # Set up dual monitors
Add this to ~/.xinitrc to make it permanent.
$ sudo apt install alsa-utils # Basic audio tools $ alsamixer # Interactive mixer (ncurses)
$ amixer sset Master 50% # Set volume to 50% $ amixer sset Master toggle # Mute/unmute $ amixer sset Master 5%+ # Increase volume $ amixer sset Master 5%- # Decrease volume
$ xbacklight -set 50 # Set brightness to 50% $ xbacklight -inc 10 # Increase by 10% $ xbacklight -dec 10 # Decrease by 10%
Some recommended packages to install:
$ sudo apt install firefox-esr chromium # Web browsers
$ sudo apt install vim-gtk3 curl wget git htop # CLI essentials
$ sudo apt install zathura zathura-pdf-poppler # PDF viewer
$ sudo apt install mpv # Video player
$ sudo apt install imagemagick # Image tools (convert, etc)
$ sudo apt install ranger # CLI file manager (optional)
$ sudo apt install network-manager-gnome # WiFi GUI (if needed)
$ ip link # Check network interfaces
$ sudo apt install firmware-iwlwifi # Intel WiFi firmware
$ sudo systemctl restart NetworkManager
$ pavucontrol # PulseAudio volume control (install first)
$ sudo usermod -aG audio username # Add user to audio group
$ startx 2>&1 | tee ~/xlog # Start and save errors
$ cat ~/xlog # Check for errors
If i3 freezes or you need to get out:
$ man command # Read manual $ command --help # Quick help $ info command # Detailed info
You've installed a minimal Debian system with i3 window manager!
Next Steps:
You've taken back control of your computer. No bloat, no unnecessary features, no sluggish performance. Just you and your keyboard.
The revolution will not be proprietary.