Electron: Linux ๋นŒ๋“œ์—์„œ GTK2 w GTK3 ๊ต์ฒด ๊ณ ๋ ค

์— ๋งŒ๋“  2015๋…„ 09์›” 28์ผ  ยท  100์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: electron/electron

Google์€ ์ตœ๊ทผ Chormium์— "use_gtk3" ๋นŒ๋“œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. export GYP_DEFINES="$GYP_DEFINES use_gtk3=1" .

GTK3 ๋ฐ์Šคํฌํƒ‘์˜ ๋Œ€๋ถ€๋ถ„์˜ ์ตœ์ข… ์‚ฌ์šฉ์ž๋Š” ์ตœ์‹  ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ์ด๋ฅด์ง€๋งŒ ๊ฒฐ๊ตญ์—๋Š” ์ข‹์Šต๋‹ˆ๋‹ค.

Chromium 47 w gtk3์˜ ๋น„๋””์˜ค:
https://www.youtube.com/watch?v=TJidbdaHCYc

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์—ฐ ์˜ค๋ž˜๋œ ๋ฌธ์ œ์™€ ๋‹ค์†Œ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/atom/electron/issues/765

enhancement platforlinux

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Electron์€ ํ˜„์žฌ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ GTK3์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋‹ค์Œ ๋งˆ์ด๋„ˆ/๋ฉ”์ด์ € ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ณต๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  100 ๋Œ“๊ธ€

Chrome 47๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ๊ธฐ๋ถ„์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Chrome 47์€ 3์ผ ์ „์— ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. :) http://googlechromereleases.blogspot.se/2015/12/stable-channel-update.html

์กฐ๊ธˆ ํŒŒ๊ณ  ๋“ค์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ use_gtk3 ํ”Œ๋ž˜๊ทธ๋ฅผ ์–ด๋””์— ๋‘˜์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. @zcbenz ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@zcbenz ๋˜๋Š” ์–ด๋””์— ๋„ฃ์–ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”?

์ €๋Š” Chromium์šฉ ๋นŒ๋“œ ์‹œ์Šคํ…œ ๋’ค์— ์žˆ๋Š” ๋นŒ๋“œ ๋™์ž‘์— ๋Œ€ํ•œ ์ „๋ฌธ๊ฐ€๋Š” ์•„๋‹ˆ์ง€๋งŒ Chromium ๊ด€๋ จ ๋ฒ„๊ทธ๋ฅผ ์ฝ๊ณ  variables to common.gypi ์ข‹์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ๋ผ์ธ์€ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค .

์‚ฌ์‹ค ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์œ„ํ•ด Linux ์ƒ์ž์—์„œ๋„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ํ˜„์žฌ ๊ฐœ๋ฐœ ์ƒ์ž๋Š” Elementary OS๋ฅผ ์‹คํ–‰ํ•˜๊ณ  Gtk2 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ  Gtk-Message: Failed to load module "pantheon-filechooser-module" ( Ref )๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ผ์ด ์ˆœ์กฐ๋กญ๊ฒŒ ์ง„ํ–‰๋˜๋ฉด (์ž˜ํ•˜๋ฉด) ๋‚˜๋„ PR์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๋ด…์‹œ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฑฐ๊ธฐ์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์˜๊ฒฌ์„ ๋ถ„๋ช…ํžˆ ์ข‹์•„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์›์ž ์‚ฌ์šฉ์ž๋กœ์„œ GTK2 ๋Œ€์‹  GTK3์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@netsgnut ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

"%"์€(๋Š”) ๋ฌด์Šจ ๋œป์ธ๊ฐ€์š”?

๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์ด๊ฒƒ๋ฟ์ž…๋‹ˆ๊นŒ?

diff --git a/common.gypi b/common.gypi
index 7c41c36..d00d7f7 100644
--- a/common.gypi
+++ b/common.gypi
@@ -9,6 +9,7 @@
     'chromeos': 0,
     # Reflects node's config.gypi.
     'component%': 'static_library',
+    'use_gtk3': 1,
     'python': 'python',
     'openssl_fips': '',
     'openssl_no_asm': 1,

์–ด๋–ค ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ? GTK2 ํŒŒ์ผ ์—ด๊ธฐ ๋Œ€ํ™” ์ƒ์ž๋Š” ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ์–ด๋ ต์Šต๋‹ˆ๋‹ค!

@flying-sheep ์•„, ๊ธด ๋ผ๋””์˜ค ์นจ๋ฌต์— ๋Œ€ํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. GitHub์˜ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ์ „๋…ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ๋กœ ๋Œ์•„๊ฐ€์„œ, ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ์›๋ž˜ ์ž‘๋™ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ์ด์—ˆ์ง€๋งŒ ์‹ ๋น„ํ•˜๊ฒŒ๋„ ๋‚ด ์ƒ์ž์— ์ ์ ˆํ•œ Gtk3 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•„์ž์˜ ๊ฒฝ์šฐ ์›๋ž˜ ์˜๋„๋Š” ๊ฐœ๋ฐœ ์ƒ์ž(Elementary OS Freya๋ฅผ ์‹คํ–‰ํ•˜๋Š”)์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๋Š” Electron ๋นŒ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๊ตฌ์ถ•ํ•˜๋ฉด ์‹ค์ œ๋กœ ๊ฒฝ๊ณ ๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

#4642์—์„œ @zcbenz ๋Š” ๋‹ค์Œ๊ณผ

use_gtk3 ํ”Œ๋ž˜๊ทธ๋Š” Chromium ์ธก์—์„œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. GTK3๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋จผ์ € libchromiumcontent์—์„œ ํ™œ์„ฑํ™”ํ•œ ๋‹ค์Œ Electron์—์„œ ๋งํฌ ์„ค์ •์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ •ํ™•ํžˆ ๋ฌด์—‡์„ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

  1. libchromiumcontent์—์„œ GTK3 ์‚ฌ์šฉ ํ™œ์„ฑํ™”: chromiumcontent.gypi์— ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๊นŒ? ์ด๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ์ „์ž๊ฐ€ ํ•ด๋‹น ํƒ€๊ฒŸ ๋นŒ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?
  2. Electron์—์„œ ๋งํฌ ์„ค์ • ๋ณ€๊ฒฝ: ์–ด๋””์„œ ํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ์ด ๋ถ„์•ผ์˜ ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๋ฉฐ @zcbenz ์˜ ์˜๊ฒฌ์„

์งˆ๋ฌธ์— ๋Œ€ํ•ด:

  1. ์•„๋งˆ ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. libchromiumcontent ๋Š” Atom์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด upstream , patch ๋ฐ repackage ์—์„œ ํฌ๋กฌ ์†Œ์Šค ๋ฅผ ์ข…์†์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์ ์ ˆํ•˜๊ฒŒ ํŒจํ‚ค์ง€๋ฉ๋‹ˆ๋‹ค . libgtk2ui ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
  2. Electron ์—๋Š” @zcbenz ์˜ ์˜๊ฒฌ์—์„œ์™€ ๊ฐ™์ด "๋งํฌ"๋Š” ์•„๋งˆ๋„ ๊ทธ๊ฒƒ๋“ค์„ ์ฐธ์กฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Chromium ์˜

IIRC์—์„œ๋Š” chrome/browser/ui/libgtk2ui/์™€ ์ผ์น˜ํ•˜๋„๋ก libgtk3ui ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋นŒ๋“œํ•ด์•ผ ํ•˜๋ฉฐ ์‹œ์ž‘ ์‹œ ์ด ๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ „ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ธ€์„ ์“ฐ๋Š” ์‹œ์ ์—์„œ libgtk3ui๋Š” ์•„์ง ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค :( libgtk2ui์˜ ์ฝ”๋“œ๋„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์›๋ž˜ ์ด๊ฒƒ์„ ๊ฒŒ์‹œํ•œ ํ›„ ๊ฐœ์ธ ๋…ธํŠธ๋ถ ์‚ฌ์ด์— ์žˆ์—ˆ๊ณ  ๊ทธ ์ดํ›„๋กœ ๋ช‡ ๋‹ฌ ๋™์•ˆ ํšŒ์‚ฌ์—์„œ ๋ฐœํ–‰ํ•œ MBP๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งˆ์นจ๋‚ด ๋‚ด ์ƒˆ ๊ธฐ๊ณ„, ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์ด ์ƒ๊ฒผ๊ณ  ์ด๊ฒƒ์œผ๋กœ ์ฐ”๋Ÿฌ๋ณด๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋‚˜์˜ ์ง„ํ–‰ ์ƒํ™ฉ:

gtk3๋กœ ๋นŒ๋“œํ•  libchromiumcontent๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๊ณ  ๋‹ค์Œ์ด ์ˆ˜๋ฐ˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • chromiumcontent.gypi์— 'use_gtk3': 1 ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ์Šคํฌ๋ฆฝํŠธ/์—…๋ฐ์ดํŠธ์—์„œ install_sysroot() ์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ์ˆ˜๋™์œผ๋กœ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ sysroot๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ : libchromiumcontent ๋ฒ„์ „์— ๋”ฐ๋ผ use_sysroot ์˜ chromium/src/build/common.gypi ๋ฅผ 'use_sysroot': 0 ๋กœ ์„ค์ •ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ฏธ๋ž˜์— ์˜ฌ๋ฐ”๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋นŒ๋“œ์—์„œ ํฌ๋กœ์Šค ์ปดํŒŒ์ผ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด debian_jessie๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
  • pkg-config๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
pkg-config --cflags gtk+-3.0 wayland-protocols gl egl glib-2.0 x11 gdk-3.0 gmodule-2.0 gthread-2.0 gtk+-unix-print-3.0 libpulse atk --libs gtk+-3.0 wayland-protocols gl egl glib-2.0 x11 gdk-3.0 gmodule-2.0 gthread-2.0 gtk+-unix-print-3.0 libpulse atk && export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig
  • script/update -t x64 && script/build -t x64 && script/create-dist -t x64
  • ๋ช‡ ์‹œ๊ฐ„์„ ๊ธฐ๋‹ค๋ ธ์Šต๋‹ˆ๋‹ค :)

