An opinionated, automated desktop environment installer for Arch Linux that delivers a cohesive developer workstation with curated applications, streamlined workflows, and consistent configurations deployable through effortless automation.
Caution
This project is a work in progress and may not be fully functional.
Note
This project is meant to be personal and extremely opinionated. It is not meant to be a general purpose desktop environment. If you find this project useful to your own needs, it is recommended to fork it and make it your own adjustments.
# Apply files and install packages
~/GitHub/9aia/salmo/src/scripts/salmo/salmo prepare- π― Opinionated: Curated choices, not user-configurable
- π¨ Aesthetic Excellence: Cohesive and pleasing user experience
- β‘ Developer Productivity: Streamlined tooling and workflows
- π§ Consistent Experience: Uniform across installations
- π Effortless Deployment: Quick system setup and recovery
- π Automated Setup: Fully reproducible desktop environment
This project includes:
- Curation of the Desktop Environment:
- Assets (fonts, wallpapers, icons, themes)
- Complete system configuration: window manager, terminal, lock screen, status bar, notification daemon, application launcher, etc.
- Essential development tools and productivity applications
- Custom utility scripts and binaries for enhanced workflow
- CLI Installation Tool with comprehensive automation:
de setup_usb- Downloads dependencies, Arch ISO, sets up USB drive, copies ISO to USB drive, and reboots automaticallyde install- Complete automated desktop environment deployment including all the curated desktop environment mentioned above
- Development Environment for This Project:
- Live synchronization between the local repository and the active system for rapid testing
Out of scope:
- Multi-distribution support (Arch Linux only)
- GUI-based configuration tools
- Windows or macOS compatibility
- Legacy hardware support
- Production server configurations
| Component | Technology |
|---|---|
| Window Manager | Hyprland |
| Terminal | Alacritty |
| Multiplexer | Tmux |
| Application Launcher | bemenu |
| Code Editor | Cursor, Neovim |
| Image Viewer | Imv |
| GTK Theme | Oomox |
| Icon Theme | Archdroid (Android Material Design) |
| Font | Roboto |
| Software | Technology |
|---|---|
| Notification Daemon | Dunst |
| Software | Technology |
|---|---|
| Status Bar | Waybar |
| Clipboard | wl-clipboard |
| Clipboard Manager | cliphist |
| Wallpaper | hyprpaper |
| File Manager | pcmanfm (GUI), yazi (TUI) |
| Idle Management | hypridle |
| Audio Mixer | wiremix |
| Wifi Manager | impala |
- Keyboard Layout: Brazilian ABNT2 (
br-abnt2) - Timezone: SΓ£o Paulo, Brazil (
America/Sao_Paulo) - Locale: English US with UTF-8 encoding (
en_US.UTF-8) - System Language: English US (
en_US) - Package Mirror: Brazil region
- Set
$modasMod4; - Open application launcher by pressing
$mod+d; - Custom wallpaper;
- Custom Hyprland appearence;
- Custom notification appearence powered by dunst;
- Custom application launcher appearence powered by bemenu;
- Custom Alacritty appearence;
- Custom GTK theme based on Oomox theme style;
- Custom icon theme based on Android Lollipop's material design icons.
Before starting the installation, ensure you have:
- A computer with UEFI firmware (legacy BIOS not supported)
- At least 8GB of RAM and 128GB of free storage
- A USB drive with at least 2GB capacity (will be formatted)
- Stable internet connection for downloading packages
- Curl installed on your current system
Important
Read this documentation on a separate device (phone, tablet, or another computer) as you'll need to reboot during installation and won't have access to this documentation.
Caution
This installation will completely replace your current system. Back up all important data before proceeding.
-
Download and prepare the installation:
curl -fsSL https://de.luisfuturist.com | bash setup_usbThis script will:
- Download Arch Linux ISO
- Install Ventoy USB tool
- Format your USB drive
- Copy the ISO to the USB drive
- Reboot the system
-
Configure BIOS/UEFI settings:
- Before the computer is about to boot, enter BIOS/UEFI setup (usually F2, F12, or Del key)
- Ensure that the USB drive is set as the first boot device
- Disable Secure Boot if enabled
- Save settings and exit
-
Connect to the internet: e.g. using WiFi or Ethernet cable
-
Boot from USB and install Arch Linux:
After booting from the USB drive, run:
archinstall
-
Configure installation with these specific settings:
Follow the
archinstallprompts and use these required configurations:- Profile Type:
desktop - Desktop Environment: Select
Hyprlandfrom the window manager options - Audio:
pipewire - Kernel:
linux,linux-zen - Network configuration:
NetworkManager - Graphics driver:
nvidia (proprietary drivers) - Additional packages: Leave default or add any specific packages you need
[!TIP] For all other settings, the defaults are generally appropriate, but ensure you:
- Set a strong root password
- Create a user account with sudo privileges
- Configure your disk partitioning carefully
- Profile Type:
-
Complete base installation:
- Wait for the installation to complete (this may take 10-30 minutes)
- Remove the USB drive when prompted
- Reboot the system
-
Complete the desktop environment setup:
After rebooting into your new Arch system, log in and run:
curl -fsSL https://de.luisfuturist.com | bash installThis will install and configure:
- All desktop environment components (Hyprland, Waybar, etc.)
- Development tools (Cursor, Neovim, Git, Docker, etc.)
- Essential applications (Chrome, Alacritty, VLC, etc.)
- Custom themes and configurations
- System utilities and scripts
-
Post-installation:
- The script will automatically configure your shell
- Restart your system to apply all changes
- Your new desktop environment is ready to use!
src/scripts/install-de.sh- Downloads and installs all the softwaresrc/scripts/config-de.sh- Create or update the configuration files
As the configuration files creation are not dependent on the installation, the src/scripts/install-de.sh & src/scripts/config-de.sh can be run in parallel for faster execution
// TODO: add development documentation