SSD Nodes Learn 🎉 VPS از $5.50/ماه
راهنماها Matt Connorتوسط Matt Connor · به‌روزرسانی شده 2026-08-13

آموزش تغییر چیدمان کیبورد به Colemak در لینوکس

راهنمای کامل تنظیم چیدمان Colemak در کنسول لینوکس، X11 و Wayland. یاد بگیرید چرا SSH به تنظیمات کیبورد نیاز ندارد و چگونه با تغییرات کلیدهای hjkl در Vim کنار بیایید.

محل قرارگیری چیدمان Colemak در لینوکس

چیدمان Colemak در لینوکس یک تنظیم واحد در سطح سیستم نیست. این چیدمان توسط هر برنامه‌ای که در آن لحظه ورودی صفحه‌کلید را می‌خواند اعمال می‌شود؛ بنابراین در یکی از سه مکان زیر قرار دارد: کنسول متنی، سرور X11 یا کامپوزیتور Wayland شما. اگر آن را در جای اشتباه تنظیم کنید، هیچ تغییری مشاهده نخواهید کرد.

گزینه چهارم، سیستم‌عامل را به‌طور کامل دور می‌زند. صفحه‌کلیدی که در firmware خود بازنگری (remap) انجام می‌دهد، مانند بردهایی که از QMK یا VIA استفاده می‌کنند، کدهای مربوط به حروف مورد نظر شما را ارسال می‌کند. بنابراین، هر دستگاهی که آن را به آن متصل کنید، بدون نیاز به هیچ‌گونه پیکربندی، با چیدمان Colemak تایپ می‌کند؛ این شامل کنسول سرور و دستگاه‌هایی که مالکیت آن‌ها را ندارید نیز می‌شود. هزینه این روش این است که صفحه‌کلید لپ‌تاپ شما همچنان با چیدمان QWERTY تایپ می‌کند.

باقی این راهنما به سه لایه نرم‌افزاری، دلیل اینکه چرا یک سرور از راه دور تقریباً هرگز به هیچ‌کدام از آن‌ها نیاز ندارد، و تأثیری که این تغییر بر Vim و میان‌برهای ترمینال شما می‌گذارد، می‌پردازد.

بررسی وضعیت فعلی سیستم

پیش از اعمال هرگونه تغییر، دستورات زیر را اجرا کنید. این دستورات تنظیمات فعلی و فهرست گونه‌های 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 را باز کند، شما در یک نشست Wayland هستید و compositor مدیریت چیدمان را بر عهده دارد. این مورد در بخش زیر بررسی شده است.

طرح‌بندی Colemak یا Colemak-DH

طرح‌بندی Colemak جای 17 کلید را نسبت به موقعیت آن‌ها در QWERTY تغییر می‌دهد و 10 کلید از جمله 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 است و برای صفحه‌کلیدهایی که یک کلید اضافه در کنار کلید left shift دارند، از colemak_dh_iso استفاده می‌شود.

اگر از 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 keymap) تبدیل می‌کند، مگر اینکه --no-convert را اضافه کنید؛ بنابراین در بسیاری از سیستم‌ها، این دستور واحد، tty را نیز پوشش می‌دهد. در Debian و Ubuntu، پس از آن /etc/default/keyboard را بررسی کنید، زیرا این فایلی است که console-setup در هنگام بوت می‌خواند.

تنظیم Colemak در Wayland

یک نشست Wayland فاقد X server برای پیکربندی است. کامپوزیتور (compositor) نقشه کلیدها (keymap) را بارگذاری کرده و آن را به هر برنامه تحویل می‌دهد، بنابراین طرح‌بندی (layout) یک تنظیم مربوط به کامپوزیتور است. به همین دلیل است که دستور setxkbmap در اینجا کار نمی‌کند: یا نمی‌تواند نمایشگر را پیدا کند، یا فقط XWayland را تغییر می‌دهد و برنامه‌های بومی Wayland آن را نادیده می‌گیرند.

در GNOME، این تنظیم یک کلید gsettings است:

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

این تنظیم بلافاصله و بدون نیاز به خروج از سیستم (logout) اعمال می‌شود. رشته us+colemak ترکیبی از طرح‌بندی و نوع (variant) است که با یک علامت مثبت به هم متصل شده‌اند.

در 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 به آن دسترسی پیدا می‌کنید و نقشه کلید (keymap) مخصوص به خود را دارد. تنظیماتی که در 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 به عنوان یک تست برخورد کنید نه یک پیکربندی دائمی: این دستور فقط تا زمان reboot باقی می‌ماند و در Debian و Ubuntu، اجرای setupcon در زمان بوت، تنظیمات فایل /etc/default/keyboard را بازیابی می‌کند.

آیا یک VPS بدون مانیتور (headless) به چیدمان صفحه‌کلید Colemak نیاز دارد؟

