SSD Nodes Learn Hosting plans →
מדריכים Matt Connorמאת Matt Connor · עודכן 2026-08-31

איך להגדיר פריסת מקלדת Colemak ב-Linux

מדריך מלא להגדרת Colemak ב-Linux עבור X11, Wayland ומסוף הטקסט. גלו כיצד לשנות את המיפוי, מה קורה לקיצורי הדרך ב-Vim וכיצד לנהל חיבורי SSH ללא צורך בשינוי הגדרות שרת.

היכן מוגדר פריסת המקלדת Colemak ב-Linux

ב-Linux, פריסת Colemak אינה מוגדרת כהגדרה מערכתית יחידה. הפריסה מיושמת על ידי הרכיב שקורא את המקלדת באותו רגע, ולכן היא קיימת באחד משלושה מקומות: מסוף הטקסט (text console), שרת ה-X11, או ה-compositor של ה-Wayland. הגדרה במקום הלא נכון לא תניב שום תוצאה.

אפשרות רביעית עוקפת את מערכת ההפעלה לחלוטין. מקלדת שמבצעת מיפוי מחדש ב-firmware שלה, כגון לוח המריץ QMK או VIA, שולחת את הקודים של האותיות הרצויות. כך, כל מכונה שאליה תחברו את המקלדת תקליד ב-Colemak ללא צורך בהגדרה כלל, כולל מסוף של שרת או מכונה שאינה בבעלותכם. החיסרון הוא שמקלדת המחשב הנייד שלכם עדיין תקליד ב-QWERTY.

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

בדיקת המצב הקיים במערכת

הריצו פקודות אלו לפני ביצוע שינויים כלשהם. הן מציגות את ההגדרה הנוכחית ואת רשימת גרסאות ה-Colemak שמאגר המקלדות של X מציע.

localectl status
setxkbmap -query
localectl list-x11-keymap-variants us | grep colemak

הפקודה האחרונה אמורה להציג את colemak ואת colemak_dh. פריסת Colemak כלולה ב-xkeyboard-config מזה שנים. הגרסה Colemak-DH נוספה בגרסה 2.34, כך שרק הפצה ישנה מאוד לא תכלול אותה. נכון לאוגוסט 2026, Ubuntu 24.04 ו-Debian 13 כוללות שתיהן גרסה עדכנית יותר מזו.

אם setxkbmap -query מדווחת על חוסר יכולת לפתוח display, סימן שאתם עובדים ב-session של Wayland וה-compositor הוא שמנהל את הפריסה. למקרה זה יש סעיף ייעודי בהמשך.

Colemak או Colemak-DH

פריסת Colemak מזיזה שבעה-עשר מקשים ממיקומם ב-QWERTY ומשאירה עשרה ללא שינוי, בהם Z, X, C ו-V. בזכות זאת, קיצורי הדרך לביטול פעולה (undo), גזירה (cut), העתקה (copy) והדבקה (paste) נשארים במקומם, כפי שהיד השמאלית רגילה. תאימות זו היא הסיבה המרכזית למבנה הפריסה.

Colemak-DH היא גרסה מותאמת של Colemak. היא משנה את מיקומם של D, B ו-G, ומחליפה בין H ל-M, כיוון שב-Colemak הסטנדרטית, הקלדת D ו-H דורשת מתיחה של האצבע המורה אל העמודה המרכזית של המקלדת. הגרסה הרשמית שומרת על כך שכל אות תוקלד באותה אצבע ששימשה אותה ב-Colemak, כך שמי שעובר מ-Colemak ל-DH נדרש לשינוי קטן בלבד ולא ללימוד פריסה חדשה. גרסת ה-XKB היא colemak_dh, עם colemak_dh_iso עבור מקלדות הכוללות מקש נוסף לצד ה-shift השמאלי.

במעבר מ-QWERTY, כל אחת מהן דורשת תהליך למידה מחדש יחיד, לכן יש לבחור לפי נוחות ולהישאר עם הבחירה. החלפת פריסה פעם שנייה כרוכה במאמץ דומה לראשונה, כיוון שהתהליך הוא בנייה מחדש של זיכרון שרירי הקשור למיקומי המקשים. אם השאלה הפתוחה היא האם בכלל לעזוב את QWERTY, כדאי להכריע בה באמצעות השוואה בין Colemak, Dvorak ו-QWERTY לפני שמשקיעים חודש בבנייה מחדש של הזיכרון השרירי.

