From 86ccfafed6083d36a38714867202545ed83ae8b2 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Thu, 7 Dec 2023 10:58:39 +0900 Subject: added custom-keyboad waybar module --- config/hypr/scripts/SwitchKeyboardLayout.sh | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 config/hypr/scripts/SwitchKeyboardLayout.sh (limited to 'config/hypr/scripts/SwitchKeyboardLayout.sh') diff --git a/config/hypr/scripts/SwitchKeyboardLayout.sh b/config/hypr/scripts/SwitchKeyboardLayout.sh new file mode 100755 index 00000000..40b212f0 --- /dev/null +++ b/config/hypr/scripts/SwitchKeyboardLayout.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +layout_f="/tmp/kb_layout" +current_layout=$(cat "$layout_f") + +# Read keyboard layout settings from Settings.conf +settings_file="$HOME/.config/hypr/configs/Settings.conf" + +if [ -f "$settings_file" ]; then + # Extract the value of kb_layout from Settings.conf + kb_layout_line=$(grep 'kb_layout=' "$settings_file" | cut -d '=' -f 2) + IFS=',' read -ra layout_mapping <<< "$kb_layout_line" +fi + +layout_count=${#layout_mapping[@]} + +# Find the index of the current layout in the mapping +for ((i = 0; i < layout_count; i++)); do + if [ "$current_layout" == "${layout_mapping[i]}" ]; then + current_index=$i + break + fi +done + +# Calculate the index of the next layout +next_index=$(( (current_index + 1) % layout_count )) +new_layout="${layout_mapping[next_index]}" + +# Update the keyboard layout +hyprctl keyword input:kb_layout "$new_layout" +echo "$new_layout" > "$layout_f" -- cgit v1.2.3 From abb68d82a2a839438a3de19b377084ae9796bf42 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Thu, 7 Dec 2023 14:29:10 +0900 Subject: updated initial boot and kb layout switch --- config/hypr/initial-boot.sh | 36 ++++++++++++++++++----------- config/hypr/scripts/SwitchKeyboardLayout.sh | 18 +++++++++++---- config/waybar/modules | 8 +++---- 3 files changed, 39 insertions(+), 23 deletions(-) (limited to 'config/hypr/scripts/SwitchKeyboardLayout.sh') diff --git a/config/hypr/initial-boot.sh b/config/hypr/initial-boot.sh index cfadfcc4..797f49cb 100755 --- a/config/hypr/initial-boot.sh +++ b/config/hypr/initial-boot.sh @@ -1,11 +1,12 @@ #!/bin/bash -# A bash script designed to ran it only once dotfiles installed +# A bash script designed to run only once dotfiles installed # THIS SCRIPT CAN BE DELETED ONCE SUCCESSFULLY BOOTED!! And also, edit ~/.config/hypr/configs/Execs.conf -# not necessary to do since this script is only designed to ran only once as long as the marker exist +# not necessary to do since this script is only designed to run only once as long as the marker exists -# Set swww options +# Variables +scriptsDir=$HOME/.config/hypr/scripts wallpaper=$HOME/Pictures/wallpapers/anime-girl-abyss.png swww="swww img" @@ -14,18 +15,25 @@ effect="--transition-bezier .43,1.19,1,.4 --transition-fps 60 --transition-type # Check if a marker file exists. if [ ! -f ~/.config/hypr/.initial_startup_done ]; then - # Initialize pywal - printf " Initializing pywal........\n\n" - wal -i $wallpaper + # Initialize pywal + printf " Initializing pywal........\n\n" + wal -i "$wallpaper" + + # Initial symlink for Pywal Dark and Light for Rofi Themes + ln -sf "$HOME/.cache/wal/colors-rofi-dark.rasi" "$HOME/.config/rofi/pywal-color/pywal-theme.rasi" + + # Initial scripts to load in order to have a proper wallpaper waybar and pywal themes + pkill swww && swww init || swww query && $swww "$wallpaper" $effect + + # Refreshing waybar, dunst, rofi etc. + "$scriptsDir/PywalSwww.sh" > /dev/null 2>&1 & + "$scriptsDir/Refresh.sh" > /dev/null 2>&1 & + + # initiate the kb_layout (for some reason) waybar cant launch it + "$scriptsDir/SwitchKeyboardLayout.sh" > /dev/null 2>&1 & - #initial symlink for Pywal Dark and Light for Rofi Themes - ln -sf "$HOME/.cache/wal/colors-rofi-dark.rasi" "$HOME/.config/rofi/pywal-color/pywal-theme.rasi" - - # Initial scripts to load inorder to have a proper wallpaper waybar and pywal themes - swww query || swww init && $swww $wallpaper $effect - # Create a marker file to indicate that the script has been executed. touch ~/.config/hypr/.initial_startup_done -fi - + exit +fi diff --git a/config/hypr/scripts/SwitchKeyboardLayout.sh b/config/hypr/scripts/SwitchKeyboardLayout.sh index 40b212f0..e7c56b42 100755 --- a/config/hypr/scripts/SwitchKeyboardLayout.sh +++ b/config/hypr/scripts/SwitchKeyboardLayout.sh @@ -1,13 +1,21 @@ -#!/bin/bash +#!/usr/bin/env bash + +layout_f="$HOME/.cache/kb_layout" +settings_file="$HOME/.config/hypr/configs/Settings.conf" + +# Check if ~/.cache/kb_layout exists and create it with a default layout from Settings.conf if not found +if [ ! -f "$layout_f" ]; then + default_layout=$(grep 'kb_layout=' "$settings_file" | cut -d '=' -f 2 | cut -d ',' -f 1 2>/dev/null) + if [ -z "$default_layout" ]; then + default_layout="us" # Default to 'us' layout if Settings.conf or 'kb_layout' is not found + fi + echo "$default_layout" > "$layout_f" +fi -layout_f="/tmp/kb_layout" current_layout=$(cat "$layout_f") # Read keyboard layout settings from Settings.conf -settings_file="$HOME/.config/hypr/configs/Settings.conf" - if [ -f "$settings_file" ]; then - # Extract the value of kb_layout from Settings.conf kb_layout_line=$(grep 'kb_layout=' "$settings_file" | cut -d '=' -f 2) IFS=',' read -ra layout_mapping <<< "$kb_layout_line" fi diff --git a/config/waybar/modules b/config/waybar/modules index fa989045..5e90530b 100644 --- a/config/waybar/modules +++ b/config/waybar/modules @@ -459,11 +459,11 @@ }, "custom/keyboard": { - "exec": "cat /tmp/kb_layout", - "interval": 3, + "exec": "cat ~/.cache/kb_layout", + "interval": 1, "format": " {}", - "on-click": "~/.config/hypr/scripts/SwitchKeyboardLayout.sh", - "tooltip": false, + "on-click": "~/.config/hypr/scripts/SwitchKeyboardLayout.sh", + "tooltip": false, }, "custom/light_dark": { -- cgit v1.2.3