Created
July 19, 2025 18:36
-
-
Save kokoye2007/e0ac1235077739b224d812dfc45c88b7 to your computer and use it in GitHub Desktop.
pwo_MM - West Pwo Karen- iBus Keyboard Installer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # West Pwo Karen | |
| # pwo_MM | |
| # kar | |
| # maintainer: kokoye2007@gmail.com | |
| set -e | |
| # Detect package manager | |
| detect_pkg_mgr() { | |
| if command -v apt &>/dev/null; then | |
| echo "apt" | |
| elif command -v dnf &>/dev/null; then | |
| echo "dnf" | |
| elif command -v pacman &>/dev/null; then | |
| echo "pacman" | |
| elif command -v zypper &>/dev/null; then | |
| echo "zypper" | |
| else | |
| echo "Unsupported" | |
| fi | |
| } | |
| # Install required packages | |
| install_packages() { | |
| PKG_MGR=$(detect_pkg_mgr) | |
| echo "Detected package manager: $PKG_MGR" | |
| case $PKG_MGR in | |
| apt) | |
| sudo apt update | |
| sudo apt install -y ibus ibus-table | |
| ;; | |
| dnf) | |
| sudo dnf install -y ibus ibus-table | |
| ;; | |
| pacman) | |
| sudo pacman -Sy --noconfirm ibus ibus-table | |
| ;; | |
| zypper) | |
| sudo zypper install -y ibus ibus-table | |
| ;; | |
| *) | |
| echo "❌ Unsupported package manager. Please install ibus and ibus-table manually." | |
| exit 1 | |
| ;; | |
| esac | |
| } | |
| # Check for ibus and ibus-table | |
| if ! command -v ibus &> /dev/null || ! command -v ibus-table-createdb &> /dev/null; then | |
| echo "Installing required packages..." | |
| install_packages | |
| fi | |
| # 3. System-wide install | |
| TABLE_DIR="/usr/share/ibus-table/tables" | |
| DB_NAME="pwo-westpwokaren" | |
| # Create DB TXT file | |
| cat > $DB_NAME.txt << 'EOF' | |
| ### File header must not be modified | |
| ### This file must be encoded into UTF-8. | |
| ### This file comes from xcin module. | |
| SCIM_Generic_Table_Phrase_Library_TEXT | |
| VERSION_1_0 | |
| BEGIN_DEFINITION | |
| UUID = 517f42e2-ba2b-43c5-8c6e-3a6e4a402459 | |
| SERIAL_NUMBER = 20250720 | |
| ICON = karen.png | |
| NAME = West Pwo Karen | |
| LANGUAGES = pwo_MM | |
| AUTHOR = KNU | |
| STATUS_PROMPT = PWO | |
| AUTO_SELECT = TRUE | |
| AUTO_WILDCARD = FALSE | |
| AUTO_COMMIT = TRUE | |
| AUTO_SPLIT = FALSE | |
| DYNAMIC_ADJUST = FALSE | |
| AUTO_FILL = FALSE | |
| ALWAYS_SHOW_LOOKUP = FALSE | |
| NEVER_SHOW_LOOKUP = TRUE | |
| DISCARD_INVALID_KEY = FALSE | |
| DEF_FULL_WIDTH_PUNCT = FALSE | |
| DEF_FULL_WIDTH_LETTER = FALSE | |
| MAX_KEY_LENGTH = 4 | |
| SHOW_KEY_PROMPT = TRUE | |
| USER_CAN_DEFINE_PHRASE = FALSE | |
| PINYIN_MODE = FALSE | |
| VALID_INPUT_CHARS = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$&[]{};:<>?/`~ | |
| BEGIN_CHAR_PROMPTS_DEFINITION | |
| 1 ၁ | |
| ! [ | |
| 2 ၂ | |
| @ ] | |
| 3 ၃ | |
| # { | |
| 4 ၄ | |
| $ } | |
| 5 ၅ | |
| 6 ၆ | |
| 7 ၇ | |
| & ရ | |
| 8 ၈ | |
| 9 ၉ | |
| 0 ၀ | |
| q ဆ | |
| Q ဒ | |
| w တ | |
| W ဝ | |
| e န | |
| E ္ | |
| r မ | |
| R ၩ | |
| t အ | |
| T ၪ | |
| y ပ | |
| Y ၫ | |
| u က | |
| U ၬ | |
| i င | |
| I ၭ | |
| o ၥ | |
| O ၧ | |
| p စ | |
| P ၨ | |
| [ ဟ | |
| { ဧ | |
| ] ှူ | |
| } ှု | |
| a ၦ | |
| A ၡ | |
| s ျ | |
| S ရ | |
| d ိ | |
| D ီ | |
| f ွှ | |
| F ၠ | |
| g ါ | |
| G ွ | |
| h ့ | |
| H ံ | |
| j ြ | |
| J ဲ | |
| k ု | |
| K ု | |
| l ူ | |
| L ူ | |
| ; း | |
| : ဂ | |
| ` ၠွ | |
| ~ ရူ | |
| z ဖ | |
| Z ဇ | |
| x ထ | |
| X ့ | |
| c ခ | |
| C ဎ | |
| v လ | |
| V ့ | |
| b ဘ | |
| B ယ | |
| n ည | |
| N ွ့ | |
| m ြ | |
| M ရွှ့ | |
| < ရှု | |
| > ရှူ | |
| / ၊ | |
| ? ။ | |
| END_CHAR_PROMPTS_DEFINITION | |
| END_DEFINITION | |
| BEGIN_TABLE | |
| 1 ၁ 1000 | |
| ! [ 1000 | |
| 2 ၂ 1000 | |
| @ ] 1000 | |
| 3 ၃ 1000 | |
| # { 1000 | |
| 4 ၄ 1000 | |
| $ } 1000 | |
| 5 ၅ 1000 | |
| 6 ၆ 1000 | |
| 7 ၇ 1000 | |
| & ရ 1000 | |
| 8 ၈ 1000 | |
| 9 ၉ 1000 | |
| 0 ၀ 1000 | |
| q ဆ 1000 | |
| Q ဒ 1000 | |
| w တ 1000 | |
| W ဝ 1000 | |
| e န 1000 | |
| E ္ 1000 | |
| r မ 1000 | |
| R ၩ 1000 | |
| t အ 1000 | |
| T ၪ 1000 | |
| y ပ 1000 | |
| Y ၫ 1000 | |
| u က 1000 | |
| U ၬ 1000 | |
| i င 1000 | |
| I ၭ 1000 | |
| o ၥ 1000 | |
| O ၧ 1000 | |
| p စ 1000 | |
| P ၨ 1000 | |
| [ ဟ 1000 | |
| { ဧ 1000 | |
| ] ှူ 1000 | |
| } ှု 1000 | |
| a ၦ 1000 | |
| A ၡ 1000 | |
| s ျ 1000 | |
| S ရ 1000 | |
| d ိ 1000 | |
| D ီ 1000 | |
| f ွှ 1000 | |
| F ၠ 1000 | |
| g ါ 1000 | |
| G ွ 1000 | |
| h ့ 1000 | |
| H ံ 1000 | |
| j ြ 1000 | |
| J ဲ 1000 | |
| k ု 1000 | |
| K ု 1000 | |
| l ူ 1000 | |
| L ူ 1000 | |
| ; း 1000 | |
| : ဂ 1000 | |
| ` ၠွ 1000 | |
| ~ ရူ 1000 | |
| z ဖ 1000 | |
| Z ဇ 1000 | |
| x ထ 1000 | |
| X ့ 1000 | |
| c ခ 1000 | |
| C ဎ 1000 | |
| v လ 1000 | |
| V ့ 1000 | |
| b ဘ 1000 | |
| B ယ 1000 | |
| n ည 1000 | |
| N ွ့ 1000 | |
| m ြ 1000 | |
| M ရွှ့ 1000 | |
| < ရှု 1000 | |
| > ရှူ 1000 | |
| / ၊ 1000 | |
| ? ။ 1000 | |
| END_TABLE | |
| EOF | |
| echo "Installing West Pwo Karen layout system-wide..." | |
| sudo cp $DB_NAME.txt "$TABLE_DIR/$DB_NAME.txt" | |
| sudo ibus-table-createdb -s "$TABLE_DIR/$DB_NAME.txt" -n "$TABLE_DIR/$DB_NAME.db" | |
| # 4. Restart ibus | |
| echo "Restarting ibus-daemon..." | |
| ibus-daemon -drx | |
| echo "✅ West Pwo Karen keyboard installed system-wide." | |
| echo "To enable it: Settings > Keyboard > + Add Input Source > 'Karen' > Others > Kawthoolei" | |
| # 5. Launch settings based on environment | |
| read -p "Do you want to open keyboard settings now? [Y/n] " open_settings | |
| if [[ "$open_settings" =~ ^[Yy]$ ]]; then | |
| if command -v gnome-control-center &>/dev/null; then | |
| gnome-control-center keyboard || gnome-control-center region & | |
| elif command -v systemsettings5 &>/dev/null; then | |
| systemsettings5 kcm_regionandlang & | |
| else | |
| echo "Please open your system's Region & Language settings manually." | |
| fi | |
| fi | |
| exit 0 | |
| # Optional: Download and open keyboard layout image | |
| # read -p "Do you want to download and open the keyboard layout image? [Y/n] " get_image | |
| # if [[ "$get_image" =~ ^[Yy]$ ]]; then | |
| # wget -O ~/Kawthoolei_keyboard_layout.png "https://gcgklarsavdldufdguee.supabase.co/storage/v1/object/public/keyboards/Kawthoolei_keyobard_layout.png" | |
| # xdg-open ~/Kawthoolei_keyboard_layout.png & | |
| # fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment