After years of using various Linux distributions, I finally decided to build the ultimate desktop setup with Gentoo Linux. This isn't just another installation guide – it's a complete walkthrough of creating a secure, optimized, and minimalist desktop environment that reflects my philosophy of computing.

Why Gentoo?

Gentoo offers unparalleled control over your system. Every package is compiled from source with your specific optimizations, resulting in a system that's truly yours. My setup focuses on:

  • Security: Full disk encryption with LUKS
  • Flexibility: LVM for volume management
  • Performance: Aggressive compiler optimizations
  • Minimalism: Sway window manager with Wayland
  • Modern: systemd for init and service management

Key Features of My Setup

This configuration has been tested on my hardware and includes these standout features:

LUKS on LVM allows for mounting other encrypted drives seamlessly, while systemd-boot provides a clean, silent boot experience with optimal performance settings.

Security Architecture

The foundation of this build is security. I use LUKS encryption on top of LVM, which provides:

  • Full disk encryption protecting all data at rest
  • Flexible volume management for future expansion
  • Ability to easily mount additional encrypted drives
  • UEFI Secure Boot compatibility

Performance Optimizations

My make.conf is tuned for performance with these optimizations:

COMMON_FLAGS="-march=native -O3 -pipe -flto=7"
MAKEOPTS="-j5 -l5"
USE="wayland vulkan pulseaudio alsa -systemd -ipv6"

These flags enable:

  • -march=native: CPU-specific optimizations
  • -O3: Aggressive optimization level
  • -flto=7: Link-time optimization with 7 threads
  • Parallel compilation: Using 5 jobs with load limit

The Installation Process

1. Disk Setup: LUKS on LVM

The disk setup is crucial for both security and flexibility. Here's my partition scheme:

# Create partitions
cfdisk /dev/sda

# Setup LVM
pvcreate /dev/sda2
vgcreate vg0 /dev/sda2
lvcreate -l 100%FREE -n root vg0

# Apply LUKS encryption
cryptsetup luksFormat --type luks2 --cipher aes-xts-plain64 \
  --key-size 256 --hash sha256 /dev/vg0/root

This approach gives us encrypted volumes that can be easily managed and expanded later.

2. Base System with systemd

I chose the systemd profile for its modern approach to system management:

# Select systemd profile
eselect profile set 17  # systemd stable profile

# Optimize for the new profile
emerge --ask --verbose --update --deep --newuse @world

3. Kernel Configuration

Using genkernel with custom configuration ensures all necessary drivers are included:

# Install and configure genkernel
emerge --ask sys-kernel/genkernel
nano -w /etc/genkernel.conf

# Ensure LUKS and LVM support
LVM="yes"
LUKS="yes"

# Generate kernel and initramfs
genkernel --loglevel=5 all

Sway: The Future of Window Management

Instead of traditional X11, I chose Sway – a Wayland compositor that's a drop-in replacement for i3wm. The benefits are significant:

  • Better security: Wayland's architecture prevents applications from snooping on each other
  • Improved performance: Direct rendering without X11 overhead
  • Modern graphics: Native support for HiDPI and multi-monitor setups
  • Familiar workflow: Same keybindings and concepts as i3wm

Essential Sway Packages

emerge -av gui-wm/sway swaybg foot grim slurp \
  terminus-font mako wl-clipboard playerctl bemenu

My Sway environment includes:

  • foot: Fast, lightweight Wayland terminal
  • mako: Notification daemon
  • bemenu: Application launcher
  • grim + slurp: Screenshot tools

Boot Configuration: systemd-boot

For the bootloader, I use systemd-boot for its simplicity and integration:

# Install systemd-boot
bootctl --path=/boot install

# Create boot entry
nano -w /boot/loader/entries/gentoo.conf

My boot configuration enables silent booting with optimizations:

title gentoo
linux /vmlinuz-6.6.30-gentoo-x86_64
initrd /initramfs-6.6.30-gentoo-x86_64.img
options crypt_root=/dev/mapper/vg0-root root=/dev/mapper/root \
  dolvm quiet loglevel=3 vt.global_cursor_default=0 \
  mitigations=off

Software Selection Philosophy

Every package in my system serves a purpose. Here are some key applications:

  • qutebrowser: Vim-like web browser built on Qt
  • neovim: Modern, extensible text editor
  • ranger: Console file manager
  • pipewire: Modern audio system
  • htop: System monitoring

Performance Results

The optimizations pay off significantly:

  • Boot time: ~3 seconds from GRUB to desktop
  • Memory usage: <400MB at idle
  • Compilation speed: 30-40% faster than generic builds
  • Graphics performance: Native Wayland rendering

Lessons Learned

Building this system taught me several important lessons:

Minimalism isn't about having less – it's about having exactly what you need, optimized perfectly for your workflow.

  • Plan your USE flags carefully: They dramatically affect compilation time and system behavior
  • LUKS on LVM is worth the complexity: The flexibility for future drive management is invaluable
  • Wayland is ready: Sway provides a superior experience to X11-based window managers
  • systemd simplifies many things: Despite the controversy, it makes system management more consistent

The Complete Configuration

All configuration files, USE flags, and detailed installation steps are available in my GitHub repository. This includes:

  • Complete /etc/portage/ configuration
  • Sway and application dotfiles
  • Custom kernel configuration
  • Installation automation scripts

Future Improvements

This setup continues to evolve. Future enhancements I'm considering:

  • Immutable system: Exploring Gentoo with read-only root
  • Container integration: Better isolation for development environments
  • Advanced security: SELinux or AppArmor integration
  • Automation: Ansible playbooks for reproducible builds

Conclusion

Building a Gentoo desktop from scratch is a journey that teaches you intimate details about how Linux works. The result is a system that's uniquely yours – optimized for your hardware, configured for your workflow, and secure by design.

While it requires time and patience, the knowledge gained and the performance benefits make it worthwhile for anyone serious about understanding and controlling their computing environment.

Remember: This configuration is tested on my specific hardware. Always adapt the settings to match your system requirements and security needs.

Feel free to explore the complete configuration repository and adapt it for your own Gentoo journey!

← Back to Blog