ComposeKey למתקדמים

חודש שעבר כתבתי כאן על השימוש במקש ComposeKey על מערכות לינוקס, וכיצד הטכניקה הזו יכולה לאפשר למשתמשים להקליד בקלות תווים שלא נמצאים באופן רגיל על המקלדת ובפריסת המקשים הנבחרת. במהלך החודש האחרון נשאלתי לא פעם כאן ובמקומות אחרים, ואני מניח שהמידע הזה יהיה שימושי גם לאחרים.

עברית – כפי שציינתי גם בפוסט המקורי, כשעובדים עם locale עברי מאבדים חלק ניכר מהגדרות ברירת המחדל. הדרך לפתרון של בעיה זו היא שמישהו יקח יוזמה ויקח חסות על הקובץ, אבל לא ידוע לי על מישהו שהביע עניין בזה עד כה. בנתיים אפשר לעשות include לקובץ האנגלי או להעתיק את הקובץ האנגלי אל קובץ ההגדרות האישי.

קובץ הגדרות מקומי – בלינוקס ישנו מבחר של תוכנות רבות שמתרגמות את הקשות המקלדת לתווים, והתמיכה שלהן באפשרויות מתקדמות כמו ComposeKey לא תמיד זהה, מה שיכול לגרות ל־ComposeKey לא לתפקד, לא לקרוא את קובץ ההגדרות בתיקיית הבית, או לא לאפשר לקובץ ההגדרות בתיקיית הבית לטעון את קובץ ההגדרות הגלובלי. בעוד חלק מהתוכנות מאפשרות להגדיר את אמצעי הקלט (Input Method) ברמת התוכנה (למשל gedit,‏ pidgin, ותוכנות אחרות שמבוססות על GTK), תוכנות אחרות משתמשות בברירת המחדל ולא מאפשרות להחליף את התוכנה בשום דרך.

X Input Method היא מערכת הקלט הוותיקה של X, וכל עוד אין לנו צורך בתכונות מתקדמות שנדרשות עבור מספר שפות אסיאתיות (כי לנו יש את הצרות שלנו…), אין שום מניעה להשתמש בו. את התוכנה הפעילה שאחראית על הקלט ניתן להחליף באמצעות הפקודה im-switch; יש לבצע התחברות מחדש לסביבה הגרפית כדי שהשינוי יבוצע.

עוד תווים – בעוד שהשימוש המקורי של Compose נועד לאפשר גישה לתווים שלא קיימים על המקלדת כמו סימני ניקוד ומספר מוגבל של תווים נוספים, השפע של יוניקוד איפשר להשתמש בתכונה לתווים רבים נוספים. לאנשים שאפשרויות ברירת המחדל לא מספיקות להם, ואין להם רצון לנהל קובץ הגדרות פרטי משלהם, ישנם מספר אנשים שהפיצו קבצי הגדרות ברשת. בניהם dotXCompose שאני מוצא אותו מתעדכן באופן תדיר, והוא הרבה פחות שמרני מבחינת האפשרויות. באמצעות התקנה פשוטה אפשר להנות ממאגר הסימנים המורחב שלהם, שכולל גם סימנים גרפיים שימושיים (‪✉ = &mail, ✈ = &plane‬, למשל) וגם תווים שיכולים להיות שימושיים לכל אלו מבנינו שמקפידים להוסיף RLE, LRE, PDF, RLM ו־LRM בכל מקום שמתבקש.

משתעשעים עם ComposeKey

במקום לעשות שיעורים בפיזיקה במהלך סוף השבוע, ובזמן שאני מבצע מספר משימות נוספות, נחשפתי ל־Compose Key. לא שלא הכרתי אותו קודם, פשוט מדובר בדברים שמאז ומתמיד רמזו לנו שהם לא נחוצים לנו ולכן אין לנו צורך בהם. בקצרה, מדובר במקש שהיה קיים במקלדות של המסופים משנות השמונים, וכיום נדיר למצוא אותו על המקלדת, ממש כמו מקש ה־AltGr.

מקלדת סטנדרטית של תחנת Sun עם כפתורי Compose ו־AltGr

בעוד התו הזה במקור היה מיועד להדפסה של אומלאוט ושאר סימני הניקוד לאותיות לטיניות (למשל à é ī ò ü), מהר מאד הוא מצא לעצמו שימושים נוספים בלינוקס, ובזכות תקן יוניקוד הורחבה כמות הסימנים הזמינים, וכיום אפשר להקליד בצורה דומה סימנים רבים מהמבחר שזמין ביוניקוד, החל מתווי «הדגשה» למניהם, סימני פיסוק מתקדמים כגון "—" ו־"”“" ועד סימנים גרפיים שלא נכללים בשום שפה כגון פרצוף מחייך "☺" ואפילו לב "♥".

התקנה

ההתקנה על לינוקס מודרני פשוטה מאד, ומי שהתקין פריסת מקשים בימי חייו בוודאי שלא יסתבך עם הגדרה של Compose Key. ההגדרות שבהמשך מתייחסות ל־Gnome, ואני מניח שעם שינויים קלים יתאימו גם לסביבות אחרות –

  1. נכנסים ל־Keyboard Preferences.
  2. בלשונית Layouts לוחצים על הכפתור Options שבתחתית החלון.
  3. בוחרים בהעדפה Compose key position, ומסמנים את המקש שנרצה למפות ל־Compose. כדאי למפות אותו למקש שאתם הכי פחות משתמשים בו; זה יכול להיות אחד ממקשי ה־Win אם המקלדת שלכם התברכה בשניים כאלה, או מקש ה־Menu שכמעט ואין בו צורך. ניתן גם למפות אותו למקשים אחרים מאותו המסך.

שימוש

בניגוד לפריסת המקשים lyx שמתאפיינת במקשים מיוחדים ברמות גבוהות שיש צורך לזכור את המיקום המדויק כדי להשתמש בהם (למשל התו "₪" שממופה משום מה למקש Shift-"ל"), עם Compose לא צריך לזכור הרבה. אנשים שיצא להם לעשות שימוש ממושך ב־Dos או ב־Windows בוודאי מכירים את האפשרות להקליד סימנים מיוחדים באמצעות המקש Alt בצירוף הקוד הספרתי של אותו התו – עם קומפוז זה דומה, וגם קצת שונה.

כדי להקליד תו כלשהו, יש ללחוץ על מקש ה־Compose, ולהקליד את רצף התווים שמייצר את אותו הסימן. למשל הקלדת האותיות a ו־e תפיק את התו המעניין æ, והקלדה של שני סימני שאלה תפיק סימן שאלה הפוך "¿". אני יודע שלתווים הללו אכן יש שימוש בשפות מסויימות, אבל לנו, כישראלים דוברי עברית ואנגלית הם לא שימושיים במיוחד. להלן רשימה קצרה של תווים שימושיים. יש להקליד משמאל לימין.

Key sequence output
compose – >
compose < –
compose _ _ ¯
compose – – – — (EM DASH)
compose – – . – (EN DASH)
compose . .
compose : )
compose : (
compose o c ©
compose o r ®
compose > > »
compose < < «
compose e =
compose c | ¢
compose > =
compose < =
compose ( 1 )
compose 1 2 ½
compose < 3

רשימה ארוכה ומלאה של כל הקיצורים האפשריים זמינה בקובץ ‎/usr/share/X11/locale/en_US.UTF-8/Compose או ב־freedesktop.org.

מה הלאה?

לאחרונה התווספו תווי יוניקוד רבים המהווים סימנים גרפיים לתקן יוניקוד 6.0, דוגמת אוסף נרחב של הבעות פנים, שיוכלו בעתיד להוות תחליף הולם לסט סימני ההבעה הגרפיים המשמשים אותנו כיום שאינם תווים ברי הקלדה. באמצעות שימוש ביוניקוד נוכל לחסוך כמה תווים, וגם לשלב אותם באתרים דוגמת פייסבוק וטוויטר שאינם מאפשרים צירוף של סימני הבעה גרפיים. חשבתי לנסות להוסיף אותם לרשימות אבל אני רואה שמישהו כבר עקף אותי והוסיף את הסימן PERSON RAISING BOTH HANDS IN CELEBRATION ל־Trunk עבור הצירוף compose \ o /, שכרגע מביא סתם סימן חסר משמעות, אבל בהמשך צפוי שיביא את התו המבוקש.

ניתן להגדיר קובץ קיצורים אישי באמצעות יצירת הקובץ ‎~/.XCompose והוספה שלו ערכים בדומה לכתוב בקבצי ההגדרות הכלליים. ניתן להוסיף שם הוראת include שתכלול את סט הקיצורים המקורי, ולהוסיף עליו את השינויים הרצויים.

בעבודה תחת locale עברי לא נגישים קיצורי Compose Key, מהסיבה הפשוטה שאף־אחד לא טרח לתחזק את קובץ ההגדרות העברי. כפתרון ביניים ניתן להוסיף לתחילת הקובץ ‎~/.XCompose הוראה לטעון גם את הקובץ האנגלי בצורה הבאה –
include "/usr/share/X11/locale/en_US.UTF-8/Compose"

יצרתם קובץ קיצורים מעניין משלכם? יש לכם המלצות לקיצורים קיימים מעניינים וחשובים? אתם מוזמנים לשתף אותם בתגובות.