הגדרת פריסת מקלדת Colemak ב-X11 באמצעות setxkbmap ו-localectl

setxkbmap us -variant colemak
setxkbmap -query

הפקודה setxkbmap -query אמורה כעת להציג variant: colemak, והקלדה בכל חלון אמורה להפיק אותיות בפריסת Colemak. השינוי נשמר כל עוד סשן ה-X פעיל ואינו נכתב לדיסק, מה שהופך זאת לדרך בטוחה לנסות את הפריסה למשך שעה.

כדי לשמור את ההגדרה גם לאחר אתחול (reboot):

sudo localectl set-x11-keymap us pc105 colemak
localectl status

סדר הארגומנטים הוא פריסה (layout), לאחר מכן דגם (model), ולבסוף וריאציה (variant). הפקודה localectl status אמורה כעת להציג X11 Layout: us ו-X11 Variant: colemak. הכלי localectl ממיר את הבחירה גם למפת המקשים הקרובה ביותר עבור ה-console, אלא אם מוסיפים את הדגל --no-convert; לכן, במערכות רבות פקודה יחידה זו מכסה גם את ה-tty. ב-Debian וב-Ubuntu, יש לבדוק את הקובץ /etc/default/keyboard לאחר מכן, כיוון שזהו הקובץ ש-console-setup קורא בעת העלייה.

הגדרת Colemak ב-Wayland

בסשן Wayland אין שרת X להגדרה. ה-compositor טוען את מפת המקלדת ומעביר אותה לכל יישום, לכן פריסת המקלדת היא הגדרה של ה-compositor. זו הסיבה ש-setxkbmap נראה לא תקין בסביבה זו: הוא נכשל במציאת תצוגה, או שהוא משנה רק את XWayland בעוד יישומי Wayland מקוריים מתעלמים מהשינוי.

ב-GNOME ההגדרה היא מפתח gsettings:

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+colemak')]"

ההגדרה חלה באופן מיידי, ללא צורך ב-logout. המחרוזת us+colemak היא הפריסה והווריאציה מחוברות בסימן פלוס.

ב-sway, יש להוסיף זאת ל-~/.config/sway/config:

input type:keyboard {
    xkb_layout us
    xkb_variant colemak_dh
}

יש לטעון מחדש באמצעות swaymsg reload. הפקודה swaymsg -t get_inputs מציגה את כל התקני הקלט עם הפריסה שבה הם משתמשים; זו הבדיקה שיש להריץ כאשר רק מקלדת אחת אינה מתפקדת כראוי.

ב-KDE Plasma, יש לפתוח את System Settings, לעבור ל-Keyboard, לאחר מכן ל-Layouts, ולהוסיף English (US) עם הווריאציה Colemak.

הגדרת פריסת מקלדת Colemak במסוף הטקסט

המסוף הוא ה-tty הטקסטואלי שאליו מגיעים באמצעות Ctrl+Alt+F3, והוא מנהל מפת מקשים משלו. הגדרות שבוצעו ב-X11 או במנהל חלונות (compositor) אינן משפיעות עליו, דבר שחשוב אם אתם עובדים על סביבת עבודה בטרמינל על גבי מסוף וירטואלי חשוף.

ב-Debian וב-Ubuntu, ערכו את /etc/default/keyboard:

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""

לאחר מכן, החילו את השינויים:

sudo setupcon

הקלידו במסוף כדי לוודא שהשינוי נקלט. החבילה console-setup ממירה את תיאור ה-XKB למפת מקשים עבור המסוף באמצעות ckbcomp, כך שהמסוף וה-X חולקים תיאור אחד במערכות אלו.

בהפצות המשתמשות במפות מקשים של kbd ישירות, בדקו תחילה את שם המפה:

localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9

