Compare commits

..

3 Commits

  1. 12
      .config/fuzzel/fuzzel.ini
  2. 13
      .config/sway/config
  3. 20
      .config/yazi/yazi.toml
  4. 113
      .dotfiles.d/init/ubuntu/init-sway.sh

12
.config/fuzzel/fuzzel.ini

@ -13,7 +13,7 @@ icons-enabled=no
# fields=filename,name,generic # fields=filename,name,generic
# password-character=* # password-character=*
# filter-desktop=no # filter-desktop=no
# match-mode=fzf match-mode=fzf
# sort-result=yes # sort-result=yes
# match-counter=no # match-counter=no
# delayed-filter-ms=300 # delayed-filter-ms=300
@ -21,7 +21,7 @@ icons-enabled=no
# show-actions=no # show-actions=no
# terminal=$TERMINAL -e # Note: you cannot actually use environment variables here # terminal=$TERMINAL -e # Note: you cannot actually use environment variables here
# launch-prefix=<not set> # launch-prefix=<not set>
# list-executables-in-path=yes list-executables-in-path=yes
# anchor=center # anchor=center
# x-margin=0 # x-margin=0
@ -55,14 +55,14 @@ icons-enabled=no
[colors] [colors]
background=282828dd background=282828dd
text=ebdbb2ff text=ebdbb2ff
# prompt=d5c4a1ff prompt=d5c4a1ff
#placeholder=928374ff placeholder=928374ff
#input=ebdbb2ff input=ebdbb2ff
match=fabd2fff match=fabd2fff
selection=3c3836ff selection=3c3836ff
selection-text=ebdbb2ff selection-text=ebdbb2ff
selection-match=fabd2fff selection-match=fabd2fff
#counter=928374ff counter=928374ff
border=fabd2fff border=fabd2fff
[border] [border]

13
.config/sway/config

@ -154,11 +154,11 @@ bindsym $mod+Return exec /home/chodylal/.local/kitty.app/bin/kitty
# App launcher: wofi (lightweight, Wayland-native) # App launcher: wofi (lightweight, Wayland-native)
# Alternatives: rofi -show drun (rofi-wayland package), tofi # Alternatives: rofi -show drun (rofi-wayland package), tofi
# bindsym $mod+d exec fuzzel bindsym $mod+d exec fuzzel
set $menu dmenu_path | fuzzel --dmenu | xargs swaymsg exec -- # set $menu dmenu_path | fuzzel --dmenu | xargs swaymsg exec --
bindsym $mod+d exec $menu # bindsym $mod+d exec $menu
bindsym Mod1+F2 exec wofi --show run bindsym Mod1+F2 exec wofi --show run
# Clipboard manager — show history (Ctrl+Alt+H) # Clipboard manager — show history (Ctrl+Alt+H)
@ -168,6 +168,8 @@ bindsym Control+Mod1+h exec cliphist list | fuzzel --width 80 --dmenu | cliphist
# Run app assigned to current workspace # Run app assigned to current workspace
bindsym $mod+Shift+a exec $scriptsDir/autoapp bindsym $mod+Shift+a exec $scriptsDir/autoapp
# Window switcher
bindsym Mod1+Tab exec swayr switch-window
################################################################# #################################################################
# Window Navigation # Window Navigation
@ -592,6 +594,7 @@ exec_always gsettings set org.gnome.desktop.interface icon-theme 'Yaru'
exec_always gsettings set org.gnome.desktop.interface cursor-theme 'Yaru' exec_always gsettings set org.gnome.desktop.interface cursor-theme 'Yaru'
exec_always gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' exec_always gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
################################################################# #################################################################
# Key repeat rate # Key repeat rate
################################################################# #################################################################
@ -615,9 +618,5 @@ exec_always gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
# xkb_options grp:alt_shift_toggle # xkb_options grp:alt_shift_toggle
# } # }
# input type:keyboard {
# xkb_layout pl,us
# # lv3:ralt_switch keeps Right Alt working for Polish chars
# # grp:alt_shift_toggle allows Alt+Shift to switch layouts
# xkb_options lv3:ralt_switch,grp:alt_shift_toggle # xkb_options lv3:ralt_switch,grp:alt_shift_toggle
# } # }

20
.config/yazi/yazi.toml

