์ฝํ ์ธ ๋ฅผ ๋ณด๋ ๋ฐ ๋ฐฉํด๊ฐ ๋์ง ์๋ ์ต์ํ์ ๊ทธ๋ํฝ ์ธํฐํ์ด์ค์ ํค๋ณด๋ ๋จ์ถํค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ Vim ํ ์คํธ ํธ์ง๊ธฐ ์คํ์ผ์ ํ์ ์์คํ ์ ์ ๊ณตํ๋ ์น ๋ธ๋ผ์ฐ์ qutebrowser 2.4 ๋ฆด๋ฆฌ์ค๊ฐ ์ถ์๋์์ต๋๋ค. ์ฝ๋๋ PyQt5 ๋ฐ QtWebEngine์ ์ฌ์ฉํ์ฌ Python์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์์ค ์ฝ๋๋ GPLv3 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ์ฝํ ์ธ ์ ๋ ๋๋ง ๋ฐ ๊ตฌ๋ฌธ ๋ถ์์ Blink ์์ง๊ณผ Qt ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํด ์ํ๋๋ฏ๋ก Python์ ์ฌ์ฉํด๋ ์ฑ๋ฅ์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ํญ ์์คํ , ๋ค์ด๋ก๋ ๊ด๋ฆฌ์, ๊ฐ์ธ ํ์ ๋ชจ๋, ๋ด์ฅ PDF ๋ทฐ์ด(pdf.js), ๊ด๊ณ ์ฐจ๋จ ์์คํ (ํธ์คํธ ์ฐจ๋จ ์์ค) ๋ฐ ํ์ ๊ธฐ๋ก์ ๋ณด๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ง์ํฉ๋๋ค. YouTube์์ ๋น๋์ค๋ฅผ ์์ฒญํ๋ ค๋ฉด ์ธ๋ถ ๋น๋์ค ํ๋ ์ด์ด์ ๋ํ ํธ์ถ์ ์ค์ ํ ์ ์์ต๋๋ค. "hjkl" ํค๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ง ์ฃผ์๋ฅผ ์ด๋ํ ์ ์์ผ๋ฉฐ, "o"๋ฅผ ๋๋ฌ ์ ํ์ด์ง๋ฅผ ์ด ์ ์์ต๋๋ค. ํญ ๊ฐ ์ ํ์ "J" ๋ฐ "K" ํค ๋๋ "Alt-tab ๋ฒํธ"๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค. ":"๋ฅผ ๋๋ฅด๋ฉด ํ์ด์ง๋ฅผ ๊ฒ์ํ๊ณ ์ข ๋ฃํ๋ ค๋ฉด ":q", ํ์ด์ง๋ฅผ ์์ฑํ๋ ค๋ฉด ":w"์ ๊ฐ์ ์ผ๋ฐ์ ์ธ vim ์คํ์ผ ๋ช ๋ น์ ์คํํ ์ ์๋ ๋ช ๋ น ํ๋กฌํํธ๊ฐ ๋ํ๋ฉ๋๋ค. ํ์ด์ง ์์๋ฅผ ๋น ๋ฅด๊ฒ ํ์ํ๊ธฐ ์ํด ๋งํฌ์ ์ด๋ฏธ์ง๋ฅผ ํ์ํ๋ "ํํธ" ์์คํ ์ด ์ ์๋์์ต๋๋ค.
์ ๋ฒ์ ์์:
- URL ์ฒ๋ฆฌ๊ธฐ ์ธ์ ์กฐ์์ ํตํด ์ฝ๋ ์คํ์ ํ์ฉํ๋ ์ทจ์ฝ์ (CVE-2021-41146)์ด ์์ ๋์์ต๋๋ค. ๋ฌธ์ ๋ Windows ํ๋ซํผ์ฉ ๋น๋์์๋ง ๋ํ๋ฉ๋๋ค. Windows์์๋ "qtebrowserurl:" ํธ๋ค๋ฌ๊ฐ ๋ฑ๋ก๋์ด ์์ผ๋ฉฐ ์ด๋ฅผ ํตํด ํ์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ด qutebrowser์์ ๋ช ๋ น ์คํ์ ์์ํ ์ ์๊ณ ":spawn" ๋ฐ ":debug-pyeval" ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์์ ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
- /etc/hosts๋ฅผ ํตํ ๋๋ฉ์ธ ๋ฆฌ๋๋ ์ ์ ์ฌ์ฉํ๋ ๊ด๊ณ ์ฐจ๋จ๊ธฐ์์ ํ์ ๋๋ฉ์ธ ์ฐจ๋จ์ ๋นํ์ฑํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ "content.blocking.hosts.block_subdomains" ์ค์ ์ ์ถ๊ฐํ์ต๋๋ค.
- ํผํฉ ์ฝํ ์ธ ๋ค์ด๋ก๋(HTTPS๋ฅผ ํตํด ์ด๋ฆฐ ํ์ด์ง์์ HTTP๋ฅผ ํตํด ๋ฆฌ์์ค ๋ค์ด๋ก๋)๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด "downloads.prevent_mixed_content" ์ค์ ์ ์ถ๊ฐํ์ต๋๋ค.
- "--private" ํ๋๊ทธ๊ฐ ":tab-clone" ๋ช ๋ น์ ์ถ๊ฐ๋์ด ์ ๋น๊ณต๊ฐ ๋ธ๋ผ์ฐ์ง ์ฐฝ์์ ์ด๋ฆฌ๋ ํญ์ ๋ณต์ ๋ณธ์ ์์ฑํ ์ ์์ต๋๋ค.
๋์์, ์ฃผ์ ํ์์ค ์กฐ์์ ์ค์ฌ์ผ๋ก ๊ตฌ์ถ๋ ์ต์ํ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ์ ๋ฒ์ ์ ๋ธ๋ผ์ฐ์ ์ธ Min 1.22๊ฐ ์ถ์๋์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ Electron ํ๋ซํผ์ ์ฌ์ฉํ์ฌ ์์ฑ๋๋ฏ๋ก Chromium ์์ง๊ณผ Node.js ํ๋ซํผ์ ๊ธฐ๋ฐ์ผ๋ก ๋ ๋ฆฝ ์คํํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ ์ ์์ต๋๋ค. Min ์ธํฐํ์ด์ค๋ JavaScript, CSS ๋ฐ HTML๋ก ์์ฑ๋์์ต๋๋ค. ์ฝ๋๋ Apache 2.0 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ๋น๋๋ Linux, macOS ๋ฐ Windows์ฉ์ผ๋ก ์์ฑ๋ฉ๋๋ค.
Min์ ํญ ์์คํ ์ ํตํด ์ด๋ ค ์๋ ํ์ด์ง ํ์์ ์ง์ํ๋ฉฐ, ํ์ฌ ํญ ์์ ์ ํญ ์ด๊ธฐ, ์ฌ์ฉํ์ง ์๋ ํญ(ํน์ ์๊ฐ ๋์ ์ฌ์ฉ์๊ฐ ์ก์ธ์คํ์ง ์์ ํญ) ์จ๊ธฐ๊ธฐ, ํญ ๊ทธ๋ฃนํ ๋ฐ ๋ชจ๋ ํญ ๋ณด๊ธฐ์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ชฉ๋ก. ๋์ค์ ์ฝ์ ์ ์๋๋ก ์ง์ฐ๋ ์์ /๋งํฌ ๋ชฉ๋ก์ ์์ฑํ๋ ๋๊ตฌ๋ ๋ฌผ๋ก ์ ์ฒด ํ ์คํธ ๊ฒ์์ ์ง์ํ๋ ๋ถ๋งํฌ ์์คํ ๋ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ์๋ ๊ด๊ณ ์ฐจ๋จ(EasyList ๋ชฉ๋ก์ ๋ฐ๋ผ) ์์คํ ๊ณผ ๋ฐฉ๋ฌธ์ ์ถ์ ์ฝ๋๊ฐ ๋ด์ฅ๋์ด ์์ผ๋ฉฐ ์ด๋ฏธ์ง ๋ฐ ์คํฌ๋ฆฝํธ ๋ก๋ฉ์ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
Min์ ์ค์ ์ปจํธ๋กค์ ๊ฒ์ ์์ง(๊ธฐ๋ณธ์ ์ผ๋ก DuckDuckGo)์ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ด๊ณ ํ์ฌ ํ์ด์ง๋ฅผ ๊ฒ์ํ ์ ์๋ ์ฃผ์ ํ์์ค์ ๋๋ค. ์ฃผ์ ํ์์ค์ ์ ๋ ฅํ๋ฉด Wikipedia ๊ธฐ์ฌ ๋งํฌ, ๋ถ๋งํฌ ๋ฐ ๊ฒ์ ๊ธฐ๋ก ์ ํ, DuckDuckGo ๊ฒ์ ์ถ์ฒ ๋ฑ ํ์ฌ ์์ฒญ์ ๋ํ ๊ด๋ จ ์ ๋ณด ์์ฝ์ด ์์ฑ๋ฉ๋๋ค. ์์ง. ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฆฐ ๊ฐ ํ์ด์ง๋ ์์ธ์ด ์์ฑ๋์ด ์ฃผ์ ํ์์ค์์ ์ดํ ๊ฒ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค. ๋ํ ์ฃผ์ ํ์์ค์ ๋ช ๋ น์ ์ ๋ ฅํ์ฌ ์์ ์ ๋น ๋ฅด๊ฒ ์ํํ ์๋ ์์ต๋๋ค(์: "!settings" - ์ค์ ์ผ๋ก ์ด๋, "!screenshot" - ์คํฌ๋ฆฐ์ท ๋ง๋ค๊ธฐ, "!clearhistory" - ๊ฒ์ ๊ธฐ๋ก ์ง์ฐ๊ธฐ ๋ฑ).
์ ๋ฆด๋ฆฌ์ค์์:
- ๊ทธ๋ฆฌ๊ณ ์ฃผ์ ํ์์ค์๋ ์ํ์ ํํ์ ๊ณ์ฐํ๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด "sqrt(2) + 1"์ ์ ๋ ฅํ๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ์ป์ ์ ์์ต๋๋ค.
- ์ด๋ฆฐ ํญ์ผ๋ก ๊ฒ์ํ ์ ์๋ ํ๋๊ฐ ์์ ๋ชฉ๋ก์ ์ถ๊ฐ๋์์ต๋๋ค.
- ์ฌ์ฉ์ ํ๊ฒฝ์์ ํ์ฑํ๋ ๋คํฌ ํ ๋ง์ ์ค์ ์ด ์ค์๋๋์ง ํ์ธํฉ๋๋ค.
- ๋ด์ฅ๋ ํ์ด์ง ๋ฒ์ญ ์์คํ ์์ ์ง์๋๋ ์ธ์ด ์๊ฐ ํ์ฅ๋์์ต๋๋ค(ํ์ด์ง๋ฅผ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญํ์ฌ ์ก์ธ์ค ๊ฐ๋ฅ).
- ํญ ์ฌ์ ๋ ฌ์ ์ํ ๋จ์ถํค๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ๋ธ๋ผ์ฐ์ ์์ง ๊ตฌ์ฑ ์์๊ฐ Chromium 94 ๋ฐ Electron 15 ํ๋ซํผ์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru