์๋ , ๋๋ฃ๋ค!
์ ๋ชฉ์ ํ์๋ ๋ฌธ์ ์ ๋ํ ์ ํด๊ฒฐ์ฑ
์ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. ์ ๋ ๋๋ฃ์ ์๊ฐ์ ๋ฐ์ ์ด ๊ธ์ ์ฐ๊ฒ ๋์์ต๋๋ค. ๊ฒ์ผ๋ฅด์ง ์๊ณ ๋ฌธ์ ์ ๋ํ ๋ถ๋ถ์ ์ธ (๋์๊ฒ) ํด๊ฒฐ์ฑ
์ ์ ์ํด ์ค ์ฌ๋. ์ ๋ ์ ๊ฒ ๋์์ด ๋๋ "์งํก์ด"๋ฅผ ์ง์ ๋ง๋ค์์ต๋๋ค. ์ ๋ ์ฌ๋ฌ๋ถ๊ณผ ๊ณต์ ํ๊ณ ์์ด์.
๋ฌธ์ ์ ๋ํ ์ค๋ช
ะัะฟะพะปัะทะพะฒะฐะป Ubuntu 18.04 ะดะปั ัะฐะฑะพัั ะธ ะฒ ะฟะพัะปะตะดะฝะตะต ะฒัะตะผั ะทะฐะผะตัะธะป, ััะพ ะฟัะธ ะฟะตัะตะบะปััะตะฝะธะธ ัะฐัะบะปะฐะดะบะธ ะฟะพ alt+shift ะฒ ัะฐะบะธั ะฟัะธะปะพะถะตะฝะธัั , ะบะฐะบ Visual Studio Code, Skype, Slack ะธ ะฟัะพัะธั , ะบะพัะพััะต ัะพะทะดะฐะฝั ั ะฟะพะผะพััั Electron ะฒะพะทะฝะธะบะฐะตั ัะปะตะดัััะฐั ะฟัะพะฑะปะตะผะฐ: ัะพะบัั ั ะฟะพะปั ะฒะฒะพะดะฐ, ะฟะตัะตั ะพะดะธั ะบ ะฒะตัั ะฝะตะน ะฟะฐะฝะตะปะธ ะพะบะฝะฐ (ะผะตะฝั). ะะพ ะธะฝัะผ ะฟัะธัะธะฝะฐะผ ะฟะตัะตะตั ะฐะป ะฒ Fedora + KDE ะธ ะฟะพะฝัะป, ััะพ ะฟัะพะฑะปะตะผะฐ ะฝะธะบัะดะฐ ะฝะต ะดะตะปะฐัั. ะ ะฟะพะธัะบะฐั ัะตัะตะฝะธั ะฝะฐััะป ะทะฐะผะตัะฐัะตะปัะฝัั ััะฐััั . ๋ด ์น๊ตฌ์๊ฒ ๋ง์ ๊ฐ์ฌ๋ฅผ ํํฉ๋๋ค ๋ฌธ์ ์ ๋ํด ์์ธํ ์ด์ผ๊ธฐํ๊ณ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ณต์ ํ ์ฌ๋์ ๋๋ค. ํ์ง๋ง ํด๋น ๊ธฐ์ฌ์ ๋์ ์๋ ๋ฐฉ๋ฒ์ Skype๋ผ๋ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. Visual Studio Code๋ฅผ ์ดํดํ๋ ๊ฒ๋ ์ค์ํ์ต๋๋ค. ์ ํ ๋ฉ๋ด๊ฐ ์๋ ๋ฉ์์ง๋ฅผ ์ฐ๋ ๊ฑด ๊ท์ฐฎ์ ์ผ์ด์ง๋ง, ๊ฐ๋ฐ์ ํ๋ ์ฌ๋์ด๋ผ๋ฉด ๊ทธ๋ ์ง ์์ต๋๋ค. ๊ฒ๋ค๊ฐ ํ ๋๋ฃ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ฉ๋ด๊ฐ ์์ ํ ์ฌ๋ผ์ง๋ ์๋ฃจ์ ์ ์ ์ํ๋๋ฐ, VS Code์์ ๋ฉ๋ด๋ฅผ ์๊ณ ์ถ์ง๋ ์์ต๋๋ค.
๋๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ๋ ค๊ณ ๋ ธ๋ ฅํ๋ค
๊ทธ๋์ ์ ๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์์๋ณด๊ธฐ ์ํด ์๊ฐ์ ๋ด๊ธฐ๋ก ํ์ต๋๋ค. ์ด์ ์ ๊ฐ ๊ฑธ์ด์จ ๊ธธ์ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ๊ฒ ์ต๋๋ค. ์๋ง๋ ์ด ๋ฌธ์ ์ ๋ํด ๋ ์ ์๋ ๋ถ์ด ๊ณ์๋ค๋ฉด ์ ๊ฐ ๊ฒช์ ์ด๋ ค์์ ์ค๋ช ํด ์ฃผ์ค ์ ์์ ๊ฒ์ ๋๋ค.
Visual Studio Code๋ฅผ ์ด๊ณ Alt+<%something%> ์กฐํฉ์ ๋ค์ํ๊ฒ ๋๋ฌ๋ณด๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ํ๋ ๋ชจ์ต์ ์ดํด๋ณด์์ต๋๋ค. ๊ฑฐ์ ๋ชจ๋ ๊ฒฝ์ฐ์์ Alt+Shift๋ฅผ ์ ์ธํ ๋ชจ๋ ์กฐํฉ์ ํฌ์ปค์ค๋ฅผ ์์ง ์๊ณ ์๋ํ์ต๋๋ค. ๋ง์น ๋๊ตฐ๊ฐ๊ฐ Alt ํค๋ฅผ ๋๋ฅธ ์ฑ๋ก ๋๋ฆฐ Shift ํค๋ฅผ ๋จน์ด์น์ฐ๋ ๊ฒ ๊ฐ์๊ณ , ์ฑ์ ๋ด๊ฐ Alt ํค๋ฅผ ๋๋ ๋ค๊ณ ์๊ฐํ ๋ค์ ์๋ฌด๊ฒ๋ ๋๋ฅด์ง ์๊ณ Alt ํค๋ฅผ ๋์ ๋ค์ ๋ด ํฌ์ปค์ค๋ฅผ ๊ธฐ๊บผ์ด ๋ฉ๋ด๋ก ๋๋ ธ๋๋ฐ, ์ฑ์๊ฒ๋ ๊ฝค ๋ ผ๋ฆฌ์ ์ธ ๊ฒ ๊ฐ์์ต๋๋ค.
ํค๋ณด๋ ๋ ์ด์์ ์ ํ ์ค์ (์ฒดํฌ๋ฐ์ค์ ํค์ ๋ํ ์จ๊ฐ ์ค์ ์ด ์๋ ๊ธด ๋ชฉ๋ก)์ ์ด๊ณ ์ถ๊ฐ ํด๋ฆญ ์์ด ๋ ์ด์์ ์ ํ์ Alt ๋ฒํผ์ผ๋ก ์ค์ ํ์ต๋๋ค.

๊ทธ ์ดํ๋ก Alt+Tab์ ๋๋ฌ ์ฐฝ์ ์ ํํ ์ ์๊ฒ ๋์์ต๋๋ค. Tab๋ง ์๋ํ๋ค๋ ๊ฒ์ ๋๊ตฐ๊ฐ๊ฐ ๋ด Alt ํค๋ฅผ ๋ "๋จน์ด์น์ด" ์
์
๋๋ค. ์ด "๋๊ตฐ๊ฐ"๊ฐ ๋๊ตฌ์ธ์ง์ ๋ํ ์๋ฌธ์ ๋ ์ด์ ์์์ง๋ง, ๊ทธ์๊ฒ ๋ฌด์์ ํด์ผ ํ ์ง ์ ํ ์ ์ ์์์ต๋๋ค.
ํ์ง๋ง ์ด๋ป๊ฒ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ํด๊ฒฐ์ฑ ์ด ๋ ์ฌ๋์ต๋๋ค.
- ์ค์ ์์ ํค๋ณด๋ ๋ ์ด์์์ ์ ํํ๋ ๋จ์ถํค๋ฅผ ๋นํ์ฑํํฉ๋๋ค(๋ค๋ฅธ ๋ ์ด์์์ผ๋ก ์ ํ ์น์ ์ ๋ชจ๋ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํ ์ทจ์ํฉ๋๋ค).
- ๋ด ๋ ์ด์์์ ์ ํํ ๋๋ง์ ๋จ์ถํค๋ฅผ ๋ง๋ค์ด ๋ณด์ธ์
์๋ฃจ์ ์ค๋ช
๋จผ์ , Xbindkeys ํค์ ๋ช ๋ น์ ํ ๋นํ ์ ์๋ ํ๋ก๊ทธ๋จ์ ์ค์นํด ๋ณด๊ฒ ์ต๋๋ค. ์ํ๊น๊ฒ๋ ํ์ค ๋๊ตฌ๋ก๋ ์๋ฆ๋ค์ด ์ธํฐํ์ด์ค๋ฅผ ํตํด Alt+Shift์ ๊ฐ์ ์กฐํฉ์ ๋ํ ๋จ์ถํค๋ฅผ ๋ง๋ค ์ ์์์ต๋๋ค. Alt+S, Alt+1, Alt+shift+Y ๋ฑ๋ฑ์ผ๋ก ํ ์ ์์ง๋ง, ์ฐ๋ฆฌ์ ์์ ์๋ ์ ํฉํ์ง ์์ต๋๋ค.
sudo dnf install xbindkeysrc ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค.
๋ค์์ผ๋ก, ํ๋ก๊ทธ๋จ์ ๋ํ ์ํ ์ค์ ํ์ผ์ ์์ฑํ๊ฒ ์ต๋๋ค. ์ํ์ ๋งค์ฐ ์งง๊ณ , ๋ช ๊ฐ์ง ๋ช
๋ น๋ง ์์ด์ ์ํ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ํ์
ํ๋ ๋ฐ ํ์ํ ๋ด์ฉ๋ง ๋ด๊ฒจ ์์ต๋๋ค.
xbindkeys -d > ~/.xbindkeysrcํ์ผ์ ์์์ ๋ณผ ์ ์๋ฏ์ด, ์ฌ์ฉํ๊ณ ์ถ์ ๋จ์ถํค์ ์คํํด์ผ ํ ๋ช ๋ น์ ์ง์ ํด์ผ ํฉ๋๋ค. ๊ฐ๋จํด ๋ณด์ด๋ค์.
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
์ฌ๋์ด ์ฝ์ ์ ์๋ ์ฒ ์๋ ํค ์ฝ๋๋ฅผ ๋จ์ถํค๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํด์๋ง ์๋ํ์ง๋ง, ์ฌ๋ฌ๋ถ์ด ์กฐ๊ธ ์คํํ๋ ๊ฒ์ ๋ง๋ ์ฌ๋์ ์๋ฌด๋ ์์ต๋๋ค.
์ฝ๋๋ฅผ ์ป์ผ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
xbindkeys -k์์ "X" ์ฐฝ์ด ์ด๋ฆฝ๋๋ค. ์ด ์ฐฝ์ ํฌ์ปค์ค๊ฐ ์์ ๋๋ง ํค๋ฅผ ๋๋ฌ์ผ ํฉ๋๋ค! ์ด ๊ฒฝ์ฐ์๋ง ํฐ๋ฏธ๋์ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ด ํ์๋ฉ๋๋ค.
[podkmax@localhost ~]$ xbindkeys -k
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
m:0x4 + c:39
Control + s
์ ๊ฒฝ์ฐ Alt+Shift ํค ์กฐํฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
m:0x8 + c:50์ด์ ์ด ์กฐํฉ์ ๋๋ฅด๋ฉด ๋ ์ด์์์ด ์ ํ๋๋๋ก ๋ง๋ค์ด์ผ ํฉ๋๋ค. ๋ ์ด์์์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ช ๋ น์ ๋จ ํ๋๋ฟ์ ๋๋ค.
setxkbmap ru
setxkbmap us
์์์์ ๋ณผ ์ ์๋ฏ์ด, ํ๋์ ๋ ์ด์์๋ง ์ผค ์ ์์ผ๋ฏ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์ฐ๋ ๊ฒ ์ธ์๋ ์๋ฌด๊ฒ๋ ๋ ์ค๋ฅด์ง ์์์ต๋๋ค.
vim ~/layout.sh
#!/bin/bash
LAYOUT=$(setxkbmap -print | awk -F + '/xkb_symbols/ {print $2}')
if [ "$LAYOUT" == "ru" ]
then `/usr/bin/setxkbmap us`
else `/usr/bin/setxkbmap ru`
fi
์ด์ .xbindkeysrc ๋ฐ layout.sh ํ์ผ์ด ๊ฐ์ ๋๋ ํ ๋ฆฌ์ ์๋ ๊ฒฝ์ฐ .xbindkeysrc ํ์ผ์ ์ต์ข ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
# specify a mouse button
"xterm"
control + b:2
#ะ ะฒะพั ัะพ, ััะพ ะดะพะฑะฐะฒะธะป ั
"./layout.sh"
m:0x8 + c:50
๊ทธ๋ฐ ๋ค์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํฉ๋๋ค.
xbindkeys -p
๊ทธ๋ฆฌ๊ณ ํ์ธํ ์ ์์ฃ . ๊ธฐ๋ณธ ์ค์ ์์ ๋ ์ด์์ ์ ํ ์ต์ ์ ๋นํ์ฑํํ๋ ๊ฒ์ ์์ง ๋ง์ธ์.
ํฉ๊ณ
๋๋ฃ ์ฌ๋ฌ๋ถ, ์ด ๊ธ์ด ๋๊ตฐ๊ฐ๊ฐ ๊ท์ฐฎ์ ๋ฌธ์ ๋ฅผ ๋น ๋ฅด๊ฒ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ ๋ ์
๋ฌด ์๊ฐ ๋์ ๋ ์ด์ ๋ฌธ์ ์ ๋ฐฉํด๋ฐ์ง ์๋๋ก ํ๋ฃจ ์ข
์ผ ๋ฌธ์ ๋ฅผ ํ์
ํ๊ณ ํด๊ฒฐํ๋ ค๊ณ ๋
ธ๋ ฅํ์ต๋๋ค. ์ ๋ ๋๊ตฐ๊ฐ์ ์๊ฐ๊ณผ ์ ๊ฒฝ์ ์๋ผ๊ณ ์ถ์ด์ ์ด ๊ธ์ ์ผ์ต๋๋ค. ์ฌ๋ฌ๋ถ ์ค ๋ง์ ๋ถ๋ค์ด ๋ ์ด์์์ ์ ํํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ ์๋๋ฐ, ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์ดํดํ์ง ๋ชปํ๊ณ ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก๋ Alt+Shift๋ก ์ ํํ๋ ๊ฒ์ ์ข์ํฉ๋๋ค. ์ ๋ ๊ทธ๊ฒ์ด ์ ํํ ๊ทธ๋ ๊ฒ ์๋ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ง์ฝ ์ฌ๋ฌ๋ถ๋ ์ ์๊ฒฌ์ ๊ณต๊ฐํ๊ณ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๊ฒช์๋ค๋ฉด, ์ด ๊ธ์ด ๋์์ด ๋ ๊ฒ์
๋๋ค.
์ถ์ฒ : habr.com
