์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›น ๋ธŒ๋ผ์šฐ์ € qutebrowser 1.11.0 ๋ฐ Min 1.14

๊ฒŒ์‹œ ๋จ ์›น ๋ธŒ๋ผ์šฐ์ € ๋ฆด๋ฆฌ์Šค ํํ…Œ ๋ธŒ๋ผ์šฐ์ € 1.11.0๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๋Š” ๋ฐ ๋ฐฉํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์ตœ์†Œํ•œ์˜ ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ „์ ์œผ๋กœ ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ Vim ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ์Šคํƒ€์ผ์˜ ํƒ์ƒ‰ ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” PyQt5 ๋ฐ QtWebEngine์„ ์‚ฌ์šฉํ•˜์—ฌ Python์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์›๋ณธ ํ…์ŠคํŠธ ํ™•์‚ฐ GPLv3์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…์ธ ์˜ ๋ Œ๋”๋ง ๋ฐ ๊ตฌ๋ฌธ ๋ถ„์„์€ Blink ์—”์ง„๊ณผ Qt ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ Python์„ ์‚ฌ์šฉํ•ด๋„ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €๋Š” ํƒญ ์‹œ์Šคํ…œ, ๋‹ค์šด๋กœ๋“œ ๊ด€๋ฆฌ์ž, ๊ฐœ์ธ ํƒ์ƒ‰ ๋ชจ๋“œ, ๋‚ด์žฅ PDF ๋ทฐ์–ด(pdf.js), ๊ด‘๊ณ  ์ฐจ๋‹จ ์‹œ์Šคํ…œ(ํ˜ธ์ŠคํŠธ ์ฐจ๋‹จ ์ˆ˜์ค€) ๋ฐ ํƒ์ƒ‰ ๊ธฐ๋ก์„ ๋ณด๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. YouTube์—์„œ ๋น„๋””์˜ค๋ฅผ ์‹œ์ฒญํ•˜๋ ค๋ฉด ์™ธ๋ถ€ ๋น„๋””์˜ค ํ”Œ๋ ˆ์ด์–ด์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "hjkl" ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ์ฃผ์œ„๋ฅผ ์ด๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, "o"๋ฅผ ๋ˆŒ๋Ÿฌ ์ƒˆ ํŽ˜์ด์ง€๋ฅผ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒญ ๊ฐ„ ์ „ํ™˜์€ "J" ๋ฐ "K" ํ‚ค ๋˜๋Š” "Alt-tab ๋ฒˆํ˜ธ"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ":"๋ฅผ ๋ˆ„๋ฅด๋ฉด ํŽ˜์ด์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ข…๋ฃŒํ•˜๋ ค๋ฉด ":q", ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด ":w"์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ vim ์Šคํƒ€์ผ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์š”์†Œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ๋งํฌ์™€ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” "ํžŒํŠธ" ์‹œ์Šคํ…œ์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›น ๋ธŒ๋ผ์šฐ์ € qutebrowser 1.11.0 ๋ฐ Min 1.14

