From dbcde4539d4b32926066de9039bb5360c1b21e83 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Mon, 18 Oct 2021 02:06:41 -0400 Subject: [PATCH] Roough draft for installing a desktop. --- .includes/gui.sh | 179 +++++++++++++++++++++++++++++++++++++++++++ configure-stormux.sh | 8 ++ 2 files changed, 187 insertions(+) create mode 100644 .includes/gui.sh diff --git a/.includes/gui.sh b/.includes/gui.sh new file mode 100644 index 0000000..6fd91f8 --- /dev/null +++ b/.includes/gui.sh @@ -0,0 +1,179 @@ +#!/bin/bash + +install_package ${1//mate/mate mate-extra} nodm-dgw xf86-video-dummy-with-vt xorg yad +# Configure nodm +sudo sed -i "s/{user}/$USER/g" /etc/nodm.conf + +# Create ~/.xinitrc +cat << "EOF" > ~/.xinitrc +#!/bin/sh +# +# ~/.xinitrc +# +# Executed by startx (run your window manager from here) + +dbus-launch +[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources + +if [ -d /etc/X11/xinit/xinitrc.d ]; then + for f in /etc/X11/xinit/xinitrc.d/*; do + [ -x "$f" ] && . "$f" + done + unset f +fi +#accessibility for original load +export ACCESSIBILITY_ENABLED=1 +export GTK_MODULES=gail:atk-bridge +export GNOME_ACCESSIBILITY=1 +export QT_ACCESSIBILITY=1 +export QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1 +export DBUS_SESSION_BUS_PID +export DBUS_SESSION_BUS_ADDRESS + +EOF + +echo "exec ${1//mate/mate-session}" >> ~/.xinitrc + +if [[ "$1" == "ratpoison" ]]; then +cat << "EOF" > ~/.ratpoisonrc +# Generated by strychnine (setup.sh) http://gitlab.com/stormdragon2976/strychnine + +# Miscellaneous +startup_message off +set winname title +set bgcolor #000000 +set fgcolor #FFFFFF +set font -*-terminus-medium-r-normal-*-24-*-*-*-*-*-*-* +set waitcursor 1 +banish + +# Unbind section +unbind C-A +unbind A +unbind C-a +unbind a +unbind c +unbind C-c +unbind C-f +unbind F +unbind r +unbind C-r +unbind S +unbind C-S +unbind s +unbind C-s +unbind C-t +unbind C-v +unbind v +unbind C-w +unbind C-Down +unbind Down +unbind C-exclam +unbind exclam +unbind C-Left +unbind Left +unbind question +unbind C-Right +unbind Right +unbind C-Up +unbind Up +unbind C-apostrophe +unbind apostrophe +unbind colon +unbind t + +# Key binding section +escape M-Escape +# Alt+f2 executes the run dialog +definekey top M-F2 run_dialog +# Alt+tab switches through open windows +definekey top M-Tab next +definekey top M-ISO_Left_Tab prev +definekey top M-F4 close_window +definekey top XF86AudioPrev music_player_previous_track +definekey top XF86AudioMute music_player_pause +definekey top XF86AudioPlay music_player_play +definekey top XF86AudioStop music_player_stop +definekey top XF86AudioNext music_player_next_track +definekey top XF86AudioLowerVolume music_player_decrease_volume +definekey top XF86AudioRaiseVolume music_player_increase_volume +bind exclam run_dialog +bind question ratpoison_keybindings +bind w exec /usr/bin/firefox +bind e exec /usr/bin/leafpad +bind m exec /usr/bin/mumble +bind p exec /usr/bin/pidgin +bind c exec /usr/bin/lxterminal +bind C-c exec /usr/bin/lxterminal +# Music player bindings: +bind M-Z music_player_previous_track +bind M-X music_player_play +bind M-C music_player_pause +bind M-V music_player_stop +bind M-B music_player_next_track +bind M-underscore music_player_decrease_volume +bind M-plus music_player_increase_volume +bind M-U music_player_show_info +bind C-exclam run_in_terminal_dialog +bind C-A set_window_name +bind A set_window_name +bind C-a show_date +bind a show_date +bind C-t show_date +bind O exec /usr/bin/orca -r # Restart Orca +bind C-v ratpoison_version +bind v ratpoison_version +bind C-apostrophe window_menu +bind apostrophe window_menu +bind colon run_ratpoison_command +bind C-colon reload_ratpoison_configuration +bind C-M-r restart +bind C-M-q quit + +# Autostart section +exec /usr/bin/rpws init 4 -a +bind Up go_to_workspace_one +bind Left go_to_workspace_two +definekey top C-F1 go_to_workspace_one +definekey top C-F2 go_to_workspace_two +bind Down go_to_workspace_three +definekey top C-F3 go_to_workspace_three +bind Right go_to_workspace_four +definekey top C-F4 go_to_workspace_four +exec /usr/lib/notification-daemon-1.0/notification-daemon +exec /usr/bin/xbrlapi --quiet +exec if [ "$(gsettings get org.gnome.desktop.a11y.applications screen-reader-enabled)" != "true" ]; then gsettings set org.gnome.desktop.a11y.applications screen-reader-enabled true&& notify-send "QT5 accessibility enabled. You need to restart ratpoison for the changes to take affect.";fi +exec /usr/bin/orca + +# Alias Section +alias close_window exec ratpoison -c delete +alias ratpoison_keybindings exec f=$(mktemp);ratpoison -c "help root" > $f && yad --text-info --show-cursor --title "Ratpoison Keybindings" --button "Close:0" --filename "$f";rm "$f" +alias music_player_previous_track exec playerctl previous && notify-send "$(playerctl metadata -f '{{title}} by {{artist}}')" +alias music_player_play exec playerctl play && notify-send "$(playerctl metadata -f '{{title}} by {{artist}}')" +alias music_player_pause exec playerctl play-pause && notify-send "$(playerctl metadata -f '{{title}} by {{artist}} {{status}}')" +alias music_player_stop exec playerctl stop +alias music_player_next_track exec playerctl next && notify-send "$(playerctl metadata -f '{{title}} by {{artist}}')" +alias music_player_decrease_volume exec playerctl volume 0.05- +alias music_player_increase_volume exec playerctl volume 0.05+ +alias music_player_show_info exec notify-send "$(playerctl metadata -f '{{title}} by {{artist}} from {{album}} via {{playerName}}')" +alias run_dialog exec historyPath="${XDG_CONFIG_HOME:-$HOME/.config}/strychnine";if ! [ -d "$historyPath" ]; then mkdir -p "$historyPath";fi;write_history(){ oldHistory="$(grep -v "$txt" "$historyPath/history" | head -n 49)";echo -e "$txt\n$oldHistory" | sed 's/^$//g' > "$historyPath/history"; };if [ -f "$historyPath/history" ]; then txt=$(yad --entry --editable --title "Ratpoison" --text "Execute program or enter file" --button "Open:0" --separator "\n" --rest "$historyPath/history");else txt=$(yad --entry --title "Ratpoison" --text "Execute program or enter file" --button "Open:0");fi;if [ -z "$txt" ]; then exit 0;fi;if [[ "$txt" =~ ^ftp://|http://|https://|www.* ]]; then /usr/bin/brave $txt;write_history;exit 0;fi;if [[ "$txt" =~ ^mailto://.* ]]; then xdg-email $txt;write_history;exit 0;fi;if [[ "$txt" =~ ^man://.* ]]; then eval "${txt/:\/\// }" | yad --text-info --show-cursor --button "Close:0" --title "Ratpoison" -;write_history;exit 0;fi;if command -v "$(echo "$txt" | cut -d " " -f1)" &> /dev/null ; then eval $txt& else xdg-open $txt&fi;write_history;exit 0 +alias run_in_terminal_dialog exec c="$(yad --entry --title "Ratpoison" --text "Enter command:")" && /usr/bin/lxterminal -e $c +alias set_window_name exec t="$(yad --entry --title "Ratpoison" --text "Enter window name") && ratpoison -c "title $t" +alias show_date exec notify-send "$(date +"%A, %B %d, %Y%n%I:%M%p")" +alias ratpoison_version exec notify-send "$(ratpoison -c "version")" +alias window_menu exec ifs="$IFS";IFS=$'\n';w="$(yad --list --title "Ratpoison" --text "Select Window" --column "Select" $(ratpoison -c "windows"))";IFS="$ifs";ratpoison -c "select ${w:0:1}" +alias run_ratpoison_command exec c="$(yad --entry --title "Ratpoison" --text="Enter Ratpoison command:")" && ratpoison -c "$c" +alias reload_ratpoison_configuration exec ratpoison -c "source /home/storm/.ratpoisonrc"&¬ify-send "Ratpoison configuration reloaded" +addhook newwindow announce_new_window +addhook key announce_top_level_key +alias announce_new_window exec bash -c 'excludedWindowNames="zenity";winName="$(ratpoison -c "info %t")";if ! [[ "$winName" =~ ^(${excludedWindowNames})$ ]]; then play -n synth .25 sin 440:880 sin 480:920 remix - norm -3 pitch -500;fi' +alias announce_top_level_key exec play -qV0 "|sox -np synth .07 sq 400" "|sox -np synth .5 sq 800" fade h 0 .5 .5 norm -20 +alias go_to_workspace_one exec rpws 1 +alias go_to_workspace_two exec rpws 2 +alias go_to_workspace_three exec rpws 3 +alias go_to_workspace_four exec rpws 4 +EOF +fi + +# enable and start nodm +sudo systemctl enable nodm --now diff --git a/configure-stormux.sh b/configure-stormux.sh index 7f03d13..53acf9c 100755 --- a/configure-stormux.sh +++ b/configure-stormux.sh @@ -38,9 +38,17 @@ while [[ "$choice" != "Exit" ]]; do ./.includes/chuser.sh $(inputbox "Please enter the new username, letters, dashes, and underscores only.") restart ;; + "Install Mate Desktop") + ./.includes/gui.sh mate + ;; + "Install Ratpoison Windowmanager") + ./.includes/gui.sh ratpoison + ;; esac choice="$(menulist \ "Change username" \ + "Install Mate Desktop" \ + "Install Ratpoison Windowmanager" \ "Set up gaming" \ "Exit" \ )"