11 Commits

Author SHA1 Message Date
62c2c06904 Rename script. 2024-09-20 14:00:27 -04:00
12649c0f60 Directory local variables for Emacs contributors.
Sets some handy things for sending patches, might be useful for other contributors.
2024-09-20 14:00:27 -04:00
a63091b320 Put the sensible-terminal script into i38 itself.
There is no such --sensible-terminal flag to Sway, and given it's just
a script we may as well put it in our codebase instead.
2024-09-20 14:00:27 -04:00
faf7ca45e0 When using Sway, include the default distribution files for configuration.
Useful for things such as importing the proper dBus environment.
2024-09-20 14:00:27 -04:00
3769428fdf Added path to ps5 contoller to game controller battery script. 2024-09-17 18:08:36 -04:00
f2ab61b389 Added optional support for x11bell: https://github.com/jovanlanik/x11bell 2024-09-11 02:19:37 -04:00
8c29d40616 Found a sound missing -V0 flag. 2024-08-31 14:26:13 -04:00
31c920de8a OCR through speech-dispatcher added. Interrupt speech-dispatcher key added. 2024-08-13 00:37:39 -04:00
6cf1aac9de Merge branch 'master' of git.stormux.org:storm/I38 2024-07-13 18:55:55 -04:00
3f7f7d7b21 Fixed very chatty error messages on some systems with alsa. 2024-07-13 18:55:32 -04:00
2c763ce6ea Fixed links to licenses. 2024-07-12 19:08:37 -08:00
7 changed files with 67 additions and 16 deletions

5
.dir-locals.el Normal file
View File

@ -0,0 +1,5 @@
;;; Directory Local Variables -*- no-byte-compile: t -*-
;;; For more information see (info "(emacs) Directory Variables")
((nil . ((vc-prepare-patches-separately . nil)
(vc-default-patch-addressee . "billy@wolfe.casa"))))

View File

