I'm currently overwhelmed with messages, emails, and comments. i'll get to everyone one by one, please be patient. i'm only one person behind this project.
If you're here just for the wallpapers, you can get all of them (+1050 wallpapers) from my images repo.
YES YOU CAN HAVE HORIZONTAL WAYBAR. and you will be asked which side you want it on bottom/top/left/right.
- waybar horizontal and vertical,: Take your pick during setup, easily toggleable from rofi as well. here's what it looks like.
This repository is the result of 8 months of tinkering/breaking/fixing and polishing. Its a labor of love designed to feel as easy to install as a "standard" distribution but with the raw power and minimalism of arch.
Since i build and maintain this all by myself, please consider starring ⭐ this repo as a token of support.
This setup is strictly optimized for BTRFS.
- Why? ZSTD compression, Copy-on-Write (CoW) to prevent data corruption, and instant Snapshots.
The setup scripts are written to auto detect your hardware and set the appropriate environment variables but in case your hardware is not detected or has some issues, you're advised to configure the following files to set your environment variables.
Note
Configure the uwsm env files to set your gpu environment variables.
-
Open the files at ~/.config/uwsm/env and ~/.config/uwsm/env-hyprland
-
Replace Intel/Nvidia/Amd -specific variables with your hardware equivalents.
-
Compatible with Windows or other Linux distros.
-
Bootloader: Defaults to
systemd-bootfor UEFI (boots up to 5s faster). Defaults toGRUBfor BIOS.
Best for: Users who already have a fresh, unconfigured Arch Linux installation with Hyprland, set up either via the archinstall script or through a manual install. If you have not installed yet, use the Arch ISO and ensure you select Btrfs as the filesystem and Hyprland as the window manager.
after installing arch, boot into the os and then run this in the terminal.
i use a bare git repository method to drop files exactly where they belong in your home directory.
make sure your connected to the internet and git is installed,
sudo pacman -Syu --needed git
clone the repo
git clone --bare --depth 1 https://github.com/dusklinux/dusky.git $HOME/dusky
deploy the files on your system.
git --git-dir=$HOME/dusky/ --work-tree=$HOME checkout -fNote:
This will immediately list a few errors at the top, but dont worry, that's expected behaviour, the errors will later go away on there own after matugen generates colors and cycles through a wallpaper.
Run the master script to install dependencies, themes, and services, this will take a while. because it sets up everything. You'll be promted to say yes/no during setup, so dont leave it running unattended.
~/user_scripts/arch_setup_scripts/ORCHESTRA.shThe ORCHESTRA.sh is a "conductor" that manages ~80 subscripts.
-
Smart: It detects installed packages and skips them.
-
Safe: You can re-run it as many times as you like without breaking things.
-
Time: Expect 30–60 minutes. We use
paruto install a few AUR packages, and compiling from source takes time. Grab a coffee!
The steepest learning curve will be the keybinds. I have designed them to be intuitive, but feel free to change them in the config.
💡 Pro Tip:
Press CTRL + SHIFT + SPACE to open the Keybinds Cheatsheet. You can click commands in this menu to run them directly!
Method 2: The "Clean Slate" (only recommended if you have Intel or (Intel/Nvidia) hardware. (will make this amd compatible in the near future)
Best for: New installs, Dual Booting, ensuring zero bloat.
Requirement: Official Arch Linux ISO.
This method handles everything from disk partitioning with guided user intervention to automated installing of packages and everything else.
Boot the Arch ISO. USB tethering usually works out of the box. For WiFi, follow these steps:
Click to view WiFi Connection Commands
-
Run the interactive tool:
iwctl -
List your devices (note your device name, e.g.,
wlan0):device list -
Scan for networks:
station wlan0 scan -
List available networks:
station wlan0 get-networks -
Connect:
station wlan0 connect "YOUR_SSID" -
Exit the tool:
exit
Run the following commands to initialize keys, install git, and clone the installer:
pacman-key --init
pacman -Sy gitgit clone --depth 1 https://github.com/dusklinux/dusky.gitcp dusky/user_scripts/arch_iso_scripts/000_pre_chroot/* .This script automates the pre-chroot setup (disk partitioning)
./001_ISO_ORCHESTRA.shOnce the previous script finishes, enter your new system and run the final stage:
arch-chroot /mnt./001_CHROOT_ORCHESTRA.sh-
Reboot your computer.
-
Login with your username and password.
-
Open the terminal (Default:
Super+Q). -
Run the final deployment scripts:
# Connect to wifi if needed
./wifi_connect.sh
# Deploy config files
./deploy_dotfiles.sh
Note:
This will immediately list a few errors at the top, but dont worry, that's expected behaviour, the errors will later go away on there own after matugen generates colors and cycles through a wallpaper.
the main setup script.
~/user_scripts/arch_setup_scripts/ORCHESTRA.shIf a script fails (which can happen on a rolling release distro):
-
Don't Panic. The scripts are modular. The rest of the system usually installs fine.
-
Check the Output. Identify which subscript failed (located in
$HOME/user_scripts/setup_scripts/scripts/). -
Run Manually. You can try running that specific subscript individually.
-
AI Help. Copy the script content and the error message into ChatGPT/Gemini. It can usually pinpoint the exact issue (missing dependency, changed package name, etc.).
utilities
-
airmon wifi script for wifi testing/password cracking (only use on access points that you own, i'm not legally responsible if you use it for nefarious purposes)
-
live disk i/o monitoring, to allow you to see live read/write disk speed during copying and infer if copying has actually finsihed, useful for flashdrives, external drives.
-
quick audio input/output switch with a keybind, eg if you have bluetooth headphones connected, you can quicly switch to speakers without disconnecting.
-
mono/sterio audio toggling.
-
also supports touchpad gestures for volume/brightess, locking the screen, invoking swaync, pause/play, muting.(requires a laptop or a touchpad for pc)
-
battery notifier for laptops, you can customize it to show notifications at certain levels.
-
power saver mode, that only changes things for the current boot, so you can revert to default by rebooting.
-
system clean up (cache purge)- removes unwanted files to reclaim storage.
-
usb sounds , get notified when usb devices are plugged/unplugged.
-
FTP server auto setup.
-
Tailscale auto setup.
-
Openssh auto setup. with or without tailscale.
-
auto warp- cloudflaire setup and toggleale right from rofi.
-
Vnc setup for iphones (wired)
-
dynamic frantional scalling script so you can scale your display with a keybind.
-
toggle window transparancy, blur and shadow with a single keybind.
-
hypridle tui configuration.
-
wifi connecting script for setup at ~/user_scripts/network_manager/nmcli_wifi.sh
-
Sysbench benchmarking script.
-
color picker
-
neovim configured, you could also use your own later on. or install lazyvim or any another neovim rice
-
github repo integration so you can easily create your own repo to backup all files, this uses bare repo so your specific existing files, listed in ~/.git_dusky_list will backup to github, you can add more files/remove existing ones from this text file.
-
btrfs system compression ratio - scans your os files to see how much space zstd compression is saving you.
-
drive manager, easily lock/unlock encrypted drives from the terminal using "unlock media or lock media", it automaticlaly mounts your drives at a specified path, also unmounts when you lock it. This requires you to first configure the ~/user_scripts/drives/drive_manager.sh script with your drives' uuid.
-
ntfs drives have a tendency to not unlock if the drive had previously been disconnected without unmounting first, because of corrupted metadata, i've a script that fixes this. ntfs_fix.sh
RoFI menus.
- Emoji
- Calculator
- Matugen Theme switcher.
- Animation switcher.
- Power menu.
- Clipboard
- Wallpaper selector
- Shader menu.
- System menu.
and a lot more that would take forever to list, trust me these dotfiles are the shit! try em out.
GUI keybind invokable sliders for:
- Volume control
- Brightness control
- Nightlight/hyprsunset intensity.
Speech to text
- Whisper - for cpu or
- Parakeet - for nvidia gpus. might also work on Amd (not sure)
text to speech
-
kokoro for both cpu and gpu
-
mechanical keypress sounds togglalble with a keybind or from rofi.
-
Wlogout is drawn using a dynamic script that respects your frational scaling.
performance and system
-
light weight, ~900MB RAM usage and ~5GB disk usage (fully configured).
-
ZSTD & ZRAM: Compression enabled by default to save storage and triple your effective RAM (great for low-spec machines).
-
Native Optimization: AUR helpers configured to build with CPU-native flags (up to 20% performance boost).
-
UWSM Environment: Optimized specifically for Hyprland.
Graphics & Gaming
-
Fluid Animations: Tuned physics and momentum for a "liquid" feel, I've spent days fine tuning this.
-
GPU Passthrough Guide: Zero latency (native performance) for dual-GPU setups using Looking Glass.
-
Instant Shaders: Switch visual shaders instantly via Rofi.
-
Android Support: Automated Waydroid installer script.
Usability & Theming
-
Universal Theming:
Matugenpowers a unified Light/Dark mode across the system. -
Dual Workflow: Designed for both GUI-centric (mouse) and Terminal-centric (keyboard) users.
-
Accessibility: Text-to-Speech (TTS) and Speech-to-Text (STT) capabilities (hardware dependent).
-
Keybind Cheatsheet: Press
CTRL+SHIFT+SPACEanytime to see your controls.
Enjoy the experience!
If you run into issues, check the detailed Obsidian notes included in the repo (~2MB).