تقریباً هرگز، و دلیل آن ارزش درک کردن دارد. پروتکل SSH کاراکترها را منتقل می‌کند، نه موقعیت کلیدها را. شبیه‌ساز ترمینال شما کلید فشرده‌شده را دریافت می‌کند، چیدمان محلی شما آن را به یک کاراکتر تبدیل می‌کند و تنها همان کاراکتر از طریق اتصال ارسال می‌شود. سرور n را دریافت می‌کند بدون آنکه راهی برای تشخیص اینکه کدام کلید فیزیکی آن را تولید کرده است داشته باشد. بنابراین چیدمانی که روی لپ‌تاپ خود تنظیم کرده‌اید، در هر نشست SSH، در tmux و در هر ویرایشگری که از راه دور اجرا می‌کنید همراه شماست و ماشین راه دور اصلاً نیازی به پیکربندی صفحه‌کلید ندارد.

پیش از آنکه شروع به ویرایش فایل‌های صفحه‌کلید در سرورهای عملیاتی (production) کنید، این نکته را به خاطر بسپارید. اگر شما مدیریت مجموعه‌ای از سرورهای لینوکسی را بر عهده دارید، چیدمان صفحه‌کلید متعلق به ماشینی است که مقابل شما قرار دارد، نه کل مجموعه؛ بنابراین جایی در فرآیند provisioning شما ندارد. ده دقیقه اول کار با یک VPS جدید کارهای مفیدتری نسبت به این مورد دارد.

دو استثنا وجود دارد که ارزش برنامه‌ریزی دارند. اولی، کنسولی است که مستقیماً به خود ماشین متصل است. کنسول مرورگر در پنل ارائه‌دهنده خدمات، معمولاً خود را به عنوان یک صفحه‌کلید به ماشین مجازی معرفی می‌کند؛ بنابراین کلیدهای فشرده‌شده به صورت scancode ارسال می‌شوند و نقشه کلید (keymap) کنسولِ خودِ سرور تعیین می‌کند که چه کاراکتری نمایش داده شود. این تنها جایی است که چیدمان تنظیم‌شده روی سرور اعمال می‌شود و همچنین مسیر نجات شما در زمانی است که SSH از کار می‌افتد؛ بنابراین یک نقشه کلید ناقص در آنجا یک ریسک واقعی است.

کنسول سریال رفتار متفاوتی دارد، زیرا کاراکترها را منتقل می‌کند و چیدمان محلی شما اعمال می‌شود. استثنای دوم، یک ماشین اشتراکی است. نقشه کلید کنسول در سطح کل سیستم است، بنابراین تنظیم Colemak روی سیستمی که دیگران نیز به آن وارد می‌شوند، چیدمان را برای آن‌ها نیز تغییر می‌دهد و آن‌ها متوجه نخواهند شد که چرا این اتفاق افتاده است.

چه اتفاقی برای کلیدهای hjkl در Vim می‌افتد

در چیدمان Colemak، کلید h دیگر حرکت نمی‌کند، اما سه کلید دیگر همچنان کار می‌کنند. کلید j زیر کلید Y در چیدمان QWERTY، کلید k زیر کلید N و کلید l زیر کلید U قرار دارد؛ بنابراین کلیدهای جهت‌نما به‌جای قرارگیری زیر چهار انگشت، در سه ردیف پخش شده‌اند.

دو راهکار عملی وجود دارد که هر دو کاربران واقعی خود را دارند.

پیش‌فرض‌ها را حفظ کنید و موقعیت‌های جدید را یاد بگیرید. در این حالت هیچ بخشی از تنظیمات شما دچار اختلال نمی‌شود، تمام پلاگین‌ها به کار خود ادامه می‌دهند و هر نکته‌ای که درباره Vim توسط دیگران نوشته شده، دقیقاً برای شما صدق می‌کند.

یا چهار کلیدی که زیر دست راست شما قرار دارند را به همان جایی که hjkl قبلاً بود، نگاشت (remap) کنید. در Colemak، این کلیدها حروف h، n، e و i را تولید می‌کنند. در Colemak-DH، همان چهار کلید فیزیکی حروف m، n، e و i را تولید می‌کنند، زیرا در این چیدمان H با M جابه‌جا شده است.

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

حالا n به پایین، e به بالا، i به راست حرکت می‌کند و h از قبل چپ بود. دو خط آخر، دستوراتی را که جابه‌جا کرده بودید بازمی‌گردانند: l وارد حالت insert می‌شود و 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 که ورودی را پایان می‌دهد، اکنون در جایی است که در QWERTY کلید G قرار دارد. Ctrl+R که جستجوی تاریخچه است، در جایی قرار دارد که در QWERTY کلید S است. Ctrl+E که به انتهای خط می‌رود، در جایی است که در QWERTY کلید K قرار دارد. Ctrl+U که خط را پاک می‌کند، در جایی است که در QWERTY کلید I قرار دارد.