החבילה kbd מספקת את מפת המסוף של Colemak כ-i386/colemak/en-latin9, לכן השם שיש להעביר הוא בדרך כלל en-latin9 ולא colemak. העבירו שם שמופיע ברשימה, שכן שם שאינו קיים יידחה.

הפקודה sudo loadkeys en-latin9 משנה את המסוף הנוכחי באופן מיידי, ו-sudo loadkeys us מחזירה את המצב לקדמותו. התייחסו ל-loadkeys כאל בדיקה ולא כאל הגדרה קבועה: השינוי נשמר עד לאתחול הבא, וב-Debian וב-Ubuntu, הרצת ה-setupcon בזמן העלייה משחזרת את מה שמוגדר ב-/etc/default/keyboard.

האם שרת VPS ללא ממשק גרפי זקוק לפריסת מקלדת Colemak?

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

זכרו זאת לפני שתתחילו לערוך קובצי מקלדת בשרתי ייצור. אם אתם מנהלים צי של שרתי Linux, הפריסה שייכת למכונה שלפניכם ולא לצי השרתים, ולכן אין לה מקום בתהליך ה-provisioning שלכם. עשר הדקות הראשונות ב-VPS חדש מכילות עבודה מועילה יותר מזו.

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

קונסולה טורית (serial console) מתנהגת אחרת, כיוון שהיא מעבירה תווים והפריסה המקומית שלכם היא זו שקובעת. החריג השני הוא מכונה משותפת. מיפוי מקלדת בקונסולה הוא מערכתי (system-wide), לכן הגדרת Colemak על מכונה שאנשים אחרים מתחברים אליה תשנה את הפריסה גם עבורם, והם לא ינחשו מדוע.

מה קורה למקשי ה-hjkl ב-Vim

בפריסת Colemak, המקש h אינו מזיז את הסמן. שלושת המקשים האחרים כן. המקש j נמצא תחת המיקום של Y ב-QWERTY, המקש k תחת N, והמקש l תחת U; לכן מקשי התנועה מפוזרים על פני שלוש שורות במקום להיות מונחים תחת ארבע אצבעות.

קיימות שתי גישות מעשיות, ולשתיהן יש משתמשים רבים.

השאירו את הגדרות ברירת המחדל ולמדו מחדש את המיקומים. שום דבר בהגדרות שלכם לא יישבר, כל תוסף ימשיך לעבוד, וכל טיפ ל-Vim שנכתב על ידי אחרים ימשיך להיות רלוונטי עבורכם בדיוק כפי שנכתב.

לחלופין, בצעו מיפוי מחדש (remap) לארבעת המקשים שנמצאים תחת יד ימין שלכם, במיקום שבו היו hjkl. ב-Colemak המקשים הללו מפיקים h, n, e ו-i. ב-Colemak-DH אותם ארבעה מקשים פיזיים מפיקים m, n, e ו-i, כיוון ש-DH החליפה בין H ל-M.

noremap n j
noremap e k
noremap i l
noremap l i
noremap k n

כעת n מזיז למטה, e מזיז למעלה, i מזיז ימינה, ו-h כבר היה מוגדר שמאלה. שתי השורות האחרונות מחזירות את הפקודות שהזזתם: l מתחיל את מצב העריכה (insert mode), ו-k חוזר על החיפוש האחרון. בצעו את אותו תהליך עבור האותיות הגדולות, אחרת לחיצה על Shift יחד עם מקש תנועה תפתיע אתכם.

האופציה langmap ב-Vim מבצעת עבודה דומה בפחות שורות:

set langmap=nj,ek,il,li,kn

כל זוג נקרא כתו שאתם מקלידים ואחריו התו ש-Vim צריכה להפעיל. זה חל על מצב Normal בלבד, כך שמצב Insert עדיין מקליד טקסט ב-Colemak כרגיל. שתי מגבלות מתועדות בעזרה של Vim עצמה: langmap לא חל על שילובים עם Ctrl או Alt, ומיפויים של תוספים שנכתבו עבור מקשי ברירת המחדל עלולים להתנהג בצורה לא צפויה תחת הגדרה זו.

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

מה קורה לקיצורי הדרך בטרמינל