๊ทธ๋Ÿฌ๋‚˜ ๋ถˆํ–‰ํžˆ๋„ ๋นŒ๋“œ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ๋„ˆ๋ฌด ๋‚™๊ด€์ ์ด์–ด์„œ ์ „์ž ๋นŒ๋“œ๋ฅผ ์œ„ํ•œ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ๋ฌผ๋ก  ๊ทธ๋ ‡์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๋กœ์ปฌ brightray๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  sysroot๊ฐ€ ์•„๋‹Œ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋œ ๋‹ค๋ฅธ ๋ชจ๋“  gyp ํŒŒ์ผ์„ ์–ป๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  libgtk2ui์™€ ๊ด€๋ จํ•˜์—ฌ - ๋‚˜๋Š” ์ด๊ฒƒ์„ ์ฝ์€ ๊ณณ(์  ํˆฌ ํฌ๋Ÿผ, ํฌ๋กฌ ์ด์Šˆ ํŠธ๋ž˜์ปค ๋˜๋Š” ์•„์น˜ ๋ฆฌ๋ˆ…์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ ์Šค๋ ˆ๋“œ)์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ฐพ๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์€ gtk3๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ๋ฅผ ์ž‘๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ตœ์†Œํ•œ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ‹€๋ฆด ์ˆ˜ ์žˆ๊ณ  ์ด๊ฒƒ์ด gtk2์šฉ์œผ๋กœ ํŠน๋ณ„ํžˆ ์ž‘์„ฑ๋œ Electron ๊ธฐ๋ฐ˜ ํŒจ์น˜์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•ด ๋งค์ฃผ chromium-gtk3 ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  libgtk2ui๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๋ฉฐ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•ž์œผ๋กœ ๋ฉฐ์น  ์•ˆ์— ์—ฌ๊ธฐ๋กœ ๋Œ์•„์™€ ๋ฏธ๋ฆฌ ๋นŒ๋“œ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ์ผ๋ถ€ ํ™”๋ฉด ์บก์ฒ˜๊ฐ€ ์žˆ๋Š” ๋‚ด POC ์ €์žฅ์†Œ์— ์—ฐ๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์™„๋ฃŒํ•˜๊ณ  ๊ณง atom-gtk3 ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

screenshot from 2016-05-20 15-54-44
screenshot from 2016-05-20 15-52-32

๊ฐ€์žฅ ํฐ ์žฅ์• ๋ฌผ์€ debian_wheezy_sysroot๊ฐ€ libchromiumcontent/electron/brightray ์ „์ฒด์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์œ ์ง€ ๊ด€๋ฆฌ์ž๋Š” jessie๋กœ ์ „ํ™˜ํ• ์ง€ ์•„๋‹ˆ๋ฉด sysroot๋ฅผ ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ๋งŒ๋“ค์ง€ ์—ฌ๋ถ€๋ฅผ ๋…ผ์˜ํ•˜๊ณ  ๊ฒฐ์ •์„ ๋‚ด๋ ค์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฃผ๋ง ๋™์•ˆ ๋‚˜๋Š” ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ „์ž gtk3 ์‹คํ–‰ ํŒŒ์ผ์„ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋“œ ๋˜๋Š” bash ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์กฐํ•ฉํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•˜๋Š” ์–ด๋–ค ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋„ ๋ฐ›์•„๋“ค์—ฌ์งˆ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ์ง€๊ธˆ์œผ๋กœ์„œ๋Š” ์ด๊ฒƒ์ด ์•„๋งˆ๋„ ๋™๋ฃŒ gtk3 ์‚ฌ์šฉ์ž๋“ค์ด ๋นŒ๋“œ๋ฅผ ์–ป๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ๋  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ๋ช‡ ์ฃผ ๋™์•ˆ ๋™๋ฃŒ Arch ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์ผ๋ถ€ AUR ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณตํ•˜๋ ค๊ณ  ์‹œ๋„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋“ค์€ ์ „์ž ๋นŒ๋“œ์‹œ gtk3 ๊ฒฝ๊ณ ํ–ˆ๋‹ค https://gist.github.com/nikolowry/05865698788d66ae0edfea2eb7c7fb0c

@nikolowry sysroot๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ GTK+ 3.x์—์„œ sysroot๋กœ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@paulcbetts Wheezy๊ฐ€ Jessie๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ๊ฒฝ์šฐ์—๋งŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. gtk3 ์™ธ์—๋„ gtk3๋ฅผ ๋นŒ๋“œํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ตœ์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. wayland-protocols glib-2.0 gdk-3.0 gtk+-unix-print-3.0 .

๋ฉ‹์ง„ @nikolowry๋กœ ๋“ค๋ฆฝ๋‹ˆ๋‹ค . ์ž‘์—…ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์–ด๋”˜๊ฐ€์— ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ถ„ํˆฌ ์‚ฌ์šฉ์ž์˜ ์‚ถ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด PPA๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ์ด ๋ฌธ์ œ๊ฐ€ ํ˜„๋Œ€์ ์ธ ์œ„์ ฏ์„ ์ œ๊ณตํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์ ์„ ๋ง๋ถ™์ด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. GTK2๋Š” ๋ฒ„ํŠผ๊ณผ ๋„๊ตฌ ๋ชจ์Œ์˜ ๋ชจ๋“  ์•„์ด์ฝ˜์ด ๋งค์šฐ ์ž‘๊ฒŒ ๋ Œ๋”๋ง๋˜๊ธฐ ๋•Œ๋ฌธ์— HiDPI ์‹œ์Šคํ…œ(์ ์–ด๋„ ์šฐ๋ถ„ํˆฌ 16.04์—์„œ๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€)์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ Atom์˜ ๊ฒฝ์šฐ ์ด๊ฒƒ์€ ์ ์–ด๋„ ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ•œ ํŒŒ์ผ ์—ด๊ธฐ ๋Œ€ํ™” ์ƒ์ž์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ Atom ์ž์ฒด๋Š” ์—ฌ์ „ํžˆ ์ƒ๋‹นํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

@EiNSTeiN ์ฃผ๋ง์ด ๋๋‚  ๋•Œ๊นŒ์ง€ electron-gtk3 repo์— ๊ณง ๋‹ค์‹œ ์—ฐ๊ฒฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ฝ๊ฐ„์˜ ๋’ท์ด์•ผ๊ธฐ ๋จผ์ € - ๋‚ด๊ฐ€ ์ด ์ž‘์—…์„ ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ์ฃผ๋œ ์ด์œ ๋Š” Atom์„ ์ผ์ƒ์ ์ธ ๋“œ๋ผ์ด๋ฒ„๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๋” ์ด์ƒ ํŒŒ์ผ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ๋ณผ ์ˆ˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ๋นŒ๋“œ๋Š” asar/compiled-cache/npm-not-running-post-install-scripts์˜ ๋ณต์žก์„ฑ์œผ๋กœ ์ธํ•ด ์˜ˆ์ƒ๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ ธ์ง€๋งŒ ์ด์ œ ๊ฐ€๋„ ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณฐ๊ณฐ์ด ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๋‹ค - ๊ทธ๋ž˜์„œ ์œ ์ง€ ๊ด€๋ฆฌ์ž๋Š” ์ข‹์€ ์ฐธ์กฐ๋ฅผ ๊ฐ€์งˆ ๊ฒƒ์ด๊ณ (๋ชจ๋“  ๊ฐœ๋ณ„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ํž˜๋“ค ๊ฒƒ์ด๋‹ค) ๋˜ํ•œ gtk3-would-be-users๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹œ์ž‘ํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋นจ๋ฆฌ ๋ถˆ๊ฐ€๋Šฅ.

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์ž๋™ํ™”๋œ ๋นŒ๋“œ๋ฅผ ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ฏ€๋กœ ๋ชจ๋‘๊ฐ€ 4-6์‹œ๊ฐ„์˜ ๋นŒ๋“œ ์‹œ๊ฐ„์„ ์ค€๋น„ํ•˜๊ฑฐ๋‚˜ ์ผ๋ถ€ ์„œ๋ฒ„๋ฅผ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ณต์‹ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ฐ˜์˜๋  ๋•Œ๊นŒ์ง€ ๊ฐ€๋” ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ „์ž๋ฅผ ํ•˜์œ„ ๋ชจ๋“ˆ๋กœ ์‚ฌ์šฉํ•˜์—ฌ repo๋ฅผ ๋งŒ๋“ค๊ณ  ๋ชจ๋“  gtk3 ์žฅ์ ์œผ๋กœ ์ „์ž๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ์ผ bash ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ขํ˜”์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ชจ๋“  ๋ฐฐํฌํŒ์€ ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์‹ค์ œ๋กœ ๊ณต์‹์ ์œผ๋กœ ์ ์šฉ๋  ๋•Œ๊นŒ์ง€ ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์‰ฌ์šด ์‹œ์ž‘์ ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  hidpi ๋ฉ”๋ชจ์— - atom-gtk3 ๋Œ€ํ•œ ๋‚ด exec cmd๋Š” GTK_THEME=Adwaita:dark GDK_SCALE=2 GDK_DPI_SCALE=.5 /usr/local/share/atom/atom --force-device-scale-factor=1.5 %U ์ž…๋‹ˆ๋‹ค. GDK ์Šค์ผ€์ผ ํ”Œ๋ž˜๊ทธ๋Š” chromium-gtk3 UI ๊ธ€๊ผด ํฌ๊ธฐ๋„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ atom-gtk3 ์˜ ์ผ๋ถ€ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค.

screenshot from 2016-05-24 02-51-28
screenshot from 2016-05-24 02-51-49

https://goo.gl/ydHspu

์•ˆ๋…•ํ•˜์„ธ์š”,

์ €๋Š” Arch Linux์—์„œ GTK3๋กœ Electron 1.1.2๋ฅผ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  use_gtk3=1 ๋ฅผ libchromiumcontent๋กœ ์ „๋‹ฌํ•˜๊ณ  brightray.gyp์—์„œ gtk+-2.0 ๋ฅผ gtk+-3.0 ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ Electron์˜ ๊ธฐ๋ณธ ์•ฑ์€ ํ‚ค๋ฅผ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ https://github.com/tensor5/arch-atom์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ:
https://github.com/nikolowry/electron-gtk3

์ด๋ฒˆ์ฃผ๋ง๊นŒ์ง€ ๋งˆ๋ฌด๋ฆฌ ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ WIP์ด๋ฉฐ ์•„์ง ์˜๋ฏธ์žˆ๋Š” ๊ฒƒ์„ ๊ตฌ์ถ•ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

@EiNSTeiN ๋ฐ @tensor5 - https://github.com/nikolowry/electron-gtk3 ๊ฐ€ ์ง€๊ธˆ ๊ตฌ์ถ• ์ค‘์ด ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. debug ๋ฐ release ๋ชจ๋‘๋ฅผ ๋นŒ๋“œํ•˜๋„๋ก ํŠน๋ณ„ํžˆ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ release ๋ฒ„์ „