برنامه tmux پیشوند پیش‌فرض خود را حفظ می‌کند، زیرا کلید B در Colemak جابه‌جا نمی‌شود. در Colemak-DH، کلید B به ردیف بالا منتقل می‌شود و پیشوند نیز همراه آن می‌رود؛ این اولین چیزی است که اگر یک نشست طولانی‌مدت tmux روی یک VPS داشته باشید، متوجه آن خواهید شد. تغییر دادن پیشوند به کلیدی که ترجیح می‌دهید، تنها با یک خط تغییر انجام می‌شود و از آموزش مجدد یک رفلکس ذهنی، آسان‌تر است.

میانبرهای دسکتاپ نیز از همین قاعده پیروی می‌کنند. یک میانبر روی Super+E با چیدمان جابه‌جا می‌شود، زیرا توسط کاراکتر تعریف شده است. یک میانبر روی Super+F1 ثابت می‌ماند، زیرا کلیدهای تابعی (function keys) توسط چیدمان صفحه‌کلید بازنگری نمی‌شوند.

مدت‌زمان لازم برای تغییر چیدمان کیبورد

هیچ‌کس نمی‌تواند عدد دقیقی برای سرعت یادگیری شما ارائه دهد. تایپ ده انگشتی بر پایه حافظه حرکتی است. شما در حال یادگیری جای حروف نیستید، بلکه در حال بازسازی رفلکسی هستید که کلمات را به توالی حرکت انگشتان تبدیل می‌کند؛ بنابراین تنها ورودی که به شما کمک می‌کند، زمان صرف‌شده برای تایپ است.

آنچه کاربران گزارش می‌دهند (که البته گزارش‌های شخصی هستند و نه اندازه‌گیری‌های کنترل‌شده)، این است که در هفته اول سرعت آن‌ها به کمتر از نصف سرعت قبلی می‌رسد و بازگشت به سرعت پیشین، بین یک تا سه ماه استفاده روزانه زمان می‌برد. تفاوت بین افراد بسیار زیاد است، بنابراین این ارقام را به عنوان یک الگوی کلی در نظر بگیرید، نه یک برنامه زمانی دقیق.

دو عادت باعث کندتر شدن این فرایند می‌شود. جابه‌جایی بین QWERTY و Colemak در طول روز باعث می‌شود هر دو رفلکس ضعیف بمانند؛ به همین دلیل اکثر کسانی که این تغییر را با موفقیت انجام می‌دهند، در سیستم اصلی خود کاملاً به چیدمان جدید متعهد می‌مانند. شروع این کار در یک هفته پرمشغله باعث می‌شود تحت فشار زمانی، بد تایپ کنید و این کار شما را عادت می‌دهد که به کلیدها نگاه کنید.

راه بازگشت به حالت قبل را پیش از آنکه به آن نیاز پیدا کنید تنظیم کنید؛ زیرا لحظه‌ای که دوباره به QWERTY نیاز خواهید داشت، همان لحظه‌ای است که چیزی خراب شده و کسی منتظر شماست.

نحوه بازگشت سریع به QWERTY

در X11، دستور setxkbmap us بلافاصله چیدمان را به QWERTY بازمی‌گرداند. در کنسول، دستور 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 به‌صورت پیش‌فرض بین آن‌ها جابه‌جا می‌شود.

دو درخواست رمز عبور خارج از نشست (session) دسکتاپ شما قرار دارند و نیاز به توجه جداگانه دارند. صفحه ورود (greeter) پیش از اعمال تنظیمات نشست شما اجرا می‌شود، بنابراین آن را با خروج از حساب کاربری (logout) تست کنید و به تنظیمات صرف اعتماد نکنید. اگر دیسک رمزنگاری شده باشد، درخواست رمز عبور از initramfs اجرا می‌شود که کپی مخصوص به خود را از keymap دارد. در Debian و Ubuntu، پس از تغییر /etc/default/keyboard، آن را با sudo update-initramfs -u بازسازی کنید و سپس یک بار سیستم را reboot کنید تا در حالی که هنوز راه دیگری برای دسترسی به دستگاه دارید، آن را تست کنید.

آیا می‌توانم یک برنامه را روی QWERTY نگه دارم؟

طرح‌بندی صفحه‌کلید پیش از آنکه برنامه کلید را دریافت کند، اعمال می‌شود. X server یا compositor، کد اسکن (scancode) را به یک کاراکتر تبدیل کرده و آن را تحویل می‌دهد؛ بنابراین برنامه نمی‌تواند درخواست طرح‌بندی متفاوتی داشته باشد. برنامه فقط می‌تواند آنچه دریافت می‌کند را بازنگاشت (remap) کند. به همین دلیل است که اصلاح Vim در فایل پیکربندی خودِ Vim قرار دارد و هیچ سوئیچ عمومی برای تغییر طرح‌بندی به ازای هر پنجره وجود ندارد.

