summaryrefslogtreecommitdiff
path: root/bashs/shell scrips/keyboardlayoutswitcher.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bashs/shell scrips/keyboardlayoutswitcher.sh')
-rwxr-xr-xbashs/shell scrips/keyboardlayoutswitcher.sh23
1 files changed, 23 insertions, 0 deletions
diff --git a/bashs/shell scrips/keyboardlayoutswitcher.sh b/bashs/shell scrips/keyboardlayoutswitcher.sh
new file mode 100755
index 0000000..ff3101c
--- /dev/null
+++ b/bashs/shell scrips/keyboardlayoutswitcher.sh
@@ -0,0 +1,23 @@
+#!/usr/local/bin/bash
+
+numberofparameter=$# # Gets the number of parameter passed
+currentlayout=$(setxkbmap -query | grep layout | awk '{print $2}') # Gets the current layout
+langLayout=($*) # Passes the parameters into an array
+
+i=0
+
+while [[ "$i" -lt "$numberofparameter" ]]; do
+ if [[ "${langLayout[$i]}" == "${currentlayout}" ]]; then
+ break
+ fi
+ i=$(($i+1))
+done
+
+# checks if i has not reached to the last parameter (last language)
+if [[ "$i" -lt "(($numberofparameter-1))" ]]; then
+ # Sets to next parameter (next language)
+ setxkbmap -layout ${langLayout[$(($i+1))]} && notify-send --icon /usr/share/icons/Dracula/apps/scalable/key_bindings.svg "Keyboard Layout" "Keyboard set to ${langLayout[$(($i+1))]}" || notify-send --icon /usr/share/icons/Dracula/apps/scalable/key_bindings.svg "Keyboard Layout" "Something went wrong :/"
+else
+ # Has reached the end, so looping back to the first parameter (first language)
+ setxkbmap -layout $1 && notify-send --icon /usr/share/icons/Dracula/apps/scalable/key_bindings.svg "Keyboard Layout" "Keyboard set to $1" || notify-send --icon /usr/share/icons/Dracula/apps/scalable/key_bindings.svg "Keyboard Layout" "Something went wrong :/"
+fi