@zcbenz Debian Wheezy๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์—ญ์‚ฌ์  ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ(Chromium์ด LTS์™€ ํ˜ธํ™˜๋˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค)? Jessie/GTK3๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋นŒ๋“œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ• ๊นŒ์š”? ๋‹น์‹ ์ด ์•„์ด๋””์–ด์— ๋ฐ˜๋Œ€ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ ์ ˆํ•œ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ ์–ด๋„ GTK3๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ฐธ์กฐ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘: @tensor5 X ๋˜๋Š” Wayland๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? Wayland์˜ ์ฃผ์š” ์ž…๋ ฅ ์ด๋ฒคํŠธ์—์„œ chromium gtk3 ๋นŒ๋“œ๊ฐ€ ์ถฉ๋Œํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@nikolowry : ์˜ˆ, ์ €๋Š” Wayland๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ์‹ค์ œ๋กœ X์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด Chromium ๋ฌธ์ œ๊ฐ€ ์–ด๋”˜๊ฐ€์—์„œ ๋…ผ์˜๋˜์—ˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@nikolowry ์šฐ๋ฆฌ๋Š” Chromium์˜ ๋นŒ๋“œ ๊ตฌ์„ฑ์„ ๋”ฐ๋ฅด๊ณ  ์žˆ์œผ๋ฉฐ ๋งŽ์€ Linux ๋ฐฐํฌํŒ์ด ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ Chromium์€ ๋ชจ๋“  ๊ณณ์—์„œ ์™„์ „ํžˆ ํ…Œ์ŠคํŠธ๋˜์—ˆ์œผ๋ฏ€๋กœ Chromium์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” GTK+3์šฉ์œผ๋กœ ๋นŒ๋“œํ•  ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๊ณ  ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค. Linux ๋นŒ๋“œ ์ง€์นจ์˜ ๊ณ ๊ธ‰ ์ฃผ์ œ ์ค‘ ์ผ๋ถ€์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@zcbenz๋Š” ์ข‹๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. sysroot์— Wheezy ๋Œ€์‹  Jessie๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” Python ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์ง€๋งŒ ์—…์ŠคํŠธ๋ฆผ Chromium์—์„œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๋ฐฐํฌํŒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ glibc++ ๋ฒ„์ „ ๊ด€๋ฆฌ๋กœ ์ธํ•ด ์†Œํ”„ํŠธ์›จ์–ด ๋ฐฐํฌ์™€ ๊ด€๋ จํ•˜์—ฌ ์ข‹์€ ์ผ์ž…๋‹ˆ๋‹ค. Jessie๋กœ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” (์ผ๋ฐ˜์ ์œผ๋กœ ๋” ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ) ๊ณผ๊ฑฐ. ์šฐ๋ฆฌ๋Š” RHEL ์‚ฌ์šฉ์ž์™€ ํ•จ๊ป˜ ์ด ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค.

@tensor5 ๊ฐ€ Wayland์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ Chromium ํ‹ฐ์ผ“์— ๋Œ“๊ธ€์„ ๋‹ฌ๊ณ  ๋‚ด gtk3 ์ €์žฅ์†Œ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

Chromium์€ XWayland ๋ชจ๋“ˆ์— ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ GDK_BACKEND=x11 electron ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

@nikolowry ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค!

๋”ฐ๋ผ์„œ ๋‚ด๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•œ๋‹ค๋ฉด ๋ฌธ์ œ๋Š” GTK3๊ฐ€ ์ „์ž๊ฐ€ ์ˆœ์ˆ˜ํ•œ Wayland ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@tensor5 ์ •ํ™•ํžˆ! GTK3๋Š” ํˆดํ‚ท์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์•ฑ์ด Wayland ์ค€๋น„ ์ƒํƒœ๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค(๋”ฐ๋ผ์„œ ํ•„์š”ํ•œ ๊ฒฝ์šฐ XWayland๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•จ).

์ด๋ฒˆ ์ฃผ๋ง์— Chromium ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋ฌด๋ฆŽ์„ ๊ฟ‡๊ณ  ์ค€๋น„ํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ์ผ๋ถ€ ๋กœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•˜๋‹ค๊ฐ€ https://fedoraproject.org/wiki/How_to_debug_Wayland_problems ๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•œ ์†”๋ฃจ์…˜์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค

Chromium๊ณผ Atom์€ ๋‚ด ๋งˆ์ง€๋ง‰ ๋น„ Wayland ์ง€์› ์•ฑ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด Skylake ๋…ธํŠธ๋ถ์ด ํ˜ผํ•ฉ dpi ๋ชจ๋“œ์—์„œ ๋‹ค์ค‘ ๋ชจ๋‹ˆํ„ฐ์— ์—ฐ๊ฒฐ๋  ๋•Œ xrandr์„ ํ†ตํ•ด ๋” ์ด์ƒ ์ถฉ๋Œํ•˜์ง€ ์•Š๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค!!!!


ํŽธ์ง‘: ์ผ๋ถ€ AUR ํŒจํ‚ค์ง€๋„ ์œ ์ง€ ๊ด€๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฏ€๋กœ "env GDK_BACKEND=x11"์„ ํฌํ•จํ•˜๋„๋ก ๋ฐ์Šคํฌํƒ‘ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์•ฑ์ด X์™€ Wayland์—์„œ ๋ชจ๋‘ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์€ ๋งŽ์€ ๊ณจ์นซ๊ฑฐ๋ฆฌ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ž˜!

@nikowry ์ด๋ฏธ ์ฐธ์—ฌ ์ค‘์ž…๋‹ˆ๋‹ค!

๊ฒฐ๊ตญ ์ด๊ฒƒ์€ ์ „์ž ์†Œ์Šค์—์„œ ์ˆ˜์ •๋˜์–ด์•ผ ํ•˜๋ฉฐ ๋Ÿฐ์ฒ˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์šฐ์•„ํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋‹™๋‹ˆ๋‹ค.

BTW AUR ํŒจํ‚ค์ง€๋Š” ๋‚ด ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ €์žฅ์†Œ๋ฅผ ์œ ์ง€ํ•œ๋‹ค

@nikolowry Firefox๋„ Xwayland์— ์˜์กดํ•˜๋Š” GTK3 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด์ง€๋งŒ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ๋จผ์ € X11 ๋ฐฑ์—”๋“œ๋ฅผ ์‹œ๋„ํ•œ ๋‹ค์Œ ๊ฐ์ง€๋œ display_name ์„ gdk_display_open ํ•ฉ๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ๋น„์Šทํ•œ ์ผ์ด Chromium์—์„œ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ OS์—์„œ pantheon-file-chooser๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด GTK3๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Gtk-Message: Failed to load module "pantheon-filechooser-module"

Qt5-WebEngine์„ ์ง€์›/ํฌํŠธํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์–ด์จŒ๋“  ํฌ๋กฌ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๊ณ  Qt์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด gtk์™€ ๋‹ฌ๋ฆฌ ํ›จ์”ฌ ๋” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค...

๊ฒŒ๋‹ค๊ฐ€ qt5๋Š” gnome ๊ฐœ๋ฐœ ์ด์™ธ์˜ ๋‹ค๋ฅธ ๊ฒƒ์— ๊ด€์‹ฌ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋งค๋ฒˆ F**king API๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” gtk3์ฒ˜๋Ÿผ ํ•ญ์ƒ ์ค‘๋‹จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— gtk๊ฐ€ ๋‚˜์˜๊ณ  qt๊ฐ€ ๋” ๋‚˜์€ ์ด์œ  (2์„ธ์ง€๋งŒ ์—ฌ์ „ํžˆ ํ›Œ๋ฅญํ•˜๊ณ  ๊ด€๋ จ์„ฑ์ด ์žˆ์Œ)์— ๋Œ€ํ•œ

Qt 5.6.x๋Š” ์ด์ œ LTS์— ์žˆ์œผ๋ฉฐ ๋ผ์ด์„ผ์Šค ๊ฐ€ 5.7๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์˜คํ”ˆ ์†Œ์Šค ์‚ฌ์šฉ์ž/๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ›จ์”ฌ ์ข‹์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์™œ ์‚ฌ๋žŒ๋“ค์ด gnome ์™ธ๋ถ€์—์„œ gtk๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค๊ณ„๋˜์ง€ ์•Š์•˜๋Š”์ง€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

@ahjolinna ์‹ค์ œ๋กœ GTK+๋Š” Gnome ์™ธ๋ถ€์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์–ด๋Š ์ชฝ์ด๋“  API๋ฅผ QT๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ Chromium ์—…์ŠคํŠธ๋ฆผ์—์„œ ๋งŽ์€ ํŒจ์น˜๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Electron ํŒ€์—๊ฒŒ ์•…๋ชฝ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ˆ˜๊ณ ํ•  ๊ฐ€์น˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ(?) ๋ชจ๋“  GTK ๊ฐœ๋ฐœ์ž๋Š” ๋ ˆ๋“œํ–‡์—์„œ ๊ณ ์šฉํ•œ GNOME ๊ฐœ๋ฐœ์ž์ด๊ธฐ ๋•Œ๋ฌธ์— GTK+3์€ ๋ณธ์งˆ์ ์œผ๋กœ GNOME๊ณผ ๊ฒฐํ˜ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ธ๊ธ‰๋œ GTK API ํŒŒ์†์€ red Hat์ด GNOME์„ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๊ฒƒ์„ ์šฐ์„ ์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. @ahjolinna ๋Š” Qt5๊ฐ€ ๋” ์•ˆ์ •์ ์ด์ง€๋งŒ _ํ•˜์ง€๋งŒ_ ํฌ๋กฌ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ œํ•œ๋œ ์•ก์„ธ์Šค๋งŒ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ๋˜ํ•œ ์•ˆ์ •์„ฑ์ž…๋‹ˆ๋‹ค. ํฌ๋กฌ ์ž์ฒด๋Š” ์ผ๋ถ€ ์˜์—ญ์—์„œ ์•ˆ์ •์ ์ธ API๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ํˆฌ์ž…ํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์†์ƒ๋ฉ๋‹ˆ๋‹ค.

@nikolowry https://github.com/nikolowry/electron-gtk3 ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ gtk3 ์ง€์›์œผ๋กœ ์ „์ž๋ฅผ ๊ตฌ์ถ•ํ•˜๋ ค๋ฉด atom-gtk3๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์›์ž ๊ตฌ์ถ•์—์„œ ๋ฌด์—‡์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

gtk3 ๋นŒ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐ์€ ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฉ”๋‰ด ํ‘œ์‹œ์ค„์— ํฐ์ƒ‰ ํ…์ŠคํŠธ๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒจ์น˜ ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

screenshot from 2016-07-20 10-21-21

screenshot from 2016-07-20 10-21-55

๋‚˜๋Š” ๋‹ค์Œ ๋‚ ์— ๋‹ค๋ฅธ gtk3 ๋นŒ๋“œ ๊ฒฝ๊ณ ๋ฅผ ๊ณ ์น  ๊ฒƒ์ด๋‹ค.

Chromium with Gtk2์˜ ๋ฉ”๋‰ด๋Š” '๋„ค์ดํ‹ฐ๋ธŒ gtk ์Šคํƒ€์ผ'์ด ์•„๋‹ˆ๋ฉฐ ๋งค์šฐ ์ถ”ํ•ฉ๋‹ˆ๋‹ค. Gtk3 ๋นŒ๋“œ๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ• ๊นŒ์š”?