קוד בקרה של טרמינל נובע מהתו, ולא מהמקש הפיזי, לכן כל קיצור דרך מסוג Ctrl עובר יחד עם פריסת המקלדת. הקיצורים Ctrl+C, Ctrl+Z, Ctrl+X ו־Ctrl+V שומרים על מיקומם, כיוון ש־Colemak משאיר במכוון את Z, X, C ו־V במקומות שבהם הם נמצאים ב־QWERTY.

ארבעה קיצורים שבהם אתם משתמשים מדי יום אכן משנים מיקום. הקיצור Ctrl+D, שמסיים קלט, נמצא כעת במקום שבו נמצא G ב־QWERTY. הקיצור Ctrl+R, לחיפוש בהיסטוריה, נמצא במקום שבו נמצא S ב־QWERTY. הקיצור Ctrl+E, למעבר לסוף שורה, נמצא במקום שבו נמצא K ב־QWERTY. הקיצור Ctrl+U, שמנקה את השורה, נמצא במקום שבו נמצא I ב־QWERTY.

התוכנה tmux שומרת על ה־prefix המוגדר כברירת מחדל, כיוון שהאות B אינה זזה ב־Colemak. בפריסת Colemak-DH, האות B עוברת לשורה העליונה וה־prefix עובר איתה; זהו הדבר הראשון שתבחינו בו אם אתם מחזיקים סשן tmux פעיל לאורך זמן בשרת VPS. הגדרה מחדש של ה־prefix למקש מועדף היא שינוי של שורה אחת, וזה קל יותר מאשר לאמן מחדש את אותו רפלקס פעמיים.

קיצורי דרך בשולחן העבודה פועלים לפי אותו כלל. קיצור המוגדר כ־Super+E עובר יחד עם הפריסה, כיוון שהוא מוגדר לפי התו. קיצור המוגדר כ־Super+F1 נשאר במקומו, כיוון שמקשי פונקציות אינם ממופים מחדש על ידי הפריסה.

כמה זמן לוקח המעבר

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

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

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

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

כיצד לחזור במהירות ל-QWERTY

ב-X11, הפקודה setxkbmap us משחזרת את QWERTY באופן מיידי. במסוף (console), הפקודה sudo loadkeys us מבצעת את אותה פעולה. כדי לבטל את ההגדרה הקבועה, הריצו את sudo localectl set-x11-keymap us.

החלפה (toggle) עדיפה על פקודה שצריך להקליד בפריסת מקלדת שאינכם יכולים להקליד בה עדיין:

setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggle

פקודה זו טוענת את Colemak כפריסה הראשונה ואת US הרגילה כפריסה השנייה, והצירוף Super+Space מחליף ביניהן. הפסיק בסוף ב-colemak, אינו טעות: הוא מעניק לפריסה הראשונה את הווריאציה colemak ולפריסה השנייה אין וריאציה. ב-GNOME, הוסיפו את שני מקורות הקלט ב-Settings, שם הצירוף Super+Space כבר מבצע החלפה ביניהם.

שתי הנחיות סיסמה פועלות מחוץ לסשן שולחן העבודה שלכם ודורשות התייחסות נפרדת. מסך הכניסה (login greeter) עולה לפני שהגדרות הסשן שלכם מוחלות, לכן בדקו זאת על ידי יציאה מהמערכת (logout) במקום להסתמך על ההגדרה. אם הדיסק מוצפן, הנחיית הסיסמה פועלת מתוך ה-initramfs, שמחזיק עותק משלו של מפת המקלדת. ב-Debian וב-Ubuntu, בנו אותו מחדש עם sudo update-initramfs -u לאחר שתשנו את /etc/default/keyboard, ולאחר מכן בצעו reboot פעם אחת כדי לבדוק זאת בזמן שעדיין יש לכם דרך אחרת להיכנס למכונה.

האם ניתן להשאיר תוכנה אחת בפריסת QWERTY?

