ДИГИТАЛЕН СВЯТ

Регистрирайте безплатен акаунт днес, за да станете член! След като влезете, ще можете да участвате в този сайт, като добавяте свои собствени теми и публикации, както и да се свързвате с други членове чрез вашата лична пощенска кутия!

apple ⌨️ Bulgarian Phonetic Windows Style на Mac — Ч на § клавиша | .keylayout гайд [2026]

⌨️ Bulgarian Phonetic Windows Style на Mac
Ч на § клавиша · Собствен .keylayout файл · Стъпка по стъпка


Bulgarian Phonetic Windows Style на Mac.png


macOS-12--15-brightgreen
Клавиатура-Bulgarian_Phonetic-blue
Windows_Style-Ч_на_§-orange
DTGarage-Edition-red


⌨️Ч на § — като в Windows, но на Mac

За всички, които идват от Windows и им липсва § → ч


$ whoami

→ Тони Ангелчовски · sysadmin · macOS & Linux · dtgarage.eu



🎯Проблемът

Идваш от Windows. Знаеш клавиатурата наизуст. На Windows § клавишът (до Shift вляво) пише ч/Ч.

Купуваш Mac. Инсталираш Bulgarian Phonetic. Натискаш § и... нищо. Или излиза §. Или нещо странно.

Пръстите ти помнят Windows. Мозъкът те предава всеки път.


Решението: Собствен .keylayout файл — казваш на macOS точно какво да прави с всеки клавиш. Пишем го веднъж, работи завинаги.


🌐 Цялата macOS серия:

👉 aiflux.eu/macos-mastery



📚 СЪДЪРЖАНИЕ


⌨️ 1. Какво е .keylayout файл
⌨️ 2. Структурата на файла — обяснена
⌨️ 3. Пълният код — copy-paste ready
⌨️ 4. Инсталация стъпка по стъпка
⌨️ 5. Активиране в System Settings
⌨️ 6. Тест — проверяваш дали работи
⌨️ 7. Troubleshooting — ако не работи
⌨️ 8. Карта на клавишите




🟢 СЕКЦИЯ 1 — Теория



⌨️1. Какво е .keylayout файл

macOS използва XML файлове с разширение .keylayout за да знае какво да изведе при натискане на всеки клавиш. Всяка клавиатура — Bulgarian Phonetic, US, German — е такъв файл.

Системните файлове са в /System/Library/Keyboard Layouts/ — не ги пипаме.
Потребителските са в ~/Library/Keyboard Layouts/ — тук слагаме нашия.



ПапкаЗа когоПрава
~/Library/Keyboard Layouts/Само за текущия потребител✅ Без sudo
/Library/Keyboard Layouts/За всички потребители на Mac-а⚠️ Нужен sudo

💡 Препоръка: Слагай в ~/Library/Keyboard Layouts/ — без sudo, само за теб. Ако искаш за всички потребители на машината → /Library/Keyboard Layouts/ + sudo.



⌨️ 2. Структурата на файла — обяснена

Преди да видиш кода — разбери логиката. После всичко ще е ясно.

ЕлементКакво прави
<keyboard>Коренният елемент — id, name, group
<modifierMap>Дефинира модификаторите: normal, shift, caps, option
<keyMapSet>Съдържа всички keyMap-ове (по един за всяка комбинация)
<keyMap index="0">index 0 = нормален · 1 = Shift · 2 = Caps · 4 = Option
<key code="10" output="ч"/>code = физически клавиш · output = какво да пише

Key code 10 = физическият клавиш § на Apple клавиатура (до левия Shift). Независимо какво пише на него — code 10 е винаги той.



🟠 СЕКЦИЯ 2 — Кодът



⌨️ 3. Пълният .keylayout код

Запази като Bulgarian-Phonetic-Windows.keylayout

XML:
<?xml version="1.1" encoding="UTF-8"?>
<!DOCTYPE keyboard SYSTEM "file://localhost/System/Library/DTDs/KeyboardLayout.dtd">
<!--
  Bulgarian Phonetic Windows Style — DTGarage Edition
  Автор: Тони Ангелчовски | dtgarage.eu | aiflux.eu
  
  Разлика от стандартния Apple Bulgarian Phonetic:
  → Клавиш § (code 10, до Shift вляво) = ч / Ч
  → Всички останали клавиши = стандартен Bulgarian Phonetic (Windows стил)
  
  Инсталация:
  cp Bulgarian-Phonetic-Windows.keylayout ~/Library/Keyboard\ Layouts/
  Logout → Login → System Settings → Keyboard → Input Sources → Add