دو رویکرد عملی وجود دارد. اولی به ازای هر دستگاه است. اگر تایپ QWERTY روی یک صفحه‌کلید جداگانه انجام می‌شود، طرح‌بندی را به‌جای سیستم، روی همان دستگاه تنظیم کنید:

xinput list
setxkbmap -device 12 -layout us

شناسه (id) را از xinput list بردارید و با تایپ کردن روی هر صفحه‌کلید به‌نوبت، آن را تأیید کنید. sway تنظیمات مشابه را برای هر شناسه ورودی از swaymsg -t get_inputs می‌پذیرد و انتخاب‌گر (selector) دقیق‌تر بر type:keyboard اولویت دارد.

رویکرد دوم، انجام بازنگاشت در داخل خود برنامه است، همان‌طور که langmap در Vim عمل می‌کند. بازی‌ها تقریباً همیشه یک صفحه برای تنظیم کلیدها (key binding) دارند و بازنگاشت کلیدهای حرکتی در آنجا، زمان کمتری نسبت به درگیری با طرح‌بندی از بیرون می‌برد. برای هر برنامه‌ای که هیچ‌کدام از این قابلیت‌ها را ندارد، سوئیچ طرح‌بندی را طبق دستور بالا تنظیم کنید و پیش از اجرا، آن را فشار دهید.

FAQ

آیا نیاز دارم Colemak را روی VPS خود تنظیم کنم؟

خیر، اگر از طریق SSH به آن متصل می‌شوید. SSH کاراکترها را منتقل می‌کند، بنابراین چیدمان کیبورد شما پیش از ارسال داده‌ها روی لپ‌تاپ‌تان پردازش می‌شود و سرور همان بایتی را دریافت می‌کند که از یک کاربر با کیبورد QWERTY دریافت می‌کرد. استثنا، کنسول مرورگر در پنل ارائه‌دهندهٔ خدمات شماست که به‌عنوان یک کیبورد به ماشین مجازی متصل می‌شود و از نقشهٔ کلیدهای کنسول خودِ سرور استفاده می‌کند. آن کنسول مسیر نجات شما در زمان خرابی 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 منتقل می‌شوند؛ بنابراین کلیدهای جهت‌نما در سه ردیف پخش می‌شوند. شما می‌توانید آن‌ها را در جای جدیدشان یاد بگیرید که باعث می‌شود تمام پلاگین‌ها و آموزش‌ها معتبر باقی بمانند، یا اینکه چهار کلید زیر دست راست خود را دوباره نگاشت (remap) کنید: h، n، e و i در Colemak، و m، n، e و i در Colemak-DH. گزینهٔ langmap در Vim همین کار را برای حالت normal انجام می‌دهد، هرچند این گزینه روی ترکیب‌های Ctrl اعمال نمی‌شود و ممکن است نگاشت‌های پلاگین‌ها را دچار اختلال کند.

چقدر طول می‌کشد تا به سرعت قبلی خود در تایپ برسم؟

انتظار هفته‌ها را داشته باشید، نه روزها؛ زیرا این موضوع مربوط به حافظهٔ حرکتی است و تنها راه پیشرفت، تمرین است. گزارش‌های تمرینی کاربران معمولاً نشان می‌دهد که در هفتهٔ اول سرعت بسیار کمتر از نصف سرعت قبلی است و بازگشت به سرعت اصلی پس از یک تا سه ماه استفادهٔ روزانه رخ می‌دهد. جابه‌جایی روزانه بین QWERTY و Colemak این روند را طولانی‌تر می‌کند، زیرا هیچ‌کدام از این دو واکنشِ حرکتی فرصت تثبیت پیدا نمی‌کنند.

چرا دستور setxkbmap روی دسکتاپ من هیچ تغییری ایجاد نکرد؟

تقریباً به این دلیل است که نشست (session) شما Wayland است. در Wayland، کامپوزیتور (compositor) مالک نقشهٔ کلیدهاست و آن را به هر برنامه تحمیل می‌کند؛ بنابراین setxkbmap یا نمی‌تواند نمایشگر را پیدا کند یا فقط XWayland را تغییر می‌دهد و برنامه‌های بومی (native) آن را نادیده می‌گیرند. چیدمان را در تنظیمات کامپوزیتور تغییر دهید: کلید gsettings با نام org.gnome.desktop.input-sources در GNOME، تنظیمات xkb_variant در فایل کانفیگ sway، یا صفحهٔ Layouts در System Settings محیط KDE Plasma.