Compare commits

..

3 Commits

Author SHA1 Message Date
stormdragon2976
0e7125d2fc Replacement for grun, added custom I38 run dialog instead. 2023-03-24 18:40:01 -04:00
stormdragon2976
5671b31715 Replacement for grun, added custom I38 run dialog instead. 2023-03-24 18:34:09 -04:00
stormdragon2976
a28cbc59ff Replacement for grun, added custom I38 run dialog instead. 2023-03-24 18:21:55 -04:00
2 changed files with 49 additions and 2 deletions

6
i38.sh
View File

@ -10,7 +10,7 @@ i3msg="i3-msg"
export DIALOGOPTS='--no-lines --visit-items'
# Check to make sure minimum requirements are installed.
for i in dialog grun jq sgtk-menu yad ; do
for i in dialog jq sgtk-menu yad ; do
if ! command -v "$i" &> /dev/null ; then
missing+=("$i")
fi
@ -274,7 +274,7 @@ focus_follows_mouse no
font pango:monospace 8
# Run dialog
bindsym \$mod+F2 exec grun
bindsym \$mod+F2 exec ${i3Path}/scripts/run_dialog.sh
# Clipboard manager
bindsym \$mod+Control+c exec clipster -s
@ -418,6 +418,8 @@ bindsym Shift+o exec $(command -v orca) --replace, mode "default"
bindsym Control+semicolon exec bash -c '$i3msg -t run_command reload && spd-say -P important -Cw "I38 Configuration reloaded."', mode "default"
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym Control+Shift+semicolon exec bash -c '$i3msg -t run_command restart && spd-say -P important -Cw "I3 restarted."', mode "default"
# Run dialog with exclamation
bindsym Shift+exclam exec ${i3Path}/scripts/run_dialog.sh, mode "default"
# exit i3 (logs you out of your X session)
bindsym Control+q exec bash -c 'yad --image "dialog-question" --title "I38" --button=yes:0 --button=no:1 --text "You pressed the exit shortcut. Do you really want to exit i3? This will end your X session." && $i3msg -t run_command exit'
bindsym Escape mode "default"

45
scripts/run_dialog.sh Executable file
View File

@ -0,0 +1,45 @@
#!/usr/bin/env bash
write_history(){
oldHistory="$(grep -v "$txt" "${historyPath}/.history" | head -n 49)"
echo -e "$txt\n$oldHistory" | sed 's/^$//g' > "${historyPath}/.history"
}
historyPath="$(readlink -f $0)"
historyPath="${historyPath%/*}"
if ! [[ -d "$historyPath" ]]; then
mkdir -p "$historyPath"
fi
if [[ -f "${historyPath}/.history" ]]; then
txt="$(yad --entry --editable --title "I38" --text "Execute program or enter file" --button "Open:0" --separator "\n" --rest "${historyPath}/.history")"
else
txt="$(yad --entry --title "I38" --text "Execute program or enter file" --button "Open:0")"
fi
if [[ -z "$txt" ]]; then
exit 0
fi
if [[ "$txt" =~ ^ftp://|http://|https://|www.* ]]; then
xdg-open $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 "I38" -
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