Skip to content
udmehrotPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌸 RosΓ© Pine Sway & Waybar Setup β€” Arch Linux

A modern, fluid, and cohesive Wayland desktop environment powered by Sway, Waybar, SwayNC, and Wofi, fully styled with the RosΓ© Pine color palette and Ioskeley Mono typography.


πŸ“Έ Desktop Overview

  • Window Manager: Sway (Wayland i3-compatible compositor)
  • Status Bar: Waybar (RosΓ© Pine pills with real-time system monitors for Network throughput, CPU, Memory, Disk, plus interactive popups for Calendar & wttr.in Weather)
  • On-Screen Display (OSD): SwayOSD (GTK layer-shell HUD for volume, mic, and brightness controls with RosΓ© Pine styling)
  • Control Center & Notifications: SwayNotificationCenter (swaync Control Center with audio mixer, per-app volume sliders, backlight, Wi-Fi networks, Bluetooth devices, and screenshot tool)
  • App Launcher & Menus: Wofi (App launcher, Clipboard history, Wi-Fi manager, Bluetooth manager, Power menu, Wallpaper selector, and System Shortcuts cheat sheet)
  • Wallpaper Daemon: awww (Smooth animated wallpaper transitions)
  • Screenshot & Annotation: Swappy + grim + slurp + wl-clipboard (High-contrast studio editor)
  • Terminal: Foot & WezTerm
  • Typography: Ioskeley Mono & IoskeleyMono Nerd Font Mono
  • Theme & Colors: RosΓ© Pine Dark (#191724 Base, #1f1d2e Surface, #ebbcba Rose, #eb6f92 Love, #31748f Pine, #9ccfd8 Foam, #c4a7e7 Iris)

πŸš€ From Barebones Arch to Current State

Follow these step-by-step instructions to recreate this exact environment from a fresh, minimal Arch Linux installation.

1. Base System & Essential Wayland Packages

Ensure your base Arch installation is up-to-date and install the core audio, Wayland, Sway, and utility packages:

# Update system
sudo pacman -Syu

# Base Wayland, Compositor & Graphics
sudo pacman -S --needed \
    sway swaylock swayidle xorg-xwayland \
    polkit polkit-gnome \
    xdg-desktop-portal xdg-desktop-portal-wlr xdg-desktop-portal-gtk

# Status Bar, OSD, Terminals & Shells
sudo pacman -S --needed waybar swayosd foot wezterm zsh bash curl git jq btop

# Audio & Media Controls
sudo pacman -S --needed \
    pipewire pipewire-pulse pipewire-alsa wireplumber \
    pavucontrol playerctl brightnessctl

# Networking & Bluetooth
sudo pacman -S --needed \
    networkmanager network-manager-applet bluez bluez-utils

# System Daemons & Utilities
sudo pacman -S --needed \
    upower chezmoi \
    grim slurp swappy wl-clipboard cliphist

# GTK Theming & Engines
sudo pacman -S --needed \
    gtk3 gtk4 gnome-themes-extra gsettings-desktop-schemas gtk-layer-shell

2. AUR Helper & AUR Packages

Install an AUR helper (such as yay or paru) and install the remaining components:

# Install yay (if not already installed)
git clone https://aur.archlinux.org/yay.git /tmp/yay
cd /tmp/yay && makepkg -si && cd ~

# Install SwayNC, Wofi, and Awww from AUR
yay -S --needed \
    sway-notification-center \
    wofi \
    awww

3. Enable System Services

Enable the essential background daemons:

# Network & Bluetooth
sudo systemctl enable --now NetworkManager
sudo systemctl enable --now bluetooth

# Enable pipewire user services (runs automatically on login)
systemctl --user enable --now pipewire pipewire-pulse wireplumber

4. Typography (Ioskeley Fonts)

Make sure Ioskeley Mono and IoskeleyMono Nerd Font are installed in ~/.local/share/fonts/ or /usr/share/fonts/:

mkdir -p ~/.local/share/fonts
# Copy your Ioskeley font files into ~/.local/share/fonts/
# Update font cache:
fc-cache -fv

Verify the font is available:

fc-list : family | grep -i "Ioskeley"

5. Apply Dotfiles with Chezmoi

Initialize and apply this dotfiles repository:

# Apply dotfiles directly from your repository:
chezmoi init <your-git-repo-url>
chezmoi apply

# Ensure all scripts in ~/.local/bin are executable:
chmod +x ~/.local/bin/*

Make sure ~/.local/bin is in your PATH (already included in .zshrc and .bashrc).


6. Wallpapers Directory

The wallpaper switcher expects wallpapers in ~/Pictures/Walls/:

mkdir -p ~/Pictures/Walls ~/Pictures/Screenshots
# Add your favorite wallpapers (.png, .jpg, .webp) to ~/Pictures/Walls/

Press Super + Shift + B to open the wallpaper picker, or Super + Ctrl + B for random wallpaper selection.


7. Start Sway Session

Launch Sway:

sway

🐧 Installation Guide for Ubuntu 26.04 (LTS Base)

You can run this exact desktop setup on Ubuntu 26.04 LTS. Because LTS repositories can sometimes lag behind the fast-moving Wayland ecosystem, follow these steps to install the latest tools via official PPAs, modern package managers, and standalone binaries.

1. Add PPAs & Repositories for Latest Sway & WezTerm

sudo apt update
sudo apt install -y software-properties-common curl gpg wget

# 1. PPA for Latest Sway & Wayland components
# (Ubuntu Sway Remix project PPA or community backports)
sudo add-apt-repository -y ppa:ubuntusway-dev/stable
# Alternative: sudo add-apt-repository -y ppa:pgentili/sway

# 2. WezTerm Official APT Repository (Optional)
curl -fsSL https://apt.fury.io/wez/gpg.key | sudo gpg --yes --dearmor -o /etc/apt/keyrings/wezterm-fury.gpg
echo 'deb [signed-by=/etc/apt/keyrings/wezterm-fury.gpg] https://apt.fury.io/wez/ * *' | sudo tee /etc/apt/sources.list.d/wezterm.list

sudo apt update

2. Install Core Packages & Dependencies

sudo apt install -y \
    sway swaylock swayidle xwayland \
    waybar sway-notification-center wofi btop \
    foot wezterm zsh bash curl git jq \
    pipewire pipewire-pulse wireplumber pavucontrol playerctl brightnessctl \
    network-manager bluez bluez-tools upower \
    grim slurp swappy wl-clipboard \
    xdg-desktop-portal xdg-desktop-portal-wlr xdg-desktop-portal-gtk \
    libgtk-3-bin libgtk-4-bin gsettings-desktop-schemas libgtk-layer-shell0

3. Install Latest Modern Tools on LTS

Some newer Wayland tools are best installed directly via their official installers or release binaries:

A. Chezmoi (Dotfile Manager)

sh -c "$(curl -fsLS get.chezmoi.io)" -- -b ~/.local/bin

B. Cliphist (Wayland Clipboard Manager)

mkdir -p ~/.local/bin
# Download latest Linux x86_64 binary
curl -s https://api.github.com/repos/sentriz/cliphist/releases/latest \
  | jq -r '.assets[] | select(.name | test("linux_amd64")) | .browser_download_url' \
  | wget -qi - -O ~/.local/bin/cliphist
chmod +x ~/.local/bin/cliphist

C. Awww (Smooth Animated Wallpaper Daemon)

Install via Rust Cargo (or download precompiled binary from awww releases):

sudo apt install -y cargo libwayland-dev libxkbcommon-dev
cargo install awww
# Ensure ~/.cargo/bin or ~/.local/bin is in your PATH

4. Enable Services & Permissions

# Add user to hardware groups
sudo usermod -aG video,input,audio $USER

# Enable system network and bluetooth daemons
sudo systemctl enable --now NetworkManager
sudo systemctl enable --now bluetooth

# Enable PipeWire audio services for the current user
systemctl --user enable --now pipewire pipewire-pulse wireplumber

5. Install Ioskeley Fonts

mkdir -p ~/.local/share/fonts
# Copy Ioskeley font files into ~/.local/share/fonts/
fc-cache -fv

6. Apply Dotfiles

# Initialize and apply dotfiles
chezmoi init <your-git-repo-url>
chezmoi apply

# Make all helper scripts executable
chmod +x ~/.local/bin/*

7. Launching Sway on Ubuntu

You can select Sway directly from the GDM/SDDM login screen menu, or launch it from a TTY:

sway

⌨️ System Shortcuts Reference

All shortcuts can be searched on the fly by pressing Super / Cmd + K:

πŸš€ Applications & Launchers

Shortcut Action
Super + Return Launch Foot Terminal
Super + D Application Launcher (Wofi)
Super + K System Shortcuts & Keybinds List (Wofi)
Super + Shift + V Clipboard History Manager (cliphist)
Super + Shift + W Wi-Fi Network Selector (nmtui in floating window)
Super + Shift + B Wallpaper Switcher Menu (awww)
Super + Ctrl + B Set Random Wallpaper
Super + Shift + E Power & Session Menu (Lock, Suspend, Reboot, Shutdown)
Super + N / Super + Shift + N Toggle Notification Center (swaync)

πŸͺŸ Window Management

Shortcut Action
Super + Shift + Q Close / Kill Focused Window
Super + F Toggle Fullscreen
Super + Shift + Space Toggle Floating / Tiling Mode
Super + Space Swap Focus: Tiling $\leftrightarrow$ Floating
Super + A Focus Parent Container
Super + R Resize Mode (Arrows / HJKL, Esc to exit)
Super + B / Super + V Split Container Horizontally / Vertically
Super + S / Super + W / Super + E Stacking / Tabbed / Toggle Split Layout
Super + Shift + C Reload Sway Configuration

πŸ“Έ Screenshots

Shortcut Action Output
Super + Shift + S
or Super + Print
Select Area $\rightarrow$ Annotate in Swappy Clipboard / ~/Pictures/Screenshots/
Super + Ctrl + S Quick Area Selection Directly copied to Clipboard
Print or Ctrl + Print Quick Full Screen Directly copied to Clipboard
Super + Shift + Print Area Selection Saved to ~/Pictures/Screenshots/
Shift + Print Full Screen Saved to ~/Pictures/Screenshots/

πŸ‘† Touch & Gesture Controls (ThinkPad / External Touchscreens)

  • 3-Finger Horizontal Swipe: Switch to previous / next workspace
  • 4-Finger Horizontal Swipe: Move focused window to previous / next workspace
  • 4-Finger Pinch Outward: Fullscreen toggle
  • 4-Finger Pinch Inward: Floating toggle
  • Touch Tiling Drag: Enabled (drag floating or tiled windows with touch)

πŸ“ Repository Structure

~/.local/share/chezmoi/
β”œβ”€β”€ README.md                           # This guide
β”œβ”€β”€ OS.md                               # Comprehensive system configuration blueprint
β”œβ”€β”€ dot_bashrc                          # Bash configuration
β”œβ”€β”€ dot_bash_profile                    # Bash profile & Wayland environment
β”œβ”€β”€ dot_zshenv                          # Zsh environment variables
β”œβ”€β”€ dot_zshrc                           # Zsh interactive configuration
β”œβ”€β”€ dot_config/
β”‚   β”œβ”€β”€ sway/
β”‚   β”‚   └── config                      # Sway window manager configuration
β”‚   β”œβ”€β”€ waybar/
β”‚   β”‚   β”œβ”€β”€ config.jsonc                # Waybar top bar layout & system monitors
β”‚   β”‚   β”œβ”€β”€ style.css                   # Waybar RosΓ© Pine CSS theme
β”‚   β”‚   └── scripts/
β”‚   β”‚       β”œβ”€β”€ executable_calendar_menu.py    # Compact interactive calendar popup
β”‚   β”‚       β”œβ”€β”€ executable_weather_menu.py     # Live weather card & 3-day forecast
β”‚   β”‚       β”œβ”€β”€ executable_weather.py          # wttr.in weather data provider & cache
β”‚   β”‚       β”œβ”€β”€ executable_notifications.py    # SwayNC unread count streaming helper
β”‚   β”‚       β”œβ”€β”€ executable_bluetooth_menu.py   # Standalone Bluetooth device popup
β”‚   β”‚       β”œβ”€β”€ executable_wifi_menu.py        # Standalone Wi-Fi network popup
β”‚   β”‚       └── executable_volume_menu.py      # Standalone volume & audio popup
β”‚   β”œβ”€β”€ swaync/
β”‚   β”‚   β”œβ”€β”€ config.json                 # SwayNotificationCenter Control Center layout
β”‚   β”‚   └── style.css                   # SwayNC RosΓ© Pine CSS theme
β”‚   β”œβ”€β”€ swayosd/
β”‚   β”‚   β”œβ”€β”€ config.toml                 # SwayOSD server thresholds & durations
β”‚   β”‚   └── style.css                   # SwayOSD RosΓ© Pine HUD theme
β”‚   β”œβ”€β”€ wofi/
β”‚   β”‚   β”œβ”€β”€ config                      # Wofi general settings
β”‚   β”‚   └── style.css                   # Wofi RosΓ© Pine CSS theme
β”‚   β”œβ”€β”€ foot/
β”‚   β”‚   └── foot.ini                    # Foot terminal RosΓ© Pine configuration
β”‚   β”œβ”€β”€ swappy/
β”‚   β”‚   └── config                      # Swappy annotation defaults
β”‚   β”œβ”€β”€ gtk-3.0/
β”‚   β”‚   β”œβ”€β”€ gtk.css                     # Swappy high-contrast studio theme
β”‚   β”‚   └── settings.ini                # GTK3 dark mode & Ioskeley font settings
β”‚   β”œβ”€β”€ gtk-4.0/
β”‚   β”‚   β”œβ”€β”€ gtk.css                     # GTK4 dark styling
β”‚   β”‚   └── settings.ini                # GTK4 dark mode & Ioskeley font settings
β”‚   β”œβ”€β”€ environment.d/                  # Wayland desktop environment defaults
β”‚   β”œβ”€β”€ keyd/                           # Keyboard remap configurations
β”‚   └── nvim/                           # LazyVim Neovim configuration
└── dot_local/
    └── bin/
        β”œβ”€β”€ cliphist-daemon             # Background clipboard watcher
        β”œβ”€β”€ executable_lockscreen       # Random lockscreen wallpaper script
        β”œβ”€β”€ executable_nuvio            # Display-adaptive UI scaler & hardware launcher
        β”œβ”€β”€ executable_wofi-bluetooth   # Bluetooth device manager & pairer
        β”œβ”€β”€ executable_wofi-clipboard   # Clipboard search and paste menu
        β”œβ”€β”€ executable_wofi-power       # Power & session action menu
        β”œβ”€β”€ executable_wofi-shortcuts   # System shortcuts cheat sheet
        β”œβ”€β”€ executable_wofi-wallpaper   # Animated wallpaper selector
        └── executable_wofi-wifi        # Wi-Fi network selector

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages