Compare commits
22 Commits
6e7e845a6c
...
v1.5
Author | SHA1 | Date | |
---|---|---|---|
390fc4c114 | |||
71cd45f781 | |||
6702dc357b | |||
a7f22597f1 | |||
530c9e5073 | |||
73d16bde78 | |||
ccbb89e372 | |||
8ce2e7eb32 | |||
0e7125d2fc | |||
5671b31715 | |||
a28cbc59ff | |||
ce5f632bfc | |||
2953ecd157 | |||
64cffc7fc7 | |||
e0ac69b66e | |||
689b997dae | |||
1a0daf36a8 | |||
29e941e3d5 | |||
9109f7660c | |||
e1043e982d | |||
ac1464d965 | |||
40104086fe |
@ -13,9 +13,10 @@ An uppercase I looks like a 1, 3 from i3, and 8 because the song [We Are 138](ht
|
||||
|
||||
## Requirements
|
||||
|
||||
- i3-wm: The i3 window manager.
|
||||
- acpi: [optional] for battery status. It will still work even without this package, but uses it if it is installed.
|
||||
- dex: [optional] Alternative method for auto starting applications.
|
||||
- clipster: clipboard manager
|
||||
- grun: Run application dialog
|
||||
- jq: for getting the current workspace
|
||||
- libnotify: For sending notifications
|
||||
- notification-daemon: To handle notifications
|
||||
|
140
i38.sh
140
i38.sh
@ -5,11 +5,12 @@
|
||||
# Released under the terms of the WTFPL http://www.wtfpl.net
|
||||
|
||||
i3Path="${XDG_CONFIG_HOME:-$HOME/.config}/i3"
|
||||
i3msg="i3-msg"
|
||||
# Dialog accessibility
|
||||
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
|
||||
@ -131,6 +132,7 @@ update_scripts() {
|
||||
# Array of command line arguments
|
||||
declare -A command=(
|
||||
[h]="This help screen."
|
||||
[s]="Create sway configuration instead of i3."
|
||||
[u]="Copy over the latest version of scripts."
|
||||
[x]="Generate ~/.xinitrc and ~/.xprofile."
|
||||
[X]="Generate ~/.xprofile only."
|
||||
@ -142,6 +144,10 @@ args="${args//[[:space:]]/}"
|
||||
while getopts "${args}" i ; do
|
||||
case "$i" in
|
||||
h) help;;
|
||||
s)
|
||||
i3msg="swaymsg"
|
||||
i3Path="${XDG_CONFIG_HOME:-$HOME/.config}/sway"
|
||||
;;
|
||||
u) update_scripts;;
|
||||
x) write_xinitrc ;&
|
||||
X) write_xprofile ;;
|
||||
@ -150,14 +156,13 @@ done
|
||||
|
||||
# Configuration questions
|
||||
export i3Mode=$(yesno "Would you like to use ratpoison mode? This behaves more like strychnine, with an escape key followed by keybindings.")
|
||||
if [[ $i3Mode -eq 1 ]]; then
|
||||
mod="Mod4"
|
||||
fi
|
||||
# Prevent setting ratpoison mode key to the same as default mode key
|
||||
while [[ "$escapeKey" == "$mod" ]]; do
|
||||
escapeKey="$(menulist "Ratpoison mode key:" Control+t Control+z Control+Escape Alt+Escape Control+Space Super)"
|
||||
escapeKey="${escapeKey//Alt/Mod1}"
|
||||
escapeKey="${escapeKey//Super/Mod4}"
|
||||
if [[ $i3Mode -eq 0 ]]; then
|
||||
escapeKey="$(menulist "Ratpoison mode key:" Control+t Control+z Control+Escape Alt+Escape Control+Space Super)"
|
||||
escapeKey="${escapeKey//Alt/Mod1}"
|
||||
escapeKey="${escapeKey//Super/Mod4}"
|
||||
fi
|
||||
mod="$(menulist "I3 mod key, for top level bindings:" Alt Control Super)"
|
||||
mod="${mod//Alt/Mod1}"
|
||||
mod="${mod//Super/Mod4}"
|
||||
@ -186,7 +191,7 @@ fi
|
||||
webBrowser="$(command -v $webBrowser)"
|
||||
# Text editor
|
||||
unset programList
|
||||
for i in geany gedit kate kwrite l3afpad leafpad libreoffice mousepad pluma ; do
|
||||
for i in emacs geany gedit kate kwrite l3afpad leafpad libreoffice mousepad pluma ; do
|
||||
if hash ${i/#-/} &> /dev/null ; then
|
||||
if [ -n "$programList" ]; then
|
||||
programList="$programList $i"
|
||||
@ -253,25 +258,26 @@ cat << EOF > ${i3Path}/config
|
||||
#
|
||||
# This config file uses keycodes (bindsym) and was written for the QWERTY
|
||||
# layout.
|
||||
#
|
||||
# To get a config file with the same key positions, but for your current
|
||||
# layout, use the i3-config-wizard
|
||||
#
|
||||
#set mod key
|
||||
|
||||
# set mod key
|
||||
set \$mod $mod
|
||||
|
||||
#set workspace layout to tapped so apps use most of the screen
|
||||
# set workspace layout to tabbed so apps use most of the screen
|
||||
workspace_layout tabbed
|
||||
|
||||
#set the mouse so it is trapped in focused window
|
||||
# set the mouse so it is trapped in focused window
|
||||
# this fixes some issues in some games that require focus and pause when focus is moved via mouse accidentally
|
||||
focus_follows_mouse no
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:monospace 8
|
||||
|
||||
# I38 help
|
||||
bindsym \$mod+Shift+F1 exec ${i3Path}/scripts/i38-help.sh
|
||||
|
||||
# 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
|
||||
@ -280,20 +286,20 @@ bindsym \$mod+Control+c exec clipster -s
|
||||
bindsym \$mod+Control+Delete exec --no-startup-id sgtk-bar
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
bindsym \$mod+XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +${volumeJump}% & play -qnG synth 0.05 sin 440
|
||||
bindsym \$mod+XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -${volumeJump}% & play -qnG synth 0.05 sin 440
|
||||
bindsym \$mod+XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +${volumeJump}% & play -qnG synth 0.03 sin 440
|
||||
bindsym \$mod+XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -${volumeJump}% & play -qnG synth 0.03 sin 440
|
||||
bindsym \$mod+XF86AudioMute exec --no-startup-id ${i3Path}/scripts/mute-unmute.sh
|
||||
|
||||
# Music player controls
|
||||
# Requires playerctl.
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id ${i3Path}/scripts/music_controler.sh incvol $volumeJump
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id ${i3Path}/scripts/music_controler.sh decvol $volumeJump
|
||||
bindsym XF86AudioPrev exec --no-startup-id ${i3Path}/scripts/music_controler.sh prev
|
||||
bindsym XF86AudioMute exec --no-startup-id ${i3Path}/scripts/music_controler.sh pause
|
||||
bindsym XF86AudioPlay exec --no-startup-id ${i3Path}/scripts/music_controler.sh play
|
||||
bindsym \$mod+XF86AudioPlay exec --no-startup-id ${i3Path}/scripts/music_controler.sh info
|
||||
bindsym XF86AudioStop exec --no-startup-id ${i3Path}/scripts/music_controler.sh stop
|
||||
bindsym XF86AudioNext exec --no-startup-id ${i3Path}/scripts/music_controler.sh next
|
||||
bindsym XF86AudioPrev exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh prev
|
||||
bindsym XF86AudioMute exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh pause
|
||||
bindsym XF86AudioPlay exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh play
|
||||
bindsym \$mod+XF86AudioPlay exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh info
|
||||
bindsym XF86AudioStop exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh stop
|
||||
bindsym XF86AudioNext exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh next
|
||||
|
||||
# start a terminal
|
||||
bindsym \$mod+Return exec i3-sensible-terminal
|
||||
@ -308,18 +314,13 @@ bindsym \$mod+F1 exec --no-startup-id sgtk-menu -f
|
||||
bindsym \$mod+Control+d exec --no-startup-id yad --icons --compact --no-buttons --title="Desktop" --close-on-unfocus --read-dir=${HOME}/Desktop
|
||||
|
||||
# change focus
|
||||
# alt+tab and shift tab
|
||||
# alt+tab and alt+shift+tab
|
||||
bindsym Mod1+Shift+Tab focus left
|
||||
bindsym Mod1+Tab focus right
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym \$mod+BackSpace fullscreen toggle
|
||||
|
||||
# focus the parent container
|
||||
#bindsym \$mod+a focus parent
|
||||
|
||||
# focus the child container
|
||||
#bindsym \$mod+d focus child
|
||||
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym \$mod+Shift+minus move scratchpad
|
||||
@ -373,50 +374,68 @@ if [[ -n "${escapeKey}" ]]; then
|
||||
cat << EOF >> ${i3Path}/config
|
||||
bindsym $escapeKey mode "ratpoison"
|
||||
mode "ratpoison" {
|
||||
# I38 help bound to ?
|
||||
bindsym Shift+slash exec ${i3Path}/scripts/i38-help.sh, mode "default"
|
||||
# Terminal emulator bound to c
|
||||
bindsym c exec i3-sensible-terminal, mode "default"
|
||||
# Text editor bound to e
|
||||
bindsym e exec $textEditor, mode "default"
|
||||
# File browser bound to f
|
||||
bindsym f exec $fileBrowser, mode "default"
|
||||
# Web browser bound to w
|
||||
bindsym w exec $webBrowser, mode "default"
|
||||
bindsym g exec ${i3Path}/scripts/game_controler.sh -s, mode "default"
|
||||
# Kill window bound to k
|
||||
bindsym k kill, mode "default"
|
||||
$(if command -v mumble &> /dev/null ; then
|
||||
echo "# Mumble bound to m"
|
||||
echo "bindsym m exec $(command -v mumble), mode \"default\""
|
||||
fi)
|
||||
$(if command -v ocrdesktop &> /dev/null ; then
|
||||
echo "bindsym Print exec $(command -v ocrdesktop), mode \"default\""
|
||||
echo "# OCR desktop bound to print screen alternative \$mod+r"
|
||||
echo "bindsym Print exec $(command -v ocrdesktop) -b, mode \"default\""
|
||||
echo "bindsym \$mod+r exec $(command -v ocrdesktop) -b, mode \"default\""
|
||||
fi)
|
||||
$(if command -v pidgin &> /dev/null ; then
|
||||
echo "# p bound to pidgin"
|
||||
echo "bindsym p exec $(command -v pidgin), mode \"default\""
|
||||
fi)
|
||||
$(if command -v transfersh &> /dev/null ; then
|
||||
echo "# t bound to share file with transfer.sh"
|
||||
echo 'bindsym t exec bash -c '"'"'fileName="$(yad --title "I38 Upload File" --file)" && url="$(transfersh "${fileName}" | tee >(yad --title "I38 - Uploading ${fileName##*/} ..." --progress --pulsate --auto-close))" && echo "${url#*saved at: }" | tee >(yad --title "I38 - Upload URL" --show-cursor --show-uri --button yad-close --sticky --text-info) >(xclip -selection clipboard)'"', mode \"default\""
|
||||
fi)
|
||||
bindsym Mod1+Shift+0 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +${volumeJump}%
|
||||
bindsym Mod1+Shift+9 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -${voluemJump}%
|
||||
|
||||
#Keyboard based volume Controls with pulseaudio
|
||||
bindsym Mod1+Shift+0 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +${volumeJump}% & play -qnG synth 0.03 sin 440
|
||||
bindsym Mod1+Shift+9 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -${volumeJump}% & play -qnG synth 0.03 sin 440
|
||||
# Music player controls
|
||||
# Requires playerctl.
|
||||
bindsym Mod1+Shift+equal exec --no-startup-id ${i3Path}/scripts/music_controler.sh incvol $volumeJump, mode "default"
|
||||
bindsym Mod1+Shift+minus exec --no-startup-id ${i3Path}/scripts/music_controler.sh decvol $volumeJump, mode "default"
|
||||
bindsym Mod1+Shift+z exec --no-startup-id ${i3Path}/scripts/music_controler.sh prev, mode "default"
|
||||
bindsym Mod1+Shift+c exec --no-startup-id ${i3Path}/scripts/music_controler.sh pause, mode "default"
|
||||
bindsym Mod1+Shift+x exec --no-startup-id ${i3Path}/scripts/music_controler.sh play, mode "default"
|
||||
bindsym Mod1+Shitf+v exec --no-startup-id ${i3Path}/scripts/music_controler.sh stop, mode "default"
|
||||
bindsym Mod1+Shift+b exec --no-startup-id ${i3Path}/scripts/music_controler.sh next, mode "default"
|
||||
bindsym Mod1+Shift+u exec --no-startup-id ${i3Path}/scripts/music_controler.sh info, mode "default"
|
||||
bindsym Mod1+Shift+minus exec --no-startup-id ${i3Path}/scripts/music_controler.sh decvol $volumeJump, mode "default"
|
||||
bindsym Mod1+Shift+z exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh prev, mode "default"
|
||||
bindsym Mod1+Shift+c exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh pause, mode "default"
|
||||
bindsym Mod1+Shift+x exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh play, mode "default"
|
||||
bindsym Mod1+Shift+v exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh stop, mode "default"
|
||||
bindsym Mod1+Shift+b exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh next, mode "default"
|
||||
bindsym Mod1+Shift+u exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh info, mode "default"
|
||||
#Check battery status
|
||||
bindsym Mod1+b exec --no-startup-id ${i3Path}/scripts/battery_status.sh, mode "default"
|
||||
#Check controller battery status
|
||||
bindsym g exec ${i3Path}/scripts/game_controler.sh -s, mode "default"
|
||||
# Get a list of windows in the current workspace
|
||||
bindsym apostrophe exec --no-startup-id ${i3Path}/scripts/window_list.sh, mode "default"
|
||||
# Restart orca
|
||||
bindsym Shift+o exec $(command -v orca) --replace, mode "default"
|
||||
# reload the configuration file
|
||||
bindsym Control+semicolon exec bash -c 'i3-msg -t run_command reload && spd-say -P important -Cw "I38 Configuration reloaded."', 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 'i3-msg -t run_command restart && spd-say -P important -Cw "I3 restarted."', mode "default"
|
||||
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." && i3-msg -t run_command exit'
|
||||
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'
|
||||
# Exit ratpoison mode without any action escape or Control+g
|
||||
bindsym Escape mode "default"
|
||||
bindsym Control+g mode "default"
|
||||
}
|
||||
|
||||
|
||||
@ -432,44 +451,47 @@ bindsym \$mod+e exec $textEditor
|
||||
bindsym \$mod+f exec $fileBrowser
|
||||
# Web browser bound to $mod+w
|
||||
bindsym \$mod+w exec $webBrowser
|
||||
bindsym \$mod+g exec ${i3Path}/scripts/game_controler.sh -s, mode "default"
|
||||
|
||||
$(if command -v mumble &> /dev/null ; then
|
||||
echo "bindsym \$mod+m exec $(command -v mumble)"
|
||||
fi)
|
||||
$(if command -v ocrdesktop &> /dev/null ; then
|
||||
echo "bindsym Print exec $(command -v ocrdesktop)"
|
||||
echo "bindsym Print exec $(command -v ocrdesktop)' -b"
|
||||
fi)
|
||||
$(if command -v pidgin &> /dev/null ; then
|
||||
echo "bindsym \$mod+p exec $(command -v pidgin)"
|
||||
fi)
|
||||
$(if command -v transfersh &> /dev/null ; then
|
||||
echo 'bindsym \$mod+t exec bash -c '"'"'fileName="$(yad --title "I38 Upload File" --file)" && url="$(transfersh "${fileName}" | tee >(yad --title "I38 - Uploading ${fileName##*/} ..." --progress --pulsate --auto-close))" && echo "${url#*saved at: }" | tee >(yad --title "I38 - Upload URL" --show-cursor --show-uri --button yad-close --sticky --text-info) >(xclip -selection clipboard)'"', mode \"default\""
|
||||
echo 'bindsym \$mod+t exec bash -c '"'"'fileName="$(yad --title "I38 Upload File" --file)" && url="$(transfersh "${fileName}" | tee >(yad --title "I38 - Uploading ${fileName##*/} ..." --progress --pulsate --auto-close))" && echo "${url#*saved at: }" | tee >(yad --title "I38 - Upload URL" --show-cursor --show-uri --button yad-close --sticky --text-info) >(xclip -selection clipboard)'"'"
|
||||
fi)
|
||||
bindsym \$mod+Shift+0 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +${volumeJump}%
|
||||
bindsym \$mod+Shift+9 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -${voluemJump}%
|
||||
#Keyboard based volume controls using pulseaudio
|
||||
bindsym \$mod+Shift+0 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +${volumeJump}% & play -qnG synth 0.03 sin 440
|
||||
bindsym \$mod+Shift+9 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -${volumeJump}% & play -qnG synth 0.03 sin 440
|
||||
# Music player controls
|
||||
# Requires playerctl.
|
||||
bindsym \$mod+Shift+equal exec --no-startup-id ${i3Path}/scripts/music_controler.sh incvol $volumeJump
|
||||
bindsym \$mod+Shift+minus exec --no-startup-id ${i3Path}/scripts/music_controler.sh decvol $volumeJump
|
||||
bindsym \$mod+Shift+z exec --no-startup-id ${i3Path}/scripts/music_controler.sh prev
|
||||
bindsym \$mod+Shift+c exec --no-startup-id ${i3Path}/scripts/music_controler.sh pause
|
||||
bindsym \$mod+Shift+x exec --no-startup-id ${i3Path}/scripts/music_controler.sh play
|
||||
bindsym \$mod+Shitf+v exec --no-startup-id ${i3Path}/scripts/music_controler.sh stop
|
||||
bindsym \$mod+Shift+b exec --no-startup-id ${i3Path}/scripts/music_controler.sh next
|
||||
bindsym \$mod+Shift+u exec --no-startup-id ${i3Path}/scripts/music_controler.sh info
|
||||
bindsym \$mod+Shift+z exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh prev
|
||||
bindsym \$mod+Shift+c exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh pause
|
||||
bindsym \$mod+Shift+x exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh play
|
||||
bindsym \$mod+Shift+v exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh stop
|
||||
bindsym \$mod+Shift+b exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh next
|
||||
bindsym \$mod+Shift+u exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2000 pad 0 .02" "| sox -np synth 0.03 sin 2000" norm 1.0 vol 0.4 & ${i3Path}/scripts/music_controler.sh info
|
||||
#Check battery status
|
||||
bindsym \$mod+b exec --no-startup-id ${i3Path}/scripts/battery_status.sh
|
||||
#Check controller battery status
|
||||
bindsym \$mod+g exec ${i3Path}/scripts/game_controler.sh -s
|
||||
# Get a list of windows in the current workspace
|
||||
bindsym \$mod+apostrophe exec --no-startup-id ${i3Path}/scripts/window_list.sh
|
||||
# Restart orca
|
||||
bindsym \$mod+Shift+o exec $(command -v orca) --replace
|
||||
# reload the configuration file
|
||||
bindsym \$mod+Control+semicolon exec bash -c 'i3-msg -t run_command reload && spd-say -P important -Cw "I38 Configuration reloaded."'
|
||||
bindsym \$mod+Control+semicolon exec bash -c '$i3msg -t run_command reload && spd-say -P important -Cw "I38 Configuration reloaded."'
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym \$mod+Control+Shift+semicolon exec bash -c 'i3-msg -t run_command restart && spd-say -P important -Cw "I3 restarted."'
|
||||
bindsym \$mod+Control+Shift+semicolon exec bash -c '$i3msg -t run_command restart && spd-say -P important -Cw "I3 restarted."'
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym \$mod+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." && i3-msg -t run_command exit'
|
||||
}
|
||||
bindsym \$mod+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'
|
||||
|
||||
|
||||
|
||||
EOF
|
||||
|
32
scripts/i38-help.sh
Executable file
32
scripts/i38-help.sh
Executable file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
configPath="$(readlink -f $0)"
|
||||
configPath="${configPath%/*/*}"
|
||||
|
||||
if [[ -f "${configPath}/config" ]]; then
|
||||
mod="$(grep 'set $mod ' "${configPath}/config" | cut -d ' ' -f3)"
|
||||
mod="${mod//Mod1/Alt}"
|
||||
mod="${mod//Mod4/Super}"
|
||||
mapfile helpText < <(sed -e '/set \($mod\|mod\)/d' \
|
||||
-e '/set $ws/d' \
|
||||
-e 's/bindsym/Key:/g' \
|
||||
-e 's/Mod1/Alt/g' \
|
||||
-e 's/, mode "default"//g' \
|
||||
-e 's/--no-startup-id //g' \
|
||||
-e 's/$ws\([0-9]\)/\1/g' \
|
||||
-e 's/play \(.*\)& //g' \
|
||||
-e "s/\$mod/$mod/g" "${configPath}/config")
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
for i in "${!helpText[@]}" ; do
|
||||
helpText[$i]="${helpText[$i]//${configPath}\/scripts\//}"
|
||||
helpText[$i]="${helpText[$i]/.sh/}"
|
||||
helpText[$i]="${helpText[$i]/, exec announce*/$'\n'}"
|
||||
helpText[$i]="${helpText[$i]/, exec spd-say*/$'\n'}"
|
||||
done
|
||||
helpText+=("End of text. Please press Control+Home to jump to the beginning of this document.")
|
||||
echo "${helpText[@]}" | yad --text-info --show-cursor --title "I38 help" --button "Close:0" --listen
|
||||
|
||||
exit 0
|
45
scripts/run_dialog.sh
Executable file
45
scripts/run_dialog.sh
Executable 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
|
Reference in New Issue
Block a user