1. 程式人生 > >讓 Caps Lock 鍵變得實用

讓 Caps Lock 鍵變得實用

http://eamesliu.com/post/101419356939/caps-lock-key-to-hyper

在這之前我有將 Caps Lock 鍵改為 Control 鍵使用了一段時間。一是因為 Caps Lock 鍵我使用的次數很少,完全可以用 Shift 鍵代替其作用。二是因為 Control 鍵在鍵盤上的位置不太好按。1 所以將 Control 鍵改在 Caps Lock 鍵的位置,用左手小指就可以輕鬆按到,並且左手可以保持不離開鍵盤主區域。同時也可以利用 Control 加其它鍵位形成比較容易按到的快捷鍵。

不過今天看了 Brett Terpstra 的這篇文章和 Steve Losh 的

這篇文章後,我決定嘗試一下他們的用法。

Steve 將按鍵分為三種類型:

  • 一種是按下去之後會改變其它按鍵的狀態,但是隻按下它們自己通常不會起任何作用,比如 Shift、Control。
  • 第二種按鍵是你按下之後釋放,它自己就會形成一定功能,但是你通常不會按住它來重複它的功能,比如 Esc。
  • 第三種按鍵是你有時候只會按一下,有時候需要重複按(或按住),比如按住空格鍵會輸出一連串空格,按住 Delete 鍵就會就會刪除一連串文字。

明顯前兩種按鍵有截然不同的使用方式,並且只作用在它們自己的使用方式。所以 Steve 的思路是將這兩種按鍵結合成一個按鍵,並且不會丟失它們自己的功能。

他將 Caps Lock 鍵改為按一下是 Esc ,按住不放為 Control + Option + Command + Shift 的組合鍵,並稱這個新的 Caps Lock 鍵為 Hyper 鍵。

前面有提到我將 Control 鍵改到 Caps Lock 位置,但是經過一段時間的使用後我發現自己對 Control 鍵本身的使用頻率並不高,所以改為使用頻率更高的 Esc 鍵或許更好。2 還有我對這個鍵位更多的使用是和其它按鍵形成快捷鍵,比如 Control(Caps Lock 位置)-IKJL 為游標上下左右移動。Hyper 鍵比 Control 更好的地方在於它不容易與其它快捷鍵衝突,所以我決定嘗試他們的用法。

首先你需要到系統偏好設定裡將 Caps Lock 鍵改為「No Action」。

Caps Lock to No Action

然後下載 Seil(原 PCKeyboardHack),將 Caps Lock 鍵的 keycode 改為「80」。Keycode 80 也就是 F19 鍵,但是我們鍵盤上一般沒有這個鍵,所以不用擔心會衝突。

Seil

接下來下載 Karabiner(原 KeyRemap4MacBook),在「Misc & Uninstall」中點選「Open private.xml」,會彈出來一個文件。

Karabiner

開啟該文件,將下面的程式碼替換進去:

<?xml version="1.0"?>
<root>
<item>
<name>F19 to F19</name>
<appendix>(F19 to Hyper (ctrl+shift+cmd+opt) + F19 Only, send escape)</appendix>
<identifier>private.f192f19_escape</identifier>
<autogen>
--KeyOverlaidModifier--
KeyCode::F19,
KeyCode::COMMAND_L,
ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::ESCAPE
</autogen>
</item>
<item>
<name>Hyper K to Down</name>
<appendix>(Hyper-K to Down arrow)</appendix>
<identifier>private.hyper-k-down</identifier>
<autogen>
--KeyToKey--
KeyCode::K,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_DOWN
</autogen>
</item>
<item>
<name>Hyper I to Up</name>
<appendix>(Hyper-I to Up arrow)</appendix>
<identifier>private.hyper-i-up</identifier>
<autogen>
--KeyToKey--
KeyCode::I,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_UP
</autogen>
</item>
<item>
<name>Hyper J to Left</name>
<appendix>(Hyper-J to Left arrow)</appendix>
<identifier>private.hyper-j-left</identifier>
<autogen>
--KeyToKey--
KeyCode::J,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_LEFT
</autogen>
</item>
<item>
<name>Hyper L to Right</name>
<appendix>(Hyper-L to Right arrow)</appendix>
<identifier>private.hyper-l-right</identifier>
<autogen>
--KeyToKey--
KeyCode::L,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_RIGHT
</autogen>
</item>
<item>
<name>Hyper H to Beginning of Line</name>
<appendix>(Hyper-H to Beginning of Line)</appendix>
<identifier>private.hyper-h-beginning-of-line</identifier>
<autogen>
--KeyToKey--
KeyCode::H,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_LEFT,
ModifierFlag::COMMAND_L
</autogen>
</item>
<item>
<name>Hyper ; to End of Line</name>
<appendix>(Hyper-; to End of Line)</appendix>
<identifier>private.hyper-;-end-of-line</identifier>
<autogen>
--KeyToKey--
KeyCode::SEMICOLON,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_RIGHT,
ModifierFlag::COMMAND_L
</autogen>
</item>
<item>
<name>Hyper U to Top</name>
<appendix>(Hyper-U to Top)</appendix>
<identifier>private.hyper-u-top</identifier>
<autogen>
--KeyToKey--
KeyCode::U,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_UP,
ModifierFlag::COMMAND_L
</autogen>
</item>
<item>
<name>Hyper M to Bottom</name>
<appendix>(Hyper-M to Bottom)</appendix>
<identifier>private.hyper-m-bottom</identifier>
<autogen>
--KeyToKey--
KeyCode::M,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_DOWN,
ModifierFlag::COMMAND_L
</autogen>
</item>
<item>
<name>Disable Sysdiagnose DOT Key</name>
<appendix>Disable Sysdiagnose DOT Key</appendix>
<identifier>private.disable_sysdiagnose_dot_key</identifier>
<autogen>
--KeyToKey--
KeyCode::DOT,
ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_L,
KeyCode::VK_NONE
</autogen>
</item>
<item>
<name>Disable Sysdiagnose COMMA Key</name>
<appendix>Disable Sysdiagnose COMMA Key</appendix>
<identifier>private.disable_sysdiagnose_comma_key</identifier>
<autogen>
--KeyToKey--
KeyCode::COMMA,
ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_L,
KeyCode::VK_NONE
</autogen>
</item>
<item>
<name>Disable Sysdiagnose Foward Slash Key</name>
<appendix>Disable Sysdiagnose FORWARD SLASH Key</appendix>
<identifier>private.disable_sysdiagnose_forward_slash</identifier>
<autogen>
--KeyToKey--
KeyCode::SLASH,
ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_L,
KeyCode::VK_NONE
</autogen>
</item>
</root>
<root>
<inputsourcedef>
<name>MY_keylayout_zh_Hans</name>
<inputsourceid_prefix>com.apple.inputmethod.SCIM.ITABC</inputsourceid_prefix>
</inputsourcedef>
<item>
<name>Markdown</name>
<identifier>private.quick_dotOfEnglish</identifier>
<inputsource_only>MY_keylayout_zh_Hans</inputsource_only>
<!--<uielementrole_only>AXTextArea, AXTextField</uielementrole_only>-->
<!-- ` -->
<autogen>__KeyToKey__
KeyCode::BACKQUOTE,
KeyCode::CAPSLOCK,
KeyCode::BACKQUOTE,
KeyCode::CAPSLOCK,
</autogen>
<!-- - -->
<autogen>__KeyToKey__
KeyCode::MINUS,
KeyCode::CAPSLOCK,
KeyCode::MINUS,
KeyCode::CAPSLOCK,
</autogen>
<!-- # -->
<autogen>__KeyToKey__
KeyCode::KEY_3, ModifierFlag::SHIFT_R,
KeyCode::CAPSLOCK,
KeyCode::KEY_3, ModifierFlag::SHIFT_R,
KeyCode::CAPSLOCK,
</autogen>

相關推薦

Caps Lock 實用

http://eamesliu.com/post/101419356939/caps-lock-key-to-hyper 在這之前我有將 Caps Lock 鍵改為 Control 鍵使用了一段時間。一是因為 Caps Lock 鍵我使用的次數很少,完全可以用 Shift

Django運維後臺的搭建之四:用bootstrap模板運維前臺更漂亮

html django bootstrap 靜態資源 我對於PHP和ajax是屬於二把刀的水平,所以做網頁前端肯定是比上天還難,但是我又想把網頁做的漂亮可愛,怎麽辦呢?我就只好去download別人的模板,在這裏我使用了bootstrap框架做的模板。各位可以去https://wrapboot

寫代碼,你的聲音高亢

end mp3 %d 為什麽 decode fop 除了 rcc extern 小白:我是標準的男中音,唱“李香蘭”不輸張學友,為什麽我要變成女高音? 本文介紹,如何修改音頻數據,控制音頻的節奏、速率或音調。 大概的思路是這樣的,先解碼音頻,得到pcm數據,再通過soun

看京東系統架構師如何笨重的架構靈巧

adc 積木 影響 就是 字段 兩個 .com 秒殺系統 表拆分 作者:徐賢軍,京東系統架構師,從事架構設計與開發工作,熟悉各種開源軟件架構。在Web開發、架構優化上有較豐富實戰經歷。 隨著業務的復雜性增大、系統吞吐量增長,所有功能統一部署難度加大,各個功能模塊相互影響,使

EchoSite---內網穿透簡單

來到EchoSite官網註冊的都可以獲得三個月免費的域名,續費也就五塊一個月。 下面介紹下方法 (1)、首先你需要拿到你自己的域名,在我的域名裡就能看到了:  (2)、下載客戶端和配置檔案。 (3)、把客戶端執行檔案和配置檔案放到同一個目錄下,然後編輯你的配置檔案(e

Console命令詳解,除錯js程式碼更簡單

Firebug是網頁開發的利器,能夠極大地提升工作效率。 但是,它不太容易上手。我曾經翻譯過一篇《Firebug入門指南》,介紹了一些基本用法。今天,繼續介紹它的高階用法。 =================================== Firebug控制檯詳

oepngl學習筆記——p(l)ycool~(光照)

上一講我們大致講了如何繪製ply。但是這還不夠,你得到的東西看起來就像是一個顏色塊。這是因為這個世界沒有光,我們要加上光照的效果。為此,我們在Init函式裡這樣設定 glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); 這樣我們開啟了光照功能,並啟動了light

Splunk for Industrial IoT物聯網資料可操作

Splunk首個物聯網解決方案通過擴充套件對連線裝置的資料訪問許可權,幫助工業企業降低成本並提高績效 中國,北京--(美國商業資訊)--致力於將資料轉化為行動和價值的Splunk公司(NASDAQ:SPLK)今天宣佈全面推出Splunk的首個物聯網(IoT)解決方案,即Sp

安卓開發很簡單——Lombok,lambda,Instant run

今天開始介紹專案中的一些奇淫技巧,幫助安卓開發者更快更方便的開發! 1.騷年技巧一之Lombok Lombok簡介   Lombok是一個可以通過簡單的註解形式來幫助我們簡化消除一些必須有但顯得很臃腫的Java程式碼的工具,通過使用對應的註解,可以

Cygwinwindows運維更簡單

Cygwin簡介 從使用角度來看:Cygwin就是一個windows軟體,該軟體就是在windows上模擬linux作業系統。簡言之,cygwin是一個在windows平臺上執行的 linux模擬環境,使用一個Dll(動態連結庫)來實現,這樣,我們可以開發出Cygwin下的UNIX工具,使用這個DL

雲端計算大資料分析更簡單、快捷

網際網路、雲端計算以及大資料,如今成了三個密不可分的詞彙。一般而言,一家網際網路公司一定同時是資料公司,反之,不能從資料中獲取利益的網際網路公司一定不是一個好的雲端計算應用者。更進一步,挖掘資料價值很多企業都會做,但如果不能用最低成本得到資料價值,企業同樣活不下去。把資料以低

電腦鍵盤的Caps Lock被鎖定,取消不了

    今天在使用電腦的時候,來回切換大小寫時切換不了,Caps Lock 燈亮,按了好久都關閉不了,以為是鍵盤出了問題呢,後面查找了些資料,原來是輸入法設定問題。     1.在Windows的“開始”選單中,單擊“控制面板”,然後雙擊並開啟“區域和語言選項”對話方塊。

GitHub 專案推薦:用深度學習你的照片美麗

在挑選手機時,手機攝像頭往往是我們考慮的重要因素之一,但目前很多手機拍出來的照片效果不盡如人意。如何用深度學習的方法美化照片? George Seif 發表了一篇文章,是關於如何自動增強低質量相機拍攝的照片,大家快來實戰吧~ 照相是一項很棒的技術。它讓我們能夠儲存自己的記憶,當看到照片中的景色時,我們可

Google Guava中Preconditions的用法,前置條件判斷更優雅

這幾天看Fresco和Glide的程式碼,發現他們都使用了Preconditions來做前置判斷條件,發現這樣寫,程式碼變得既優雅又容易除錯。 Preconditions的用法 OK,先看看平常寫程式碼我們是怎麼做的引數判斷。 判斷引數,如果引數配置錯

Bugtags, 移動應用測試更輕鬆

提醒:本文最後更新於 1242 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 經常關注我部落格的同學可能會發現,我的部落格文章從來沒有涉及到我所負責的專案、內部工作流程或配套工具。因為專案中遇到的很多問題和對應的解決方案都是基於一定條件所產生,並不具有普適性。內部的工作流程和配套工具也是一樣,

程式碼之美-自己的程式碼幽默

讓自己的程式碼變得幽默,讓別人不再尷尬。 程式碼應該易於理解 這段程式碼太生動了。我經常會寫出下面的程式碼。以後如果再寫出這樣的程式碼來。必須重改。 減少程式碼行數是一個好目標,但是把理解程式碼所需的時間最小化是一個更好的目標。 要經常的

【Android遊戲開發二十】物理遊戲之重力系統開發,你的遊戲有質有量!

原創,轉載務必在明顯處註明:    今天群裡一哥哥說急需關於物理遊戲方面的資料,so~下午就隨手寫了一個簡單的圓形自由落體Demo,正好一起分享給大家學習下吧;    先大概說一下,之前的文章中,給大家介紹過重力感測器,那麼和今天要說的重力系統,其實是一樣的!    在重力感

Android安全防護之旅---只需要這幾行程式碼Android程式專案更加安全

我們在編碼美麗微信公眾號已經弄過了很多app了,不管是協議還是外掛,我們都是那麼一路走過來了,在操作的過程中也發現了很多問題就是應用不在乎安全問題帶來的後果,因為安全始終都是不可忽視的問題,辛辛苦苦寫的程式碼被人看的體無完膚對不起自己也對不起公司,所以如果你做了這幾件事至少可

如何excel檔案讀取更簡單

今天給大家安利一款excel檔案匯入神器,easyexcel,官方地址:(https://github.com/alibaba/easyexcel)。 在官網文件中有介紹了其效能。 從上面的效能測試可以看出easyexcel在解析耗時上比poiuserModel模式弱了一些。主要原因是我內部採

API並行呼叫如絲般順滑的絕招

當資料量較大的時候,都會通過分庫分表來拆分,分擔讀寫的壓力。分庫分表後比較麻煩的就是查詢的問題,如果不是直接根據分片鍵去查詢的話,需要對多個表進行查詢。 在一些複雜的業務場景下,比如訂單搜尋,除了訂單號,使用者,商家 這些常用的搜尋條件,可能還有時間,商品等等。 目前常見的做法將資料同步到ES這類搜尋框架