@ -3,7 +3,7 @@
Accessibility setup script for the i3 window manager.
## i38.sh
Released under the terms of the GPL License Version 3: http://www.wtfpl.net
Released under the terms of the GPL License Version 3: https://www.gnu.org/licenses/
This is a Stormux project: https://stormux.org
@ -32,6 +32,7 @@ An uppercase I looks like a 1, 3 from i3, and 8 because the song [We Are 138](ht
- sox: for sounds.
- transfersh: [optional] for file sharing GUI
- udiskie: [optional] for automatically mounting removable storage
- x11bell: [optional] Bell support if you do not have a PC speaker. Available from https://github.com/jovanlanik/x11bell
- xclip: Clipboard support
- xbacklight: [optional] for screen brightness adjustment
- xorg-setxkbmap: [optional] for multiple keyboard layouts

34
i38.sh
View File

@ -11,10 +11,11 @@
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
# You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
# Flag for sway configurations
usingSway=1 # Not by default.
i3Path="${XDG_CONFIG_HOME:-$HOME/.config}/i3"
i3msg="i3-msg"
sensibleTerminal="i3-sensible-terminal"
# Dialog accessibility
export DIALOGOPTS='--no-lines --visit-items'
@ -174,7 +175,7 @@ yesno() {
help() {
echo "${0##*/}"
echo "Released under the terms of the WTFPL License: http://www.wtfpl.net"
echo "Released under the terms of the GPL V3 License: https://www.gnu.org/licenses/"
echo -e "This is a Stormux project: https://stormux.org\n"
echo -e "Usage:\n"
echo "With no arguments, create the i3 configuration."
@ -258,9 +259,10 @@ while getopts "${args}" i ; do
case "$i" in
h) help;;
s)
swaySystemIncludesPath="/etc/sway/config.d"
usingSway=0
i3msg="swaymsg"
i3Path="${XDG_CONFIG_HOME:-$HOME/.config}/sway"
sensibleTerminal="sway --sensible-terminal"
;;
u) update_scripts;;
x) write_xinitrc ;&
@ -402,8 +404,18 @@ cp -rv scripts/ "${i3Path}/" | dialog --backtitle "I38" --progressbox "Moving sc
cat << EOF > ${i3Path}/config
# Generated by I38 (${0##*/}) https://git.stormux.org/storm/I38
# $(date '+%A, %B %d, %Y at %I:%M%p')
EOF
# If we are using Sway, we need to load in the system configuration
# Usually, this is for system specific dBus things that the distro knows how to manage; we should trust their judgment with that
if [[ $usingSway ]] && [[ -d "${swaySystemIncludesPath}" ]]; then
cat << EOF >> ${i3Path}/config
# Include your distribution Sway configuration files.
include ${swaySystemIncludesPath}/*
EOF
fi
cat << EOF >> ${i3Path}/config
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
@ -443,7 +455,7 @@ 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.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
bindsym \$mod+XF86AudioMute exec --no-startup-id ${i3Path}/scrip/ts/mute-unmute.sh
# Music player controls
# Requires playerctl.
@ -457,7 +469,7 @@ bindsym XF86AudioStop exec --no-startup-id play -qV0 "| sox -np synth 0.03 sin 2
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 $sensibleTerminal
bindsym \$mod+Return exec ${i3Path}/scripts/i3-sensible-terminal.sh
# kill focused window
bindsym \$mod+F4 kill
@ -533,6 +545,13 @@ bindsym $mod+Shift+BackSpace mode "default"
EOF
# ocrdesktop through speech-dispatcher
if command -v ocrdesktop &> /dev/null ; then
echo "bindsym ${mod}+F5 exec bash -c 'spd-say \"performing O C R\" && ocrdesktop -cno | spd-say -e --'" >> ${i3Path}/config
fi
# Interrupt speech-dispatcher output
echo "bindsym ${mod}+Shift+F5 exec spd-say -C" >> ${i3Path}/config
# Multiple keyboard layouts if requested.
if [[ ${#kbd[@]} -gt 1 ]]; then
echo "bindsym Mod4+space exec ${i3Path}/scripts/keyboard.sh cycle ${kbd[@]}" >> ${i3Path}/config
@ -660,6 +679,9 @@ if [[ $dex -eq 0 ]]; then
echo 'exec --no-startup-id dex --autostart --environment i3'
else
echo '# Startup applications'
if command -v x11bell &> /dev/null ; then
echo 'exec --no-startup-id x11bell play -nqV0 synth .1 sq norm -12'
fi
echo 'exec --no-startup-id clipster -d'
echo 'exec orca'
echo "exec_always --no-startup-id ${i3Path}/scripts/desktop.sh"

View File

@ -19,7 +19,7 @@
batteryName=""
if [[ "$batteryName" == "" ]]; then
batteryName="$(find /sys/class/power_supply -name 'sony_controller_battery_*' | cut -d/ -f5)"
batteryName="$(find /sys/class/power_supply -name 'sony_controller_battery_*' -or -name 'ps-controller-battery-*' | cut -d/ -f5)"
fi
# If there's no file, we don't check it.

23
scripts/i3-sensible-terminal.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
#
# This code is released in public domain by Han Boetes <han@mijncomputer.nl>
#
# This script tries to exec a terminal emulator by trying some known terminal
# emulators.
#
# We welcome patches that add distribution-specific mechanisms to find the
# preferred terminal emulator. On Debian, there is the x-terminal-emulator
# symlink for example.
#
# Invariants:
# 1. $TERMINAL must come first
# 2. Distribution-specific mechanisms come next, e.g. x-terminal-emulator
# 3. The terminal emulator with best accessibility comes first.
# 4. No order is guaranteed/desired for the remaining terminal emulators.
for terminal in "$TERMINAL" x-terminal-emulator mate-terminal gnome-terminal terminator xfce4-terminal urxvt rxvt termit Eterm aterm uxterm xterm roxterm termite lxterminal terminology st qterminal lilyterm tilix terminix konsole kitty guake tilda alacritty hyper wezterm; do
if command -v "$terminal" > /dev/null 2>&1; then
exec "$terminal" "$@"
fi
done
i3-nagbar -m 'i3-sensible-terminal could not find a terminal emulator. Please install one.'

View File

@ -16,6 +16,6 @@ if [ $(pamixer --get-mute) = false ]; then
pamixer -t
else
pamixer -t
play -qnG synth 0.05 sin 440
play -qnGV0 synth 0.05 sin 440
spd-say -P important -Cw 'Unmuted!'
fi

View File

@ -20,13 +20,13 @@ i3 = i3ipc.Connection()
def on_new_window(self,i3):
if i3.container.name == 'xfce4-notifyd':
system('play -n synth .05 sq 1800 tri 2400 delay 0 .03 remix - repeat 2 echo .55 0.7 20 1 norm -12 &')
system('play -nqV0 synth .05 sq 1800 tri 2400 delay 0 .03 remix - repeat 2 echo .55 0.7 20 1 norm -12 &')
else:
system('play -n synth .25 sin 440:880 sin 480:920 remix - norm -3 pitch -500 &')
system('play -nqV0 synth .25 sin 440:880 sin 480:920 remix - norm -3 pitch -500 &')
def on_close_window(self,i3):
if i3.container.name != 'xfce4-notifyd':
system('play -n synth .25 sin 880:440 sin 920:480 remix - norm -3 pitch -500 &')
system('play -nqV0 synth .25 sin 880:440 sin 920:480 remix - norm -3 pitch -500 &')
def on_mode(self,event):
mode= event.change
@ -37,7 +37,7 @@ def on_mode(self,event):
elif mode == 'default':
system('play -qV0 "|sox -np synth .07 sq 400" "|sox -np synth .5 sq 800" fade h 0 .5 .5 norm -20 reverse &')
else:
system('play -n synth 0.05 pluck F3 norm -8 : synth 0.05 pluck C4 norm -8 : synth 0.05 pluck F4 norm -8 : synth 0.05 pluck C5 norm -8')
system('play -nqV0 synth 0.05 pluck F3 norm -8 : synth 0.05 pluck C4 norm -8 : synth 0.05 pluck F4 norm -8 : synth 0.05 pluck C5 norm -8')
def on_workspace_focus(self,i3):
#system('play -qnV0 synth pi fade 0 .25 .15 pad 0 1 reverb overdrive riaa norm -8 speed 1 &')
@ -47,13 +47,13 @@ def on_workspace_move(self,i3):
system('play -qnV0 synth pi fade 0 .25 .15 pad 0 1 reverb overdrive riaa norm -8 speed 1 reverse &')
def on_restart(self,i3):
system('play -qn synth .25 saw 500:1200 fade .1 .25 .1 norm -8 &')
system('play -qnV0 synth .25 saw 500:1200 fade .1 .25 .1 norm -8 &')
def on_exit(self,i3):
system('play -qn synth .3 sin 700:200 fade 0 .3 0 &')
system('play -qnV0 synth .3 sin 700:200 fade 0 .3 0 &')
def on_fullscreen(self,i3):
system('play -qn synth br flanger fade h .3 .3 0 &')
system('play -qnV0 synth br flanger fade h .3 .3 0 &')
i3 = i3ipc.Connection()