@ -1,14 +1,14 @@
[[plugin.prepend_fetchers]] # [[plugin.prepend_fetchers]]
# id = "git" # Remove if Yazi > v26.1.22 # id = "git" # Remove if Yazi > v26.1.22
url = "*" # url = "*"
run = "git" # run = "git"
group = "git" # group = "git"
[[plugin.prepend_fetchers]] # [[plugin.prepend_fetchers]]
# id = "git" # Remove if Yazi > v26.1.22 # # id = "git" # Remove if Yazi > v26.1.22
url = "*/" # url = "*/"
run = "git" # run = "git"
group = "git" # group = "git"
[opener] [opener]
edit = [ edit = [

113
.dotfiles.d/init/ubuntu/init-sway.sh

@ -0,0 +1,113 @@
#!/bin/env bash
#----------------------------------------------------------------
# init-sway.sh — Install everything needed to run the sway config
# from ~/.config/sway on Ubuntu 26.04 (resolute).
#
# Covers: compositor stack, bar/launcher/notifications, screenshot,
# clipboard, color temperature, audio (PipeWire), portals, fonts,
# wallpaper, helper-script dependencies, plus the applications
# referenced by keybindings and workspace assignments.
#----------------------------------------------------------------
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
echo "[1/8] Updating apt..."
sudo apt update -y
echo "[2/8] Installing sway core stack and helper-script dependencies..."
sudo apt install -y \
sway \
swayidle \
swaylock \
swaybg \
waybar \
mako-notifier \
fuzzel \
wofi \
kitty \
grim \
slurp \
wl-clipboard \
cliphist \
brightnessctl \
gammastep \
playerctl \
translate-shell \
libnotify-bin \
jq \
osmo \
network-manager-applet \
policykit-1-gnome \
xdg-desktop-portal \
xdg-desktop-portal-wlr \
xdg-desktop-portal-gtk \
dbus-user-session \
fontconfig \
fonts-noto-core
# Qt/Java apps referenced in window assignments run via XWayland by default;
# qt6-wayland makes Qt apps native Wayland clients. Optional.
sudo apt install -y qt6-wayland || true
echo "[3/8] Installing PipeWire audio stack (volctl uses wpctl)..."
sudo apt install -y pipewire-audio pipewire-pulse wireplumber
echo "[4/8] Installing applications referenced by keybindings/workspace assignments..."
# firefox/thunderbird on Ubuntu 24.04+ are snap-transitioning deb packages,
# but they still work; missing ones here must not abort the script.
sudo apt install -y \
firefox \
thunar \
thunderbird \
telegram-desktop \
mpv \
virt-manager \
|| true
if command -v snap >/dev/null 2>&1; then
sudo snap install spotify || true
fi
echo "[5/8] Installing Sway wallpaper (not shipped in Ubuntu's sway package)..."
sudo mkdir -p /usr/share/backgrounds/sway
sudo curl -fL -o /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png \
https://raw.githubusercontent.com/swaywm/sway/master/assets/Sway_Wallpaper_Blue_1920x1080.png
echo "[6/8] Installing Source Sans 3 font (not packaged in Ubuntu)..."
mkdir -p "$HOME/.local/share/fonts/SourceSans3"
if curl -fL -o /tmp/SourceSans3.zip \
https://github.com/adobe-fonts/source-sans/releases/download/3.052R/SourceSans3_FontsOnly.zip; then
unzip -o -q /tmp/SourceSans3.zip -d "$HOME/.local/share/fonts/SourceSans3"
rm -f /tmp/SourceSans3.zip
else
# Fallback: variable font from the Google Fonts repository
curl -fL -o "$HOME/.local/share/fonts/SourceSans3/SourceSans3[wght].ttf" \
"https://github.com/google/fonts/raw/main/ofl/sourcesans3/SourceSans3%5Bwght%5D.ttf" || \
echo " -> WARNING: failed to download Source Sans 3; sway bar will fall back to another font"
fi
fc-cache -f >/dev/null 2>&1
echo "[7/8] Enabling services and device group membership..."
# Audio (socket-activated user services; enabling is idempotent)
systemctl --user enable --now pipewire pipewire-pulse wireplumber 2>/dev/null || true
# NetworkManager (already default on desktop installs; needed by nm-applet)
sudo systemctl enable --now NetworkManager 2>/dev/null || true
# Device access for sway started from a TTY / display manager
sudo usermod -aG video,input,render "$USER" 2>/dev/null || true
echo "[8/8] Installing swayr window switcher (Alt+Tab, cargo-based)..."
if command -v cargo >/dev/null 2>&1; then
cargo install swayr || echo " -> WARNING: cargo install swayr failed"
else
echo " -> cargo not found. Run init-cargo-tools.sh first, then: cargo install swayr"
fi
cat <<'EOF'
Done. Next steps:
1. Log out and back in (group membership takes effect on new login).
2. Start sway: pick "Sway" in the login manager, or run `sway` from a TTY.
3. Verify audio with `wpctl status` and notifications with `notify-send test`.
EOF
Loading…
Cancel
Save