์ƒˆ ๋ฒ„์ „์—์„œ:

  • Qt 5.15์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ Qt 5.14์—์„œ QtWebEngine์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•  ๋•Œ ์ด์ œ ๋กœ์ปฌ ๊ฒ€์ƒ‰์ด ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค(ํŽ˜์ด์ง€ ๋์— ๋„๋‹ฌํ•œ ํ›„ ์ฒ˜์Œ์œผ๋กœ ์ด๋™). ์ด์ „ ๋™์ž‘์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด search.wrap ์„ค์ •์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ์„ค์ • ์ถ”๊ฐ€: URL์—์„œ ์•Œ ์ˆ˜ ์—†๋Š” ๊ตฌ์„ฑํ‘œ๊ฐ€ ์žˆ๋Š” ๋งํฌ๋ฅผ ์—ด ๋•Œ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹คํ–‰์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹content.unknown_url_scheme_policy; content.fullscreen.overlay_timeout์€ ์ „์ฒด ํ™”๋ฉด ์˜ค๋ฒ„๋ ˆ์ด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์ตœ๋Œ€ ์‹œ๊ฐ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    ํžŒํŠธ ๋””์ž์ธ์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ํžŒํŠธ.ํŒจ๋”ฉ ๋ฐ ํžŒํŠธ.๋ฐ˜๊ฒฝ;
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด์ œ {} ๋Œ€์ฒด๋Š” ์Šฌ๋ž˜์‹œ๋ฅผ ์ด์Šค์ผ€์ดํ”„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. url.searchengines์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋Œ€์ฒด ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    {์ธ์šฉ๋˜์ง€ ์•Š์Œ} โ€” ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๊ฐ€ ์—†๋Š” ๊ฒ€์ƒ‰ ๋ฌธ๊ตฌ,
    {semiquoted} โ€” ์Šฌ๋ž˜์‹œ๋ฅผ ์ œ์™ธํ•œ ํŠน์ˆ˜ ๋ฌธ์ž๋งŒ ์ด์Šค์ผ€์ดํ”„ํ•ฉ๋‹ˆ๋‹ค.
    ๋ฐ {quoted} โ€” ๋ชจ๋“  ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ์ด์Šค์ผ€์ดํ”„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋™์‹œ์— ์ถœ์‹œ ๋œ ์ƒˆ๋กœ์šด ๋ธŒ๋ผ์šฐ์ € ๋ฒ„์ „ ์ตœ์†Œ 1.14, ์ฃผ์†Œ ํ‘œ์‹œ์ค„ ์กฐ์ž‘์„ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ถ•๋œ ์ตœ์†Œํ•œ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ „์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Chromium ์—”์ง„๊ณผ Node.js ํ”Œ๋žซํผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Min ์ธํ„ฐํŽ˜์ด์Šค๋Š” JavaScript, CSS ๋ฐ HTML๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธ ๋ฐฐํฌ์ž Apache 2.0์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ๋Š” Linux, macOS ๋ฐ Windows์šฉ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Min์€ ํƒญ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์—ด๋ ค ์žˆ๋Š” ํŽ˜์ด์ง€ ํƒ์ƒ‰์„ ์ง€์›ํ•˜๋ฉฐ, ํ˜„์žฌ ํƒญ ์˜†์— ์ƒˆ ํƒญ ์—ด๊ธฐ, ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํƒญ(์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์‹œ๊ฐ„ ๋™์•ˆ ์•ก์„ธ์Šคํ•˜์ง€ ์•Š์€ ํƒญ) ์ˆจ๊ธฐ๊ธฐ, ํƒญ ๊ทธ๋ฃนํ™” ๋ฐ ๋ชจ๋“  ํƒญ ๋ณด๊ธฐ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ๋ก. ๋‚˜์ค‘์— ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ์ง€์—ฐ๋œ ์ž‘์—…/๋งํฌ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜๋Š” ๋„๊ตฌ๋Š” ๋ฌผ๋ก  ์ „์ฒด ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์„ ์ง€์›ํ•˜๋Š” ๋ถ๋งˆํฌ ์‹œ์Šคํ…œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—๋Š” ๊ด‘๊ณ  ์ฐจ๋‹จ ์‹œ์Šคํ…œ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(๋ชฉ๋ก์— ๋”ฐ๋ผ). EasyList) ๋ฐ ๋ฐฉ๋ฌธ์ž ์ถ”์  ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ๋กœ๋”ฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Min์˜ ์ค‘์•™ ์ปจํŠธ๋กค์€ ๊ฒ€์ƒ‰ ์—”์ง„(๊ธฐ๋ณธ์ ์œผ๋กœ DuckDuckGo)์— ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด๊ณ  ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ ํ‘œ์‹œ์ค„์ž…๋‹ˆ๋‹ค. ์ฃผ์†Œ ํ‘œ์‹œ์ค„์— ์ž…๋ ฅํ•˜๋ฉด Wikipedia ๊ธฐ์‚ฌ ๋งํฌ, ๋ถ๋งˆํฌ ๋ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์„ ํƒ, DuckDuckGo ๊ฒ€์ƒ‰ ์ถ”์ฒœ ๋“ฑ ํ˜„์žฌ ์š”์ฒญ์— ๋Œ€ํ•œ ๊ด€๋ จ ์ •๋ณด ์š”์•ฝ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์—”์ง„. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ด๋ฆฐ ๊ฐ ํŽ˜์ด์ง€๋Š” ์ƒ‰์ธ์ด ์ƒ์„ฑ๋˜์–ด ์ฃผ์†Œ ํ‘œ์‹œ์ค„์—์„œ ์ดํ›„ ๊ฒ€์ƒ‰์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฃผ์†Œ ํ‘œ์‹œ์ค„์— ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: "!settings" - ์„ค์ •์œผ๋กœ ์ด๋™, "!screenshot" - ์Šคํฌ๋ฆฐ์ƒท ๋งŒ๋“ค๊ธฐ, "!clearhistory" - ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์ง€์šฐ๊ธฐ ๋“ฑ).

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ:

  • ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋Š” Linux ํ”Œ๋žซํผ์šฉ ๋นŒ๋“œ์—์„œ ํ˜„๋Œ€ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฐฝ ์ œ๋ชฉ์ด ์žˆ๋Š” ๋งจ ์œ—์ค„์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์„ค์ •์—์„œ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Œ). ์ฐฝ ์ œ์–ด ๋ฒ„ํŠผ์€ ๋”์šฑ ์ปดํŒฉํŠธํ•ด์กŒ์œผ๋ฉฐ ๋‚˜๋จธ์ง€ ๋ธŒ๋ผ์šฐ์ € ์š”์†Œ์™€ ๋” ์ž˜ ์–ด์šธ๋ฆฝ๋‹ˆ๋‹ค.

    ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›น ๋ธŒ๋ผ์šฐ์ € qutebrowser 1.11.0 ๋ฐ Min 1.14
  • 1Password ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ž๋™ ์™„์„ฑ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ด์ „์— ์ง€์›๋œ Bitwarden์— ์ถ”๊ฐ€).
  • ์šฐ์ฆˆ๋ฒก์–ด๋กœ ๋ฒˆ์—ญ๋œ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Ÿฌ์‹œ์•„์–ด๋กœ ๋ฒˆ์—ญ์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • HTTP ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ–ฅ์ƒ๋œ ํƒญ ์—ด๊ธฐ ์• ๋‹ˆ๋ฉ”์ด์…˜;
  • ์ƒˆ ํƒญ๊ณผ ์ž‘์—…์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ์ถ•ํ‚ค๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํƒญ์„ ๋‹ซ์€ ํ›„ ๋‹ค์‹œ ์—ด๋ฉด ์Šคํฌ๋กค ์œ„์น˜๊ฐ€ ๋ณต์›๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ํƒญ์„ ์ƒˆ ์ž‘์—… ๋ฒ„ํŠผ์œผ๋กœ ๋Œ์–ด์„œ ํ•ด๋‹น ํƒญ์œผ๋กœ ์ž‘์—…์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(๋‚˜์ค‘์— ํƒญ์œผ๋กœ ๋Œ์•„๊ฐ€๋ผ๋Š” ์•Œ๋ฆผ).
  • Windows ๋ฐ Linux์—์„œ ์ฐฝ ์ด๋™์ด ๋” ์‰ฌ์›Œ์กŒ์Šต๋‹ˆ๋‹ค.
  • ์ฝ˜ํ…์ธ  ์ฐจ๋‹จ๊ธฐ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru