ํค์ด ํ๋ธ๋ฅด!
๋์๊ฒ ์ด ๋ฌธ๊ตฌ๋ ๋ง์นจ๋ด ์ฒซ ๋ฒ์งธ ์ถํ๋ฌผ์ ์ป์๊ธฐ ๋๋ฌธ์ hello world์ ์ ์ฌํฉ๋๋ค. ์ด ๋ฉ์ง ์๊ฐ์ ์ธ ์ผ์ด ์์ด์ ํ์ฐธ์ ๋ฏธ๋ค์๊ณ , ์ด๋ฏธ ์ฌ๋ฌ ๋ฒ ๋นจ๋ ค๋ค์ด๊ฐ ๊ฒ์ ๋นจ๊ณ ์ถ์ง๋ ์์๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฒซ ๋ฒ์งธ ์ถํ๋ฌผ์์๋ ๋ ์ฐฝ์ ์ด๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ์ ์ฉํ๋ฉฐ ์ผ์ข ์ ๋์ ๊ณผ ๋ฌธ์ ํด๊ฒฐ์ด ํฌํจ๋ ์ถํ๋ฌผ์ ์ํ์ต๋๋ค. ์ด์ ์ด๊ฒ์ ๊ณต์ ํ ์ ์์ต๋๋ค. ์ด์ ๋ชจ๋ ๊ฒ์ ๋ํด ์์๋๋ก ์ด์ผ๊ธฐํฉ์๋ค.
๊ธฐ์
์ด ๋ชจ๋ ๊ฒ์ ์ผ๋ง ์ ์ ๊ฐ ์ ๋ฌด์ฉ ์ปดํจํฐ์ Linux Mint๋ฅผ ๋ค์ด๋ก๋ํ์ ๋ ์์๋์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ Sipe ํ๋ฌ๊ทธ์ธ์ด ํฌํจ๋ Pidgin์ด Linux ์์คํ ์ฉ Microsoft Lync(ํ์ฌ ๋น์ฆ๋์ค์ฉ Skype๋ผ๊ณ ํจ)๋ฅผ ์๋ฒฝํ๊ฒ ๋์ฒดํ๋ค๋ ๊ฒ์ ์๊ณ ์์ ๊ฒ์ ๋๋ค. ์ ๋ฌด ํน์ฑ์ SIP ์ปจํผ๋ฐ์ค์ ์์ฃผ ์ฐธ์ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ Windows ์์ ์์ผ ๋๋ ์ปจํผ๋ฐ์ค ์ฐธ๊ฐ๊ฐ ์ด๋ณด์ ์ด์์ต๋๋ค. ๋ฉ์ผ๋ก ์ด๋๋ฅผ ๋ฐ๊ณ ๋ก๊ทธ์ธ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ๋ฐ๋ก ๊ฐ ์ ์์ต๋๋ค. .
Linux์ ์ด๋์ด ๋ฉด์ผ๋ก ์ ํํ๋ฉด ๋ชจ๋ ๊ฒ์ด ๋ค์ ๋ณต์กํด์ก์ต๋๋ค. ๋ฌผ๋ก Pidgin์์ ์ปจํผ๋ฐ์ค์ ๋ก๊ทธ์ธํ ์๋ ์์ง๋ง ์ด๋ ๊ฒ ํ๋ ค๋ฉด SIP ๊ณ์ ์์ฑ ๋ฉ๋ด์์ ์ปจํผ๋ฐ์ค ์ฐธ๊ฐ ์ต์
์ ์ ํํด์ผ ํฉ๋๋ค. ์ด๋ฆฌ๋ ์ฐฝ์ ํ์ ๋งํฌ๋ฅผ ์ฝ์
ํ๊ฑฐ๋ ์ฃผ์ต์ ์ด๋ฆ๊ณผ ์ ๋ขฐ ID๋ฅผ ์
๋ ฅํ์ธ์. ๊ทธ๋ฆฌ๊ณ ์ผ๋ง ํ ์ ๋ "์ด๊ฒ์ ์ด๋ป๊ฒ๋ ๋จ์ํํ ์ ์์๊น?"๋ผ๊ณ ์๊ฐํ๊ธฐ ์์ํ์ต๋๋ค. ์, ๋๋์ฒด ์ด๊ฒ์ด ์ ํ์ํ์ง ๋ฌผ์ ์๋ ์์ต๋๋ค. ์ฐจ๋ผ๋ฆฌ Windows์ ์์ ๋ง์์ ์ฌ๋ก์ก์ง ์๋ ๊ฒ์ด ๋ซ์ต๋๋ค.
1๋จ๊ณ: ์กฐ์ฌ
Nekrasov๋ ๊ทธ์ ์ํ "Who Lives Well in Rus"์์ "๋จธ๋ฆฌ ์์ ๋ณ๋์ด ์๊ธฐ๋ฉด ๋ง๋์ผ๋ก ์ฐ๋ฌ ๋จ๋ฆด ์ ์์ต๋๋ค. "๋ผ๊ณ ๋งํ์ต๋๋ค.
๊ทธ๋์ ์๊ฐ์ด ๋จธ๋ฆฟ์์ ๋ ์ค๋ฅด์ ์ผ๋ง ํ ๊ตฌํ์ ๋ํ ์ฒซ ๋ฒ์งธ ์์ด๋์ด๊ฐ ๋ ์ฌ๋์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋จ์ํด ๋ณด์์ต๋๋ค. ๋งํฌ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ฐจ๋จํด์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ค ์ฐ์ฐํ Google Chrome์์ ์ด๋ ๋งํฌ๋ฅผ ์ด๊ฒ ๋์์ต๋๋ค(๋ณดํต ์ ๋ ํญ์ Mozilla Firefox๋ฅผ ์ฌ์ฉํฉ๋๋ค). ๋๋๊ฒ๋ ์นํ์ด์ง๋ ์์ ํ ๋ฌ๋ผ ๋ณด์์ต๋๋ค. ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ ์์์ด ์์๊ณ ํ์ด์ง์ ๋ค์ด๊ฐ ์งํ ๋ค์์ ํตํด ๋ฌด์ธ๊ฐ๋ฅผ ์ด์ด ๋ฌ๋ผ๋ ์์ฒญ์ด ์์์ต๋๋ค. xdg-open. ์ฌ๋ฏธ์ผ์ "์"๋ฅผ ํด๋ฆญํ๋ฉด ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค. ๋งํฌ lync15:confjoin?url=https://meet.company.com/user/confid๋ฅผ ์ด ์ ์์ต๋๋ค. ํ . ์ด๊ฒ์ ์ด๋ค ์ข ๋ฅ์ xdg-open์ด๋ฉฐ ๊ทธ๋ฌํ ๋งํฌ๋ฅผ ์ด๋ ค๋ฉด ๋ฌด์์ด ํ์ํฉ๋๊น? ์ฌํ์ ๋ฌธ์๋ฅผ ์ฝ์ ๊ฒฐ๊ณผ ์ด๋ uri ์ฒด๊ณ์ฉ ํ๋กํ ์ฝ์ด๋ ํน์ ํ์ผ ํ์์ ์ฌ์ฉํ์ฌ ๊ด๋ จ ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋ฐ ๋์์ด ๋๋ GUI ์ฒ๋ฆฌ๊ธฐ๋ผ๋ ์ฌ์ค์ด ๋ฐํ์ก์ต๋๋ค. ์ฐ๊ฒฐ์ MIME ์ ํ ๋งคํ์ ํตํด ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ด๋ฆ์ด ์ง์ ๋ URI ๊ตฌ์ฑํ์ ๋ํด ์ผ์นํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒ์ํ๊ณ ์์์ ์ ์ ์์ต๋๋ค. lync15 ๊ทธ๋ฆฌ๊ณ ๋งํฌ๋ xdg-open์ผ๋ก ์ ๋ฌ๋๋ฉฐ ์ด๋ก ์ ์ผ๋ก๋ ์ด ์ ํ์ ๋งํฌ๋ฅผ ๋ด๋นํ๋ ์ผ๋ถ ์์ฉ ํ๋ก๊ทธ๋จ์ผ๋ก ์ ๋ฌ๋์ด์ผ ํฉ๋๋ค. ๋ฌผ๋ก ์ฐ๋ฆฌ ์์คํ ์๋ ์์ต๋๋ค. ๊ทธ๋ ์ง ์๋ค๋ฉด ์คํ์์ค ์ธ๊ณ์์ ๊ทธ๋ค์ ๋ฌด์์ ํฉ๋๊น? ๋ง์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ง์ ์์ฑํ๊ฒ ์ต๋๋ค.
Linux ์ธ๊ณ์ ๋ ๋ชฐ์ ํ๊ณ ํนํ ๊ทธ๋ํฝ ์ ธ(๋ฐ์คํฌํฑ ํ๊ฒฝ, DE)์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ฐ๊ตฌํ๋ ๋ฐ Linux Mint์ Xfce๊ฐ ์๋๋ฐ, ์ด์ ๊ด๋ จ๋ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ MIME ์ ํ์ด ์ผ๋ฐ์ ์ผ๋ก ์ง์ ์์ฑ๋๋ค๋ ๊ฒ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ํ์ฅ์๊ฐ .desktop์ธ ๋ฐ๋ก๊ฐ๊ธฐ ํ์ผ. ๊ธ์์, ๊ฐ๋จํ๊ฒ bash ์คํฌ๋ฆฝํธ๋ฅผ ์์ํ๊ณ ์ ๋ฌ๋ ์ธ์๋ฅผ ์ฝ์์ ์ถ๋ ฅํ๋ ๊ฐ๋จํ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ๋ก๊ฐ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค. ๋ฐ๋ก๊ฐ๊ธฐ ํ์ผ ์์ฒด๋ง ์ ๊ณตํฉ๋๋ค.
[Desktop Entry]
Name=Lync
Exec=/usr/local/bin/lync.sh %u
Type=Application
Terminal=false
Categories=Network;InstantMessaging;
MimeType=x-scheme-handler/lync15;
๋๋ ์ฝ์์์ xdg-open์ ์คํํ๊ณ , ๋ธ๋ผ์ฐ์ ์์ ๋์ค๋ ๋์ผํ ๋งํฌ๋ฅผ ์ ๋ฌํ๋๋ฐ... ์ํ๊น์ต๋๋ค. ์ด๋ฒ์๋ ๋งํฌ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค๊ณ ๋์ต๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๋๋ ๋ด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ๋ MIME ์ ํ์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธํ์ง ์์์ต๋๋ค. ์ด๋ ๊ฐ๋จํ ๋ช ๋ น์ผ๋ก ์ํ๋ฉ๋๋ค.
xdg-mime default lync.desktop x-scheme-handler/lync15
์ด๋ ๋จ์ํ ํ์ผ์ ํธ์งํ๋ ๊ฒ์ ๋๋ค. ~/.config/mimeapps.list.
xdg-open ํธ์ถ๋ก 2๋ฒ์ ์๋ํ์ง๋ง ๋ค์ ์คํจํ์ต๋๋ค. ์๋ฌด๊ฒ๋, ์ด๋ ค์์ ์ฐ๋ฆฌ๋ฅผ ๋๋ ค์ํ์ง ์๊ณ ๋จ์ง ์ฐ๋ฆฌ์ ๊ด์ฌ์ ๋ถ๋ฌ์ผ์ผํฌ ๋ฟ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ bash(์: ์ถ์ )์ ๋ชจ๋ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋จผ์ ๋๋ฒ๊น ์ ๋ฐ์ด๋ค์์ต๋๋ค. ์ฌ๊ธฐ์ xdg-open์ ๋จ์ง ์ ์คํฌ๋ฆฝํธ๋ผ๋ ์ ์ ๊ธฐ์ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
bash -x xdg-open $url
์ถ์ ํ ์ถ๋ ฅ์ ๋ถ์ํ๋ฉด ์ ์ด๊ฐ ๋ค์์ผ๋ก ์ ๋ฌ๋๋ค๋ ๊ฒ์ด ์กฐ๊ธ ๋ถ๋ช ํด์ง๋๋ค. ์์์คํ. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ด๋ฏธ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ด๋ฉฐ ์ธ์์์ ๋งํฌ๋ฅผ ์ ๋ฌํ ๋ ์คํจํ ๋ฐํ ์ฝ๋๋ฅผ ๋ฐํํ๋ ์ด์ ๋ฅผ ์ดํดํ๊ธฐ๊ฐ ๋ ์ด๋ ต์ต๋๋ค.
xdg-open์ ๋ด๋ถ๋ฅผ ์ดํด๋ณธ ๊ฒฐ๊ณผ ๋ค์ํ ํ๊ฒฝ ๋งค๊ฐ๋ณ์๋ฅผ ๋ถ์ํ๊ณ ํน์ DE์ ๊ด๋ จ๋ ํ์ผ ๋งํฌ๋ฅผ ์ฌ๋ ์ผ๋ถ ๋๊ตฌ์ ์ ์ด๊ถ์ ๋๊ฒจ์ฃผ๊ฑฐ๋ ํด๋ฐฑ ๊ธฐ๋ฅ์ด ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. open_generic
open_xfce()
{
if exo-open --help 2>/dev/null 1>&2; then
exo-open "$1"
elif gio help open 2>/dev/null 1>&2; then
gio open "$1"
elif gvfs-open --help 2>/dev/null 1>&2; then
gvfs-open "$1"
else
open_generic "$1"
fi
if [ $? -eq 0 ]; then
exit_success
else
exit_failure_operation_failed
fi
}
์ ๋ฌ๋ ์ธ์๋ฅผ ๋ถ์ํ๊ณ ํน์ ํ์ ๋ฌธ์์ด์ด ๊ฑฐ๊ธฐ์ ์๋์ง ๋ถ์ํ์ฌ ์ฌ๊ธฐ์ ์์ ํดํน์ ์ ์ํ๊ฒ ํฌํจํ๊ฒ ์ต๋๋ค. lync15:, ๊ทธ๋ฐ ๋ค์ ์ฆ์ ์ ์ด๋ฅผ ํจ์๋ก ์ ๋ฌํฉ๋๋ค. open_generic.
3๋ฒ์ ์๋ํ๋๋ฐ ํจ๊ณผ๊ฐ ์์๋ค๊ณ ์๊ฐํ์๋์? ์, ์ง๊ธ์ ๋ฌผ๋ก ์ด์ง. ๊ทธ๋ฌ๋ ์ค๋ฅ ๋ฉ์์ง๋ ์ด๋ฏธ ๋ณ๊ฒฝ๋์์ผ๋ฉฐ ์ด๋ ์ด๋ฏธ ์งํ ์ค์ ๋๋ค. ์ด์ ๊ทธ๋ ํ์ผ์ ์ฐพ์ ์ ์๋ค๊ณ ๋งํ๊ณ ํ์ผ ํ์์ผ๋ก ์ธ์๋ก ์ ๋ฌ๋ ๋์ผํ ๋งํฌ๋ฅผ ๋์๊ฒ ์ผ์ต๋๋ค.
์ด๋ฒ์๋ ํจ์๋ก ๋ฐํ์ก์ต๋๋ค. is_file_url_or_path, ์ ๋ ฅ์ ์ ๋ฌ๋ ํ์ผ ๋งํฌ(file:// ๋๋ ํ์ผ ๊ฒฝ๋ก ๋ฑ)๋ฅผ ๋ถ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋์ฌ(url ์ฒด๊ณ)์ ์ซ์๊ฐ ์๊ณ ์ ๊ท์์ :alpha: ์ ๊ณผ ๋์๋ก ๊ตฌ์ฑ๋ ๋ฌธ์ ์งํฉ๋ง ๊ฒ์ฌํ๊ธฐ ๋๋ฌธ์ ๊ฒ์ฌ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ์ง ์์์ต๋๋ค. rfc3986 ํ์ค์ ์ฐธ์กฐํ ํ ๊ท ์ผ ์์ ์๋ณ์ ์ด๋ฒ์๋ Microsoft๊ฐ ์ด๋ค ๊ฒ๋ ์๋ฐํ์ง ์๋๋ค๋ ๊ฒ์ด ๋ถ๋ช ํด์ก์ต๋๋ค(๋น๋ก ๊ทธ๋ฐ ๋ฒ์ ์ด ์์์ง๋ง). ๋ฌธ์ ํด๋์ค :alpha:์๋ ๋ผํด ์ํ๋ฒณ ๋ฌธ์๋ง ํฌํจ๋ฉ๋๋ค. ์ ๊ธฐ ๊ฒ์ฌ๋ฅผ ์์ซ์๋ก ๋น ๋ฅด๊ฒ ๋ณ๊ฒฝํฉ๋๋ค. ์๋ฃ, ๋น์ ์ ๋๋์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋ง์นจ๋ด ์์๋๊ณ ๋ชจ๋ ๊ฒ์ฌ๊ฐ ์คํฌ๋ฆฝํธ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ๊ณต๋ ํ ์ ์ด๋๊ณ ๋งํฌ๊ฐ ์ฝ์์ ํ์๋๋ฉฐ ๋ชจ๋ ๊ฒ์ด ์ ์์ ๋๋ค. ์ด ํ, ๋๋ exo-open์ ๋ชจ๋ ๋ฌธ์ ๋ ๊ตฌ์ฑํ์ ์ซ์๋ก ์ธํ ๋งํฌ ํ์์ ์ ํจ์ฑ ๊ฒ์ฌ๋ก ์ธํ ๊ฒ์ด๋ผ๊ณ ์์ฌํ๊ธฐ ์์ํฉ๋๋ค. ๊ฐ์ค์ ํ ์คํธํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ์ MIME ์ ํ ๋ฑ๋ก์ ๋จ์ํ ๊ตฌ์ฑํ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ๋งํฌ ๊ทธ๋ฆฌ๊ณ ์ง์ - open_xfce ํจ์๋ฅผ ์ฌ์ ์ํ์ง ์๊ณ ๋ ๋ชจ๋ ๊ฒ์ด ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ์ปจํผ๋ฐ์ค ์ฐธ๊ฐ๋ฅผ ์ํ ์น ํ์ด์ง๊ฐ lync15์์ ๋งํฌ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ์์ผ๋ก๋ ์ฐ๋ฆฌ์๊ฒ ๋์์ด ๋์ง ์์ต๋๋ค.
์ด๋ก์จ ์ฌํ์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์ด ์๋ฃ๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋งํฌ ํธ์ถ์ ๊ฐ๋ก์ฑ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ผ๋ฉฐ, ๊ทธ๋ฐ ๋ค์ ์ด๋ป๊ฒ๋ Pidgin ๋ด๋ถ์์ ์ฒ๋ฆฌ๋๊ณ ์ ๋ฌ๋์ด์ผ ํฉ๋๋ค. "์ปจํผ๋ฐ์ค ์ฐธ์ฌ" ๋ฉ๋ด์ ๋งํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ ๋ ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ๊ธฐ ์ํด Sipe ํ๋ก์ ํธ์ Git ์ ์ฅ์๋ฅผ ๋ณต์ ํ๊ณ ์ฝ๋๋ฅผ ๋ค์ ์ดํด๋ณผ ์ค๋น๋ฅผ ํ์ต๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ ๋คํํ ์นดํ๋ก๊ทธ ์ ๋๋ณธ์ ๋๋ ค์ ๊ธฐ์ฌ/dbus/:
- sipe-join-conference-with-uri.pl
- sipe-join-conference-with-organizer-and-id.pl
- sipe-์ ํ-์ ํ๋ฒํธ.pl
- SipeHelper.pm
Sipe ํ๋ฌ๊ทธ์ธ์ dbus(๋ฐ์คํฌํฑ ๋ฒ์ค)๋ฅผ ํตํด ์ํธ ์์ฉํ ์ ์์ผ๋ฉฐ ์คํฌ๋ฆฝํธ ๋ด๋ถ์๋ ์ฃผ์ต์ ์ด๋ฆ ๋ฐ conf-id๋ฅผ ํตํด ๋งํฌ๋ฅผ ํตํด ํ์์ ์ฐธ์ฌํ๊ฑฐ๋ sip์ ํตํด ํตํ๋ฅผ ์์ํ ์ ์๋ ์๊ฐ ์์ต๋๋ค. . ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ๋์น ๊ฒ์ ๋๋ค.
2๋จ๊ณ. ์๋ ์กฐ์ธ ํธ๋ค๋ฌ ๊ตฌํ
Pearl์๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ์์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. sipe-join-conference-with-uri.pl ๊ทธ๋ฆฌ๊ณ ์์ ์๊ฒ ๋ง๊ฒ ์กฐ๊ธ ์์ ํด๋ณด์ธ์. Pearl๋ก ์ธ ์ ์์ด์ ํน๋ณํ ์ด๋ ค์์ ์์์ต๋๋ค.
์คํฌ๋ฆฝํธ๋ฅผ ๋ณ๋๋ก ํ
์คํธํ ํ ํด๋น ํธ์ถ์ ํ์ผ์ ์ผ์ต๋๋ค. lync.desktop. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์น๋ฆฌ์์ต๋๋ค! ํ์ ์ฐธ๊ฐ ํ์ด์ง์ ๋ค์ด๊ฐ์ xdg-open์ ์คํํ๋ฉด Pidgin์ ํ์ ํ์
์ฐฝ์ด ์๋์ผ๋ก ์ด๋ฆฝ๋๋ค. ๋ด๊ฐ ์ผ๋ง๋ ๊ธฐ๋ปค๋์ง.
์ฑ๊ณต์ ํ์
์ด ๋๋ ๋ด ๋ฉ์ธ ๋ธ๋ผ์ฐ์ ์ธ Mozilla Firefox์์๋ ๊ฐ์ ์์
์ ์ํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ฌ์ฐ๋ฅผ ํตํด ๋ก๊ทธ์ธ์ ํ๋ฉด ์น์ธ์ ์ํ ํ์ด์ง๊ฐ ์ด๋ฆฌ๊ณ ๋งจ ์๋์ ๋ฒํผ์ด ์์ต๋๋ค ์ฌ๋ฌด์ค ์ปค๋ฎค๋์ผ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐธ์ฌ. ๊ทธ๋
๋ ๋ด ๊ด์ฌ์ ๋์๋ ์ฌ๋์ด์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ์์ ํด๋ฆญํ๋ฉด ๋ค์ ์ฃผ์๋ก ์ด๋ํฉ๋๋ค.
conf:sip:{user};gruu;opaque=app:conf:focus:id:{conf-id}%3Frequired-media=audio
๊ทธ๋ ๊ทธ๊ฒ์ ์ฌ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ณ ์๋ง๋ ๊ทธ๋ฌํ ํ๋กํ ์ฝ๊ณผ ๊ด๋ จ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ ์๋ ์๋ค๊ณ ์น์ ํ๊ฒ ๋งํ์ต๋๋ค. ๊ธ์, ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ด๋ฐ ์ผ์ ๊ฒช์์ต๋๋ค.
uri ๊ตฌ์ฑํ์๋ ์คํฌ๋ฆฝํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ฒ ๋ฑ๋กํฉ๋๋ค. conf์ ๊ทธ๋ฆฌ๊ณ ... ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์์. ๋ด ๋งํฌ๋ฅผ ์ฒ๋ฆฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ค๊ณ ๋ธ๋ผ์ฐ์ ๊ฐ ๊ณ์ ๋ถํํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ์์์ xdg-open์ ํธ์ถํ๋ฉด ์๋ฒฝํ๊ฒ ์๋ํฉ๋๋ค.
"Firefox์์ ์ฌ์ฉ์ ์ ์ ํ๋กํ ์ฝ ์ฒ๋ฆฌ๊ธฐ ์ค์ " - ์ด ์ง๋ฌธ์ผ๋ก ์จ๋ผ์ธ์ ์ ์ํ์ต๋๋ค. stackoverflow์ ๋ํ ์ฌ๋ฌ ํ ๋ก ์ ๊ฑฐ์น ํ(๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ์์๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ด๋์ ์์์๊น์?) ๋ต์ ์ฐพ์ ๊ฒ ๊ฐ์ต๋๋ค. ํน๋ณํ ๋งค๊ฐ๋ณ์๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ์ ๋ณด : ์ค์ (๋ฌผ๋ก foo๋ฅผ conf๋ก ๋์ฒด):
network.protocol-handler.expose.foo = false
์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋ง๋ค๊ณ , ๋งํฌ๋ฅผ ์ด๋ฉด... ๊ทธ๋ฐ ํ์ด์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์ ๊ฒ์ฒ๋ผ ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ฅธ๋ค๊ณ ๋งํฉ๋๋ค.
Mozilla์ ํ๋กํ ์ฝ ๋ฑ๋ก์ ๋ํ ๊ณต์ ๋ฌธ์๋ฅผ ์ฝ๊ณ ์์ต๋๋ค. gnome ๋ฐ์คํฌํ ์์ฒด์ ์ฐ๊ฒฐ์ ๋ฑ๋กํ ์ ์๋ ์ต์ ์ด ์์ต๋๋ค(๋ฌผ๋ก foo๋ฅผ conf๋ก ๋์ฒด).
gconftool-2 -s /desktop/gnome/url-handlers/foo/command '/path/to/app %s' --type String
gconftool-2 -s /desktop/gnome/url-handlers/foo/enabled --type Boolean true
๋ฑ๋กํ๊ณ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด๊ณ ... ์์ผ์ ๋ค์ ๋ฝ์ต๋๋ค.
๋ค์์ ๋ฌธ์์ ํ ์ค์ด ๋ด ๋์ ์ฌ๋ก์ก์ต๋๋ค.
๋ค์์ ํ๋กํ ์ฝ ์ ํ foo์ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ์ด๋ค ์์ฉ ํ๋ก๊ทธ๋จ์ผ๋ก ์ด ๊ฒ์ธ์ง ๋ฌป๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
โ ์ธ๋ฌ ์ธ๋ฉ๋์น
- ์์
์ฐ๋ฆฌ๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ง ์์ง๋ง ์นํ์ด์ง๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํด window.location๋ง ๋ณ๊ฒฝํฉ๋๋ค. ์ ๋ conf ํ๋กํ ์ฝ์ ๋ํ ๋งํฌ๊ฐ ํฌํจ๋ ๊ฐ๋จํ html ํ์ผ์ ์์ฑํ๊ณ ๋ธ๋ผ์ฐ์ ์์ ์ด๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํฉ๋๋ค - Yos! ์ด๋ค ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋งํฌ๋ฅผ ์ด์ด์ผ ํ๋์ง ๋ฌป๋ ์ฐฝ์ด ์ด๋ฆฌ๊ณ ์ด๋ฏธ ๋ชฉ๋ก์ Lync ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ต๋๋ค. ๊ฐ๋ฅํ ๋ชจ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ์งํ๊ฒ ๋ฑ๋กํ์ต๋๋ค. ์ฐฝ์ "์ ํ ์ฌํญ์ ๊ธฐ์ตํ๊ณ ํญ์ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋งํฌ ์ด๊ธฐ" ํ์ธ๋์ด ์์ต๋๋ค. ์ ํํ๊ณ ํ์ธ์ ํด๋ฆญํ์ธ์. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ๋ ๋ฒ์งธ ์น๋ฆฌ์ ๋๋ค. ํ์ ์ฐฝ์ด ์ด๋ฆฝ๋๋ค. ๋์์ ์ปจํผ๋ฐ์ค ์ด๊ธฐ๋ ๋งํฌ๋ฅผ ํด๋ฆญํ ๋๋ฟ๋ง ์๋๋ผ ํ์ํ ์ฐธ์ฌ ํ์ด์ง์์ ์ปจํผ๋ฐ์ค๋ก ์ด๋ํ ๋๋ ์๋ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋งค๊ฐ ๋ณ์๋ฅผ ์ญ์ ํ์ฌ ํ์ธํ์ต๋๋ค. network.protocol-handler.expose.conf Fox์ ํ๋กํ ์ฝ ์๋์๋ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ํฅ์ ๋ฏธ์น์ง ์์์ต๋๋ค. ๋งํฌ๋ ๊ณ์ ์๋ํ์ต๋๋ค.
๊ฒฐ๋ก
๋ชจ๋ ์์
์ GitHub ์ ์ฅ์์ ์
๋ก๋ํ์ต๋๋ค. ๋ชจ๋ ๋ฆฌ์์ค์ ๋ํ ๋งํฌ๋ ๊ธฐ์ฌ ๋์ ์์ต๋๋ค.
๋ด ์์
์ ์ฌ์ฉํ๊ณ ์ถ์ ์ฌ๋๋ค๋ก๋ถํฐ ํผ๋๋ฐฑ์ ๋ฐ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ๋๋ Linux Mint ์์คํ
์ ๋ํด์๋ง ๋ชจ๋ ๊ฐ๋ฐ์ ์ํํ๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ๋ค๋ฅธ ๋ฐฐํฌํ์ด๋ ๋ฐ์คํฌํฑ์ ํด๋น ๋ฒ์ ์์ ์๋ํ์ง ์์ ์ ์๋ค๋ ์ ์ ์ฆ์ ์์์ผ ํฉ๋๋ค. ๋๋ ์คํ๋ ค ๋๋ ์ด๊ฒ์ ๊ฑฐ์ ํ์ ํฉ๋๋ค. ์๋ํ๋ฉด ๋ด DE์๋ง ๊ด๋ จ๋ xdg-open ํจ์ ํ๋๋ง ํจ์นํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ค๋ฅธ ์์คํ
์ด๋ ๋ฐ์คํฌํ์ ๋ํ ์ง์์ ์ถ๊ฐํ๋ ค๋ฉด Github์ ํ ์์ฒญ์ ์์ฑํด ์ฃผ์ธ์.
์ ์ฒด ํ๋ก์ ํธ๋ฅผ ์๋ฃํ๋ ๋ฐ ํ๋ฃจ ์ ๋ ์ด ๊ฑธ๋ ธ์ต๋๋ค.
๋งํฌ :
์ถ์ฒ : habr.com