9 Commits

3 changed files with 51 additions and 21 deletions

View File

@ -38,21 +38,35 @@ An uppercase I looks like a 1, 3 from i3, and 8 because the song [We Are 138](ht
- yad: For screen reader accessible dialogs
I38 will try to detect your browser, file manager, and web browser and present you with a list of options to bind to their launch keys. It will also create bindings for pidgin and mumble if they are installed. To use the bindings, press your ratpoison mode key which is set when you run the i38.sh script. next, press the binding for the application you want; w for web browser, e for text editor, f for file manager, m for mumble, etc. To learn all the bindings, find and read the mode ratpoison section of ~/.config/i3/config.
The login sound uses the GTK sound theme. Configure this using GTK configuration files or gsettings. Replace "name" with the name of the theme you want to use.
Note that if you enable all sound events as shown below, you'll also hear GTK sounds when moving around menus, buttons, etc, if the sound theme has sounds for those events.
To configure the theme name with gsettings, do as follows.
gsettings set org.gnome.desktop.sound theme-name name
If you'd like all sound types enabled:
gsettings set org.gnome.desktop.sound input-feedback-sounds true
gsettings set org.gnome.desktop.sound event-sounds true
To configure with a config file, the file is ~/.config/gtk-3.0/settings.ini
```ini
[Settings]
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-sound-theme-name=name
gtk-modules=canberra-gtk-module
```
To configure with a config file, edit or create ~/.config/gtk-3.0/settings.ini
[Settings]
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-sound-theme-name=name
gtk-modules=canberra-gtk-module
You can apply the same configuration to GTK2 appss. Create or edit ~/.gtkrc-2.0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-sound-theme-name=name
gtk-modules=canberra-gtk-module
## Usage:

7
i38.sh
View File

@ -529,8 +529,10 @@ bindsym Shift+slash exec ${i3Path}/scripts/i38-help.sh, mode "default"
bindsym c exec $sensibleTerminal, mode "default"
# Text editor bound to e
bindsym e exec $textEditor, mode "default"
# File browser bound to f
bindsym f exec $fileBrowser, mode "default"
$(if [[ ${#fileBrowser} -gt 3 ]]; then
echo "# File browser bound to f"
echo "bindsym f exec $fileBrowser, mode \"default\""
fi)
# Email client bound to \$mod+e
bindsym \$mod+e exec $emailClient, mode "default"
# Web browser bound to w
@ -628,6 +630,7 @@ if [[ -x "/usr/libexec/notification-daemon" ]]; then
fi
if command -v remind &> /dev/null && command -v notify-send &> /dev/null ; then
echo "exec_always --no-startup-id $(command -v remind) -z '-k:${HOME}/.config/i3/scripts/reminder.sh %s &' ${HOME}/.reminders < /dev/null > /dev/null 2>&1"
touch ~/.reminders
fi
if [[ $dex -eq 0 ]]; then
echo '# Start XDG autostart .desktop files using dex. See also'

View File

@ -43,8 +43,8 @@ add_daily_reminder() {
--field="Select Hour:":num '1!1..12' \
--field="Select Minute:":num '0!0..59' \
--field="Select AM or PM":cb 'AM!PM' \
--button="Cancel:1" \
--button="Create Reminder:0")"
--button="Cancel!gtk-cancel:1" \
--button="Create Reminder!gtk-ok:0")"
# Properly handle window close events.
if [[ $? -eq 1 || $? -eq 252 ]]; then
@ -84,8 +84,8 @@ add_monthly_reminder() {
--field="Select Minute:":num '0!0..59' \
--field="Select AM or PM":cb 'AM!PM' \
--field="Last day of month":chk "FALSE" \
--button="Cancel:1" \
--button="Create Reminder:0")"
--button="Cancel!gtk-cancel:1" \
--button="Create Reminder!gtk-ok:0")"
# Properly handle window close events.
if [[ $? -eq 1 || $? -eq 252 ]]; then
@ -136,8 +136,8 @@ add_weekly_reminder() {
--field="Select Hour:":num '1!1..12' \
--field="Select Minute:":num '0!0..59' \
--field="Select AM or PM":cb 'AM!PM' \
--button="Cancel:1" \
--button="Create Reminder:0")"
--button="Cancel!gtk-cancel:1" \
--button="Create Reminder!gtk-ok:0")"
# Properly handle window close events.
if [[ $? -eq 1 || $? -eq 252 ]]; then
@ -214,7 +214,7 @@ view_reminders() {
# Display the reminders
reminder="$(yad --list --title "I38 - Reminders" --text "Current reminders:" \
--column "Reminder" "${yadMenu[@]}" \
--button="Close:1" --button="Delete:0" --response=1)"
--button="Close!gtk-ok:1" --button="Delete!gtk-delete:0" --response=1)"
if [[ $? -ne 0 ]]; then
return
fi
@ -261,7 +261,20 @@ fi
if [[ $# -ne 0 ]]; then
sox -ndqV0 synth .1 tri 600 norm -9 pad .05 repeat
notify-send "$*"
notification="$*"
if [[ "${notification}" =~ "http" ]]; then
url="${notification##*http}"
url="${url%%[[:space:]]*}"
url="http${url}"
notification="${notification/${url}[[:space:]]/}"
url="${url%[[:space:].?!]}"
fi
if command -v xclip &> /dev/null && [[ "${#url}" -gt 3 ]]; then
echo "${url}" | xclip -selection clipboard
notify-send "${notification} The URL has been copied to the clipboard." --expire-time=30000
else
notify-send "${*}" --expire-time=30000
fi
exit 0
fi
@ -269,9 +282,9 @@ while : ; do
action=$(yad --title "I38 - Reminders" --form \
--button="_View Today's Reminders!gtk-info":2 \
--button="_View All Reminders!gtk-info":3 \
--button="_Add Daily Reminder!gtk-ok":0 \
--button="_Add Weekly Reminder!gtk-ok":4 \
--button="Add Monthly Reminder!gtk-ok":5 \
--button="_Add Daily Reminder!gtk-edit":0 \
--button="_Add Weekly Reminder!gtk-edit":4 \
--button="Add Monthly Reminder!gtk-edit":5 \
--button="Add Custom Reminder!gtk-edit":6 \
--button="Close!gtk-cancel":1 \
--separator="")