-->
<!--Last edited on 2026-02-27 at 20:53 (EET)-->
<keyboard group="126" id="-30008" name="Bulgarian Phonetic Windows DTGarage" maxout="1">
    <layouts>
        <layout first="0" last="17" mapSet="ANSI" modifiers="commonModifiers"/>
        <layout first="18" last="18" mapSet="ANSI" modifiers="commonModifiers"/>
        <layout first="21" last="23" mapSet="ANSI" modifiers="commonModifiers"/>
        <layout first="30" last="30" mapSet="ANSI" modifiers="commonModifiers"/>
    </layouts>
    <modifierMap id="commonModifiers" defaultIndex="0">
        <keyMapSelect mapIndex="0">
            <modifier keys=""/>
        </keyMapSelect>
        <keyMapSelect mapIndex="1">
            <modifier keys="anyShift"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="2">
            <modifier keys="caps"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="3">
            <modifier keys="anyShift caps"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="4">
            <modifier keys="anyOption"/>
        </keyMapSelect>
        <keyMapSelect mapIndex="5">
            <modifier keys="anyShift anyOption"/>
        </keyMapSelect>
    </modifierMap>
    <keyMapSet id="ANSI">
        <!-- ═══════════════════════════════════════════
         INDEX 0 — Normal (без модификатор)
    ═══════════════════════════════════════════ -->
        <!-- Действия за специални клавиши -->
        <keyMap index="0">
            <!-- § клавиш (до Shift вляво) → ч  ★ ГЛАВНАТА ПРОМЯНА ★ -->
            <!-- ═══════════════════════════════════════════
         INDEX 1 — Shift
    ═══════════════════════════════════════════ -->
            <key code="0" output="а"/>
            <!-- A → а -->
            <key code="1" output="с"/>
            <!-- S → с -->
            <key code="2" output="д"/>
            <!-- D → д -->
            <key code="3" output="ф"/>
            <!-- F → ф -->
            <key code="4" output="х"/>
            <!-- H → х -->
            <key code="5" output="г"/>
            <!-- G → г -->
            <key code="6" output="з"/>
            <!-- Z → з -->
            <key code="7" output="ь"/>
            <!-- X → ж -->
            <key code="8" output="ц"/>
            <!-- C → ц -->
            <key code="9" output="ж"/>
            <!-- V → б -->
            <key code="10" output="ч"/>
            <!-- Числов ред -->
            <key code="11" output="б"/>
            <!-- B → н -->
            <key code="12" output="я"/>
            <!-- Q → я -->
            <key code="13" output="в"/>
            <!-- W → в -->
            <key code="14" output="е"/>
            <!-- E → е -->
            <key code="15" output="р"/>
            <!-- R → р -->
            <key code="16" output="ъ"/>
            <!-- Y → ъ -->
            <key code="17" output="т"/>
            <!-- T → т -->
            <key code="18" output="1"/>
            <key code="19" output="2"/>
            <key code="20" output="3"/>
            <key code="21" output="4"/>
            <key code="22" output="6"/>
            <key code="23" output="5"/>
            <key code="24" output="="/>
            <key code="25" output="9"/>
            <!-- Горен ред QWERTY → Bulgarian Phonetic -->
            <key code="26" output="7"/>
            <key code="27" output="-"/>
            <key code="28" output="8"/>
            <key code="29" output="0"/>
            <key code="30" output="щ"/>
            <!-- ] → щ -->
            <!-- Среден ред ASDF -->
            <key code="31" output="о"/>
            <!-- O → о -->
            <key code="32" output="у"/>
            <!-- U → у -->
            <key code="33" output="ш"/>
            <!-- [ → ш -->
            <key code="34" output="и"/>
            <!-- I → и -->
            <key code="35" output="п"/>
            <!-- P → п -->
            <key code="36" action="return"/>
            <key code="37" output="л"/>
            <!-- L → л -->
            <key code="38" output="й"/>
            <!-- J → й -->
            <key code="39" output="&#x0027;"/>
            <!-- ' → ' -->
            <!-- Долен ред ZXCV -->
            <key code="40" output="к"/>
            <!-- K → к -->
            <key code="41" output=";"/>
            <!-- ; → ; -->
            <key code="42" output="ю"/>
            <!-- Специални -->
            <key code="43" output=","/>
            <!-- , → , -->
            <key code="44" output="/"/>
            <!-- / → / -->
            <!-- Backslash → ю -->
            <key code="45" output="н"/>
            <!-- N → м -->
            <key code="46" output="м"/>
            <!-- M → ь -->
            <key code="47" output="."/>
            <!-- . → . -->
            <key code="48" action="tab"/>
            <key code="49" output=" "/>
            <!-- Space -->
            <key code="50" output="`"/>
            <key code="51" action="delete"/>
            <key code="53" output="&#x001B;"/>
            <!-- Escape -->
            <!-- Пунктуация -->
            <key code="65" output=""/>
            <key code="67" output=""/>
            <key code="69" output=""/>
            <key code="71" output=""/>
            <key code="75" output=""/>
            <key code="76" output=""/>
            <key code="78" output=""/>
            <key code="81" output=""/>
            <key code="82" output=""/>
            <key code="83" output=""/>
            <key code="84" output=""/>
            <key code="85" output=""/>
            <key code="86" output=""/>
            <key code="87" output=""/>
            <key code="88" output=""/>
            <key code="89" output=""/>
            <key code="91" output=""/>
            <key code="92" output=""/>
            <key code="96" output=""/>
            <key code="97" output=""/>
            <key code="98" output=""/>
            <key code="99" output=""/>
            <key code="100" output=""/>
            <key code="101" output=""/>
            <key code="103" output=""/>
            <key code="105" output=""/>
            <key code="107" output=""/>
            <key code="109" output=""/>
            <key code="111" output=""/>
            <key code="113" output=""/>
            <key code="114" output=""/>
            <key code="115" output=""/>
            <key code="116" output=""/>
            <key code="117" output=""/>
            <key code="118" output=""/>
            <key code="119" output=""/>
            <key code="120" output=""/>
            <key code="121" output=""/>
            <key code="122" output=""/>
            <key code="123" output=""/>
            <key code="124" output=""/>
            <key code="125" output=""/>
            <key code="126" output=""/>
        </keyMap>
        <keyMap index="1">
            <!-- § + Shift → Ч  ★ ГЛАВНАТА ПРОМЯНА ★ -->
            <!-- ═══════════════════════════════════════════
         INDEX 2 — Caps Lock (главни без Shift)
    ═══════════════════════════════════════════ -->
            <key code="0" output="А"/>
            <key code="1" output="С"/>
            <key code="2" output="Д"/>
            <key code="3" output="Ф"/>
            <key code="4" output="Х"/>
            <key code="5" output="Г"/>
            <key code="6" output="З"/>
            <key code="7" output="Ь"/>
            <key code="8" output="Ц"/>
            <key code="9" output="Ж"/>
            <key code="10" output="Ч"/>
            <!-- Числов ред + Shift = символи -->
            <key code="11" output="Б"/>
            <key code="12" output="Я"/>
            <key code="13" output="В"/>
            <key code="14" output="Е"/>
            <key code="15" output="Р"/>
            <key code="16" output="Ъ"/>
            <key code="17" output="Т"/>
            <key code="18" output="!"/>
            <key code="19" output="@"/>
            <key code="20" output="#"/>
            <key code="21" output="$"/>
            <key code="22" output="^"/>
            <key code="23" output="%"/>
            <key code="24" output="+"/>
            <key code="25" output="("/>
            <!-- Горен ред + Shift = главни букви -->
            <key code="26" output="&#x0026;"/>
            <key code="27" output="_"/>
            <key code="28" output="*"/>
            <key code="29" output=")"/>
            <key code="30" output="Щ"/>
            <!-- Среден ред + Shift -->
            <key code="31" output="О"/>
            <key code="32" output="У"/>
            <key code="33" output="Ш"/>
            <key code="34" output="И"/>
            <key code="35" output="П"/>
            <key code="36" action="return"/>
            <key code="37" output="Л"/>
            <key code="38" output="Й"/>
            <key code="39" output="&#x0022;"/>
            <!-- Долен ред + Shift -->
            <key code="40" output="К"/>
            <key code="41" output=":"/>
            <key code="42" output="Ю"/>
            <!-- Пунктуация + Shift -->
            <key code="43" output="&#x003C;"/>
            <key code="44" output="?"/>
            <!-- Backslash + Shift → Ю -->
            <key code="45" output="Н"/>
            <key code="46" output="М"/>
            <key code="47" output="&#x003E;"/>
            <key code="48" action="tab"/>
            <key code="49" output=" "/>
            <key code="50" output="~"/>
            <!-- Специални -->
            <key code="51" action="delete"/>
            <key code="53" output="&#x001B;"/>
            <key code="65" output=""/>
            <key code="67" output=""/>
            <key code="69" output=""/>
            <key code="71" output=""/>
            <key code="75" output=""/>
            <key code="76" output=""/>
            <key code="78" output=""/>
            <key code="81" output=""/>
            <key code="82" output=""/>
            <key code="83" output=""/>
            <key code="84" output=""/>
            <key code="85" output=""/>
            <key code="86" output=""/>
            <key code="87" output=""/>
            <key code="88" output=""/>
            <key code="89" output=""/>
            <key code="91" output=""/>
            <key code="92" output=""/>
            <key code="96" output=""/>
            <key code="97" output=""/>
            <key code="98" output=""/>
            <key code="99" output=""/>
            <key code="100" output=""/>
            <key code="101" output=""/>
            <key code="103" output=""/>
            <key code="105" output=""/>
            <key code="107" output=""/>
            <key code="109" output=""/>
            <key code="111" output=""/>
            <key code="113" output=""/>
            <key code="114" output=""/>
            <key code="115" output=""/>
            <key code="116" output=""/>
            <key code="117" output=""/>
            <key code="118" output=""/>
            <key code="119" output=""/>
            <key code="120" output=""/>
            <key code="121" output=""/>
            <key code="122" output=""/>
            <key code="123" output=""/>
            <key code="124" output=""/>
            <key code="125" output=""/>
            <key code="126" output=""/>
        </keyMap>
        <keyMap index="2" baseMapSet="ANSI" baseIndex="1">
            <!-- Само буквите се обръщат, символите остават нормални -->
            <!-- ═══════════════════════════════════════════
         INDEX 3 — Caps Lock + Shift (малки с Caps)
    ═══════════════════════════════════════════ -->
            <key code="10" output="Ч"/>
        </keyMap>
        <keyMap index="3" baseMapSet="ANSI" baseIndex="0">
            <!-- ═══════════════════════════════════════════
         INDEX 4 — Option (специални символи)
    ═══════════════════════════════════════════ -->
            <key code="10" output="ч"/>
        </keyMap>
        <keyMap index="4">
            <!-- ═══════════════════════════════════════════
         INDEX 5 — Option + Shift
    ═══════════════════════════════════════════ -->
            <key code="10" output="§"/>
            <!-- Option + § → връща оригиналния § ако е нужен -->
            <key code="18" output="¡"/>
            <key code="19" output="™"/>
            <key code="20" output="£"/>
            <key code="21" output="¢"/>
            <key code="22" output="§"/>
            <key code="23" output="∞"/>
            <key code="24" output="≠"/>
            <key code="25" output="ª"/>
            <key code="26" output="¶"/>
            <key code="27" output="–"/>
            <key code="28" output="•"/>
            <key code="29" output="º"/>
            <key code="49" output=" "/>
            <!-- Стандартни Option символи -->
        </keyMap>
        <keyMap index="5">
            <key code="10" output="Ч"/>
            <key code="24" output="±"/>
            <key code="27" output="—"/>
            <key code="49" output=" "/>
        </keyMap>
    </keyMapSet>
    <actions>
        <action id="delete">
            <when state="none" output="&#x0008;"/>
        </action>
        <action id="return">
            <when state="none" output="&#x000D;"/>
        </action>
        <action id="tab">
            <when state="none" output="&#x0009;"/>
        </action>
    </actions>
</keyboard>




🔴 СЕКЦИЯ 3 — Инсталация



⌨️ 4. Инсталация стъпка по стъпка

СТЪПКА 1 — Запази файла
→ Копирай целия XML код по-горе
→ Отвори TextEdit → Format → Make Plain Text (задължително!)
→ Постни кода → File → Save
→ Запази като: Bulgarian-Phonetic-Windows.keylayout
→ Внимавай разширението да е .keylayout, не .txt!

⚠️ Важно за TextEdit: Задължително Format → Make Plain Text преди да запишеш. Rich Text (.rtf) ще счупи файла!

СТЪПКА 2 — Копирай в правилната папка

Bash:
# Създай папката ако не съществува
mkdir -p ~/Library/Keyboard\ Layouts

# Копирай файла (смени пътя ако си го запазил другаде)
cp ~/Desktop/Bulgarian-Phonetic-Windows.keylayout ~/Library/Keyboard\ Layouts/

# Провери дали е там
ls ~/Library/Keyboard\ Layouts/

Или за всички потребители на машината:

Bash:
sudo cp ~/Desktop/Bulgarian-Phonetic-Windows.keylayout /Library/Keyboard\ Layouts/

СТЪПКА 3 — Logout / Login

→ Apple Menu → Log Out
→ Влез обратно

Защо е нужно? macOS зарежда .keylayout файловете само при login. Без logout — layout-ът няма да се появи в списъка.



⌨️ 5. Активиране в System Settings

→ System Settings → KeyboardInput SourcesEdit...
→ Натисни „+" долу вляво
→ В търсачката напиши „DTGarage" или „Bulgarian Phonetic Windows"
→ Ще видиш: Bulgarian Phonetic Windows DTGarage
Add → затвори прозореца

Превключване: Кликни на езиковата иконка в Menu Bar → избери Bulgarian Phonetic Windows DTGarage



⌨️ 6. Тест — проверяваш дали работи

Отвори TextEdit или Notes и тествай:

НатискашТрябва да пишеАко пише друго → виж Troubleshooting
§ (клавиша до Shift)чПровери дали правилният layout е активен
Shift + §ЧПроверка на Shift mapping
Option + §§Оригиналният символ е запазен с Option
A, S, D, F...а, с, д, ф...Пълен Bulgarian Phonetic работи
Option + Shift + -— (em dash)Бонус: дълго тире




⌨️ 7. Troubleshooting — ако не работи

ПроблемПричинаРешение
Layout не се появява в списъкаНе е направен Logout/LoginApple Menu → Log Out → влез отново
§ пак пише § или нищоАктивиран е стар Bulgarian Phonetic, не нашияПровери Menu Bar — трябва "DTGarage" layout
Файлът не се появяваЗапазен като .txt или Rich TextTextEdit → Format → Make Plain Text → запази пак като .keylayout
XML грешка при зарежданеКопиран е непълно или с extra символиИзтрий файла, копирай кода отново от нулата
Работи само за текущия потребителФайлът е в ~/Library, не в /Librarysudo cp към /Library/Keyboard Layouts/



⌨️ 8. Карта на клавишите

Bulgarian Phonetic Windows DTGarage — Normal режим:

КлавишИзвеждаКлавишИзвеждаКлавишИзвежда
§ч ★QяWв
EеRрTт
YъUуIи
OоPп[ш
]щAаSс
DдFфGг
HхJйKк
LлZзXж
CцVбBн
NмMь\ю



🌐 Цялата macOS серия:

👉 aiflux.eu/macos-mastery


Terminal · Finder · Battery · Shortcuts · Sequoia · Български · .keylayout



👤 За Автора
Тони Ангелчовски

Sysadmin · macOS & Linux · Основател на dtgarage.eu

🌐 dtgarage.eu · 🤖 aiflux.eu · 📖 macOS серия · 🧠 toni.angelchovski.com



Работи ли при теб? 👍 Остави реакция!

💬 Имаш ли друг клавиш, който искаш да ремапнеш? Пиши — помагам!


🖋️ Автор: Тони Ангелчовски | Ексклузивно за DTGaraGe
🔒 Копирането без разрешение не е позволено
☕ Подкрепи проекта
 
Last edited:
Клавиатурните файлове на macOS не прощават хаос.

Ти не искаш да се бориш с машината. Искаш да командваш.

.keylayout е твоята карта. Тя казва на системата:
„Тук е § — там е ч.“

XML-ът е просто езикът, с който шептиш на macOS.

Поставяш файла в ~/Library/Keyboard Layouts/ — без да скубеш корените.

След това активираш, рестартираш, проверяваш.

Всяка клавиша има своя код и функция.
Разбираш ги, променяш ги — и машината става твоя.

Това е истинската свобода — контролът над най-малкия детайл.

Дай ми, ако искаш, готов файл или да го сглобим заедно.
Няма място за глупости тук. Само стоманена прецизност.
 
Top Bottom
🛡️ Този сайт използва аналитични инструменти за подобряване на потребителското изживяване. Никакви лични данни не се събират. С продължаването си в Потока приемаш тази философия на прозрачност и уважение.