@๋ฉ˜์‹œ. ์•„๋‹ˆ์š”, gtk3๊ฐ€ ์žˆ๋Š” ๋ฉ”๋‰ด ํ‘œ์‹œ์ค„์€ gtk2์—์„œ์™€ ์ •ํ™•ํžˆ ๋™์ผํ•˜๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‹น์‹  ๋ง์ด ๋งž์•„, ๊ทธ๊ฒƒ์€ ์™„์ „ํžˆ ๊ธฐ๋ณธ์ด ์•„๋‹ˆ๋ฉฐ ๋‹จ์ˆœํžˆ ํ…์ŠคํŠธ์™€ ๋ฐฐ๊ฒฝ์˜ ์ƒ‰์ƒ์ด gtk ํ…Œ๋งˆ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ณ ์น  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ณด๊ธฐ ์œ„ํ•ด ์ง€๋‚œ ๋‚ ์˜ ์ฝ”๋“œ๋ฅผ ๋ณด์•˜๋‹ค. ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋Š” ๊ธฐ๋ณธ gtk ์ฝ”๋“œ๊ฐ€ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ž˜ํผ ๋ ˆ์ด์–ด ๋’ค์— ์ˆจ๊ฒจ์ ธ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ gtk ์ „๋ฌธ๊ฐ€๊ฐ€ ์ด์— ๋Œ€ํ•ด ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@tensor5 ๋ฉ”๋‰ด๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ž˜ํผ์—์„œ ๊ตฌํ˜„๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. OS X์˜ ๋ฉ”๋‰ด๊ฐ€ ๊ธฐ๋ณธ์ด๊ณ  ๊ธฐ๋ณธ Cocoa ์ฝ”๋“œ๋„ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ž˜ํผ ๋ ˆ์ด์–ด ๋’ค์— ์ˆจ๊ฒจ์ ธ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ.

@Menci ๋ฌผ๋ก  ๊ทธ๋Ÿฐ ํŒจ์น˜๊ฐ€ ๋ฐ›์•„๋“ค์—ฌ์งˆ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Gnome ์•ฑ ๋ฉ”๋‰ด๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

LibreOffice๊ฐ€ ์–ด๋–ป๊ฒŒ ํ–ˆ๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์Šทํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

LibreOffice์˜ ๋ฉ”๋‰ด๋Š” ์ •๋ง ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์ž ๋ฐ ํ‘œ์‹œ/์ˆจ๊ธฐ๊ธฐ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์—†์Šต๋‹ˆ๋‹ค.

GTK+ ์•ฑ์€ gnome(๋ฐ ๊ธฐํƒ€ gtk ํŒŒ์ƒ ์ œํ’ˆ) ์™ธ๋ถ€์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์ด์ง€ ์•Š์•˜์œผ๋ฉฐ KDE, LXQt์—์„œ ํ•ญ์ƒ ๋”์ฐํ•ด ๋ณด์˜€๊ณ  Unity 8์ด ๋„์ฐฉํ•˜๋ฉด(Qt5 ๊ธฐ๋ฐ˜) ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. KDE ํŒ€์€ ์ด ๋ฌธ์ œ๋กœ gtk ํŒ€๊ณผ ํ˜‘๋ ฅํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊ทธ๋“ค์€ ์™„์ „ํžˆ 100% ๋ฉ์ฒญํ–ˆ๊ณ  ๊ทธ๋“ค์€ API๊ฐ€ ๋ชจ๋“  ์—…๋ฐ์ดํŠธ์™€ ํ•จ๊ป˜ ๋ณ€๊ฒฝ/์ค‘๋‹จ๋˜๋Š” ๊ฒƒ์„ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์œผ๋ฉฐ ๊ทธ๊ฒƒ์ด (์ผ๋ถ€) KDE ํ•ญ๋ชฉ์„ ๊นจ๋œจ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค. , ์–ด๋–ค btw. gtk ํŒ€์˜ ์–ด๋ฆฌ์„์€ ์ถ”๋ก  ๋•Œ๋ฌธ์— ํ•˜๋“œ์ฝ”๋”ฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.*

btw. KDE, LXQt ๋ฐ Unity 8 + Ubuntu Touch ๋ฐ SailfishOS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Qt5 "์‹œ์žฅ ์ ์œ ์œจ"์ด gtk๋ณด๋‹ค ํ›จ์”ฌ ์ปค์ง€๊ณ  ์žฅ๊ธฐ์ ์œผ๋กœ ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถ”์‹ . libreoffice์— ๋Œ€ํ•ด GTK ์—†์ด ๋นŒ๋“œํ•˜๊ณ  ๊ธฐ๋ณธ ํŒŒ์ผ ์„ ํƒ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ChakraOS๊ฐ€ PKGBUILD ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ฐ€๋Šฅํ•œ ํ•œ GTK๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š” KDE/Qt์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋ฐฐํฌํŒ์ด๊ธฐ ๋•Œ๋ฌธ์—


ํŽธ์ง‘

*GTK ๊ฐœ๋ฐœ์ž๋Š” ์ด์ „์— KDE์—์„œ GTK ํ†ตํ•ฉ์— ์‚ฌ์šฉ๋˜์—ˆ๋˜ ํ…Œ๋งˆ ์—”์ง„์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ฐจ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ œ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ "CSS ๋ฐฉ์‹"์„ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


Qt๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์•ฑ:
Dropbox, OBS, MEGA, VIber, Wireshark, makemkv, yacreader, masterpdfeditor, vapoursynth-editor, SVP, teampeak3, mkvtoolnix-gui, hplip, scribus WPS-office...

Qt5๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ DE: http://papyros.io/ ๋ฐ https://lumina-desktop.org/

@ahjolinna ์ž˜๋ชป๋œ ๊ตฐ์ค‘์„ ์„ค๋“ํ•˜๋ ค๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Chromium์ด ์Šค์œ„์น˜๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค๋ฉด Electron์ด ์Šค์œ„์น˜๋ฅผ ๋งŒ๋“ค์ง€ ๋งค์šฐ ์˜์‹ฌ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. Electron ํŒ€์—๊ฒŒ ์ด ํ”„๋กœ์ ํŠธ์™€ Chromium์˜ QT5 ํฌํฌ๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ์„ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ๋ฌธ์ œ๋Š” GTK2๋ฅผ GTK3์œผ๋กœ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ์ „ํ™˜์„ ๊ณ ๋ คํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ๋งŒ๋“œ์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ฃผ์ œ์—์„œ ๋ฒ—์–ด๋‚˜ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋…ธ์ด์ฆˆ๋กœ ์ฑ„์›๋‹ˆ๋‹ค.

@alzadude ์‚ฌ์ „ ๋นŒ๋“œ๋œ ์ „์ž๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ์•Š๋„๋ก grunt ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ค‘ ์ผ๋ถ€๋ฅผ ํŽธ์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ๊ธฐ์–ต) . ์–ด๋ ต์ง€๋Š” ์•Š์ง€๋งŒ ์ƒˆ ๋นŒ๋“œ๋ฅผ ํ•  ๋•Œ๋Š” ํ•ญ์ƒ ์ง€๋‚œ ๋นŒ๋“œ์—์„œ ์ทจํ•œ ๋ช‡ ๋‹จ๊ณ„๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ํ•ญ์ƒ 1๋ถ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

@tensor5 ๊ฐ€ ์ž์‹ ์˜ arch-atom repo์—์„œ gtk3๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด ์‹œ๋„ํ•ด ๋ณผ ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ์— ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฌธ์„œํ™”ํ•  ๋•Œ ์—ฌ๊ธฐ์— ๋‹ค์‹œ ๋‚˜ํƒ€๋‚˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฃผ๋ง)

@nikowry ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๋ฌธ์„œํ™”๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค :)

์ €๋Š” Fedora๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋ฏ€๋กœ ์ด Fedora copr์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ†ตํ•ฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

https://copr.fedorainfracloud.org/coprs/mosquito/atom/

์ด Copr์€ ํ˜„์žฌ Fedora์˜ ํ‘œ์ค€ ํŒจํ‚ค์ง€์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์—…์ŠคํŠธ๋ฆผ rpm ์‚ฌ์–‘ ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

https://github.com/FZUG/repo/tree/master/rpms/atom

๊ทธ๋ฆฌ๊ณ  ์ด Bugzilla ๋ฒ„๊ทธ์— ์–ธ๊ธ‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

https://bugzilla.redhat.com/show_bug.cgi?id=1132661

๊ธฐ์กด ์ž‘์—…์„ ๊ธฐ๋ฐ˜์œผ๋กœ Electron ๋ฐ Atom์˜ gtk3 ๋นŒ๋“œ๋ฅผ ์œ„ํ•ด ๊ณ ์œ ํ•œ Copr์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋ฌธ์„œํ™”๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•„์š”ํ•œ ํŒจ์น˜๋ฅผ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ์—…์ŠคํŠธ๋ฆผ rpm ์‚ฌ์–‘ ํŒŒ์ผ์„ ๋ถ„๊ธฐ). ๋ฌผ๋ก  ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‚˜๋ฅผ ์ด๊ธฐ์ง€ ์•Š๋Š” ํ•œ :)

๋‚˜๋Š” ์ด๊ฒƒ์„ ์œ„ํ•ด gentoo ebuild๋ฅผ ์ž‘์„ฑํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์ง€๋งŒ sucbess๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‚˜๋ฅผ ๋„์™€ ์ฃผ๋ฉด ๋งค์šฐ ๊ฐ์‚ฌ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@eternal-sorrow ํ˜„์žฌ ๊ณต์‹ Gentoo ํŠธ๋ฆฌ์— ์žˆ๋Š” ebuild์ธ dev-util/electron์„ ์ด๋ฏธ ๋ณด์…จ์Šต๋‹ˆ๊นŒ?

@devurandom , ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ „์ž(0.36.12)์˜ ์•„์ฃผ ์˜ค๋ž˜๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ฒ„์ „(1.3.1)์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•˜๊ณ  ๋ชจ๋“  ํŒจ์น˜๋ฅผ ์ ์šฉํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ v8 ์—ฐ๊ฒฐ ๋ฌธ์ œ(๋งŽ์€ ์ •์˜๋˜์ง€ ์•Š์€ v8 ๊ธฐํ˜ธ)๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@์˜์›ํ•œ ์Šฌํ””

  1. ํ•ด๋‹น ํŒจํ‚ค์ง€์˜ ๊ด€๋ฆฌ์ž์ธ [email protected]์—๊ฒŒ ์—ฐ๋ฝํ•˜์‹ญ์‹œ์˜ค.
  2. ์—ฌ๊ธฐ GH์—์„œ ebuild๋กœ ์˜ค๋ฒ„๋ ˆ์ด ์ €์žฅ์†Œ๋ฅผ ์„ค์ •ํ•˜์„ธ์š”. ํ•จ๊ป˜ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Arch Linux์—์„œ @eternal-sorrow GTK3๋กœ ์ตœ์‹  ๋ฒ„์ „์˜ Electron์„ ๋นŒ๋“œ ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ์‚ดํŽด๋ณด์„ธ์š”.

