#!/bin/sh one_welcome() { zenity --question \ --title "Welcome to Hyprland!" \ --text "We hope you enjoy your stay. In order to help you get accomodated to Hyprland, we prepared a little basic setup tutorial, just for you. If you feel adventurous, or are an advanced user, you can click the "'"'"Thanks, but I don't need help"'"'" button on the bottom. If you want to manually launch this welcome app, just execute hyprland-welcome in your terminal. Click the "'"'"next"'"'" button to proceed to the next step of your setup :)" \ --cancel-label "Thanks, but I don't need help" \ --ok-label "Next" } register_app_state() { label="$1" shift installed="$(which "$@" | xargs -I{} basename "{}" | tr '\n' ' ')" running="$(pgrep -a "$(echo "$@" |tr ' ' '|')" |cut -d' ' -f2 |xargs -I{} basename "{}" | tr '\n' ' ')" printf "• %s: " "$label" if test -n "$running"; then printf "☑️%s" "$running" elif test -n "$installed"; then printf "✅%s" "$installed" else printf "❌Please install one of" printf " %s," "$@" |sed 's/,$//g' fi } two_getting() { zenity --info \ --title "Getting started" \ --text "The first thing we'll need to do is get some packages installed that you need in order for your system to be working properly. Use SUPER+Q to launch a terminal. Use SUPER+M to exit hyprland. Supported terminals: kitty, alacritty, foot, wezterm, konsole, gnome-terminal, xterm. Green means the component is found to be installed, blue means it's running. $(register_app_state "Authentication agent*" "hyprpolkitagent" "polkit-kde-agent") $(register_app_state "File manager*" "dolphin" "ranger" "thunar" "pcmanfm" "nautilus" "nemo" "nnn" "yazi") $(register_app_state "Terminal*" "kitty" "alacritty" "wezterm" "foot" "konsole" "gnome-terminal") $(register_app_state "Pipewire*" "pipewire" "wireplumber") $(register_app_state "Wallpaper" "hyprpaper" "swww" "awww" "swaybg" "wpaperd") $(register_app_state "XDG Desktop Portal*" "xdg-desktop-portal-hyprland") $(register_app_state "Notification Daemon*" "dunst", "mako" "swaync") $(register_app_state "Status bar / shell" "quickshell" "waybar" "eww" "ags") $(register_app_state "Application launcher" "hyprlauncher" "fuzzel" "wofi" "rofi" "anyrun" "walker" "tofi") $(register_app_state "Clipboard*" "wl-copy") " \ --ok-label "Next" } add_list() { label="$1" shift installed="$(which "$@" | xargs -I{} basename "{}" | tr '\n' '|')" printf -- "--add-list '%s' --list-values '%s'" "$label" "$installed" } three_default() { zenity --forms \ --title "Default apps" \ --text "We know that not everyone uses kitty and dolphin. That's why we let you choose. If you wish to change the defaults, use the selectors below." \ $(add_list "Terminal" kitty alacritty wezterm foot konsole gnome-terminal) \ $(add_list "File Manager" dolphin thunar pcmanfm nautilus nemo) #"hyprlauncher", "fuzzel", "wofi", "rofi -show run", "anyrun", "tofi-drun --drun-launch=true" } four_basic() { zenity --question \ --title "Basic configuration" \ --text 'Now that you'"'"'ve installed the basic apps, you might want some of them to autostart. Hyprland doesn'"'"'t automatically start anything for you, you need to tell it to. Go to ~/.config/hypr/hyprland.conf, and add "exec-once = appname" to launch your apps, for example: exec-once = hyprpaper exec-once = waybar In general, configuring apps is something for you to do. Each app you install may come with its own config file and options. A great point to start is the Hyprland wiki at https://wiki.hypr.land. There, the master tutorial will teach you everything and link to further docs. If you prefer pre-configured settings, or "dotfiles", you can see the "preconfigured configs" section on the wiki, or search online. Important note: dotfiles can run anything on your computer. Make sure you trust the source.' \ --ok-label "Next" } five_eco() { zenity --question \ --title "Hypr Ecosystem" \ --text "Hyprland has a wide ecosystem of apps specifically made for it. Unlike some other popular DEs, it does not force you to use most of them by default. You can install those elements separately, only those that you need. Check the wiki under Hypr Ecosystem to see all of the apps, their usage and configuration." \ --ok-label "Next" } six_end() { zenity --question \ --title "That's it!" \ --text 'That'"'"'s it for this small introduction! Explore the wiki, and various apps, and enjoy your journey! Here are some important default shortcuts: • SUPER + Q = Terminal • SUPER + E = File Manager • SUPER + R = Launcher • SUPER + C = Close window • SUPER + V = Toggle floating • SUPER + M = Exit Hyprland • SUPER + [1 - 9] = Workspaces 1 - 9 • SUPER + SHIFT + [1 - 9] = Move window to workspace 1 - 9 • SUPER + Arrows = Move focus around You can easily change these in your hyprland.conf. Thank you for choosing Hyprland! ❤️)' \ --ok-label "Next" } one_welcome || exit two_getting || exit #three_default || exit four_basic || exit five_eco || exit six_end || exit