Fedora installer, cleanup and screenshots

- install.sh rewritten for Fedora: dry-run, --check, backups, oh-my-zsh, lazygit, swappy
- outputs-setup.sh (monitor layout for new hardware) and doctor.sh (health check)
- screenshot.sh: region / full / window / scroll / last / edit (swappy), saved and copied
- remove waybar, swaync, dunst, rofi and their helper scripts, wallpaper picker, mirror.sh
- wallpapers handled by DMS; keep only the favourite one
- 00-session.conf for portals; swayfx-only layer rules split into 21-dms-effects.conf

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-28 11:01:30 +05:00
co-authored by Claude Sonnet 5.5
parent 1590ccae69
commit 9571b755f8
39 changed files with 438 additions and 840 deletions
+52
View File
@@ -0,0 +1,52 @@
#!/usr/bin/env bash
# Health check for the sway-rising setup. Prints OK / WARN / FAIL per item. Exit code = number of FAILs.
CFG=${XDG_CONFIG_HOME:-$HOME/.config}
fails=0
ok() { printf ' \033[32mOK\033[0m %s\n' "$*"; }
warn() { printf ' \033[33mWARN\033[0m %s\n' "$*"; }
bad() { printf ' \033[31mFAIL\033[0m %s\n' "$*"; fails=$((fails+1)); }
have() { command -v "$1" >/dev/null 2>&1; }
section() { printf '\n\033[1m%s\033[0m\n' "$*"; }
section "Compositor"
if have sway; then
v=$(sway --version 2>/dev/null | head -1); ok "$v"
case $v in *swayfx*) ok "SwayFX (blur, shadows, rounded corners available)";; *) warn "plain sway: effects are disabled";; esac
sway -C >/dev/null 2>&1 && ok "sway config is valid" || bad "sway -C reports errors"
else bad "sway / swayfx not installed"; fi
[ -n "${SWAYSOCK:-}" ] && ok "running inside sway" || warn "not inside a sway session (some checks skipped)"
section "Shell (DMS)"
if have dms; then
ok "dms installed"
pgrep -x dms >/dev/null && ok "dms is running" || { [ -n "${SWAYSOCK:-}" ] && bad "dms is not running" || warn "dms not running (not in session)"; }
else bad "dms not installed"; fi
[ -f "$CFG/dms/settings.json" ] && ok "DMS settings present" || warn "no DMS settings yet"
section "Session / portals"
if systemctl --user is-active sway-session.target >/dev/null 2>&1; then ok "sway-session.target active"
else [ -n "${SWAYSOCK:-}" ] && bad "sway-session.target inactive (portals will not start)" || warn "sway-session.target inactive (not in session)"; fi
if [ -n "${SWAYSOCK:-}" ] && have gdbus; then
timeout 10 gdbus call --session --dest org.freedesktop.portal.Desktop --object-path /org/freedesktop/portal/desktop \
--method org.freedesktop.DBus.Properties.Get org.freedesktop.portal.Settings version >/dev/null 2>&1 \
&& ok "xdg-desktop-portal reachable" || bad "xdg-desktop-portal unreachable"
fi
section "Fonts and theme"
fc-list 2>/dev/null | grep -qi "JetBrains Mono" && ok "JetBrains Mono" || bad "JetBrains Mono missing"
fc-list 2>/dev/null | grep -qiE "Font ?Awesome" && ok "Font Awesome" || warn "Font Awesome missing (some icons)"
{ [ -d /usr/share/themes/adw-gtk3-dark ] || [ -d "$HOME/.local/share/themes/adw-gtk3-dark" ]; } && ok "adw-gtk3 theme" || warn "adw-gtk3 theme missing (GTK apps will not follow the palette)"
section "Terminal and shell tools"
for t in kitty zsh tmux git fzf zoxide eza bat fd rg ncdu lazygit; do
have "$t" || { [ "$t" = fd ] && have fdfind; } && ok "$t" || warn "$t missing"
done
[ -d "$HOME/.oh-my-zsh" ] && ok "oh-my-zsh" || warn "oh-my-zsh missing"
[ "$(basename "${SHELL:-}")" = zsh ] && ok "login shell is zsh" || warn "login shell is not zsh (run: chsh -s $(command -v zsh || echo /usr/bin/zsh))"
section "Per-machine config"
[ -f "$CFG/sway/config.d/05-outputs.conf" ] && ok "monitor layout (05-outputs.conf)" || warn "no monitor layout yet: run ~/.config/sway/outputs-setup.sh inside sway"
for t in grim slurp swaylock swayidle brightnessctl playerctl wl-copy rofi; do have "$t" && ok "$t" || warn "$t missing"; done
printf '\n'; [ "$fails" -eq 0 ] && echo "No failures." || echo "$fails failure(s)."
exit "$fails"