fbpx

[QMK] 如何做表情圖示鍵盤

使用 QMK 的鍵盤可以製作自己的表情圖示鍵盤,你可以透過自訂按鍵的方式來直接按出 ???? 這樣的圖示喔,我們就來看看怎麼做吧!

先來看看影片

您可以透過 QMK Configurator 來線上編輯自訂鍵盤,但是因為還是需要寫一小段程式碼才能使用圖示。所以建議你使用 QMK CLI 的方式來編輯與燒錄。

我們使用 Dumbpad 來示範如何做一個表情鍵盤,請注意,可以使用 QMK 系統的鍵盤都可以建立自己的表情小圖示喔:

如何製作圖示小鍵盤

安裝 QMK 韌體

請先下載 QMK 韌體,並安裝在自己的電腦上,請參考,我們的線上文件

編輯 rules.mk/keymap.c

找到你鍵盤的 rules.mk 與 keymap.c,如果你不知道放在哪裡,請參考這裡

設定 rules.mk

如果你的設定檔資料夾中沒有 rules.mk,請直接建立一個新的即可,文字檔格式,並加入這一行:

UNICODEMAP_ENABLE = yes

作業系統

因為目前每個作業系統的規格不同,所以無法跨 OS 使用,在燒錄韌體之前,你必須指定要使用那一種作業系統,這是目前支援的:

  • UC_LNX:Linux 系統的使用者。
  • UC_OSX:MacOS 的用戶需要開啟系統設定,請參閱 官方文件
  • UC_WIN:Windows,不建議使用,需修改註冊檔,請參閱 官方文件
  • UC_WINC:在 Windows 使用 WinCompose 來輸入圖示,需安裝軟體,Windows 使用者建議下載並使用此選項。

編輯 keymap.c

接下來,請編輯 keymap.c,在 keymap.c 中有三個固定的函式 unicode_mapkeymaps[]matrix_init_user(void)。名稱都是固定的,只要修改內容即可:

matrix_init_user(void)

matrix_init_user(void) 就是設定你的作業系統,Windows 系統的話範例如下:

void matrix_init_user(void) {
    set_unicode_input_mode(UC_WINC);
}

unicode_map[]

unicode_map 就是宣告你要用那些表情圖示,你可以在 這裡 找到表情圖示的 unicode 代碼,例如愛心的代碼是 U+2764,前面 U+ 改成 0x,用 0 從前面部補滿 5 位就可以了。U+2764 => 0x02764

Image 22
Heart Codepoint

unicode_map 範例如下:

const uint32_t PROGMEM unicode_map[]=
{
    0x02764,
    0x02764,
    0x1f42F,
    0x1f498,
    0x1f44D,
    (向下新增)
};

keymaps[]

最後是 keymaps[],就是按鍵的 KeyCode,整個 keymap.c 的範例如下:


const uint32_t PROGMEM unicode_map[] = {
    0x02764,
    0x1f42F,
    0x1f498,
    0x1f44D
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  /*
        BASE LAYER
   /-----------------------------------------------------`
   |             |    7    |    8    |    9    |  Bkspc  |
   |             |---------|---------|---------|---------|
   |             |    4    |    5    |    6    |   Esc   |
   |             |---------|---------|---------|---------|
   |             |    1    |    2    |    3    |   Tab   |
   |-------------|---------|---------|---------|---------|
   | Left mouse  | TT(SUB) |    0    |    .    |  Enter  |
   \-----------------------------------------------------'
  */
  [_BASE] = LAYOUT(
                   TT(_SUB),  KC_PSLS, KC_PAST,  KC_PPLS,
                   KC_4,      KC_5,    KC_6,     KC_PMNS,
                   KC_4,      KC_5,    KC_6,     KC_DOT
    KC_BTN1,       KC_1,      KC_2,    KC_3,     KC_0
  ),

  [_SUB] = LAYOUT(
                 _______,     _______,     _______,      RESET,
                 _______,     _______,     _______,      KC_KP_PLUS,
                 _______,     _______,     _______,      KC_KP_MINUS,
    KC_LOCK,     X(0),       X(1),         X(2),         X(3)
  ),
};

void matrix_init_user(void) {
    set_unicode_input_mode(UC_WINC);
}

FAQ

亂碼

如果你的的作業系統顯示亂碼,有可能是你的設定沒有完成。請詳閱本章節作業系統的說明。另外您可以前往 https://getemoji.com/ 如果你看到的是亂碼的畫面,就表示你的作業系統太舊了,不支援表情圖示。

Image 23
Image 23
Show CommentsClose Comments

Leave a comment