פריסת המקלדת מוחלת לפני שהיישום מקבל את הקלט. שרת ה-X או ה-compositor מתרגמים את ה-scancode לתו ומעבירים אותו הלאה, לכן יישום אינו יכול לבקש פריסה שונה. הוא יכול רק לבצע מיפוי מחדש למה שהוא מקבל. זו הסיבה שהתיקון עבור Vim נמצא בקובץ התצורה של Vim, וזו הסיבה שאין אפשרות כללית להחלפת פריסה לפי חלון.

שתי גישות עובדות. הראשונה היא לפי התקן. אם ההקלדה ב-QWERTY מתבצעת במקלדת נפרדת, הגדירו את הפריסה עבור אותו התקן במקום ברמת המערכת:

xinput list
setxkbmap -device 12 -layout us

קחו את ה-id מתוך xinput list, ואמתו אותו על ידי הקלדה בכל מקלדת בתורה. sway מקבל את אותן הגדרות לפי מזהה קלט מתוך swaymsg -t get_inputs, ובוחר ספציפי גובר על type:keyboard.

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

FAQ

האם עליי להגדיר Colemak בשרת ה-VPS שלי?

לא, אם הגישה אליו מתבצעת באמצעות SSH. פרוטוקול SSH מעביר תווים, לכן פריסת המקלדת שלך מתורגמת במחשב האישי לפני שהנתונים נשלחים, והשרת מקבל את אותם הבתים שהיה מקבל ממשתמש QWERTY. היוצא מן הכלל הוא מסוף הדפדפן (browser console) בלוח הבקרה של ספק השרתים, שמתחבר למכונה הווירטואלית כמקלדת פיזית ומשתמש במיפוי המקשים של השרת עצמו. מסוף זה הוא נתיב ההצלה שלך במקרה ש-SSH נכשל, לכן שנה את ההגדרה רק אם אתה בטוח בכך, ובדוק אותה בזמן ש-SSH עדיין פעיל.

האם עליי ללמוד Colemak או Colemak-DH?

שניהם דורשים למידה מחדש מ-QWERTY, לכן בחר לפי נוחות ולא לפי מאמץ המעבר. Colemak-DH משנה את המיקום של D, B ו-G ומחליף בין H ל-M, כיוון שב-Colemak הרגיל הקלדת D ו-H דורשת מתיחה של האצבע המורה לעמודה המרכזית. שמות הגרסאות ב-XKB הם colemak ו-colemak_dh, כאשר colemak_dh_iso מיועד למקלדות בעלות מקש נוסף ליד ה-Shift השמאלי. הרץ את localectl list-x11-keymap-variants us | grep colemak כדי לראות אילו אפשרויות זמינות במערכת שלך.

מה קורה למקשי הניווט hjkl ב-Vim תחת Colemak?

h נשאר במקומו. j עובר תחת המיקום של Y ב-QWERTY, k תחת N ב-QWERTY, ו-l תחת U ב-QWERTY, כך שמקשי הסמן מתפרסים על פני שלוש שורות. ניתן ללמוד אותם מחדש במיקומם החדש, מה ששומר על תקינות כל התוספים והמדריכים, או למפות מחדש את ארבעת המקשים תחת יד ימין: h, n, e ו-i ב-Colemak, או m, n, e ו-i ב-Colemak-DH. האפשרות langmap ב-Vim מבצעת את אותה פעולה עבור מצב Normal, אם כי היא אינה חלה על שילובי Ctrl ועלולה לשבש מיפויים של תוספים.

כמה זמן ייקח לי לחזור למהירות ההקלדה הקודמת שלי?

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

מדוע הפקודה setxkbmap לא השפיעה על שולחן העבודה שלי?

כמעט בוודאות בגלל שהסשן מבוסס על Wayland. תחת Wayland, ה-compositor הוא האחראי על מיפוי המקשים ומחיל אותו על כל יישום, לכן setxkbmap או שלא מצליח למצוא תצוגה, או שהוא משנה רק את XWayland בעוד היישומים המקוריים מתעלמים מכך. הגדר את הפריסה ב-compositor עצמו: מפתח ה-gsettings בשם org.gnome.desktop.input-sources ב-GNOME, הקובץ xkb_variant בהגדרות של sway, או דף ה-Layouts בהגדרות המערכת של KDE Plasma.

#colemak#keyboard#linux#terminal#productivity