์ด์— ๋Œ€ํ•œ ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@nikolowry , atom-gtk3์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ์›์ž ๋ฐ ์ „์ž ๋ฒ„์ „์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‚˜๋Š” ํ˜„์žฌ ๋ฒ„์ „์˜ ์›์ž์—๋Š” ์ „์ž-0.37์ด ํ•„์š”ํ•˜๋ฉฐ ํ˜„์žฌ ๋ฒ„์ „์˜ ์ „์ž๋กœ๋Š” ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ž˜๋ชป?

@eternal-sorrow Atom์€ ์ตœ๊ทผ Electron์˜ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/atom/atom/blob/efae2e08c3f902149431732cbd550aea09748acc/package.json#L15

gtk3๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋” ๋‚˜์€ ํŒŒ์ผ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์œ„ํ•ด ํŠนํžˆ ์ข‹์•„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„์น˜๋ฆฌ๋ˆ…์Šค์—๋Š” ์ด๋ฏธ gtk3 ๋นŒ๋“œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ „์ž ์ฝ”์–ด๊ฐ€ ์—†๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ทธ๋“ค์ด ์Šค์œ„์น˜๊ฐ€ ์—…์ŠคํŠธ๋ฆผ์—์„œ ์ผ์–ด๋‚˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณต์‹์ ์œผ๋กœ ๊ณ„ํš๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค( https://chromium.googlesource.com/chromium/src/+/acc4214c4dece4e70fb53355d557bd45f35965d6/docs/linux_gtk_theme_integration.md#GTK3 ์ฐธ์กฐ).

์ถ”๊ฐ€ ์ •๋ณด, chromium/google chrome dev ์ฑ„๋„์€ gtk 3์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ด์ œ ์‹œ๊ฐ„ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

https://bugs.chromium.org/p/chromium/issues/detail?id=79722#c110 ์—์„œ Chrome 59์— ๋Œ€ํ•ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

ํฌ๋กฌ 59๊ฐ€ ๋‚˜์™”์Šต๋‹ˆ๋‹ค! :๋”ฐ๋‹ค:

์ด์ œ Chrome 59๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์œผ๋ฏ€๋กœ Linux์šฉ GTK3์œผ๋กœ ๋นŒ๋“œ๋œ Electron ์‹œํ—˜ํŒ์„ ๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

GTK3 ์ง€์›์€ ์ด์ œ Chromium stable(59)์—์„œ ์ง€์› ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ณง

๋ช‡ ๊ฐ€์ง€ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • GTK3 ์ง€์›์„ ์›ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
  • ์ด ์Šค๋ ˆ๋“œ์—์„œ ๋งŽ์ด ์–ธ๊ธ‰๋œ "ํŒŒ์ผ ๋Œ€ํ™” ์ƒ์ž"๋ฅผ ๋ด…๋‹ˆ๋‹ค. GTK2์—์„œ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๊ณ  GTK3์—์„œ ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?
  • ์ด ์—…๋ฐ์ดํŠธ๋Š” ์„ฑ๋Šฅ, ํ˜ธํ™˜์„ฑ ๋“ฑ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ UI?
  • ์‚ฌ๋žŒ๋“ค์ด ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฐœ์„  ์‚ฌํ•ญ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
  • ์–ด๋–ค Linux ๋ฐฐํฌํŒ์—์„œ GTK(3)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

@zeke :

GTK3 ์ง€์›์„ ์›ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด ์Šค๋ ˆ๋“œ์—์„œ ๋งŽ์ด ์–ธ๊ธ‰๋œ "ํŒŒ์ผ ๋Œ€ํ™” ์ƒ์ž"๋ฅผ ๋ด…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ด€์‹ฌ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ํ•œ ๊ฐ€์ง€ ๊ฐœ์„  ์‚ฌํ•ญ์€ Flatpak ์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” Electron ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ด์ œ ํ˜ธ์ŠคํŠธ์˜ ํŒŒ์ผ ์„ ํƒ๊ธฐ์— ๋Œ€ํ•œ ํฌํ„ธ ์„ ์›ํ™œํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜

์ด ์—…๋ฐ์ดํŠธ๋Š” ์„ฑ๋Šฅ, ํ˜ธํ™˜์„ฑ ๋“ฑ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ UI?

์ด๋ก ์ ์œผ๋กœ Gtk3์˜ hidpi ์ง€์›์€ ๊ด€๋ จ์ด ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ๋Œ€๋ถ€๋ถ„์„ ์šฐํšŒํ•˜๋Š” Chromium์˜ ๋ Œ๋”๋ง๊ณผ ์–ด๋–ป๊ฒŒ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋งˆ๋„ ํ…Œ๋งˆ๋งŒ ๋ณ€๊ฒฝ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ด๋–ค Linux ๋ฐฐํฌํŒ์—์„œ GTK(3)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

์‚ฌ์‹ค์ƒ ๋ชจ๋“  ๋ฐฐํฌํŒ์—๋Š” Gtk3๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Unity, GNOME, MATE, Cinnamon, Budgie, ๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ตญ XFCE๋Š” Gtk3๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ์ฃผ์š” ํˆดํ‚ท์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

@zeke

์–ด๋–ค Linux ๋ฐฐํฌํŒ์—์„œ GTK(3)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

๋ชจ๋“  ์ฃผ์š” Linux ๋ฐฐํฌํŒ์€ ๋ฐ์Šคํฌํ†ฑ(์…ธ)์— GTK3์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ๋˜ํ•œ KDE ํ’๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ๊ทธ ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์€ GTK3์ž…๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์—์„œ ๋งŽ์ด ์–ธ๊ธ‰๋œ "ํŒŒ์ผ ๋Œ€ํ™” ์ƒ์ž"๋ฅผ ๋ด…๋‹ˆ๋‹ค. GTK2์—์„œ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๊ณ  GTK3์—์„œ ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ, GTK2 ๋ฐ GTK3 ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์ผํ•œ ์‹œ์Šคํ…œ์—์„œ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ GTK3 ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ํ˜„์žฌ ๋ฐ์Šคํฌํ†ฑ๊ณผ ๋” ์ž˜ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์„ ํƒ๊ธฐ ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ์ข‹์€ ์˜ˆ์ž…๋‹ˆ๋‹ค.

@zeke

GTK3 ์ง€์›์„ ์›ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ €๋Š” ์ผ๊ด€์„ฑ์„ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. GTK 3์—์„œ๋Š” ํŒŒ์ผ ๋Œ€ํ™”๊ฐ€ ์ƒ๋‹นํžˆ ๋‹ค๋ฅด๋ฉฐ, GTK ๋ฒ„์ „ ๊ฐ„์— ํ…Œ๋งˆ๊ฐ€ ์•ฝ๊ฐ„ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ์‹œ์Šคํ…œ์„ ์ตœ์†Œํ•œ์œผ๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. Atom์ด GTK 2๋ฅผ ์‚ญ์ œํ•˜๋ฉด GTK 2๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•  ์ด์œ ๊ฐ€ ํ•˜๋‚˜ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์—์„œ ๋งŽ์ด ์–ธ๊ธ‰๋œ "ํŒŒ์ผ ๋Œ€ํ™” ์ƒ์ž"๋ฅผ ๋ด…๋‹ˆ๋‹ค. GTK2์—์„œ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๊ณ  GTK3์—์„œ ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

์œ„์™€ ๊ฐ™์ด ๋‚˜์—๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ผ๊ด€์„ฑ์ด๋‹ค. GTK 3 ๋Œ€ํ™” ์ƒ์ž๋Š” ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ฆ๋ถ„ ๊ฒ€์ƒ‰ ๋Œ€์‹  ์žฌ๊ท€์  ์ด๋ฆ„ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ์ผ๋ถ€์—์„œ๋Š” ์—ด๋“ฑํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฐœ์„  ์‚ฌํ•ญ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ฉ”๋‰ด๋Š” ๋‹ˆ๋ชจ๋‹‰ ์„ ์ง€์›ํ•˜์ง€ ์•Š๊ณ  ํ™”์‚ดํ‘œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ ‘ํ•œ ๋ฉ”๋‰ด ์‚ฌ์ด๋ฅผ ์ด๋™ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๊ตฌํ˜„ ๋Œ€์‹  GTK๋„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Atom์ด GTK 2๋ฅผ ์‚ญ์ œํ•˜๋ฉด GTK 2๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๊ฐ€ ํ•˜๋‚˜ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

@jtojnar : ๊ธฐ๋ณธ์ ์œผ๋กœ GTK3๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ Linux๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ GTK3๋กœ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์€ ์•ฑ์„ ์ง€์›ํ•˜๋ ค๋ฉด GTK2๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? Atom(๋ฐ ๋‹ค๋ฅธ ๋ชจ๋“  Electron ์•ฑ) ์™ธ์— ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๋‹ค๋ฅธ ์ธ๊ธฐ ์žˆ๋Š” ์•ฑ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@zeke ์ข…์†์„ฑ ์„ค์น˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐํฌํŒ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฉฐ, GTK 3 ์•ฑ์„ ์„ค์น˜ํ•˜๋ฉด libgtk3 ๋„ ๋‹ค์šด๋กœ๋“œ๋˜๊ณ  GTK 2 ์•ฑ์„ ์„ค์น˜ํ•˜๋ฉด libgtk2 ๋ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ์•ˆ์ „ํ•˜๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SSD ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ ˆ๊ฑฐ์‹œ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

GTK3 ์ง€์›์„ ์›ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

GTK3๋Š” ์ตœ์‹  ๋ฒ„์ „์ด๋ฉฐ HiDPI๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
GTK2๋Š” ๋” ์ด์ƒ ๊ฐœ๋ฐœ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ํ˜„๋Œ€์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์—์„œ ๋งŽ์ด ์–ธ๊ธ‰๋œ "ํŒŒ์ผ ๋Œ€ํ™” ์ƒ์ž"๋ฅผ ๋ด…๋‹ˆ๋‹ค. GTK2์—์„œ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๊ณ  GTK3์—์„œ ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์— ๋Œ€ํ•ด ๋ชจ๋ฅธ๋‹ค.

์ด ์—…๋ฐ์ดํŠธ๋Š” ์„ฑ๋Šฅ, ํ˜ธํ™˜์„ฑ ๋“ฑ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ UI?

GTK3๋Š” ์ผ๋ถ€ CPU ๋ฐ RAM ๊ธฐ๋Šฅ์„ ๋” ์ž˜ ํ™œ์šฉํ•œ๋‹ค๊ณ  ๋งํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํฐ UI ์—…๋ฐ์ดํŠธ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฐœ์„  ์‚ฌํ•ญ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋” ๋‚˜์€ ํ…Œ๋งˆ ์ง€์›.

์–ด๋–ค Linux ๋ฐฐํฌํŒ์—์„œ GTK(3)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

๋ชจ๋“  ๋ฐฐํฌํŒ์—๋Š” ์ €์žฅ์†Œ์— GTK3์ด ์žˆ์Šต๋‹ˆ๋‹ค.
Gnome 3, Budgie, Deepin, MATE ๋ฐ ๊ณง(tm) XFCE์™€ ๊ฐ™์€ ๋งŽ์€ ์ฃผ์š” ๋ฐ์Šคํฌํ†ฑ ํ™˜๊ฒฝ์—์„œ๋„ GTK3์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•œ ์ „์ œ ์กฐ๊ฑด์€ #9946์— ๋Œ€ํ•œ pull ์š”์ฒญ์ด ์žˆ๋Š” Chromium 59์ž…๋‹ˆ๋‹ค.

@zeke ์ฃผ์š” ์š”์ ์€ Linux์—์„œ GTK(2 ๋˜๋Š” 3) ๋˜๋Š” Qt๋ฅผ UI ํˆดํ‚ท์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์„ ๋ณผ ๊ฐ€๋Šฅ์„ฑ์ด ๋” ๋†’๊ธฐ ๋•Œ๋ฌธ์— UI ์ผ๊ด€์„ฑ์ด ๋” ์šฐ์ˆ˜ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Windows์™€ macOS์—๋Š” ๊ณ ์œ ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด๋‹น ํ”Œ๋žซํผ์˜ ๋Œ€๋ถ€๋ถ„์˜ ์•ฑ์ด ์ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ๋ณธ UI ํˆดํ‚ท์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Steam์—๋Š” ๊ธฐ๋ณธ ๋ชจ์–‘์ด ์—†์Šต๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์—์„œ ๋งŽ์ด ์–ธ๊ธ‰๋œ "ํŒŒ์ผ ๋Œ€ํ™” ์ƒ์ž"๋ฅผ ๋ด…๋‹ˆ๋‹ค. GTK2์—์„œ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๊ณ  GTK3์—์„œ ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

GTK3์™€ ๋น„๊ตํ•œ GTK2๋Š” UI๊ฐ€ ๋‹ค๋ฅธ ์‹œ๊ฐ์  ๋ชจ์–‘(ํŒŒ์ผ ๋ธŒ๋ผ์šฐ์ €์™€ ๊ฐ™์€ ๋ ˆ์ด์•„์›ƒ/๊ธฐ๋Šฅ ์ฐจ์ด)์„ ๊ฐ€์ง„ ์ด์ „ ๋ฒ„์ „์˜ Windows ๋˜๋Š” macOS๋กœ ๊ฐ€์žฅ ์ž˜ ์„ค๋ช…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Windows 10์„ ์‹คํ–‰ํ•˜๊ณ  Windows Vista ๋˜๋Š” XP์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํŒŒ์ผ ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ์œ„์น˜๊ฐ€ ๋งž์ง€ ์•Š๊ณ  ํŠน์ • ๊ธฐ๋Šฅ/UX๊ฐ€ ๋ถ€์กฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

KDE์™€ ๊ฐ™์€ ๋ฐ์Šคํฌํƒ‘ ํ™˜๊ฒฝ(DE)์—์„œ ์ด๋Š” ์—ฌ์ „ํžˆ ํ•ด๋‹น DE, Qt์— ๋Œ€ํ•œ ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ํˆดํ‚ท ๋Œ€์‹  GTK3 ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฑฐ๊ธฐ์—๋Š” ์—ฌ์ „ํžˆ ์•ฝ๊ฐ„์˜ ๋ถˆ์ผ์น˜๊ฐ€ ์žˆ์ง€๋งŒ GTK2๋ณด๋‹ค ๋‚ซ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๊ธฐ๋ณธ Breeze ํ…Œ๋งˆ๊ฐ€ ์žˆ๋Š” KDE์˜ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ Electron ์•ฑ์ด ์žˆ๋Š” GTK2 ๋Œ€ํ™” ์ƒ์ž - GitKraken:
GTK2 Dialog with current Electron apps - GitKraken

GTK3 ๋Œ€ํ™” - ํ˜ผํ•ฉ:
GTK3 Dialog - Meld

Qt ๋Œ€ํ™” - ์ผ€์ดํŠธ:
Qt Dialog - Kate

Mono/.NET(?) ๋Œ€ํ™” ์ƒ์ž - BundleModder - Linux์—์„œ ํ”ํ•˜์ง€ ์•Š์€ Java ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋„ ํ”ํ•˜์ง€ ์•Š์€ ํˆดํ‚ท์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Mono(?) Dialog - BundleModder - Uncommon on Linux, Java applications can also use an uncommon toolkit.

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

Gnome(GTK ๊ธฐ๋ฐ˜ DE)๋Š” GTK3์™€ Qt ๊ฐ„์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ KDE(Qt ๊ธฐ๋ฐ˜ DE)๋ณด๋‹ค ์ด๋ฅผ ๋” ์ž˜ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Qt์˜ ํˆดํ‚ท์€ ๊ธฐ๋ณธ ๋Š๋‚Œ/๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ํ”Œ๋žซํผ ๊ฐ„์— ์ž˜ ํ†ตํ•ฉ๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. GTK ๊ฐœ๋ฐœ์ž๋Š” KDE ๊ฐœ๋ฐœ์ž๊ฐ€ DE์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ๋ฅผ ์›ํ•จ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Gnome ์ด์™ธ์˜ DE์—์„œ ํˆดํ‚ท์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์„ ๊บผ๋ฆฝ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ GTK2 ๋˜๋Š” ํ”ํ•˜์ง€ ์•Š์€ ํˆดํ‚ท์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์ „ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋” ๋‚˜์€ ๊ฒฝํ—˜์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํˆดํ‚ท์ด ๋‹ค๋ฅธ ํˆดํ‚ท์— ์ƒ์‘ํ•˜๋Š” ์•ฑ๋งŒํผ ๊ฐ•๋ ฅํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ GTK์™€ Qt ์•ฑ์ด ํ˜ผํ•ฉ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋‹จ์ผ ํˆดํ‚ท ์•ฑ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค(KaOS๋Š” Qt5์— ๋งž๋Š” ๋ฐฐํฌํŒ์ž…๋‹ˆ๋‹ค. Chrome๊ณผ ๊ฐ™์€ ์„ ํƒ์  GTK ์•ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ). Electron ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ธ๊ธฐ๋กœ ์ธํ•ด GTK๋ฅผ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ๋ฐ”๋žŒ์งํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

GTK3 ์ง€์›์„ ์›ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ผ๊ด€์„ฑ, ํŒŒ์ผ ๋Œ€ํ™” ์ƒ์ž๋Š” KDE ์‚ฌ์šฉ์ž์ธ ์ €์—๊ฒŒ ๊ฐ€์žฅ ๋ˆˆ์— ๋„๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์—…๋ฐ์ดํŠธ๋Š” ์„ฑ๋Šฅ, ํ˜ธํ™˜์„ฑ ๋“ฑ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ UI?
์‚ฌ๋žŒ๋“ค์ด ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฐœ์„  ์‚ฌํ•ญ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

FlatPak(Sandboxed, distro-agnostic ์•ฑ, GUI ์•ฑ์šฉ Docker/์ปจํ…Œ์ด๋„ˆ์™€ ๊ฐ™์€)์— ๋Œ€ํ•ด ๋งŽ์ด ์•Œ์ง€๋Š” ๋ชปํ•˜์ง€๋งŒ, DE(FlatPak ํ…Œ๋งˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ผ๊ด€์„ฑ์„ ์œ„ํ•œ ์ด์•ผ๊ธฐ, FlatPak์˜ GTK3๋Š” ์ตœ๊ทผ์— ํ…Œ๋งˆ ์ง€์›์„ ๋ฐ›์•˜๊ณ  ๋‹ค๋ฅธ ํˆดํ‚ท๋„ ์ด๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค). ์–ธ๊ธ‰ํ•œ FlatPak์€ ํฌํ„ธ ์ง€์›์„ ํ†ตํ•ด ํŒŒ์ผ ๋Œ€ํ™” ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ GTK2์™€ GTK3์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด์ง€๋งŒ HiDPI ์ด์•ผ๊ธฐ๋Š” GTK3์— ๋” ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ…Œ๋งˆ ์ง€์› ์ œ ์ƒ๊ฐ์—๋Š” ๋” ๋‚˜์€ ๊ฒƒ ๊ฐ™๊ฑฐ๋‚˜ ์ ์–ด๋„ ์•ž์œผ๋กœ GTK3์šฉ ํ…Œ๋งˆ๋ฅผ 2๋ณด๋‹ค ๋” ๋งŽ์ด ์–ป์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋” ํฝ๋‹ˆ๋‹ค. Gnome์—์„œ ํŒŒ์ผ ๋Œ€ํ™” ์ƒ์ž๋Š” ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ UX๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก ์žฅ์‹(CSD)๊ณผ ์•ฝ๊ฐ„ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. KDE์—์„œ๋Š” GTK3 ์ง€์›์ด ์ „์—ญ ๋ฉ”๋‰ด ๊ธฐ๋Šฅ(์—ฌ์ „ํžˆ WIP, macOS๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ฐฝ์— ๋ฌถ์ด์ง€ ์•Š๊ณ  ๋ฉ”๋‰ด ํ‘œ์‹œ์ค„๊ณผ ๋น„์Šทํ•จ)์—์„œ ๋” ์ž˜ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค Linux ๋ฐฐํฌํŒ์—์„œ GTK(3)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

๋Œ€๋ถ€๋ถ„์˜ ์ตœ์‹  ๋ฐฐํฌํŒ์€ ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ GTK3์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. GTK2๋Š” ๊ฝค ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Chrome ๋˜๋Š” Electron ์•ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ GTK(์•„๋งˆ๋„ 2/3์„ ํ˜ผํ•ฉํ•˜์ง€๋งŒ 3์— ๋” ๋งŽ์ด ๊ธฐ์šธ์ž„)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@polarathene , ๋‹น์‹ ์€ GTK3 ์ง€์›์ด ํ–ฅํ›„ Wayland ์ง€์›์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ GTK2๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๊ณ  ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

JFYI Chromium GTK2 ๋นŒ๋“œ๋Š” ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „ 60.0.3112.90 ๋ฐ ๋ฒ ํƒ€ 61.0.3163.31์—์„œ ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜๋„ ์ตœ์‹  ๋งˆ์Šคํ„ฐ์—์„œ๋Š” ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  btw, ๋” ์ด์ƒ ๊ณต์‹์ ์œผ๋กœ ์œ ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
https://groups.google.com/a/chromium.org/d/msg/chromium-dev/iO3qzex6oYA/Q-i4Cie3BwAJ

GTK3์˜ ์žฅ์ ์— ๋Œ€ํ•œ ๋ฉ‹์ง„ ํ”ผ๋“œ๋ฐฑ์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ GTK3 ์—…๋ฐ์ดํŠธ๋Š” Chrome 59๊ฐ€ ์žˆ๋Š” Electron 1.8์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๋นŒ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ GTK3๊ฐ€ ์ง€์›๋˜๊ธฐ ์ „์— ๋‹ค์Œ Chromium์ด 61๋กœ(60์„ ๊ฑด๋„ˆ๋›ธ ๋•Œ๊นŒ์ง€) ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „์ž์—์„œ.

๋งž์Šต๋‹ˆ๊นŒ, @alexeykuzmin?

@zeke ํฌ๋กฌ 61 ๋ฒ”ํ”„๊ฐ€ ์–ธ์ œ ๋ฐœ์ƒํ• ์ง€ ๋Œ€๋žต์ ์œผ๋กœ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํ•ด๋‹น ๋ฆด๋ฆฌ์Šค์— ๋งž์ถฐ ๊ธฐ๋ณธ ES6 ์›น ๊ตฌ์„ฑ ์š”์†Œ๋กœ์˜ ์ด๋™์„ ๊ณ„ํšํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์—ญ์‚ฌ์ ์œผ๋กœ ์ถฉ๋Œ์€ ์ถœ์‹œ ํ›„ ํ•œ ๋‹ฌ ์ •๋„ ํ›„์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

@zeke
์˜ˆ, Chromium 59 ๋ถ„๊ธฐ์˜ GTK3์— ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋‹ค๊ฐ€์˜ค๋Š” Chromium 61 ์—…๊ทธ๋ ˆ์ด๋“œ์—์„œ GTK2์—์„œ GTK3์œผ๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@cpoole ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ Chromium 61์ด Electron์— ์ƒ๋ฅ™ํ•  ์‹œ๊ธฐ๋ฅผ ์˜ˆ์ธกํ•˜์ง€ https://github.com/electron/libchromiumcontent/pull/335 ์—์„œ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค @tonygach , @cifratila , @alexeykuzmin , @alespergl , ๊ธฐํƒ€?)์ด ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋•๊ณ  ์žˆ์–ด GitHub์˜ Electron ํŒ€์ด CI๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  Electron ๋ฆด๋ฆฌ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ์›ํ™œํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” ๋‚™๊ด€์ ์ž…๋‹ˆ๋‹ค :)

GTK3 ์ง€์›์„ ์›ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

deepinscreenshot_select-area_20170830114704

@deikatsuo ๋ฌด์Šจ ๋ธŒ๋ผ์šฐ์ €์ธ๊ฐ€์š”? ํฌ๋กฌ๊ณผ ์—ํ”ผํŒŒ๋‹ˆ๊ฐ€ ์•„๊ธฐ๋ฅผ ๋‚ณ์€๋“ฏ...

@mdsiton ์—ํ”ผํŒŒ๋‹ˆ ๐Ÿ‘

์ด๊ฒƒ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@ziggy42 ์ตœ์‹  ํฌ๋กฌ 61(https://github.com/electron/electron/pull/10213)์— ์ด๋ฏธ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ์—์„œ ๋ณ‘ํ•ฉํ•˜๊ณ  ์–ด๋Š ์‹œ์ ์—์„œ ๋ฆด๋ฆฌ์Šคํ•˜๋Š” ๊ฒƒ๋ฟ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†์–ด, ๊ทธ ๋ชป์ƒ๊ธด ํŒŒ์ผ ์„ ํƒ๊ธฐ๊ฐ€ ๋‚ด ๋ˆˆ์„ ๋ถˆํƒœ์šด๋‹ค :fire:

์ด ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด Electron ์•ฑ์—์„œ CSS๊ฐ€ ํ—ˆ์šฉ๋ฉ๋‹ˆ๊นŒ?

๊ทธ๋ž˜์„œ ํฌ๋กฌ 61์ด ํ•ฉ์ณ์กŒ๋Š”๋ฐ gtk3๋„ ๊ฐ™์ด ๋‚˜์˜ค๋‚˜์š”?

Electron์€ ํ˜„์žฌ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ GTK3์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋‹ค์Œ ๋งˆ์ด๋„ˆ/๋ฉ”์ด์ € ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ณต๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

@ahjolinna

์ด ํ† ๋ก ์— ์•ฝ๊ฐ„์˜ ์ •์‹ ์„ ๋ฐ”์ณ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ ์–ธ๊ธ‰ํ•œ KaOS์— ๊ด€์‹ฌ์ด ๋งŽ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์€ ๋ช‡ ๋…„ ๋™์•ˆ Chakra๋ฅผ ์œ„๋Œ€ํ•˜๊ฒŒ ๋งŒ๋“  ๋ฐ”๋กœ ๊ทธ ์‚ฌ๋žŒ, IMHO์— ์˜ํ•ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

@๋ชจ๋‘

GTK+ 3๋Š” ์–ธ์ œ ์ถœ์‹œ๋˜์—ˆ๋‚˜์š”?

7๋…„ ์ „.

์ž ์‹œ ๋™์•ˆ ์ž…์—์„œ ๋…น๋„๋กํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋ฆฌ๊ณ  ์ˆ˜๋งŽ์€ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์—ฌ์ „ํžˆ 2์œ„์— ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์‹์€ ์ฆ๊ฑฐ์›€์ด๊ธฐ ๋•Œ๋ฌธ์—..

XFCE, Mate ๋ฐ ๊ธฐํƒ€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ฝ”๋“œ๋ฅผ ์ด์‹ํ•˜๋Š” ๋ฐ 6๋…„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋Š” 2 ์ด๋‚ด์— GTK์—์„œ Qt๋กœ ์™„์ „ํžˆ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค: GTK+๋Š” GNOME์— ์˜ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ repo๋„ ๊ฑฐ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.
๋ณธ์งˆ์ ์œผ๋กœ ์ •์˜์— ๋”ฐ๋ผ GNOME์šฉ์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ๊ทธ ๋ฐ–์˜ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

Qt๋Š” ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ง„์ •ํ•œ ๊ธฐ๋ณธ ํ†ตํ•ฉ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ „์ž๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ทธ๋†ˆ ๊ฐ€๊ฒŒ?

์ข‹์€ ๊ฒƒ.

์˜๋ฆฌํ•œ ์ƒ๊ฐ.

๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋ฌผ๋ก  ์ด ์žฅ๋ฉด์˜ ๋‹ค๋ฅธ ๋งŽ์€ ์ธก๋ฉด์—์„œ๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ค‘๋ณต๋˜๊ณ  ์˜ค๋ž˜๋˜๊ณ  ์˜ค๋ž˜๋œ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ข…์ข… ์ค‘๋…์„ฑ ์•ฝ๋ฌผ๋กœ ์ทจ๊ธ‰๋˜์–ด ์ค‘๋…์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ƒˆ๋กญ๊ณ  ์˜๋ฆฌํ•˜๊ณ  ํ˜์‹ ์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์˜คํ•ด์™€ ์ˆœ์ˆ˜ํ•œ ๋ฌด์ง€์— ์˜ํ•ด ๋‹ค๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

10, 12๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ GTK+์—์„œ Qt๋กœ ์ „ํ™˜๋œ ๋ฐ˜๋ฉด, ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๊ฐ€ ํ•œ ๋ฒˆ๋„ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‹ค์‹œ ํ˜€์—์„œ ๋…น๊ฒŒ ํ•˜์‹ญ์‹œ์˜ค. ์ฆ‰, ํ†ตํ•ฉ๋œ ์ „์ฒด UI ์ฝ”๋“œ๋ฅผ ์™„์ „ํžˆ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ž์ฃผ ์ค‘์ฒฉ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, ๊ธฐ์กด ๋„๊ตฌ์˜ ์ฃผ์š” ์—…๊ทธ๋ ˆ์ด๋“œ์™€ ๋น„๊ตํ•˜์—ฌ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค ๋ชจ๋‘๋Š” ์˜ค๋Š˜๊นŒ์ง€ ๊ทธ ๊ฒฐ์ •์— ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋“ค์—๊ฒŒ ๋ฌป๋‹ค.

๋Œ€์•ˆ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ๋ฌด๋ฆฌ๋ฅผ ๋”ฐ๋ฅด๊ธฐ ์ „์—.

@ahjolinna ๊ฐ€ VLC, Wireshark, LXQt ๋ฐ ๊ธฐํƒ€ ๋†€๋ผ์šด ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ๋„ ์ด์ „์— GTK๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ด๋“ค ์ค‘ ํ•œ ์‚ฌ๋žŒ์˜ ๋น„๋””์˜ค๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

GTK๋Š” Chromium์—์„œ Aura์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ์ด๋Š” Linux/freeBSD/Solaris์—์„œ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
Windows ๋ฐ macOS ๋นŒ๋“œ์—๋Š” ๋ฌด๋ฃŒ์ž…๋‹ˆ๋‹ค.

:๋ˆˆ์ง“:

@ShalokShalom ์˜ ์š”์ ์„ ์–ป์—ˆ

ํฌํฌ ๋ฒ„ํŠผ์€ ์ƒ๋‹จ์— ์žˆ์Šต๋‹ˆ๋‹ค btw, ์ž์œ ๋กญ๊ฒŒ ๋Š๋ผ์‹ญ์‹œ์˜ค.

์˜ˆ, ์ด๊ฒƒ์€ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์—ฐ๋งˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. GTK์—๋Š” ํ†ต์ฆ์„ ์œ ๋ฐœํ•˜๋Š” ๋ถˆํ•„์š”ํ•œ ํŒŒ์†์ด ๋„ˆ๋ฌด ๋งŽ์œผ๋‹ˆ Qt๊ฐ€ ๋” ๋‚˜์€ ์„ ํƒ์ด์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • IF QtWebEngine์ด ๊ธฐ๋ณธ ํฌ๋กฌ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ถฉ๋ถ„ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • IF QtWebEngine๋Š” ์‹ ์†ํ•˜๊ฒŒ ์ตœ์‹  ํฌ๋กฌ์„ ์ถ”์ 

ํ† ๋ก ์„ ๋” ์ ์ ˆํ•œ ๊ณณ์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. @ShalokShalom , ์—ฌ๊ธฐ์—์„œ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด๊ณ  ์ง€๊ธˆ๋ณด๋‹ค ๋”

VLC , Wireshark, LXQt ๋ฐ ๊ธฐํƒ€ ๋†€๋ผ์šด ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ๋„ ์ด์ „์—๋Š” GTK๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฑด ์‚ฌ์‹ค์ด ์•„๋‹ˆ๋‹ค. VLC๋Š” GTK๊ฐ€ ์•„๋‹Œ Qt ์ด์ „์— wxWidgets๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค: https://wiki.videolan.org/WxWidgets_Interface/

๋‚ด ์ƒ๊ฐ์— GTK ์‚ฌ๋žŒ๋“ค์€ ๊ฝค ์˜ค๋žซ๋™์•ˆ 3.x ์‹œ๋ฆฌ์ฆˆ์—์„œ ํŒŒ์† ๋ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ์— ๋Œ€ํ•ด ์ถฉ๋ถ„ํžˆ ์ž˜ ์ „๋‹ฌํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ •ํ–ˆ์œผ๋ฉฐ https:// ์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋” ์ข‹๊ณ  ๋” ๋ช…ํ™•ํ•œ ์žฅ๊ธฐ์  ์•ˆ์ •์„ฑ์œผ๋กœ ๋ฏธ๋ž˜์— ๋” ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค

๋˜ํ•œ Qt์™€ GTK๋Š” ์—ญ์‚ฌ์™€ ๋ฐฐ๊ฒฝ, ๋ชฉํ‘œ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— 1:1๋กœ ๊ณต์ •ํ•˜๊ฒŒ ๋น„๊ตํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ๋‘˜ ๋‹ค ๊ด€์ ์— ๋”ฐ๋ผ ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

GTK๊ฐ€ GNOME ํ”„๋กœ์ ํŠธ๋งŒ์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค๋Š” ๊ฒƒ๋„ ์ œ ์ƒ๊ฐ์—๋Š” ๋ถˆ๊ณต์ •ํ•œ ์ด๊ด„์  ์ง„์ˆ ์ž…๋‹ˆ๋‹ค.

ํ•˜์•„! ๋‚˜๋Š” ๊ทธ ๊ณ„ํš์— ๋Œ€ํ•ด ์ •๋ง๋กœ ๋ชฐ๋ž๋‹ค. ๋“œ๋””์–ด ๋ฐฐ์šด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด CSS์˜ ๋ชจ๋“  ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์‹ค์ œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋“ค์€ ๊ฒƒ์€โ€ฆ ์Œโ€ฆ ํŽธ์‹ฌ GTK 4.0์€ GTK 4๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค . ๊ทธ๋ž˜์„œ ๋งˆ์นจ๋‚ด ๊ฑฐ์˜ semver๋งŒํผ ์ข‹์€ ๊ฒƒ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค! ๊ทธ๋“ค์€ 20๋…„ ์ „์— Qt๊ฐ€ ํ–ˆ๋˜ ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๊ฐ™์€ ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ˜

์ด ํŠธ์œ„ํ„ฐ ๊ฒŒ์‹œ๋ฌผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณง ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธฐ๋ณธ GTK3 ์ง€์›์ด ํฌํ•จ๋œ Electron์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Electron 2.0.0-beta.1์€ ์—…๋ฐ์ดํŠธ๋œ Chromium ๋ฐ Node.js, macOS ์ธ์•ฑ ๊ตฌ๋งค, Linux์šฉ GTK3 ์ง€์› ๋“ฑ์œผ๋กœ

์˜ˆ. ์ด์— ๋Œ€ํ•œ ์‹ค์ œ ์ž‘์—…์€ Chromium ์ž‘์„ฑ์ž๊ฐ€ ์ˆ˜ํ–‰ํ–ˆ์œผ๋ฉฐ Electron์€ Electron 2.0.0์˜ Chromium ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Electron์˜ ์ž์ฒด ์ฝ”๋“œ๋Š” https://github.com/electron/electron/pull/11879 ์—์„œ GTK3ified๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์ด๊ฒƒ์€ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์—ฐ๋งˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. GTK์—๋Š” ํ†ต์ฆ์„ ์œ ๋ฐœํ•˜๋Š” ๋ถˆํ•„์š”ํ•œ ํŒŒ์†์ด ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค, Qt
๋” ๋‚˜์€ ์„ ํƒ์ด ๋˜์—ˆ์„ ๊ฒƒ์ด๋‹ค
IF QtWebEngine์ด ๊ธฐ๋ณธ ํฌ๋กฌ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ถฉ๋ถ„ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
QtWebEngine์ด ์ตœ์‹  Chromium์„ ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ฒŒ ์ถ”์ ํ•˜๋Š” ๊ฒฝ์šฐ

๊ธ€์Ž„, ์ด๊ฒƒ์ด ์ฃผ์š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ๊ฐ€์žฅ ๋นจ๋ฆฌ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌํ˜„์€ ์žฅ๊ธฐ์ ์ธ ์œ ์ง€ ๊ด€๋ฆฌ์™€ ๋งค์šฐ ๋‹ค๋ฅด๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ž์ฃผ ์žŠ์Šต๋‹ˆ๋‹ค.

์–ธ๊ธ‰๋œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋‚ด ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ๋งค์šฐ ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค.

GTK3 ํฌํŠธ์—์„œ ์‹ค์ œ๋กœ ์ž‘์—…ํ•˜๋Š” ์ฝ”๋”์˜ ์ˆ˜์™€ ์ „์ฒด UI ์ฝ”๋“œ๋ฅผ ์ƒˆ ํˆดํ‚ท์— ์ด์‹ํ•˜๋Š” ์ฝ”๋”์˜ ์ˆ˜๋ฅผ ๋น„๊ตํ•˜๋ฉด ๊ทธ ์ฐจ์ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋†€๋ผ์šด์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ 'GTK์—์„œ Qt๋กœ: ์ด์ƒํ•œ ์—ฌ์ •'์ด๋ผ๋Š” ๋™์˜์ƒ์„ ๊ฒŒ์‹œํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Qt์˜ ์ง€์›์„ ํ•ดํ‚นํ•˜๋Š” ๋Œ€์‹  ๋‹จ์ˆœํžˆ ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ์‹ ์†Œํ”„ํŠธ์›จ์–ด์— ์ง‘์ค‘ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ทธ๊ฒƒ์€ ์žฅ๊ธฐ์ ์ธ ๊ฒฐ์ •์„ ์™„์ „ํžˆ ๋ฌด์‹œํ•˜๋Š” '๋‚˜๋Š” _๋ณด์ด๋Š”_ ์ค€๋น„๋œ ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค'๋Š” ๊ต๋ฆฌ์ž…๋‹ˆ๋‹ค. ์˜ˆ, ์ฒ˜์Œ์—๋Š” ์กฐ๊ธˆ ๋” ๋งŽ์€ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋‹จ ๊ตฌํ˜„๋˜๋ฉด ์ตœ์‹  ํˆดํ‚ท์˜ ์ด์ ์„ ํ™•์‹คํžˆ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

QtWebEngine์ด Chrome์„ ๊ทธ๋ ‡๊ฒŒ ๋นจ๋ฆฌ ๋”ฐ๋ผ๊ฐ€์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ๋„ ๊ทธ๋ ‡๊ฒŒ ๊ณผ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๋ฉฐ Qupzilla๋Š” ํŠนํžˆ KaOS์™€ ๊ฐ™์€ ์ ํ•ฉํ•œ ํ™˜๊ฒฝ์—์„œ ๋†€๋ผ์šด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ์„ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Qupzilla ๋ฐ ๊ธฐํƒ€ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋‹จ์ผ ์ฝ”๋”๋กœ ์œ ์ง€ ๊ด€๋ฆฌ๋˜๋Š” ๋†€๋ผ์šด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ž…์ฆ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— '๊ธฐ๋ณธ Chromium์— ๋Œ€ํ•œ ๋” ๋งŽ์€ ์•ก์„ธ์Šค'๊ฐ€ ํ•„์š”ํ•˜๊ณ  'QtWebEngine์ด Chromium์„ ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ฒŒ ๋”ฐ๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค'๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

Electron์˜ ์™„์ „ํ•œ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ์„œ ๋” ๋งŽ์€ ์•ก์„ธ์Šค์™€ ๋” ๋น ๋ฅธ ํŒ”๋กœ์ž‰์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ์–ด๋•Œ์š”?

์ด์ œ ๋งŽ์€ ํ”„๋กœ์ ํŠธ์—์„œ ์ด ์„œํˆฌ๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์— ์•‰์•„ ์žˆ๊ณ  ์†Œ๊ทœ๋ชจ ํŒ€์€ ๊นŠ์ด ์ค‘์ฒฉ๋œ ์ฝ”๋“œ์˜ 40-60%๋ฅผ Qt๋กœ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ด์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GTK 2์—์„œ GTK 3๊นŒ์ง€ ๊ทธ๋“ค์ด ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•œ ์ผ, ์ด๋Š” ๋งค์šฐ ๋†€๋ผ์šด ์ผ์ž…๋‹ˆ๋‹ค. ๋งํ–ˆ๋“ฏ์ด: ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ์ ํŠธ๋Š” ์ฃผ์š” ๋ฒ„์ „ ์„

๊ทธ๋ฆฌ๊ณ  ๊ฑฐ์˜ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์„ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ? ์ฒ˜์Œ์— ๊ณผํ•™ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์›์‹œ์ ์ธ ๊ฒฐ์ •์ด ๊ณ„์†ํ•ด์„œ ํผ์กŒ๋‹ค๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ์Šฌํ”ˆ ์ผ์ž…๋‹ˆ๋‹ค.

ํ‰ํ™” :)

@ShalokShalom , "์˜ค๋ž˜๋œ ์†Œํ”„ํŠธ์›จ์–ด"๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? GTK+? ๊ทธ๋Ÿฐ ๋ง์„ ํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ๋‚˜์š”?

์ด Qt ์ŠคํŒธ์€ ๊ทธ๋งŒํ•ด ์ฃผ์„ธ์š”. ์ด๊ฒƒ์€ GTK 3 ํฌํŠธ์— ๊ด€ํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์œ ์ง€ ๊ด€๋ฆฌ์ž์—๊ฒŒ Qt๋กœ ์ „ํ™˜ํ•˜๋„๋ก ์„ค๋“ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋ฉด ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. Qt ํŒฌ๋ณด์ด์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์•„๋‹Œ ๊ตฌํ˜„ ์ง„ํ–‰ ์ƒํ™ฉ์— ๋Œ€ํ•œ ๋‰ด์Šค๋ฅผ ๋ฐ›๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ณผ๋„ํ•œ ์ฃผ์ œ ์™ธ ํ† ๋ก ์œผ๋กœ ์ธํ•ด ์ด ๋Œ€ํ™”๋ฅผ ์ž ๊ธ‰๋‹ˆ๋‹ค.

์ž ๊ธˆ์€ ์ฆ์ƒ๋งŒ ํ•ด๊ฒฐํ•˜์ง€๋งŒ GTK3๋กœ์˜ ์ด๋™์ด ๋งˆ๋ฌด๋ฆฌ๋˜๊ณ  GTK2์—์„œ GTK3์œผ๋กœ ์ด๋™ํ•˜๋Š” ์ด ๋ฌธ์ œ์˜ ์ฃผ์ œ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•  ๋‚ด์šฉ์ด ๋งŽ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ•ฉ๋ฆฌ์ ์ด๊ณ  ๋น ๋ฅธ ์ˆ˜์ •์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