https://wiki.archlinux.org/api.php?action=feedcontributions&user=Sukbeom&feedformat=atomArchWiki - User contributions [en]2024-03-28T22:02:59ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Window_manager_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=451791Window manager (한국어)2016-09-24T07:54:39Z<p>Sukbeom: /* Stacking window managers */</p>
<hr />
<div>[[Category:Window managers (한국어)]]<br />
[[ar:Window manager]]<br />
[[en:Window manager]]<br />
[[es:Window manager]]<br />
[[fa:Window manager]]<br />
[[it:Window manager]]<br />
[[ja:ウィンドウマネージャ]]<br />
[[ru:Window manager]]<br />
[[uk:Window manager]]<br />
[[zh-cn:Window manager]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Xdg-menu}}<br />
{{Related|Xorg}}<br />
{{Related|xinitrc}}<br />
{{Related|Start X at Login}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:Window manager|윈도우 매니저]] (Window Manager, WM)은 그래픽 유저 인터페이스(GUI)의 윈도우 시스템 내에서의 창의 위치와 모양을 관리하는 시스템 소프트웨어이다. 데스크탑 환경([[desktop environment]], DE)의 일부 혹은 독립된 형태로 사용된다. <br />
<br />
''이 문서에서는 '창 관리자' 대신 '윈도우 매니저'라는 용어를 사용한다.''<br />
<br />
== 개요 ==<br />
<br />
창 관리자(Window Manager)는 그래픽 어플리케이션들이 나타나는 프레임(혹은 윈도우)의 모양이나 동작을 관리하는 X 클라이언트로서 프레임의 경계, 타이틀바, 크기 등을 결정한다. 또한 창 크기 조절 기능이나 [[Fluxbox]]와 같은 윈도우 탭 기능 혹은 창 달라붙기 기능(Sticking, [[Window Maker]]의 Sticking 포함된 기능 [http://windowmaker.org/dockapps/ dockapps] 참고) 등을 제공한다. 몇몇 윈도우 매니저는 응용프로그램 실행을 위한 메뉴나 윈도우 매니저 자체 설정을 위한 간단한 유틸리티들을 제공하기도 한다.<br />
<br />
윈도우 매니저는 X 서버와 클라이언트와 상호작용을 위해 [http://standards.freedesktop.org/wm-spec/wm-spec-latest.html Extended Window Manager Hints] 이라는 표준 정의를 사용한다.<br />
<br />
몇몇 윈도우 매니저들은 [[desktop environment]]의 일부로서 개발되어 데스크탑 아이콘, 폰트, 도구모음, 배경화면, 데스크탑 위젯 등의 유저에게 일관된 사용환경을 제공한다.<br />
<br />
반면, 그 외의 다른 윈도우 매니저들은 데스크탑 환경의 일부분이 아닌 독립된 형태로 사용되도록 개발되어 사용자들이 사용할 수 있는 프로그램을 직접 선택할 수 있도록 한다. 때문에 사용자 기호에 맞도록 더 가볍고 커스터마이징 된 사용환경을 만들 수 있다. 데스크탑 아이콘이나 툴바, 배경화면, 데스크탑 위젯 등과 같은 부가 기능들은 관련된 어플리케이션들을 추가적으로 설치하여 사용할 수도 있다. (''일반적으로 Gnome에서는 ''Mutter'' 또는 ''Metacity'', KDE에서는 ''Kwin''을 윈도우 매니저로 사용하고 설치 시 다양한 기본 프로그램이 설치된다. 하지만, 데스크탑 환경을 설치하지 않고 윈도우 매니저만을 설치하여 사용하는 경우 그러한 기본 프로그램이 설치되지 않기 때문에 사용할 수 있는 프로그램을 직접 선택할 수 있다고 언급된 것이다.'')<br />
<br />
몇몇 독립된 형태의 윈도우 매니저들(standalone WMs)은 데스크탑 환경의 기본 윈도우 매니저를 대체하여 사용될 수 있기도 하다.<br />
<br />
윈도우 매니저를 설치하기 전에, X 서버 설치가 반드시 되어야 한다.([[Xorg]]를 참고)<br />
<br />
=== 종류 ===<br />
<br />
* [[#Stacking window managers|Stacking]](혹은 floating) Stacking 윈도우 매니저는 윈도우즈와 맥 OS X와 같은 운영체제에서 사용된다. 마치 책상 위에 놓여진 종이들처럼 창들을 다른 창들 위에 쌓아 놓는 형태를 가진다. (아치 리눅스 위키 페이지 [[:Category:Stacking WMs]] 참고.)<br />
* [[#Tiling window managers|Tiling]] 윈도우 매니저는 Stacking과 다르게 창들이 다른 창 위에 놓여 겹치지지 않는다. 대신, 타일처럼 화면이 분할되며 마우스보다 조합키를 통해 프로그램의 창을 조작하고 관리한다. Tiling 윈도우 매니저는 분할되는 창 레이아웃에 대해 직접 수정이 가능하지만 미리 정의된 레이아웃이 제공되기도 한다. (아치 리눅스 위키 페이지 [[:Category:Tiling WMs]] 참고.)<br />
* [[#Dynamic window managers|Dynamic]] 윈도우 매니저는 Tiling 방식과 Floating 방식 사이에서 창 관리 기법을 전환할 수 있는 윈도우 매니저이다. 자세한 정보는 [[:Category:Dynamic WMs]]를 참고한다.<br />
<br />
윈도우 매니저들의 비교를 확인하고 싶다면 [[Comparison of tiling window managers]]와 [[Wikipedia:Comparison of X window managers]] 페이지를 참고한다.<br />
<br />
== 윈도우 매니저 목록 ==<br />
<br />
=== Stacking window managers ===<br />
<br />
* {{App|[[2bwm]]|floating 방식의 빠른 윈도우 매니저로서 창 프레임에 2개의 경계선을 가지고 있는 특징이 있다. XCB 라이브러리로 개발되었으며 mcwm 윈도우 매니저를 기초로 하여 Michael Cardell에 의해 개발되었다. 모든 것들이 키보드만으로 접근이 가능하며 포인팅 장치로도 창의 이동이나 크기조절, 창의 우선순위 조절이 가능하다. 2bwm 이라는 이름은 mcwm-beast에서 바뀌었다.|https://github.com/venam/2bwm|{{AUR|2bwm}}}}<br />
<br />
* {{App|aewm|X11 환경을 위한 윈도우 매니저로서 마우스로도 완벽하게 조작 가능하다. 하지만 1997년에 개발된 것으로 적은 메모리 환경에서 직관적 인터페이스보다 기능 위주의 성능을 추구했던 당시의 트렌드의 영향으로 윈도우 프레임을 제외하고 제공되는 UI는 전무하며 조작키 또한 vi 스타일을 따른다. |http://www.red-bean.com/decklin/aewm/|{{AUR|aewm}}}}<br />
<br />
* {{App|[[Wikipedia:AfterStep|AfterStep]]|UNIX 환경의 X 윈도우 시스템을 위한 윈도우 매니저이다. NeXTStep 인터페이스 환경에 기초하여 사용자에게 깔끔하고 세련된 데스크탑 환경을 제공한다. 유연한 데스크탑 설정과 UI의 미적 요소들을 개선하고 시스템 자원의 효율적 사용을 목표로 개발되었다.|http://www.afterstep.org/|{{AUR|afterstep}}}}<br />
<br />
* {{App|[[Blackbox]]|X 윈도우 시스템을 위한 가볍고 빠른 윈도우 매니저로서 C++로 빌드되었으며 라이브러리의 의존성이 전혀 없는 것이 장점이다.|http://blackboxwm.sourceforge.net/|{{Pkg|blackbox}}}}<br />
<br />
* {{App|[[Compiz]]|최상위의 창들을 텍스쳐 오브젝트에 바인딩 시키기 위해 GLX_EXT_texture_from_pixmap을 사용하는 OpenGL compositing manager이다. 플러그인 시스템을 사용하고 대부분의 그래픽 하드웨어에서 동작하도록 설계되어 유연한 특징을 가지고 있다.|https://launchpad.net/compiz|{{AUR|compiz}}}}<br />
<br />
* {{App|cwm|처음에는 evilwm에서 파생된 윈도우 매니저이지만 후에 처음부터 다시 작성되었다. cwm은 간단하며 창 검색 기능과 같이 유용한 기능들을 제공한다.|http://monkey.org/~marius/cwm/cwm.1.a|{{AUR|cwm}}}}<br />
<br />
* {{App|eggwm|가벼은 QT4/QT5 윈도우 매니저이다.|{{AUR|eggwm-qt5}}|{{AUR|eggwm}}}}<br />
<br />
* {{App|[[Enlightenment]]|Enlightenment는 Linux/X11와 다른 것들을 위한 윈도우 매니저일 뿐만 아니라 전체 라이브러리 집합으로서 이전에 전통적인 툴킷과 씨름해야만 했던 작업들을 손쉽게 미려한 유저 인터페이스로 개발할 수 있도록 해준다.|http://www.enlightenment.org/|{{Pkg|enlightenment}}}}<br />
<br />
* {{App|[[evilwm]]|X Window System 환경을 위한 'minimalist' 윈도우 매니저이다. 여기서 'minimalist'는 사용하기에 적합하지 않을 정도로 아무런 기능이 없다는 의미보다 윈도우 매니저에서 불필요한 요소들을 제거하였다는 의미로 사용되었다.|http://www.6809.org.uk/evilwm/|{{AUR|evilwm}}}}<br />
<br />
* {{App|[[Fluxbox]]|Blackbox 0.61.1 코드에서 파생되어 개발된 윈도우 매니저로서 굉장히 가볍고 다루기 간편할 뿐만 아니라 빠르고 강력한 데스크탑 환경을 만들기 위한 주요 기능들도 완벽하게 제공된다. Fluxbox는 C++로 개발되었으며 MIT License를 가지고 있다.|http://www.fluxbox.org/|{{Pkg|fluxbox}}}}<br />
<br />
* {{App|[[Wikipedia:FLWM|Flwm]]|몇 가지 윈도우 매니저들에서 아이디어를 조합하여 개발된 윈도우 매니저로서 처음 Chris Cannam이 wm2에 영향을 받아 해당 코드를 기초로 개발되었다.|http://flwm.sourceforge.net/|{{AUR|flwm}}}}<br />
<br />
* {{App|[[FVWM]]|강력한 ICCCM 호환 가상 데스크탑 윈도우 매니저로서 개발도 활발하고 지원도 상당하다.|http://www.fvwm.org/|{{Pkg|fvwm}}}}<br />
<br />
* {{app|[http://elementaryos.org/journal/meet-gala-window-manager Gala]|elementary os의 미려한 윈도우 매니저로서 [[Pantheon]] 패키지에 포함되어 있다. 마찬가지로 compositing manager이며 libmutter 라이브러리로 개발되었다.|https://launchpad.net/gala|{{aur|gala-bzr}}}}<br />
<br />
* {{App|Goomwwm|cleanroom 소프트웨어 프로젝트로써 C로 개발된 X11 윈도우 매니저이다. 창을 작은 플로팅 레이아웃으로 관리하며 창 전환, 크기조절, 이동, Tagging, 분할 등의 동작들을 키보드로 조작한다. 빠르고 가벼우며 모드가 없이 Xinerama, EWMH 호환성을 지원한다.|http://aerosuidae.net/goomwwm/|{{AUR|goomwwm}}}}<br />
<br />
* {{App|[[IceWM]]|X 윈도우 시스템을 위한 윈도우 매니저로서 성능과 심플함에 초점을 두고 개발되었다.|http://www.icewm.org/|{{Pkg|icewm}}}}<br />
<br />
* {{App|[[jbwm]]|jbwm은 evilwm 윈도우 매니저에서 파생된 것으로, 최소 설정 파일의 크기가 대략 16kb이다. 작은 바이너리 크기와 유용성에 집중하였으며 타이틀바와 XFT 타이틀바, 폰트 렌더링에 대하여 컴파일 시에 옵션을 통해 설정할 수 있다. jbwm은 evilwm보다 조합키를 사용하기에 편한 특징을 가지고 있다.|https://github.com/jefbed/jbwm|{{AUR|jbwm}}}}<br />
<br />
* {{App|[[JWM]]|X11 윈도우 시스템을 위한 윈도우 매니저로서 C로 작성되었고 Xlib 라이브러리만을 사용한다.|http://joewing.net/projects/jwm/index.shtml|{{Pkg|jwm}}}}<br />
<br />
* {{App|Karmen|Johan Veehuizen이 작성한 윈도우 매니저 프로그램이다. "동작"만을 위해 고안되었으며 설정파일도, Xlib을 제외한 다른 라이브러리에 대한 의존성도 없다. 창의 포커스 방식은 click-to-focus이며 ICCCM과 EWMH 호환성을 목표로 하고 있다.|http://karmen.sourceforge.net/|{{AUR|karmen}}}}<br />
<br />
* {{App|[[Wikipedia:KWin|KWin]]|KDE 4.0에서의 기본 윈도우 매니저로서 compositing 지원과 이전 KDE에서 제공되던 모든 기능들을 그대로 지원하면서 Compiz와 비슷한 그래픽 효과도 제공한다. |https://techbase.kde.org/Projects/KWin|{{Pkg|kwin}}}}<br />
<br />
* {{App|lwm|X 환경을 위한 윈도우 매니저이지만 관심있는 사람은 아마 없을 것이다. 아이콘, 버튼, 독, 메뉴 등의 기본적인 것이 아무 것도 없다. 심지어 설정할 수 있는 방법조차 없다. 만약 언급된 것들을 원한다면 다른 윈도우 매니저를 찾는 것이 낫다. 본인 컴퓨터의 디스크 공간과 추가적인 물리 메모리를 정복하고 싶은 사용자라면 이 윈도우 매니저가 작은 도움이 될 수도 있다.|http://www.jfc.org.uk/software/lwm.html|{{Pkg|lwm}}}}<br />
<br />
* {{App|Marco|MATE의 윈도우 매니저로서 Metacity 에서 갈라져 나온 것이다.|https://github.com/mate-desktop/marco|{{Pkg|marco}}}}<br />
<br />
* {{App|[[Wikipedia:Metacity|Metacity]]|작고 안정적이며 본 역할에 충실한 윈도우 매니저로서 GNOME3 이전까지 오랫동안 사랑받아왔다.|http://blogs.gnome.org/metacity/|{{Pkg|metacity}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter_(software)#Muffin|Muffin]]|Cinnamon의 윈도우 매니저이자 compositing 매니저로서 Mutter에서 파생되었다. Clutter를 기반으로 하며 OpenGL을 사용한다.|https://github.com/linuxmint/muffin/|{{Pkg|muffin}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter (window manager)|Mutter]]|GNOME에서 사용되는 윈도우 매니저이자 compositing 매니저로서 OpenGL을 사용하고 Clutter를 기초로 개발되었다.|http://git.gnome.org/browse/mutter/|{{Pkg|mutter}}}}<br />
<br />
* {{App|[[Wikipedia:Motif_Window_Manager|MWM]]|Motif toolkit을 기반로 개발된 윈도우 매니저이다.|http://sourceforge.net/projects/motif/|{{Pkg|openmotif}}, {{Pkg|lesstif}}}}<br />
<br />
* {{App|[[Openbox]]|커스터마이징의 자유도가 높고 extensive 표준들을 지원하는 윈도우 매니저이다.|http://openbox.org/wiki/Main_Page|{{Pkg|openbox}}}}<br />
<br />
* {{App|[[pawm]]|Window manager for the X Window system. So it is not a 'desktop' and does not offer you a huge pile of useless options, just the facilities needed to run your X applications and at the same time having a friendly and easy to use interface.|http://www.pleyades.net/pawm/|{{Pkg|pawm}}}}<br />
<br />
* {{App|[[PekWM]]|Window manager that once upon a time was based on the aewm++ window manager, but it has evolved enough that it no longer resembles aewm++ at all. It has a much expanded feature-set, including window grouping (similar to Ion, PWM, or Fluxbox), auto-properties, Xinerama, keygrabber that supports keychains, and much more.|http://www.pekwm.org/projects/pekwm|{{Pkg|pekwm}}}}<br />
<br />
* {{App|[[Sawfish]]|Extensible window manager using a Lisp-based scripting language. Its policy is very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. All high-level WM functions are implemented in Lisp for future extensibility or redefinition.|http://sawfish.wikia.com/wiki/Main_Page|{{AUR|sawfish}}}}<br />
<br />
* {{App|TinyWM|Tiny window manager created as an exercise in minimalism. It may be helpful in learning some of the very basics of creating a window manager. It is comprised of approximately 50 lines of C. There is also a Python version using python-xlib.|http://incise.org/tinywm.html|{{AUR|tinywm}} {{AUR|tinywm-git}}}}<br />
<br />
* {{App|[[twm]]|Window manager for the X Window System. It provides titlebars, shaped windows, several forms of icon management, user-defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer button bindings.|http://cgit.freedesktop.org/xorg/app/twm/|{{Pkg|xorg-twm}}}}<br />
<br />
* {{App|[[Wikipedia:UDE|UWM]]|The ultimate window manager for UDE.|http://udeproject.sourceforge.net/|{{Pkg|ude}}}}<br />
<br />
* {{App|WindowLab|Small and simple window manager of novel design. It has a click-to-focus but not raise-on-focus policy, a window resizing mechanism that allows one or many edges of a window to be changed in one action, and an innovative menubar that shares the same part of the screen as the taskbar. Window titlebars are prevented from going off the edge of the screen by constraining the mouse pointer, and when appropriate the pointer is also constrained to the taskbar/menubar in order to make target menu items easier to hit.|http://nickgravgaard.com/windowlab/|{{Pkg|windowlab}}}}<br />
<br />
* {{App|[[Window Maker]]|X11 window manager originally designed to provide integration support for the GNUstep Desktop Environment. In every way possible, it reproduces the elegant look and feel of the NEXTSTEP user interface. It is fast, feature rich, easy to configure, and easy to use. It is also free software, with contributions being made by programmers from around the world.|http://windowmaker.org/|{{Pkg|windowmaker}}}}<br />
<br />
* {{App|WM2|Window manager for X. It provides an unusual style of window decoration and as little functionality as its author feels comfortable with in a window manager. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who do not particularly want their window manager to be too friendly. |http://www.all-day-breakfast.com/wm2/|{{AUR|wm2}}}}<br />
<br />
* {{App|[[Xfwm]]|The [[Xfce]] window manager manages the placement of application windows on the screen, provides beautiful window decorations, manages workspaces or virtual desktops and natively supports multiscreen mode. It provides its own compositing manager (from the X.Org Composite extension) for true transparency and shadows. The Xfce window manager also includes a keyboard shortcuts editor for user specific commands and basic windows manipulations and provides a preferences dialog for advanced tweaks.|http://www.xfce.org/projects/xfwm4/|{{pkg|xfwm4}}}}<br />
<br />
=== Tiling window managers ===<br />
<br />
* {{App|[[Bspwm]]|bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. It has support for EWMH and multiple monitors, and is configured and controlled through messages.|https://github.com/baskerville/bspwm|{{Pkg|bspwm}}}}<br />
<br />
* {{App|[[Herbstluftwm]]|Manual tiling window manager for X11 using Xlib and Glib. The layout is based on splitting frames into subframes which can be split again or can be filled with windows (similar to i3/ musca). Tags (or workspaces or virtual desktops or …) can be added/removed at runtime. Each tag contains its own layout. Exactly one tag is viewed on each monitor. The tags are monitor independent (similar to xmonad). It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup. (similar to wmii/musca).|http://herbstluftwm.org|{{pkg|herbstluftwm}}}}<br />
<br />
* {{App|howm|A lightweight, tiling X11 window manager that mimics vi by offering operators, motions and modes. Configuration is done through the included {{ic|config.h}} file.|https://github.com/HarveyHunt/howm|{{AUR|howm-x11}}}}<br />
<br />
* {{App|[[Ion3]]|Tiling tabbed X11 window manager designed with keyboard users in mind. It was one of the first of the “new wave" of tiling windowing environments (the other being LarsWM, with quite a different approach) and has since spawned an entire category of tiling window managers for X11 – none of which really manage to reproduce the feel and functionality of Ion. It uses Lua as an embedded interpreter which handles all of the configuration. |http://tuomov.iki.fi/software|{{AUR|ion3}}}}<br />
<br />
* {{App|[[Notion]]|Tiling, tabbed window manager for the X window system that utilizes 'tiles' and 'tabbed' windows.<br />
** Tiling: you divide the screen into non-overlapping 'tiles'. Every window occupies one tile, and is maximized to it<br />
** Tabbing: a tile may contain multiple windows - they will be 'tabbed'.<br />
** Static: most tiled window managers are 'dynamic', meaning they automatically resize and move around tiles as windows appear and disappear. Notion, by contrast, does not automatically change the tiling.<br />
: Notion is a fork of Ion3.|http://notion.sf.net/|{{Pkg|notion}}}}<br />
<br />
* {{App|[[Ratpoison]]|Simple Window Manager with no fat library dependencies, no fancy graphics, no window decorations, and no rodent dependence. It is largely modeled after GNU Screen which has done wonders in the virtual terminal market. Ratpoison is configured with a simple text file. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray.|http://www.nongnu.org/ratpoison/|{{Pkg|ratpoison}}}}<br />
<br />
* {{App|[[Stumpwm]]|Tiling, keyboard driven X11 Window Manager written entirely in Common Lisp. Stumpwm attempts to be customizable yet visually minimal. It does have various hooks to attach your personal customizations, and variables to tweak, and can be reconfigured and reloaded while running. There are no window decorations, no icons, no buttons, and no system tray. Its information bar can be set to show constantly or only when needed.|http://www.nongnu.org/stumpwm/|{{AUR|stumpwm-git}}}}<br />
<br />
* {{App|[[subtle]]|Manual tiling window manager with a rather uncommon approach of tiling: Per default there is no typical layout enforcement, windows are placed on a position (gravity) in a custom grid. The user can change the gravity of each window either directly per grabs or with rules defined by tags in the config. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar. |http://subforge.org/projects/subtle|{{AUR|subtle-git}}}}<br />
<br />
* {{App|[[WMFS]]|Window Manager From Scratch is a lightweight and highly configurable tiling window manager for X. It can be configured with a configuration file, supports Xft (FreeType) fonts and is compliant with the Extended Window Manager Hints (EWMH) specifications, Xinerama and Xrandr. WMFS can be driven with Vi based commands (ViWMFS).|https://github.com/xorg62/wmfs|{{AUR|wmfs}}}}<br />
<br />
* {{App|[[WMFS2]]|Incompatible successor of WMFS. It's even more minimalistic and brings some new stuff.|https://github.com/xorg62/wmfs|{{AUR|wmfs2-git}}}}<br />
<br />
=== Dynamic window managers ===<br />
<br />
* {{App|[[awesome]]|Highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things. |http://awesome.naquadah.org/|{{Pkg|awesome}}}}<br />
<br />
* {{App|[[catwm]]|Small window manager, even simpler than dwm, written in C. Configuration is done by modifying the config.h file and recompiling.|https://github.com/pyknite/catwm|{{AUR|catwm-git}}}}<br />
<br />
* {{App|[[dwm]]|Dynamic window manager for X. It manages windows in tiled, monocle and floating layouts. All of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed. does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed.|http://dwm.suckless.org/|{{Pkg|dwm}}}}<br />
<br />
* {{App|[[echinus]]|Simple and lightweight tiling and floating window manager for X11. Started as a dwm fork with easier configuration, echinus became full-featured re-parenting window manager with EWMH support. It has an EWMH-compatible panel/taskbar, called {{AUR|ourico}}.|http://plhk.ru|{{AUR|echinus}}}}<br />
<br />
* {{App|[[i3]]|Tiling window manager, completely written from scratch. i3 was created because wmii, our favorite window manager at the time, did not provide some features we wanted (multi-monitor done right, for example), had some bugs, did not progress for quite some time, and was not easy to hack at all (source code comments/documentation completely lacking). Notable differences are in the areas of multi-monitor support and the tree metaphor. For speed the Plan 9 interface of wmii is not implemented. |http://i3wm.org/|{{Pkg|i3-wm}}}}<br />
<br />
* {{App|[[FrankenWM]]|Basically monsterwm with floating done right. Features that are added on top of basic mwm include: more layouts (fibonacci, equal stack, dual stack), gaps (and borders) are adjustable on the fly, minimize/maximize single windows, hide/show all windows, resizing master and stack individually, invert stack.|https://github.com/sulami/FrankenWM|{{AUR|frankenwm-git}}}}<br />
<br />
* {{App|[[spectrwm]]|Small dynamic tiling window manager for X11, largely inspired by xmonad and dwm. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and is configured with a text file. It was written by hackers for hackers and it strives to be small, compact and fast. It has a built-in status bar fed from a user-defined script.|https://github.com/conformal/spectrwm/wiki|{{Pkg|spectrwm}}}}<br />
<br />
* {{App|[[Qtile]]|Full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It's easy to write your own layouts, widgets, and built-in commands.It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs. |https://github.com/qtile/qtile|{{AUR|qtile}}}}<br />
<br />
* {{App|[[wmii]]|Small, dynamic window manager for X11. It is scriptable, has a 9P filesystem interface and supports classic and tiling (Acme-like) window management. It aims to maintain a small and clean (read hackable and beautiful) codebase. The default configuration is in bash and [http://rc.cat-v.org rc (the Plan 9 shell)], but programs exist written in ruby, and any program that can work with text can configure it. It has a status bar and launcher built in, and also an optional system tray ({{ic|witray}}). |http://wmii.suckless.org/|{{Pkg|wmii}}}}<br />
<br />
* {{App|[[xmonad]]|Dynamically tiling X11 window manager that is written and configured in Haskell. In a normal WM, you spend half your time aligning and searching for windows. Xmonad makes work easier, by automating this. XMonad is configured in Haskell. For all configuration changes, xmonad must be recompiled, so the Haskell compiler (over 100MB) must be installed. A large library called {{Pkg|xmonad-contrib}} provides many additional features|http://xmonad.org/|{{Pkg|xmonad}}}}<br />
<br />
== 출처 ==<br />
<br />
* http://www.gilesorr.com/wm/<br />
* http://www.slant.co/topics/390/~what-are-the-best-window-managers-for-linux<br />
* https://l3net.wordpress.com/2013/03/17/a-memory-comparison-of-light-linux-desktops/</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Window_manager_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=451788Window manager (한국어)2016-09-24T07:05:06Z<p>Sukbeom: /* 윈도우 매니저 목록 */</p>
<hr />
<div>[[Category:Window managers (한국어)]]<br />
[[ar:Window manager]]<br />
[[en:Window manager]]<br />
[[es:Window manager]]<br />
[[fa:Window manager]]<br />
[[it:Window manager]]<br />
[[ja:ウィンドウマネージャ]]<br />
[[ru:Window manager]]<br />
[[uk:Window manager]]<br />
[[zh-cn:Window manager]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Xdg-menu}}<br />
{{Related|Xorg}}<br />
{{Related|xinitrc}}<br />
{{Related|Start X at Login}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:Window manager|윈도우 매니저]] (Window Manager, WM)은 그래픽 유저 인터페이스(GUI)의 윈도우 시스템 내에서의 창의 위치와 모양을 관리하는 시스템 소프트웨어이다. 데스크탑 환경([[desktop environment]], DE)의 일부 혹은 독립된 형태로 사용된다. <br />
<br />
''이 문서에서는 '창 관리자' 대신 '윈도우 매니저'라는 용어를 사용한다.''<br />
<br />
== 개요 ==<br />
<br />
창 관리자(Window Manager)는 그래픽 어플리케이션들이 나타나는 프레임(혹은 윈도우)의 모양이나 동작을 관리하는 X 클라이언트로서 프레임의 경계, 타이틀바, 크기 등을 결정한다. 또한 창 크기 조절 기능이나 [[Fluxbox]]와 같은 윈도우 탭 기능 혹은 창 달라붙기 기능(Sticking, [[Window Maker]]의 Sticking 포함된 기능 [http://windowmaker.org/dockapps/ dockapps] 참고) 등을 제공한다. 몇몇 윈도우 매니저는 응용프로그램 실행을 위한 메뉴나 윈도우 매니저 자체 설정을 위한 간단한 유틸리티들을 제공하기도 한다.<br />
<br />
윈도우 매니저는 X 서버와 클라이언트와 상호작용을 위해 [http://standards.freedesktop.org/wm-spec/wm-spec-latest.html Extended Window Manager Hints] 이라는 표준 정의를 사용한다.<br />
<br />
몇몇 윈도우 매니저들은 [[desktop environment]]의 일부로서 개발되어 데스크탑 아이콘, 폰트, 도구모음, 배경화면, 데스크탑 위젯 등의 유저에게 일관된 사용환경을 제공한다.<br />
<br />
반면, 그 외의 다른 윈도우 매니저들은 데스크탑 환경의 일부분이 아닌 독립된 형태로 사용되도록 개발되어 사용자들이 사용할 수 있는 프로그램을 직접 선택할 수 있도록 한다. 때문에 사용자 기호에 맞도록 더 가볍고 커스터마이징 된 사용환경을 만들 수 있다. 데스크탑 아이콘이나 툴바, 배경화면, 데스크탑 위젯 등과 같은 부가 기능들은 관련된 어플리케이션들을 추가적으로 설치하여 사용할 수도 있다. (''일반적으로 Gnome에서는 ''Mutter'' 또는 ''Metacity'', KDE에서는 ''Kwin''을 윈도우 매니저로 사용하고 설치 시 다양한 기본 프로그램이 설치된다. 하지만, 데스크탑 환경을 설치하지 않고 윈도우 매니저만을 설치하여 사용하는 경우 그러한 기본 프로그램이 설치되지 않기 때문에 사용할 수 있는 프로그램을 직접 선택할 수 있다고 언급된 것이다.'')<br />
<br />
몇몇 독립된 형태의 윈도우 매니저들(standalone WMs)은 데스크탑 환경의 기본 윈도우 매니저를 대체하여 사용될 수 있기도 하다.<br />
<br />
윈도우 매니저를 설치하기 전에, X 서버 설치가 반드시 되어야 한다.([[Xorg]]를 참고)<br />
<br />
=== 종류 ===<br />
<br />
* [[#Stacking window managers|Stacking]](혹은 floating) Stacking 윈도우 매니저는 윈도우즈와 맥 OS X와 같은 운영체제에서 사용된다. 마치 책상 위에 놓여진 종이들처럼 창들을 다른 창들 위에 쌓아 놓는 형태를 가진다. (아치 리눅스 위키 페이지 [[:Category:Stacking WMs]] 참고.)<br />
* [[#Tiling window managers|Tiling]] 윈도우 매니저는 Stacking과 다르게 창들이 다른 창 위에 놓여 겹치지지 않는다. 대신, 타일처럼 화면이 분할되며 마우스보다 조합키를 통해 프로그램의 창을 조작하고 관리한다. Tiling 윈도우 매니저는 분할되는 창 레이아웃에 대해 직접 수정이 가능하지만 미리 정의된 레이아웃이 제공되기도 한다. (아치 리눅스 위키 페이지 [[:Category:Tiling WMs]] 참고.)<br />
* [[#Dynamic window managers|Dynamic]] 윈도우 매니저는 Tiling 방식과 Floating 방식 사이에서 창 관리 기법을 전환할 수 있는 윈도우 매니저이다. 자세한 정보는 [[:Category:Dynamic WMs]]를 참고한다.<br />
<br />
윈도우 매니저들의 비교를 확인하고 싶다면 [[Comparison of tiling window managers]]와 [[Wikipedia:Comparison of X window managers]] 페이지를 참고한다.<br />
<br />
== 윈도우 매니저 목록 ==<br />
<br />
=== Stacking window managers ===<br />
<br />
* {{App|[[2bwm]]|floating 방식의 빠른 윈도우 매니저로서 창 프레임에 2개의 경계선을 가지고 있는 특징을 가지고 있다. XCB 라이브러리로 개발되었으며 mcwm 윈도우 매니저에서 비롯되어 Michael Cardell에 의해 개발되었다. 2bwm 환경 내에서는 모든 것들이 키보드로 접근이 가능하지만 포인팅 장치로도 창의 이동이나 크기조절, 창의 높낮이 조절이 가능하다. 2bwm 이라는 이름은 mcwm-beast에서 최근에 바뀌었다.|https://github.com/venam/2bwm|{{AUR|2bwm}}}}<br />
<br />
* {{App|aewm|X11 환경을 위한 윈도우 매니저로서 마우스로 완벽하게 조작 가능하다. 하지만 윈도우 프레임을 제외하고 아무런 UI를 제공하지 않는다. 조작키는 vi의 조작키와 같다. (1997년 당시에는 적은 메모리 환경 때문에 새로운 유저를 위한 인터페이스보다 직관적이지 않지만 기능 자체에 있어 빠른 것을 추구했었다.)|http://www.red-bean.com/decklin/aewm/|{{AUR|aewm}}}}<br />
<br />
<br />
* {{App|[[Wikipedia:AfterStep|AfterStep]]|UNIX의 X 윈도우 시스템을 위한 윈도우 매니저이다. NeXTStep 인터페이스의 형태에 기초하여 사용자들에게 깔끔하고 세련된 데스크탑 환경을 제공한다. AfterStep 윈도우 매니저의 개발목표는 유연한 데스크탑 설정과 미적 요소들을 개선하고 시스템 자원을 효율적으로 사용하는 것이다.|http://www.afterstep.org/|{{AUR|afterstep}}}}<br />
<br />
* {{App|[[Blackbox]]|X 윈도우 시스템을 위한 빠르고 가벼운 윈도우 매니저로서 라이브러리의 의존성이 전혀 없는 것이 장점이다. Blackbox는 C++로써 개발되었다.|http://blackboxwm.sourceforge.net/|{{Pkg|blackbox}}}}<br />
<br />
<br />
* {{App|[[Compiz]]|OpenGL compositing manager that uses GLX_EXT_texture_from_pixmap for binding redirected top-level windows to texture objects. It has a flexible plug-in system and it is designed to run well on most graphics hardware.|https://launchpad.net/compiz|{{AUR|compiz}}}}<br />
<br />
* {{App|cwm|Originally deriving from evilwm, but later re-written from scratch. cwm aims to be simple, and offers helpful features such as searching for windows.|http://monkey.org/~marius/cwm/cwm.1.a|{{AUR|cwm}}}}<br />
<br />
* {{App|eggwm|A lightweight QT4/QT5 window manager|{{AUR|eggwm-qt5}}|{{AUR|eggwm}}}}<br />
<br />
* {{App|[[Enlightenment]]|Enlightenment is not just a window manager for Linux/X11 and others, but also a whole suite of libraries to help you create beautiful user interfaces with much less work than doing it the old fashioned way and fighting with traditional toolkits, not to mention a traditional window manager.|http://www.enlightenment.org/|{{Pkg|enlightenment}}}}<br />
<br />
* {{App|[[evilwm]]|Minimalist window manager for the X Window System. 'Minimalist' here does not mean it is too bare to be usable - it just means it omits a lot of the stuff that make other window managers ''un''usable.|http://www.6809.org.uk/evilwm/|{{AUR|evilwm}}}}<br />
<br />
* {{App|[[Fluxbox]]|Window manager for X that was based on the Blackbox 0.61.1 code. It is very light on resources and easy to handle but yet full of features to make an easy and extremely fast desktop experience. It is built using C++ and licensed under the MIT License.|http://www.fluxbox.org/|{{Pkg|fluxbox}}}}<br />
<br />
* {{App|[[Wikipedia:FLWM|Flwm]]|Attempt to combine the best ideas I have seen in several window managers. The primary influence and code base is from wm2 by Chris Cannam.|http://flwm.sourceforge.net/|{{AUR|flwm}}}}<br />
<br />
* {{App|[[FVWM]]|Extremely powerful ICCCM-compliant multiple virtual desktop window manager for the X Window system. Development is active, and support is excellent.|http://www.fvwm.org/|{{Pkg|fvwm}}}}<br />
<br />
* {{app|[http://elementaryos.org/journal/meet-gala-window-manager Gala]|A beautiful Window Manager from elementaryos, part of [[Pantheon]]. Also as a compositing manager, based on libmutter.|https://launchpad.net/gala|{{aur|gala-bzr}}}}<br />
<br />
* {{App|Goomwwm|X11 window manager implemented in C as a cleanroom software project. It manages windows in a minimal floating layout, while providing flexible keyboard-driven controls for window switching, sizing, moving, tagging, and tiling. It is also fast, lightweight, modeless, Xinerama-aware, and EWMH compatible wherever possible.|http://aerosuidae.net/goomwwm/|{{AUR|goomwwm}}}}<br />
<br />
* {{App|[[IceWM]]|Window manager for the X Window System. The goal of IceWM is speed, simplicity, and not getting in the user's way.|http://www.icewm.org/|{{Pkg|icewm}}}}<br />
<br />
* {{App|[[jbwm]]|jbwm is a window manager based on evilwm, with a minimal configuration size of approximately 16kb, focused on small binary size and usability, incorporating optional title-bars and XFT title-bar font rendering as compile-time options. jbwm also features easier to use keybindings than evilwm.|https://github.com/jefbed/jbwm|{{AUR|jbwm}}}}<br />
<br />
* {{App|[[JWM]]|Window manager for the X11 Window System. JWM is written in C and uses only Xlib at a minimum.|http://joewing.net/projects/jwm/index.shtml|{{Pkg|jwm}}}}<br />
<br />
* {{App|Karmen|Window manager for X, written by Johan Veenhuizen. It is designed to "just work." There is no configuration file and no library dependencies other than Xlib. The input focus model is click-to-focus. Karmen aims at ICCCM and EWMH compliance.|http://karmen.sourceforge.net/|{{AUR|karmen}}}}<br />
<br />
* {{App|[[Wikipedia:KWin|KWin]]|The standard KDE window manager in KDE 4.0, ships with the first version of built-in support for compositing, making it also a compositing manager. This allows KWin to provide advanced graphical effects, similar to Compiz, while also providing all the features from previous KDE releases (such as very good integration with the rest of KDE, advanced configurability, focus stealing prevention, a well-tested window manager, robust handling of misbehaving applications/toolkits, etc.).|https://techbase.kde.org/Projects/KWin|{{Pkg|kwin}}}}<br />
<br />
* {{App|lwm|Window manager for X that tries to keep out of your face. There are no icons, no button bars, no icon docks, no root menus, no nothing: if you want all that, then other programs can provide it. There is no configurability either: if you want that, you want a different window manager; one that helps your operating system in its evil conquest of your disc space and its annexation of your physical memory.|http://www.jfc.org.uk/software/lwm.html|{{Pkg|lwm}}}}<br />
<br />
* {{App|Marco|The MATE window manager, fork of Metacity.|https://github.com/mate-desktop/marco|{{Pkg|marco}}}}<br />
<br />
* {{App|[[Wikipedia:Metacity|Metacity]]|This window manager strives to be quiet, small, stable, get on with its job, and stay out of your attention.|http://blogs.gnome.org/metacity/|{{Pkg|metacity}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter_(software)#Muffin|Muffin]]|Window and compositing manager for Cinnamon, fork of Mutter, based on Clutter, uses OpenGL.|https://github.com/linuxmint/muffin/|{{Pkg|muffin}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter (window manager)|Mutter]]|Window and compositing manager for GNOME, based on Clutter, uses OpenGL.|http://git.gnome.org/browse/mutter/|{{Pkg|mutter}}}}<br />
<br />
* {{App|[[Wikipedia:Motif_Window_Manager|MWM]]|The Motif Window Manager (MWM) is an X window manager based on the Motif toolkit.|http://sourceforge.net/projects/motif/|{{Pkg|openmotif}}, {{Pkg|lesstif}}}}<br />
<br />
* {{App|[[Openbox]]|Highly configurable, next generation window manager with extensive standards support. The *box visual style is well known for its minimalistic appearance. Openbox uses the *box visual style, while providing a greater number of options for theme developers than previous *box implementations. The theme documentation describes the full range of options found in Openbox themes.|http://openbox.org/wiki/Main_Page|{{Pkg|openbox}}}}<br />
<br />
* {{App|[[pawm]]|Window manager for the X Window system. So it is not a 'desktop' and does not offer you a huge pile of useless options, just the facilities needed to run your X applications and at the same time having a friendly and easy to use interface.|http://www.pleyades.net/pawm/|{{Pkg|pawm}}}}<br />
<br />
* {{App|[[PekWM]]|Window manager that once upon a time was based on the aewm++ window manager, but it has evolved enough that it no longer resembles aewm++ at all. It has a much expanded feature-set, including window grouping (similar to Ion, PWM, or Fluxbox), auto-properties, Xinerama, keygrabber that supports keychains, and much more.|http://www.pekwm.org/projects/pekwm|{{Pkg|pekwm}}}}<br />
<br />
* {{App|[[Sawfish]]|Extensible window manager using a Lisp-based scripting language. Its policy is very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. All high-level WM functions are implemented in Lisp for future extensibility or redefinition.|http://sawfish.wikia.com/wiki/Main_Page|{{AUR|sawfish}}}}<br />
<br />
* {{App|TinyWM|Tiny window manager created as an exercise in minimalism. It may be helpful in learning some of the very basics of creating a window manager. It is comprised of approximately 50 lines of C. There is also a Python version using python-xlib.|http://incise.org/tinywm.html|{{AUR|tinywm}} {{AUR|tinywm-git}}}}<br />
<br />
* {{App|[[twm]]|Window manager for the X Window System. It provides titlebars, shaped windows, several forms of icon management, user-defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer button bindings.|http://cgit.freedesktop.org/xorg/app/twm/|{{Pkg|xorg-twm}}}}<br />
<br />
* {{App|[[Wikipedia:UDE|UWM]]|The ultimate window manager for UDE.|http://udeproject.sourceforge.net/|{{Pkg|ude}}}}<br />
<br />
* {{App|WindowLab|Small and simple window manager of novel design. It has a click-to-focus but not raise-on-focus policy, a window resizing mechanism that allows one or many edges of a window to be changed in one action, and an innovative menubar that shares the same part of the screen as the taskbar. Window titlebars are prevented from going off the edge of the screen by constraining the mouse pointer, and when appropriate the pointer is also constrained to the taskbar/menubar in order to make target menu items easier to hit.|http://nickgravgaard.com/windowlab/|{{Pkg|windowlab}}}}<br />
<br />
* {{App|[[Window Maker]]|X11 window manager originally designed to provide integration support for the GNUstep Desktop Environment. In every way possible, it reproduces the elegant look and feel of the NEXTSTEP user interface. It is fast, feature rich, easy to configure, and easy to use. It is also free software, with contributions being made by programmers from around the world.|http://windowmaker.org/|{{Pkg|windowmaker}}}}<br />
<br />
* {{App|WM2|Window manager for X. It provides an unusual style of window decoration and as little functionality as its author feels comfortable with in a window manager. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who do not particularly want their window manager to be too friendly. |http://www.all-day-breakfast.com/wm2/|{{AUR|wm2}}}}<br />
<br />
* {{App|[[Xfwm]]|The [[Xfce]] window manager manages the placement of application windows on the screen, provides beautiful window decorations, manages workspaces or virtual desktops and natively supports multiscreen mode. It provides its own compositing manager (from the X.Org Composite extension) for true transparency and shadows. The Xfce window manager also includes a keyboard shortcuts editor for user specific commands and basic windows manipulations and provides a preferences dialog for advanced tweaks.|http://www.xfce.org/projects/xfwm4/|{{pkg|xfwm4}}}}<br />
<br />
=== Tiling window managers ===<br />
<br />
* {{App|[[Bspwm]]|bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. It has support for EWMH and multiple monitors, and is configured and controlled through messages.|https://github.com/baskerville/bspwm|{{Pkg|bspwm}}}}<br />
<br />
* {{App|[[Herbstluftwm]]|Manual tiling window manager for X11 using Xlib and Glib. The layout is based on splitting frames into subframes which can be split again or can be filled with windows (similar to i3/ musca). Tags (or workspaces or virtual desktops or …) can be added/removed at runtime. Each tag contains its own layout. Exactly one tag is viewed on each monitor. The tags are monitor independent (similar to xmonad). It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup. (similar to wmii/musca).|http://herbstluftwm.org|{{pkg|herbstluftwm}}}}<br />
<br />
* {{App|howm|A lightweight, tiling X11 window manager that mimics vi by offering operators, motions and modes. Configuration is done through the included {{ic|config.h}} file.|https://github.com/HarveyHunt/howm|{{AUR|howm-x11}}}}<br />
<br />
* {{App|[[Ion3]]|Tiling tabbed X11 window manager designed with keyboard users in mind. It was one of the first of the “new wave" of tiling windowing environments (the other being LarsWM, with quite a different approach) and has since spawned an entire category of tiling window managers for X11 – none of which really manage to reproduce the feel and functionality of Ion. It uses Lua as an embedded interpreter which handles all of the configuration. |http://tuomov.iki.fi/software|{{AUR|ion3}}}}<br />
<br />
* {{App|[[Notion]]|Tiling, tabbed window manager for the X window system that utilizes 'tiles' and 'tabbed' windows.<br />
** Tiling: you divide the screen into non-overlapping 'tiles'. Every window occupies one tile, and is maximized to it<br />
** Tabbing: a tile may contain multiple windows - they will be 'tabbed'.<br />
** Static: most tiled window managers are 'dynamic', meaning they automatically resize and move around tiles as windows appear and disappear. Notion, by contrast, does not automatically change the tiling.<br />
: Notion is a fork of Ion3.|http://notion.sf.net/|{{Pkg|notion}}}}<br />
<br />
* {{App|[[Ratpoison]]|Simple Window Manager with no fat library dependencies, no fancy graphics, no window decorations, and no rodent dependence. It is largely modeled after GNU Screen which has done wonders in the virtual terminal market. Ratpoison is configured with a simple text file. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray.|http://www.nongnu.org/ratpoison/|{{Pkg|ratpoison}}}}<br />
<br />
* {{App|[[Stumpwm]]|Tiling, keyboard driven X11 Window Manager written entirely in Common Lisp. Stumpwm attempts to be customizable yet visually minimal. It does have various hooks to attach your personal customizations, and variables to tweak, and can be reconfigured and reloaded while running. There are no window decorations, no icons, no buttons, and no system tray. Its information bar can be set to show constantly or only when needed.|http://www.nongnu.org/stumpwm/|{{AUR|stumpwm-git}}}}<br />
<br />
* {{App|[[subtle]]|Manual tiling window manager with a rather uncommon approach of tiling: Per default there is no typical layout enforcement, windows are placed on a position (gravity) in a custom grid. The user can change the gravity of each window either directly per grabs or with rules defined by tags in the config. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar. |http://subforge.org/projects/subtle|{{AUR|subtle-git}}}}<br />
<br />
* {{App|[[WMFS]]|Window Manager From Scratch is a lightweight and highly configurable tiling window manager for X. It can be configured with a configuration file, supports Xft (FreeType) fonts and is compliant with the Extended Window Manager Hints (EWMH) specifications, Xinerama and Xrandr. WMFS can be driven with Vi based commands (ViWMFS).|https://github.com/xorg62/wmfs|{{AUR|wmfs}}}}<br />
<br />
* {{App|[[WMFS2]]|Incompatible successor of WMFS. It's even more minimalistic and brings some new stuff.|https://github.com/xorg62/wmfs|{{AUR|wmfs2-git}}}}<br />
<br />
=== Dynamic window managers ===<br />
<br />
* {{App|[[awesome]]|Highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things. |http://awesome.naquadah.org/|{{Pkg|awesome}}}}<br />
<br />
* {{App|[[catwm]]|Small window manager, even simpler than dwm, written in C. Configuration is done by modifying the config.h file and recompiling.|https://github.com/pyknite/catwm|{{AUR|catwm-git}}}}<br />
<br />
* {{App|[[dwm]]|Dynamic window manager for X. It manages windows in tiled, monocle and floating layouts. All of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed. does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed.|http://dwm.suckless.org/|{{Pkg|dwm}}}}<br />
<br />
* {{App|[[echinus]]|Simple and lightweight tiling and floating window manager for X11. Started as a dwm fork with easier configuration, echinus became full-featured re-parenting window manager with EWMH support. It has an EWMH-compatible panel/taskbar, called {{AUR|ourico}}.|http://plhk.ru|{{AUR|echinus}}}}<br />
<br />
* {{App|[[i3]]|Tiling window manager, completely written from scratch. i3 was created because wmii, our favorite window manager at the time, did not provide some features we wanted (multi-monitor done right, for example), had some bugs, did not progress for quite some time, and was not easy to hack at all (source code comments/documentation completely lacking). Notable differences are in the areas of multi-monitor support and the tree metaphor. For speed the Plan 9 interface of wmii is not implemented. |http://i3wm.org/|{{Pkg|i3-wm}}}}<br />
<br />
* {{App|[[FrankenWM]]|Basically monsterwm with floating done right. Features that are added on top of basic mwm include: more layouts (fibonacci, equal stack, dual stack), gaps (and borders) are adjustable on the fly, minimize/maximize single windows, hide/show all windows, resizing master and stack individually, invert stack.|https://github.com/sulami/FrankenWM|{{AUR|frankenwm-git}}}}<br />
<br />
* {{App|[[spectrwm]]|Small dynamic tiling window manager for X11, largely inspired by xmonad and dwm. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and is configured with a text file. It was written by hackers for hackers and it strives to be small, compact and fast. It has a built-in status bar fed from a user-defined script.|https://github.com/conformal/spectrwm/wiki|{{Pkg|spectrwm}}}}<br />
<br />
* {{App|[[Qtile]]|Full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It's easy to write your own layouts, widgets, and built-in commands.It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs. |https://github.com/qtile/qtile|{{AUR|qtile}}}}<br />
<br />
* {{App|[[wmii]]|Small, dynamic window manager for X11. It is scriptable, has a 9P filesystem interface and supports classic and tiling (Acme-like) window management. It aims to maintain a small and clean (read hackable and beautiful) codebase. The default configuration is in bash and [http://rc.cat-v.org rc (the Plan 9 shell)], but programs exist written in ruby, and any program that can work with text can configure it. It has a status bar and launcher built in, and also an optional system tray ({{ic|witray}}). |http://wmii.suckless.org/|{{Pkg|wmii}}}}<br />
<br />
* {{App|[[xmonad]]|Dynamically tiling X11 window manager that is written and configured in Haskell. In a normal WM, you spend half your time aligning and searching for windows. Xmonad makes work easier, by automating this. XMonad is configured in Haskell. For all configuration changes, xmonad must be recompiled, so the Haskell compiler (over 100MB) must be installed. A large library called {{Pkg|xmonad-contrib}} provides many additional features|http://xmonad.org/|{{Pkg|xmonad}}}}<br />
<br />
== 출처 ==<br />
<br />
* http://www.gilesorr.com/wm/<br />
* http://www.slant.co/topics/390/~what-are-the-best-window-managers-for-linux<br />
* https://l3net.wordpress.com/2013/03/17/a-memory-comparison-of-light-linux-desktops/</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Window_manager_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=451786Window manager (한국어)2016-09-24T06:29:46Z<p>Sukbeom: /* 출처 */</p>
<hr />
<div>[[Category:Window managers (한국어)]]<br />
[[ar:Window manager]]<br />
[[en:Window manager]]<br />
[[es:Window manager]]<br />
[[fa:Window manager]]<br />
[[it:Window manager]]<br />
[[ja:ウィンドウマネージャ]]<br />
[[ru:Window manager]]<br />
[[uk:Window manager]]<br />
[[zh-cn:Window manager]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Xdg-menu}}<br />
{{Related|Xorg}}<br />
{{Related|xinitrc}}<br />
{{Related|Start X at Login}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:Window manager|윈도우 매니저]] (Window Manager, WM)은 그래픽 유저 인터페이스(GUI)의 윈도우 시스템 내에서의 창의 위치와 모양을 관리하는 시스템 소프트웨어이다. 데스크탑 환경([[desktop environment]], DE)의 일부 혹은 독립된 형태로 사용된다. <br />
<br />
''이 문서에서는 '창 관리자' 대신 '윈도우 매니저'라는 용어를 사용한다.''<br />
<br />
== 개요 ==<br />
<br />
창 관리자(Window Manager)는 그래픽 어플리케이션들이 나타나는 프레임(혹은 윈도우)의 모양이나 동작을 관리하는 X 클라이언트로서 프레임의 경계, 타이틀바, 크기 등을 결정한다. 또한 창 크기 조절 기능이나 [[Fluxbox]]와 같은 윈도우 탭 기능 혹은 창 달라붙기 기능(Sticking, [[Window Maker]]의 Sticking 포함된 기능 [http://windowmaker.org/dockapps/ dockapps] 참고) 등을 제공한다. 몇몇 윈도우 매니저는 응용프로그램 실행을 위한 메뉴나 윈도우 매니저 자체 설정을 위한 간단한 유틸리티들을 제공하기도 한다.<br />
<br />
윈도우 매니저는 X 서버와 클라이언트와 상호작용을 위해 [http://standards.freedesktop.org/wm-spec/wm-spec-latest.html Extended Window Manager Hints] 이라는 표준 정의를 사용한다.<br />
<br />
몇몇 윈도우 매니저들은 [[desktop environment]]의 일부로서 개발되어 데스크탑 아이콘, 폰트, 도구모음, 배경화면, 데스크탑 위젯 등의 유저에게 일관된 사용환경을 제공한다.<br />
<br />
반면, 그 외의 다른 윈도우 매니저들은 데스크탑 환경의 일부분이 아닌 독립된 형태로 사용되도록 개발되어 사용자들이 사용할 수 있는 프로그램을 직접 선택할 수 있도록 한다. 때문에 사용자 기호에 맞도록 더 가볍고 커스터마이징 된 사용환경을 만들 수 있다. 데스크탑 아이콘이나 툴바, 배경화면, 데스크탑 위젯 등과 같은 부가 기능들은 관련된 어플리케이션들을 추가적으로 설치하여 사용할 수도 있다. (''일반적으로 Gnome에서는 ''Mutter'' 또는 ''Metacity'', KDE에서는 ''Kwin''을 윈도우 매니저로 사용하고 설치 시 다양한 기본 프로그램이 설치된다. 하지만, 데스크탑 환경을 설치하지 않고 윈도우 매니저만을 설치하여 사용하는 경우 그러한 기본 프로그램이 설치되지 않기 때문에 사용할 수 있는 프로그램을 직접 선택할 수 있다고 언급된 것이다.'')<br />
<br />
몇몇 독립된 형태의 윈도우 매니저들(standalone WMs)은 데스크탑 환경의 기본 윈도우 매니저를 대체하여 사용될 수 있기도 하다.<br />
<br />
윈도우 매니저를 설치하기 전에, X 서버 설치가 반드시 되어야 한다.([[Xorg]]를 참고)<br />
<br />
=== 종류 ===<br />
<br />
* [[#Stacking window managers|Stacking]](혹은 floating) Stacking 윈도우 매니저는 윈도우즈와 맥 OS X와 같은 운영체제에서 사용된다. 마치 책상 위에 놓여진 종이들처럼 창들을 다른 창들 위에 쌓아 놓는 형태를 가진다. (아치 리눅스 위키 페이지 [[:Category:Stacking WMs]] 참고.)<br />
* [[#Tiling window managers|Tiling]] 윈도우 매니저는 Stacking과 다르게 창들이 다른 창 위에 놓여 겹치지지 않는다. 대신, 타일처럼 화면이 분할되며 마우스보다 조합키를 통해 프로그램의 창을 조작하고 관리한다. Tiling 윈도우 매니저는 분할되는 창 레이아웃에 대해 직접 수정이 가능하지만 미리 정의된 레이아웃이 제공되기도 한다. (아치 리눅스 위키 페이지 [[:Category:Tiling WMs]] 참고.)<br />
* [[#Dynamic window managers|Dynamic]] 윈도우 매니저는 Tiling 방식과 Floating 방식 사이에서 창 관리 기법을 전환할 수 있는 윈도우 매니저이다. 자세한 정보는 [[:Category:Dynamic WMs]]를 참고한다.<br />
<br />
윈도우 매니저들의 비교를 확인하고 싶다면 [[Comparison of tiling window managers]]와 [[Wikipedia:Comparison of X window managers]] 페이지를 참고한다.<br />
<br />
== 윈도우 매니저 목록 ==<br />
<br />
=== Stacking window managers ===<br />
<br />
* {{App|[[2bwm]]|Fast floating WM, with the particularity of having 2 borders, written over the XCB library and derived from mcwm written by Michael Cardell. In 2bwm everything is accessible from the keyboard but a pointing device can be used for move, resize and raise/lower. The name has recently changed from mcwm-beast to 2bwm.|https://github.com/venam/2bwm|{{AUR|2bwm}}}}<br />
<br />
* {{App|aewm|Modern, minimal window manager for X11. It is controlled entirely with the mouse, but contains no visible UI apart from window frames. The command set is sort of like vi: designed back in the dawn of time (1997) to squeeze speed out of low-memory machines, completely unintuitive and new-user-hostile, but quick and elegant in its own way.|http://www.red-bean.com/decklin/aewm/|{{AUR|aewm}}}}<br />
<br />
* {{App|[[Wikipedia:AfterStep|AfterStep]]|Window manager for the Unix X Window System. Originally based on the look and feel of the NeXTStep interface, it provides end users with a consistent, clean, and elegant desktop. The goal of AfterStep development is to provide for flexibility of desktop configuration, improving aesthetics, and efficient use of system resources.|http://www.afterstep.org/|{{AUR|afterstep}}}}<br />
<br />
* {{App|[[Blackbox]]|Fast, lightweight window manager for the X Window System, without all those annoying library dependencies. Blackbox is built with C++ and contains completely original code (even though the graphics implementation is similar to that of WindowMaker).|http://blackboxwm.sourceforge.net/|{{Pkg|blackbox}}}}<br />
<br />
* {{App|[[Compiz]]|OpenGL compositing manager that uses GLX_EXT_texture_from_pixmap for binding redirected top-level windows to texture objects. It has a flexible plug-in system and it is designed to run well on most graphics hardware.|https://launchpad.net/compiz|{{AUR|compiz}}}}<br />
<br />
* {{App|cwm|Originally deriving from evilwm, but later re-written from scratch. cwm aims to be simple, and offers helpful features such as searching for windows.|http://monkey.org/~marius/cwm/cwm.1.a|{{AUR|cwm}}}}<br />
<br />
* {{App|eggwm|A lightweight QT4/QT5 window manager|{{AUR|eggwm-qt5}}|{{AUR|eggwm}}}}<br />
<br />
* {{App|[[Enlightenment]]|Enlightenment is not just a window manager for Linux/X11 and others, but also a whole suite of libraries to help you create beautiful user interfaces with much less work than doing it the old fashioned way and fighting with traditional toolkits, not to mention a traditional window manager.|http://www.enlightenment.org/|{{Pkg|enlightenment}}}}<br />
<br />
* {{App|[[evilwm]]|Minimalist window manager for the X Window System. 'Minimalist' here does not mean it is too bare to be usable - it just means it omits a lot of the stuff that make other window managers ''un''usable.|http://www.6809.org.uk/evilwm/|{{AUR|evilwm}}}}<br />
<br />
* {{App|[[Fluxbox]]|Window manager for X that was based on the Blackbox 0.61.1 code. It is very light on resources and easy to handle but yet full of features to make an easy and extremely fast desktop experience. It is built using C++ and licensed under the MIT License.|http://www.fluxbox.org/|{{Pkg|fluxbox}}}}<br />
<br />
* {{App|[[Wikipedia:FLWM|Flwm]]|Attempt to combine the best ideas I have seen in several window managers. The primary influence and code base is from wm2 by Chris Cannam.|http://flwm.sourceforge.net/|{{AUR|flwm}}}}<br />
<br />
* {{App|[[FVWM]]|Extremely powerful ICCCM-compliant multiple virtual desktop window manager for the X Window system. Development is active, and support is excellent.|http://www.fvwm.org/|{{Pkg|fvwm}}}}<br />
<br />
* {{app|[http://elementaryos.org/journal/meet-gala-window-manager Gala]|A beautiful Window Manager from elementaryos, part of [[Pantheon]]. Also as a compositing manager, based on libmutter.|https://launchpad.net/gala|{{aur|gala-bzr}}}}<br />
<br />
* {{App|Goomwwm|X11 window manager implemented in C as a cleanroom software project. It manages windows in a minimal floating layout, while providing flexible keyboard-driven controls for window switching, sizing, moving, tagging, and tiling. It is also fast, lightweight, modeless, Xinerama-aware, and EWMH compatible wherever possible.|http://aerosuidae.net/goomwwm/|{{AUR|goomwwm}}}}<br />
<br />
* {{App|[[IceWM]]|Window manager for the X Window System. The goal of IceWM is speed, simplicity, and not getting in the user's way.|http://www.icewm.org/|{{Pkg|icewm}}}}<br />
<br />
* {{App|[[jbwm]]|jbwm is a window manager based on evilwm, with a minimal configuration size of approximately 16kb, focused on small binary size and usability, incorporating optional title-bars and XFT title-bar font rendering as compile-time options. jbwm also features easier to use keybindings than evilwm.|https://github.com/jefbed/jbwm|{{AUR|jbwm}}}}<br />
<br />
* {{App|[[JWM]]|Window manager for the X11 Window System. JWM is written in C and uses only Xlib at a minimum.|http://joewing.net/projects/jwm/index.shtml|{{Pkg|jwm}}}}<br />
<br />
* {{App|Karmen|Window manager for X, written by Johan Veenhuizen. It is designed to "just work." There is no configuration file and no library dependencies other than Xlib. The input focus model is click-to-focus. Karmen aims at ICCCM and EWMH compliance.|http://karmen.sourceforge.net/|{{AUR|karmen}}}}<br />
<br />
* {{App|[[Wikipedia:KWin|KWin]]|The standard KDE window manager in KDE 4.0, ships with the first version of built-in support for compositing, making it also a compositing manager. This allows KWin to provide advanced graphical effects, similar to Compiz, while also providing all the features from previous KDE releases (such as very good integration with the rest of KDE, advanced configurability, focus stealing prevention, a well-tested window manager, robust handling of misbehaving applications/toolkits, etc.).|https://techbase.kde.org/Projects/KWin|{{Pkg|kwin}}}}<br />
<br />
* {{App|lwm|Window manager for X that tries to keep out of your face. There are no icons, no button bars, no icon docks, no root menus, no nothing: if you want all that, then other programs can provide it. There is no configurability either: if you want that, you want a different window manager; one that helps your operating system in its evil conquest of your disc space and its annexation of your physical memory.|http://www.jfc.org.uk/software/lwm.html|{{Pkg|lwm}}}}<br />
<br />
* {{App|Marco|The MATE window manager, fork of Metacity.|https://github.com/mate-desktop/marco|{{Pkg|marco}}}}<br />
<br />
* {{App|[[Wikipedia:Metacity|Metacity]]|This window manager strives to be quiet, small, stable, get on with its job, and stay out of your attention.|http://blogs.gnome.org/metacity/|{{Pkg|metacity}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter_(software)#Muffin|Muffin]]|Window and compositing manager for Cinnamon, fork of Mutter, based on Clutter, uses OpenGL.|https://github.com/linuxmint/muffin/|{{Pkg|muffin}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter (window manager)|Mutter]]|Window and compositing manager for GNOME, based on Clutter, uses OpenGL.|http://git.gnome.org/browse/mutter/|{{Pkg|mutter}}}}<br />
<br />
* {{App|[[Wikipedia:Motif_Window_Manager|MWM]]|The Motif Window Manager (MWM) is an X window manager based on the Motif toolkit.|http://sourceforge.net/projects/motif/|{{Pkg|openmotif}}, {{Pkg|lesstif}}}}<br />
<br />
* {{App|[[Openbox]]|Highly configurable, next generation window manager with extensive standards support. The *box visual style is well known for its minimalistic appearance. Openbox uses the *box visual style, while providing a greater number of options for theme developers than previous *box implementations. The theme documentation describes the full range of options found in Openbox themes.|http://openbox.org/wiki/Main_Page|{{Pkg|openbox}}}}<br />
<br />
* {{App|[[pawm]]|Window manager for the X Window system. So it is not a 'desktop' and does not offer you a huge pile of useless options, just the facilities needed to run your X applications and at the same time having a friendly and easy to use interface.|http://www.pleyades.net/pawm/|{{Pkg|pawm}}}}<br />
<br />
* {{App|[[PekWM]]|Window manager that once upon a time was based on the aewm++ window manager, but it has evolved enough that it no longer resembles aewm++ at all. It has a much expanded feature-set, including window grouping (similar to Ion, PWM, or Fluxbox), auto-properties, Xinerama, keygrabber that supports keychains, and much more.|http://www.pekwm.org/projects/pekwm|{{Pkg|pekwm}}}}<br />
<br />
* {{App|[[Sawfish]]|Extensible window manager using a Lisp-based scripting language. Its policy is very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. All high-level WM functions are implemented in Lisp for future extensibility or redefinition.|http://sawfish.wikia.com/wiki/Main_Page|{{AUR|sawfish}}}}<br />
<br />
* {{App|TinyWM|Tiny window manager created as an exercise in minimalism. It may be helpful in learning some of the very basics of creating a window manager. It is comprised of approximately 50 lines of C. There is also a Python version using python-xlib.|http://incise.org/tinywm.html|{{AUR|tinywm}} {{AUR|tinywm-git}}}}<br />
<br />
* {{App|[[twm]]|Window manager for the X Window System. It provides titlebars, shaped windows, several forms of icon management, user-defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer button bindings.|http://cgit.freedesktop.org/xorg/app/twm/|{{Pkg|xorg-twm}}}}<br />
<br />
* {{App|[[Wikipedia:UDE|UWM]]|The ultimate window manager for UDE.|http://udeproject.sourceforge.net/|{{Pkg|ude}}}}<br />
<br />
* {{App|WindowLab|Small and simple window manager of novel design. It has a click-to-focus but not raise-on-focus policy, a window resizing mechanism that allows one or many edges of a window to be changed in one action, and an innovative menubar that shares the same part of the screen as the taskbar. Window titlebars are prevented from going off the edge of the screen by constraining the mouse pointer, and when appropriate the pointer is also constrained to the taskbar/menubar in order to make target menu items easier to hit.|http://nickgravgaard.com/windowlab/|{{Pkg|windowlab}}}}<br />
<br />
* {{App|[[Window Maker]]|X11 window manager originally designed to provide integration support for the GNUstep Desktop Environment. In every way possible, it reproduces the elegant look and feel of the NEXTSTEP user interface. It is fast, feature rich, easy to configure, and easy to use. It is also free software, with contributions being made by programmers from around the world.|http://windowmaker.org/|{{Pkg|windowmaker}}}}<br />
<br />
* {{App|WM2|Window manager for X. It provides an unusual style of window decoration and as little functionality as its author feels comfortable with in a window manager. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who do not particularly want their window manager to be too friendly. |http://www.all-day-breakfast.com/wm2/|{{AUR|wm2}}}}<br />
<br />
* {{App|[[Xfwm]]|The [[Xfce]] window manager manages the placement of application windows on the screen, provides beautiful window decorations, manages workspaces or virtual desktops and natively supports multiscreen mode. It provides its own compositing manager (from the X.Org Composite extension) for true transparency and shadows. The Xfce window manager also includes a keyboard shortcuts editor for user specific commands and basic windows manipulations and provides a preferences dialog for advanced tweaks.|http://www.xfce.org/projects/xfwm4/|{{pkg|xfwm4}}}}<br />
<br />
=== Tiling window managers ===<br />
<br />
* {{App|[[Bspwm]]|bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. It has support for EWMH and multiple monitors, and is configured and controlled through messages.|https://github.com/baskerville/bspwm|{{Pkg|bspwm}}}}<br />
<br />
* {{App|[[Herbstluftwm]]|Manual tiling window manager for X11 using Xlib and Glib. The layout is based on splitting frames into subframes which can be split again or can be filled with windows (similar to i3/ musca). Tags (or workspaces or virtual desktops or …) can be added/removed at runtime. Each tag contains its own layout. Exactly one tag is viewed on each monitor. The tags are monitor independent (similar to xmonad). It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup. (similar to wmii/musca).|http://herbstluftwm.org|{{pkg|herbstluftwm}}}}<br />
<br />
* {{App|howm|A lightweight, tiling X11 window manager that mimics vi by offering operators, motions and modes. Configuration is done through the included {{ic|config.h}} file.|https://github.com/HarveyHunt/howm|{{AUR|howm-x11}}}}<br />
<br />
* {{App|[[Ion3]]|Tiling tabbed X11 window manager designed with keyboard users in mind. It was one of the first of the “new wave" of tiling windowing environments (the other being LarsWM, with quite a different approach) and has since spawned an entire category of tiling window managers for X11 – none of which really manage to reproduce the feel and functionality of Ion. It uses Lua as an embedded interpreter which handles all of the configuration. |http://tuomov.iki.fi/software|{{AUR|ion3}}}}<br />
<br />
* {{App|[[Notion]]|Tiling, tabbed window manager for the X window system that utilizes 'tiles' and 'tabbed' windows.<br />
** Tiling: you divide the screen into non-overlapping 'tiles'. Every window occupies one tile, and is maximized to it<br />
** Tabbing: a tile may contain multiple windows - they will be 'tabbed'.<br />
** Static: most tiled window managers are 'dynamic', meaning they automatically resize and move around tiles as windows appear and disappear. Notion, by contrast, does not automatically change the tiling.<br />
: Notion is a fork of Ion3.|http://notion.sf.net/|{{Pkg|notion}}}}<br />
<br />
* {{App|[[Ratpoison]]|Simple Window Manager with no fat library dependencies, no fancy graphics, no window decorations, and no rodent dependence. It is largely modeled after GNU Screen which has done wonders in the virtual terminal market. Ratpoison is configured with a simple text file. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray.|http://www.nongnu.org/ratpoison/|{{Pkg|ratpoison}}}}<br />
<br />
* {{App|[[Stumpwm]]|Tiling, keyboard driven X11 Window Manager written entirely in Common Lisp. Stumpwm attempts to be customizable yet visually minimal. It does have various hooks to attach your personal customizations, and variables to tweak, and can be reconfigured and reloaded while running. There are no window decorations, no icons, no buttons, and no system tray. Its information bar can be set to show constantly or only when needed.|http://www.nongnu.org/stumpwm/|{{AUR|stumpwm-git}}}}<br />
<br />
* {{App|[[subtle]]|Manual tiling window manager with a rather uncommon approach of tiling: Per default there is no typical layout enforcement, windows are placed on a position (gravity) in a custom grid. The user can change the gravity of each window either directly per grabs or with rules defined by tags in the config. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar. |http://subforge.org/projects/subtle|{{AUR|subtle-git}}}}<br />
<br />
* {{App|[[WMFS]]|Window Manager From Scratch is a lightweight and highly configurable tiling window manager for X. It can be configured with a configuration file, supports Xft (FreeType) fonts and is compliant with the Extended Window Manager Hints (EWMH) specifications, Xinerama and Xrandr. WMFS can be driven with Vi based commands (ViWMFS).|https://github.com/xorg62/wmfs|{{AUR|wmfs}}}}<br />
<br />
* {{App|[[WMFS2]]|Incompatible successor of WMFS. It's even more minimalistic and brings some new stuff.|https://github.com/xorg62/wmfs|{{AUR|wmfs2-git}}}}<br />
<br />
=== Dynamic window managers ===<br />
<br />
* {{App|[[awesome]]|Highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things. |http://awesome.naquadah.org/|{{Pkg|awesome}}}}<br />
<br />
* {{App|[[catwm]]|Small window manager, even simpler than dwm, written in C. Configuration is done by modifying the config.h file and recompiling.|https://github.com/pyknite/catwm|{{AUR|catwm-git}}}}<br />
<br />
* {{App|[[dwm]]|Dynamic window manager for X. It manages windows in tiled, monocle and floating layouts. All of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed. does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed.|http://dwm.suckless.org/|{{Pkg|dwm}}}}<br />
<br />
* {{App|[[echinus]]|Simple and lightweight tiling and floating window manager for X11. Started as a dwm fork with easier configuration, echinus became full-featured re-parenting window manager with EWMH support. It has an EWMH-compatible panel/taskbar, called {{AUR|ourico}}.|http://plhk.ru|{{AUR|echinus}}}}<br />
<br />
* {{App|[[i3]]|Tiling window manager, completely written from scratch. i3 was created because wmii, our favorite window manager at the time, did not provide some features we wanted (multi-monitor done right, for example), had some bugs, did not progress for quite some time, and was not easy to hack at all (source code comments/documentation completely lacking). Notable differences are in the areas of multi-monitor support and the tree metaphor. For speed the Plan 9 interface of wmii is not implemented. |http://i3wm.org/|{{Pkg|i3-wm}}}}<br />
<br />
* {{App|[[FrankenWM]]|Basically monsterwm with floating done right. Features that are added on top of basic mwm include: more layouts (fibonacci, equal stack, dual stack), gaps (and borders) are adjustable on the fly, minimize/maximize single windows, hide/show all windows, resizing master and stack individually, invert stack.|https://github.com/sulami/FrankenWM|{{AUR|frankenwm-git}}}}<br />
<br />
* {{App|[[spectrwm]]|Small dynamic tiling window manager for X11, largely inspired by xmonad and dwm. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and is configured with a text file. It was written by hackers for hackers and it strives to be small, compact and fast. It has a built-in status bar fed from a user-defined script.|https://github.com/conformal/spectrwm/wiki|{{Pkg|spectrwm}}}}<br />
<br />
* {{App|[[Qtile]]|Full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It's easy to write your own layouts, widgets, and built-in commands.It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs. |https://github.com/qtile/qtile|{{AUR|qtile}}}}<br />
<br />
* {{App|[[wmii]]|Small, dynamic window manager for X11. It is scriptable, has a 9P filesystem interface and supports classic and tiling (Acme-like) window management. It aims to maintain a small and clean (read hackable and beautiful) codebase. The default configuration is in bash and [http://rc.cat-v.org rc (the Plan 9 shell)], but programs exist written in ruby, and any program that can work with text can configure it. It has a status bar and launcher built in, and also an optional system tray ({{ic|witray}}). |http://wmii.suckless.org/|{{Pkg|wmii}}}}<br />
<br />
* {{App|[[xmonad]]|Dynamically tiling X11 window manager that is written and configured in Haskell. In a normal WM, you spend half your time aligning and searching for windows. Xmonad makes work easier, by automating this. XMonad is configured in Haskell. For all configuration changes, xmonad must be recompiled, so the Haskell compiler (over 100MB) must be installed. A large library called {{Pkg|xmonad-contrib}} provides many additional features|http://xmonad.org/|{{Pkg|xmonad}}}}<br />
<br />
== 출처 ==<br />
<br />
* http://www.gilesorr.com/wm/<br />
* http://www.slant.co/topics/390/~what-are-the-best-window-managers-for-linux<br />
* https://l3net.wordpress.com/2013/03/17/a-memory-comparison-of-light-linux-desktops/</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Window_manager_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=451785Window manager (한국어)2016-09-24T06:29:11Z<p>Sukbeom: /* See also */</p>
<hr />
<div>[[Category:Window managers (한국어)]]<br />
[[ar:Window manager]]<br />
[[en:Window manager]]<br />
[[es:Window manager]]<br />
[[fa:Window manager]]<br />
[[it:Window manager]]<br />
[[ja:ウィンドウマネージャ]]<br />
[[ru:Window manager]]<br />
[[uk:Window manager]]<br />
[[zh-cn:Window manager]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Xdg-menu}}<br />
{{Related|Xorg}}<br />
{{Related|xinitrc}}<br />
{{Related|Start X at Login}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:Window manager|윈도우 매니저]] (Window Manager, WM)은 그래픽 유저 인터페이스(GUI)의 윈도우 시스템 내에서의 창의 위치와 모양을 관리하는 시스템 소프트웨어이다. 데스크탑 환경([[desktop environment]], DE)의 일부 혹은 독립된 형태로 사용된다. <br />
<br />
''이 문서에서는 '창 관리자' 대신 '윈도우 매니저'라는 용어를 사용한다.''<br />
<br />
== 개요 ==<br />
<br />
창 관리자(Window Manager)는 그래픽 어플리케이션들이 나타나는 프레임(혹은 윈도우)의 모양이나 동작을 관리하는 X 클라이언트로서 프레임의 경계, 타이틀바, 크기 등을 결정한다. 또한 창 크기 조절 기능이나 [[Fluxbox]]와 같은 윈도우 탭 기능 혹은 창 달라붙기 기능(Sticking, [[Window Maker]]의 Sticking 포함된 기능 [http://windowmaker.org/dockapps/ dockapps] 참고) 등을 제공한다. 몇몇 윈도우 매니저는 응용프로그램 실행을 위한 메뉴나 윈도우 매니저 자체 설정을 위한 간단한 유틸리티들을 제공하기도 한다.<br />
<br />
윈도우 매니저는 X 서버와 클라이언트와 상호작용을 위해 [http://standards.freedesktop.org/wm-spec/wm-spec-latest.html Extended Window Manager Hints] 이라는 표준 정의를 사용한다.<br />
<br />
몇몇 윈도우 매니저들은 [[desktop environment]]의 일부로서 개발되어 데스크탑 아이콘, 폰트, 도구모음, 배경화면, 데스크탑 위젯 등의 유저에게 일관된 사용환경을 제공한다.<br />
<br />
반면, 그 외의 다른 윈도우 매니저들은 데스크탑 환경의 일부분이 아닌 독립된 형태로 사용되도록 개발되어 사용자들이 사용할 수 있는 프로그램을 직접 선택할 수 있도록 한다. 때문에 사용자 기호에 맞도록 더 가볍고 커스터마이징 된 사용환경을 만들 수 있다. 데스크탑 아이콘이나 툴바, 배경화면, 데스크탑 위젯 등과 같은 부가 기능들은 관련된 어플리케이션들을 추가적으로 설치하여 사용할 수도 있다. (''일반적으로 Gnome에서는 ''Mutter'' 또는 ''Metacity'', KDE에서는 ''Kwin''을 윈도우 매니저로 사용하고 설치 시 다양한 기본 프로그램이 설치된다. 하지만, 데스크탑 환경을 설치하지 않고 윈도우 매니저만을 설치하여 사용하는 경우 그러한 기본 프로그램이 설치되지 않기 때문에 사용할 수 있는 프로그램을 직접 선택할 수 있다고 언급된 것이다.'')<br />
<br />
몇몇 독립된 형태의 윈도우 매니저들(standalone WMs)은 데스크탑 환경의 기본 윈도우 매니저를 대체하여 사용될 수 있기도 하다.<br />
<br />
윈도우 매니저를 설치하기 전에, X 서버 설치가 반드시 되어야 한다.([[Xorg]]를 참고)<br />
<br />
=== 종류 ===<br />
<br />
* [[#Stacking window managers|Stacking]](혹은 floating) Stacking 윈도우 매니저는 윈도우즈와 맥 OS X와 같은 운영체제에서 사용된다. 마치 책상 위에 놓여진 종이들처럼 창들을 다른 창들 위에 쌓아 놓는 형태를 가진다. (아치 리눅스 위키 페이지 [[:Category:Stacking WMs]] 참고.)<br />
* [[#Tiling window managers|Tiling]] 윈도우 매니저는 Stacking과 다르게 창들이 다른 창 위에 놓여 겹치지지 않는다. 대신, 타일처럼 화면이 분할되며 마우스보다 조합키를 통해 프로그램의 창을 조작하고 관리한다. Tiling 윈도우 매니저는 분할되는 창 레이아웃에 대해 직접 수정이 가능하지만 미리 정의된 레이아웃이 제공되기도 한다. (아치 리눅스 위키 페이지 [[:Category:Tiling WMs]] 참고.)<br />
* [[#Dynamic window managers|Dynamic]] 윈도우 매니저는 Tiling 방식과 Floating 방식 사이에서 창 관리 기법을 전환할 수 있는 윈도우 매니저이다. 자세한 정보는 [[:Category:Dynamic WMs]]를 참고한다.<br />
<br />
윈도우 매니저들의 비교를 확인하고 싶다면 [[Comparison of tiling window managers]]와 [[Wikipedia:Comparison of X window managers]] 페이지를 참고한다.<br />
<br />
== 윈도우 매니저 목록 ==<br />
<br />
=== Stacking window managers ===<br />
<br />
* {{App|[[2bwm]]|Fast floating WM, with the particularity of having 2 borders, written over the XCB library and derived from mcwm written by Michael Cardell. In 2bwm everything is accessible from the keyboard but a pointing device can be used for move, resize and raise/lower. The name has recently changed from mcwm-beast to 2bwm.|https://github.com/venam/2bwm|{{AUR|2bwm}}}}<br />
<br />
* {{App|aewm|Modern, minimal window manager for X11. It is controlled entirely with the mouse, but contains no visible UI apart from window frames. The command set is sort of like vi: designed back in the dawn of time (1997) to squeeze speed out of low-memory machines, completely unintuitive and new-user-hostile, but quick and elegant in its own way.|http://www.red-bean.com/decklin/aewm/|{{AUR|aewm}}}}<br />
<br />
* {{App|[[Wikipedia:AfterStep|AfterStep]]|Window manager for the Unix X Window System. Originally based on the look and feel of the NeXTStep interface, it provides end users with a consistent, clean, and elegant desktop. The goal of AfterStep development is to provide for flexibility of desktop configuration, improving aesthetics, and efficient use of system resources.|http://www.afterstep.org/|{{AUR|afterstep}}}}<br />
<br />
* {{App|[[Blackbox]]|Fast, lightweight window manager for the X Window System, without all those annoying library dependencies. Blackbox is built with C++ and contains completely original code (even though the graphics implementation is similar to that of WindowMaker).|http://blackboxwm.sourceforge.net/|{{Pkg|blackbox}}}}<br />
<br />
* {{App|[[Compiz]]|OpenGL compositing manager that uses GLX_EXT_texture_from_pixmap for binding redirected top-level windows to texture objects. It has a flexible plug-in system and it is designed to run well on most graphics hardware.|https://launchpad.net/compiz|{{AUR|compiz}}}}<br />
<br />
* {{App|cwm|Originally deriving from evilwm, but later re-written from scratch. cwm aims to be simple, and offers helpful features such as searching for windows.|http://monkey.org/~marius/cwm/cwm.1.a|{{AUR|cwm}}}}<br />
<br />
* {{App|eggwm|A lightweight QT4/QT5 window manager|{{AUR|eggwm-qt5}}|{{AUR|eggwm}}}}<br />
<br />
* {{App|[[Enlightenment]]|Enlightenment is not just a window manager for Linux/X11 and others, but also a whole suite of libraries to help you create beautiful user interfaces with much less work than doing it the old fashioned way and fighting with traditional toolkits, not to mention a traditional window manager.|http://www.enlightenment.org/|{{Pkg|enlightenment}}}}<br />
<br />
* {{App|[[evilwm]]|Minimalist window manager for the X Window System. 'Minimalist' here does not mean it is too bare to be usable - it just means it omits a lot of the stuff that make other window managers ''un''usable.|http://www.6809.org.uk/evilwm/|{{AUR|evilwm}}}}<br />
<br />
* {{App|[[Fluxbox]]|Window manager for X that was based on the Blackbox 0.61.1 code. It is very light on resources and easy to handle but yet full of features to make an easy and extremely fast desktop experience. It is built using C++ and licensed under the MIT License.|http://www.fluxbox.org/|{{Pkg|fluxbox}}}}<br />
<br />
* {{App|[[Wikipedia:FLWM|Flwm]]|Attempt to combine the best ideas I have seen in several window managers. The primary influence and code base is from wm2 by Chris Cannam.|http://flwm.sourceforge.net/|{{AUR|flwm}}}}<br />
<br />
* {{App|[[FVWM]]|Extremely powerful ICCCM-compliant multiple virtual desktop window manager for the X Window system. Development is active, and support is excellent.|http://www.fvwm.org/|{{Pkg|fvwm}}}}<br />
<br />
* {{app|[http://elementaryos.org/journal/meet-gala-window-manager Gala]|A beautiful Window Manager from elementaryos, part of [[Pantheon]]. Also as a compositing manager, based on libmutter.|https://launchpad.net/gala|{{aur|gala-bzr}}}}<br />
<br />
* {{App|Goomwwm|X11 window manager implemented in C as a cleanroom software project. It manages windows in a minimal floating layout, while providing flexible keyboard-driven controls for window switching, sizing, moving, tagging, and tiling. It is also fast, lightweight, modeless, Xinerama-aware, and EWMH compatible wherever possible.|http://aerosuidae.net/goomwwm/|{{AUR|goomwwm}}}}<br />
<br />
* {{App|[[IceWM]]|Window manager for the X Window System. The goal of IceWM is speed, simplicity, and not getting in the user's way.|http://www.icewm.org/|{{Pkg|icewm}}}}<br />
<br />
* {{App|[[jbwm]]|jbwm is a window manager based on evilwm, with a minimal configuration size of approximately 16kb, focused on small binary size and usability, incorporating optional title-bars and XFT title-bar font rendering as compile-time options. jbwm also features easier to use keybindings than evilwm.|https://github.com/jefbed/jbwm|{{AUR|jbwm}}}}<br />
<br />
* {{App|[[JWM]]|Window manager for the X11 Window System. JWM is written in C and uses only Xlib at a minimum.|http://joewing.net/projects/jwm/index.shtml|{{Pkg|jwm}}}}<br />
<br />
* {{App|Karmen|Window manager for X, written by Johan Veenhuizen. It is designed to "just work." There is no configuration file and no library dependencies other than Xlib. The input focus model is click-to-focus. Karmen aims at ICCCM and EWMH compliance.|http://karmen.sourceforge.net/|{{AUR|karmen}}}}<br />
<br />
* {{App|[[Wikipedia:KWin|KWin]]|The standard KDE window manager in KDE 4.0, ships with the first version of built-in support for compositing, making it also a compositing manager. This allows KWin to provide advanced graphical effects, similar to Compiz, while also providing all the features from previous KDE releases (such as very good integration with the rest of KDE, advanced configurability, focus stealing prevention, a well-tested window manager, robust handling of misbehaving applications/toolkits, etc.).|https://techbase.kde.org/Projects/KWin|{{Pkg|kwin}}}}<br />
<br />
* {{App|lwm|Window manager for X that tries to keep out of your face. There are no icons, no button bars, no icon docks, no root menus, no nothing: if you want all that, then other programs can provide it. There is no configurability either: if you want that, you want a different window manager; one that helps your operating system in its evil conquest of your disc space and its annexation of your physical memory.|http://www.jfc.org.uk/software/lwm.html|{{Pkg|lwm}}}}<br />
<br />
* {{App|Marco|The MATE window manager, fork of Metacity.|https://github.com/mate-desktop/marco|{{Pkg|marco}}}}<br />
<br />
* {{App|[[Wikipedia:Metacity|Metacity]]|This window manager strives to be quiet, small, stable, get on with its job, and stay out of your attention.|http://blogs.gnome.org/metacity/|{{Pkg|metacity}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter_(software)#Muffin|Muffin]]|Window and compositing manager for Cinnamon, fork of Mutter, based on Clutter, uses OpenGL.|https://github.com/linuxmint/muffin/|{{Pkg|muffin}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter (window manager)|Mutter]]|Window and compositing manager for GNOME, based on Clutter, uses OpenGL.|http://git.gnome.org/browse/mutter/|{{Pkg|mutter}}}}<br />
<br />
* {{App|[[Wikipedia:Motif_Window_Manager|MWM]]|The Motif Window Manager (MWM) is an X window manager based on the Motif toolkit.|http://sourceforge.net/projects/motif/|{{Pkg|openmotif}}, {{Pkg|lesstif}}}}<br />
<br />
* {{App|[[Openbox]]|Highly configurable, next generation window manager with extensive standards support. The *box visual style is well known for its minimalistic appearance. Openbox uses the *box visual style, while providing a greater number of options for theme developers than previous *box implementations. The theme documentation describes the full range of options found in Openbox themes.|http://openbox.org/wiki/Main_Page|{{Pkg|openbox}}}}<br />
<br />
* {{App|[[pawm]]|Window manager for the X Window system. So it is not a 'desktop' and does not offer you a huge pile of useless options, just the facilities needed to run your X applications and at the same time having a friendly and easy to use interface.|http://www.pleyades.net/pawm/|{{Pkg|pawm}}}}<br />
<br />
* {{App|[[PekWM]]|Window manager that once upon a time was based on the aewm++ window manager, but it has evolved enough that it no longer resembles aewm++ at all. It has a much expanded feature-set, including window grouping (similar to Ion, PWM, or Fluxbox), auto-properties, Xinerama, keygrabber that supports keychains, and much more.|http://www.pekwm.org/projects/pekwm|{{Pkg|pekwm}}}}<br />
<br />
* {{App|[[Sawfish]]|Extensible window manager using a Lisp-based scripting language. Its policy is very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. All high-level WM functions are implemented in Lisp for future extensibility or redefinition.|http://sawfish.wikia.com/wiki/Main_Page|{{AUR|sawfish}}}}<br />
<br />
* {{App|TinyWM|Tiny window manager created as an exercise in minimalism. It may be helpful in learning some of the very basics of creating a window manager. It is comprised of approximately 50 lines of C. There is also a Python version using python-xlib.|http://incise.org/tinywm.html|{{AUR|tinywm}} {{AUR|tinywm-git}}}}<br />
<br />
* {{App|[[twm]]|Window manager for the X Window System. It provides titlebars, shaped windows, several forms of icon management, user-defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer button bindings.|http://cgit.freedesktop.org/xorg/app/twm/|{{Pkg|xorg-twm}}}}<br />
<br />
* {{App|[[Wikipedia:UDE|UWM]]|The ultimate window manager for UDE.|http://udeproject.sourceforge.net/|{{Pkg|ude}}}}<br />
<br />
* {{App|WindowLab|Small and simple window manager of novel design. It has a click-to-focus but not raise-on-focus policy, a window resizing mechanism that allows one or many edges of a window to be changed in one action, and an innovative menubar that shares the same part of the screen as the taskbar. Window titlebars are prevented from going off the edge of the screen by constraining the mouse pointer, and when appropriate the pointer is also constrained to the taskbar/menubar in order to make target menu items easier to hit.|http://nickgravgaard.com/windowlab/|{{Pkg|windowlab}}}}<br />
<br />
* {{App|[[Window Maker]]|X11 window manager originally designed to provide integration support for the GNUstep Desktop Environment. In every way possible, it reproduces the elegant look and feel of the NEXTSTEP user interface. It is fast, feature rich, easy to configure, and easy to use. It is also free software, with contributions being made by programmers from around the world.|http://windowmaker.org/|{{Pkg|windowmaker}}}}<br />
<br />
* {{App|WM2|Window manager for X. It provides an unusual style of window decoration and as little functionality as its author feels comfortable with in a window manager. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who do not particularly want their window manager to be too friendly. |http://www.all-day-breakfast.com/wm2/|{{AUR|wm2}}}}<br />
<br />
* {{App|[[Xfwm]]|The [[Xfce]] window manager manages the placement of application windows on the screen, provides beautiful window decorations, manages workspaces or virtual desktops and natively supports multiscreen mode. It provides its own compositing manager (from the X.Org Composite extension) for true transparency and shadows. The Xfce window manager also includes a keyboard shortcuts editor for user specific commands and basic windows manipulations and provides a preferences dialog for advanced tweaks.|http://www.xfce.org/projects/xfwm4/|{{pkg|xfwm4}}}}<br />
<br />
=== Tiling window managers ===<br />
<br />
* {{App|[[Bspwm]]|bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. It has support for EWMH and multiple monitors, and is configured and controlled through messages.|https://github.com/baskerville/bspwm|{{Pkg|bspwm}}}}<br />
<br />
* {{App|[[Herbstluftwm]]|Manual tiling window manager for X11 using Xlib and Glib. The layout is based on splitting frames into subframes which can be split again or can be filled with windows (similar to i3/ musca). Tags (or workspaces or virtual desktops or …) can be added/removed at runtime. Each tag contains its own layout. Exactly one tag is viewed on each monitor. The tags are monitor independent (similar to xmonad). It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup. (similar to wmii/musca).|http://herbstluftwm.org|{{pkg|herbstluftwm}}}}<br />
<br />
* {{App|howm|A lightweight, tiling X11 window manager that mimics vi by offering operators, motions and modes. Configuration is done through the included {{ic|config.h}} file.|https://github.com/HarveyHunt/howm|{{AUR|howm-x11}}}}<br />
<br />
* {{App|[[Ion3]]|Tiling tabbed X11 window manager designed with keyboard users in mind. It was one of the first of the “new wave" of tiling windowing environments (the other being LarsWM, with quite a different approach) and has since spawned an entire category of tiling window managers for X11 – none of which really manage to reproduce the feel and functionality of Ion. It uses Lua as an embedded interpreter which handles all of the configuration. |http://tuomov.iki.fi/software|{{AUR|ion3}}}}<br />
<br />
* {{App|[[Notion]]|Tiling, tabbed window manager for the X window system that utilizes 'tiles' and 'tabbed' windows.<br />
** Tiling: you divide the screen into non-overlapping 'tiles'. Every window occupies one tile, and is maximized to it<br />
** Tabbing: a tile may contain multiple windows - they will be 'tabbed'.<br />
** Static: most tiled window managers are 'dynamic', meaning they automatically resize and move around tiles as windows appear and disappear. Notion, by contrast, does not automatically change the tiling.<br />
: Notion is a fork of Ion3.|http://notion.sf.net/|{{Pkg|notion}}}}<br />
<br />
* {{App|[[Ratpoison]]|Simple Window Manager with no fat library dependencies, no fancy graphics, no window decorations, and no rodent dependence. It is largely modeled after GNU Screen which has done wonders in the virtual terminal market. Ratpoison is configured with a simple text file. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray.|http://www.nongnu.org/ratpoison/|{{Pkg|ratpoison}}}}<br />
<br />
* {{App|[[Stumpwm]]|Tiling, keyboard driven X11 Window Manager written entirely in Common Lisp. Stumpwm attempts to be customizable yet visually minimal. It does have various hooks to attach your personal customizations, and variables to tweak, and can be reconfigured and reloaded while running. There are no window decorations, no icons, no buttons, and no system tray. Its information bar can be set to show constantly or only when needed.|http://www.nongnu.org/stumpwm/|{{AUR|stumpwm-git}}}}<br />
<br />
* {{App|[[subtle]]|Manual tiling window manager with a rather uncommon approach of tiling: Per default there is no typical layout enforcement, windows are placed on a position (gravity) in a custom grid. The user can change the gravity of each window either directly per grabs or with rules defined by tags in the config. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar. |http://subforge.org/projects/subtle|{{AUR|subtle-git}}}}<br />
<br />
* {{App|[[WMFS]]|Window Manager From Scratch is a lightweight and highly configurable tiling window manager for X. It can be configured with a configuration file, supports Xft (FreeType) fonts and is compliant with the Extended Window Manager Hints (EWMH) specifications, Xinerama and Xrandr. WMFS can be driven with Vi based commands (ViWMFS).|https://github.com/xorg62/wmfs|{{AUR|wmfs}}}}<br />
<br />
* {{App|[[WMFS2]]|Incompatible successor of WMFS. It's even more minimalistic and brings some new stuff.|https://github.com/xorg62/wmfs|{{AUR|wmfs2-git}}}}<br />
<br />
=== Dynamic window managers ===<br />
<br />
* {{App|[[awesome]]|Highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things. |http://awesome.naquadah.org/|{{Pkg|awesome}}}}<br />
<br />
* {{App|[[catwm]]|Small window manager, even simpler than dwm, written in C. Configuration is done by modifying the config.h file and recompiling.|https://github.com/pyknite/catwm|{{AUR|catwm-git}}}}<br />
<br />
* {{App|[[dwm]]|Dynamic window manager for X. It manages windows in tiled, monocle and floating layouts. All of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed. does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed.|http://dwm.suckless.org/|{{Pkg|dwm}}}}<br />
<br />
* {{App|[[echinus]]|Simple and lightweight tiling and floating window manager for X11. Started as a dwm fork with easier configuration, echinus became full-featured re-parenting window manager with EWMH support. It has an EWMH-compatible panel/taskbar, called {{AUR|ourico}}.|http://plhk.ru|{{AUR|echinus}}}}<br />
<br />
* {{App|[[i3]]|Tiling window manager, completely written from scratch. i3 was created because wmii, our favorite window manager at the time, did not provide some features we wanted (multi-monitor done right, for example), had some bugs, did not progress for quite some time, and was not easy to hack at all (source code comments/documentation completely lacking). Notable differences are in the areas of multi-monitor support and the tree metaphor. For speed the Plan 9 interface of wmii is not implemented. |http://i3wm.org/|{{Pkg|i3-wm}}}}<br />
<br />
* {{App|[[FrankenWM]]|Basically monsterwm with floating done right. Features that are added on top of basic mwm include: more layouts (fibonacci, equal stack, dual stack), gaps (and borders) are adjustable on the fly, minimize/maximize single windows, hide/show all windows, resizing master and stack individually, invert stack.|https://github.com/sulami/FrankenWM|{{AUR|frankenwm-git}}}}<br />
<br />
* {{App|[[spectrwm]]|Small dynamic tiling window manager for X11, largely inspired by xmonad and dwm. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and is configured with a text file. It was written by hackers for hackers and it strives to be small, compact and fast. It has a built-in status bar fed from a user-defined script.|https://github.com/conformal/spectrwm/wiki|{{Pkg|spectrwm}}}}<br />
<br />
* {{App|[[Qtile]]|Full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It's easy to write your own layouts, widgets, and built-in commands.It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs. |https://github.com/qtile/qtile|{{AUR|qtile}}}}<br />
<br />
* {{App|[[wmii]]|Small, dynamic window manager for X11. It is scriptable, has a 9P filesystem interface and supports classic and tiling (Acme-like) window management. It aims to maintain a small and clean (read hackable and beautiful) codebase. The default configuration is in bash and [http://rc.cat-v.org rc (the Plan 9 shell)], but programs exist written in ruby, and any program that can work with text can configure it. It has a status bar and launcher built in, and also an optional system tray ({{ic|witray}}). |http://wmii.suckless.org/|{{Pkg|wmii}}}}<br />
<br />
* {{App|[[xmonad]]|Dynamically tiling X11 window manager that is written and configured in Haskell. In a normal WM, you spend half your time aligning and searching for windows. Xmonad makes work easier, by automating this. XMonad is configured in Haskell. For all configuration changes, xmonad must be recompiled, so the Haskell compiler (over 100MB) must be installed. A large library called {{Pkg|xmonad-contrib}} provides many additional features|http://xmonad.org/|{{Pkg|xmonad}}}}<br />
<br />
== 출처 ==<br />
<br />
* http://www.gilesorr.com/wm/<br />
* http://www.slant.co/topics/390/~what-are-the-best-window-managers-for-linux<br />
* https://l3net.wordpress.com/2013/03/17/a-memory-comparison-of-light-linux-desktops/<br />
.slant.co/topics/390/~what-are-the-best-window-managers-for-linux<br />
* https://l3n</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Window_manager_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=451784Window manager (한국어)2016-09-24T06:27:49Z<p>Sukbeom: Translate 'overview' section.</p>
<hr />
<div>[[Category:Window managers (한국어)]]<br />
[[ar:Window manager]]<br />
[[en:Window manager]]<br />
[[es:Window manager]]<br />
[[fa:Window manager]]<br />
[[it:Window manager]]<br />
[[ja:ウィンドウマネージャ]]<br />
[[ru:Window manager]]<br />
[[uk:Window manager]]<br />
[[zh-cn:Window manager]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Xdg-menu}}<br />
{{Related|Xorg}}<br />
{{Related|xinitrc}}<br />
{{Related|Start X at Login}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:Window manager|윈도우 매니저]] (Window Manager, WM)은 그래픽 유저 인터페이스(GUI)의 윈도우 시스템 내에서의 창의 위치와 모양을 관리하는 시스템 소프트웨어이다. 데스크탑 환경([[desktop environment]], DE)의 일부 혹은 독립된 형태로 사용된다. <br />
<br />
''이 문서에서는 '창 관리자' 대신 '윈도우 매니저'라는 용어를 사용한다.''<br />
<br />
== 개요 ==<br />
<br />
창 관리자(Window Manager)는 그래픽 어플리케이션들이 나타나는 프레임(혹은 윈도우)의 모양이나 동작을 관리하는 X 클라이언트로서 프레임의 경계, 타이틀바, 크기 등을 결정한다. 또한 창 크기 조절 기능이나 [[Fluxbox]]와 같은 윈도우 탭 기능 혹은 창 달라붙기 기능(Sticking, [[Window Maker]]의 Sticking 포함된 기능 [http://windowmaker.org/dockapps/ dockapps] 참고) 등을 제공한다. 몇몇 윈도우 매니저는 응용프로그램 실행을 위한 메뉴나 윈도우 매니저 자체 설정을 위한 간단한 유틸리티들을 제공하기도 한다.<br />
<br />
윈도우 매니저는 X 서버와 클라이언트와 상호작용을 위해 [http://standards.freedesktop.org/wm-spec/wm-spec-latest.html Extended Window Manager Hints] 이라는 표준 정의를 사용한다.<br />
<br />
몇몇 윈도우 매니저들은 [[desktop environment]]의 일부로서 개발되어 데스크탑 아이콘, 폰트, 도구모음, 배경화면, 데스크탑 위젯 등의 유저에게 일관된 사용환경을 제공한다.<br />
<br />
반면, 그 외의 다른 윈도우 매니저들은 데스크탑 환경의 일부분이 아닌 독립된 형태로 사용되도록 개발되어 사용자들이 사용할 수 있는 프로그램을 직접 선택할 수 있도록 한다. 때문에 사용자 기호에 맞도록 더 가볍고 커스터마이징 된 사용환경을 만들 수 있다. 데스크탑 아이콘이나 툴바, 배경화면, 데스크탑 위젯 등과 같은 부가 기능들은 관련된 어플리케이션들을 추가적으로 설치하여 사용할 수도 있다. (''일반적으로 Gnome에서는 ''Mutter'' 또는 ''Metacity'', KDE에서는 ''Kwin''을 윈도우 매니저로 사용하고 설치 시 다양한 기본 프로그램이 설치된다. 하지만, 데스크탑 환경을 설치하지 않고 윈도우 매니저만을 설치하여 사용하는 경우 그러한 기본 프로그램이 설치되지 않기 때문에 사용할 수 있는 프로그램을 직접 선택할 수 있다고 언급된 것이다.'')<br />
<br />
몇몇 독립된 형태의 윈도우 매니저들(standalone WMs)은 데스크탑 환경의 기본 윈도우 매니저를 대체하여 사용될 수 있기도 하다.<br />
<br />
윈도우 매니저를 설치하기 전에, X 서버 설치가 반드시 되어야 한다.([[Xorg]]를 참고)<br />
<br />
=== 종류 ===<br />
<br />
* [[#Stacking window managers|Stacking]](혹은 floating) Stacking 윈도우 매니저는 윈도우즈와 맥 OS X와 같은 운영체제에서 사용된다. 마치 책상 위에 놓여진 종이들처럼 창들을 다른 창들 위에 쌓아 놓는 형태를 가진다. (아치 리눅스 위키 페이지 [[:Category:Stacking WMs]] 참고.)<br />
* [[#Tiling window managers|Tiling]] 윈도우 매니저는 Stacking과 다르게 창들이 다른 창 위에 놓여 겹치지지 않는다. 대신, 타일처럼 화면이 분할되며 마우스보다 조합키를 통해 프로그램의 창을 조작하고 관리한다. Tiling 윈도우 매니저는 분할되는 창 레이아웃에 대해 직접 수정이 가능하지만 미리 정의된 레이아웃이 제공되기도 한다. (아치 리눅스 위키 페이지 [[:Category:Tiling WMs]] 참고.)<br />
* [[#Dynamic window managers|Dynamic]] 윈도우 매니저는 Tiling 방식과 Floating 방식 사이에서 창 관리 기법을 전환할 수 있는 윈도우 매니저이다. 자세한 정보는 [[:Category:Dynamic WMs]]를 참고한다.<br />
<br />
윈도우 매니저들의 비교를 확인하고 싶다면 [[Comparison of tiling window managers]]와 [[Wikipedia:Comparison of X window managers]] 페이지를 참고한다.<br />
<br />
== 윈도우 매니저 목록 ==<br />
<br />
=== Stacking window managers ===<br />
<br />
* {{App|[[2bwm]]|Fast floating WM, with the particularity of having 2 borders, written over the XCB library and derived from mcwm written by Michael Cardell. In 2bwm everything is accessible from the keyboard but a pointing device can be used for move, resize and raise/lower. The name has recently changed from mcwm-beast to 2bwm.|https://github.com/venam/2bwm|{{AUR|2bwm}}}}<br />
<br />
* {{App|aewm|Modern, minimal window manager for X11. It is controlled entirely with the mouse, but contains no visible UI apart from window frames. The command set is sort of like vi: designed back in the dawn of time (1997) to squeeze speed out of low-memory machines, completely unintuitive and new-user-hostile, but quick and elegant in its own way.|http://www.red-bean.com/decklin/aewm/|{{AUR|aewm}}}}<br />
<br />
* {{App|[[Wikipedia:AfterStep|AfterStep]]|Window manager for the Unix X Window System. Originally based on the look and feel of the NeXTStep interface, it provides end users with a consistent, clean, and elegant desktop. The goal of AfterStep development is to provide for flexibility of desktop configuration, improving aesthetics, and efficient use of system resources.|http://www.afterstep.org/|{{AUR|afterstep}}}}<br />
<br />
* {{App|[[Blackbox]]|Fast, lightweight window manager for the X Window System, without all those annoying library dependencies. Blackbox is built with C++ and contains completely original code (even though the graphics implementation is similar to that of WindowMaker).|http://blackboxwm.sourceforge.net/|{{Pkg|blackbox}}}}<br />
<br />
* {{App|[[Compiz]]|OpenGL compositing manager that uses GLX_EXT_texture_from_pixmap for binding redirected top-level windows to texture objects. It has a flexible plug-in system and it is designed to run well on most graphics hardware.|https://launchpad.net/compiz|{{AUR|compiz}}}}<br />
<br />
* {{App|cwm|Originally deriving from evilwm, but later re-written from scratch. cwm aims to be simple, and offers helpful features such as searching for windows.|http://monkey.org/~marius/cwm/cwm.1.a|{{AUR|cwm}}}}<br />
<br />
* {{App|eggwm|A lightweight QT4/QT5 window manager|{{AUR|eggwm-qt5}}|{{AUR|eggwm}}}}<br />
<br />
* {{App|[[Enlightenment]]|Enlightenment is not just a window manager for Linux/X11 and others, but also a whole suite of libraries to help you create beautiful user interfaces with much less work than doing it the old fashioned way and fighting with traditional toolkits, not to mention a traditional window manager.|http://www.enlightenment.org/|{{Pkg|enlightenment}}}}<br />
<br />
* {{App|[[evilwm]]|Minimalist window manager for the X Window System. 'Minimalist' here does not mean it is too bare to be usable - it just means it omits a lot of the stuff that make other window managers ''un''usable.|http://www.6809.org.uk/evilwm/|{{AUR|evilwm}}}}<br />
<br />
* {{App|[[Fluxbox]]|Window manager for X that was based on the Blackbox 0.61.1 code. It is very light on resources and easy to handle but yet full of features to make an easy and extremely fast desktop experience. It is built using C++ and licensed under the MIT License.|http://www.fluxbox.org/|{{Pkg|fluxbox}}}}<br />
<br />
* {{App|[[Wikipedia:FLWM|Flwm]]|Attempt to combine the best ideas I have seen in several window managers. The primary influence and code base is from wm2 by Chris Cannam.|http://flwm.sourceforge.net/|{{AUR|flwm}}}}<br />
<br />
* {{App|[[FVWM]]|Extremely powerful ICCCM-compliant multiple virtual desktop window manager for the X Window system. Development is active, and support is excellent.|http://www.fvwm.org/|{{Pkg|fvwm}}}}<br />
<br />
* {{app|[http://elementaryos.org/journal/meet-gala-window-manager Gala]|A beautiful Window Manager from elementaryos, part of [[Pantheon]]. Also as a compositing manager, based on libmutter.|https://launchpad.net/gala|{{aur|gala-bzr}}}}<br />
<br />
* {{App|Goomwwm|X11 window manager implemented in C as a cleanroom software project. It manages windows in a minimal floating layout, while providing flexible keyboard-driven controls for window switching, sizing, moving, tagging, and tiling. It is also fast, lightweight, modeless, Xinerama-aware, and EWMH compatible wherever possible.|http://aerosuidae.net/goomwwm/|{{AUR|goomwwm}}}}<br />
<br />
* {{App|[[IceWM]]|Window manager for the X Window System. The goal of IceWM is speed, simplicity, and not getting in the user's way.|http://www.icewm.org/|{{Pkg|icewm}}}}<br />
<br />
* {{App|[[jbwm]]|jbwm is a window manager based on evilwm, with a minimal configuration size of approximately 16kb, focused on small binary size and usability, incorporating optional title-bars and XFT title-bar font rendering as compile-time options. jbwm also features easier to use keybindings than evilwm.|https://github.com/jefbed/jbwm|{{AUR|jbwm}}}}<br />
<br />
* {{App|[[JWM]]|Window manager for the X11 Window System. JWM is written in C and uses only Xlib at a minimum.|http://joewing.net/projects/jwm/index.shtml|{{Pkg|jwm}}}}<br />
<br />
* {{App|Karmen|Window manager for X, written by Johan Veenhuizen. It is designed to "just work." There is no configuration file and no library dependencies other than Xlib. The input focus model is click-to-focus. Karmen aims at ICCCM and EWMH compliance.|http://karmen.sourceforge.net/|{{AUR|karmen}}}}<br />
<br />
* {{App|[[Wikipedia:KWin|KWin]]|The standard KDE window manager in KDE 4.0, ships with the first version of built-in support for compositing, making it also a compositing manager. This allows KWin to provide advanced graphical effects, similar to Compiz, while also providing all the features from previous KDE releases (such as very good integration with the rest of KDE, advanced configurability, focus stealing prevention, a well-tested window manager, robust handling of misbehaving applications/toolkits, etc.).|https://techbase.kde.org/Projects/KWin|{{Pkg|kwin}}}}<br />
<br />
* {{App|lwm|Window manager for X that tries to keep out of your face. There are no icons, no button bars, no icon docks, no root menus, no nothing: if you want all that, then other programs can provide it. There is no configurability either: if you want that, you want a different window manager; one that helps your operating system in its evil conquest of your disc space and its annexation of your physical memory.|http://www.jfc.org.uk/software/lwm.html|{{Pkg|lwm}}}}<br />
<br />
* {{App|Marco|The MATE window manager, fork of Metacity.|https://github.com/mate-desktop/marco|{{Pkg|marco}}}}<br />
<br />
* {{App|[[Wikipedia:Metacity|Metacity]]|This window manager strives to be quiet, small, stable, get on with its job, and stay out of your attention.|http://blogs.gnome.org/metacity/|{{Pkg|metacity}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter_(software)#Muffin|Muffin]]|Window and compositing manager for Cinnamon, fork of Mutter, based on Clutter, uses OpenGL.|https://github.com/linuxmint/muffin/|{{Pkg|muffin}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter (window manager)|Mutter]]|Window and compositing manager for GNOME, based on Clutter, uses OpenGL.|http://git.gnome.org/browse/mutter/|{{Pkg|mutter}}}}<br />
<br />
* {{App|[[Wikipedia:Motif_Window_Manager|MWM]]|The Motif Window Manager (MWM) is an X window manager based on the Motif toolkit.|http://sourceforge.net/projects/motif/|{{Pkg|openmotif}}, {{Pkg|lesstif}}}}<br />
<br />
* {{App|[[Openbox]]|Highly configurable, next generation window manager with extensive standards support. The *box visual style is well known for its minimalistic appearance. Openbox uses the *box visual style, while providing a greater number of options for theme developers than previous *box implementations. The theme documentation describes the full range of options found in Openbox themes.|http://openbox.org/wiki/Main_Page|{{Pkg|openbox}}}}<br />
<br />
* {{App|[[pawm]]|Window manager for the X Window system. So it is not a 'desktop' and does not offer you a huge pile of useless options, just the facilities needed to run your X applications and at the same time having a friendly and easy to use interface.|http://www.pleyades.net/pawm/|{{Pkg|pawm}}}}<br />
<br />
* {{App|[[PekWM]]|Window manager that once upon a time was based on the aewm++ window manager, but it has evolved enough that it no longer resembles aewm++ at all. It has a much expanded feature-set, including window grouping (similar to Ion, PWM, or Fluxbox), auto-properties, Xinerama, keygrabber that supports keychains, and much more.|http://www.pekwm.org/projects/pekwm|{{Pkg|pekwm}}}}<br />
<br />
* {{App|[[Sawfish]]|Extensible window manager using a Lisp-based scripting language. Its policy is very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. All high-level WM functions are implemented in Lisp for future extensibility or redefinition.|http://sawfish.wikia.com/wiki/Main_Page|{{AUR|sawfish}}}}<br />
<br />
* {{App|TinyWM|Tiny window manager created as an exercise in minimalism. It may be helpful in learning some of the very basics of creating a window manager. It is comprised of approximately 50 lines of C. There is also a Python version using python-xlib.|http://incise.org/tinywm.html|{{AUR|tinywm}} {{AUR|tinywm-git}}}}<br />
<br />
* {{App|[[twm]]|Window manager for the X Window System. It provides titlebars, shaped windows, several forms of icon management, user-defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer button bindings.|http://cgit.freedesktop.org/xorg/app/twm/|{{Pkg|xorg-twm}}}}<br />
<br />
* {{App|[[Wikipedia:UDE|UWM]]|The ultimate window manager for UDE.|http://udeproject.sourceforge.net/|{{Pkg|ude}}}}<br />
<br />
* {{App|WindowLab|Small and simple window manager of novel design. It has a click-to-focus but not raise-on-focus policy, a window resizing mechanism that allows one or many edges of a window to be changed in one action, and an innovative menubar that shares the same part of the screen as the taskbar. Window titlebars are prevented from going off the edge of the screen by constraining the mouse pointer, and when appropriate the pointer is also constrained to the taskbar/menubar in order to make target menu items easier to hit.|http://nickgravgaard.com/windowlab/|{{Pkg|windowlab}}}}<br />
<br />
* {{App|[[Window Maker]]|X11 window manager originally designed to provide integration support for the GNUstep Desktop Environment. In every way possible, it reproduces the elegant look and feel of the NEXTSTEP user interface. It is fast, feature rich, easy to configure, and easy to use. It is also free software, with contributions being made by programmers from around the world.|http://windowmaker.org/|{{Pkg|windowmaker}}}}<br />
<br />
* {{App|WM2|Window manager for X. It provides an unusual style of window decoration and as little functionality as its author feels comfortable with in a window manager. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who do not particularly want their window manager to be too friendly. |http://www.all-day-breakfast.com/wm2/|{{AUR|wm2}}}}<br />
<br />
* {{App|[[Xfwm]]|The [[Xfce]] window manager manages the placement of application windows on the screen, provides beautiful window decorations, manages workspaces or virtual desktops and natively supports multiscreen mode. It provides its own compositing manager (from the X.Org Composite extension) for true transparency and shadows. The Xfce window manager also includes a keyboard shortcuts editor for user specific commands and basic windows manipulations and provides a preferences dialog for advanced tweaks.|http://www.xfce.org/projects/xfwm4/|{{pkg|xfwm4}}}}<br />
<br />
=== Tiling window managers ===<br />
<br />
* {{App|[[Bspwm]]|bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. It has support for EWMH and multiple monitors, and is configured and controlled through messages.|https://github.com/baskerville/bspwm|{{Pkg|bspwm}}}}<br />
<br />
* {{App|[[Herbstluftwm]]|Manual tiling window manager for X11 using Xlib and Glib. The layout is based on splitting frames into subframes which can be split again or can be filled with windows (similar to i3/ musca). Tags (or workspaces or virtual desktops or …) can be added/removed at runtime. Each tag contains its own layout. Exactly one tag is viewed on each monitor. The tags are monitor independent (similar to xmonad). It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup. (similar to wmii/musca).|http://herbstluftwm.org|{{pkg|herbstluftwm}}}}<br />
<br />
* {{App|howm|A lightweight, tiling X11 window manager that mimics vi by offering operators, motions and modes. Configuration is done through the included {{ic|config.h}} file.|https://github.com/HarveyHunt/howm|{{AUR|howm-x11}}}}<br />
<br />
* {{App|[[Ion3]]|Tiling tabbed X11 window manager designed with keyboard users in mind. It was one of the first of the “new wave" of tiling windowing environments (the other being LarsWM, with quite a different approach) and has since spawned an entire category of tiling window managers for X11 – none of which really manage to reproduce the feel and functionality of Ion. It uses Lua as an embedded interpreter which handles all of the configuration. |http://tuomov.iki.fi/software|{{AUR|ion3}}}}<br />
<br />
* {{App|[[Notion]]|Tiling, tabbed window manager for the X window system that utilizes 'tiles' and 'tabbed' windows.<br />
** Tiling: you divide the screen into non-overlapping 'tiles'. Every window occupies one tile, and is maximized to it<br />
** Tabbing: a tile may contain multiple windows - they will be 'tabbed'.<br />
** Static: most tiled window managers are 'dynamic', meaning they automatically resize and move around tiles as windows appear and disappear. Notion, by contrast, does not automatically change the tiling.<br />
: Notion is a fork of Ion3.|http://notion.sf.net/|{{Pkg|notion}}}}<br />
<br />
* {{App|[[Ratpoison]]|Simple Window Manager with no fat library dependencies, no fancy graphics, no window decorations, and no rodent dependence. It is largely modeled after GNU Screen which has done wonders in the virtual terminal market. Ratpoison is configured with a simple text file. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray.|http://www.nongnu.org/ratpoison/|{{Pkg|ratpoison}}}}<br />
<br />
* {{App|[[Stumpwm]]|Tiling, keyboard driven X11 Window Manager written entirely in Common Lisp. Stumpwm attempts to be customizable yet visually minimal. It does have various hooks to attach your personal customizations, and variables to tweak, and can be reconfigured and reloaded while running. There are no window decorations, no icons, no buttons, and no system tray. Its information bar can be set to show constantly or only when needed.|http://www.nongnu.org/stumpwm/|{{AUR|stumpwm-git}}}}<br />
<br />
* {{App|[[subtle]]|Manual tiling window manager with a rather uncommon approach of tiling: Per default there is no typical layout enforcement, windows are placed on a position (gravity) in a custom grid. The user can change the gravity of each window either directly per grabs or with rules defined by tags in the config. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar. |http://subforge.org/projects/subtle|{{AUR|subtle-git}}}}<br />
<br />
* {{App|[[WMFS]]|Window Manager From Scratch is a lightweight and highly configurable tiling window manager for X. It can be configured with a configuration file, supports Xft (FreeType) fonts and is compliant with the Extended Window Manager Hints (EWMH) specifications, Xinerama and Xrandr. WMFS can be driven with Vi based commands (ViWMFS).|https://github.com/xorg62/wmfs|{{AUR|wmfs}}}}<br />
<br />
* {{App|[[WMFS2]]|Incompatible successor of WMFS. It's even more minimalistic and brings some new stuff.|https://github.com/xorg62/wmfs|{{AUR|wmfs2-git}}}}<br />
<br />
=== Dynamic window managers ===<br />
<br />
* {{App|[[awesome]]|Highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things. |http://awesome.naquadah.org/|{{Pkg|awesome}}}}<br />
<br />
* {{App|[[catwm]]|Small window manager, even simpler than dwm, written in C. Configuration is done by modifying the config.h file and recompiling.|https://github.com/pyknite/catwm|{{AUR|catwm-git}}}}<br />
<br />
* {{App|[[dwm]]|Dynamic window manager for X. It manages windows in tiled, monocle and floating layouts. All of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed. does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed.|http://dwm.suckless.org/|{{Pkg|dwm}}}}<br />
<br />
* {{App|[[echinus]]|Simple and lightweight tiling and floating window manager for X11. Started as a dwm fork with easier configuration, echinus became full-featured re-parenting window manager with EWMH support. It has an EWMH-compatible panel/taskbar, called {{AUR|ourico}}.|http://plhk.ru|{{AUR|echinus}}}}<br />
<br />
* {{App|[[i3]]|Tiling window manager, completely written from scratch. i3 was created because wmii, our favorite window manager at the time, did not provide some features we wanted (multi-monitor done right, for example), had some bugs, did not progress for quite some time, and was not easy to hack at all (source code comments/documentation completely lacking). Notable differences are in the areas of multi-monitor support and the tree metaphor. For speed the Plan 9 interface of wmii is not implemented. |http://i3wm.org/|{{Pkg|i3-wm}}}}<br />
<br />
* {{App|[[FrankenWM]]|Basically monsterwm with floating done right. Features that are added on top of basic mwm include: more layouts (fibonacci, equal stack, dual stack), gaps (and borders) are adjustable on the fly, minimize/maximize single windows, hide/show all windows, resizing master and stack individually, invert stack.|https://github.com/sulami/FrankenWM|{{AUR|frankenwm-git}}}}<br />
<br />
* {{App|[[spectrwm]]|Small dynamic tiling window manager for X11, largely inspired by xmonad and dwm. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and is configured with a text file. It was written by hackers for hackers and it strives to be small, compact and fast. It has a built-in status bar fed from a user-defined script.|https://github.com/conformal/spectrwm/wiki|{{Pkg|spectrwm}}}}<br />
<br />
* {{App|[[Qtile]]|Full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It's easy to write your own layouts, widgets, and built-in commands.It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs. |https://github.com/qtile/qtile|{{AUR|qtile}}}}<br />
<br />
* {{App|[[wmii]]|Small, dynamic window manager for X11. It is scriptable, has a 9P filesystem interface and supports classic and tiling (Acme-like) window management. It aims to maintain a small and clean (read hackable and beautiful) codebase. The default configuration is in bash and [http://rc.cat-v.org rc (the Plan 9 shell)], but programs exist written in ruby, and any program that can work with text can configure it. It has a status bar and launcher built in, and also an optional system tray ({{ic|witray}}). |http://wmii.suckless.org/|{{Pkg|wmii}}}}<br />
<br />
* {{App|[[xmonad]]|Dynamically tiling X11 window manager that is written and configured in Haskell. In a normal WM, you spend half your time aligning and searching for windows. Xmonad makes work easier, by automating this. XMonad is configured in Haskell. For all configuration changes, xmonad must be recompiled, so the Haskell compiler (over 100MB) must be installed. A large library called {{Pkg|xmonad-contrib}} provides many additional features|http://xmonad.org/|{{Pkg|xmonad}}}}<br />
<br />
== See also ==<br />
<br />
* http://www.gilesorr.com/wm/<br />
* http://www.slant.co/topics/390/~what-are-the-best-window-managers-for-linux<br />
* https://l3net.wordpress.com/2013/03/17/a-memory-comparison-of-light-linux-desktops/</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Window_manager_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=451782Window manager (한국어)2016-09-24T04:51:54Z<p>Sukbeom: Create new page for translation.</p>
<hr />
<div>[[Category:Window managers (한국어)]]<br />
[[ar:Window manager]]<br />
[[en:Window manager]]<br />
[[es:Window manager]]<br />
[[fa:Window manager]]<br />
[[it:Window manager]]<br />
[[ja:ウィンドウマネージャ]]<br />
[[ru:Window manager]]<br />
[[uk:Window manager]]<br />
[[zh-cn:Window manager]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Xdg-menu}}<br />
{{Related|Xorg}}<br />
{{Related|xinitrc}}<br />
{{Related|Start X at Login}}<br />
{{Related articles end}}<br />
<br />
A [[Wikipedia:Window manager|window manager]] (WM) is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface (GUI). It can be part of a [[desktop environment]] (DE) or be used standalone.<br />
<br />
== Overview ==<br />
<br />
Window managers are X clients that control the appearance and behaviour of the frames ("windows") where the various graphical applications are drawn. They determine the border, titlebar, size, and ability to resize windows, and often provide other functionality such as reserved areas for sticking [http://windowmaker.org/dockapps/ dockapps] like [[Window Maker]], or the ability to tab windows like [[Fluxbox]]. Some window managers are even bundled with simple utilities like menus to start programs or to configure the WM itself.<br />
<br />
The [http://standards.freedesktop.org/wm-spec/wm-spec-latest.html Extended Window Manager Hints] specification is used to allow window managers interact in standard ways with the server and the other clients.<br />
<br />
Some window managers are developed as part of a more comprehensive [[desktop environment]], usually allowing the other provided applications to better interact with each other, giving a more consistent experience to the user, complete with features like desktop icons, fonts, toolbars, wallpapers, or desktop widgets.<br />
<br />
Other window managers are instead designed to be used ''standalone'', giving the user complete freedom over the choice of the other applications to be used. This allows the user to create a more lightweight and customized environment, tailored to his/her own specific needs. "Extras" like desktop icons, toolbars, wallpapers, or desktop widgets, if needed, will have to be added with additional dedicated applications.<br />
<br />
Some standalone WMs can be also used to replace the default WM of a DE, just like some DE-oriented WMs can be used standalone too.<br />
<br />
Prior to installing a window manager, a functional X server installation is required. See [[Xorg]] for detailed information.<br />
<br />
=== Types ===<br />
<br />
* [[#Stacking window managers|Stacking]] (aka floating) window managers provide the traditional desktop metaphor used in commercial operating systems like Windows and OS X. Windows act like pieces of paper on a desk, and can be stacked on top of each other. For available Arch Wiki pages see [[:Category:Stacking WMs]].<br />
* [[#Tiling window managers|Tiling]] window managers "tile" the windows so that none are overlapping. They usually make very extensive use of key-bindings and have less (or no) reliance on the mouse. Tiling window managers may be manual, offer predefined layouts, or both. For available Arch Wiki pages see [[:Category:Tiling WMs]].<br />
* [[#Dynamic window managers|Dynamic]] window managers can dynamically switch between tiling or floating window layout. For available Arch Wiki pages see [[:Category:Dynamic WMs]].<br />
<br />
See [[Comparison of tiling window managers]] and [[Wikipedia:Comparison of X window managers]] for comparison of window managers.<br />
<br />
== List of window managers==<br />
<br />
=== Stacking window managers ===<br />
<br />
* {{App|[[2bwm]]|Fast floating WM, with the particularity of having 2 borders, written over the XCB library and derived from mcwm written by Michael Cardell. In 2bwm everything is accessible from the keyboard but a pointing device can be used for move, resize and raise/lower. The name has recently changed from mcwm-beast to 2bwm.|https://github.com/venam/2bwm|{{AUR|2bwm}}}}<br />
<br />
* {{App|aewm|Modern, minimal window manager for X11. It is controlled entirely with the mouse, but contains no visible UI apart from window frames. The command set is sort of like vi: designed back in the dawn of time (1997) to squeeze speed out of low-memory machines, completely unintuitive and new-user-hostile, but quick and elegant in its own way.|http://www.red-bean.com/decklin/aewm/|{{AUR|aewm}}}}<br />
<br />
* {{App|[[Wikipedia:AfterStep|AfterStep]]|Window manager for the Unix X Window System. Originally based on the look and feel of the NeXTStep interface, it provides end users with a consistent, clean, and elegant desktop. The goal of AfterStep development is to provide for flexibility of desktop configuration, improving aesthetics, and efficient use of system resources.|http://www.afterstep.org/|{{AUR|afterstep}}}}<br />
<br />
* {{App|[[Blackbox]]|Fast, lightweight window manager for the X Window System, without all those annoying library dependencies. Blackbox is built with C++ and contains completely original code (even though the graphics implementation is similar to that of WindowMaker).|http://blackboxwm.sourceforge.net/|{{Pkg|blackbox}}}}<br />
<br />
* {{App|[[Compiz]]|OpenGL compositing manager that uses GLX_EXT_texture_from_pixmap for binding redirected top-level windows to texture objects. It has a flexible plug-in system and it is designed to run well on most graphics hardware.|https://launchpad.net/compiz|{{AUR|compiz}}}}<br />
<br />
* {{App|cwm|Originally deriving from evilwm, but later re-written from scratch. cwm aims to be simple, and offers helpful features such as searching for windows.|http://monkey.org/~marius/cwm/cwm.1.a|{{AUR|cwm}}}}<br />
<br />
* {{App|eggwm|A lightweight QT4/QT5 window manager|{{AUR|eggwm-qt5}}|{{AUR|eggwm}}}}<br />
<br />
* {{App|[[Enlightenment]]|Enlightenment is not just a window manager for Linux/X11 and others, but also a whole suite of libraries to help you create beautiful user interfaces with much less work than doing it the old fashioned way and fighting with traditional toolkits, not to mention a traditional window manager.|http://www.enlightenment.org/|{{Pkg|enlightenment}}}}<br />
<br />
* {{App|[[evilwm]]|Minimalist window manager for the X Window System. 'Minimalist' here does not mean it is too bare to be usable - it just means it omits a lot of the stuff that make other window managers ''un''usable.|http://www.6809.org.uk/evilwm/|{{AUR|evilwm}}}}<br />
<br />
* {{App|[[Fluxbox]]|Window manager for X that was based on the Blackbox 0.61.1 code. It is very light on resources and easy to handle but yet full of features to make an easy and extremely fast desktop experience. It is built using C++ and licensed under the MIT License.|http://www.fluxbox.org/|{{Pkg|fluxbox}}}}<br />
<br />
* {{App|[[Wikipedia:FLWM|Flwm]]|Attempt to combine the best ideas I have seen in several window managers. The primary influence and code base is from wm2 by Chris Cannam.|http://flwm.sourceforge.net/|{{AUR|flwm}}}}<br />
<br />
* {{App|[[FVWM]]|Extremely powerful ICCCM-compliant multiple virtual desktop window manager for the X Window system. Development is active, and support is excellent.|http://www.fvwm.org/|{{Pkg|fvwm}}}}<br />
<br />
* {{app|[http://elementaryos.org/journal/meet-gala-window-manager Gala]|A beautiful Window Manager from elementaryos, part of [[Pantheon]]. Also as a compositing manager, based on libmutter.|https://launchpad.net/gala|{{aur|gala-bzr}}}}<br />
<br />
* {{App|Goomwwm|X11 window manager implemented in C as a cleanroom software project. It manages windows in a minimal floating layout, while providing flexible keyboard-driven controls for window switching, sizing, moving, tagging, and tiling. It is also fast, lightweight, modeless, Xinerama-aware, and EWMH compatible wherever possible.|http://aerosuidae.net/goomwwm/|{{AUR|goomwwm}}}}<br />
<br />
* {{App|[[IceWM]]|Window manager for the X Window System. The goal of IceWM is speed, simplicity, and not getting in the user's way.|http://www.icewm.org/|{{Pkg|icewm}}}}<br />
<br />
* {{App|[[jbwm]]|jbwm is a window manager based on evilwm, with a minimal configuration size of approximately 16kb, focused on small binary size and usability, incorporating optional title-bars and XFT title-bar font rendering as compile-time options. jbwm also features easier to use keybindings than evilwm.|https://github.com/jefbed/jbwm|{{AUR|jbwm}}}}<br />
<br />
* {{App|[[JWM]]|Window manager for the X11 Window System. JWM is written in C and uses only Xlib at a minimum.|http://joewing.net/projects/jwm/index.shtml|{{Pkg|jwm}}}}<br />
<br />
* {{App|Karmen|Window manager for X, written by Johan Veenhuizen. It is designed to "just work." There is no configuration file and no library dependencies other than Xlib. The input focus model is click-to-focus. Karmen aims at ICCCM and EWMH compliance.|http://karmen.sourceforge.net/|{{AUR|karmen}}}}<br />
<br />
* {{App|[[Wikipedia:KWin|KWin]]|The standard KDE window manager in KDE 4.0, ships with the first version of built-in support for compositing, making it also a compositing manager. This allows KWin to provide advanced graphical effects, similar to Compiz, while also providing all the features from previous KDE releases (such as very good integration with the rest of KDE, advanced configurability, focus stealing prevention, a well-tested window manager, robust handling of misbehaving applications/toolkits, etc.).|https://techbase.kde.org/Projects/KWin|{{Pkg|kwin}}}}<br />
<br />
* {{App|lwm|Window manager for X that tries to keep out of your face. There are no icons, no button bars, no icon docks, no root menus, no nothing: if you want all that, then other programs can provide it. There is no configurability either: if you want that, you want a different window manager; one that helps your operating system in its evil conquest of your disc space and its annexation of your physical memory.|http://www.jfc.org.uk/software/lwm.html|{{Pkg|lwm}}}}<br />
<br />
* {{App|Marco|The MATE window manager, fork of Metacity.|https://github.com/mate-desktop/marco|{{Pkg|marco}}}}<br />
<br />
* {{App|[[Wikipedia:Metacity|Metacity]]|This window manager strives to be quiet, small, stable, get on with its job, and stay out of your attention.|http://blogs.gnome.org/metacity/|{{Pkg|metacity}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter_(software)#Muffin|Muffin]]|Window and compositing manager for Cinnamon, fork of Mutter, based on Clutter, uses OpenGL.|https://github.com/linuxmint/muffin/|{{Pkg|muffin}}}}<br />
<br />
* {{App|[[Wikipedia:Mutter (window manager)|Mutter]]|Window and compositing manager for GNOME, based on Clutter, uses OpenGL.|http://git.gnome.org/browse/mutter/|{{Pkg|mutter}}}}<br />
<br />
* {{App|[[Wikipedia:Motif_Window_Manager|MWM]]|The Motif Window Manager (MWM) is an X window manager based on the Motif toolkit.|http://sourceforge.net/projects/motif/|{{Pkg|openmotif}}, {{Pkg|lesstif}}}}<br />
<br />
* {{App|[[Openbox]]|Highly configurable, next generation window manager with extensive standards support. The *box visual style is well known for its minimalistic appearance. Openbox uses the *box visual style, while providing a greater number of options for theme developers than previous *box implementations. The theme documentation describes the full range of options found in Openbox themes.|http://openbox.org/wiki/Main_Page|{{Pkg|openbox}}}}<br />
<br />
* {{App|[[pawm]]|Window manager for the X Window system. So it is not a 'desktop' and does not offer you a huge pile of useless options, just the facilities needed to run your X applications and at the same time having a friendly and easy to use interface.|http://www.pleyades.net/pawm/|{{Pkg|pawm}}}}<br />
<br />
* {{App|[[PekWM]]|Window manager that once upon a time was based on the aewm++ window manager, but it has evolved enough that it no longer resembles aewm++ at all. It has a much expanded feature-set, including window grouping (similar to Ion, PWM, or Fluxbox), auto-properties, Xinerama, keygrabber that supports keychains, and much more.|http://www.pekwm.org/projects/pekwm|{{Pkg|pekwm}}}}<br />
<br />
* {{App|[[Sawfish]]|Extensible window manager using a Lisp-based scripting language. Its policy is very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. All high-level WM functions are implemented in Lisp for future extensibility or redefinition.|http://sawfish.wikia.com/wiki/Main_Page|{{AUR|sawfish}}}}<br />
<br />
* {{App|TinyWM|Tiny window manager created as an exercise in minimalism. It may be helpful in learning some of the very basics of creating a window manager. It is comprised of approximately 50 lines of C. There is also a Python version using python-xlib.|http://incise.org/tinywm.html|{{AUR|tinywm}} {{AUR|tinywm-git}}}}<br />
<br />
* {{App|[[twm]]|Window manager for the X Window System. It provides titlebars, shaped windows, several forms of icon management, user-defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer button bindings.|http://cgit.freedesktop.org/xorg/app/twm/|{{Pkg|xorg-twm}}}}<br />
<br />
* {{App|[[Wikipedia:UDE|UWM]]|The ultimate window manager for UDE.|http://udeproject.sourceforge.net/|{{Pkg|ude}}}}<br />
<br />
* {{App|WindowLab|Small and simple window manager of novel design. It has a click-to-focus but not raise-on-focus policy, a window resizing mechanism that allows one or many edges of a window to be changed in one action, and an innovative menubar that shares the same part of the screen as the taskbar. Window titlebars are prevented from going off the edge of the screen by constraining the mouse pointer, and when appropriate the pointer is also constrained to the taskbar/menubar in order to make target menu items easier to hit.|http://nickgravgaard.com/windowlab/|{{Pkg|windowlab}}}}<br />
<br />
* {{App|[[Window Maker]]|X11 window manager originally designed to provide integration support for the GNUstep Desktop Environment. In every way possible, it reproduces the elegant look and feel of the NEXTSTEP user interface. It is fast, feature rich, easy to configure, and easy to use. It is also free software, with contributions being made by programmers from around the world.|http://windowmaker.org/|{{Pkg|windowmaker}}}}<br />
<br />
* {{App|WM2|Window manager for X. It provides an unusual style of window decoration and as little functionality as its author feels comfortable with in a window manager. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who do not particularly want their window manager to be too friendly. |http://www.all-day-breakfast.com/wm2/|{{AUR|wm2}}}}<br />
<br />
* {{App|[[Xfwm]]|The [[Xfce]] window manager manages the placement of application windows on the screen, provides beautiful window decorations, manages workspaces or virtual desktops and natively supports multiscreen mode. It provides its own compositing manager (from the X.Org Composite extension) for true transparency and shadows. The Xfce window manager also includes a keyboard shortcuts editor for user specific commands and basic windows manipulations and provides a preferences dialog for advanced tweaks.|http://www.xfce.org/projects/xfwm4/|{{pkg|xfwm4}}}}<br />
<br />
=== Tiling window managers ===<br />
<br />
* {{App|[[Bspwm]]|bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. It has support for EWMH and multiple monitors, and is configured and controlled through messages.|https://github.com/baskerville/bspwm|{{Pkg|bspwm}}}}<br />
<br />
* {{App|[[Herbstluftwm]]|Manual tiling window manager for X11 using Xlib and Glib. The layout is based on splitting frames into subframes which can be split again or can be filled with windows (similar to i3/ musca). Tags (or workspaces or virtual desktops or …) can be added/removed at runtime. Each tag contains its own layout. Exactly one tag is viewed on each monitor. The tags are monitor independent (similar to xmonad). It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup. (similar to wmii/musca).|http://herbstluftwm.org|{{pkg|herbstluftwm}}}}<br />
<br />
* {{App|howm|A lightweight, tiling X11 window manager that mimics vi by offering operators, motions and modes. Configuration is done through the included {{ic|config.h}} file.|https://github.com/HarveyHunt/howm|{{AUR|howm-x11}}}}<br />
<br />
* {{App|[[Ion3]]|Tiling tabbed X11 window manager designed with keyboard users in mind. It was one of the first of the “new wave" of tiling windowing environments (the other being LarsWM, with quite a different approach) and has since spawned an entire category of tiling window managers for X11 – none of which really manage to reproduce the feel and functionality of Ion. It uses Lua as an embedded interpreter which handles all of the configuration. |http://tuomov.iki.fi/software|{{AUR|ion3}}}}<br />
<br />
* {{App|[[Notion]]|Tiling, tabbed window manager for the X window system that utilizes 'tiles' and 'tabbed' windows.<br />
** Tiling: you divide the screen into non-overlapping 'tiles'. Every window occupies one tile, and is maximized to it<br />
** Tabbing: a tile may contain multiple windows - they will be 'tabbed'.<br />
** Static: most tiled window managers are 'dynamic', meaning they automatically resize and move around tiles as windows appear and disappear. Notion, by contrast, does not automatically change the tiling.<br />
: Notion is a fork of Ion3.|http://notion.sf.net/|{{Pkg|notion}}}}<br />
<br />
* {{App|[[Ratpoison]]|Simple Window Manager with no fat library dependencies, no fancy graphics, no window decorations, and no rodent dependence. It is largely modeled after GNU Screen which has done wonders in the virtual terminal market. Ratpoison is configured with a simple text file. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray.|http://www.nongnu.org/ratpoison/|{{Pkg|ratpoison}}}}<br />
<br />
* {{App|[[Stumpwm]]|Tiling, keyboard driven X11 Window Manager written entirely in Common Lisp. Stumpwm attempts to be customizable yet visually minimal. It does have various hooks to attach your personal customizations, and variables to tweak, and can be reconfigured and reloaded while running. There are no window decorations, no icons, no buttons, and no system tray. Its information bar can be set to show constantly or only when needed.|http://www.nongnu.org/stumpwm/|{{AUR|stumpwm-git}}}}<br />
<br />
* {{App|[[subtle]]|Manual tiling window manager with a rather uncommon approach of tiling: Per default there is no typical layout enforcement, windows are placed on a position (gravity) in a custom grid. The user can change the gravity of each window either directly per grabs or with rules defined by tags in the config. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar. |http://subforge.org/projects/subtle|{{AUR|subtle-git}}}}<br />
<br />
* {{App|[[WMFS]]|Window Manager From Scratch is a lightweight and highly configurable tiling window manager for X. It can be configured with a configuration file, supports Xft (FreeType) fonts and is compliant with the Extended Window Manager Hints (EWMH) specifications, Xinerama and Xrandr. WMFS can be driven with Vi based commands (ViWMFS).|https://github.com/xorg62/wmfs|{{AUR|wmfs}}}}<br />
<br />
* {{App|[[WMFS2]]|Incompatible successor of WMFS. It's even more minimalistic and brings some new stuff.|https://github.com/xorg62/wmfs|{{AUR|wmfs2-git}}}}<br />
<br />
=== Dynamic window managers ===<br />
<br />
* {{App|[[awesome]]|Highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things. |http://awesome.naquadah.org/|{{Pkg|awesome}}}}<br />
<br />
* {{App|[[catwm]]|Small window manager, even simpler than dwm, written in C. Configuration is done by modifying the config.h file and recompiling.|https://github.com/pyknite/catwm|{{AUR|catwm-git}}}}<br />
<br />
* {{App|[[dwm]]|Dynamic window manager for X. It manages windows in tiled, monocle and floating layouts. All of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed. does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed.|http://dwm.suckless.org/|{{Pkg|dwm}}}}<br />
<br />
* {{App|[[echinus]]|Simple and lightweight tiling and floating window manager for X11. Started as a dwm fork with easier configuration, echinus became full-featured re-parenting window manager with EWMH support. It has an EWMH-compatible panel/taskbar, called {{AUR|ourico}}.|http://plhk.ru|{{AUR|echinus}}}}<br />
<br />
* {{App|[[i3]]|Tiling window manager, completely written from scratch. i3 was created because wmii, our favorite window manager at the time, did not provide some features we wanted (multi-monitor done right, for example), had some bugs, did not progress for quite some time, and was not easy to hack at all (source code comments/documentation completely lacking). Notable differences are in the areas of multi-monitor support and the tree metaphor. For speed the Plan 9 interface of wmii is not implemented. |http://i3wm.org/|{{Pkg|i3-wm}}}}<br />
<br />
* {{App|[[FrankenWM]]|Basically monsterwm with floating done right. Features that are added on top of basic mwm include: more layouts (fibonacci, equal stack, dual stack), gaps (and borders) are adjustable on the fly, minimize/maximize single windows, hide/show all windows, resizing master and stack individually, invert stack.|https://github.com/sulami/FrankenWM|{{AUR|frankenwm-git}}}}<br />
<br />
* {{App|[[spectrwm]]|Small dynamic tiling window manager for X11, largely inspired by xmonad and dwm. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and is configured with a text file. It was written by hackers for hackers and it strives to be small, compact and fast. It has a built-in status bar fed from a user-defined script.|https://github.com/conformal/spectrwm/wiki|{{Pkg|spectrwm}}}}<br />
<br />
* {{App|[[Qtile]]|Full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It's easy to write your own layouts, widgets, and built-in commands.It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs. |https://github.com/qtile/qtile|{{AUR|qtile}}}}<br />
<br />
* {{App|[[wmii]]|Small, dynamic window manager for X11. It is scriptable, has a 9P filesystem interface and supports classic and tiling (Acme-like) window management. It aims to maintain a small and clean (read hackable and beautiful) codebase. The default configuration is in bash and [http://rc.cat-v.org rc (the Plan 9 shell)], but programs exist written in ruby, and any program that can work with text can configure it. It has a status bar and launcher built in, and also an optional system tray ({{ic|witray}}). |http://wmii.suckless.org/|{{Pkg|wmii}}}}<br />
<br />
* {{App|[[xmonad]]|Dynamically tiling X11 window manager that is written and configured in Haskell. In a normal WM, you spend half your time aligning and searching for windows. Xmonad makes work easier, by automating this. XMonad is configured in Haskell. For all configuration changes, xmonad must be recompiled, so the Haskell compiler (over 100MB) must be installed. A large library called {{Pkg|xmonad-contrib}} provides many additional features|http://xmonad.org/|{{Pkg|xmonad}}}}<br />
<br />
== See also ==<br />
<br />
* http://www.gilesorr.com/wm/<br />
* http://www.slant.co/topics/390/~what-are-the-best-window-managers-for-linux<br />
* https://l3net.wordpress.com/2013/03/17/a-memory-comparison-of-light-linux-desktops/</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Xfce_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=451781Xfce (한국어)2016-09-24T04:38:26Z<p>Sukbeom: Fix the broken link</p>
<hr />
<div>[[Category:Desktop environments (한국어)]]<br />
[[cs:Xfce]]<br />
[[de:Xfce]]<br />
[[en:Xfce]]<br />
[[es:Xfce]]<br />
[[fr:Xfce]]<br />
[[it:Xfce]]<br />
[[ja:Xfce]]<br />
[[pl:Xfce]]<br />
[[ru:Xfce]]<br />
[[tr:Xfce Masaüstü Ortamı]]<br />
[[uk:Xfce]]<br />
[[zh-cn:Xfce]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Window manager}}<br />
{{Related|Xfwm}}<br />
{{Related|Thunar}}<br />
{{Related|LXDE}}<br />
{{Related|GNOME}}<br />
{{Related articles end}}<br />
<br />
[http://www.xfce.org Xfce]는 현재 GTK+ 2를 기반으로 하는 모듈식의 저용량 [[Desktop environment|데스크탑 환경]]이다. 완벽한 사용자 경험을 제공하기 위해 Xfce는 창 관리자, 파일 관리자, 데스크탑과 패널을 포함한다.<br />
<br />
== 설치하기 ==<br />
<br />
{{Grp|xfce4}} 그룹을 [[Install|설치]]한다. 추가 플러그인과 {{Pkg|mousepad}} 편집기와 같은 유용한 유틸리티를 설치하고자 하는 경우 {{Grp|xfce4-goodies}} 그룹으로 설치할 수 있다. Xfce는 [[Xfwm]]을 기본 창 관리자로 사용한다.<br />
<br />
== Xfce 시작하기 ==<br />
<br />
[[display manager]]의 선택 메뉴에서 ''Xfce Session'' 을 선택하거나 [[Xinitrc]]에 {{ic|exec startxfce4}}를 추가한다.<br />
<br />
{{주의|{{ic|xfce4-session}}을 직접 실행하지 않는다. {{ic|startxfce4}}의 호출이 올바른 실행법이며 해당 명령어에서 단계적으로 {{ic|xfce4-session}}을 적절한 시기에 호출한다.}}<br />
<br />
== 설정하기 ==<br />
<br />
Xfce는 설정 옵션들을 [http://docs.xfce.org/xfce/xfconf/start Xfconf]에 저장한다. 해당 옵션들을 설정하는 방법에는 다음과 같은 몇 가지 방법들이 있다.<br />
<br />
* 메인 메뉴에서 설정([http://docs.xfce.org/xfce/xfce4-settings/start Settings])을 클릭하고 설정하고자 하는 카테고리를 클릭한다. 카테고리들은 대부분 {{ic|/usr/bin/xfce4-*}}와 {{ic|/usr/bin/xfdesktop-settings}}에 위치한 프로그램들이다.<br />
* {{ic|xfce4-settings-editor}}을 통해 수정가능한 설정을 확인할 수 있다. 여기서 수정된 사항들은 곧바로 적용된다. {{ic|xfconf-query}}를 사용하여 커맨드라인에서 설정을 변경할 수도 있다. 자세한 사항은 [http://docs.xfce.org/xfce/xfconf/xfconf-query the documentation]을 참고하기 바란다.<br />
* 설정은 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/}} 에 XML 파일로 저장되며 해당 파일은 직접적으로 수정될 수 있다. 하지만 변경된 사항은 ''곧바로 적용되지 않는다''.<br />
<br />
=== 메뉴 ===<br />
<br />
==== Whisker 메뉴 ====<br />
<br />
{{Pkg|xfce4-whiskermenu-plugin}} is an alternate application launcher. It shows a list of favorites, browses through all installed applications through category buttons, and supports fuzzy searching.<br />
{{Pkg|xfce4-whiskermenu-plugin}} 는 xfce의 또다른 어플리케이션 런처이다. 즐겨찾기 목록을 보여주고, 카테고리 버튼을 통해 설치된 프로그램을 탐색할 수 있으며 퍼지 검색을 지원한다.<br />
<br />
==== 메뉴 편집 ====<br />
<br />
메뉴를 편집하기 위해서 다음과 같은 그래픽 인터페이스 기반의 툴들을 사용할 수 있다:<br />
<br />
* {{App|XAME|Xfce 메뉴 편집용으로 디자인 된 Gambas 기반의 GUI 툴. 오직 Xfce에서만 사용가능하며 다른 Desktop Environment에서는 작동하지 않는다. |http://www.redsquirrel87.com/XAME.html|{{AUR|xame}}}}<br />
* {{App|MenuLibre|깔끔하고 사용하기 쉬운 인터페이스로 최신 기능을 제공하는 고급 메뉴 편집기|https://launchpad.net/menulibre|{{AUR|menulibre}}}}.<br />
* {{App|Alacarte|GNOME용 메뉴 편집기|http://www.gnome.org/|{{Pkg|alacarte}}}}<br />
<br />
다른 방법으로, {{ic|~/.config/menus/xfce-applications.menu}} 파일을 직접 만들어 메뉴를 관리할 수 있다. 다음의 예제를 참고한다.<br />
<br />
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"<br />
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"><br />
<br />
<Menu><br />
<Name>Xfce</Name><br />
<MergeFile type="parent">/etc/xdg/menus/xfce-applications.menu</MergeFile><br />
<br />
<Exclude><br />
<Filename>xfce4-run.desktop</Filename><br />
<Filename>exo-terminal-emulator.desktop</Filename><br />
<Filename>exo-file-manager.desktop</Filename><br />
<Filename>exo-mail-reader.desktop</Filename><br />
<Filename>exo-web-browser.desktop</Filename><br />
<Filename>xfce4-about.desktop</Filename><br />
<Filename>xfhelp4.desktop</Filename><br />
</Exclude><br />
<br />
<Layout><br />
<Merge type="all"/><br />
<Separator/><br />
<Menuname>Settings</Menuname><br />
<Separator/><br />
<Filename>xfce4-session-logout.desktop</Filename><br />
</Layout><br />
</Menu><br />
<br />
{{ic|<MergeFile>}} 태그는 기본 Xfce 메뉴를 포함한다.<br />
<br />
{{ic|<Exclude>}} 태그는 메뉴로부터 태그 안의 어플리케이션을 제외시킨다. 예제에서는 Xfce의 기본 바로가기만을 제외시켰지만 {{ic|firefox.desktop}} 혹은 다른 어플리케이션도 제외시킬 수 있다.<br />
<br />
{{ic|<Layout>}} 태그는 메뉴의 레이아웃을 정의한다. 어플리케이션들은 폴더 내 혹은 사용자가 원하는 곳에 배치될 수 있다. 자세한 정보는 [http://wiki.xfce.org/howto/customize-menu Xfce wiki]를 참고한다.<br />
<br />
추가적으로 {{ic|.desktop}} 파일들을 수정하여 Xfce 메뉴를 변경할 수도 있다. 메뉴 엔트리를 숨기기 위해서는 [[Desktop entries#Hide desktop entries]]를 참고한다. {{ic|1=Categories=}} desktop entry를 수정하여 어플리케이션의 카테고리도 변경이 가능하다. 관련 내용은 [[Desktop entries#File example]]을 참고한다.<br />
<br />
=== 바탕화면 ===<br />
<br />
==== 투명한 아이콘 제목 배경색 ====<br />
<br />
바탕화면에 있는 아이콘 이름 부분의 기본 하얀색 배경을 좀 더 배경과 어울리게 바꾸기 위해서, {{ic|~/.gtkrc-2.0}} 파일을 생성하거나 편집한다:<br />
<br />
{{bc|<nowiki><br />
style "xfdesktop-icon-view" {<br />
XfdesktopIconView::label-alpha = 10<br />
base[NORMAL] = "#000000"<br />
base[SELECTED] = "#71B9FF"<br />
base[ACTIVE] = "#71B9FF"<br />
fg[NORMAL] = "#fcfcfc"<br />
fg[SELECTED] = "#ffffff"<br />
fg[ACTIVE] = "#ffffff"<br />
}<br />
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"<br />
</nowiki>}}<br />
<br />
==== 오른쪽 마우스 클릭 메뉴에서 Thunar 옵션 제거 ====<br />
<br />
다음 명령어를 실행한다.<br />
<br />
$ xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0<br />
<br />
==== 프로그램 강제 종료 단축키 ====<br />
<br />
Xfce에서는 프로그램이 멈추었을 때 강제 종료하기 위한 기본 단축키가 없다. <br />
하지만 {{Pkg|xorg-xkill}} 패키지의 {{ic|xkill}} 명령어를 사용하여 열려있는 창을 강제로 닫을 수 있다. 현재 활성화 상태의 창이라면(현재 창이 열려 있고 포커스를 가지고 있는 경우), {{Pkg|xdotool}}를 사용하여 활성화 상태의 창을 강제종료할 수 있다.<br />
<br />
$ xdotool getwindowfocus windowkill<br />
<br />
또 다른 방법으로, 다음 명령어을 사용할 수 있다.<br />
<br />
$ xkill -id "$(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"<br />
<br />
단축키를 추가하기 위해서는 ''Settings > Keyboard'' 혹은 {{pkg|xbindkeys}} 어플리케이션을 사용한다.<br />
<br />
=== 세션 ===<br />
<br />
==== 시작 프로그램 ====<br />
<br />
사용자정의 프로그램을 Xfce 시작시에 실행되도록 하기 위해서는 ''Applications Menu > Settings > Settings Manager''의 ''Session and Startup > Application Autostart'' 탭을 확인한다.<br />
해당 탭을 통해 시작 시에 실행되는 프로그램 리스트를 확인할 수 있다. 시작프로그램을 추가하기 위해서는 ''Add'' 버튼을 클릭하고 등록하고자 하는 실행파일의 경로를 정의한다.<br />
<br />
또 다른 방법으로, [[xinitrc]] ([[display manager]]가 사용되고 있는 경우에는 [[xprofile]])에 명령어를 추가하여 시작 프로그램을 등록할 수 있다.<br />
<br />
===== 시작 프로그램 지연 설정 =====<br />
<br />
가끔, 시작프로그램의 시작을 늦추는 것이 유용할 때가 있다. 이러한 경우, ''Application Autostart'' 에서 {{ic|sleep 3 && command}}와 같이 등록한 것은 동작하지 않기 때문에 다음 명령어를 대신 사용한다.<br />
<br />
sh -c "sleep 3 && command"<br />
<br />
==== 화면 잠금 ====<br />
<br />
''xflock4''ᅟ을 통해 Xfce4 세션을 잠그기 위해서는 {{Pkg|xscreensaver}}, {{Pkg|gnome-screensaver}}, {{Pkg|slock}}, {{Pkg|xlockmore}} 중 하나는 설치되어 있어야 한다.<br />
또는, 다음 명령어를 통해 잠금 명령어를 설정할 수도 있다.<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l" --create -t string''<br />
<br />
만약 명령어를 업데이트하고 싶다면 다음과 같이 명령어를 새로 업데이트할 수 있다.<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l"<br />
<br />
화면 잠금 관련 프로그램은 [[List of applications/Security#Screen lockers]]에서 확인할 수 있다.<br />
<br />
{{Tip|{{Pkg|light-locker}} 세션 잠금은 {{Pkg|xfce4-power-manager}}와 통합된다. 만약 light-locker가 설치되어 있다면, 전원관리설정(power manager settings)에 추가된 ''Security'' 탭과 ''Security'' 탭에 ''Lock screen when system is going for sleep'' 설정이 있는 것을 확인할 수 있다.}}<br />
<br />
{{Note|1=The ''xflock4'' 스크립트는 포스팅[https://bbs.archlinux.org/viewtopic.php?id=189484]에서 언급된 것처럼 직접적으로 수정될 수 있다. 다만, 패키지 업그레이드로 수정된 사항이 덮어쓰기되는 것을 방지하기 위해서 xflock4를 {{ic|/usr/local/bin}}에 복사하고 해당 경로가 {{ic|/usr/bin}}보다 우선적으로 실행될 수 있도록 설정해야 한다. (환경변수 PATH에서 /usr/local/bin:/usr/bin 과 같은 순서로 될 수 있도록 한다.)}}<br />
<br />
==== 사용자 전환 버튼 ====<br />
<br />
{{Note|GDM 없이 사용자 전환 버튼을 사용하기 위해서는 다음의 해결 방법이 필요하다:<br />
* LXDM - [[LXDM#Simultaneous users and switching users]].<br />
* LightDM - [[LightDM#User switching under Xfce4]].}}<br />
<br />
Xfce4는 [[LightDM]]과 [[GDM]]과 같이 사용자 전환 기능을 가지고 있는 [[Display manager]]가 사용되고 있는 경우에 사용자 전환을 지원한다. 더 자세한 정보는 Display manager 관련 위키페이지를 참조하도록 한다. display manager가 설치되어 있고 올바르게 설정이 되어있다면 Xfce 패널의 사용자 전환 버튼을 통해 사용자 전환이 가능하다.<br />
<br />
==== 저장된 세션 비활성화하기 ====<br />
<br />
유저마다 저장된 세션은 다음 명령어를 실행하여 비활성화될 수 있다.<br />
$ xfconf-query -t bool -c xfce4-session -p /general/SaveOnExit -s false<br />
명령어 실행 이후, ''Applications'' -> ''Settings'' -> ''Session and Startup'' -> ''Sessions'' 안의 ''Clear saved sessions'' 버튼을 클릭한다.<br />
<br />
{{Tip|만약 위의 명령어가 설정을 영구적으로 변경하지 않는다면 다음 명령어를 대신 사용한다: {{ic|xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false}}}}<br />
<br />
또 다른 방법으로, Xfce [https://wiki.xfce.org/howto/kiosk_mode kiosk mode]가 사용될 수 있다. 세션을 비활성화하기 위해, {{ic|/etc/xdg/xfce4/kiosk/kioskrc}} 을 만들거나 수정하고 다음을 추가한다.<br />
<br />
[xfce4-session]<br />
SaveSession=NONE<br />
<br />
만일 kiosk 모드가 작동하지 않는다면 현재 사용자가 세션관련 디렉토리에 대해 read 권한만 갖고 있기 때문이다. <br />
<br />
$ rm ~/.cache/sessions/* && chmod 500 ~/.cache/sessions<br />
<br />
위의 명령어가 Xfce가 모든 관련 설정에 상관없이 세션이 저장되는 것을 방지할 것이다.<br />
<br />
==== 기본 창 관리자 ====<br />
<br />
{{Note|변경 사항을 적용하기 위해서는 저장된 세션을 지우고 처음 로그아웃시에 세션 저장 기능을 반드시 비활성화해야 한다. 창 관리자가 실행되면 세션 저장기능은 다시 활성화된다.}}<br />
<br />
기본 창관리자를 명시하는 파일은 다음 위치에서 찾을 수 있다.<br />
*{{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - 각 사용자 영역<br />
*{{ic|/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - 시스템 전역<br />
<br />
기본 창 관리자는 ''xfconf-query''를 사용하여 간단하게 설정될 수 있다.<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa '''wm_name'''<br />
<br />
만약 커맨드라인 옵션을 사용하여 창 관리자를 실행하고 싶을 경우, 다음 명령어들을 참고한다:<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -t string -s '''wm_name''' -s '''--wm-option'''<br />
더 많은 커맨드라인 옵션이 필요하다면, 간단하게 {{ic|-t string}}와 {{ic|-s '''--wm-option'''}} 인자들을 명령어에 추가한다.<br />
<br />
시스템 전역적으로 기본 창 관리자를 변경하고 싶다면 위에서 명시된 파일을 직접 수정하여 ''xfwm4''를 선호하는 창 관리자로 바꾸고 필요시에는 {{ic|1=<value type="string" value="'''--wm-option'''"/>}} 라인을 extra command line 옵션으로 추가한다.<br />
<br />
또한 {{ic|'''wm_name''' --replace}} 를 자동시작되도록 하거나 {{ic|'''wm_name''' --replace &}}가 터미널에서 시작되도록 하고 해당 세션이 저장되도록 하여 창 관리자를 변경할 수 있다. 하지만 이 방법은 실제로 기본 창관리자를 변경하지 않는다는 점에 주의하자. 만약 자동시작 기능을 사용한다면 저장된 세션 때문에 해당 창 관리자가 두 번 중복되어 실행될 수 있으므로 저장된 세션을 비활성화한다.<br />
<br />
=== 테마 ===<br />
<br />
XFCE 테마들은 [http://www.xfce-look.org xfce-look.org]에서 구할 수 있다. ''Xfwm'' 테마들은 {{ic|/usr/share/themes/xfce4}}에 저장되며 ''Settings > Window Manager''의 설정 탭을 통하여 설정할 수 있다. [[GTK+]] 테마는 ''Settings > Appearance''에서 설정할 수 있다.<br />
<br />
모든 어플리케이션에서 동일한 모양새를 얻고 싶다면, [[Uniform look for Qt and GTK applications]]을 참고한다.<br />
<br />
참고: [[Cursor themes]], [[Icons]], [[Font configuration]]<br />
<br />
=== 사운드 ===<br />
<br />
==== Xfce4 mixer ====<br />
<br />
{{Note|ᅟᅡXfce4 mixer와 Xfce4 volumed는 Streamer 1.0으로 포팅이 되지 않기 때문에 더이상 유지보수 되는 업스트림(upstream)으로 취급되지 않는다. 더 자세한 사항은 다음 링크(4.12)를 참고한다. [http://www.xfce.org/about/news/?post&#61;1425081600 news post].}}<br />
<br />
{{Pkg|xfce4-mixer}}로 제공되는 Xfce4 mixer는 Xfce 팀에서 개발된 GUI 믹서 어플리케이션과 패널 플러그인이다. 해당 패키지는 xfce4 패키지 그룹의 일부분으로 포함되어 있다. [[PulseAudio]]와 [[OSS]] 지원을 원한다면 {{Pkg|gstreamer0.10-good-plugins}} 설치가 필요하다.<br />
<br />
Xfce4 mixer가 제대로 동작하도록 하기 위해 기본으로 설정되어 있는 사운드 카드를 변경해야할지도 모른다. 기본 사운드 카드 변경과 관련하여 자세한 사항을 알고 싶다면 [[Advanced Linux Sound Architecture#Set the default sound card]]를 참고한다. 또 다른 방법으로 [[PulseAudio]]와 {{Pkg|pavucontrol}} 또는 [[PulseAudio]]와 [[OSS]]를 함께 사용하는 방법이 있다. OSS 사용 부분이 궁금하다면 [[OSS#Applications that use GStreamer]]을 참고한다.<br />
<br />
변경된 기본 사운드카드 사항을 적용하기 위해서는 로그아웃을 해주어야 한다.<br />
<br />
===== Xfce4 mixer의 기본 사운드카드 변경 =====<br />
<br />
[[PulseAudio]] 또는 {{AUR|xfce4-volumed}}와 같이 몇몇 경우에 Xfce4 Mixer의 볼륨 조절이 제대로 동작하게 하기 위해서 Xfce4 Mixer의 기본 사운드카드를 변경해야할 필요가 있다. [http://grumbel.blogspot.co.uk/2011/10/fixing-volume-control-in-xfce4.html]<br />
<br />
기본 사운드카드를 변경하기 위해서는 ''xfce4-settings-editor''를 연 뒤에 '''xfce4-mixer''' 부분을 들어간다. 그 뒤에 '''sound-cards'''항목들을 확인한다. 현재 사용하고 있는 사운드카드가 제대로 표시되어있는지 확인하고 '''sound-card'''와 '''active-card''' 항목의 값을 대체한다. PulseAudio를 사용하고 있는 경우에는 다음과 같은 내용과 비슷한 항목이 나타날 것이다: '''PlaybackInternalAudioAnalogStereoPulseAudioMixer'''. 변경이 완료된 후에는 변경사항을 적용하기 위해 로그아웃을 해준다.<br />
<br />
==== 키보드의 볼륨 조절 버튼 ====<br />
<br />
{{Pkg|xfce4-mixer}} 패키지의 버전이 {{ic|4.10.0-3}} 이거나 더 높은 경우 mixer 패널 애플릿이 키보드를 이용한 볼륨조절 기능을 제공한다. 하지만 볼륨조절 관련 알림창은 보이지 않는다. 다른 방법으로는, {{AUR|xfce4-volumed}}를 사용할 수 있다. 해당 프로그램은 Xfce4 mixer로 볼륨키를 매핑시키고 Xfce4-notifyd를 통해 관련 알림창을 화면에 표시해준다.<br />
만약 PulseAudio를 사용하고 있고 Xfce4 Mixer 프로그램 사용을 원하지 않는 경우라면, {{AUR|xfce4-pulseaudio-plugin}}을 설치한다. 이 플러그인 또한 패널 애플릿으로서 키보드 버튼을 통한 볼륨조절과 관련 알림창을 띄워주는 기능을 가지고 있다.<br />
<br />
{{Warning|{{AUR|xfce4-pulseaudio-plugin}} 의 경우 높은 CPU 사용량을 가질 수 있다. (~5% on i7 Intel CPU).}}<br />
<br />
데스크탑 환경(Xfce, 그놈, KDE, etc.)이 아닌 경우는 다음을 참고한다. [[List of applications#Volume managers]].<br />
<br />
===== 단축키 =====<br />
<br />
볼륨조절 키 관련 기능을 제공해주는 애플릿(applet)이나 데몬(daemon)을 사용하지 않는 경우, Xfce의 키보드 설정을 통해 사용자가 직접 볼륨조절 키를 매핑할 수 있다. 사용하고 있는 사운드 시스템에 따라 아래 항목을 참고한다.<br />
*ALSA: [[Advanced Linux Sound Architecture#Keyboard volume control]] <br />
*PulseAudio: [[PulseAudio#Keyboard volume control]] <br />
*OSS: [[OSS#Using multimedia keys with OSS]] <br />
<br />
=== 키보드 단축키 ===<br />
<br />
키보드 단축키는 두 군데서 설정이 가능하다.<br />
* ''Settings > Window Manager > Keyboard'' <br />
* ''Settings > Keyboard > Shortcuts''.<br />
<br />
=== Polkit Authentication Agent ===<br />
<br />
{{Pkg|polkit-gnome}} 패키지는 xfce4-session을 따라서 자동으로 설치되며 Xfce실행 시 자동으로 실행된다. 사용자의 때문에 사용자의 설정이 특별하게 요구되지 않는다. 자세한 사항은 [[Polkit#Authentication agents]]ᅟ을 참고한다.<br />
<br />
Xfce를 위한 서드 파티 polkit 인증 관리자 또한 사용가능하다: {{AUR|xfce-polkit-git}} 참고.<br />
<br />
=== 화면에 아무것도 나오지 않을 경우 ===<br />
<br />
{{Note|1=화면에 아무 것도 나오지 않거나 몇몇 설정에서 검은 화면으로 되었다가 화면이 복구되지 않고 아무 것도 나타나지 않는 문제들이 있다. 관련 문제는 다음 링크를 참고한다. [https://bbs.archlinux.org/viewtopic.php?id=194313&p=2][https://bugzilla.xfce.org/show_bug.cgi?id=11107]}}<br />
<br />
Xfce에서 흔히 사용되는 몇몇 프로그램들은 모니터 초기화와 [[DPMS]] (모니터 전력관리)을 제어한다. 해당 문제들에 대한 온라인 상에서의 토론을 위 링크에서 참고할 수 있다.<br />
<br />
;Xfce Power Manager<br />
Xfce Power Manager는 모니터 초기화와 DPMS 설정을 관리한다. 이러한 설정들은 ''xfce4-power-manager-settings''의 ''Display''탭을 통해서 확인할 수 있다. ''Handle display power management'' 옵션을 해제하면 DPMS 기능이 비활성화 된다는 점에 유의한다(전원관리자가 DPMS 기능을 관리하지 않는다는 뜻이 아니다). 또 하나 유의해야 하는 점은 해당 옵션을 비활성화해도 스크린 초기화기능을 비활성화 하지 않는다는 점이다. 스크린 초기화 기능과 DPMS 기능 모두를 비활성화하기 위해서는 패널의 전원관리자 트레이 아이콘을 대고 오른쪽 마우스를 클릭하거나 패널 애플릿에서 왼쪽 마우스를 클릭하여 ''Presentation mode''라고 표시되어 있는 옵션을 체크한다.<br />
<br />
;XScreenSaver<br />
[[XScreenSaver#DPMS and blanking settings]]을 참고한다. 유의해야할 점은 만약 XScreenSaver와 Xfce Power Manager가 동시에 실행되는 경우 둘 중에 어떤 어플리케이션이 화면 초기화와 DPMS를 제어하는지 불분명해진다는 점이다. 이러한 문제 때문에 화면이 꺼져서는 안되는 상황이라면(예. 영화감상) 두 개의 어플리케이션 모두에서 blanking과 DPMS기능을 해제해주어야 한다.<br />
<br />
;xset<br />
만약 위에서 언급된 어플리케이션이 하나도 실행되고 있지 않다면 스크린 초기화와 DPMS 설정은 xset 명령어를 통해서 제어될 수 있다. 이와 관련된 부분은 [[DPMS#Modifying DPMS and screensaver settings using xset]]을 참고한다.<br />
<br />
== 사용관련 도움말 ==<br />
<br />
=== thunar와 xfdesktop에서 파티션 숨기기 ===<br />
<br />
[[Udisks#Hide selected partitions]] 참고.<br />
<br />
=== 스크린샷(화면 갈무리) ===<br />
<br />
Xfce는 자체 스크린샷 도구를 제공한다({{pkg|xfce4-screenshooter}}). {{grp|xfce4-goodies}} 패키지 그룹으로 설치된다.<br />
<br />
''Applications > Settings > Keyboard''에서 ''Application Shortcuts''을 클릭한다. {{ic|xfce4-screenshooter -f}} (현재창을 갈무리하려면 {{ic|-w}}) 명령어를 추가하여 {{ic|Print}} 키로 전체화면 크기의 화면을 갈무리 하기 위해 등록한다. 추가적인 정보를 확인하기 위해서는 screenshooter의 man page를 참고한다.<br />
<br />
또 다른 방법으로, [[Taking a screenshot#scrot|scrot]]과 같이 화면 갈무리를 위한 독립된 프로그램이 있다.<br />
<br />
=== 터미널 상에서 F1 and F11 단축키 비활성화 ===<br />
<br />
Xfce 터미널은 기본으로 F1 and F11 키를 각각 도움말과 전체 화면 키로 매핑되었다. 이 때문에 htop과 같은 프로그램 사용에 있어 불편한 점이 있기 때문에, 해당 단축키들을 비활성화하기 위해서는 xfce 터미널을 위한 설정 파일을 만든 뒤에 로그아웃 한 뒤 다시 로그인 한다. F10 키의 경우에는 터미널의 설정창에서 비활성화될 수 있다.<br />
<br />
{{hc|~/.config/xfce4/terminal/accels.scm|<br />
(gtk_accel_path "<Actions>/terminal-window/fullscreen" "")<br />
(gtk_accel_path "<Actions>/terminal-window/contents" "")<br />
}}<br />
<br />
=== 터미널 색 테마, 팔레트 ===<br />
<br />
터미널 색 테마와 팔레트는 터미널의 설정의 Appearance 탭을 통해서 변경할 수 있다. 제공되는 칼라들은 [[Emacs]]와 [[Vi]]와 같은 콘솔 어플리케이션의 대부분에서 사용가능한 것들이다. 각각의 설정들은 개별적으로 {{ic|~/.config/xfce4/terminal/terminalrc}} 파일에 저장된다. 또한 다양한 선택 가능한 다른 색 테마들도 있다. 아치 리눅스의 다음 쓰레드를 확인하면 사용 가능한 수백가지의 테마들을 확인할 수 있다. [https://bbs.archlinux.org/viewtopic.php?id=51818 Terminal Colour Scheme Screenshots]<br />
<br />
==== 기본 색 테마 변경하기 ====<br />
<br />
XFCE의 {{ic|extra/terminal}} 패키지는 어두운 색 팔레트가 기본으로 되어 있다. 좀 더 밝은 색 테마를 위해서 이를 변경하기 위해서ᅟ는 다음 내용을 사용자의 terminalrc 파일 뒤에 삽입한다.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
ColorPalette5=#38d0fcaaf3a9<br />
ColorPalette4=#e013a0a1612f<br />
ColorPalette2=#d456a81b7b42<br />
ColorPalette6=#ffff7062ffff<br />
ColorPalette3=#7ffff7bd7fff<br />
ColorPalette13=#82108210ffff<br />
<br />
==== 터미널 tango 색 테마 ====<br />
<br />
tango 색 테마로 변경하기 위해서는 다음 파일을 연다.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
다음 내용을 추가한다.<br />
<br />
ColorForeground=White<br />
ColorBackground=#323232323232<br />
ColorPalette1=#2e2e34343636<br />
ColorPalette2=#cccc00000000<br />
ColorPalette3=#4e4e9a9a0606<br />
ColorPalette4=#c4c4a0a00000<br />
ColorPalette5=#34346565a4a4<br />
ColorPalette6=#757550507b7b<br />
ColorPalette7=#060698989a9a<br />
ColorPalette8=#d3d3d7d7cfcf<br />
ColorPalette9=#555557575353<br />
ColorPalette10=#efef29292929<br />
ColorPalette11=#8a8ae2e23434<br />
ColorPalette12=#fcfce9e94f4f<br />
ColorPalette13=#72729f9fcfcf<br />
ColorPalette14=#adad7f7fa8a8<br />
ColorPalette15=#3434e2e2e2e2<br />
ColorPalette16=#eeeeeeeeecec<br />
<br />
=== 색 관리 ===<br />
<br />
Xfce는 색 관리를 위한 지원이 없다. 다른 방법을 위해 다음 링크를 참조한다. [https://bugzilla.xfce.org/show_bug.cgi?id=8559] See [[ICC profiles]]<br />
<br />
=== 다중 모니터 사용 ===<br />
<br />
{{Pkg|xfce4-settings}} 버전 4.11.4 이후로, Xfce는 다중 모니터에 대한 지원을 제공한다. ''Applications'' -> ''Settings'' -> ''Display'' 을 통해 설정할 수 있다. 더 자세한 내용은 다음 링크를 참고한다. [http://docs.xfce.org/xfce/xfce4-settings/display display]<br />
<br />
=== SSH agents ===<br />
<br />
기본적으로 Xfce 4.10은 세션 초기화 동안에 gpg-agent와 ssh-agent를 로드하려고 한다. 이를 비활성화 하려면 다음과 같이 xfconf 키를 생성한다:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false<br />
<br />
gpg-agent가 설치된 환경에서 ssh-agent 사용을 강제하려면 다음 명령어를 실행한다:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s ssh-agent<br />
<br />
[[GNOME Keyring]]를 사용하기 위해서, Xfce 설정의 ''Session Manager'' > ''Advanced'' 탭에서 ''Launch GNOME services on startup'' 체크박스를 해제한다. 해당 옵션은 gpg-agent와 ssh-agent 모두를 비활성화한다.<br />
<br />
출처: http://docs.xfce.org/xfce/xfce4-session/advanced<br />
<br />
=== 포커스 변경 없이 다른 창 스크롤하기 ===<br />
<br />
''Main Menu > Settings > Window Manager Tweaks > Accessibility'' 탭에서 ''Raise windows when any mouse button is pressed'' 체크를 해제한다.<br />
<br />
=== 마우스 버튼 modifier키 ===<br />
<br />
기본으로 Xfce는 modifier 키가 {{ic|Alt}}로 설정되어 있다. modifier키는 ''xfconf-query''에서 변경될 수 있다. 예를 들어, 다음 명령어는 modifier키를 {{ic|Super}}로 바꾼다.<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"<br />
<br />
임밀히 따지면 복수의 키를 modifier 키로 사용하는 것은 제공되지 않는다. 하지만 {{ic|><}}로 구분된 키 조합을 사용하여 modifier 키를 설정할 수 있다. 예를 들면, {{ic|Ctrl+Alt}}키를 마우스 버튼 modifier 키로 사용하기 위해 다음 명령어를 사용할 수 있다.<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"<br />
<br />
== 기타 문제 해결 ==<br />
<br />
=== Action 버튼에 아이콘이 없는 경우 ===<br />
<br />
아이콘 테마에 몇몇 Action(Suspend, Hibernate)과 관련된 아이콘이 없는 경우 혹은 예상되는 이름을 갖고 있지 않는 경우에 발견되는 문제다. 이러ᅟ한 문제를 해결하기 위해서는 필요한 아이콘들이 추가된 아이콘 테마를 설치해야 한다. [[Icons#Xfce icons]] 참고. <br />
<br />
아이콘 테마 설치 후에는, Applications -> Settings -> Appearance -> Icons 탭에서 아이콘 테마를 변경한다.<br />
<br />
다른 대안으로서, 필요한 아이콘을 이미 설치된 아이콘 테마로 변경할 수 있다. 이를 위해서는 먼저 사용되고 있는 아이콘 테마의 이름을 알아야 한다. 이는 다음 명령어를 통해 알 수 있다:<br />
<br />
$ xfconf-query -c xsettings -p /Net/IconThemeName<br />
<br />
이후, 다음과 같이 변수 이름을 설정한다.<br />
<br />
$ icontheme=/usr/share/icons/''theme-name''<br />
<br />
''theme-name''에는 현재 아이콘 테마의 이름을 적는다.<br />
<br />
이 후, 누락된 아이콘에 대한 심볼릭 링크를 만든다. 밑의 예제에서는 {{AUR|elementary-xfce-icons}} 테마의 아이콘을 이용해서 ${icontheme}에서 누락된 아이콘들의 심볼릭 링크를 만들어주는 과정이다.<br />
<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend.svg ${icontheme}/16x16/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend-hibernate.svg ${icontheme}/16x16/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend.svg ${icontheme}/22x22/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend-hibernate.svg ${icontheme}/22x22/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend.svg ${icontheme}/24x24/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend-hibernate.svg ${icontheme}/24x24/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend.svg ${icontheme}/48x48/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend-hibernate.svg ${icontheme}/48x48/actions/system-hibernate.svg<br />
<br />
로그아웃 뒤에 다시 재로그인하면 아이콘이 제대로 표시되는 것을 확인할 수 있다.<br />
<br />
=== 데스크탑 아이콘 재정렬 문제 ===<br />
<br />
패널 설정 다이얼로그를 여는 것과 같이 어떤 특정 이벤트가 발생했을 때 데스크탑의 아이콘들은 재정렬된다. 이러한 것은 아이콘들의 위치가 {{ic|~/.config/xfce4/desktop/}} 디렉토리 안에 정의되어 있기 때문이다. 매번 변경될 때마다 데스크탑에서의 아이콘들에 관한 새로ᅟ운 파일이 생성되어 해당 파일들끼리 충돌하게 된다. <br />
<br />
이 문제를 해결하기 위해서는 해당 디렉토리로 이동하여 정상적으로 위치가 정의되어 있는 파일을 제외한 모든 파일을 삭제한다. 행렬은 모두 숫자 0부터 시작하여 가장 위쪽 행은 {{ic|row 0}}로, 가장 왼쪽 열은 {{ic|col 0}}로서 정의된다. 때문에 다음 내용은<br />
<br />
[Firefox]<br />
row=3<br />
col=0<br />
<br />
Firefox 아이콘이 4번째 행에서 가장 왼쪽 열에 위치하게 된다는 것을 의미한다.<br />
<br />
=== 다중 모니터에서 GTK 테마가 정상적으로 작동하지 않는 문제 ===<br />
<br />
몇몇 설정 프로그램들은 displays.xml 파일을 망가뜨릴 수 있고 이 때문에 ''Applications Menu > Settings > Appearance'' 설정 탭의 동작을 제대로 작동되지 않게 할 수 있다. 문제를 해결하기 위해서는 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml}} 파일을 삭제하고 사용자의 화면을 재설정한다.and reconfigure your screens.<br />
<br />
=== 오른쪽 마우스 클릭 메뉴에서 아이콘이 나타나지 않을 때 ===<br />
<br />
{{Note|현재 GConf가 deprecation상태이지만 아래 방법은 여전히 잘 작동함}}<br />
<br />
사용자들은 [[Qt]]로 제작된 몇몇 어플리케이션에서 오른쪽 마우스 클릭시에 아이콘들이 나타나지 않는 것을 볼 수 있다. 이는 오직 Xfce에서만 나타나는 문제로서, 다음 명령어를 실행한다:<br />
<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true<br />
<br />
=== xkb-plugin에서 키보드 설정이 저장되지 않는 문제 ===<br />
<br />
{{Pkg|xfce4-xkb-plugin}} ''0.5.4.1-1'' 에서 키보드, 레이아웃 변경과 키 조합 설정과 관련해 저장되지 않는 버그가 있다.[https://bugzilla.xfce.org/show_bug.cgi?id=10226] 해결 방법으는 {{ic|xfce4-keyboard-settings}}에서 ''Use system defaults''를 클릭한 뒤에 ''xfce4-xkb-plugin''를 재설정한다.<br />
<br />
=== NVIDIA와 xfce4-sensors-plugin ===<br />
<br />
nvidia gpu 센서를 사용하기 위해서는 {{Pkg|libxnvctrl}} 패키지를 설치한 뒤에 {{Pkg|xfce4-sensors-plugin}}를 [[ABS]] 옵션과 함께 재빌드 해야한다. 또 다른 방법으로는 {{Pkg|xfce4-sensors-plugin}} 대신 {{AUR|xfce4-sensors-plugin-nvidia}}을 사용하는 방법도 있다.<br />
<br />
=== 패널이 항상 왼쪽으로 정렬되어 있는 문제 ===<br />
<br />
패널에 "expand" 속성을 활성화하여 separator를 추가한다. [https://forums.linuxmint.com/viewtopic.php?f=110&t=155602}] 참고.<br />
<br />
=== Preferred Applications 설정 문제 ===<br />
<br />
대부분의 어플리케이션은 주어진 파일이나 URL을 열기 위해서 [[xdg-open]]에 의존성이 있다.<br />
<br />
xdg-open와 xdg-settings 이 Xfce 데스크탑 환경과 제대로 통합되어 작동되게 하기 위해서는 {{Pkg|xorg-xprop}} 패키지를 설치해야 한다.<br />
<br />
만약 해당 패키지를 설치하지 않는 경우에는 preferred applications 설정이 제대로 반영되지 않는다.<br />
<br />
ᅟᅵᆨxdg-open이 제대로 동작하고 있는지 확이하려면 ''xdg-settings''를 이용해서 다음과 같이 명령어로 알아볼 수 있다.<br />
<br />
# xdg-settings get default-web-browser<br />
<br />
만약 다음과 같은 메세지가 출력된다면,<br />
<br />
xdg-settings: unknown desktop environment<br />
<br />
xdg-open이 Xfce 데스크탑 환경을 감지하지 못했다는 뜻이다({{Pkg|xorg-xprop}}패키지의 미설치가 원인).<br />
<br />
=== 기본 설정 복구 ===<br />
<br />
기본 설정으로 복구하기 위해서는 {{ic|~/.config/xfce4-session/}}과 {{ic|~/.config/xfce4/}}의 이름을 변경한다.<br />
<br />
$ mv ~/.config/xfce4-session/ ~/.config/xfce4-session-bak<br />
$ mv ~/.config/xfce4/ ~/.config/xfce4-bak<br />
<br />
그 후에 다시 로그인하면 기본설정으로 복구된 것을 확인할 수 있다. 만약에 로그인 도중 {{ic|Unable to load a failsafe session}} 메세지가 출력되었다면 [[#세션 실패]]를 참고한다.<br />
<br />
=== 세션 실패 ===<br />
<br />
포함되는 증상:<br />
<br />
* 마우스 커서가 X 이거나 아예 나타나지 않는 경우<br />
* 창 테두리가 나타나지 않고 창이 닫히지 않는 경우<br />
* ({{ic|xfwm4-settings}})가 시작되지 않고 {{ic|These settings cannot work with your current window manager (unknown)}}라는 메세지가 나타나는 경우<br />
* [[display manager]] {{ic|No window manager registered on screen 0}}와 같은 에러가 [[display manager]]에 나타나는 경우<br />
* failsafe 세션을 로드하지 못하는 경우<br />
<br />
Unable to load a failsafe session.<br />
Unable to determine failsafe session name. Possible causes: xfconfd isn't running (D-Bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (must include "/etc"), or xfce4-session is installed incorrectly. <br />
<br />
xfce를 재시작하거나 시스템 재부팅이 문제를 해결할 수 있지만 이전의 손상된 세션이 문제의 원인일 수 있기 때문에 해당 세션을 지운다. <br />
<br />
$ rm -r ~/.cache/sessions/<br />
<br />
또한 {{ic|$HOME}} 내의 관련 폴더의 권한을 확인하여 {{ic|xfce4}}를 실행하는 사용자의 권한으로 제대로 설정이 되어있는지 확인한다.. See [[Chown]].<br />
<br />
=== 창 제목의 폰트로 xfce4-title가 깨지는 문제 ===<br />
<br />
{{Pkg|ttf-droid}}, {{Pkg|ttf-dejavu}}를 설치한다. 관련 문제는 {{Bug|44382}}를 참고한다.<br />
<br />
=== 노트북 덮개 설정 문제 ===<br />
<br />
Xfce4 전원 관리자에서 설정한 노트북 덮개 관련 설정이 제대로 작동하지 않는 문제가 있다. 때문에 사용자가 전원 관리자 내에서 어떤 설정을 했던간에 덮개를 덮으면 항상 suspend가 되어버리는 경우다. 이러한 문제는 전원관리자가 덮개가 덮히는 이벤트를 기본으로 관리하지 않기 때문이다. 대신에 logind가 전원관리자 대신 덮개가 닫히는 이벤트를 처리한다. 이러한 문제를 해결하기 위해서는 다음 명령어를 실행한다.<br />
<br />
$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false<br />
전원관리자에서 노트북 덮개 관련 설정이 변경될 때마다 해당 설정은 초기화된다는 점에 유의한다.<br />
<br />
=== Adwaita 테마에서의 렌더링 문제 ===<br />
<br />
gnome-themes-standard가 3.18.0-1 버전에서 3.20.0-1로 업그레이드 된 이후로 Xfce 내에서 Adwaita 테마 사용시, 몇가지 이슈들이 나타난다. 해당 이슈에는 알림창 영역의 주변 프레임영역과 이클립스에서의 어두운 배경의 tooltip과 같은 문제들이 있다. <br />
<br />
무식한 해결 방법으로는 {{Pkg|gnome-themes-standard}}패키지를 구버전 3.18.0-1으로 다운그레이드 하는 것이다. 해당 패키지는 다음 링크에서 다운로드 가능하다: <br />
$ wget <nowiki>https://archive.archlinux.org/repos/2016/04/08/extra/os/$(uname -m)/gnome-themes-standard-3.18.0-1-$(uname -m).pkg.tar.xz</nowiki><br />
다운로드 후에는 pacman의 -U옵션을 통해서 설치될 수 있다.<br />
<br />
== 참고 ==<br />
<br />
* [http://www.xfce.org/about/ Xfce - About]<br />
* http://docs.xfce.org/ - The complete documentation.<br />
* [http://www.xfce-look.org/ Xfce-Look] - Themes, wallpapers, and more.<br />
* [http://xfce.wikia.com/wiki/Frequently_Asked_Questions Xfce Wikia] - How to edit the auto generated menu with the menu editor<br />
* [http://wiki.xfce.org Xfce Wiki]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=F2FS_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=443689F2FS (한국어)2016-07-30T06:33:09Z<p>Sukbeom: </p>
<hr />
<div>[[Category:File systems]]<br />
[[en:F2FS]]<br />
[[it:F2FS]]<br />
[[ja:F2FS]]<br />
[[ru:F2FS]]<br />
{{Related articles start}}<br />
{{Related|File systems}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:F2FS|F2FS]] (Flash-Friendly File System) 는 낸드 플래시 메모리용으로 설계된 파일 시스템이다. 커널 3.8 이후로 지원되고 있다.<br />
<br />
== F2FS 포맷 파티션 생성 ==<br />
<br />
F2FS 파티션을 만들기 위해서는 [[official repositories|공식 저장소]]에서 {{Pkg|f2fs-tools}}를 [[install|설치]]한다.<br />
<br />
파티션 생성:<br />
# mkfs.f2fs -l mylabel ''/dev/sdxY''<br />
{{ic|''/dev/sdxY''}} 부분에는 F2FS으로 포맷할 볼륨명을 넣는다.<br />
<br />
== F2FS 파티션 마운트하기 ==<br />
<br />
마운트 전에 사용자가 수동으로 F2FS 커널 모듈을 로드해야 한다. root 권한으로 다음 명령어를 실행한다:<br />
<br />
# modprobe f2fs<br />
<br />
커널 모듈 로드 후, 다음과 같이 마운트를 할 수 있다.<br />
<br />
# mount -t f2fs /dev/sdxY /mnt<br />
<br />
== F2FS 파티션에 아치리눈스 설치하기 ==<br />
<br />
최신 [https://www.archlinux.org/download/ 설치 미디어 파일]로써 F2FS 파티션에 루트가 설정된 아치리눅스를 설치할 수 있다.<br />
<br />
# [[#F2FS 포맷 파티션 생성]]에서 기술된 것을 참고하여 F2FS로 루트 파티션을 제작한다.<br />
# ext2 포맷 또는 다른 부트로더가 지원하는 파일시스템으로 {{ic|/boot}} 파티션을 생성한다.<br />
# [[Change root|chrooted]] 전까지 [[Beginners' guide#Mount the partitions]]에서의 설치 과정을 따른다. <br />
# {{Pkg|f2fs-tools}}를 설치한다.<br />
# chroot 상태에서 [[initramfs]]를 다시 생성한다.<br />
<br />
부팅 과정에서 CRC32 모듈 로드에 실패하는 경우는 약간의 작업이 필요하다. 4.6 버전의 커널에 포함된 드라이버는 CRC32를 위해 Crypto API를 사용하므로 {{ic|crc32_generic}}와 {{ic|crc32-pclmul}}를 {{ic|/etc/mkinitcpio.conf}}의 {{ic|MODULES}}에 추가한 뒤 initramfs를 재생성한다.</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=F2FS&diff=443688F2FS2016-07-30T06:32:51Z<p>Sukbeom: </p>
<hr />
<div>[[Category:File systems]]<br />
[[it:F2FS]]<br />
[[ja:F2FS]]<br />
[[ko:F2FS]]<br />
[[ru:F2FS]]<br />
{{Related articles start}}<br />
{{Related|File systems}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:F2FS|F2FS]] (Flash-Friendly File System) is a file system intended for NAND-based flash memory. It is supported from kernel 3.8 onwards.<br />
<br />
== Creating a F2FS partition ==<br />
<br />
In order to create a F2FS partition, [[install]] {{Pkg|f2fs-tools}} from the [[official repositories]].<br />
<br />
Create the partition:<br />
# mkfs.f2fs -l mylabel ''/dev/sdxY''<br />
where {{ic|''/dev/sdxY''}} is the target volume to format in F2FS.<br />
<br />
== Mounting a F2FS partition ==<br />
<br />
Users will likely need to manually load the F2FS kernel module before mounting. Issue as root:<br />
<br />
# modprobe f2fs<br />
<br />
The partition can then be mounted:<br />
<br />
# mount -t f2fs /dev/sdxY /mnt<br />
<br />
== Install Arch Linux on F2FS partition ==<br />
<br />
With the latest [https://www.archlinux.org/download/ installation media] it is possible to install Arch linux with root located on a F2FS filesystem:<br />
<br />
# Create the root partition as F2FS as described in section [[#Creating a F2FS partition]].<br />
# Create a separate {{ic|/boot}} partition as ext2, or any other filesystem supported by the bootloader.<br />
# Continue with the installation procedure as per [[Beginners' guide#Mount the partitions]] until [[Change root|chrooted]].<br />
# Install {{Pkg|f2fs-tools}} on the newly installed system as well.<br />
# Regenerate the [[initramfs]] while chrooted.<br />
<br />
The driver included in the kernel 4.6 or higher uses Crypto API for computing CRC32. Add {{ic|crc32_generic}} and {{ic|crc32-pclmul}} to the {{ic|MODULES}} array in {{ic|/etc/mkinitcpio.conf}} and regenerate the initramfs if the driver fails to load a CRC32 module at boot.</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=F2FS_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=443687F2FS (한국어)2016-07-30T06:32:19Z<p>Sukbeom: </p>
<hr />
<div>[[Category:File systems]]<br />
[[it:F2FS]]<br />
[[ja:F2FS]]<br />
[[ru:F2FS]]<br />
{{Related articles start}}<br />
{{Related|File systems}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:F2FS|F2FS]] (Flash-Friendly File System) 는 낸드 플래시 메모리용으로 설계된 파일 시스템이다. 커널 3.8 이후로 지원되고 있다.<br />
<br />
== F2FS 포맷 파티션 생성 ==<br />
<br />
F2FS 파티션을 만들기 위해서는 [[official repositories|공식 저장소]]에서 {{Pkg|f2fs-tools}}를 [[install|설치]]한다.<br />
<br />
파티션 생성:<br />
# mkfs.f2fs -l mylabel ''/dev/sdxY''<br />
{{ic|''/dev/sdxY''}} 부분에는 F2FS으로 포맷할 볼륨명을 넣는다.<br />
<br />
== F2FS 파티션 마운트하기 ==<br />
<br />
마운트 전에 사용자가 수동으로 F2FS 커널 모듈을 로드해야 한다. root 권한으로 다음 명령어를 실행한다:<br />
<br />
# modprobe f2fs<br />
<br />
커널 모듈 로드 후, 다음과 같이 마운트를 할 수 있다.<br />
<br />
# mount -t f2fs /dev/sdxY /mnt<br />
<br />
== F2FS 파티션에 아치리눈스 설치하기 ==<br />
<br />
최신 [https://www.archlinux.org/download/ 설치 미디어 파일]로써 F2FS 파티션에 루트가 설정된 아치리눅스를 설치할 수 있다.<br />
<br />
# [[#F2FS 포맷 파티션 생성]]에서 기술된 것을 참고하여 F2FS로 루트 파티션을 제작한다.<br />
# ext2 포맷 또는 다른 부트로더가 지원하는 파일시스템으로 {{ic|/boot}} 파티션을 생성한다.<br />
# [[Change root|chrooted]] 전까지 [[Beginners' guide#Mount the partitions]]에서의 설치 과정을 따른다. <br />
# {{Pkg|f2fs-tools}}를 설치한다.<br />
# chroot 상태에서 [[initramfs]]를 다시 생성한다.<br />
<br />
부팅 과정에서 CRC32 모듈 로드에 실패하는 경우는 약간의 작업이 필요하다. 4.6 버전의 커널에 포함된 드라이버는 CRC32를 위해 Crypto API를 사용하므로 {{ic|crc32_generic}}와 {{ic|crc32-pclmul}}를 {{ic|/etc/mkinitcpio.conf}}의 {{ic|MODULES}}에 추가한 뒤 initramfs를 재생성한다.</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=F2FS_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=443686F2FS (한국어)2016-07-30T06:21:35Z<p>Sukbeom: Create new page for translation.</p>
<hr />
<div>[[Category:File systems]]<br />
[[it:F2FS]]<br />
[[ja:F2FS]]<br />
[[ru:F2FS]]<br />
{{Related articles start}}<br />
{{Related|File systems}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:F2FS|F2FS]] (Flash-Friendly File System) is a file system intended for NAND-based flash memory. It is supported from kernel 3.8 onwards.<br />
<br />
== Creating a F2FS partition ==<br />
<br />
In order to create a F2FS partition, [[install]] {{Pkg|f2fs-tools}} from the [[official repositories]].<br />
<br />
Create the partition:<br />
# mkfs.f2fs -l mylabel ''/dev/sdxY''<br />
where {{ic|''/dev/sdxY''}} is the target volume to format in F2FS.<br />
<br />
== Mounting a F2FS partition ==<br />
<br />
Users will likely need to manually load the F2FS kernel module before mounting. Issue as root:<br />
<br />
# modprobe f2fs<br />
<br />
The partition can then be mounted:<br />
<br />
# mount -t f2fs /dev/sdxY /mnt<br />
<br />
== Install Arch Linux on F2FS partition ==<br />
<br />
With the latest [https://www.archlinux.org/download/ installation media] it is possible to install Arch linux with root located on a F2FS filesystem:<br />
<br />
# Create the root partition as F2FS as described in section [[#Creating a F2FS partition]].<br />
# Create a separate {{ic|/boot}} partition as ext2, or any other filesystem supported by the bootloader.<br />
# Continue with the installation procedure as per [[Beginners' guide#Mount the partitions]] until [[Change root|chrooted]].<br />
# Install {{Pkg|f2fs-tools}} on the newly installed system as well.<br />
# Regenerate the [[initramfs]] while chrooted.<br />
<br />
The driver included in the kernel 4.6 or higher uses Crypto API for computing CRC32. Add {{ic|crc32_generic}} and {{ic|crc32-pclmul}} to the {{ic|MODULES}} array in {{ic|/etc/mkinitcpio.conf}} and regenerate the initramfs if the driver fails to load a CRC32 module at boot.</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=ClamAV&diff=442698ClamAV2016-07-24T04:38:01Z<p>Sukbeom: </p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ko:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-CN:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus] is an open source (GPL) anti-virus toolkit for UNIX. It provides a number of utilities including a flexible and scalable multi-threaded daemon, a command line scanner and advanced tool for automatic database updates. Because ClamAV's main use is on file/mail servers for Windows desktops it primarily detects Windows viruses and malware.<br />
<br />
== Installation ==<br />
<br />
ClamAV can be [[install]]ed with package {{Pkg|clamav}}.<br />
<br />
== Updating database ==<br />
Update the virus definitions with:<br />
# freshclam<br />
<br />
The database files are saved in:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
The virus definition updater service is called {{ic|freshclamd.service}}. Consider starting it and enabling it to start at boot so that the virus definitions are kept recent.<br />
<br />
== Starting the daemon ==<br />
<br />
Consider updating the database before starting the service for the first time or you will run into troubles/errors which will prevent ClamAV to start correctly.<br />
<br />
The service is called {{ic|clamd.service}}. Read [[Daemons]] for more information about starting it and enabling it to start at boot. You will need to run {{ic|freshclam}} prior to starting the service.<br />
<br />
== Testing the software ==<br />
<br />
In order to make sure ClamAV and the definitions are installed correctly, scan the [http://www.eicar.org/86-0-Intended-use.html EICAR test file] (a harmless signature with no virus code) with clamscan.<br />
<br />
$ wget -O- http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
The output '''must''' include:<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
Otherwise; read the Troubleshooting part or ask for help in the [https://bbs.archlinux.org/ Arch Forums].<br />
<br />
== Adding more databases/signatures repositories ==<br />
<br />
ClamAV can use databases/signature from other repositories or security vendors. <br />
<br />
To add the most important ones in a single step install {{AUR|clamav-unofficial-sigs}} and configure it in {{ic|/etc/clamav-unofficial-sigs/user.conf}}.<br />
<br />
This will add signatures/databases from e.g. MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect,...<br />
<br />
== Scan for viruses ==<br />
<br />
{{ic|clamscan}} can be used to scan certain files, home directory, or an entire system:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive=yes --infected /home # or -r -i<br />
$ clamscan --recursive=yes --infected --exclude-dir='^/sys|^/proc|^/dev|^/lib|^/bin|^/sbin' /<br />
<br />
If you would like {{ic|clamscan}} to remove the infected file add to the command the {{ic|--remove}} option, or you can use {{ic|1=--move=/dir}} to quarantine them.<br />
<br />
You may also want for {{ic|clamscan}} to scan larger files, in that case append the options {{ic|1=--max-filesize=2000M}} and {{ic|1=--max-scansize=2000M}} to the command. Where the size 2000M may be replaced as necessary.<br />
<br />
Using the {{ic|1=-l /path/to/file}} option will print the {{ic|clamscan}} logs to a text file for locating reported infections.<br />
<br />
== Using the milter ==<br />
<br />
Copy {{ic|/etc/clamav/clamav-milter.conf.sample}} to {{ic|/etc/clamav/clamav-milter.conf}} and adjust it to your needs. For example:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
Create {{ic|/etc/systemd/system/clamav-milter.service}}:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
Enable and start the service.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
If you get the following messages after running freshclam:<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
Add a sock file for ClamAV:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
Then, edit {{Ic|/etc/clamav/clamd.conf}} - uncomment this line:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
Save the file and [[Daemons|restart the daemon]]<br />
<br />
=== Error: No supported database files found ===<br />
<br />
If you get the next error when starting the daemon:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
This happens because of mismatch between {{ic|/etc/freshclam.conf}} setting {{ic|DatabaseDirectory}} and {{ic|/etc/clamd.conf}} setting {{ic|DatabaseDirectory}}.<br />
{{ic|/etc/freshclam.conf}} pointing to {{ic|/var/lib/clamav}}, but {{ic|/etc/clamd.conf}} (default directory) pointing to {{ic|/usr/share/clamav}}, or other directory. Edit in {{ic|/etc/clamd.conf}} and replace with the same DatabaseDirectory like in {{ic|/etc/freshclam.conf}}. After that clamav will start up succesfully.<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
If you get the following error, along with a 'HINT' containing a UID and a GID number:<br />
# can't create temporary directory<br />
<br />
Correct permissions:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=ClamAV_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442697ClamAV (한국어)2016-07-24T04:37:33Z<p>Sukbeom: /* Error: Can't create temporary directory */</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-CN:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus]는 유닉스용 오픈소스 (GPL) 안티바이러스 툴킷이다. Clam AntiVirus는 유연하고 확장가능한 멀티쓰레드 데몬(daemon)과 커맨드라인 스캐너, 데이터베이스 자동 업데이트를 위한 Advanced 툴 등을 포함한 다수의 유틸리티를 제공한다. ClamAV는 기본적으로 윈도우즈 바이러스와 멀웨어를 감지하는데 그 이유는 ClamAV의 주 사용처가 윈도우즈 데스크탑을 위한 파일 서버 또는 메일 서버이기 때문이다.<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|clamav}} 패키지를 [[install|설치]]한다.<br />
<br />
== 데이터베이스 업데이트 ==<br />
다음 명령어로 바이러스 정의 파일을 업데이트할 수 있다:<br />
# freshclam<br />
<br />
데이터베이스 파일은 아래에 기술된 위치에 저장된다:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
바이러스 정의 파일 업데이트 서비스는 {{ic|freshclamd.service}}이다. 시스템 부트 시에 {{ic|freshclamd.service}} 서비스가 시작되도록 활성화하여 바이러스 정의 파일이 항상 최신 상태로 유지되게 한다.<br />
<br />
== 데몬 실행 ==<br />
<br />
ClamAV 서비스를 최초로 실행한다면 '반드시' 관련 데이터베이스를 업데이트해야 한다. 업데이트하지 않고 실행하면 에러가 발생한다.<br />
<br />
데몬 실행 관련 서비스 이름은 {{ic|clamd.service}}이다. 서비스 실행 전에는 반드시 {{ic|freshclam}}를 실행해야 하며, 부트 시 서비스를 시작하기 위해 활성화시키려면 [[Daemons]] 문서를 참고한다. <br />
<br />
== 소프트웨어 테스트 ==<br />
<br />
[http://www.eicar.org/86-0-Intended-use.html EICAR 테스트 파일](바이러스 코드가 없는 무해한 서명 파일)을 통해 바이러스 정의 파일이 올바르게 되어있는지 테스트할 수 있다. 아래와 같이 clamscan을 사용하여 테스트한다.<br />
<br />
$ wget -O- http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
파일이 정상이라면 다음과 같은 메세지가 출력된다.<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
위와 같은 메세지가 출력되지 않는 경우, 문서 아래의 문제해결을 읽어보거나 [https://bbs.archlinux.org/ 아치리눅스 포럼]에 질문할 것을 권한다.<br />
<br />
== 데이터베이스/서명 저장소 추가하기 ==<br />
<br />
ClamAV는 다른 저장소나 보안 업체들의 데이터베이스나 서명을 사용할 수 있다.<br />
<br />
간단한 방법으로써 몇몇 중요 저장소들을 한번에 추가하고 싶다면 {{AUR|clamav-unofficial-sigs}}를 설치하고 {{ic|/etc/clamav-unofficial-sigs/user.conf}} 파일을 설정한다.<br />
<br />
이 방법은 MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect,... 등의 저장소들의 서명, 데이터베이스를 추가한다.<br />
<br />
== 바이러스 검사 ==<br />
<br />
특정 파일이나 홈 디렉토리, 전체 시스템을 검사하기 위해서는 {{ic|clamscan}} 명령어를 사용한다:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive=yes --infected /home # or -r -i<br />
$ clamscan --recursive=yes --infected --exclude-dir='^/sys|^/proc|^/dev|^/lib|^/bin|^/sbin' /<br />
<br />
{{ic|clamscan}} 명령어 실행으로 감염된 파일을 삭제하게 하려면 {{ic|--remove}} 옵션을 추가하고, 검역소(특정 디렉토리)로 옮기게 하려면 {{ic|1=--move=/dir}} 옵션을 사용한다.<br />
<br />
대용량 파일 검사 시에도 {{ic|clamscan}}를 사용할 수 있다. 이러한 경우에는 {{ic|1=--max-filesize=2000M}}, {{ic|1=--max-scansize=2000M}}와 같은 옵션들을 사용한다.<br />
<br />
추가적으로 {{ic|1=-l /path/to/file}} 옵션은 인자로 넘겨준 경로에 있는 파일에 감염파일 위치 정보를 로깅한다.<br />
<br />
== Milter 사용 ==<br />
<br />
{{ic|/etc/clamav/clamav-milter.conf.sample}} 파일을 {{ic|/etc/clamav/clamav-milter.conf}}에 복사한 후 편집한다. 다음 코드는 해당 파일 예제이다:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
{{ic|/etc/systemd/system/clamav-milter.service}} 파일을 생성한다:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
해당 서비스를 활성화한 뒤 실행한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
freshclam 실행 후 다음과 같은 메세지가 출력됐다면,<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
ClamAV 전용 sock 파일을 추가한다:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
그리고나서 {{Ic|/etc/clamav/clamd.conf}} 파일을 열어 아래 주석을 해제한다:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
파일 저장 후 [[Daemons|데몬을 재시작한다]].<br />
<br />
=== Error: No supported database files found ===<br />
<br />
데몬 실행 시에 다음과 같은 에러가 출력되는 경우:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
이 문제는 {{ic|/etc/freshclam.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값과 {{ic|/etc/clamd.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값이 일치하지 않아 생기는 문제이다. {{ic|/etc/clamd.conf}} 내의 DatabaseDirectory를 {{ic|/etc/clamd.conf}} 파일 안의 DatabaseDirectory와 같은 값으로 변경한다. 변경하고나면 clamav가 성공적으로 실행된다.<br />
<br />
{{tip|{{ic|/etc/freshclam.conf}}는 기본으로 {{ic|/var/lib/clamav}}를 가리킨다. 하지만 사용자 설정으로 다른 디렉토리를 가리키도록 변경할 수 있다.}}<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
다음과 같은 에러메세지가 출력되는 경우 UID와 GID 숫자를 포함하고 있는 힌트를 따른다:<br />
# can't create temporary directory<br />
<br />
올바른 권한으로 설정:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=ClamAV_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442696ClamAV (한국어)2016-07-24T04:36:37Z<p>Sukbeom: /* 바이러스 검사 */</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-CN:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus]는 유닉스용 오픈소스 (GPL) 안티바이러스 툴킷이다. Clam AntiVirus는 유연하고 확장가능한 멀티쓰레드 데몬(daemon)과 커맨드라인 스캐너, 데이터베이스 자동 업데이트를 위한 Advanced 툴 등을 포함한 다수의 유틸리티를 제공한다. ClamAV는 기본적으로 윈도우즈 바이러스와 멀웨어를 감지하는데 그 이유는 ClamAV의 주 사용처가 윈도우즈 데스크탑을 위한 파일 서버 또는 메일 서버이기 때문이다.<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|clamav}} 패키지를 [[install|설치]]한다.<br />
<br />
== 데이터베이스 업데이트 ==<br />
다음 명령어로 바이러스 정의 파일을 업데이트할 수 있다:<br />
# freshclam<br />
<br />
데이터베이스 파일은 아래에 기술된 위치에 저장된다:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
바이러스 정의 파일 업데이트 서비스는 {{ic|freshclamd.service}}이다. 시스템 부트 시에 {{ic|freshclamd.service}} 서비스가 시작되도록 활성화하여 바이러스 정의 파일이 항상 최신 상태로 유지되게 한다.<br />
<br />
== 데몬 실행 ==<br />
<br />
ClamAV 서비스를 최초로 실행한다면 '반드시' 관련 데이터베이스를 업데이트해야 한다. 업데이트하지 않고 실행하면 에러가 발생한다.<br />
<br />
데몬 실행 관련 서비스 이름은 {{ic|clamd.service}}이다. 서비스 실행 전에는 반드시 {{ic|freshclam}}를 실행해야 하며, 부트 시 서비스를 시작하기 위해 활성화시키려면 [[Daemons]] 문서를 참고한다. <br />
<br />
== 소프트웨어 테스트 ==<br />
<br />
[http://www.eicar.org/86-0-Intended-use.html EICAR 테스트 파일](바이러스 코드가 없는 무해한 서명 파일)을 통해 바이러스 정의 파일이 올바르게 되어있는지 테스트할 수 있다. 아래와 같이 clamscan을 사용하여 테스트한다.<br />
<br />
$ wget -O- http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
파일이 정상이라면 다음과 같은 메세지가 출력된다.<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
위와 같은 메세지가 출력되지 않는 경우, 문서 아래의 문제해결을 읽어보거나 [https://bbs.archlinux.org/ 아치리눅스 포럼]에 질문할 것을 권한다.<br />
<br />
== 데이터베이스/서명 저장소 추가하기 ==<br />
<br />
ClamAV는 다른 저장소나 보안 업체들의 데이터베이스나 서명을 사용할 수 있다.<br />
<br />
간단한 방법으로써 몇몇 중요 저장소들을 한번에 추가하고 싶다면 {{AUR|clamav-unofficial-sigs}}를 설치하고 {{ic|/etc/clamav-unofficial-sigs/user.conf}} 파일을 설정한다.<br />
<br />
이 방법은 MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect,... 등의 저장소들의 서명, 데이터베이스를 추가한다.<br />
<br />
== 바이러스 검사 ==<br />
<br />
특정 파일이나 홈 디렉토리, 전체 시스템을 검사하기 위해서는 {{ic|clamscan}} 명령어를 사용한다:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive=yes --infected /home # or -r -i<br />
$ clamscan --recursive=yes --infected --exclude-dir='^/sys|^/proc|^/dev|^/lib|^/bin|^/sbin' /<br />
<br />
{{ic|clamscan}} 명령어 실행으로 감염된 파일을 삭제하게 하려면 {{ic|--remove}} 옵션을 추가하고, 검역소(특정 디렉토리)로 옮기게 하려면 {{ic|1=--move=/dir}} 옵션을 사용한다.<br />
<br />
대용량 파일 검사 시에도 {{ic|clamscan}}를 사용할 수 있다. 이러한 경우에는 {{ic|1=--max-filesize=2000M}}, {{ic|1=--max-scansize=2000M}}와 같은 옵션들을 사용한다.<br />
<br />
추가적으로 {{ic|1=-l /path/to/file}} 옵션은 인자로 넘겨준 경로에 있는 파일에 감염파일 위치 정보를 로깅한다.<br />
<br />
== Milter 사용 ==<br />
<br />
{{ic|/etc/clamav/clamav-milter.conf.sample}} 파일을 {{ic|/etc/clamav/clamav-milter.conf}}에 복사한 후 편집한다. 다음 코드는 해당 파일 예제이다:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
{{ic|/etc/systemd/system/clamav-milter.service}} 파일을 생성한다:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
해당 서비스를 활성화한 뒤 실행한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
freshclam 실행 후 다음과 같은 메세지가 출력됐다면,<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
ClamAV 전용 sock 파일을 추가한다:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
그리고나서 {{Ic|/etc/clamav/clamd.conf}} 파일을 열어 아래 주석을 해제한다:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
파일 저장 후 [[Daemons|데몬을 재시작한다]].<br />
<br />
=== Error: No supported database files found ===<br />
<br />
데몬 실행 시에 다음과 같은 에러가 출력되는 경우:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
이 문제는 {{ic|/etc/freshclam.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값과 {{ic|/etc/clamd.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값이 일치하지 않아 생기는 문제이다. {{ic|/etc/clamd.conf}} 내의 DatabaseDirectory를 {{ic|/etc/clamd.conf}} 파일 안의 DatabaseDirectory와 같은 값으로 변경한다. 변경하고나면 clamav가 성공적으로 실행된다.<br />
<br />
{{tip|{{ic|/etc/freshclam.conf}}는 기본으로 {{ic|/var/lib/clamav}}를 가리킨다. 하지만 사용자 설정으로 다른 디렉토리를 가리키도록 변경할 수 있다.}}<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
다음과 같은 에러메세지가 출력되는 경우 UID와 GID 숫자를 내포한 힌트를 따른다:<br />
# can't create temporary directory<br />
<br />
올바른 권한으로 설정:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=ClamAV_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442695ClamAV (한국어)2016-07-24T04:36:03Z<p>Sukbeom: /* 바이러스 검사 */</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-CN:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus]는 유닉스용 오픈소스 (GPL) 안티바이러스 툴킷이다. Clam AntiVirus는 유연하고 확장가능한 멀티쓰레드 데몬(daemon)과 커맨드라인 스캐너, 데이터베이스 자동 업데이트를 위한 Advanced 툴 등을 포함한 다수의 유틸리티를 제공한다. ClamAV는 기본적으로 윈도우즈 바이러스와 멀웨어를 감지하는데 그 이유는 ClamAV의 주 사용처가 윈도우즈 데스크탑을 위한 파일 서버 또는 메일 서버이기 때문이다.<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|clamav}} 패키지를 [[install|설치]]한다.<br />
<br />
== 데이터베이스 업데이트 ==<br />
다음 명령어로 바이러스 정의 파일을 업데이트할 수 있다:<br />
# freshclam<br />
<br />
데이터베이스 파일은 아래에 기술된 위치에 저장된다:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
바이러스 정의 파일 업데이트 서비스는 {{ic|freshclamd.service}}이다. 시스템 부트 시에 {{ic|freshclamd.service}} 서비스가 시작되도록 활성화하여 바이러스 정의 파일이 항상 최신 상태로 유지되게 한다.<br />
<br />
== 데몬 실행 ==<br />
<br />
ClamAV 서비스를 최초로 실행한다면 '반드시' 관련 데이터베이스를 업데이트해야 한다. 업데이트하지 않고 실행하면 에러가 발생한다.<br />
<br />
데몬 실행 관련 서비스 이름은 {{ic|clamd.service}}이다. 서비스 실행 전에는 반드시 {{ic|freshclam}}를 실행해야 하며, 부트 시 서비스를 시작하기 위해 활성화시키려면 [[Daemons]] 문서를 참고한다. <br />
<br />
== 소프트웨어 테스트 ==<br />
<br />
[http://www.eicar.org/86-0-Intended-use.html EICAR 테스트 파일](바이러스 코드가 없는 무해한 서명 파일)을 통해 바이러스 정의 파일이 올바르게 되어있는지 테스트할 수 있다. 아래와 같이 clamscan을 사용하여 테스트한다.<br />
<br />
$ wget -O- http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
파일이 정상이라면 다음과 같은 메세지가 출력된다.<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
위와 같은 메세지가 출력되지 않는 경우, 문서 아래의 문제해결을 읽어보거나 [https://bbs.archlinux.org/ 아치리눅스 포럼]에 질문할 것을 권한다.<br />
<br />
== 데이터베이스/서명 저장소 추가하기 ==<br />
<br />
ClamAV는 다른 저장소나 보안 업체들의 데이터베이스나 서명을 사용할 수 있다.<br />
<br />
간단한 방법으로써 몇몇 중요 저장소들을 한번에 추가하고 싶다면 {{AUR|clamav-unofficial-sigs}}를 설치하고 {{ic|/etc/clamav-unofficial-sigs/user.conf}} 파일을 설정한다.<br />
<br />
이 방법은 MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect,... 등의 저장소들의 서명, 데이터베이스를 추가한다.<br />
<br />
== 바이러스 검사 ==<br />
<br />
특정 파일이나 홈 디렉토리, 전체 시스템을 검사하기 위해서는 {{ic|clamscan}} 명령어를 사용한다:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive=yes --infected /home # or -r -i<br />
$ clamscan --recursive=yes --infected --exclude-dir='^/sys|^/proc|^/dev|^/lib|^/bin|^/sbin' /<br />
<br />
{{ic|clamscan}} 명령어 실행으로 감염된 파일을 삭제하게 하려면 {{ic|--remove}} 옵션을 추가하고, 검역소(특정 디렉토리)로 옮기게 하려면 {{ic|1=--move=/dir}} 옵션을 사용한다.<br />
<br />
대용량 파일 검사 시에도 {{ic|clamscan}}를 사용할 수 있다. 이러한 경우에는 {{ic|1=--max-filesize=2000M}}, {{ic|1=--max-scansize=2000M}}와 같은 옵션들을 사용한다.<br />
<br />
추가적으로 {{ic|1=-l /path/to/file}} 옵션은 인자로 넘겨준 경로에 있는 파일에 감염파일 위치 정보를 로그한다.<br />
<br />
== Milter 사용 ==<br />
<br />
{{ic|/etc/clamav/clamav-milter.conf.sample}} 파일을 {{ic|/etc/clamav/clamav-milter.conf}}에 복사한 후 편집한다. 다음 코드는 해당 파일 예제이다:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
{{ic|/etc/systemd/system/clamav-milter.service}} 파일을 생성한다:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
해당 서비스를 활성화한 뒤 실행한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
freshclam 실행 후 다음과 같은 메세지가 출력됐다면,<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
ClamAV 전용 sock 파일을 추가한다:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
그리고나서 {{Ic|/etc/clamav/clamd.conf}} 파일을 열어 아래 주석을 해제한다:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
파일 저장 후 [[Daemons|데몬을 재시작한다]].<br />
<br />
=== Error: No supported database files found ===<br />
<br />
데몬 실행 시에 다음과 같은 에러가 출력되는 경우:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
이 문제는 {{ic|/etc/freshclam.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값과 {{ic|/etc/clamd.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값이 일치하지 않아 생기는 문제이다. {{ic|/etc/clamd.conf}} 내의 DatabaseDirectory를 {{ic|/etc/clamd.conf}} 파일 안의 DatabaseDirectory와 같은 값으로 변경한다. 변경하고나면 clamav가 성공적으로 실행된다.<br />
<br />
{{tip|{{ic|/etc/freshclam.conf}}는 기본으로 {{ic|/var/lib/clamav}}를 가리킨다. 하지만 사용자 설정으로 다른 디렉토리를 가리키도록 변경할 수 있다.}}<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
다음과 같은 에러메세지가 출력되는 경우 UID와 GID 숫자를 내포한 힌트를 따른다:<br />
# can't create temporary directory<br />
<br />
올바른 권한으로 설정:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=ClamAV_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442694ClamAV (한국어)2016-07-24T04:35:22Z<p>Sukbeom: /* 데이터베이스/서명 저장소 추가하기 */</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-CN:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus]는 유닉스용 오픈소스 (GPL) 안티바이러스 툴킷이다. Clam AntiVirus는 유연하고 확장가능한 멀티쓰레드 데몬(daemon)과 커맨드라인 스캐너, 데이터베이스 자동 업데이트를 위한 Advanced 툴 등을 포함한 다수의 유틸리티를 제공한다. ClamAV는 기본적으로 윈도우즈 바이러스와 멀웨어를 감지하는데 그 이유는 ClamAV의 주 사용처가 윈도우즈 데스크탑을 위한 파일 서버 또는 메일 서버이기 때문이다.<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|clamav}} 패키지를 [[install|설치]]한다.<br />
<br />
== 데이터베이스 업데이트 ==<br />
다음 명령어로 바이러스 정의 파일을 업데이트할 수 있다:<br />
# freshclam<br />
<br />
데이터베이스 파일은 아래에 기술된 위치에 저장된다:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
바이러스 정의 파일 업데이트 서비스는 {{ic|freshclamd.service}}이다. 시스템 부트 시에 {{ic|freshclamd.service}} 서비스가 시작되도록 활성화하여 바이러스 정의 파일이 항상 최신 상태로 유지되게 한다.<br />
<br />
== 데몬 실행 ==<br />
<br />
ClamAV 서비스를 최초로 실행한다면 '반드시' 관련 데이터베이스를 업데이트해야 한다. 업데이트하지 않고 실행하면 에러가 발생한다.<br />
<br />
데몬 실행 관련 서비스 이름은 {{ic|clamd.service}}이다. 서비스 실행 전에는 반드시 {{ic|freshclam}}를 실행해야 하며, 부트 시 서비스를 시작하기 위해 활성화시키려면 [[Daemons]] 문서를 참고한다. <br />
<br />
== 소프트웨어 테스트 ==<br />
<br />
[http://www.eicar.org/86-0-Intended-use.html EICAR 테스트 파일](바이러스 코드가 없는 무해한 서명 파일)을 통해 바이러스 정의 파일이 올바르게 되어있는지 테스트할 수 있다. 아래와 같이 clamscan을 사용하여 테스트한다.<br />
<br />
$ wget -O- http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
파일이 정상이라면 다음과 같은 메세지가 출력된다.<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
위와 같은 메세지가 출력되지 않는 경우, 문서 아래의 문제해결을 읽어보거나 [https://bbs.archlinux.org/ 아치리눅스 포럼]에 질문할 것을 권한다.<br />
<br />
== 데이터베이스/서명 저장소 추가하기 ==<br />
<br />
ClamAV는 다른 저장소나 보안 업체들의 데이터베이스나 서명을 사용할 수 있다.<br />
<br />
간단한 방법으로써 몇몇 중요 저장소들을 한번에 추가하고 싶다면 {{AUR|clamav-unofficial-sigs}}를 설치하고 {{ic|/etc/clamav-unofficial-sigs/user.conf}} 파일을 설정한다.<br />
<br />
이 방법은 MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect,... 등의 저장소들의 서명, 데이터베이스를 추가한다.<br />
<br />
== 바이러스 검사 ==<br />
<br />
특정 파일이나 홈 디렉토리, 전체 시스템을 검사하기 위해서는 {{ic|clamscan}} 명령어를 사용한다:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive=yes --infected /home # or -r -i<br />
$ clamscan --recursive=yes --infected --exclude-dir='^/sys|^/proc|^/dev|^/lib|^/bin|^/sbin' /<br />
<br />
{{ic|clamscan}} 명령어 실행이 감염된 파일을 삭제하게 하려면 {{ic|--remove}} 옵션을 추가하고, 검역소(특정 디렉토리)로 옮기게 하려면 {{ic|1=--move=/dir}} 옵션을 사용한다.<br />
<br />
대용량 파일 검사 시에도 {{ic|clamscan}}를 사용할 수 있다. 이러한 경우에는 {{ic|1=--max-filesize=2000M}}, {{ic|1=--max-scansize=2000M}}와 같은 옵션들을 사용한다.<br />
<br />
추가적으로 {{ic|1=-l /path/to/file}} 옵션은 인자로 넘겨준 경로에 있는 파일에 감염파일 위치 정보를 로그한다.<br />
<br />
== Milter 사용 ==<br />
<br />
{{ic|/etc/clamav/clamav-milter.conf.sample}} 파일을 {{ic|/etc/clamav/clamav-milter.conf}}에 복사한 후 편집한다. 다음 코드는 해당 파일 예제이다:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
{{ic|/etc/systemd/system/clamav-milter.service}} 파일을 생성한다:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
해당 서비스를 활성화한 뒤 실행한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
freshclam 실행 후 다음과 같은 메세지가 출력됐다면,<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
ClamAV 전용 sock 파일을 추가한다:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
그리고나서 {{Ic|/etc/clamav/clamd.conf}} 파일을 열어 아래 주석을 해제한다:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
파일 저장 후 [[Daemons|데몬을 재시작한다]].<br />
<br />
=== Error: No supported database files found ===<br />
<br />
데몬 실행 시에 다음과 같은 에러가 출력되는 경우:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
이 문제는 {{ic|/etc/freshclam.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값과 {{ic|/etc/clamd.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값이 일치하지 않아 생기는 문제이다. {{ic|/etc/clamd.conf}} 내의 DatabaseDirectory를 {{ic|/etc/clamd.conf}} 파일 안의 DatabaseDirectory와 같은 값으로 변경한다. 변경하고나면 clamav가 성공적으로 실행된다.<br />
<br />
{{tip|{{ic|/etc/freshclam.conf}}는 기본으로 {{ic|/var/lib/clamav}}를 가리킨다. 하지만 사용자 설정으로 다른 디렉토리를 가리키도록 변경할 수 있다.}}<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
다음과 같은 에러메세지가 출력되는 경우 UID와 GID 숫자를 내포한 힌트를 따른다:<br />
# can't create temporary directory<br />
<br />
올바른 권한으로 설정:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=ClamAV_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442693ClamAV (한국어)2016-07-24T04:34:40Z<p>Sukbeom: /* 소프트웨어 테스트 */</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-CN:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus]는 유닉스용 오픈소스 (GPL) 안티바이러스 툴킷이다. Clam AntiVirus는 유연하고 확장가능한 멀티쓰레드 데몬(daemon)과 커맨드라인 스캐너, 데이터베이스 자동 업데이트를 위한 Advanced 툴 등을 포함한 다수의 유틸리티를 제공한다. ClamAV는 기본적으로 윈도우즈 바이러스와 멀웨어를 감지하는데 그 이유는 ClamAV의 주 사용처가 윈도우즈 데스크탑을 위한 파일 서버 또는 메일 서버이기 때문이다.<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|clamav}} 패키지를 [[install|설치]]한다.<br />
<br />
== 데이터베이스 업데이트 ==<br />
다음 명령어로 바이러스 정의 파일을 업데이트할 수 있다:<br />
# freshclam<br />
<br />
데이터베이스 파일은 아래에 기술된 위치에 저장된다:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
바이러스 정의 파일 업데이트 서비스는 {{ic|freshclamd.service}}이다. 시스템 부트 시에 {{ic|freshclamd.service}} 서비스가 시작되도록 활성화하여 바이러스 정의 파일이 항상 최신 상태로 유지되게 한다.<br />
<br />
== 데몬 실행 ==<br />
<br />
ClamAV 서비스를 최초로 실행한다면 '반드시' 관련 데이터베이스를 업데이트해야 한다. 업데이트하지 않고 실행하면 에러가 발생한다.<br />
<br />
데몬 실행 관련 서비스 이름은 {{ic|clamd.service}}이다. 서비스 실행 전에는 반드시 {{ic|freshclam}}를 실행해야 하며, 부트 시 서비스를 시작하기 위해 활성화시키려면 [[Daemons]] 문서를 참고한다. <br />
<br />
== 소프트웨어 테스트 ==<br />
<br />
[http://www.eicar.org/86-0-Intended-use.html EICAR 테스트 파일](바이러스 코드가 없는 무해한 서명 파일)을 통해 바이러스 정의 파일이 올바르게 되어있는지 테스트할 수 있다. 아래와 같이 clamscan을 사용하여 테스트한다.<br />
<br />
$ wget -O- http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
파일이 정상이라면 다음과 같은 메세지가 출력된다.<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
위와 같은 메세지가 출력되지 않는 경우, 문서 아래의 문제해결을 읽어보거나 [https://bbs.archlinux.org/ 아치리눅스 포럼]에 질문할 것을 권한다.<br />
<br />
== 데이터베이스/서명 저장소 추가하기 ==<br />
<br />
ClamAV는 다른 저장소나 보안 업체들의 데이터베이스나 서명을 사용할 수 있다.<br />
<br />
간단한 방법으로써 몇몇 중요 저장소들을 한번에 추가하고 싶다면 {{AUR|clamav-unofficial-sigs}}를 설치하고 {{ic|/etc/clamav-unofficial-sigs/user.conf}} 파일을 설정한다.<br />
<br />
이 방법은 MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect,... 등의 저장소에서 서명, 데이터베이스를 추가한다.<br />
<br />
== 바이러스 검사 ==<br />
<br />
특정 파일이나 홈 디렉토리, 전체 시스템을 검사하기 위해서는 {{ic|clamscan}} 명령어를 사용한다:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive=yes --infected /home # or -r -i<br />
$ clamscan --recursive=yes --infected --exclude-dir='^/sys|^/proc|^/dev|^/lib|^/bin|^/sbin' /<br />
<br />
{{ic|clamscan}} 명령어 실행이 감염된 파일을 삭제하게 하려면 {{ic|--remove}} 옵션을 추가하고, 검역소(특정 디렉토리)로 옮기게 하려면 {{ic|1=--move=/dir}} 옵션을 사용한다.<br />
<br />
대용량 파일 검사 시에도 {{ic|clamscan}}를 사용할 수 있다. 이러한 경우에는 {{ic|1=--max-filesize=2000M}}, {{ic|1=--max-scansize=2000M}}와 같은 옵션들을 사용한다.<br />
<br />
추가적으로 {{ic|1=-l /path/to/file}} 옵션은 인자로 넘겨준 경로에 있는 파일에 감염파일 위치 정보를 로그한다.<br />
<br />
== Milter 사용 ==<br />
<br />
{{ic|/etc/clamav/clamav-milter.conf.sample}} 파일을 {{ic|/etc/clamav/clamav-milter.conf}}에 복사한 후 편집한다. 다음 코드는 해당 파일 예제이다:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
{{ic|/etc/systemd/system/clamav-milter.service}} 파일을 생성한다:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
해당 서비스를 활성화한 뒤 실행한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
freshclam 실행 후 다음과 같은 메세지가 출력됐다면,<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
ClamAV 전용 sock 파일을 추가한다:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
그리고나서 {{Ic|/etc/clamav/clamd.conf}} 파일을 열어 아래 주석을 해제한다:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
파일 저장 후 [[Daemons|데몬을 재시작한다]].<br />
<br />
=== Error: No supported database files found ===<br />
<br />
데몬 실행 시에 다음과 같은 에러가 출력되는 경우:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
이 문제는 {{ic|/etc/freshclam.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값과 {{ic|/etc/clamd.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값이 일치하지 않아 생기는 문제이다. {{ic|/etc/clamd.conf}} 내의 DatabaseDirectory를 {{ic|/etc/clamd.conf}} 파일 안의 DatabaseDirectory와 같은 값으로 변경한다. 변경하고나면 clamav가 성공적으로 실행된다.<br />
<br />
{{tip|{{ic|/etc/freshclam.conf}}는 기본으로 {{ic|/var/lib/clamav}}를 가리킨다. 하지만 사용자 설정으로 다른 디렉토리를 가리키도록 변경할 수 있다.}}<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
다음과 같은 에러메세지가 출력되는 경우 UID와 GID 숫자를 내포한 힌트를 따른다:<br />
# can't create temporary directory<br />
<br />
올바른 권한으로 설정:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=ClamAV_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442692ClamAV (한국어)2016-07-24T04:33:33Z<p>Sukbeom: /* 설치 */</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-CN:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus]는 유닉스용 오픈소스 (GPL) 안티바이러스 툴킷이다. Clam AntiVirus는 유연하고 확장가능한 멀티쓰레드 데몬(daemon)과 커맨드라인 스캐너, 데이터베이스 자동 업데이트를 위한 Advanced 툴 등을 포함한 다수의 유틸리티를 제공한다. ClamAV는 기본적으로 윈도우즈 바이러스와 멀웨어를 감지하는데 그 이유는 ClamAV의 주 사용처가 윈도우즈 데스크탑을 위한 파일 서버 또는 메일 서버이기 때문이다.<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|clamav}} 패키지를 [[install|설치]]한다.<br />
<br />
== 데이터베이스 업데이트 ==<br />
다음 명령어로 바이러스 정의 파일을 업데이트할 수 있다:<br />
# freshclam<br />
<br />
데이터베이스 파일은 아래에 기술된 위치에 저장된다:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
바이러스 정의 파일 업데이트 서비스는 {{ic|freshclamd.service}}이다. 시스템 부트 시에 {{ic|freshclamd.service}} 서비스가 시작되도록 활성화하여 바이러스 정의 파일이 항상 최신 상태로 유지되게 한다.<br />
<br />
== 데몬 실행 ==<br />
<br />
ClamAV 서비스를 최초로 실행한다면 '반드시' 관련 데이터베이스를 업데이트해야 한다. 업데이트하지 않고 실행하면 에러가 발생한다.<br />
<br />
데몬 실행 관련 서비스 이름은 {{ic|clamd.service}}이다. 서비스 실행 전에는 반드시 {{ic|freshclam}}를 실행해야 하며, 부트 시 서비스를 시작하기 위해 활성화시키려면 [[Daemons]] 문서를 참고한다. <br />
<br />
== 소프트웨어 테스트 ==<br />
<br />
[http://www.eicar.org/86-0-Intended-use.html EICAR 테스트 파일](바이러스 코드가 없는 무해한 서명 파일)을 통해 바이러스 정의 파일이 올바르게 되어있는지 테스트할 수 있다. 아래와 같이 clamscan을 사용하여 테스트한다.<br />
<br />
$ wget -O- http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
파일이 정상이라면 다음과 같이 메세지가 출력된다.<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
위와 같이 메세지가 출력되지 않는 경우, 문서 아래의 문제해결을 읽어보거나 [https://bbs.archlinux.org/ 아치리눅스 포럼]에 질문할 것을 권한다.<br />
<br />
== 데이터베이스/서명 저장소 추가하기 ==<br />
<br />
ClamAV는 다른 저장소나 보안 업체들의 데이터베이스나 서명을 사용할 수 있다.<br />
<br />
간단한 방법으로써 몇몇 중요 저장소들을 한번에 추가하고 싶다면 {{AUR|clamav-unofficial-sigs}}를 설치하고 {{ic|/etc/clamav-unofficial-sigs/user.conf}} 파일을 설정한다.<br />
<br />
이 방법은 MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect,... 등의 저장소에서 서명, 데이터베이스를 추가한다.<br />
<br />
== 바이러스 검사 ==<br />
<br />
특정 파일이나 홈 디렉토리, 전체 시스템을 검사하기 위해서는 {{ic|clamscan}} 명령어를 사용한다:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive=yes --infected /home # or -r -i<br />
$ clamscan --recursive=yes --infected --exclude-dir='^/sys|^/proc|^/dev|^/lib|^/bin|^/sbin' /<br />
<br />
{{ic|clamscan}} 명령어 실행이 감염된 파일을 삭제하게 하려면 {{ic|--remove}} 옵션을 추가하고, 검역소(특정 디렉토리)로 옮기게 하려면 {{ic|1=--move=/dir}} 옵션을 사용한다.<br />
<br />
대용량 파일 검사 시에도 {{ic|clamscan}}를 사용할 수 있다. 이러한 경우에는 {{ic|1=--max-filesize=2000M}}, {{ic|1=--max-scansize=2000M}}와 같은 옵션들을 사용한다.<br />
<br />
추가적으로 {{ic|1=-l /path/to/file}} 옵션은 인자로 넘겨준 경로에 있는 파일에 감염파일 위치 정보를 로그한다.<br />
<br />
== Milter 사용 ==<br />
<br />
{{ic|/etc/clamav/clamav-milter.conf.sample}} 파일을 {{ic|/etc/clamav/clamav-milter.conf}}에 복사한 후 편집한다. 다음 코드는 해당 파일 예제이다:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
{{ic|/etc/systemd/system/clamav-milter.service}} 파일을 생성한다:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
해당 서비스를 활성화한 뒤 실행한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
freshclam 실행 후 다음과 같은 메세지가 출력됐다면,<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
ClamAV 전용 sock 파일을 추가한다:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
그리고나서 {{Ic|/etc/clamav/clamd.conf}} 파일을 열어 아래 주석을 해제한다:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
파일 저장 후 [[Daemons|데몬을 재시작한다]].<br />
<br />
=== Error: No supported database files found ===<br />
<br />
데몬 실행 시에 다음과 같은 에러가 출력되는 경우:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
이 문제는 {{ic|/etc/freshclam.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값과 {{ic|/etc/clamd.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값이 일치하지 않아 생기는 문제이다. {{ic|/etc/clamd.conf}} 내의 DatabaseDirectory를 {{ic|/etc/clamd.conf}} 파일 안의 DatabaseDirectory와 같은 값으로 변경한다. 변경하고나면 clamav가 성공적으로 실행된다.<br />
<br />
{{tip|{{ic|/etc/freshclam.conf}}는 기본으로 {{ic|/var/lib/clamav}}를 가리킨다. 하지만 사용자 설정으로 다른 디렉토리를 가리키도록 변경할 수 있다.}}<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
다음과 같은 에러메세지가 출력되는 경우 UID와 GID 숫자를 내포한 힌트를 따른다:<br />
# can't create temporary directory<br />
<br />
올바른 권한으로 설정:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=ClamAV_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442691ClamAV (한국어)2016-07-24T04:33:13Z<p>Sukbeom: /* 설치 */</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-CN:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus]는 유닉스용 오픈소스 (GPL) 안티바이러스 툴킷이다. Clam AntiVirus는 유연하고 확장가능한 멀티쓰레드 데몬(daemon)과 커맨드라인 스캐너, 데이터베이스 자동 업데이트를 위한 Advanced 툴 등을 포함한 다수의 유틸리티를 제공한다. ClamAV는 기본적으로 윈도우즈 바이러스와 멀웨어를 감지하는데 그 이유는 ClamAV의 주 사용처가 윈도우즈 데스크탑을 위한 파일 서버 또는 메일 서버이기 때문이다.<br />
<br />
== 설치 ==<br />
<br />
ClamAV는 {{Pkg|clamav}} 패키지를 [[install|설치]]한다.<br />
<br />
== 데이터베이스 업데이트 ==<br />
다음 명령어로 바이러스 정의 파일을 업데이트할 수 있다:<br />
# freshclam<br />
<br />
데이터베이스 파일은 아래에 기술된 위치에 저장된다:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
바이러스 정의 파일 업데이트 서비스는 {{ic|freshclamd.service}}이다. 시스템 부트 시에 {{ic|freshclamd.service}} 서비스가 시작되도록 활성화하여 바이러스 정의 파일이 항상 최신 상태로 유지되게 한다.<br />
<br />
== 데몬 실행 ==<br />
<br />
ClamAV 서비스를 최초로 실행한다면 '반드시' 관련 데이터베이스를 업데이트해야 한다. 업데이트하지 않고 실행하면 에러가 발생한다.<br />
<br />
데몬 실행 관련 서비스 이름은 {{ic|clamd.service}}이다. 서비스 실행 전에는 반드시 {{ic|freshclam}}를 실행해야 하며, 부트 시 서비스를 시작하기 위해 활성화시키려면 [[Daemons]] 문서를 참고한다. <br />
<br />
== 소프트웨어 테스트 ==<br />
<br />
[http://www.eicar.org/86-0-Intended-use.html EICAR 테스트 파일](바이러스 코드가 없는 무해한 서명 파일)을 통해 바이러스 정의 파일이 올바르게 되어있는지 테스트할 수 있다. 아래와 같이 clamscan을 사용하여 테스트한다.<br />
<br />
$ wget -O- http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
파일이 정상이라면 다음과 같이 메세지가 출력된다.<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
위와 같이 메세지가 출력되지 않는 경우, 문서 아래의 문제해결을 읽어보거나 [https://bbs.archlinux.org/ 아치리눅스 포럼]에 질문할 것을 권한다.<br />
<br />
== 데이터베이스/서명 저장소 추가하기 ==<br />
<br />
ClamAV는 다른 저장소나 보안 업체들의 데이터베이스나 서명을 사용할 수 있다.<br />
<br />
간단한 방법으로써 몇몇 중요 저장소들을 한번에 추가하고 싶다면 {{AUR|clamav-unofficial-sigs}}를 설치하고 {{ic|/etc/clamav-unofficial-sigs/user.conf}} 파일을 설정한다.<br />
<br />
이 방법은 MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect,... 등의 저장소에서 서명, 데이터베이스를 추가한다.<br />
<br />
== 바이러스 검사 ==<br />
<br />
특정 파일이나 홈 디렉토리, 전체 시스템을 검사하기 위해서는 {{ic|clamscan}} 명령어를 사용한다:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive=yes --infected /home # or -r -i<br />
$ clamscan --recursive=yes --infected --exclude-dir='^/sys|^/proc|^/dev|^/lib|^/bin|^/sbin' /<br />
<br />
{{ic|clamscan}} 명령어 실행이 감염된 파일을 삭제하게 하려면 {{ic|--remove}} 옵션을 추가하고, 검역소(특정 디렉토리)로 옮기게 하려면 {{ic|1=--move=/dir}} 옵션을 사용한다.<br />
<br />
대용량 파일 검사 시에도 {{ic|clamscan}}를 사용할 수 있다. 이러한 경우에는 {{ic|1=--max-filesize=2000M}}, {{ic|1=--max-scansize=2000M}}와 같은 옵션들을 사용한다.<br />
<br />
추가적으로 {{ic|1=-l /path/to/file}} 옵션은 인자로 넘겨준 경로에 있는 파일에 감염파일 위치 정보를 로그한다.<br />
<br />
== Milter 사용 ==<br />
<br />
{{ic|/etc/clamav/clamav-milter.conf.sample}} 파일을 {{ic|/etc/clamav/clamav-milter.conf}}에 복사한 후 편집한다. 다음 코드는 해당 파일 예제이다:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
{{ic|/etc/systemd/system/clamav-milter.service}} 파일을 생성한다:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
해당 서비스를 활성화한 뒤 실행한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
freshclam 실행 후 다음과 같은 메세지가 출력됐다면,<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
ClamAV 전용 sock 파일을 추가한다:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
그리고나서 {{Ic|/etc/clamav/clamd.conf}} 파일을 열어 아래 주석을 해제한다:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
파일 저장 후 [[Daemons|데몬을 재시작한다]].<br />
<br />
=== Error: No supported database files found ===<br />
<br />
데몬 실행 시에 다음과 같은 에러가 출력되는 경우:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
이 문제는 {{ic|/etc/freshclam.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값과 {{ic|/etc/clamd.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값이 일치하지 않아 생기는 문제이다. {{ic|/etc/clamd.conf}} 내의 DatabaseDirectory를 {{ic|/etc/clamd.conf}} 파일 안의 DatabaseDirectory와 같은 값으로 변경한다. 변경하고나면 clamav가 성공적으로 실행된다.<br />
<br />
{{tip|{{ic|/etc/freshclam.conf}}는 기본으로 {{ic|/var/lib/clamav}}를 가리킨다. 하지만 사용자 설정으로 다른 디렉토리를 가리키도록 변경할 수 있다.}}<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
다음과 같은 에러메세지가 출력되는 경우 UID와 GID 숫자를 내포한 힌트를 따른다:<br />
# can't create temporary directory<br />
<br />
올바른 권한으로 설정:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=ClamAV_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442690ClamAV (한국어)2016-07-24T04:32:19Z<p>Sukbeom: Revise first draft within Korean.</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-CN:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus]는 유닉스용 오픈소스 (GPL) 안티바이러스 툴킷이다. Clam AntiVirus는 유연하고 확장가능한 멀티쓰레드 데몬(daemon)과 커맨드라인 스캐너, 데이터베이스 자동 업데이트를 위한 Advanced 툴 등을 포함한 다수의 유틸리티를 제공한다. ClamAV는 기본적으로 윈도우즈 바이러스와 멀웨어를 감지하는데 그 이유는 ClamAV의 주 사용처가 윈도우즈 데스크탑을 위한 파일 서버 또는 메일 서버이기 때문이다.<br />
<br />
== 설치 ==<br />
<br />
ClamAV는 {{Pkg|clamav}} 패키지로 [[install|설치]]한다.<br />
<br />
== 데이터베이스 업데이트 ==<br />
다음 명령어로 바이러스 정의 파일을 업데이트할 수 있다:<br />
# freshclam<br />
<br />
데이터베이스 파일은 아래에 기술된 위치에 저장된다:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
바이러스 정의 파일 업데이트 서비스는 {{ic|freshclamd.service}}이다. 시스템 부트 시에 {{ic|freshclamd.service}} 서비스가 시작되도록 활성화하여 바이러스 정의 파일이 항상 최신 상태로 유지되게 한다.<br />
<br />
== 데몬 실행 ==<br />
<br />
ClamAV 서비스를 최초로 실행한다면 '반드시' 관련 데이터베이스를 업데이트해야 한다. 업데이트하지 않고 실행하면 에러가 발생한다.<br />
<br />
데몬 실행 관련 서비스 이름은 {{ic|clamd.service}}이다. 서비스 실행 전에는 반드시 {{ic|freshclam}}를 실행해야 하며, 부트 시 서비스를 시작하기 위해 활성화시키려면 [[Daemons]] 문서를 참고한다. <br />
<br />
== 소프트웨어 테스트 ==<br />
<br />
[http://www.eicar.org/86-0-Intended-use.html EICAR 테스트 파일](바이러스 코드가 없는 무해한 서명 파일)을 통해 바이러스 정의 파일이 올바르게 되어있는지 테스트할 수 있다. 아래와 같이 clamscan을 사용하여 테스트한다.<br />
<br />
$ wget -O- http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
파일이 정상이라면 다음과 같이 메세지가 출력된다.<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
위와 같이 메세지가 출력되지 않는 경우, 문서 아래의 문제해결을 읽어보거나 [https://bbs.archlinux.org/ 아치리눅스 포럼]에 질문할 것을 권한다.<br />
<br />
== 데이터베이스/서명 저장소 추가하기 ==<br />
<br />
ClamAV는 다른 저장소나 보안 업체들의 데이터베이스나 서명을 사용할 수 있다.<br />
<br />
간단한 방법으로써 몇몇 중요 저장소들을 한번에 추가하고 싶다면 {{AUR|clamav-unofficial-sigs}}를 설치하고 {{ic|/etc/clamav-unofficial-sigs/user.conf}} 파일을 설정한다.<br />
<br />
이 방법은 MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect,... 등의 저장소에서 서명, 데이터베이스를 추가한다.<br />
<br />
== 바이러스 검사 ==<br />
<br />
특정 파일이나 홈 디렉토리, 전체 시스템을 검사하기 위해서는 {{ic|clamscan}} 명령어를 사용한다:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive=yes --infected /home # or -r -i<br />
$ clamscan --recursive=yes --infected --exclude-dir='^/sys|^/proc|^/dev|^/lib|^/bin|^/sbin' /<br />
<br />
{{ic|clamscan}} 명령어 실행이 감염된 파일을 삭제하게 하려면 {{ic|--remove}} 옵션을 추가하고, 검역소(특정 디렉토리)로 옮기게 하려면 {{ic|1=--move=/dir}} 옵션을 사용한다.<br />
<br />
대용량 파일 검사 시에도 {{ic|clamscan}}를 사용할 수 있다. 이러한 경우에는 {{ic|1=--max-filesize=2000M}}, {{ic|1=--max-scansize=2000M}}와 같은 옵션들을 사용한다.<br />
<br />
추가적으로 {{ic|1=-l /path/to/file}} 옵션은 인자로 넘겨준 경로에 있는 파일에 감염파일 위치 정보를 로그한다.<br />
<br />
== Milter 사용 ==<br />
<br />
{{ic|/etc/clamav/clamav-milter.conf.sample}} 파일을 {{ic|/etc/clamav/clamav-milter.conf}}에 복사한 후 편집한다. 다음 코드는 해당 파일 예제이다:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
{{ic|/etc/systemd/system/clamav-milter.service}} 파일을 생성한다:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
해당 서비스를 활성화한 뒤 실행한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
freshclam 실행 후 다음과 같은 메세지가 출력됐다면,<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
ClamAV 전용 sock 파일을 추가한다:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
그리고나서 {{Ic|/etc/clamav/clamd.conf}} 파일을 열어 아래 주석을 해제한다:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
파일 저장 후 [[Daemons|데몬을 재시작한다]].<br />
<br />
=== Error: No supported database files found ===<br />
<br />
데몬 실행 시에 다음과 같은 에러가 출력되는 경우:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
이 문제는 {{ic|/etc/freshclam.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값과 {{ic|/etc/clamd.conf}} 파일에 정의된 {{ic|DatabaseDirectory}} 값이 일치하지 않아 생기는 문제이다. {{ic|/etc/clamd.conf}} 내의 DatabaseDirectory를 {{ic|/etc/clamd.conf}} 파일 안의 DatabaseDirectory와 같은 값으로 변경한다. 변경하고나면 clamav가 성공적으로 실행된다.<br />
<br />
{{tip|{{ic|/etc/freshclam.conf}}는 기본으로 {{ic|/var/lib/clamav}}를 가리킨다. 하지만 사용자 설정으로 다른 디렉토리를 가리키도록 변경할 수 있다.}}<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
다음과 같은 에러메세지가 출력되는 경우 UID와 GID 숫자를 내포한 힌트를 따른다:<br />
# can't create temporary directory<br />
<br />
올바른 권한으로 설정:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=ClamAV_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442669ClamAV (한국어)2016-07-24T00:17:01Z<p>Sukbeom: Create new page for translation.</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-CN:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus] is an open source (GPL) anti-virus toolkit for UNIX. It provides a number of utilities including a flexible and scalable multi-threaded daemon, a command line scanner and advanced tool for automatic database updates. Because ClamAV's main use is on file/mail servers for Windows desktops it primarily detects Windows viruses and malware.<br />
<br />
== Installation ==<br />
<br />
ClamAV can be [[install]]ed with package {{Pkg|clamav}}.<br />
<br />
== Updating database ==<br />
Update the virus definitions with:<br />
# freshclam<br />
<br />
The database files are saved in:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
The virus definition updater service is called {{ic|freshclamd.service}}. Consider starting it and enabling it to start at boot so that the virus definitions are kept recent.<br />
<br />
== Starting the daemon ==<br />
<br />
Consider updating the database before starting the service for the first time or you will run into troubles/errors which will prevent ClamAV to start correctly.<br />
<br />
The service is called {{ic|clamd.service}}. Read [[Daemons]] for more information about starting it and enabling it to start at boot. You will need to run {{ic|freshclam}} prior to starting the service.<br />
<br />
== Testing the software ==<br />
<br />
In order to make sure ClamAV and the definitions are installed correctly, scan the [http://www.eicar.org/86-0-Intended-use.html EICAR test file] (a harmless signature with no virus code) with clamscan.<br />
<br />
$ wget -O- http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
The output '''must''' include:<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
Otherwise; read the Troubleshooting part or ask for help in the [https://bbs.archlinux.org/ Arch Forums].<br />
<br />
== Adding more databases/signatures repositories ==<br />
<br />
ClamAV can use databases/signature from other repositories or security vendors. <br />
<br />
To add the most important ones in a single step install {{AUR|clamav-unofficial-sigs}} and configure it in {{ic|/etc/clamav-unofficial-sigs/user.conf}}.<br />
<br />
This will add signatures/databases from e.g. MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect,...<br />
<br />
== Scan for viruses ==<br />
<br />
{{ic|clamscan}} can be used to scan certain files, home directory, or an entire system:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive=yes --infected /home # or -r -i<br />
$ clamscan --recursive=yes --infected --exclude-dir='^/sys|^/proc|^/dev|^/lib|^/bin|^/sbin' /<br />
<br />
If you would like {{ic|clamscan}} to remove the infected file add to the command the {{ic|--remove}} option, or you can use {{ic|1=--move=/dir}} to quarantine them.<br />
<br />
You may also want for {{ic|clamscan}} to scan larger files, in that case append the options {{ic|1=--max-filesize=2000M}} and {{ic|1=--max-scansize=2000M}} to the command. Where the size 2000M may be replaced as necessary.<br />
<br />
Using the {{ic|1=-l /path/to/file}} option will print the {{ic|clamscan}} logs to a text file for locating reported infections.<br />
<br />
== Using the milter ==<br />
<br />
Copy {{ic|/etc/clamav/clamav-milter.conf.sample}} to {{ic|/etc/clamav/clamav-milter.conf}} and adjust it to your needs. For example:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
Create {{ic|/etc/systemd/system/clamav-milter.service}}:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
Enable and start the service.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
If you get the following messages after running freshclam:<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
Add a sock file for ClamAV:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
Then, edit {{Ic|/etc/clamav/clamd.conf}} - uncomment this line:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
Save the file and [[Daemons|restart the daemon]]<br />
<br />
=== Error: No supported database files found ===<br />
<br />
If you get the next error when starting the daemon:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
This happens because of mismatch between {{ic|/etc/freshclam.conf}} setting {{ic|DatabaseDirectory}} and {{ic|/etc/clamd.conf}} setting {{ic|DatabaseDirectory}}.<br />
{{ic|/etc/freshclam.conf}} pointing to {{ic|/var/lib/clamav}}, but {{ic|/etc/clamd.conf}} (default directory) pointing to {{ic|/usr/share/clamav}}, or other directory. Edit in {{ic|/etc/clamd.conf}} and replace with the same DatabaseDirectory like in {{ic|/etc/freshclam.conf}}. After that clamav will start up succesfully.<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
If you get the following error, along with a 'HINT' containing a UID and a GID number:<br />
# can't create temporary directory<br />
<br />
Correct permissions:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Thunar_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442535Thunar (한국어)2016-07-23T15:10:39Z<p>Sukbeom: </p>
<hr />
<div>[[Category:File managers (한국어)]]<br />
[[ar:Thunar]]<br />
[[en:Thunar]]<br />
[[es:Thunar]]<br />
[[fr:Thunar]]<br />
[[it:Thunar]]<br />
[[ja:Thunar]]<br />
[[pl:Thunar]]<br />
[[ru:Thunar]]<br />
[[zh-cn:Thunar]]<br />
{{Related articles start}}<br />
{{Related|Xfce}}<br />
{{Related|File manager functionality}}<br />
{{Related|GNOME Files}}<br />
{{Related|PCManFM}}<br />
{{Related|Nemo}}<br />
{{Related articles end}}<br />
<br />
Xfce 프로젝트 [http://docs.xfce.org/xfce/thunar/start 홈페이지] 출처 :<br />
: ''Thunar는 Xfce 데스크탑 환경용 최신 파일 관리자이다. Thunar는 빠른 속도와 편리한 사용을 위해 철저하게 설계되었으며 깔끔한 사용자 인터페이스와 쓸모없는 선택사항은 포함하지 않는다. Thunar는 빠른속도와 초기 실행시간, 디렉토리 로딩에서도 좋은 성능을 보여준다.''<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|thunar}} 패키지를 [[Install|설치]]한다. {{Pkg|thunar}}는 {{Grp|xfce4}} 패키지 그룹의 하나이기 때문에 [[Xfce]]를 사용 중이라면 이미 시스템에 설치되어 있을 것이다.<br />
<br />
=== 플러그인과 추가기능 ===<br />
<br />
* {{App|Thunar Archive Plugin|컨텍스트 메뉴 아이템을 이용하여 파일압축 및 압축해제를 제공하는 플러그인이다. File Roller({{Pkg|file-roller}})나 Ark({{Pkg|ark}}), Xarchiver({{Pkg|xarchiver}}) 등의 타 압축프로그램들의 프론트엔드로서 자체적으로 압축관련기능을 제공하지 않는다. 해당 플러그인은 {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin|{{Pkg|thunar-archive-plugin}}}}<br />
* {{App|Thunar Media Tags Plugin|미디어 파일에 대한 자세한 정보를 제공한다. Bulk rename 기능(한번에 다수의 파일 이름을 변경하는 기능: [http://docs.xfce.org/xfce/thunar/bulk-renamer/start xfce 문서] 참조)과 미디어 태그 편집 기능을 제공하며 ID3(MP3 파일 포맷 시스템)와 Ogg/Vorbis 태그를 제공한다. {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin|{{Pkg|thunar-media-tags-plugin}}}}<br />
* {{App|Thunar Shares Plugin|루트의 접근권한 요청 없이 사용자가 Samba를 사용하는 디렉토리를 빠르게 공유할 수 있도록 해준다. Samba 설정 관련은 다음 문서ᅟ를 참고한다: [[Samba#Creating usershare path|how to configure directions]].|http://goodies.xfce.org/projects/thunar-plugins/thunar-shares-plugin|{{AUR|thunar-shares-plugin}}}}<br />
* {{App|[[ #Thunar Volume Manager|Thunar Volume Manager]]|Thunar에서 이동식 장치을 자동으로 관리하며 {{Grp|xfce4}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-volman|{{Pkg|thunar-volman}}}}<br />
* {{App|Tumbler|파일 썸네일을 생성하기 위한 외부 프로그램. 비디오 파일의 썸네일은 {{Pkg|ffmpegthumbnailer}}를 설치해야 한다.|http://git.xfce.org/xfce/tumbler/tree/README|{{Pkg|tumbler}}}}<br />
* {{App|RAW Thumbnailer|RAW 이미지 파일의 썸네일을 지원하고 저용량이며 빠르다.|https://code.google.com/p/raw-thumbnailer/|{{Pkg|raw-thumbnailer}}}}<br />
* {{App|libgsf|odf 포맷과 같이 구조화 파일 포맷을 읽고 쓰기 위해 필요한 유틸리티 라이브러리. odf 썸네일을 원할 때에 본 라이브러리를 설치해야 한다.|http://directory.fsf.org/wiki/Libgsf|{{Pkg|libgsf}}}}<br />
<br />
{{Tip|Thunar에서 {{ic|mtp}} 또는 {{ic|smb}} 서비스에 접근하는 추가적인 기능은 [[GVFS]]를 참고한다. [[File manager functionality]]에서도 자세한 정보를 확인할 수 있다.}}<br />
<br />
== Thunar Volume Manager ==<br />
<br />
Thunar에서 이동식 장치들에 대한 자동 마운트/마운트해제를 지원할 수 있지만 마운트/마운트해제 시 자동 명령어 실행과 마운트된 장치의 위치에서 새로운 창 열기 등의 확장기능들은 Thunar Volume Manager가 필요하다. <br />
<br />
=== 설치 ===<br />
<br />
Thunar Volume Manager는 공식 저장소에서 {{Pkg|thunar-volman}}로 설치할 수 있다.<br />
<br />
{{Tip|Thunar에서 자동 마운트 처리를 위해 반드시 인스턴스 하나는 데몬 모드로 실행되어야 한다. [[#Starting in daemon mode]] }}<br />
<br />
=== 설정 ===<br />
<br />
카메라나 오디오 플레이어가 연결되었을 때 특정 동작이 실행되도록 설정할 수 있다.<br />
플러그인 설치 후에:<br />
# Thunar를 실행하여 ''Edit > Preferences''로 들어간다.<br />
# 'Advanced' 탭에서 'Enable Volume Management'를 체크한다.<br />
# 'Configure'를 클릭한 후에 아래의 항목들을 체크한다.<br />
#* Mount removable drives when hot-plugged.<br />
#* Mount removable media when inserted.<br />
# 원한다면 추가적인 변경을 한다. (아래 참고)<br />
다음은 Amarok 미디어 플레이어가 오디오 CD를 재생하도록 하는 예제이다.<br />
Multimedia - Audio CDs: {{ic|amarok --cdplay %d}}<br />
<br />
== 유용한 팁 ==<br />
<br />
=== 대용량의 외장 하드디스크 자동으로 마운트 ===<br />
만약 tunar-volman과 gvfs가 설치되어 있는 환경에도 불구하고 크기가 1TB가 넘는 대용량의 휴대용 장치의 마운트에 실패했다면 {{Pkg|udevil}}나 {{Pkg|udiskie}}와 같은 다른 마운트 프로그램을 시도해본다. ''udiskie''는 udisks2를 사용하여 gvfs와 호환되므로 권장된다. udisks2 지원을 활성화하면서 udiskie를 실행하려면 autostart 파일에 아래 라인을 추가한다.<br />
<br />
udiskie -2 &<br />
<br />
=== 원격 위치 탐색 ===<br />
<br />
Xfce 4.8 (Thunar 1.2) 이후 FTP 서버나 Samba 공유서버와 같은 원격 위치에서도 탐색이 가능하다. 원격 위치 탐색 기능을 활성화하기 위해서는 반드시 {{Pkg|gvfs}}와 {{Pkg|gvfs-smb}}, {{Pkg|sshfs}}가 설치되어 있어야 한다. 'Network' 항목이 Thunar의 측면 영역에 보이고 Thunar 주소창(단축키 {{ic|Ctrl+l}})에 'smb://,ftp://, ssh://, sftp://, davs:// + 호스트이름 또는 IP 주소'와 같은 URI 스키마를 사용하여 원격 위치를 열 수 있다.<br />
<br />
[[NFS]](네트워크 파일시스템 공유)를 위한 URI스키마는 없으나 [[fstab]]을 올바르게 설정했다면 {{ic|mount}} 명령어를 사용할 수 있다.<br />
{{hc|/etc/fstab|<br />
# nas1 server<br />
nas1:/c/home /media/nas1/home nfs noauto,user,_netdev,bg 0 0}}<br />
<br />
여기서 중요한 부분은 옵션 부분이다. {{ic|noauto}} 옵션은 사용자가 Thunar에서 직접 클릭하기 전까지 마운트되는 것을 방지한다. {{ic|user}} 옵션은 모든 사용자에게 공유폴더에 대한 마운트, 마운트해제를 허용하고 {{ic|_netdev}} 옵션은 네트워크 연결이 필수 조건이라는 것을 명시한다. 마지막으로 {{ic|bg}} 옵션은 마운트 동작을 백그라운드에서 수행하게 한다. 서버의 스핀업 타임으로 타임아웃이 돼서 마운트하기 위해 사용자가 다시 클릭해야하는 경우가 생기는데, 마운트 동작을 백그라운드에서 수행하게 함으로써 이를 방지한다.<br />
<br />
{{Tip|원격 파일시스템 위치에 대한 보안키를 영구적으로 저장하려면 [[GNOME Keyring]]을 설치한다.}}<br />
<br />
=== 데몬 모드로 실행하기 ===<br />
<br />
Thunar는 데몬 모드로 실행할 수 있다. 데몬 모드로 실행하면 초기 실행이 더 빨라지고 백그라운드에서 동작하는 인스턴스와 필요시에 열리는 윈도우 관련 인스턴스(예. 플래시 드라이브 삽입 시에 열리는 thunar 창) 등 필요한 인스턴스만 사용하게 되며 이동식 디스크에 대한 마운트 동작을 Thunar에서 자동으로 처리하도록 하는 장점이 있다.<br />
<br />
로그인 시 {{ic|thunar --daemon}} 명령어가 자동으로 실행되도록 한다.자세한 것은 [[Xfce]]와 [[Autostarting]]을 참고한다.<br />
<br />
=== 프로그램 로드 시 성능 저하 문제 ===<br />
<br />
몇몇 유저들은 Thunar 최초 실행 시에 프로그램이 시작되기까지의 시간이 너무 오래 소요되는 문제를 겪는다. 이러한 문제는 네트워크를 확인하는 gvfs가 원인으로서 gvfs가 수행중인 동작을 마칠 때까지 Thunar가 시작되지 못하도록 하기 때문이다. 이러한 문제를 해결하기 위해서는 {{ic|/usr/share/gvfs/mounts/network.mount}}에서 '''AutoMount=true''' 부분을 '''AutoMount=false'''로 변경한다.<br />
<br />
=== 좌측의 바로가기 항목 변경 ===<br />
<br />
좌측의 바로가기 영역에 숨겨진 메뉴가 있다. <br />
<br />
DEVICES, PLACES라고 표시된 카테고리 레이블에 대고 오른쪽 마우스를 클릭하면 표시할 아이템을 선택할 수 있는 팝업 메뉴가 나타난다.<br />
<br />
=== 키보드 단축키 설정하기 ===<br />
<br />
[[GTK+#Keyboard shortcuts]] 참고.<br />
<br />
=== fstab에 정의되어 있는 파티션 보이게 하기 ===<br />
<br />
Thunar는 루트 파티션 외에 {{ic|/etc/fstab}}에 정의된 파티션들은 기본적으로 보여주지 않는다. <br />
<br />
이 때, fstab에 '''comment=x-gvfs-show''' 옵션을 추가하면 사용자가 원하는 파티션을 보이도록 설정할 수 있다.<br />
<br />
== 사용자 정의 동작 ==<br />
<br />
본 절은 사용자 정의 동작 설정을 설명하고 {{ic|Edit -> Configure custom actions}}에서 설정이 가능하다. 설정한 내용은 {{ic|~/.config/Thunar/uca.xml}} 파일에 저장된다. 관련 예제는 [http://docs.xfce.org/xfce/thunar/custom-actions thunar wiki]에 많이 정리되어 있으니 참고하기 바란다. [http://duncanlock.net/blog/2013/06/28/useful-thunar-custom-actions/ this] 블로그에도 관련된 다양한 콜렉션들을 제공한다. <br />
<br />
=== 파일, 디렉토리 검색 ===<br />
<br />
검색기능을 사용하기 위해서는 {{Pkg|catfish}}가 설치되어야 한다. 선택 의존 패키지 {{Pkg|mlocate}}도 반드시 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Search<br />
| {{ic|1=catfish --path=%f}} || * || Directories<br />
|}<br />
<br />
=== 바이러스 검색 ===<br />
<br />
바이러스 검색 기능을 위해서는 {{Pkg|clamav}}, {{AUR|clamtk}}을 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Scan for virus<br />
| {{ic|clamtk %F}} || * || Select all<br />
|}<br />
<br />
=== 드롭박스 연결 ===<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Link to Dropbox<br />
| {{ic|ln -s %f /path/to/DropboxFolder}} || * || Directories, other files<br />
|}<br />
<br />
파일과 폴더를 특정 위치로 사용자 정의 동작을 이용하여 심볼릭 링크를 만드려고 하는 경우가 있다. 하지만 해당 동작들이 많아지는 경우, 메뉴 자체에 항목이 엄청나게 늘어날 수 있는데 이러한 경우 {{ic|Send To}} 폴더를 이용하는 편이 유용하다. {{ic|~/.local/share/Thunar/sendto}} 폴더 내에 .desktop 파일을 만들고 수행하고자 하는 사용자 정의 동작을 파일에 정의한다. 만약에 Dropbox 폴더에 심볼릭 링크를 만들고자 한다면 다음과 같은 내용으로 dropbox_folder.desktop 파일을 생성하여 SendTo 메뉴에 새로운 항목을 추가할 수 있다. 이 때, 설정 적용을 위해 반드시 Thunar를 재시작해야 한다.<br />
<br />
{{bc|<nowiki><br />
[Desktop Entry]<br />
Type=Application<br />
Version=1.0<br />
Encoding=UTF-8<br />
Exec=ln -s %f /path/to/DropboxFolder<br />
Icon=/usr/share/icons/dropbox.png<br />
Name=Dropbox<br />
</nowiki>}}<br />
<br />
== 문제 해결 ==<br />
<br />
=== Tumblerd 서비스가 멈추고 CPU 사용량이 많아지는 문제 ===<br />
<br />
파일시스템 감시와 시스템 알림 서비스 Tumblerd는 썸네일이 필요할 때 무한루프에 빠져 시스템의 프로세서를 100프로 사용하게 되는 버그가 있다. ([https://bugzilla.xfce.org/show_bug.cgi?id=7384 bug report]). 아래의 코드는 임시 해결방법으로 무한루프를 실행하는 것을 멈추는 스크립트이다. 홈 디렉토리에 ''.sh''파일로 저장 후 실행권한을 추가한 뒤 시스템 시작 시에 스크립트가 실행되도록 설정한다.<br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
period=20<br />
tumblerpath="/usr/lib/*/tumbler-1/tumblerd" # The * here should find the right one, whether 32 and 64-bit<br />
cpu_threshold=50<br />
mem_threshold=20<br />
max_strikes=2 # max number of above cpu/mem-threshold's in a row<br />
log="/tmp/tumblerd-watcher.log"<br />
<br />
if [[ -n "${log}" ]]; then<br />
cat /dev/null > "${log}"<br />
exec >"${log}" 2>&1<br />
fi<br />
<br />
<br />
strikes=0<br />
while sleep "${period}"; do<br />
while read pid; do<br />
cpu_usage=$(ps --no-headers -o pcpu -f "${pid}"|cut -f1 -d.)<br />
mem_usage=$(ps --no-headers -o pmem -f "${pid}"|cut -f1 -d.)<br />
<br />
if [[ $cpu_usage -gt $cpu_threshold ]] || [[ $mem_usage -gt $mem_threshold ]]; then<br />
echo "$(date +"%F %T") PID: $pid CPU: $cpu_usage/$cpu_threshold %cpu MEM: $mem_usage/$mem_threshold STRIKES: ${strikes} NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
(( strikes++ ))<br />
if [[ ${strikes} -ge ${max_strikes} ]]; then<br />
kill "${pid}"<br />
echo "$(date +"%F %T") PID: $pid KILLED; NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
strikes=0<br />
fi<br />
else<br />
strikes=0<br />
fi<br />
done < <(pgrep -f ${tumblerpath})<br />
done<br />
</nowiki>}}<br />
<br />
=== 수시로 Trash/network 아이콘이 사라지는 문제 ===<br />
<br />
Thunar 인스턴스가 ''gvfs''이후에 실행되도록 한다. [https://bugs.launchpad.net/ubuntu/+source/thunar/+bug/1057610] {{ic|thunar --daemon}}를 사용하는 경우에는 GVFS가 활성화될 때까지 기다리는 wrapper를 생성할 수 있다. (아래 코드 참고)<br />
<br />
{{Note|반드시 {{ic|$PATH}}에서 {{ic|/usr/local/bin}}가 {{ic|/usr/bin}}이전에 위치해야 한다.}}<br />
<br />
{{hc|/usr/local/bin/Thunar|<nowiki><br />
#!/bin/bash<br />
if [[ $1 == --daemon ]]; then<br />
until pgrep gvfs >/dev/null; do<br />
sleep 1<br />
done<br />
exec /usr/bin/Thunar "$@"<br />
else<br />
exec /usr/bin/Thunar "$@"<br />
fi<br />
</nowiki>}}<br />
<br />
=== Not authenticated to mount filesystems ===<br />
<br />
[[File manager functionality#Troubleshooting]] 참고.<br />
<br />
== 출처 ==<br />
<br />
* [http://docs.xfce.org/xfce/thunar/start Thunar] project page<br />
* [http://goodies.xfce.org/projects/thunar-plugins/thunar-volman Thunar Volume Manager] project page<br />
* This [http://goodies.xfce.org/projects/thunar-plugins/start list] of plugins</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Thunar_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442534Thunar (한국어)2016-07-23T15:08:43Z<p>Sukbeom: /* 설치 */</p>
<hr />
<div>[[Category:File managers (한국어)]]<br />
[[ar:Thunar]]<br />
[[en:Thunar]]<br />
[[es:Thunar]]<br />
[[fr:Thunar]]<br />
[[it:Thunar]]<br />
[[ja:Thunar]]<br />
[[pl:Thunar]]<br />
[[ru:Thunar]]<br />
[[zh-cn:Thunar]]<br />
{{Related articles start}}<br />
{{Related|Xfce}}<br />
{{Related|File manager functionality}}<br />
{{Related|GNOME Files}}<br />
{{Related|PCManFM}}<br />
{{Related|Nemo}}<br />
{{Related articles end}}<br />
<br />
Xfce 프로젝트 [http://docs.xfce.org/xfce/thunar/start 홈페이지] 출처 :<br />
: ''Thunar는 Xfce 데스크탑 환경용 최신 파일 관리자이다. Thunar는 빠른 속도와 편리한 사용을 위해 철저하게 설계되었으며 때문에 Thunar에서 제공되는 사용자 인터페이스는 깔끔하고 직관적이며 어지럽고 쓸모없는 옵션들은 포함하지 않는다. Thunar는 빠른속도와 초기 실행시간, 디렉토리 로딩에서도 좋은 반응성을 보여준다.''<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|thunar}} 패키지를 [[Install|설치]]한다. {{Pkg|thunar}}는 {{Grp|xfce4}} 패키지 그룹의 하나이기 때문에 [[Xfce]]를 사용 중이라면 시스템에 이미 설치되어 있을 것이다.<br />
<br />
=== 플러그인과 추가기능 ===<br />
<br />
* {{App|Thunar Archive Plugin|컨텍스트 메뉴 아이템을 이용하여 파일압축 및 압축해제를 제공하는 플러그인이다. File Roller({{Pkg|file-roller}})나 Ark({{Pkg|ark}}), Xarchiver({{Pkg|xarchiver}}) 등의 타 압축프로그램들의 프론트엔드로서 자체적으로 압축관련기능을 제공하지 않는다. 해당 플러그인은 {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin|{{Pkg|thunar-archive-plugin}}}}<br />
* {{App|Thunar Media Tags Plugin|미디어 파일에 대한 자세한 정보를 제공한다. Bulk rename 기능(한번에 다수의 파일 이름을 변경하는 기능: [http://docs.xfce.org/xfce/thunar/bulk-renamer/start xfce 문서] 참조)과 미디어 태그 편집 기능을 제공하며 ID3(MP3 파일 포맷 시스템)와 Ogg/Vorbis 태그를 제공한다. {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin|{{Pkg|thunar-media-tags-plugin}}}}<br />
* {{App|Thunar Shares Plugin|루트의 접근권한 요청 없이 사용자가 Samba를 사용하는 디렉토리를 빠르게 공유할 수 있도록 해준다. Samba 설정 관련은 다음 문서ᅟ를 참고한다: [[Samba#Creating usershare path|how to configure directions]].|http://goodies.xfce.org/projects/thunar-plugins/thunar-shares-plugin|{{AUR|thunar-shares-plugin}}}}<br />
* {{App|[[ #Thunar Volume Manager|Thunar Volume Manager]]|Thunar에서 이동식 장치을 자동으로 관리하며 {{Grp|xfce4}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-volman|{{Pkg|thunar-volman}}}}<br />
* {{App|Tumbler|파일 썸네일을 생성하기 위한 외부 프로그램. 비디오 파일의 썸네일은 {{Pkg|ffmpegthumbnailer}}를 설치해야 한다.|http://git.xfce.org/xfce/tumbler/tree/README|{{Pkg|tumbler}}}}<br />
* {{App|RAW Thumbnailer|RAW 이미지 파일의 썸네일을 지원하고 저용량이며 빠르다.|https://code.google.com/p/raw-thumbnailer/|{{Pkg|raw-thumbnailer}}}}<br />
* {{App|libgsf|odf 포맷과 같이 구조화 파일 포맷을 읽고 쓰기 위해 필요한 유틸리티 라이브러리. odf 썸네일을 원할 때에 본 라이브러리를 설치해야 한다.|http://directory.fsf.org/wiki/Libgsf|{{Pkg|libgsf}}}}<br />
<br />
{{Tip|Thunar에서 {{ic|mtp}} 또는 {{ic|smb}} 서비스에 접근하는 추가적인 기능은 [[GVFS]]를 참고한다. [[File manager functionality]]에서도 자세한 정보를 확인할 수 있다.}}<br />
<br />
== Thunar Volume Manager ==<br />
<br />
Thunar에서 이동식 장치들에 대한 자동 마운트/마운트해제를 지원할 수 있지만 마운트/마운트해제 시 자동 명령어 실행과 마운트된 장치의 위치에서 새로운 창 열기 등의 확장기능들은 Thunar Volume Manager가 필요하다. <br />
<br />
=== 설치 ===<br />
<br />
Thunar Volume Manager는 공식 저장소에서 {{Pkg|thunar-volman}}로 설치할 수 있다.<br />
<br />
{{Tip|Thunar에서 자동 마운트 처리를 위해 반드시 인스턴스 하나는 데몬 모드로 실행되어야 한다. [[#Starting in daemon mode]] }}<br />
<br />
=== 설정 ===<br />
<br />
카메라나 오디오 플레이어가 연결되었을 때 특정 동작이 실행되도록 설정할 수 있다.<br />
플러그인 설치 후에:<br />
# Thunar를 실행하여 ''Edit > Preferences''로 들어간다.<br />
# 'Advanced' 탭에서 'Enable Volume Management'를 체크한다.<br />
# 'Configure'를 클릭한 후에 아래의 항목들을 체크한다.<br />
#* Mount removable drives when hot-plugged.<br />
#* Mount removable media when inserted.<br />
# 원한다면 추가적인 변경을 한다. (아래 참고)<br />
다음은 Amarok 미디어 플레이어가 오디오 CD를 재생하도록 하는 예제이다.<br />
Multimedia - Audio CDs: {{ic|amarok --cdplay %d}}<br />
<br />
== 유용한 팁 ==<br />
<br />
=== 대용량의 외장 하드디스크 자동으로 마운트 ===<br />
만약 tunar-volman과 gvfs가 설치되어 있는 환경에도 불구하고 크기가 1TB가 넘는 대용량의 휴대용 장치의 마운트에 실패했다면 {{Pkg|udevil}}나 {{Pkg|udiskie}}와 같은 다른 마운트 프로그램을 시도해본다. ''udiskie''는 udisks2를 사용하여 gvfs와 호환되므로 권장된다. udisks2 지원을 활성화하면서 udiskie를 실행하려면 autostart 파일에 아래 라인을 추가한다.<br />
<br />
udiskie -2 &<br />
<br />
=== 원격 위치 탐색 ===<br />
<br />
Xfce 4.8 (Thunar 1.2) 이후 FTP 서버나 Samba 공유서버와 같은 원격 위치에서도 탐색이 가능하다. 원격 위치 탐색 기능을 활성화하기 위해서는 반드시 {{Pkg|gvfs}}와 {{Pkg|gvfs-smb}}, {{Pkg|sshfs}}가 설치되어 있어야 한다. 'Network' 항목이 Thunar의 측면 영역에 보이고 Thunar 주소창(단축키 {{ic|Ctrl+l}})에 'smb://,ftp://, ssh://, sftp://, davs:// + 호스트이름 또는 IP 주소'와 같은 URI 스키마를 사용하여 원격 위치를 열 수 있다.<br />
<br />
[[NFS]](네트워크 파일시스템 공유)를 위한 URI스키마는 없으나 [[fstab]]을 올바르게 설정했다면 {{ic|mount}} 명령어를 사용할 수 있다.<br />
{{hc|/etc/fstab|<br />
# nas1 server<br />
nas1:/c/home /media/nas1/home nfs noauto,user,_netdev,bg 0 0}}<br />
<br />
여기서 중요한 부분은 옵션 부분이다. {{ic|noauto}} 옵션은 사용자가 Thunar에서 직접 클릭하기 전까지 마운트되는 것을 방지한다. {{ic|user}} 옵션은 모든 사용자에게 공유폴더에 대한 마운트, 마운트해제를 허용하고 {{ic|_netdev}} 옵션은 네트워크 연결이 필수 조건이라는 것을 명시한다. 마지막으로 {{ic|bg}} 옵션은 마운트 동작을 백그라운드에서 수행하게 한다. 서버의 스핀업 타임으로 타임아웃이 돼서 마운트하기 위해 사용자가 다시 클릭해야하는 경우가 생기는데, 마운트 동작을 백그라운드에서 수행하게 함으로써 이를 방지한다.<br />
<br />
{{Tip|원격 파일시스템 위치에 대한 보안키를 영구적으로 저장하려면 [[GNOME Keyring]]을 설치한다.}}<br />
<br />
=== 데몬 모드로 실행하기 ===<br />
<br />
Thunar는 데몬 모드로 실행할 수 있다. 데몬 모드로 실행하면 초기 실행이 더 빨라지고 백그라운드에서 동작하는 인스턴스와 필요시에 열리는 윈도우 관련 인스턴스(예. 플래시 드라이브 삽입 시에 열리는 thunar 창) 등 필요한 인스턴스만 사용하게 되며 이동식 디스크에 대한 마운트 동작을 Thunar에서 자동으로 처리하도록 하는 장점이 있다.<br />
<br />
로그인 시 {{ic|thunar --daemon}} 명령어가 자동으로 실행되도록 한다.자세한 것은 [[Xfce]]와 [[Autostarting]]을 참고한다.<br />
<br />
=== 프로그램 로드 시 성능 저하 문제 ===<br />
<br />
몇몇 유저들은 Thunar 최초 실행 시에 프로그램이 시작되기까지의 시간이 너무 오래 소요되는 문제를 겪는다. 이러한 문제는 네트워크를 확인하는 gvfs가 원인으로서 gvfs가 수행중인 동작을 마칠 때까지 Thunar가 시작되지 못하도록 하기 때문이다. 이러한 문제를 해결하기 위해서는 {{ic|/usr/share/gvfs/mounts/network.mount}}에서 '''AutoMount=true''' 부분을 '''AutoMount=false'''로 변경한다.<br />
<br />
=== 좌측의 바로가기 항목 변경 ===<br />
<br />
좌측의 바로가기 영역에 숨겨진 메뉴가 있다. <br />
<br />
DEVICES, PLACES라고 표시된 카테고리 레이블에 대고 오른쪽 마우스를 클릭하면 표시할 아이템을 선택할 수 있는 팝업 메뉴가 나타난다.<br />
<br />
=== 키보드 단축키 설정하기 ===<br />
<br />
[[GTK+#Keyboard shortcuts]] 참고.<br />
<br />
=== fstab에 정의되어 있는 파티션 보이게 하기 ===<br />
<br />
Thunar는 루트 파티션 외에 {{ic|/etc/fstab}}에 정의된 파티션들은 기본적으로 보여주지 않는다. <br />
<br />
이 때, fstab에 '''comment=x-gvfs-show''' 옵션을 추가하면 사용자가 원하는 파티션을 보이도록 설정할 수 있다.<br />
<br />
== 사용자 정의 동작 ==<br />
<br />
본 절은 사용자 정의 동작 설정을 설명하고 {{ic|Edit -> Configure custom actions}}에서 설정이 가능하다. 설정한 내용은 {{ic|~/.config/Thunar/uca.xml}} 파일에 저장된다. 관련 예제는 [http://docs.xfce.org/xfce/thunar/custom-actions thunar wiki]에 많이 정리되어 있으니 참고하기 바란다. [http://duncanlock.net/blog/2013/06/28/useful-thunar-custom-actions/ this] 블로그에도 관련된 다양한 콜렉션들을 제공한다. <br />
<br />
=== 파일, 디렉토리 검색 ===<br />
<br />
검색기능을 사용하기 위해서는 {{Pkg|catfish}}가 설치되어야 한다. 선택 의존 패키지 {{Pkg|mlocate}}도 반드시 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Search<br />
| {{ic|1=catfish --path=%f}} || * || Directories<br />
|}<br />
<br />
=== 바이러스 검색 ===<br />
<br />
바이러스 검색 기능을 위해서는 {{Pkg|clamav}}, {{AUR|clamtk}}을 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Scan for virus<br />
| {{ic|clamtk %F}} || * || Select all<br />
|}<br />
<br />
=== 드롭박스 연결 ===<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Link to Dropbox<br />
| {{ic|ln -s %f /path/to/DropboxFolder}} || * || Directories, other files<br />
|}<br />
<br />
파일과 폴더를 특정 위치로 사용자 정의 동작을 이용하여 심볼릭 링크를 만드려고 하는 경우가 있다. 하지만 해당 동작들이 많아지는 경우, 메뉴 자체에 항목이 엄청나게 늘어날 수 있는데 이러한 경우 {{ic|Send To}} 폴더를 이용하는 편이 유용하다. {{ic|~/.local/share/Thunar/sendto}} 폴더 내에 .desktop 파일을 만들고 수행하고자 하는 사용자 정의 동작을 파일에 정의한다. 만약에 Dropbox 폴더에 심볼릭 링크를 만들고자 한다면 다음과 같은 내용으로 dropbox_folder.desktop 파일을 생성하여 SendTo 메뉴에 새로운 항목을 추가할 수 있다. 이 때, 설정 적용을 위해 반드시 Thunar를 재시작해야 한다.<br />
<br />
{{bc|<nowiki><br />
[Desktop Entry]<br />
Type=Application<br />
Version=1.0<br />
Encoding=UTF-8<br />
Exec=ln -s %f /path/to/DropboxFolder<br />
Icon=/usr/share/icons/dropbox.png<br />
Name=Dropbox<br />
</nowiki>}}<br />
<br />
== 문제 해결 ==<br />
<br />
=== Tumblerd 서비스가 멈추고 CPU 사용량이 많아지는 문제 ===<br />
<br />
파일시스템 감시와 시스템 알림 서비스 Tumblerd는 썸네일이 필요할 때 무한루프에 빠져 시스템의 프로세서를 100프로 사용하게 되는 버그가 있다. ([https://bugzilla.xfce.org/show_bug.cgi?id=7384 bug report]). 아래의 코드는 임시 해결방법으로 무한루프를 실행하는 것을 멈추는 스크립트이다. 홈 디렉토리에 ''.sh''파일로 저장 후 실행권한을 추가한 뒤 시스템 시작 시에 스크립트가 실행되도록 설정한다.<br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
period=20<br />
tumblerpath="/usr/lib/*/tumbler-1/tumblerd" # The * here should find the right one, whether 32 and 64-bit<br />
cpu_threshold=50<br />
mem_threshold=20<br />
max_strikes=2 # max number of above cpu/mem-threshold's in a row<br />
log="/tmp/tumblerd-watcher.log"<br />
<br />
if [[ -n "${log}" ]]; then<br />
cat /dev/null > "${log}"<br />
exec >"${log}" 2>&1<br />
fi<br />
<br />
<br />
strikes=0<br />
while sleep "${period}"; do<br />
while read pid; do<br />
cpu_usage=$(ps --no-headers -o pcpu -f "${pid}"|cut -f1 -d.)<br />
mem_usage=$(ps --no-headers -o pmem -f "${pid}"|cut -f1 -d.)<br />
<br />
if [[ $cpu_usage -gt $cpu_threshold ]] || [[ $mem_usage -gt $mem_threshold ]]; then<br />
echo "$(date +"%F %T") PID: $pid CPU: $cpu_usage/$cpu_threshold %cpu MEM: $mem_usage/$mem_threshold STRIKES: ${strikes} NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
(( strikes++ ))<br />
if [[ ${strikes} -ge ${max_strikes} ]]; then<br />
kill "${pid}"<br />
echo "$(date +"%F %T") PID: $pid KILLED; NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
strikes=0<br />
fi<br />
else<br />
strikes=0<br />
fi<br />
done < <(pgrep -f ${tumblerpath})<br />
done<br />
</nowiki>}}<br />
<br />
=== 수시로 Trash/network 아이콘이 사라지는 문제 ===<br />
<br />
Thunar 인스턴스가 ''gvfs''이후에 실행되도록 한다. [https://bugs.launchpad.net/ubuntu/+source/thunar/+bug/1057610] {{ic|thunar --daemon}}를 사용하는 경우에는 GVFS가 활성화될 때까지 기다리는 wrapper를 생성할 수 있다. (아래 코드 참고)<br />
<br />
{{Note|반드시 {{ic|$PATH}}에서 {{ic|/usr/local/bin}}가 {{ic|/usr/bin}}이전에 위치해야 한다.}}<br />
<br />
{{hc|/usr/local/bin/Thunar|<nowiki><br />
#!/bin/bash<br />
if [[ $1 == --daemon ]]; then<br />
until pgrep gvfs >/dev/null; do<br />
sleep 1<br />
done<br />
exec /usr/bin/Thunar "$@"<br />
else<br />
exec /usr/bin/Thunar "$@"<br />
fi<br />
</nowiki>}}<br />
<br />
=== Not authenticated to mount filesystems ===<br />
<br />
[[File manager functionality#Troubleshooting]] 참고.<br />
<br />
== 출처 ==<br />
<br />
* [http://docs.xfce.org/xfce/thunar/start Thunar] project page<br />
* [http://goodies.xfce.org/projects/thunar-plugins/thunar-volman Thunar Volume Manager] project page<br />
* This [http://goodies.xfce.org/projects/thunar-plugins/start list] of plugins</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Thunar_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442532Thunar (한국어)2016-07-23T14:35:12Z<p>Sukbeom: /* 설치 */</p>
<hr />
<div>[[Category:File managers (한국어)]]<br />
[[ar:Thunar]]<br />
[[en:Thunar]]<br />
[[es:Thunar]]<br />
[[fr:Thunar]]<br />
[[it:Thunar]]<br />
[[ja:Thunar]]<br />
[[pl:Thunar]]<br />
[[ru:Thunar]]<br />
[[zh-cn:Thunar]]<br />
{{Related articles start}}<br />
{{Related|Xfce}}<br />
{{Related|File manager functionality}}<br />
{{Related|GNOME Files}}<br />
{{Related|PCManFM}}<br />
{{Related|Nemo}}<br />
{{Related articles end}}<br />
<br />
Xfce 프로젝트 [http://docs.xfce.org/xfce/thunar/start 홈페이지] 출처 :<br />
: ''Thunar는 Xfce 데스크탑 환경용 최신 파일 관리자이다. Thunar는 빠른 속도와 편리한 사용을 위해 철저하게 설계되었으며 때문에 Thunar에서 제공되는 사용자 인터페이스는 깔끔하고 직관적이며 어지럽고 쓸모없는 옵션들은 포함하지 않는다. Thunar는 빠른속도와 초기 실행시간, 디렉토리 로딩에서도 좋은 반응성을 보여준다.''<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|thunar}} 패키지를 [[설치]]한다. {{Pkg|thunar}}는 {{Grp|xfce4}} 패키지 그룹의 하나이기 때문에 [[Xfce]]를 사용 중이라면 시스템에 이미 설치되어 있을 것이다.<br />
<br />
=== 플러그인과 추가기능 ===<br />
<br />
* {{App|Thunar Archive Plugin|컨텍스트 메뉴 아이템을 이용하여 파일압축 및 압축해제를 제공하는 플러그인이다. File Roller({{Pkg|file-roller}})나 Ark({{Pkg|ark}}), Xarchiver({{Pkg|xarchiver}}) 등의 타 압축프로그램들의 프론트엔드로서 자체적으로 압축관련기능을 제공하지 않는다. 해당 플러그인은 {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin|{{Pkg|thunar-archive-plugin}}}}<br />
* {{App|Thunar Media Tags Plugin|미디어 파일에 대한 자세한 정보를 제공한다. Bulk rename 기능(한번에 다수의 파일 이름을 변경하는 기능: [http://docs.xfce.org/xfce/thunar/bulk-renamer/start xfce 문서] 참조)과 미디어 태그 편집 기능을 제공하며 ID3(MP3 파일 포맷 시스템)와 Ogg/Vorbis 태그를 제공한다. {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin|{{Pkg|thunar-media-tags-plugin}}}}<br />
* {{App|Thunar Shares Plugin|루트의 접근권한 요청 없이 사용자가 Samba를 사용하는 디렉토리를 빠르게 공유할 수 있도록 해준다. Samba 설정 관련은 다음 문서ᅟ를 참고한다: [[Samba#Creating usershare path|how to configure directions]].|http://goodies.xfce.org/projects/thunar-plugins/thunar-shares-plugin|{{AUR|thunar-shares-plugin}}}}<br />
* {{App|[[ #Thunar Volume Manager|Thunar Volume Manager]]|Thunar에서 이동식 장치을 자동으로 관리하며 {{Grp|xfce4}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-volman|{{Pkg|thunar-volman}}}}<br />
* {{App|Tumbler|파일 썸네일을 생성하기 위한 외부 프로그램. 비디오 파일의 썸네일은 {{Pkg|ffmpegthumbnailer}}를 설치해야 한다.|http://git.xfce.org/xfce/tumbler/tree/README|{{Pkg|tumbler}}}}<br />
* {{App|RAW Thumbnailer|RAW 이미지 파일의 썸네일을 지원하고 저용량이며 빠르다.|https://code.google.com/p/raw-thumbnailer/|{{Pkg|raw-thumbnailer}}}}<br />
* {{App|libgsf|odf 포맷과 같이 구조화 파일 포맷을 읽고 쓰기 위해 필요한 유틸리티 라이브러리. odf 썸네일을 원할 때에 본 라이브러리를 설치해야 한다.|http://directory.fsf.org/wiki/Libgsf|{{Pkg|libgsf}}}}<br />
<br />
{{Tip|Thunar에서 {{ic|mtp}} 또는 {{ic|smb}} 서비스에 접근하는 추가적인 기능은 [[GVFS]]를 참고한다. [[File manager functionality]]에서도 자세한 정보를 확인할 수 있다.}}<br />
<br />
== Thunar Volume Manager ==<br />
<br />
Thunar에서 이동식 장치들에 대한 자동 마운트/마운트해제를 지원할 수 있지만 마운트/마운트해제 시 자동 명령어 실행과 마운트된 장치의 위치에서 새로운 창 열기 등의 확장기능들은 Thunar Volume Manager가 필요하다. <br />
<br />
=== 설치 ===<br />
<br />
Thunar Volume Manager는 공식 저장소에서 {{Pkg|thunar-volman}}로 설치할 수 있다.<br />
<br />
{{Tip|Thunar에서 자동 마운트 처리를 위해 반드시 인스턴스 하나는 데몬 모드로 실행되어야 한다. [[#Starting in daemon mode]] }}<br />
<br />
=== 설정 ===<br />
<br />
카메라나 오디오 플레이어가 연결되었을 때 특정 동작이 실행되도록 설정할 수 있다.<br />
플러그인 설치 후에:<br />
# Thunar를 실행하여 ''Edit > Preferences''로 들어간다.<br />
# 'Advanced' 탭에서 'Enable Volume Management'를 체크한다.<br />
# 'Configure'를 클릭한 후에 아래의 항목들을 체크한다.<br />
#* Mount removable drives when hot-plugged.<br />
#* Mount removable media when inserted.<br />
# 원한다면 추가적인 변경을 한다. (아래 참고)<br />
다음은 Amarok 미디어 플레이어가 오디오 CD를 재생하도록 하는 예제이다.<br />
Multimedia - Audio CDs: {{ic|amarok --cdplay %d}}<br />
<br />
== 유용한 팁 ==<br />
<br />
=== 대용량의 외장 하드디스크 자동으로 마운트 ===<br />
만약 tunar-volman과 gvfs가 설치되어 있는 환경에도 불구하고 크기가 1TB가 넘는 대용량의 휴대용 장치의 마운트에 실패했다면 {{Pkg|udevil}}나 {{Pkg|udiskie}}와 같은 다른 마운트 프로그램을 시도해본다. ''udiskie''는 udisks2를 사용하여 gvfs와 호환되므로 권장된다. udisks2 지원을 활성화하면서 udiskie를 실행하려면 autostart 파일에 아래 라인을 추가한다.<br />
<br />
udiskie -2 &<br />
<br />
=== 원격 위치 탐색 ===<br />
<br />
Xfce 4.8 (Thunar 1.2) 이후 FTP 서버나 Samba 공유서버와 같은 원격 위치에서도 탐색이 가능하다. 원격 위치 탐색 기능을 활성화하기 위해서는 반드시 {{Pkg|gvfs}}와 {{Pkg|gvfs-smb}}, {{Pkg|sshfs}}가 설치되어 있어야 한다. 'Network' 항목이 Thunar의 측면 영역에 보이고 Thunar 주소창(단축키 {{ic|Ctrl+l}})에 'smb://,ftp://, ssh://, sftp://, davs:// + 호스트이름 또는 IP 주소'와 같은 URI 스키마를 사용하여 원격 위치를 열 수 있다.<br />
<br />
[[NFS]](네트워크 파일시스템 공유)를 위한 URI스키마는 없으나 [[fstab]]을 올바르게 설정했다면 {{ic|mount}} 명령어를 사용할 수 있다.<br />
{{hc|/etc/fstab|<br />
# nas1 server<br />
nas1:/c/home /media/nas1/home nfs noauto,user,_netdev,bg 0 0}}<br />
<br />
여기서 중요한 부분은 옵션 부분이다. {{ic|noauto}} 옵션은 사용자가 Thunar에서 직접 클릭하기 전까지 마운트되는 것을 방지한다. {{ic|user}} 옵션은 모든 사용자에게 공유폴더에 대한 마운트, 마운트해제를 허용하고 {{ic|_netdev}} 옵션은 네트워크 연결이 필수 조건이라는 것을 명시한다. 마지막으로 {{ic|bg}} 옵션은 마운트 동작을 백그라운드에서 수행하게 한다. 서버의 스핀업 타임으로 타임아웃이 돼서 마운트하기 위해 사용자가 다시 클릭해야하는 경우가 생기는데, 마운트 동작을 백그라운드에서 수행하게 함으로써 이를 방지한다.<br />
<br />
{{Tip|원격 파일시스템 위치에 대한 보안키를 영구적으로 저장하려면 [[GNOME Keyring]]을 설치한다.}}<br />
<br />
=== 데몬 모드로 실행하기 ===<br />
<br />
Thunar는 데몬 모드로 실행할 수 있다. 데몬 모드로 실행하면 초기 실행이 더 빨라지고 백그라운드에서 동작하는 인스턴스와 필요시에 열리는 윈도우 관련 인스턴스(예. 플래시 드라이브 삽입 시에 열리는 thunar 창) 등 필요한 인스턴스만 사용하게 되며 이동식 디스크에 대한 마운트 동작을 Thunar에서 자동으로 처리하도록 하는 장점이 있다.<br />
<br />
로그인 시 {{ic|thunar --daemon}} 명령어가 자동으로 실행되도록 한다.자세한 것은 [[Xfce]]와 [[Autostarting]]을 참고한다.<br />
<br />
=== 프로그램 로드 시 성능 저하 문제 ===<br />
<br />
몇몇 유저들은 Thunar 최초 실행 시에 프로그램이 시작되기까지의 시간이 너무 오래 소요되는 문제를 겪는다. 이러한 문제는 네트워크를 확인하는 gvfs가 원인으로서 gvfs가 수행중인 동작을 마칠 때까지 Thunar가 시작되지 못하도록 하기 때문이다. 이러한 문제를 해결하기 위해서는 {{ic|/usr/share/gvfs/mounts/network.mount}}에서 '''AutoMount=true''' 부분을 '''AutoMount=false'''로 변경한다.<br />
<br />
=== 좌측의 바로가기 항목 변경 ===<br />
<br />
좌측의 바로가기 영역에 숨겨진 메뉴가 있다. <br />
<br />
DEVICES, PLACES라고 표시된 카테고리 레이블에 대고 오른쪽 마우스를 클릭하면 표시할 아이템을 선택할 수 있는 팝업 메뉴가 나타난다.<br />
<br />
=== 키보드 단축키 설정하기 ===<br />
<br />
[[GTK+#Keyboard shortcuts]] 참고.<br />
<br />
=== fstab에 정의되어 있는 파티션 보이게 하기 ===<br />
<br />
Thunar는 루트 파티션 외에 {{ic|/etc/fstab}}에 정의된 파티션들은 기본적으로 보여주지 않는다. <br />
<br />
이 때, fstab에 '''comment=x-gvfs-show''' 옵션을 추가하면 사용자가 원하는 파티션을 보이도록 설정할 수 있다.<br />
<br />
== 사용자 정의 동작 ==<br />
<br />
본 절은 사용자 정의 동작 설정을 설명하고 {{ic|Edit -> Configure custom actions}}에서 설정이 가능하다. 설정한 내용은 {{ic|~/.config/Thunar/uca.xml}} 파일에 저장된다. 관련 예제는 [http://docs.xfce.org/xfce/thunar/custom-actions thunar wiki]에 많이 정리되어 있으니 참고하기 바란다. [http://duncanlock.net/blog/2013/06/28/useful-thunar-custom-actions/ this] 블로그에도 관련된 다양한 콜렉션들을 제공한다. <br />
<br />
=== 파일, 디렉토리 검색 ===<br />
<br />
검색기능을 사용하기 위해서는 {{Pkg|catfish}}가 설치되어야 한다. 선택 의존 패키지 {{Pkg|mlocate}}도 반드시 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Search<br />
| {{ic|1=catfish --path=%f}} || * || Directories<br />
|}<br />
<br />
=== 바이러스 검색 ===<br />
<br />
바이러스 검색 기능을 위해서는 {{Pkg|clamav}}, {{AUR|clamtk}}을 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Scan for virus<br />
| {{ic|clamtk %F}} || * || Select all<br />
|}<br />
<br />
=== 드롭박스 연결 ===<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Link to Dropbox<br />
| {{ic|ln -s %f /path/to/DropboxFolder}} || * || Directories, other files<br />
|}<br />
<br />
파일과 폴더를 특정 위치로 사용자 정의 동작을 이용하여 심볼릭 링크를 만드려고 하는 경우가 있다. 하지만 해당 동작들이 많아지는 경우, 메뉴 자체에 항목이 엄청나게 늘어날 수 있는데 이러한 경우 {{ic|Send To}} 폴더를 이용하는 편이 유용하다. {{ic|~/.local/share/Thunar/sendto}} 폴더 내에 .desktop 파일을 만들고 수행하고자 하는 사용자 정의 동작을 파일에 정의한다. 만약에 Dropbox 폴더에 심볼릭 링크를 만들고자 한다면 다음과 같은 내용으로 dropbox_folder.desktop 파일을 생성하여 SendTo 메뉴에 새로운 항목을 추가할 수 있다. 이 때, 설정 적용을 위해 반드시 Thunar를 재시작해야 한다.<br />
<br />
{{bc|<nowiki><br />
[Desktop Entry]<br />
Type=Application<br />
Version=1.0<br />
Encoding=UTF-8<br />
Exec=ln -s %f /path/to/DropboxFolder<br />
Icon=/usr/share/icons/dropbox.png<br />
Name=Dropbox<br />
</nowiki>}}<br />
<br />
== 문제 해결 ==<br />
<br />
=== Tumblerd 서비스가 멈추고 CPU 사용량이 많아지는 문제 ===<br />
<br />
파일시스템 감시와 시스템 알림 서비스 Tumblerd는 썸네일이 필요할 때 무한루프에 빠져 시스템의 프로세서를 100프로 사용하게 되는 버그가 있다. ([https://bugzilla.xfce.org/show_bug.cgi?id=7384 bug report]). 아래의 코드는 임시 해결방법으로 무한루프를 실행하는 것을 멈추는 스크립트이다. 홈 디렉토리에 ''.sh''파일로 저장 후 실행권한을 추가한 뒤 시스템 시작 시에 스크립트가 실행되도록 설정한다.<br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
period=20<br />
tumblerpath="/usr/lib/*/tumbler-1/tumblerd" # The * here should find the right one, whether 32 and 64-bit<br />
cpu_threshold=50<br />
mem_threshold=20<br />
max_strikes=2 # max number of above cpu/mem-threshold's in a row<br />
log="/tmp/tumblerd-watcher.log"<br />
<br />
if [[ -n "${log}" ]]; then<br />
cat /dev/null > "${log}"<br />
exec >"${log}" 2>&1<br />
fi<br />
<br />
<br />
strikes=0<br />
while sleep "${period}"; do<br />
while read pid; do<br />
cpu_usage=$(ps --no-headers -o pcpu -f "${pid}"|cut -f1 -d.)<br />
mem_usage=$(ps --no-headers -o pmem -f "${pid}"|cut -f1 -d.)<br />
<br />
if [[ $cpu_usage -gt $cpu_threshold ]] || [[ $mem_usage -gt $mem_threshold ]]; then<br />
echo "$(date +"%F %T") PID: $pid CPU: $cpu_usage/$cpu_threshold %cpu MEM: $mem_usage/$mem_threshold STRIKES: ${strikes} NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
(( strikes++ ))<br />
if [[ ${strikes} -ge ${max_strikes} ]]; then<br />
kill "${pid}"<br />
echo "$(date +"%F %T") PID: $pid KILLED; NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
strikes=0<br />
fi<br />
else<br />
strikes=0<br />
fi<br />
done < <(pgrep -f ${tumblerpath})<br />
done<br />
</nowiki>}}<br />
<br />
=== 수시로 Trash/network 아이콘이 사라지는 문제 ===<br />
<br />
Thunar 인스턴스가 ''gvfs''이후에 실행되도록 한다. [https://bugs.launchpad.net/ubuntu/+source/thunar/+bug/1057610] {{ic|thunar --daemon}}를 사용하는 경우에는 GVFS가 활성화될 때까지 기다리는 wrapper를 생성할 수 있다. (아래 코드 참고)<br />
<br />
{{Note|반드시 {{ic|$PATH}}에서 {{ic|/usr/local/bin}}가 {{ic|/usr/bin}}이전에 위치해야 한다.}}<br />
<br />
{{hc|/usr/local/bin/Thunar|<nowiki><br />
#!/bin/bash<br />
if [[ $1 == --daemon ]]; then<br />
until pgrep gvfs >/dev/null; do<br />
sleep 1<br />
done<br />
exec /usr/bin/Thunar "$@"<br />
else<br />
exec /usr/bin/Thunar "$@"<br />
fi<br />
</nowiki>}}<br />
<br />
=== Not authenticated to mount filesystems ===<br />
<br />
[[File manager functionality#Troubleshooting]] 참고.<br />
<br />
== 출처 ==<br />
<br />
* [http://docs.xfce.org/xfce/thunar/start Thunar] project page<br />
* [http://goodies.xfce.org/projects/thunar-plugins/thunar-volman Thunar Volume Manager] project page<br />
* This [http://goodies.xfce.org/projects/thunar-plugins/start list] of plugins</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Thunar_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442531Thunar (한국어)2016-07-23T14:34:18Z<p>Sukbeom: /* Tumblerd 서비스가 멈추고 CPU 사용량이 많아지는 문제 */</p>
<hr />
<div>[[Category:File managers (한국어)]]<br />
[[ar:Thunar]]<br />
[[en:Thunar]]<br />
[[es:Thunar]]<br />
[[fr:Thunar]]<br />
[[it:Thunar]]<br />
[[ja:Thunar]]<br />
[[pl:Thunar]]<br />
[[ru:Thunar]]<br />
[[zh-cn:Thunar]]<br />
{{Related articles start}}<br />
{{Related|Xfce}}<br />
{{Related|File manager functionality}}<br />
{{Related|GNOME Files}}<br />
{{Related|PCManFM}}<br />
{{Related|Nemo}}<br />
{{Related articles end}}<br />
<br />
Xfce 프로젝트 [http://docs.xfce.org/xfce/thunar/start 홈페이지] 출처 :<br />
: ''Thunar는 Xfce 데스크탑 환경용 최신 파일 관리자이다. Thunar는 빠른 속도와 편리한 사용을 위해 철저하게 설계되었으며 때문에 Thunar에서 제공되는 사용자 인터페이스는 깔끔하고 직관적이며 어지럽고 쓸모없는 옵션들은 포함하지 않는다. Thunar는 빠른속도와 초기 실행시간, 디렉토리 로딩에서도 좋은 반응성을 보여준다.''<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|thunar}} 패키지를 [[설치]]한다. {{Pkg|thunar}}는 {{Grp|xfce4}} 패키지 그룹의 하나이기 때문에 [[Xfce]]를 사용 중이라면 시스템에 Thunar가 설치되어 있을 것이다.<br />
<br />
=== 플러그인과 추가기능 ===<br />
<br />
* {{App|Thunar Archive Plugin|컨텍스트 메뉴 아이템을 이용하여 파일압축 및 압축해제를 제공하는 플러그인이다. File Roller({{Pkg|file-roller}})나 Ark({{Pkg|ark}}), Xarchiver({{Pkg|xarchiver}}) 등의 타 압축프로그램들의 프론트엔드로서 자체적으로 압축관련기능을 제공하지 않는다. 해당 플러그인은 {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin|{{Pkg|thunar-archive-plugin}}}}<br />
* {{App|Thunar Media Tags Plugin|미디어 파일에 대한 자세한 정보를 제공한다. Bulk rename 기능(한번에 다수의 파일 이름을 변경하는 기능: [http://docs.xfce.org/xfce/thunar/bulk-renamer/start xfce 문서] 참조)과 미디어 태그 편집 기능을 제공하며 ID3(MP3 파일 포맷 시스템)와 Ogg/Vorbis 태그를 제공한다. {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin|{{Pkg|thunar-media-tags-plugin}}}}<br />
* {{App|Thunar Shares Plugin|루트의 접근권한 요청 없이 사용자가 Samba를 사용하는 디렉토리를 빠르게 공유할 수 있도록 해준다. Samba 설정 관련은 다음 문서ᅟ를 참고한다: [[Samba#Creating usershare path|how to configure directions]].|http://goodies.xfce.org/projects/thunar-plugins/thunar-shares-plugin|{{AUR|thunar-shares-plugin}}}}<br />
* {{App|[[ #Thunar Volume Manager|Thunar Volume Manager]]|Thunar에서 이동식 장치을 자동으로 관리하며 {{Grp|xfce4}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-volman|{{Pkg|thunar-volman}}}}<br />
* {{App|Tumbler|파일 썸네일을 생성하기 위한 외부 프로그램. 비디오 파일의 썸네일은 {{Pkg|ffmpegthumbnailer}}를 설치해야 한다.|http://git.xfce.org/xfce/tumbler/tree/README|{{Pkg|tumbler}}}}<br />
* {{App|RAW Thumbnailer|RAW 이미지 파일의 썸네일을 지원하고 저용량이며 빠르다.|https://code.google.com/p/raw-thumbnailer/|{{Pkg|raw-thumbnailer}}}}<br />
* {{App|libgsf|odf 포맷과 같이 구조화 파일 포맷을 읽고 쓰기 위해 필요한 유틸리티 라이브러리. odf 썸네일을 원할 때에 본 라이브러리를 설치해야 한다.|http://directory.fsf.org/wiki/Libgsf|{{Pkg|libgsf}}}}<br />
<br />
{{Tip|Thunar에서 {{ic|mtp}} 또는 {{ic|smb}} 서비스에 접근하는 추가적인 기능은 [[GVFS]]를 참고한다. [[File manager functionality]]에서도 자세한 정보를 확인할 수 있다.}}<br />
<br />
== Thunar Volume Manager ==<br />
<br />
Thunar에서 이동식 장치들에 대한 자동 마운트/마운트해제를 지원할 수 있지만 마운트/마운트해제 시 자동 명령어 실행과 마운트된 장치의 위치에서 새로운 창 열기 등의 확장기능들은 Thunar Volume Manager가 필요하다. <br />
<br />
=== 설치 ===<br />
<br />
Thunar Volume Manager는 공식 저장소에서 {{Pkg|thunar-volman}}로 설치할 수 있다.<br />
<br />
{{Tip|Thunar에서 자동 마운트 처리를 위해 반드시 인스턴스 하나는 데몬 모드로 실행되어야 한다. [[#Starting in daemon mode]] }}<br />
<br />
=== 설정 ===<br />
<br />
카메라나 오디오 플레이어가 연결되었을 때 특정 동작이 실행되도록 설정할 수 있다.<br />
플러그인 설치 후에:<br />
# Thunar를 실행하여 ''Edit > Preferences''로 들어간다.<br />
# 'Advanced' 탭에서 'Enable Volume Management'를 체크한다.<br />
# 'Configure'를 클릭한 후에 아래의 항목들을 체크한다.<br />
#* Mount removable drives when hot-plugged.<br />
#* Mount removable media when inserted.<br />
# 원한다면 추가적인 변경을 한다. (아래 참고)<br />
다음은 Amarok 미디어 플레이어가 오디오 CD를 재생하도록 하는 예제이다.<br />
Multimedia - Audio CDs: {{ic|amarok --cdplay %d}}<br />
<br />
== 유용한 팁 ==<br />
<br />
=== 대용량의 외장 하드디스크 자동으로 마운트 ===<br />
만약 tunar-volman과 gvfs가 설치되어 있는 환경에도 불구하고 크기가 1TB가 넘는 대용량의 휴대용 장치의 마운트에 실패했다면 {{Pkg|udevil}}나 {{Pkg|udiskie}}와 같은 다른 마운트 프로그램을 시도해본다. ''udiskie''는 udisks2를 사용하여 gvfs와 호환되므로 권장된다. udisks2 지원을 활성화하면서 udiskie를 실행하려면 autostart 파일에 아래 라인을 추가한다.<br />
<br />
udiskie -2 &<br />
<br />
=== 원격 위치 탐색 ===<br />
<br />
Xfce 4.8 (Thunar 1.2) 이후 FTP 서버나 Samba 공유서버와 같은 원격 위치에서도 탐색이 가능하다. 원격 위치 탐색 기능을 활성화하기 위해서는 반드시 {{Pkg|gvfs}}와 {{Pkg|gvfs-smb}}, {{Pkg|sshfs}}가 설치되어 있어야 한다. 'Network' 항목이 Thunar의 측면 영역에 보이고 Thunar 주소창(단축키 {{ic|Ctrl+l}})에 'smb://,ftp://, ssh://, sftp://, davs:// + 호스트이름 또는 IP 주소'와 같은 URI 스키마를 사용하여 원격 위치를 열 수 있다.<br />
<br />
[[NFS]](네트워크 파일시스템 공유)를 위한 URI스키마는 없으나 [[fstab]]을 올바르게 설정했다면 {{ic|mount}} 명령어를 사용할 수 있다.<br />
{{hc|/etc/fstab|<br />
# nas1 server<br />
nas1:/c/home /media/nas1/home nfs noauto,user,_netdev,bg 0 0}}<br />
<br />
여기서 중요한 부분은 옵션 부분이다. {{ic|noauto}} 옵션은 사용자가 Thunar에서 직접 클릭하기 전까지 마운트되는 것을 방지한다. {{ic|user}} 옵션은 모든 사용자에게 공유폴더에 대한 마운트, 마운트해제를 허용하고 {{ic|_netdev}} 옵션은 네트워크 연결이 필수 조건이라는 것을 명시한다. 마지막으로 {{ic|bg}} 옵션은 마운트 동작을 백그라운드에서 수행하게 한다. 서버의 스핀업 타임으로 타임아웃이 돼서 마운트하기 위해 사용자가 다시 클릭해야하는 경우가 생기는데, 마운트 동작을 백그라운드에서 수행하게 함으로써 이를 방지한다.<br />
<br />
{{Tip|원격 파일시스템 위치에 대한 보안키를 영구적으로 저장하려면 [[GNOME Keyring]]을 설치한다.}}<br />
<br />
=== 데몬 모드로 실행하기 ===<br />
<br />
Thunar는 데몬 모드로 실행할 수 있다. 데몬 모드로 실행하면 초기 실행이 더 빨라지고 백그라운드에서 동작하는 인스턴스와 필요시에 열리는 윈도우 관련 인스턴스(예. 플래시 드라이브 삽입 시에 열리는 thunar 창) 등 필요한 인스턴스만 사용하게 되며 이동식 디스크에 대한 마운트 동작을 Thunar에서 자동으로 처리하도록 하는 장점이 있다.<br />
<br />
로그인 시 {{ic|thunar --daemon}} 명령어가 자동으로 실행되도록 한다.자세한 것은 [[Xfce]]와 [[Autostarting]]을 참고한다.<br />
<br />
=== 프로그램 로드 시 성능 저하 문제 ===<br />
<br />
몇몇 유저들은 Thunar 최초 실행 시에 프로그램이 시작되기까지의 시간이 너무 오래 소요되는 문제를 겪는다. 이러한 문제는 네트워크를 확인하는 gvfs가 원인으로서 gvfs가 수행중인 동작을 마칠 때까지 Thunar가 시작되지 못하도록 하기 때문이다. 이러한 문제를 해결하기 위해서는 {{ic|/usr/share/gvfs/mounts/network.mount}}에서 '''AutoMount=true''' 부분을 '''AutoMount=false'''로 변경한다.<br />
<br />
=== 좌측의 바로가기 항목 변경 ===<br />
<br />
좌측의 바로가기 영역에 숨겨진 메뉴가 있다. <br />
<br />
DEVICES, PLACES라고 표시된 카테고리 레이블에 대고 오른쪽 마우스를 클릭하면 표시할 아이템을 선택할 수 있는 팝업 메뉴가 나타난다.<br />
<br />
=== 키보드 단축키 설정하기 ===<br />
<br />
[[GTK+#Keyboard shortcuts]] 참고.<br />
<br />
=== fstab에 정의되어 있는 파티션 보이게 하기 ===<br />
<br />
Thunar는 루트 파티션 외에 {{ic|/etc/fstab}}에 정의된 파티션들은 기본적으로 보여주지 않는다. <br />
<br />
이 때, fstab에 '''comment=x-gvfs-show''' 옵션을 추가하면 사용자가 원하는 파티션을 보이도록 설정할 수 있다.<br />
<br />
== 사용자 정의 동작 ==<br />
<br />
본 절은 사용자 정의 동작 설정을 설명하고 {{ic|Edit -> Configure custom actions}}에서 설정이 가능하다. 설정한 내용은 {{ic|~/.config/Thunar/uca.xml}} 파일에 저장된다. 관련 예제는 [http://docs.xfce.org/xfce/thunar/custom-actions thunar wiki]에 많이 정리되어 있으니 참고하기 바란다. [http://duncanlock.net/blog/2013/06/28/useful-thunar-custom-actions/ this] 블로그에도 관련된 다양한 콜렉션들을 제공한다. <br />
<br />
=== 파일, 디렉토리 검색 ===<br />
<br />
검색기능을 사용하기 위해서는 {{Pkg|catfish}}가 설치되어야 한다. 선택 의존 패키지 {{Pkg|mlocate}}도 반드시 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Search<br />
| {{ic|1=catfish --path=%f}} || * || Directories<br />
|}<br />
<br />
=== 바이러스 검색 ===<br />
<br />
바이러스 검색 기능을 위해서는 {{Pkg|clamav}}, {{AUR|clamtk}}을 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Scan for virus<br />
| {{ic|clamtk %F}} || * || Select all<br />
|}<br />
<br />
=== 드롭박스 연결 ===<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Link to Dropbox<br />
| {{ic|ln -s %f /path/to/DropboxFolder}} || * || Directories, other files<br />
|}<br />
<br />
파일과 폴더를 특정 위치로 사용자 정의 동작을 이용하여 심볼릭 링크를 만드려고 하는 경우가 있다. 하지만 해당 동작들이 많아지는 경우, 메뉴 자체에 항목이 엄청나게 늘어날 수 있는데 이러한 경우 {{ic|Send To}} 폴더를 이용하는 편이 유용하다. {{ic|~/.local/share/Thunar/sendto}} 폴더 내에 .desktop 파일을 만들고 수행하고자 하는 사용자 정의 동작을 파일에 정의한다. 만약에 Dropbox 폴더에 심볼릭 링크를 만들고자 한다면 다음과 같은 내용으로 dropbox_folder.desktop 파일을 생성하여 SendTo 메뉴에 새로운 항목을 추가할 수 있다. 이 때, 설정 적용을 위해 반드시 Thunar를 재시작해야 한다.<br />
<br />
{{bc|<nowiki><br />
[Desktop Entry]<br />
Type=Application<br />
Version=1.0<br />
Encoding=UTF-8<br />
Exec=ln -s %f /path/to/DropboxFolder<br />
Icon=/usr/share/icons/dropbox.png<br />
Name=Dropbox<br />
</nowiki>}}<br />
<br />
== 문제 해결 ==<br />
<br />
=== Tumblerd 서비스가 멈추고 CPU 사용량이 많아지는 문제 ===<br />
<br />
파일시스템 감시와 시스템 알림 서비스 Tumblerd는 썸네일이 필요할 때 무한루프에 빠져 시스템의 프로세서를 100프로 사용하게 되는 버그가 있다. ([https://bugzilla.xfce.org/show_bug.cgi?id=7384 bug report]). 아래의 코드는 임시 해결방법으로 무한루프를 실행하는 것을 멈추는 스크립트이다. 홈 디렉토리에 ''.sh''파일로 저장 후 실행권한을 추가한 뒤 시스템 시작 시에 스크립트가 실행되도록 설정한다.<br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
period=20<br />
tumblerpath="/usr/lib/*/tumbler-1/tumblerd" # The * here should find the right one, whether 32 and 64-bit<br />
cpu_threshold=50<br />
mem_threshold=20<br />
max_strikes=2 # max number of above cpu/mem-threshold's in a row<br />
log="/tmp/tumblerd-watcher.log"<br />
<br />
if [[ -n "${log}" ]]; then<br />
cat /dev/null > "${log}"<br />
exec >"${log}" 2>&1<br />
fi<br />
<br />
<br />
strikes=0<br />
while sleep "${period}"; do<br />
while read pid; do<br />
cpu_usage=$(ps --no-headers -o pcpu -f "${pid}"|cut -f1 -d.)<br />
mem_usage=$(ps --no-headers -o pmem -f "${pid}"|cut -f1 -d.)<br />
<br />
if [[ $cpu_usage -gt $cpu_threshold ]] || [[ $mem_usage -gt $mem_threshold ]]; then<br />
echo "$(date +"%F %T") PID: $pid CPU: $cpu_usage/$cpu_threshold %cpu MEM: $mem_usage/$mem_threshold STRIKES: ${strikes} NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
(( strikes++ ))<br />
if [[ ${strikes} -ge ${max_strikes} ]]; then<br />
kill "${pid}"<br />
echo "$(date +"%F %T") PID: $pid KILLED; NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
strikes=0<br />
fi<br />
else<br />
strikes=0<br />
fi<br />
done < <(pgrep -f ${tumblerpath})<br />
done<br />
</nowiki>}}<br />
<br />
=== 수시로 Trash/network 아이콘이 사라지는 문제 ===<br />
<br />
Thunar 인스턴스가 ''gvfs''이후에 실행되도록 한다. [https://bugs.launchpad.net/ubuntu/+source/thunar/+bug/1057610] {{ic|thunar --daemon}}를 사용하는 경우에는 GVFS가 활성화될 때까지 기다리는 wrapper를 생성할 수 있다. (아래 코드 참고)<br />
<br />
{{Note|반드시 {{ic|$PATH}}에서 {{ic|/usr/local/bin}}가 {{ic|/usr/bin}}이전에 위치해야 한다.}}<br />
<br />
{{hc|/usr/local/bin/Thunar|<nowiki><br />
#!/bin/bash<br />
if [[ $1 == --daemon ]]; then<br />
until pgrep gvfs >/dev/null; do<br />
sleep 1<br />
done<br />
exec /usr/bin/Thunar "$@"<br />
else<br />
exec /usr/bin/Thunar "$@"<br />
fi<br />
</nowiki>}}<br />
<br />
=== Not authenticated to mount filesystems ===<br />
<br />
[[File manager functionality#Troubleshooting]] 참고.<br />
<br />
== 출처 ==<br />
<br />
* [http://docs.xfce.org/xfce/thunar/start Thunar] project page<br />
* [http://goodies.xfce.org/projects/thunar-plugins/thunar-volman Thunar Volume Manager] project page<br />
* This [http://goodies.xfce.org/projects/thunar-plugins/start list] of plugins</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Thunar_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442530Thunar (한국어)2016-07-23T14:32:10Z<p>Sukbeom: </p>
<hr />
<div>[[Category:File managers (한국어)]]<br />
[[ar:Thunar]]<br />
[[en:Thunar]]<br />
[[es:Thunar]]<br />
[[fr:Thunar]]<br />
[[it:Thunar]]<br />
[[ja:Thunar]]<br />
[[pl:Thunar]]<br />
[[ru:Thunar]]<br />
[[zh-cn:Thunar]]<br />
{{Related articles start}}<br />
{{Related|Xfce}}<br />
{{Related|File manager functionality}}<br />
{{Related|GNOME Files}}<br />
{{Related|PCManFM}}<br />
{{Related|Nemo}}<br />
{{Related articles end}}<br />
<br />
Xfce 프로젝트 [http://docs.xfce.org/xfce/thunar/start 홈페이지] 출처 :<br />
: ''Thunar는 Xfce 데스크탑 환경용 최신 파일 관리자이다. Thunar는 빠른 속도와 편리한 사용을 위해 철저하게 설계되었으며 때문에 Thunar에서 제공되는 사용자 인터페이스는 깔끔하고 직관적이며 어지럽고 쓸모없는 옵션들은 포함하지 않는다. Thunar는 빠른속도와 초기 실행시간, 디렉토리 로딩에서도 좋은 반응성을 보여준다.''<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|thunar}} 패키지를 [[설치]]한다. {{Pkg|thunar}}는 {{Grp|xfce4}} 패키지 그룹의 하나이기 때문에 [[Xfce]]를 사용 중이라면 시스템에 Thunar가 설치되어 있을 것이다.<br />
<br />
=== 플러그인과 추가기능 ===<br />
<br />
* {{App|Thunar Archive Plugin|컨텍스트 메뉴 아이템을 이용하여 파일압축 및 압축해제를 제공하는 플러그인이다. File Roller({{Pkg|file-roller}})나 Ark({{Pkg|ark}}), Xarchiver({{Pkg|xarchiver}}) 등의 타 압축프로그램들의 프론트엔드로서 자체적으로 압축관련기능을 제공하지 않는다. 해당 플러그인은 {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin|{{Pkg|thunar-archive-plugin}}}}<br />
* {{App|Thunar Media Tags Plugin|미디어 파일에 대한 자세한 정보를 제공한다. Bulk rename 기능(한번에 다수의 파일 이름을 변경하는 기능: [http://docs.xfce.org/xfce/thunar/bulk-renamer/start xfce 문서] 참조)과 미디어 태그 편집 기능을 제공하며 ID3(MP3 파일 포맷 시스템)와 Ogg/Vorbis 태그를 제공한다. {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin|{{Pkg|thunar-media-tags-plugin}}}}<br />
* {{App|Thunar Shares Plugin|루트의 접근권한 요청 없이 사용자가 Samba를 사용하는 디렉토리를 빠르게 공유할 수 있도록 해준다. Samba 설정 관련은 다음 문서ᅟ를 참고한다: [[Samba#Creating usershare path|how to configure directions]].|http://goodies.xfce.org/projects/thunar-plugins/thunar-shares-plugin|{{AUR|thunar-shares-plugin}}}}<br />
* {{App|[[ #Thunar Volume Manager|Thunar Volume Manager]]|Thunar에서 이동식 장치을 자동으로 관리하며 {{Grp|xfce4}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-volman|{{Pkg|thunar-volman}}}}<br />
* {{App|Tumbler|파일 썸네일을 생성하기 위한 외부 프로그램. 비디오 파일의 썸네일은 {{Pkg|ffmpegthumbnailer}}를 설치해야 한다.|http://git.xfce.org/xfce/tumbler/tree/README|{{Pkg|tumbler}}}}<br />
* {{App|RAW Thumbnailer|RAW 이미지 파일의 썸네일을 지원하고 저용량이며 빠르다.|https://code.google.com/p/raw-thumbnailer/|{{Pkg|raw-thumbnailer}}}}<br />
* {{App|libgsf|odf 포맷과 같이 구조화 파일 포맷을 읽고 쓰기 위해 필요한 유틸리티 라이브러리. odf 썸네일을 원할 때에 본 라이브러리를 설치해야 한다.|http://directory.fsf.org/wiki/Libgsf|{{Pkg|libgsf}}}}<br />
<br />
{{Tip|Thunar에서 {{ic|mtp}} 또는 {{ic|smb}} 서비스에 접근하는 추가적인 기능은 [[GVFS]]를 참고한다. [[File manager functionality]]에서도 자세한 정보를 확인할 수 있다.}}<br />
<br />
== Thunar Volume Manager ==<br />
<br />
Thunar에서 이동식 장치들에 대한 자동 마운트/마운트해제를 지원할 수 있지만 마운트/마운트해제 시 자동 명령어 실행과 마운트된 장치의 위치에서 새로운 창 열기 등의 확장기능들은 Thunar Volume Manager가 필요하다. <br />
<br />
=== 설치 ===<br />
<br />
Thunar Volume Manager는 공식 저장소에서 {{Pkg|thunar-volman}}로 설치할 수 있다.<br />
<br />
{{Tip|Thunar에서 자동 마운트 처리를 위해 반드시 인스턴스 하나는 데몬 모드로 실행되어야 한다. [[#Starting in daemon mode]] }}<br />
<br />
=== 설정 ===<br />
<br />
카메라나 오디오 플레이어가 연결되었을 때 특정 동작이 실행되도록 설정할 수 있다.<br />
플러그인 설치 후에:<br />
# Thunar를 실행하여 ''Edit > Preferences''로 들어간다.<br />
# 'Advanced' 탭에서 'Enable Volume Management'를 체크한다.<br />
# 'Configure'를 클릭한 후에 아래의 항목들을 체크한다.<br />
#* Mount removable drives when hot-plugged.<br />
#* Mount removable media when inserted.<br />
# 원한다면 추가적인 변경을 한다. (아래 참고)<br />
다음은 Amarok 미디어 플레이어가 오디오 CD를 재생하도록 하는 예제이다.<br />
Multimedia - Audio CDs: {{ic|amarok --cdplay %d}}<br />
<br />
== 유용한 팁 ==<br />
<br />
=== 대용량의 외장 하드디스크 자동으로 마운트 ===<br />
만약 tunar-volman과 gvfs가 설치되어 있는 환경에도 불구하고 크기가 1TB가 넘는 대용량의 휴대용 장치의 마운트에 실패했다면 {{Pkg|udevil}}나 {{Pkg|udiskie}}와 같은 다른 마운트 프로그램을 시도해본다. ''udiskie''는 udisks2를 사용하여 gvfs와 호환되므로 권장된다. udisks2 지원을 활성화하면서 udiskie를 실행하려면 autostart 파일에 아래 라인을 추가한다.<br />
<br />
udiskie -2 &<br />
<br />
=== 원격 위치 탐색 ===<br />
<br />
Xfce 4.8 (Thunar 1.2) 이후 FTP 서버나 Samba 공유서버와 같은 원격 위치에서도 탐색이 가능하다. 원격 위치 탐색 기능을 활성화하기 위해서는 반드시 {{Pkg|gvfs}}와 {{Pkg|gvfs-smb}}, {{Pkg|sshfs}}가 설치되어 있어야 한다. 'Network' 항목이 Thunar의 측면 영역에 보이고 Thunar 주소창(단축키 {{ic|Ctrl+l}})에 'smb://,ftp://, ssh://, sftp://, davs:// + 호스트이름 또는 IP 주소'와 같은 URI 스키마를 사용하여 원격 위치를 열 수 있다.<br />
<br />
[[NFS]](네트워크 파일시스템 공유)를 위한 URI스키마는 없으나 [[fstab]]을 올바르게 설정했다면 {{ic|mount}} 명령어를 사용할 수 있다.<br />
{{hc|/etc/fstab|<br />
# nas1 server<br />
nas1:/c/home /media/nas1/home nfs noauto,user,_netdev,bg 0 0}}<br />
<br />
여기서 중요한 부분은 옵션 부분이다. {{ic|noauto}} 옵션은 사용자가 Thunar에서 직접 클릭하기 전까지 마운트되는 것을 방지한다. {{ic|user}} 옵션은 모든 사용자에게 공유폴더에 대한 마운트, 마운트해제를 허용하고 {{ic|_netdev}} 옵션은 네트워크 연결이 필수 조건이라는 것을 명시한다. 마지막으로 {{ic|bg}} 옵션은 마운트 동작을 백그라운드에서 수행하게 한다. 서버의 스핀업 타임으로 타임아웃이 돼서 마운트하기 위해 사용자가 다시 클릭해야하는 경우가 생기는데, 마운트 동작을 백그라운드에서 수행하게 함으로써 이를 방지한다.<br />
<br />
{{Tip|원격 파일시스템 위치에 대한 보안키를 영구적으로 저장하려면 [[GNOME Keyring]]을 설치한다.}}<br />
<br />
=== 데몬 모드로 실행하기 ===<br />
<br />
Thunar는 데몬 모드로 실행할 수 있다. 데몬 모드로 실행하면 초기 실행이 더 빨라지고 백그라운드에서 동작하는 인스턴스와 필요시에 열리는 윈도우 관련 인스턴스(예. 플래시 드라이브 삽입 시에 열리는 thunar 창) 등 필요한 인스턴스만 사용하게 되며 이동식 디스크에 대한 마운트 동작을 Thunar에서 자동으로 처리하도록 하는 장점이 있다.<br />
<br />
로그인 시 {{ic|thunar --daemon}} 명령어가 자동으로 실행되도록 한다.자세한 것은 [[Xfce]]와 [[Autostarting]]을 참고한다.<br />
<br />
=== 프로그램 로드 시 성능 저하 문제 ===<br />
<br />
몇몇 유저들은 Thunar 최초 실행 시에 프로그램이 시작되기까지의 시간이 너무 오래 소요되는 문제를 겪는다. 이러한 문제는 네트워크를 확인하는 gvfs가 원인으로서 gvfs가 수행중인 동작을 마칠 때까지 Thunar가 시작되지 못하도록 하기 때문이다. 이러한 문제를 해결하기 위해서는 {{ic|/usr/share/gvfs/mounts/network.mount}}에서 '''AutoMount=true''' 부분을 '''AutoMount=false'''로 변경한다.<br />
<br />
=== 좌측의 바로가기 항목 변경 ===<br />
<br />
좌측의 바로가기 영역에 숨겨진 메뉴가 있다. <br />
<br />
DEVICES, PLACES라고 표시된 카테고리 레이블에 대고 오른쪽 마우스를 클릭하면 표시할 아이템을 선택할 수 있는 팝업 메뉴가 나타난다.<br />
<br />
=== 키보드 단축키 설정하기 ===<br />
<br />
[[GTK+#Keyboard shortcuts]] 참고.<br />
<br />
=== fstab에 정의되어 있는 파티션 보이게 하기 ===<br />
<br />
Thunar는 루트 파티션 외에 {{ic|/etc/fstab}}에 정의된 파티션들은 기본적으로 보여주지 않는다. <br />
<br />
이 때, fstab에 '''comment=x-gvfs-show''' 옵션을 추가하면 사용자가 원하는 파티션을 보이도록 설정할 수 있다.<br />
<br />
== 사용자 정의 동작 ==<br />
<br />
본 절은 사용자 정의 동작 설정을 설명하고 {{ic|Edit -> Configure custom actions}}에서 설정이 가능하다. 설정한 내용은 {{ic|~/.config/Thunar/uca.xml}} 파일에 저장된다. 관련 예제는 [http://docs.xfce.org/xfce/thunar/custom-actions thunar wiki]에 많이 정리되어 있으니 참고하기 바란다. [http://duncanlock.net/blog/2013/06/28/useful-thunar-custom-actions/ this] 블로그에도 관련된 다양한 콜렉션들을 제공한다. <br />
<br />
=== 파일, 디렉토리 검색 ===<br />
<br />
검색기능을 사용하기 위해서는 {{Pkg|catfish}}가 설치되어야 한다. 선택 의존 패키지 {{Pkg|mlocate}}도 반드시 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Search<br />
| {{ic|1=catfish --path=%f}} || * || Directories<br />
|}<br />
<br />
=== 바이러스 검색 ===<br />
<br />
바이러스 검색 기능을 위해서는 {{Pkg|clamav}}, {{AUR|clamtk}}을 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Scan for virus<br />
| {{ic|clamtk %F}} || * || Select all<br />
|}<br />
<br />
=== 드롭박스 연결 ===<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Link to Dropbox<br />
| {{ic|ln -s %f /path/to/DropboxFolder}} || * || Directories, other files<br />
|}<br />
<br />
파일과 폴더를 특정 위치로 사용자 정의 동작을 이용하여 심볼릭 링크를 만드려고 하는 경우가 있다. 하지만 해당 동작들이 많아지는 경우, 메뉴 자체에 항목이 엄청나게 늘어날 수 있는데 이러한 경우 {{ic|Send To}} 폴더를 이용하는 편이 유용하다. {{ic|~/.local/share/Thunar/sendto}} 폴더 내에 .desktop 파일을 만들고 수행하고자 하는 사용자 정의 동작을 파일에 정의한다. 만약에 Dropbox 폴더에 심볼릭 링크를 만들고자 한다면 다음과 같은 내용으로 dropbox_folder.desktop 파일을 생성하여 SendTo 메뉴에 새로운 항목을 추가할 수 있다. 이 때, 설정 적용을 위해 반드시 Thunar를 재시작해야 한다.<br />
<br />
{{bc|<nowiki><br />
[Desktop Entry]<br />
Type=Application<br />
Version=1.0<br />
Encoding=UTF-8<br />
Exec=ln -s %f /path/to/DropboxFolder<br />
Icon=/usr/share/icons/dropbox.png<br />
Name=Dropbox<br />
</nowiki>}}<br />
<br />
== 문제 해결 ==<br />
<br />
=== Tumblerd 서비스가 멈추고 CPU 사용량이 많아지는 문제 ===<br />
<br />
파일시스템 감시와 시스템 알림 서비스 Tumblerd는 썸네일이 필요할 때 무한루프에 빠져 시스템의 프로세서를 100프로 사용하게 되는 버그가 있다. ([https://bugzilla.xfce.org/show_bug.cgi?id=7384 bug report]). 아래의 코드는 임시 해결방법으로 무한루프를 실행하는 것을 멈추는 스크립트이다. ''.sh''파일로 홈 디렉토리에 저장한다. 그리고 스크립트에 실행권한을 준 후에 시스템 시작 시에 자동으로 스크립트가 실행되도록 설정한다.<br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
period=20<br />
tumblerpath="/usr/lib/*/tumbler-1/tumblerd" # The * here should find the right one, whether 32 and 64-bit<br />
cpu_threshold=50<br />
mem_threshold=20<br />
max_strikes=2 # max number of above cpu/mem-threshold's in a row<br />
log="/tmp/tumblerd-watcher.log"<br />
<br />
if [[ -n "${log}" ]]; then<br />
cat /dev/null > "${log}"<br />
exec >"${log}" 2>&1<br />
fi<br />
<br />
<br />
strikes=0<br />
while sleep "${period}"; do<br />
while read pid; do<br />
cpu_usage=$(ps --no-headers -o pcpu -f "${pid}"|cut -f1 -d.)<br />
mem_usage=$(ps --no-headers -o pmem -f "${pid}"|cut -f1 -d.)<br />
<br />
if [[ $cpu_usage -gt $cpu_threshold ]] || [[ $mem_usage -gt $mem_threshold ]]; then<br />
echo "$(date +"%F %T") PID: $pid CPU: $cpu_usage/$cpu_threshold %cpu MEM: $mem_usage/$mem_threshold STRIKES: ${strikes} NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
(( strikes++ ))<br />
if [[ ${strikes} -ge ${max_strikes} ]]; then<br />
kill "${pid}"<br />
echo "$(date +"%F %T") PID: $pid KILLED; NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
strikes=0<br />
fi<br />
else<br />
strikes=0<br />
fi<br />
done < <(pgrep -f ${tumblerpath})<br />
done<br />
</nowiki>}}<br />
<br />
=== 수시로 Trash/network 아이콘이 사라지는 문제 ===<br />
<br />
Thunar 인스턴스가 ''gvfs''이후에 실행되도록 한다. [https://bugs.launchpad.net/ubuntu/+source/thunar/+bug/1057610] {{ic|thunar --daemon}}를 사용하는 경우에는 GVFS가 활성화될 때까지 기다리는 wrapper를 생성할 수 있다. (아래 코드 참고)<br />
<br />
{{Note|반드시 {{ic|$PATH}}에서 {{ic|/usr/local/bin}}가 {{ic|/usr/bin}}이전에 위치해야 한다.}}<br />
<br />
{{hc|/usr/local/bin/Thunar|<nowiki><br />
#!/bin/bash<br />
if [[ $1 == --daemon ]]; then<br />
until pgrep gvfs >/dev/null; do<br />
sleep 1<br />
done<br />
exec /usr/bin/Thunar "$@"<br />
else<br />
exec /usr/bin/Thunar "$@"<br />
fi<br />
</nowiki>}}<br />
<br />
=== Not authenticated to mount filesystems ===<br />
<br />
[[File manager functionality#Troubleshooting]] 참고.<br />
<br />
== 출처 ==<br />
<br />
* [http://docs.xfce.org/xfce/thunar/start Thunar] project page<br />
* [http://goodies.xfce.org/projects/thunar-plugins/thunar-volman Thunar Volume Manager] project page<br />
* This [http://goodies.xfce.org/projects/thunar-plugins/start list] of plugins</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Thunar_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442529Thunar (한국어)2016-07-23T14:31:01Z<p>Sukbeom: </p>
<hr />
<div>[[Category:File managers (한국어)]]<br />
[[ar:Thunar]]<br />
[[en:Thunar]]<br />
[[es:Thunar]]<br />
[[fr:Thunar]]<br />
[[it:Thunar]]<br />
[[ja:Thunar]]<br />
[[pl:Thunar]]<br />
[[ru:Thunar]]<br />
[[zh-cn:Thunar]]<br />
{{Related articles start}}<br />
{{Related|Xfce}}<br />
{{Related|File manager functionality}}<br />
{{Related|GNOME Files}}<br />
{{Related|PCManFM}}<br />
{{Related|Nemo}}<br />
{{Related articles end}}<br />
<br />
Xfce 프로젝트 [http://docs.xfce.org/xfce/thunar/start 홈페이지] 출처 :<br />
: ''Thunar는 Xfce 데스크탑 환경용 최신 파일 관리자이다. Thunar는 빠른 속도와 편리한 사용을 위해 처음부터 철저하게 설계되었다. 기본적으로 Thunar에서 제공되는 사용자 인터페이스는 깔끔하고 직관적이며 어지럽고 쓸모없는 옵션들은 포함하지 않는다. Thunar는 빠른속도와 초기 실행시간, 디렉토리 로딩에서도 좋은 반응성을 보여준다.''<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|thunar}} 패키지를 [[설치]]한다. {{Pkg|thunar}}는 {{Grp|xfce4}} 패키지 그룹의 하나이기 때문에 [[Xfce]]를 사용 중이라면 시스템에 Thunar가 설치되어 있을 것이다.<br />
<br />
=== 플러그인과 추가기능 ===<br />
<br />
* {{App|Thunar Archive Plugin|컨텍스트 메뉴 아이템을 이용하여 파일압축 및 압축해제를 제공하는 플러그인이다. File Roller({{Pkg|file-roller}})나 Ark({{Pkg|ark}}), Xarchiver({{Pkg|xarchiver}}) 등의 타 압축프로그램들의 프론트엔드로서 자체적으로 압축관련기능을 제공하지 않는다. 해당 플러그인은 {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin|{{Pkg|thunar-archive-plugin}}}}<br />
* {{App|Thunar Media Tags Plugin|미디어 파일에 대한 자세한 정보를 제공한다. Bulk rename 기능(한번에 다수의 파일 이름을 변경하는 기능: [http://docs.xfce.org/xfce/thunar/bulk-renamer/start xfce 문서] 참조)과 미디어 태그 편집 기능을 제공하며 ID3(MP3 파일 포맷 시스템)와 Ogg/Vorbis 태그를 제공한다. {{Grp|xfce4-goodies}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin|{{Pkg|thunar-media-tags-plugin}}}}<br />
* {{App|Thunar Shares Plugin|루트의 접근권한 요청 없이 사용자가 Samba를 사용하는 디렉토리를 빠르게 공유할 수 있도록 해준다. Samba 설정 관련은 다음 문서ᅟ를 참고한다: [[Samba#Creating usershare path|how to configure directions]].|http://goodies.xfce.org/projects/thunar-plugins/thunar-shares-plugin|{{AUR|thunar-shares-plugin}}}}<br />
* {{App|[[ #Thunar Volume Manager|Thunar Volume Manager]]|Thunar에서 이동식 장치을 자동으로 관리하며 {{Grp|xfce4}} 패키지 그룹에 속해 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-volman|{{Pkg|thunar-volman}}}}<br />
* {{App|Tumbler|파일 썸네일을 생성하기 위한 외부 프로그램. 비디오 파일의 썸네일은 {{Pkg|ffmpegthumbnailer}}를 설치해야 한다.|http://git.xfce.org/xfce/tumbler/tree/README|{{Pkg|tumbler}}}}<br />
* {{App|RAW Thumbnailer|RAW 이미지 파일의 썸네일을 지원하고 저용량이며 빠르다.|https://code.google.com/p/raw-thumbnailer/|{{Pkg|raw-thumbnailer}}}}<br />
* {{App|libgsf|odf 포맷과 같이 구조화 파일 포맷을 읽고 쓰기 위해 필요한 유틸리티 라이브러리. odf 썸네일을 원할 때에 본 라이브러리를 설치해야 한다.|http://directory.fsf.org/wiki/Libgsf|{{Pkg|libgsf}}}}<br />
<br />
{{Tip|Thunar에서 {{ic|mtp}} 또는 {{ic|smb}} 서비스에 접근하는 추가적인 기능은 [[GVFS]]를 참고한다. [[File manager functionality]]에서도 자세한 정보를 확인할 수 있다.}}<br />
<br />
== Thunar Volume Manager ==<br />
<br />
Thunar에서 이동식 장치들에 대한 자동 마운트/마운트해제를 지원할 수 있지만 마운트/마운트해제 시 자동 명령어 실행과 마운트된 장치의 위치에서 새로운 창 열기 등의 확장기능들은 Thunar Volume Manager가 필요하다. <br />
<br />
=== 설치 ===<br />
<br />
Thunar Volume Manager는 공식 저장소에서 {{Pkg|thunar-volman}}로 설치할 수 있다.<br />
<br />
{{Tip|Thunar에서 자동 마운트 처리를 위해 반드시 인스턴스 하나는 데몬 모드로 실행되어야 한다. [[#Starting in daemon mode]] }}<br />
<br />
=== 설정 ===<br />
<br />
카메라나 오디오 플레이어가 연결되었을 때 특정 동작이 실행되도록 설정할 수 있다.<br />
플러그인 설치 후에:<br />
# Thunar를 실행하여 ''Edit > Preferences''로 들어간다.<br />
# 'Advanced' 탭에서 'Enable Volume Management'를 체크한다.<br />
# 'Configure'를 클릭한 후에 아래의 항목들을 체크한다.<br />
#* Mount removable drives when hot-plugged.<br />
#* Mount removable media when inserted.<br />
# 원한다면 추가적인 변경을 한다. (아래 참고)<br />
다음은 Amarok 미디어 플레이어가 오디오 CD를 재생하도록 하는 예제이다.<br />
Multimedia - Audio CDs: {{ic|amarok --cdplay %d}}<br />
<br />
== 유용한 팁 ==<br />
<br />
=== 대용량의 외장 하드디스크 자동으로 마운트 ===<br />
만약 tunar-volman과 gvfs가 설치되어 있는 환경에도 불구하고 크기가 1TB가 넘는 대용량의 휴대용 장치의 마운트에 실패했다면 {{Pkg|udevil}}나 {{Pkg|udiskie}}와 같은 다른 마운트 프로그램을 시도해본다. ''udiskie''는 udisks2를 사용하여 gvfs와 호환되므로 권장된다. udisks2 지원을 활성화하면서 udiskie를 실행하려면 autostart 파일에 아래 라인을 추가한다.<br />
<br />
udiskie -2 &<br />
<br />
=== 원격 위치 탐색 ===<br />
<br />
Xfce 4.8 (Thunar 1.2) 이후 FTP 서버나 Samba 공유서버와 같은 원격 위치에서도 탐색이 가능하다. 원격 위치 탐색 기능을 활성화하기 위해서는 반드시 {{Pkg|gvfs}}와 {{Pkg|gvfs-smb}}, {{Pkg|sshfs}}가 설치되어 있어야 한다. 'Network' 항목이 Thunar의 측면 영역에 보이고 Thunar 주소창(단축키 {{ic|Ctrl+l}})에 'smb://,ftp://, ssh://, sftp://, davs:// + 호스트이름 또는 IP 주소'와 같은 URI 스키마를 사용하여 원격 위치를 열 수 있다.<br />
<br />
[[NFS]](네트워크 파일시스템 공유)를 위한 URI스키마는 없으나 [[fstab]]을 올바르게 설정했다면 {{ic|mount}} 명령어를 사용할 수 있다.<br />
{{hc|/etc/fstab|<br />
# nas1 server<br />
nas1:/c/home /media/nas1/home nfs noauto,user,_netdev,bg 0 0}}<br />
<br />
여기서 중요한 부분은 옵션 부분이다. {{ic|noauto}} 옵션은 사용자가 Thunar에서 직접 클릭하기 전까지 마운트되는 것을 방지한다. {{ic|user}} 옵션은 모든 사용자에게 공유폴더에 대한 마운트, 마운트해제를 허용하고 {{ic|_netdev}} 옵션은 네트워크 연결이 필수 조건이라는 것을 명시한다. 마지막으로 {{ic|bg}} 옵션은 마운트 동작을 백그라운드에서 수행하게 한다. 서버의 스핀업 타임으로 타임아웃이 돼서 마운트하기 위해 사용자가 다시 클릭해야하는 경우가 생기는데, 마운트 동작을 백그라운드에서 수행하게 함으로써 이를 방지한다.<br />
<br />
{{Tip|원격 파일시스템 위치에 대한 보안키를 영구적으로 저장하려면 [[GNOME Keyring]]을 설치한다.}}<br />
<br />
=== 데몬 모드로 실행하기 ===<br />
<br />
Thunar는 데몬 모드로 실행할 수 있다. 데몬 모드로 실행하면 초기 실행이 더 빨라지고 백그라운드에서 동작하는 인스턴스와 필요시에 열리는 윈도우 관련 인스턴스(예. 플래시 드라이브 삽입 시에 열리는 thunar 창) 등 필요한 인스턴스만 사용하게 되며 이동식 디스크에 대한 마운트 동작을 Thunar에서 자동으로 처리하도록 하는 장점이 있다.<br />
<br />
로그인 시 {{ic|thunar --daemon}} 명령어가 자동으로 실행되도록 한다.자세한 것은 [[Xfce]]와 [[Autostarting]]을 참고한다.<br />
<br />
=== 프로그램 로드 시 성능 저하 문제 ===<br />
<br />
몇몇 유저들은 Thunar 최초 실행 시에 프로그램이 시작되기까지의 시간이 너무 오래 소요되는 문제를 겪는다. 이러한 문제는 네트워크를 확인하는 gvfs가 원인으로서 gvfs가 수행중인 동작을 마칠 때까지 Thunar가 시작되지 못하도록 하기 때문이다. 이러한 문제를 해결하기 위해서는 {{ic|/usr/share/gvfs/mounts/network.mount}}에서 '''AutoMount=true''' 부분을 '''AutoMount=false'''로 변경한다.<br />
<br />
=== 좌측의 바로가기 항목 변경 ===<br />
<br />
좌측의 바로가기 영역에 숨겨진 메뉴가 있다. <br />
<br />
DEVICES, PLACES라고 표시된 카테고리 레이블에 대고 오른쪽 마우스를 클릭하면 표시할 아이템을 선택할 수 있는 팝업 메뉴가 나타난다.<br />
<br />
=== 키보드 단축키 설정하기 ===<br />
<br />
[[GTK+#Keyboard shortcuts]] 참고.<br />
<br />
=== fstab에 정의되어 있는 파티션 보이게 하기 ===<br />
<br />
Thunar는 루트 파티션 외에 {{ic|/etc/fstab}}에 정의된 파티션들은 기본적으로 보여주지 않는다. <br />
<br />
이 때, fstab에 '''comment=x-gvfs-show''' 옵션을 추가하면 사용자가 원하는 파티션을 보이도록 설정할 수 있다.<br />
<br />
== 사용자 정의 동작 ==<br />
<br />
본 절은 사용자 정의 동작 설정을 설명하고 {{ic|Edit -> Configure custom actions}}에서 설정이 가능하다. 설정한 내용은 {{ic|~/.config/Thunar/uca.xml}} 파일에 저장된다. 관련 예제는 [http://docs.xfce.org/xfce/thunar/custom-actions thunar wiki]에 많이 정리되어 있으니 참고하기 바란다. [http://duncanlock.net/blog/2013/06/28/useful-thunar-custom-actions/ this] 블로그에도 관련된 다양한 콜렉션들을 제공한다. <br />
<br />
=== 파일, 디렉토리 검색 ===<br />
<br />
검색기능을 사용하기 위해서는 {{Pkg|catfish}}가 설치되어야 한다. 선택 의존 패키지 {{Pkg|mlocate}}도 반드시 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Search<br />
| {{ic|1=catfish --path=%f}} || * || Directories<br />
|}<br />
<br />
=== 바이러스 검색 ===<br />
<br />
바이러스 검색 기능을 위해서는 {{Pkg|clamav}}, {{AUR|clamtk}}을 설치한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Scan for virus<br />
| {{ic|clamtk %F}} || * || Select all<br />
|}<br />
<br />
=== 드롭박스 연결 ===<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Link to Dropbox<br />
| {{ic|ln -s %f /path/to/DropboxFolder}} || * || Directories, other files<br />
|}<br />
<br />
파일과 폴더를 특정 위치로 사용자 정의 동작을 이용하여 심볼릭 링크를 만드려고 하는 경우가 있다. 하지만 해당 동작들이 많아지는 경우, 메뉴 자체에 항목이 엄청나게 늘어날 수 있는데 이러한 경우 {{ic|Send To}} 폴더를 이용하는 편이 유용하다. {{ic|~/.local/share/Thunar/sendto}} 폴더 내에 .desktop 파일을 만들고 수행하고자 하는 사용자 정의 동작을 파일에 정의한다. 만약에 Dropbox 폴더에 심볼릭 링크를 만들고자 한다면 다음과 같은 내용으로 dropbox_folder.desktop 파일을 생성하여 SendTo 메뉴에 새로운 항목을 추가할 수 있다. 이 때, 설정 적용을 위해 반드시 Thunar를 재시작해야 한다.<br />
<br />
{{bc|<nowiki><br />
[Desktop Entry]<br />
Type=Application<br />
Version=1.0<br />
Encoding=UTF-8<br />
Exec=ln -s %f /path/to/DropboxFolder<br />
Icon=/usr/share/icons/dropbox.png<br />
Name=Dropbox<br />
</nowiki>}}<br />
<br />
== 문제 해결 ==<br />
<br />
=== Tumblerd 서비스가 멈추고 CPU 사용량이 많아지는 문제 ===<br />
<br />
파일시스템 감시와 시스템 알림 서비스 Tumblerd는 썸네일이 필요할 때 무한루프에 빠져 시스템의 프로세서를 100프로 사용하게 되는 버그가 있다. ([https://bugzilla.xfce.org/show_bug.cgi?id=7384 bug report]). 아래의 코드는 임시 해결방법으로 무한루프를 실행하는 것을 멈추는 스크립트이다. ''.sh''파일로 홈 디렉토리에 저장한다. 그리고 스크립트에 실행권한을 준 후에 시스템 시작 시에 자동으로 스크립트가 실행되도록 설정한다.<br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
period=20<br />
tumblerpath="/usr/lib/*/tumbler-1/tumblerd" # The * here should find the right one, whether 32 and 64-bit<br />
cpu_threshold=50<br />
mem_threshold=20<br />
max_strikes=2 # max number of above cpu/mem-threshold's in a row<br />
log="/tmp/tumblerd-watcher.log"<br />
<br />
if [[ -n "${log}" ]]; then<br />
cat /dev/null > "${log}"<br />
exec >"${log}" 2>&1<br />
fi<br />
<br />
<br />
strikes=0<br />
while sleep "${period}"; do<br />
while read pid; do<br />
cpu_usage=$(ps --no-headers -o pcpu -f "${pid}"|cut -f1 -d.)<br />
mem_usage=$(ps --no-headers -o pmem -f "${pid}"|cut -f1 -d.)<br />
<br />
if [[ $cpu_usage -gt $cpu_threshold ]] || [[ $mem_usage -gt $mem_threshold ]]; then<br />
echo "$(date +"%F %T") PID: $pid CPU: $cpu_usage/$cpu_threshold %cpu MEM: $mem_usage/$mem_threshold STRIKES: ${strikes} NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
(( strikes++ ))<br />
if [[ ${strikes} -ge ${max_strikes} ]]; then<br />
kill "${pid}"<br />
echo "$(date +"%F %T") PID: $pid KILLED; NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
strikes=0<br />
fi<br />
else<br />
strikes=0<br />
fi<br />
done < <(pgrep -f ${tumblerpath})<br />
done<br />
</nowiki>}}<br />
<br />
=== 수시로 Trash/network 아이콘이 사라지는 문제 ===<br />
<br />
Thunar 인스턴스가 ''gvfs''이후에 실행되도록 한다. [https://bugs.launchpad.net/ubuntu/+source/thunar/+bug/1057610] {{ic|thunar --daemon}}를 사용하는 경우에는 GVFS가 활성화될 때까지 기다리는 wrapper를 생성할 수 있다. (아래 코드 참고)<br />
<br />
{{Note|반드시 {{ic|$PATH}}에서 {{ic|/usr/local/bin}}가 {{ic|/usr/bin}}이전에 위치해야 한다.}}<br />
<br />
{{hc|/usr/local/bin/Thunar|<nowiki><br />
#!/bin/bash<br />
if [[ $1 == --daemon ]]; then<br />
until pgrep gvfs >/dev/null; do<br />
sleep 1<br />
done<br />
exec /usr/bin/Thunar "$@"<br />
else<br />
exec /usr/bin/Thunar "$@"<br />
fi<br />
</nowiki>}}<br />
<br />
=== Not authenticated to mount filesystems ===<br />
<br />
[[File manager functionality#Troubleshooting]] 참고.<br />
<br />
== 출처 ==<br />
<br />
* [http://docs.xfce.org/xfce/thunar/start Thunar] project page<br />
* [http://goodies.xfce.org/projects/thunar-plugins/thunar-volman Thunar Volume Manager] project page<br />
* This [http://goodies.xfce.org/projects/thunar-plugins/start list] of plugins</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Thunar_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442522Thunar (한국어)2016-07-23T12:41:33Z<p>Sukbeom: 1st draft.</p>
<hr />
<div>[[Category:File managers (한국어)]]<br />
[[ar:Thunar]]<br />
[[en:Thunar]]<br />
[[es:Thunar]]<br />
[[fr:Thunar]]<br />
[[it:Thunar]]<br />
[[ja:Thunar]]<br />
[[pl:Thunar]]<br />
[[ru:Thunar]]<br />
[[zh-cn:Thunar]]<br />
{{Related articles start}}<br />
{{Related|Xfce}}<br />
{{Related|File manager functionality}}<br />
{{Related|GNOME Files}}<br />
{{Related|PCManFM}}<br />
{{Related|Nemo}}<br />
{{Related articles end}}<br />
<br />
Xfce 프로젝트에 근거 [http://docs.xfce.org/xfce/thunar/start home page]:<br />
: ''Thunar는 Xfce 데스크탑 환경용 현대적인 파일 관리자이다. Thunar는 빠르고 쉬운 사용을 위해 처음부터 철저하게 설계되었다. Thunar에서 제공되는 유저인터페이스는 간단하고 직관적이며 혼란스럽거나 쓸모없는 옵션들은 기본적으로 제공하지 않는다. Thunar는 빠르며 실행시간과 디렉토리 로딩에서도 빠른 반응을 보여준다.''<br />
<br />
== 설치 ==<br />
<br />
{{Pkg|thunar}} 패키지를 통해 [[설치]]한다. {{Grp|xfce4}} 패키지 그룹의 하나이기 때문에 만약 현재 [[Xfce]]를 사용 중이라면 이미 시스템에 Thunar가 설치되어 있을 것이다.<br />
<br />
=== 플러그인과 추가기능 ===<br />
<br />
* {{App|Thunar Archive Plugin|이 플러그인은 메뉴 아이템을 통해서 압축파일을 생성하거나 풀 수 있도록 도와주는 플러그인이다. 이 때, 압축파일을 자체적으로 직접 생성하거나 푸는 것이 아니라 File Roller ({{Pkg|file-roller}})나 Ark ({{Pkg|ark}}), Xarchiver ({{Pkg|xarchiver}})와 같은 다른 프로그램들의 frontend로써 동작한다. 해당 플러그인은 {{Grp|xfce4-goodies}} 패키지 그룹에 포함되어 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin|{{Pkg|thunar-archive-plugin}}}}<br />
* {{App|Thunar Media Tags Plugin|이 플러그인은 미디어 파일에 대한 자세한 정보를 볼 수 있도록 해준다. 또한 bulk rename기능(한번에 다수의 파일의 이름을 변경하는 것: 다음 [http://docs.xfce.org/xfce/thunar/bulk-renamer/start 링크]를 참조한다)과 미디어 태그 편집 기능을 제공한다. 또한 ID3(MP3 파일 포맷 시스템)와 Ogg/Vorbis 태그를 제공한다. 이 플러그인 또한 {{Grp|xfce4-goodies}} 패키지 그룹에 포함되어 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin|{{Pkg|thunar-media-tags-plugin}}}}<br />
* {{App|Thunar Shares Plugin|사용자에게 루트 접근이 필요 없이 Samba를 사용하는 디렉토리를 빠르게 공유할 수 있도록 해준다. 관련된 Samba설정은 다음 위키페이지ᅟ를 참고한다: [[Samba#Creating usershare path|how to configure directions]].|http://goodies.xfce.org/projects/thunar-plugins/thunar-shares-plugin|{{AUR|thunar-shares-plugin}}}}<br />
* {{App|[[ #Thunar Volume Manager|Thunar Volume Manager]]|Thunar에서 USB, 외장디스크와 같이 제거 가능한 장치들을 자동 관리한다. {{Grp|xfce4}} 패키지 그룹에 포함되어 있다.|http://goodies.xfce.org/projects/thunar-plugins/thunar-volman|{{Pkg|thunar-volman}}}}<br />
* {{App|Tumbler|파일의 썸네일을 생성하기 위한 외부 프로그램이다. 비디오 파일에 대한 섬네일을 활성화하기 위해서는 {{Pkg|ffmpegthumbnailer}}를 설치해야 한다.|http://git.xfce.org/xfce/tumbler/tree/README|{{Pkg|tumbler}}}}<br />
* {{App|RAW Thumbnailer|저용량이며 빠른 RAW 이미지 파일의 썸네일을 지원한다.|https://code.google.com/p/raw-thumbnailer/|{{Pkg|raw-thumbnailer}}}}<br />
* {{App|libgsf|GSF(GNOME Structured File) 라이브러리는 odf와 같이 구조화된 파일을 읽고 쓰기 위해 필요한 유틸리티 라이브러리이다. odf 썸네일을 원한다면 이 라이브러리를 설치해야 한다.|http://directory.fsf.org/wiki/Libgsf|{{Pkg|libgsf}}}}<br />
<br />
{{Tip|{{ic|mtp}} 또는 {{ic|smb}} 서비스와 같은 추가적인 기능을 원하는 경우에는 [[GVFS]]를 참고한다. 또한 [[File manager functionality]]에서도 자세한 정보를 확인할 수 있다.}}<br />
<br />
== Thunar Volume Manager ==<br />
<br />
Thunar에서 제거가능 장치들에 대한 자동 마운트/언마운트를 지원하기는 하지만 자동 명령어 실행과 마운트된 미디어에 대해 자동으로 새로운 Thunar창을 여는 것과 같은 확장된 기능을 위해서는 Thunar Volume Manager가 필요하다. <br />
<br />
=== 설치 ===<br />
<br />
Thunar Volume Manager는 {{Pkg|thunar-volman}} 패키지를 통해서 공식 저장소에서 받아 설치할 수 있다.<br />
<br />
{{Tip|Thunar에서 자동 마운트를 가능하게 하기 위해서는 반드시 Thunar 하나는 데몬 모드로 실행되어야 한다. [[#Starting in daemon mode]] }}<br />
<br />
=== 설정 ===<br />
<br />
카메라나 오디오 플레이어가 연결되었을 때 특정 동작이 실행되도록 설정할 수 있다.<br />
플러그인을 설치한 후에:<br />
# Thunar를 실행하여 ''Edit > Preferences''<br />
# 'Advanced' 탭 하위의 'Enable Volume Management'를 체크한다.<br />
# 'Configure'를 클릭한 후에 다음의 아이템들을 체크한다.<br />
#* Mount removable drives when hot-plugged.<br />
#* Mount removable media when inserted.<br />
# 또한 원하는 설정을 할 수 있다. (아래 참고)<br />
다음은 Amarok 미디어 플레이어가 오디오 CD를 재생하도록 하는 예제이다.<br />
Multimedia - Audio CDs: {{ic|amarok --cdplay %d}}<br />
<br />
== 유용한 팁 ==<br />
<br />
=== 대용량의 외장 하드디스크 자동 마운트 ===<br />
만약 tunar-volman과 gvfs가 설치되어 있는 환경에도 불구하고 크기가 1TB가 넘는 대용량의 휴대용 장치의 마운트에 실패횼다면 {{Pkg|udevil}}나 {{Pkg|udiskie}}와 같이 다른 자동 마운트 프로그램을 시도해본다. 이 경우, ''udiskie''가 udisks2를 사용하기 때문에 gvfs와 호환되므로 권장된다. udiskie를 udisks2 지원과 함께 실행하려면 autostart 파일에 다음 라인을 추가한다.<br />
<br />
udiskie -2 &<br />
<br />
=== 원격 장소 탐색을 위해 Thunar 사용하기 ===<br />
<br />
Xfce 4.8 (Thunar 1.2) 이후로 FTP 서버나 Samba 공유서버와 같이 원격 지점 탐색이 가능해졌다. 해당 기능을 활성화하기 위해서 반드시 {{Pkg|gvfs}}와 {{Pkg|gvfs-smb}}, {{Pkg|sshfs}} 패키지가 설치되어야 한다. 'Network' 엔트리가 Thunar의 사이드 부분에 보이게 되며 다음에 나오는 URI 스키마를 통해서 원격 지점을 열 수 있다. ({{ic|Ctrl+l}} 단축키로 연다.): smb://, <nowiki>ftp://</nowiki>, ssh://, sftp://, davs:// & followed by the server hostname or IP address.<br />
<br />
[[NFS]] 공유를 위한 URI스키마는 없으나 [[fstab]]을 제대로 설정했다면 {{ic|mount}} 명령어를 사용할 수 있다.<br />
{{hc|/etc/fstab|<br />
# nas1 server<br />
nas1:/c/home /media/nas1/home nfs noauto,user,_netdev,bg 0 0}}<br />
<br />
여기서 중요한 부분은 {{ic|noauto}} 부분으로 Thunar에서 직접 클릭하기 전까지 공유폴더가 자동으로 마운트되는 것을 방지한다. {{ic|user}} 는 모든 사용자가 공유폴더를 마운트하거나 언마운트하는 것을 허용하고 {{ic|_netdev}} 은 네트워크 연결이 미리 필요하다는 것을 보장한다. {{ic|bg}} 는 마운트 명령을 백그라운드로 하여 마운트가 끝날 때까지 서버가 기다릴 필요가 없도록 한다.<br />
<br />
{{Tip|만약 원격 파일시스템 위치에 대한 보안키를 영구적으로 저장하고 싶다면 [[GNOME Keyring]]을 설치한다.}}<br />
<br />
=== 데몬 모드로 실행하기 ===<br />
<br />
Thunar 는 데몬 모드로 실행될 수 있다. 이에 몇 가지 장점이 있는데, 빠른 초기 실행 뿐만 아니라 Thunar은 윈도우를 열 때를 제외하고 모두 백그라운드로 실행될 수 있다.<br />
<br />
Make sure the command {{ic|thunar --daemon}} is autostarted on login. See [[Xfce]] and [[Autostarting]] for more details.<br />
<br />
=== 초기 프로그램 로드 시 성능 저하 문제 ===<br />
<br />
몇몇 유저들은 처음 Thunar 로드 시에 시작되기까지 시간이 너무 오래 소요되는 문제를 겪는다. 이러한 문제는 네트워크를 확인하는 gvfs가 원인으로서 gvfs가 수행중인 동작을 마칠 때까지 Thunar가 시작되지 못하도록 하기 때문이다. 이러한 프로그램 작동을 바꾸기 위해서는 {{ic|/usr/share/gvfs/mounts/network.mount}}에서 '''AutoMount=true''' 부분을 '''AutoMount=false'''로 변경한다.<br />
<br />
=== 왼쪽 측면의 바로가기 감추기 ===<br />
<br />
왼쪽 측면의 바로가기 부분에 숨겨진 메뉴가 있다. <br />
<br />
DEVICES 또는 PLACES와 같이 바로가기의 카테고리 레이블에서 오른쪽 마우스를 클릭하면 표시할 아이템을 선택할 수 있는 팝업 메뉴가 나타난다.<br />
<br />
=== 키보드 단축키 설정하기 ===<br />
<br />
[[GTK+#Keyboard shortcuts]] 참고.<br />
<br />
=== fstab에 정의되어 있는 파티션 보이기 ===<br />
<br />
Thunar는 루트 파티션 외에 {{ic|/etc/fstab}}에 정의된 파티션들은 기본적으로 보여주지 않는다. <br />
<br />
fstab에 '''comment=x-gvfs-show''' 옵션을 추가하여 사용자가 원하는대로 파티션을 보이게 설정할 수 있다.<br />
<br />
== 사용자 정의 동작 ==<br />
<br />
본 절은 {{ic|Edit -> Configure custom actions}}를 통하여 접근 가능한 유용한 사용자 정의 동작들에 대해서 다루며 설정한 내용들은 {{ic|~/.config/Thunar/uca.xml}}에 저장된다. [http://docs.xfce.org/xfce/thunar/custom-actions thunar wiki]에 많은 예제들이 정리되어 있다. [http://duncanlock.net/blog/2013/06/28/useful-thunar-custom-actions/ this] 블로그에서도 사용자 정의 동작들에 대하여 종합적인 콜렉션들을 제공한다. <br />
<br />
=== 파일, 디렉토리 검색 ===<br />
<br />
검색을 사용하기 위해서는 {{Pkg|catfish}}가 설치되어 있어야 한다. 의존 패키지로 {{Pkg|mlocate}} 또한 설치가 되어있어야 한다.<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Search<br />
| {{ic|1=catfish --path=%f}} || * || Directories<br />
|}<br />
<br />
=== 바이러스 검색 ===<br />
<br />
바이러스 검색을 위해서는 {{Pkg|clamav}}과 {{AUR|clamtk}}이 설치되어 있어야 한다.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Scan for virus<br />
| {{ic|clamtk %F}} || * || Select all<br />
|}<br />
<br />
=== 드롭박스 연결 ===<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Link to Dropbox<br />
| {{ic|ln -s %f /path/to/DropboxFolder}} || * || Directories, other files<br />
|}<br />
<br />
주의해야할 점은 특정 위치에서의 심볼릭 링크 파일과 디렉토리에 대하여 많은 사용자 정의 동작들을 사용할 때 메뉴가 많아지는 것을 피하기 위해 Send To를 사용할 것을 권장한다. 이것은 간단하게 각 동작에 대하여 {{ic|~/.local/share/Thunar/sendto}} 에 .desktop파일을 요구한다. 위에서처럼 Dropbox symlink 동작을 SendTo를 보내면 {{ic|dropbox_folder.desktop}}를 다음 내용으로 생성한다. 새로 적용된 동작들은 Thunar를 재시작해야 적용된다.<br />
<br />
{{bc|<nowiki><br />
[Desktop Entry]<br />
Type=Application<br />
Version=1.0<br />
Encoding=UTF-8<br />
Exec=ln -s %f /path/to/DropboxFolder<br />
Icon=/usr/share/icons/dropbox.png<br />
Name=Dropbox<br />
</nowiki>}}<br />
<br />
== 문제 해결 ==<br />
<br />
=== Tumblerd가 멈추고 CPU 사용량이 많을 때 ===<br />
<br />
Tumblerd, the service that watches the file system and notifies the system when a thumbnail needs to be made may get stuck in a loop, using 100% of the system's CPU, see the [https://bugzilla.xfce.org/show_bug.cgi?id=7384 bug report]. The following script is a temporary workaround to stop this from happening. Copy, and paste this into a ''.sh'' file, save it somewhere in your home directory, mark the file as executable then set up the system to autostart it at system startup. <br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
period=20<br />
tumblerpath="/usr/lib/*/tumbler-1/tumblerd" # The * here should find the right one, whether 32 and 64-bit<br />
cpu_threshold=50<br />
mem_threshold=20<br />
max_strikes=2 # max number of above cpu/mem-threshold's in a row<br />
log="/tmp/tumblerd-watcher.log"<br />
<br />
if [[ -n "${log}" ]]; then<br />
cat /dev/null > "${log}"<br />
exec >"${log}" 2>&1<br />
fi<br />
<br />
<br />
strikes=0<br />
while sleep "${period}"; do<br />
while read pid; do<br />
cpu_usage=$(ps --no-headers -o pcpu -f "${pid}"|cut -f1 -d.)<br />
mem_usage=$(ps --no-headers -o pmem -f "${pid}"|cut -f1 -d.)<br />
<br />
if [[ $cpu_usage -gt $cpu_threshold ]] || [[ $mem_usage -gt $mem_threshold ]]; then<br />
echo "$(date +"%F %T") PID: $pid CPU: $cpu_usage/$cpu_threshold %cpu MEM: $mem_usage/$mem_threshold STRIKES: ${strikes} NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
(( strikes++ ))<br />
if [[ ${strikes} -ge ${max_strikes} ]]; then<br />
kill "${pid}"<br />
echo "$(date +"%F %T") PID: $pid KILLED; NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
strikes=0<br />
fi<br />
else<br />
strikes=0<br />
fi<br />
done < <(pgrep -f ${tumblerpath})<br />
done<br />
</nowiki>}}<br />
<br />
=== 수시로 Trash/network 아이콘이 사라지는 문제 ===<br />
<br />
Thunar 인스턴스가 ''gvfs''이후에 실행되도록 한다.. [https://bugs.launchpad.net/ubuntu/+source/thunar/+bug/1057610] For {{ic|thunar --daemon}}, you can create a wrapper that waits until GVFS is active:<br />
<br />
{{Note|{{ic|/usr/local/bin}} should come before {{ic|/usr/bin}} in {{ic|$PATH}}.}}<br />
<br />
{{hc|/usr/local/bin/Thunar|<nowiki><br />
#!/bin/bash<br />
if [[ $1 == --daemon ]]; then<br />
until pgrep gvfs >/dev/null; do<br />
sleep 1<br />
done<br />
exec /usr/bin/Thunar "$@"<br />
else<br />
exec /usr/bin/Thunar "$@"<br />
fi<br />
</nowiki>}}<br />
<br />
=== Not authenticated to mount filesystems ===<br />
<br />
See [[File manager functionality#Troubleshooting]].<br />
<br />
== See also ==<br />
<br />
* [http://docs.xfce.org/xfce/thunar/start Thunar] project page<br />
* [http://goodies.xfce.org/projects/thunar-plugins/thunar-volman Thunar Volume Manager] project page<br />
* This [http://goodies.xfce.org/projects/thunar-plugins/start list] of plugins</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Thunar&diff=442505Thunar2016-07-23T09:08:59Z<p>Sukbeom: </p>
<hr />
<div>[[Category:File managers]]<br />
[[ar:Thunar]]<br />
[[es:Thunar]]<br />
[[fr:Thunar]]<br />
[[it:Thunar]]<br />
[[ja:Thunar]]<br />
[[ko:Thunar]]<br />
[[pl:Thunar]]<br />
[[ru:Thunar]]<br />
[[zh-CN:Thunar]]<br />
{{Related articles start}}<br />
{{Related|Xfce}}<br />
{{Related|File manager functionality}}<br />
{{Related|GNOME Files}}<br />
{{Related|PCManFM}}<br />
{{Related|Nemo}}<br />
{{Related articles end}}<br />
<br />
From the project [http://docs.xfce.org/xfce/thunar/start home page]:<br />
: ''Thunar is a modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time.''<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|thunar}} package. It is part of the {{Grp|xfce4}} group, so if you are running [[Xfce]], you probably already have Thunar installed.<br />
<br />
=== Plugins and addons ===<br />
<br />
* {{App|Thunar Archive Plugin|Plugin which allows you to create and extract archive files using contextual menu items. It does not create or extract archives directly, but instead acts as a frontend for other programs such as File Roller ({{Pkg|file-roller}}), Ark ({{Pkg|ark}}) or Xarchiver ({{Pkg|xarchiver}}). Part of {{Grp|xfce4-goodies}}.|http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin|{{Pkg|thunar-archive-plugin}}}}<br />
* {{App|Thunar Media Tags Plugin|Plugin which allows you to view detailed information about media files. It also has a bulk renamed and allows editing of media tags. It supports ID3 (the MP3 file format's system) and Ogg/Vorbis tags. Part of {{Grp|xfce4-goodies}}.|http://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin|{{Pkg|thunar-media-tags-plugin}}}}<br />
* {{App|Thunar Shares Plugin|Plugin which allows you to quickly share a folder using Samba from Thunar without requiring root access. See also [[Samba#Creating usershare path|how to configure directions]].|http://goodies.xfce.org/projects/thunar-plugins/thunar-shares-plugin|{{AUR|thunar-shares-plugin}}}}<br />
* {{App|[[ #Thunar Volume Manager|Thunar Volume Manager]]|Automatic management of removeable devices in Thunar. Part of {{Grp|xfce4}}.|http://goodies.xfce.org/projects/thunar-plugins/thunar-volman|{{Pkg|thunar-volman}}}}<br />
* {{App|Tumbler|External program to generate thumbnails. Also install {{Pkg|ffmpegthumbnailer}} to enable video thumbnailing.|http://git.xfce.org/xfce/tumbler/tree/README|{{Pkg|tumbler}}}}<br />
* {{App|RAW Thumbnailer|A lightweight and fast raw image thumbnailer that is needed to display raw thumbnails.|https://code.google.com/p/raw-thumbnailer/|{{Pkg|raw-thumbnailer}}}}<br />
* {{App|libgsf|The GNOME Structured File Library is a utility library for reading and writing structured file formats. Install if you need support for odf thumbnails|http://directory.fsf.org/wiki/Libgsf|{{Pkg|libgsf}}}}<br />
<br />
{{Tip|For additional functionality, such as {{ic|mtp}} or {{ic|smb}} services access from Thunar, see [[GVFS]]. Also see [[File manager functionality]] for more details.}}<br />
<br />
== Thunar Volume Manager ==<br />
<br />
While Thunar can support automatic mounting and unmounting of removable media, the Thunar Volume Manager allows extended functionality, such as automatically running commands or automatically opening a Thunar window for mounted media.<br />
<br />
=== Installation ===<br />
<br />
Thunar Volume Manager can be installed from the package {{Pkg|thunar-volman}} in the official repositories.<br />
<br />
{{Tip|To let Thunar handle automatic mounting, one must launch thunar in daemon mode. [[#Starting in daemon mode]] }}<br />
<br />
=== Configuration ===<br />
<br />
It can also be configured to execute certain actions when cameras and audio players are connected. <br />
After installing the plugin:<br />
# Launch Thunar and go to ''Edit > Preferences''<br />
# Under the 'Advanced' tab, check 'Enable Volume Management'<br />
# Click configure and check the following items:<br />
#* Mount removable drives when hot-plugged.<br />
#* Mount removable media when inserted.<br />
# Also make desired changes (see the example below)<br />
Here's an example setting for making Amarok play an audio CD.<br />
Multimedia - Audio CDs: {{ic|amarok --cdplay %d}}<br />
<br />
== Tips and tricks ==<br />
<br />
=== Automounting of large external drives ===<br />
If Thunar refuses to mount large removable media (size > 1TB) although thunar-volman and gvfs has been installed, then try installing a different automounter such as {{Pkg|udevil}} or {{Pkg|udiskie}}. The latter should be preferred as it uses udisks2 and thus is compatible with gvfs. To start udiskie with udisks2 support, add the following line to your autostart file:<br />
<br />
udiskie -2 &<br />
<br />
=== Using Thunar to browse remote locations ===<br />
<br />
Since Xfce 4.8 (Thunar 1.2) it is possible to browse remote locations (such as FTP servers or Samba shares) directly in Thunar. To enable this functionality ensure that {{Pkg|gvfs}}, {{Pkg|gvfs-smb}} and {{Pkg|sshfs}} packages are installed. A 'Network' entry is visible in Thunar's side bar and remote locations can be opened by using the following URI schemes in the location dialog (opened with {{ic|Ctrl+l}}): smb://, <nowiki>ftp://</nowiki>, ssh://, sftp://, davs:// & followed by the server hostname or IP address.<br />
<br />
There is no URI scheme for [[NFS]] shares, but Thunar can issue a {{ic|mount}} command if you setup your [[fstab]] properly.<br />
{{hc|/etc/fstab|<br />
# nas1 server<br />
nas1:/c/home /media/nas1/home nfs noauto,user,_netdev,bg 0 0}}<br />
<br />
What's important here is the {{ic|noauto}} which prevents the share from being mounted until you click on it, {{ic|user}} which allows any user to mount (and unmount) the share, {{ic|_netdev}} which makes network connectivity a pre-requisite, and finally {{ic|bg}} which puts the mounting operation the background so if your server requires some spin-up time you won't have to deal with time out messages and re-clicking until it works.<br />
<br />
{{Tip|If you want to permanently store passphrases of remote filesystem locations, you have to install [[GNOME Keyring]].}}<br />
<br />
=== Starting in daemon mode ===<br />
<br />
Thunar may be run in daemon mode. This has several advantages, including a faster startup for Thunar, Thunar running in the background and only opening a window when necessary (for instance, when a flash drive is inserted), and letting Thunar handle automatic mounting of removable media.<br />
<br />
Make sure the command {{ic|thunar --daemon}} is autostarted on login. See [[Xfce]] and [[Autostarting]] for more details.<br />
<br />
=== Solving problem with slow cold start ===<br />
<br />
Some people still have problems with Thunar taking a long time to start for the first time. This is due to gvfs checking the network, preventing Thunar from starting until gvfs finishes its operations. To change this behaviour, edit {{ic|/usr/share/gvfs/mounts/network.mount}} and change '''AutoMount=true''' to '''AutoMount=false'''.<br />
<br />
=== Hide Shortcuts in Side Pane ===<br />
<br />
There is a hidden menu to hide Shortcuts in the Side Pane.<br />
<br />
Right click in the Side Pane where there are no shortcuts, like on the DEVICES section label. Then you will get a pop-up menu where you can uncheck items you do not want displayed.<br />
<br />
=== Assign keyboard shortcuts in Thunar ===<br />
<br />
See [[GTK+#Keyboard shortcuts]],<br />
<br />
=== Showing partitions defined in fstab ===<br />
<br />
By default Thunar will not show in devices any partitions defined in {{ic|/etc/fstab}} besides the root partition.<br />
<br />
We can change that by adding the option '''comment=x-gvfs-show''' to fstab for the partition we wish to show.<br />
<br />
== Custom actions ==<br />
<br />
This section covers useful custom actions which can be accessed through {{ic|Edit -> Configure custom actions}} and which are stored in {{ic|~/.config/Thunar/uca.xml}}. More examples are listed in the [http://docs.xfce.org/xfce/thunar/custom-actions thunar wiki]. Furthermore, [http://duncanlock.net/blog/2013/06/28/useful-thunar-custom-actions/ this] blog post provides a comprehensive collection of custom actions.<br />
<br />
=== Search for files and folders ===<br />
<br />
To use this action you need to have {{Pkg|catfish}} installed. The optional dependency {{Pkg|mlocate}} should be installed as well.<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Search<br />
| {{ic|1=catfish --path=%f}} || * || Directories<br />
|}<br />
<br />
=== Scan for viruses ===<br />
<br />
To use this action you need to have {{Pkg|clamav}} and {{AUR|clamtk}} installed.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Scan for virus<br />
| {{ic|clamtk %F}} || * || Select all<br />
|}<br />
<br />
=== Link to Dropbox ===<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Link to Dropbox<br />
| {{ic|ln -s %f /path/to/DropboxFolder}} || * || Directories, other files<br />
|}<br />
<br />
Please note that when using many custom actions to symlink files and folder to a particular place, it might be useful to put them into the {{ic|Send To}} folder of the context menu to avoid that the menu itself gets bloated. This is fairly easy to achieve and requires a .desktop file in {{ic|~/.local/share/Thunar/sendto}} for each action to perform. Say we want to put the above Dropbox symlink action into Send To, we create a {{ic|dropbox_folder.desktop}} with the following content. The new applied action will be active after restarting Thunar.<br />
<br />
{{bc|<nowiki><br />
[Desktop Entry]<br />
Type=Application<br />
Version=1.0<br />
Encoding=UTF-8<br />
Exec=ln -s %f /path/to/DropboxFolder<br />
Icon=/usr/share/icons/dropbox.png<br />
Name=Dropbox<br />
</nowiki>}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Tumblerd hangs up, uses too much CPU ===<br />
<br />
Tumblerd, the service that watches the file system and notifies the system when a thumbnail needs to be made may get stuck in a loop, using 100% of the system's CPU, see the [https://bugzilla.xfce.org/show_bug.cgi?id=7384 bug report]. The following script is a temporary workaround to stop this from happening. Copy, and paste this into a ''.sh'' file, save it somewhere in your home directory, mark the file as executable then set up the system to autostart it at system startup. <br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
period=20<br />
tumblerpath="/usr/lib/*/tumbler-1/tumblerd" # The * here should find the right one, whether 32 and 64-bit<br />
cpu_threshold=50<br />
mem_threshold=20<br />
max_strikes=2 # max number of above cpu/mem-threshold's in a row<br />
log="/tmp/tumblerd-watcher.log"<br />
<br />
if [[ -n "${log}" ]]; then<br />
cat /dev/null > "${log}"<br />
exec >"${log}" 2>&1<br />
fi<br />
<br />
<br />
strikes=0<br />
while sleep "${period}"; do<br />
while read pid; do<br />
cpu_usage=$(ps --no-headers -o pcpu -f "${pid}"|cut -f1 -d.)<br />
mem_usage=$(ps --no-headers -o pmem -f "${pid}"|cut -f1 -d.)<br />
<br />
if [[ $cpu_usage -gt $cpu_threshold ]] || [[ $mem_usage -gt $mem_threshold ]]; then<br />
echo "$(date +"%F %T") PID: $pid CPU: $cpu_usage/$cpu_threshold %cpu MEM: $mem_usage/$mem_threshold STRIKES: ${strikes} NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
(( strikes++ ))<br />
if [[ ${strikes} -ge ${max_strikes} ]]; then<br />
kill "${pid}"<br />
echo "$(date +"%F %T") PID: $pid KILLED; NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
strikes=0<br />
fi<br />
else<br />
strikes=0<br />
fi<br />
done < <(pgrep -f ${tumblerpath})<br />
done<br />
</nowiki>}}<br />
<br />
=== Trash/network icons disappear randomly ===<br />
<br />
Make sure all Thunar instances start '''after''' ''gvfs''. [https://bugs.launchpad.net/ubuntu/+source/thunar/+bug/1057610] For {{ic|thunar --daemon}}, you can create a wrapper that waits until GVFS is active:<br />
<br />
{{Note|{{ic|/usr/local/bin}} should come before {{ic|/usr/bin}} in {{ic|$PATH}}.}}<br />
<br />
{{hc|/usr/local/bin/Thunar|<nowiki><br />
#!/bin/bash<br />
if [[ $1 == --daemon ]]; then<br />
until pgrep gvfs >/dev/null; do<br />
sleep 1<br />
done<br />
exec /usr/bin/Thunar "$@"<br />
else<br />
exec /usr/bin/Thunar "$@"<br />
fi<br />
</nowiki>}}<br />
<br />
=== Not authenticated to mount filesystems ===<br />
<br />
See [[File manager functionality#Troubleshooting]].<br />
<br />
== See also ==<br />
<br />
* [http://docs.xfce.org/xfce/thunar/start Thunar] project page<br />
* [http://goodies.xfce.org/projects/thunar-plugins/thunar-volman Thunar Volume Manager] project page<br />
* This [http://goodies.xfce.org/projects/thunar-plugins/start list] of plugins</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Thunar_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=442504Thunar (한국어)2016-07-23T09:08:34Z<p>Sukbeom: Create new page</p>
<hr />
<div>[[Category:File managers]]<br />
[[ar:Thunar]]<br />
[[es:Thunar]]<br />
[[fr:Thunar]]<br />
[[it:Thunar]]<br />
[[ja:Thunar]]<br />
[[pl:Thunar]]<br />
[[ru:Thunar]]<br />
[[zh-CN:Thunar]]<br />
{{Related articles start}}<br />
{{Related|Xfce}}<br />
{{Related|File manager functionality}}<br />
{{Related|GNOME Files}}<br />
{{Related|PCManFM}}<br />
{{Related|Nemo}}<br />
{{Related articles end}}<br />
<br />
From the project [http://docs.xfce.org/xfce/thunar/start home page]:<br />
: ''Thunar is a modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time.''<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|thunar}} package. It is part of the {{Grp|xfce4}} group, so if you are running [[Xfce]], you probably already have Thunar installed.<br />
<br />
=== Plugins and addons ===<br />
<br />
* {{App|Thunar Archive Plugin|Plugin which allows you to create and extract archive files using contextual menu items. It does not create or extract archives directly, but instead acts as a frontend for other programs such as File Roller ({{Pkg|file-roller}}), Ark ({{Pkg|ark}}) or Xarchiver ({{Pkg|xarchiver}}). Part of {{Grp|xfce4-goodies}}.|http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin|{{Pkg|thunar-archive-plugin}}}}<br />
* {{App|Thunar Media Tags Plugin|Plugin which allows you to view detailed information about media files. It also has a bulk renamed and allows editing of media tags. It supports ID3 (the MP3 file format's system) and Ogg/Vorbis tags. Part of {{Grp|xfce4-goodies}}.|http://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin|{{Pkg|thunar-media-tags-plugin}}}}<br />
* {{App|Thunar Shares Plugin|Plugin which allows you to quickly share a folder using Samba from Thunar without requiring root access. See also [[Samba#Creating usershare path|how to configure directions]].|http://goodies.xfce.org/projects/thunar-plugins/thunar-shares-plugin|{{AUR|thunar-shares-plugin}}}}<br />
* {{App|[[ #Thunar Volume Manager|Thunar Volume Manager]]|Automatic management of removeable devices in Thunar. Part of {{Grp|xfce4}}.|http://goodies.xfce.org/projects/thunar-plugins/thunar-volman|{{Pkg|thunar-volman}}}}<br />
* {{App|Tumbler|External program to generate thumbnails. Also install {{Pkg|ffmpegthumbnailer}} to enable video thumbnailing.|http://git.xfce.org/xfce/tumbler/tree/README|{{Pkg|tumbler}}}}<br />
* {{App|RAW Thumbnailer|A lightweight and fast raw image thumbnailer that is needed to display raw thumbnails.|https://code.google.com/p/raw-thumbnailer/|{{Pkg|raw-thumbnailer}}}}<br />
* {{App|libgsf|The GNOME Structured File Library is a utility library for reading and writing structured file formats. Install if you need support for odf thumbnails|http://directory.fsf.org/wiki/Libgsf|{{Pkg|libgsf}}}}<br />
<br />
{{Tip|For additional functionality, such as {{ic|mtp}} or {{ic|smb}} services access from Thunar, see [[GVFS]]. Also see [[File manager functionality]] for more details.}}<br />
<br />
== Thunar Volume Manager ==<br />
<br />
While Thunar can support automatic mounting and unmounting of removable media, the Thunar Volume Manager allows extended functionality, such as automatically running commands or automatically opening a Thunar window for mounted media.<br />
<br />
=== Installation ===<br />
<br />
Thunar Volume Manager can be installed from the package {{Pkg|thunar-volman}} in the official repositories.<br />
<br />
{{Tip|To let Thunar handle automatic mounting, one must launch thunar in daemon mode. [[#Starting in daemon mode]] }}<br />
<br />
=== Configuration ===<br />
<br />
It can also be configured to execute certain actions when cameras and audio players are connected. <br />
After installing the plugin:<br />
# Launch Thunar and go to ''Edit > Preferences''<br />
# Under the 'Advanced' tab, check 'Enable Volume Management'<br />
# Click configure and check the following items:<br />
#* Mount removable drives when hot-plugged.<br />
#* Mount removable media when inserted.<br />
# Also make desired changes (see the example below)<br />
Here's an example setting for making Amarok play an audio CD.<br />
Multimedia - Audio CDs: {{ic|amarok --cdplay %d}}<br />
<br />
== Tips and tricks ==<br />
<br />
=== Automounting of large external drives ===<br />
If Thunar refuses to mount large removable media (size > 1TB) although thunar-volman and gvfs has been installed, then try installing a different automounter such as {{Pkg|udevil}} or {{Pkg|udiskie}}. The latter should be preferred as it uses udisks2 and thus is compatible with gvfs. To start udiskie with udisks2 support, add the following line to your autostart file:<br />
<br />
udiskie -2 &<br />
<br />
=== Using Thunar to browse remote locations ===<br />
<br />
Since Xfce 4.8 (Thunar 1.2) it is possible to browse remote locations (such as FTP servers or Samba shares) directly in Thunar. To enable this functionality ensure that {{Pkg|gvfs}}, {{Pkg|gvfs-smb}} and {{Pkg|sshfs}} packages are installed. A 'Network' entry is visible in Thunar's side bar and remote locations can be opened by using the following URI schemes in the location dialog (opened with {{ic|Ctrl+l}}): smb://, <nowiki>ftp://</nowiki>, ssh://, sftp://, davs:// & followed by the server hostname or IP address.<br />
<br />
There is no URI scheme for [[NFS]] shares, but Thunar can issue a {{ic|mount}} command if you setup your [[fstab]] properly.<br />
{{hc|/etc/fstab|<br />
# nas1 server<br />
nas1:/c/home /media/nas1/home nfs noauto,user,_netdev,bg 0 0}}<br />
<br />
What's important here is the {{ic|noauto}} which prevents the share from being mounted until you click on it, {{ic|user}} which allows any user to mount (and unmount) the share, {{ic|_netdev}} which makes network connectivity a pre-requisite, and finally {{ic|bg}} which puts the mounting operation the background so if your server requires some spin-up time you won't have to deal with time out messages and re-clicking until it works.<br />
<br />
{{Tip|If you want to permanently store passphrases of remote filesystem locations, you have to install [[GNOME Keyring]].}}<br />
<br />
=== Starting in daemon mode ===<br />
<br />
Thunar may be run in daemon mode. This has several advantages, including a faster startup for Thunar, Thunar running in the background and only opening a window when necessary (for instance, when a flash drive is inserted), and letting Thunar handle automatic mounting of removable media.<br />
<br />
Make sure the command {{ic|thunar --daemon}} is autostarted on login. See [[Xfce]] and [[Autostarting]] for more details.<br />
<br />
=== Solving problem with slow cold start ===<br />
<br />
Some people still have problems with Thunar taking a long time to start for the first time. This is due to gvfs checking the network, preventing Thunar from starting until gvfs finishes its operations. To change this behaviour, edit {{ic|/usr/share/gvfs/mounts/network.mount}} and change '''AutoMount=true''' to '''AutoMount=false'''.<br />
<br />
=== Hide Shortcuts in Side Pane ===<br />
<br />
There is a hidden menu to hide Shortcuts in the Side Pane.<br />
<br />
Right click in the Side Pane where there are no shortcuts, like on the DEVICES section label. Then you will get a pop-up menu where you can uncheck items you do not want displayed.<br />
<br />
=== Assign keyboard shortcuts in Thunar ===<br />
<br />
See [[GTK+#Keyboard shortcuts]],<br />
<br />
=== Showing partitions defined in fstab ===<br />
<br />
By default Thunar will not show in devices any partitions defined in {{ic|/etc/fstab}} besides the root partition.<br />
<br />
We can change that by adding the option '''comment=x-gvfs-show''' to fstab for the partition we wish to show.<br />
<br />
== Custom actions ==<br />
<br />
This section covers useful custom actions which can be accessed through {{ic|Edit -> Configure custom actions}} and which are stored in {{ic|~/.config/Thunar/uca.xml}}. More examples are listed in the [http://docs.xfce.org/xfce/thunar/custom-actions thunar wiki]. Furthermore, [http://duncanlock.net/blog/2013/06/28/useful-thunar-custom-actions/ this] blog post provides a comprehensive collection of custom actions.<br />
<br />
=== Search for files and folders ===<br />
<br />
To use this action you need to have {{Pkg|catfish}} installed. The optional dependency {{Pkg|mlocate}} should be installed as well.<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Search<br />
| {{ic|1=catfish --path=%f}} || * || Directories<br />
|}<br />
<br />
=== Scan for viruses ===<br />
<br />
To use this action you need to have {{Pkg|clamav}} and {{AUR|clamtk}} installed.<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Scan for virus<br />
| {{ic|clamtk %F}} || * || Select all<br />
|}<br />
<br />
=== Link to Dropbox ===<br />
<br />
{| class="wikitable"<br />
! Name !! Command !! File patterns !! Appears if selection contains<br />
|-<br />
! Link to Dropbox<br />
| {{ic|ln -s %f /path/to/DropboxFolder}} || * || Directories, other files<br />
|}<br />
<br />
Please note that when using many custom actions to symlink files and folder to a particular place, it might be useful to put them into the {{ic|Send To}} folder of the context menu to avoid that the menu itself gets bloated. This is fairly easy to achieve and requires a .desktop file in {{ic|~/.local/share/Thunar/sendto}} for each action to perform. Say we want to put the above Dropbox symlink action into Send To, we create a {{ic|dropbox_folder.desktop}} with the following content. The new applied action will be active after restarting Thunar.<br />
<br />
{{bc|<nowiki><br />
[Desktop Entry]<br />
Type=Application<br />
Version=1.0<br />
Encoding=UTF-8<br />
Exec=ln -s %f /path/to/DropboxFolder<br />
Icon=/usr/share/icons/dropbox.png<br />
Name=Dropbox<br />
</nowiki>}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Tumblerd hangs up, uses too much CPU ===<br />
<br />
Tumblerd, the service that watches the file system and notifies the system when a thumbnail needs to be made may get stuck in a loop, using 100% of the system's CPU, see the [https://bugzilla.xfce.org/show_bug.cgi?id=7384 bug report]. The following script is a temporary workaround to stop this from happening. Copy, and paste this into a ''.sh'' file, save it somewhere in your home directory, mark the file as executable then set up the system to autostart it at system startup. <br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
period=20<br />
tumblerpath="/usr/lib/*/tumbler-1/tumblerd" # The * here should find the right one, whether 32 and 64-bit<br />
cpu_threshold=50<br />
mem_threshold=20<br />
max_strikes=2 # max number of above cpu/mem-threshold's in a row<br />
log="/tmp/tumblerd-watcher.log"<br />
<br />
if [[ -n "${log}" ]]; then<br />
cat /dev/null > "${log}"<br />
exec >"${log}" 2>&1<br />
fi<br />
<br />
<br />
strikes=0<br />
while sleep "${period}"; do<br />
while read pid; do<br />
cpu_usage=$(ps --no-headers -o pcpu -f "${pid}"|cut -f1 -d.)<br />
mem_usage=$(ps --no-headers -o pmem -f "${pid}"|cut -f1 -d.)<br />
<br />
if [[ $cpu_usage -gt $cpu_threshold ]] || [[ $mem_usage -gt $mem_threshold ]]; then<br />
echo "$(date +"%F %T") PID: $pid CPU: $cpu_usage/$cpu_threshold %cpu MEM: $mem_usage/$mem_threshold STRIKES: ${strikes} NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
(( strikes++ ))<br />
if [[ ${strikes} -ge ${max_strikes} ]]; then<br />
kill "${pid}"<br />
echo "$(date +"%F %T") PID: $pid KILLED; NPROCS: $(pgrep -c -f ${tumblerpath})"<br />
strikes=0<br />
fi<br />
else<br />
strikes=0<br />
fi<br />
done < <(pgrep -f ${tumblerpath})<br />
done<br />
</nowiki>}}<br />
<br />
=== Trash/network icons disappear randomly ===<br />
<br />
Make sure all Thunar instances start '''after''' ''gvfs''. [https://bugs.launchpad.net/ubuntu/+source/thunar/+bug/1057610] For {{ic|thunar --daemon}}, you can create a wrapper that waits until GVFS is active:<br />
<br />
{{Note|{{ic|/usr/local/bin}} should come before {{ic|/usr/bin}} in {{ic|$PATH}}.}}<br />
<br />
{{hc|/usr/local/bin/Thunar|<nowiki><br />
#!/bin/bash<br />
if [[ $1 == --daemon ]]; then<br />
until pgrep gvfs >/dev/null; do<br />
sleep 1<br />
done<br />
exec /usr/bin/Thunar "$@"<br />
else<br />
exec /usr/bin/Thunar "$@"<br />
fi<br />
</nowiki>}}<br />
<br />
=== Not authenticated to mount filesystems ===<br />
<br />
See [[File manager functionality#Troubleshooting]].<br />
<br />
== See also ==<br />
<br />
* [http://docs.xfce.org/xfce/thunar/start Thunar] project page<br />
* [http://goodies.xfce.org/projects/thunar-plugins/thunar-volman Thunar Volume Manager] project page<br />
* This [http://goodies.xfce.org/projects/thunar-plugins/start list] of plugins</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=441858Apache HTTP Server (한국어)2016-07-17T14:44:46Z<p>Sukbeom: </p>
<hr />
<div>[[Category:Web server]]<br />
[[cs:Apache HTTP Server]]<br />
[[de:LAMP Installation]]<br />
[[el:Apache HTTP Server]]<br />
[[en:Apache HTTP Server]]<br />
[[es:Apache HTTP Server]]<br />
[[fr:Lamp]]<br />
[[it:Apache HTTP Server]]<br />
[[ja:LAMP]]<br />
[[pl:Apache HTTP Server]]<br />
[[ru:Apache HTTP Server]]<br />
[[sr:Apache HTTP Server]]<br />
[[tr:LAMP]]<br />
[[zh-cn:Apache HTTP Server]]<br />
{{Related articles start}}<br />
{{Related|PHP}}<br />
{{Related|MySQL}}<br />
{{Related|PhpMyAdmin}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
[[Wikipedia:Apache HTTP Server|Apache HTTP Server]](생략해서 Apache라고도 한다)는 아파치 소프트웨어 재단에서 개발된 유명한 웹 서버이다.<br />
<br />
아파치는 보통 MySQL 같은 데이터베이스와 PHP 등의 스크립트 언어와 함께 사용된다. 이러ᅟ한 아파치와의 연동을 흔히 [[Wikipedia:LAMP (software bundle)|LAMP]] stack ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP)이라고 불린다. 이 문서에서는 아파치 서버 구축 방법과 [[PHP]], [[MySQL]] 연동 방법에 대해서 설명한다.<br />
<br />
== 설치 ==<br />
{{Pkg|apache}} 패키지를 설치([[Install]])한다.<br />
<br />
== 설정 ==<br />
아파치 설정 파일들은 {{ic|/etc/httpd/conf}}에 위치한다. 주(主) 파일은 {{ic|/etc/httpd/conf/httpd.conf}}로서 다른 설정파일들을 포함한다. <br />
기본 설정파일은 아파치 설치 과정에서 자동으로 생성되며 정상적으로 동작하는 설정 파일이다. 기본 설정파일은 {{ic|/srv/http}} 디렉토리를 서버의 웹페이지에 접속한 사용자에게 제공한다.<br />
<br />
아파치 서버 서비스를 시작하기 위해서는 [[systemd#Using units|systemd]]를 이용하여 {{ic|httpd.service}}를 시작한다.<br />
<br />
서비스 시작 후에는 아파치 서버가 정상적으로 동작하고 있을 것이다. 서버의 동작여부를 확인하기 위해서는 웹 브라우저에서 http://localhost/로 접속한다. 접속하면 간단한 인덱스 페이지가 출력될 것이다.<br />
<br />
아파치 설정에 관련된 자세한 정보는 이어지는 절을 참고한다.<br />
<br />
=== 고급 옵션 ===<br />
아래에 열거된 옵션들은 {{ic|/etc/httpd/conf/httpd.conf}} 파일 내에 정의되어 있는 것으로서, 서버를 구축하고자 하는 사용자에게 유용한 옵션들이다.<br />
<br />
User http<br />
:아파치는 보안 문제 때문에 root 관리자에 의해 시작된 뒤 곧바로 http UID로 전환된다. 설정파일에 기본으로 등록되는 사용자는 http이며 해당 사용자는 아파치 설치 과정에서 자동으로 생성된다.<br />
<br />
Listen 80<br />
:아파치 서버에서 열어 놓을 포트를 설정한다. 라우터를 이용한 인터넷 접근을 위해서는 반드시 포트포워딩을 설정해주어야 한다.<br />
<br />
:만일 아파치 서버를 로컬에서만 접속이 허용되도록 설정하고 싶다면, 해당 줄 내용을 {{ic|Listen 127.0.0.1:80}}으로 변경한다.<br />
<br />
ServerAdmin you@example.com<br />
:관리자의 이메일 주소를 설정한다. 설정된 이메일 주소는 에러 페이지에서 관리자 메일로 표시된다.<br />
<br />
DocumentRoot "/srv/http"<br />
:호스팅할 웹 페이지들이 위치하는 디렉토리 위치<br />
<br />
:DocumentRoot를 변경하면 {{ic|<Directory "/srv/http">}}도 변경해야한다. 그렇지 않으면 변경된 DocumentRoot에 접근할 때 '''403 에러'''(권한 부족 에러)가 발생한다. 또한, {{ic|Require all denied}} 부분을 {{ic|Require all granted}}으로 변경해야 한다. 해당 라인을 바꾸지 않는 경우에도 '''403 에러'''가 발생할 수 있다. 언급한 두 가지 경우 외에, DocumentRoot 디텍토리와 그 부모 디렉토리의 권한 문제가 있는 경우에도 '''403 에러'''가 발생될 수 있다.<br />
<br />
두 개의 디렉토리(DocumentRoot, DocumentRoot의 부모 디렉토리)는 반드시 다른 사용자들에게도 실행권한이 부여되어야 한다. ({{ic|chmod o+x /path/to/DocumentRoot}}를 통해 설정할 수 있다)<br />
<br />
위에서 언급된 권한관련 해결방법에는 몇 가지 논란이 있다. 반드시 모든 사용자들에게 실행 권한을 줄 필요가 없고 ACL을 통해 웹서버에만 실행 권한을 줄 수 있는 방법이 있기 때문이다. 자세한 내용은 다음 링크를 살펴보자. [[Access Control Lists#Granting execution permissions for private files to a Web Server]], [[https://wiki.archlinux.org/index.php/Talk:Apache_HTTP_Server]]<br />
<br />
AllowOverride None<br />
:{{ic|<Directory>}} 섹션 안의 위 디렉티브는 아파치가 {{ic|.htaccess}} 파일을 완전하게 무시하도록 설정해준다. 하지만 아피치 2.4버전 이후부터 해당 옵션은 기본으로 되어있기 때문에 {{ic|.htaccess}} 파일을 사용하고 싶다면 명시적으로 허용해주어야 한다. {{ic|.htaccess}}에서 {{ic|mod_rewrite}} 혹은 다른 설정들을 사용하고 싶다면 .htaccess파일에 관련 디렉티브를 선언함으로써 서버 설정을 오버라이딩 해야 한다. 이에 관련된 자세한 내용은 다음 링크를 참고한다. [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache documentation].<br />
<br />
{{Tip|만약 아파치 설정파일과 관련된 이슈가 있다면 다음 명령어를 통해 설정파일을 점검할 수 있다: {{ic|apachectl configtest}}}}<br />
<br />
더 많은 설정 옵션들은 다음 파일에서 확인할 수 있다: {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
서버 서명을 비활성화하려면 다음 라인을 추가한다:<br />
ServerSignature Off<br />
<br />
아파치와 PHP 버전과 같은 서버 정보를 숨기려면 다음 라인을 추가한다:<br />
ServerTokens Prod<br />
<br />
=== 사용자 디렉토리 ===<br />
<br />
사용자 디렉토리는 기본적으로 http://localhost/~yourusername/를 통해서 접근 가능하며, {{ic|~/public_html}}의 내용을 표시한다. ({{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}에서 변경이 가능하다).<br />
<br />
만일 유저 디렉토리를 원하지 않는 경우에는 {{ic|/etc/httpd/conf/httpd.conf}} 파일에서 다음 라인을 주석처리한다:<br />
<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
아파치가 사용자의 홈디렉토리에 접근하기 위해서는 반드시 디렉토리의 권한을 적절하게 설정해 주어야 한다. 홈 디렉토리와 {{ic|~/public_html}}은 반드시 다른 사용자들이 실행권한을 갖고 있어야 한다. (혹은 ACL을 통해 아파치 사용자 http에 한해서만 허용하도록 한다.)<br />
<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
$ chmod -R o+r ~/public_html<br />
<br />
권한 설정이 완료되면 {{ic|httpd.service}}를 재시작한다. [[Umask#Set the mask value]] 참고.<br />
<br />
=== TLS/SSL ===<br />
{{Warning|SSL/TLS 구현하고자 한다면 몇몇 변수들과 구현부분에서 [https://weakdh.org/#affected 여전히] [[wikipedia:Transport_Layer_Security#Attacks_against_TLS.2FSSL|공격에 취약]]하다는 것을 알고 있어야 한다. 현재 SSL/TLS에서의 취약점과 웹 서버에 어떻게 반영시켜야 하는지 알고 싶다면 http://disablessl3.com/와 https://weakdh.org/sysadmin.html 사이트를 방문하면 더 자세한 정보를 얻을 수 있다.}}<br />
{{pkg|openssl}}는 TLS/SSL을 지원하고 아치에서 기본으로 설치된다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}}파일에서 다음 세 개의 라인의 주석처리를 해제한다:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
TLS/SSL를 위해서는 키와 인증이 필요하다. 만약 공공 도메인을 가지고 있다면 무료로 인증을 받기 위해 [[Let's Encrypt]]를 사용할 수 있다. 공공 도메인을 가지고 있지 않다면 [[#키 생성과 자체 서명 인증]]방법을 참고한다.<br />
<br />
키와 인증을 얻고 나서는 {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}} 파일 내의 {{ic|SSLCertificateFile}}, {{ic|SSLCertificateKeyFile}} 라인에서 해당 키와 인증을 가리키도록 설정한다.<br />
<br />
마지막으로 변경 사항 적용을 위해 {{ic|httpd.service}} 를 재시작한다.<br />
<br />
{{Tip|Mozilla has a useful [https://wiki.mozilla.org/Security/Server_Side_TLS SSL/TLS article] which includes [https://wiki.mozilla.org/Security/Server_Side_TLS#Apache Apache specific] configuration guidelines as well as an [https://mozilla.github.io/server-side-tls/ssl-config-generator/ automated tool] to help create a more secure configuration.}}<br />
<br />
==== 키 생성과 자체 서명 인증 방법 ====<br />
<br />
개인키와 자체 서명 인증을 생성한다. 이것은 [[wikipedia:Certificate signing request|CSR]]가 요구되지 않는 대부분의 설치로는 적절하다.<br />
<br />
# cd /etc/httpd/conf<br />
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 1095<br />
# chmod 400 server.key<br />
<br />
{{Note|-days 스위치는 옵션이며 RSA 키 크기는 최소 2048(기본값) 이상이어야 한다.}}<br />
<br />
만약 [[wikipedia:Certificate signing request|CSR]]의 생성이 필요하다면, 위의 방법 대신 아래의 키 생성 방법을 따르도록 한다.<br />
<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key<br />
# chmod 400 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 1095 -in server.csr -signkey server.key -out server.crt<br />
<br />
{{Note|더 많은 openssl 옵션을 보려면 [https://www.openssl.org/docs/apps/openssl.html man page] 또는 peruse openssl의 [https://www.openssl.org/docs/ extensive documentation]를 참고한다.}}<br />
<br />
=== 가상 호스트 ===<br />
<br />
{{Note|SSL 가상 호스트를 사용하기 위해서는 독립적인 <VirtualHost dommainame:443> 섹션을 추가해야한다. 관련된 예제는 다음 링크를 참고한다: [[#Managing many virtual hosts]]}}<br />
<br />
한 개 이상의 호스트를 원하는 경우에 {{ic|/etc/httpd/conf/httpd.conf}} 설정 파일에서 아래 기술된 부분의 주석을 해제한다.<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
또한, {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} 파일에서 가상 호스트를 설정할 수 있다. 제공되는 기본 설정파일에는 자세한 예제가 많기 때문에 호스트 설정을 위해 참고하기에 유용하다.<br />
<br />
로컬 머신에서 가상 호스트를 테스트하고 싶다면, {{ic|/etc/hosts}} 파일에 가상 도메인명을 다음과 같이 등록한다:<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
파일 변경 후, 설정 적용을 위해 {{ic|httpd.service}}를 재시작한다.<br />
<br />
==== 가상 호스트 관리 ====<br />
<br />
이 절에서는 엄청나게 많은 가상 호스트를 가지고 있는 경우에 가상 호스트들을 관리하는 방법에 대하여 기술한다. 이러한 경우에는 가상 호스트별로 설정 파일을 만들고 이를 하나의 디렉토리(예: {{ic|/etc/httpd/conf/vhosts}})에 저장하는 것을 권장한다. <br />
<br />
먼저 디렉토리를 하나 생성한다:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
각 가상 호스트별 설정 파일을 생성한 디렉토리 안에 생성한다:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
마지막으로 아파치 메인 설정파일인 {{ic|/etc/httpd/conf/httpd.conf}} 안에 {{ic|Include}}를 사용하서 가상 호스트별로 생성해둔 설정 파일들을 포함시킨다:<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
<br />
위처럼 각각의 가상 호스트를 주석처리를 통해 간단하게 활성화/비활성화할 수 있다.<br />
<br />
다음은 각 가상 호스트별 파일의 예제이다:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/apache.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/apache.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== 확장 모듈(Extensions) ==<br />
<br />
=== PHP ===<br />
[[PHP]] 설치를 위해서는 {{Pkg|php}}, {{Pkg|php-apache}} 패키지를 설치한다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}} 파일에서 아래의 줄을 주석처리 한다:<br />
#LoadModule mpm_event_module modules/mod_mpm_event.so<br />
그리고 아래의 줄의 주석을 해제한다:<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
<br />
{{Note|1={{pkg|php-apache}}에 포함된 {{ic|libphp7.so}}이 {{ic|mod_mpm_event}}와는 제대로 동작하지 않고 {{ic|mod_mpm_prefork}}에서만 정상적으로 동작하기 때문에 위에서 기술된 것처럼 설정해주어야 한다.(참고: {{bug|39218}})<br />
<br />
위의 처리를 해주지 않는 경우 다음과 같은 에러 메세지가 출력된다:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
또 다른 해결 방법으로, {{ic|mod_proxy_fcgi}}를 사용하는 방법이 있다. 자세한 방법은 이하 절의 [[#Using php-fpm and mod_proxy_fcgi]]를 참고한다.<br />
}}<br />
<br />
PHP를 활성화하기 위해서 {{ic|/etc/httpd/conf/httpd.conf}} 파일에 아래 코드를 추가해준다:<br />
*{{ic|LoadModule}} 리스트에서, {{ic|LoadModule dir_module modules/mod_dir.so}} 다음의 원하는 곳에 아래 코드를 추가한다:<br />
LoadModule php7_module modules/libphp7.so<br />
*{{ic|Include}} 리스트 마지막 부분에 다음을 추가한다:<br />
Include conf/extra/php7_module.conf<br />
<br />
설정을 완료한 후, [[systemd#Using units|systemd를 사용하여]] {{ic|httpd.service}}를 재시작한다. <br />
<br />
PHP가 올바르게 설정되었는지 확인하려면 아파치 {{ic|DocumentRoot}} 디렉토리(예. {{ic|/srv/http/}} 혹은 {{ic|~/public_html}})에 {{ic|test.php}} 파일을 생성하여 다음 코드를 해당 파일에 추가한다:<br />
<?php phpinfo(); ?><br />
파일을 저장한 뒤, PHP가 제대로 작동하는지 확인하기 위하여 브라우저를 통해 다음 URL을 연다: http://localhost/test.php 또는 http://localhost/~myname/test.php<br />
<br />
더 많은 설정 옵션과 확장 모듈(extensions)에 대한 정보는 [[PHP]]를 참고한다.<br />
<br />
==== php-fpm, mod_proxy_fcgi 사용하기 ====<br />
<br />
{{Note|널리 알려진 ProxyPass를 이용한 설정과 다르게 SetHandler를 이용한 프록시 설정은 DirectoryIndex와 같이 아파치에서 사용되는 디렉티브를 방해하지 않는다. 이러한 특징ᅟ 덕분에 libphp7, mod_fastcgi, mod_fcgid 등으로 디자인된 소프트웨어와 더 나은 호환성을 보장한다. 하지만 그래도 ProxyPass를 계속해서 사용하고 싶다면, 아래 코드와 같이 시도하여 사용할 수 있다:<br />
{{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
{{pkg|php-fpm}} 패키지를 설치한다.<br />
<br />
아래의 내용으로 {{ic|/etc/httpd/conf/extra/php-fpm.conf}} 파일을 생성한다:<br />
{{hc|/etc/httpd/conf/extra/php-fpm.conf|<nowiki><br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<Proxy "fcgi://localhost/" enablereuse=on max=10><br />
</Proxy><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
</nowiki>}}<br />
<br />
그리고 나서 {{ic|/etc/httpd/conf/httpd.conf}} 파일의 최하단에 include 코드를 추가한다:<br />
Include conf/extra/php-fpm.conf<br />
<br />
{{Note|위 코드에서 {{ic|sock}}과 {{ic|fcgi}} 사이의 파이프 좌우로 빈칸은 허용되지 않는 점에 유의해야 한다. {{ic|localhost}}는 다른 문자열로 치환될 수 있으며, 치환된 문자열은 반드시 {{ic|SetHandler}}와 {{ic|Proxy}} 디렉티브에서도 일치해야 한다. 더 자세한 정보는 [https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html 이곳]에서 확인할 수 있다. {{ic|SetHandler}}와 {{ic|Proxy}}는 가상 호스트 설정 파일별로 사용가능하지만 {{ic|fcgi://}} 이후의 이름은 반드시 가상 호스트들끼리 서로 달라야 한다.}}<br />
<br />
{{ic|/etc/php/php-fpm.d/www.conf}}에서 PHP-FPM을 설정할 수 있지만 기본 설정으로도 정상적으로 동작한다.<br />
<br />
{{Note|<br />
아래 코드는 더이상 필요하지 않기 때문에 만약 {{ic|httpd.conf}} 파일에 추가했다면 삭제하도록 한다.<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
{{ic|httpd.service}}와 {{ic|php-fpm.service}}를 재시작한다.<br />
<br />
==== apache2-mpm-worker, mod_fcgid 사용하기 ====<br />
{{pkg|mod_fcgid}}와 {{Pkg|php-cgi}} 패키지를 설치한다.<br />
<br />
PHP wrapper를 위해 필요한 디렉토리와 심볼릭 링크를 만들어준다:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
다음 내용으로 {{ic|/etc/httpd/conf/extra/php-fcgid.conf}} 파일을 생성한다:<br />
{{hc|/etc/httpd/conf/extra/php-fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule><br />
</nowiki>}}<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}} 파일을 편집하여 actions 모듈을 활성화한다:<br />
LoadModule actions_module modules/mod_actions.so<br />
<br />
다음을 추가해준다.<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/httpd-mpm.conf<br />
Include conf/extra/php-fcgid.conf<br />
<br />
{{Note|<br />
아래 코드는 더이상 필요하지 않기 때문에 만약 {{ic|httpd.conf}} 파일에 추가했다면 삭제하도록 한다.<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
{{ic|httpd.service}}을 재시작한다.<br />
<br />
==== MySQL/MariaDB ====<br />
<br />
[[PHP#MySQL/MariaDB]] 위키페이지의 설명서를 따른다.<br />
<br />
설정이 완료되면 {{ic|httpd.service}}를 재시작한다.<br />
<br />
=== HTTP2 ===<br />
<br />
HTTP/2 지원을 위해서는 {{Pkg|nghttp2}} 패키지를 설치해야 한다.<br />
<br />
설치 후에 {{ic|httpd.conf}} 파일에서 다음 줄의 주석을 해제한다:<br />
LoadModule http2_module modules/mod_http2.so<br />
<br />
다음 줄을 추가한다:<br />
Protocols h2 http/1.1<br />
<br />
더 자세한 내용은 [https://httpd.apache.org/docs/2.4/mod/mod_http2.html mod_http2] 문서를 참고한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== 아파치 서버 상태와 로그 ===<br />
<br />
[[systemctl]]를 통해 아파치 데몬의 현재 상태를 확인할 수 있다.<br />
<br />
아파치 로그파일은 {{ic|/var/log/httpd/}}에서 찾을 수 있다.<br />
<br />
=== Error: PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
{{ic|httpd.conf}}파일에서 {{ic|unique_id_module}} 부분을 주석처리한다: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. ===<br />
<br />
{{ic|httpd.service}}가 {{ic|php7_module}}을 로딩할 때 다음과 같은 에러메세지가 출력되는 경우:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
설정파일에서 다음과 같이 {{ic|mpm_event_module}}를 {{ic|mpm_prefork_module}}로 바꿔준다:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
그리고나서, {{ic|httpd.service}}를 재시작한다.<br />
<br />
=== AH00534: httpd: Configuration error: No MPM loaded. ===<br />
<br />
아파치를 최신 버전으로 업그레이드하면서 나타나는 문제다. 이는 최신 아파치 설정 부분에서 변경된 부분이 이전의 설정파일에 반영되지 않았기 때문에 생기는 문제로서 다음 부분의 주석을 해제해주면 해결이 가능하다.<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
이 후에도 계속해서 에러메세지가 출력된다면 [[#Apache_is_running_a_threaded_MPM.2C_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.|위에서 언급된 부분]]을 참고한다.<br />
<br />
=== Changing the max_execution_time in php.ini has no effect ===<br />
<br />
{{ic|php.ini}}파일에서 {{ic|max_execution_time}}의 값을 30(초)보다 큰 값으로 변경하면 30초 후에 아파치로부터 {{ic|503 Service Unavailable}}라는 응답을 받게 된다. 이를 해결하기 위해서는 http 설정에서 {{ic|<FilesMatch \.php$>}} 부분 이전에 {{ic|ProxyTimeout}} 디렉티브를 추가해주면 해결 가능하다:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
ProxyTimeout 300<br />
}}<br />
<br />
변경 후에는 {{ic|httpd.service}}를 재시작한다.<br />
<br />
== 참조 ==<br />
<br />
* [http://www.apache.org/ Apache Official Website]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Tutorial for creating self-signed certificates]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Apache Wiki Troubleshooting]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=441856Apache HTTP Server (한국어)2016-07-17T14:31:21Z<p>Sukbeom: </p>
<hr />
<div>[[Category:Web server]]<br />
[[cs:Apache HTTP Server]]<br />
[[de:LAMP Installation]]<br />
[[el:Apache HTTP Server]]<br />
[[en:Apache HTTP Server]]<br />
[[es:Apache HTTP Server]]<br />
[[fr:Lamp]]<br />
[[it:Apache HTTP Server]]<br />
[[ja:LAMP]]<br />
[[pl:Apache HTTP Server]]<br />
[[ru:Apache HTTP Server]]<br />
[[sr:Apache HTTP Server]]<br />
[[tr:LAMP]]<br />
[[zh-cn:Apache HTTP Server]]<br />
{{Related articles start}}<br />
{{Related|PHP}}<br />
{{Related|MySQL}}<br />
{{Related|PhpMyAdmin}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
[[Wikipedia:Apache HTTP Server|Apache HTTP Server]](생략해서 Apache라고도 한다)는 아파치 소프트웨어 재단에서 개발된 유명한 웹 서버이다.<br />
<br />
아파치는 보통 MySQL 같은 데이터베이스와 PHP 등의 스크립트 언어와 함께 사용된다. 이러ᅟ한 아파치와의 연동을 흔히 [[Wikipedia:LAMP (software bundle)|LAMP]] stack ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP)이라고 불린다. 이 위ᅟᅵ키페이지에서는 아파치 서버 구축 방법과 [[PHP]], [[MySQL]] 연동 방법에 대해서 설명한다.<br />
<br />
== 설치 ==<br />
{{Pkg|apache}} 패키지를 설치([[Install]])한다.<br />
<br />
== 설정 ==<br />
아파치 설정 파일들은 {{ic|/etc/httpd/conf}}에 위치한다. 주(主) 파일은 {{ic|/etc/httpd/conf/httpd.conf}}로서 다른 설정파일들을 포함한다. <br />
기본 설정파일은 아파치 설치 과정에서 자동으로 생성되며 정상적으로 동작하는 설정 파일이다. 기본 설정파일은 {{ic|/srv/http}} 디렉토리를 서버의 웹페이지에 접속한 사용자에게 제공한다.<br />
<br />
아파치 서버 서비스를 시작하기 위해서는 [[systemd#Using units|systemd]]를 이용하여 {{ic|httpd.service}}를 시작한다.<br />
<br />
서비스 시작 후에는 아파치 서버가 정상적으로 동작하고 있을 것이다. 서버의 동작여부를 확인하기 위해서는 웹 브라우저에서 http://localhost/로 접속한다. 접속하면 간단한 인덱스 페이지가 출력될 것이다.<br />
<br />
아파치 설정에 관련된 자세한 정보는 이어지는 절을 참고한다.<br />
<br />
=== 고급 옵션 ===<br />
아래에 열거된 옵션들은 {{ic|/etc/httpd/conf/httpd.conf}} 파일 내에 정의되어 있는 것으로서, 서버를 구축하고자 하는 사용자에게 유용한 옵션들이다.<br />
<br />
User http<br />
:아파치는 보안 문제 때문에 root 관리자에 의해 시작된 뒤 곧바로 http UID로 전환된다. 설정파일에 기본으로 등록되는 사용자는 http이며 해당 사용자는 아파치 설치 과정에서 자동으로 생성된다.<br />
<br />
Listen 80<br />
:아파치 서버에서 열어 놓을 포트를 설정한다. 라우터를 이용한 인터넷 접근을 위해서는 반드시 포트포워딩을 설정해주어야 한다.<br />
<br />
:만일 아파치 서버를 로컬에서만 접속이 허용되도록 설정하고 싶다면, 해당 줄 내용을 {{ic|Listen 127.0.0.1:80}}으로 변경한다.<br />
<br />
ServerAdmin you@example.com<br />
:관리자의 이메일 주소를 설정한다. 설정된 이메일 주소는 에러 페이지에서 관리자 메일로 표시된다.<br />
<br />
DocumentRoot "/srv/http"<br />
:호스팅할 웹 페이지들이 위치하는 디렉토리 위치<br />
<br />
:DocumentRoot를 변경하면 {{ic|<Directory "/srv/http">}}도 변경해야한다. 그렇지 않으면 변경된 DocumentRoot에 접근할 때 '''403 에러'''(권한 부족 에러)가 발생한다. 또한, {{ic|Require all denied}} 부분을 {{ic|Require all granted}}으로 변경해야 한다. 해당 라인을 바꾸지 않는 경우에도 '''403 에러'''가 발생할 수 있다. 언급한 두 가지 경우 외에, DocumentRoot 디텍토리와 그 부모 디렉토리의 권한 문제가 있는 경우에도 '''403 에러'''가 발생될 수 있다.<br />
<br />
두 개의 디렉토리(DocumentRoot, DocumentRoot의 부모 디렉토리)는 반드시 다른 사용자들에게도 실행권한이 부여되어야 한다. ({{ic|chmod o+x /path/to/DocumentRoot}}를 통해 설정할 수 있다)<br />
<br />
위에서 언급된 권한관련 해결방법에는 몇 가지 논란이 있다. 반드시 모든 사용자들에게 실행 권한을 줄 필요가 없고 ACL을 통해 웹서버에만 실행 권한을 줄 수 있는 방법이 있기 때문이다. 자세한 내용은 다음 링크를 살펴보자. [[Access Control Lists#Granting execution permissions for private files to a Web Server]], [[https://wiki.archlinux.org/index.php/Talk:Apache_HTTP_Server]]<br />
<br />
AllowOverride None<br />
:{{ic|<Directory>}} 섹션 안의 위 디렉티브는 아파치가 {{ic|.htaccess}} 파일을 완전하게 무시하도록 설정해준다. 하지만 아피치 2.4버전 이후부터 해당 옵션은 기본으로 되어있기 때문에 {{ic|.htaccess}} 파일을 사용하고 싶다면 명시적으로 허용해주어야 한다. {{ic|.htaccess}}에서 {{ic|mod_rewrite}} 혹은 다른 설정들을 사용하고 싶다면 .htaccess파일에 관련 디렉티브를 선언함으로써 서버 설정을 오버라이딩 해야 한다. 이에 관련된 자세한 내용은 다음 링크를 참고한다. [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache documentation].<br />
<br />
{{Tip|만약 아파치 설정파일과 관련된 이슈가 있다면 다음 명령어를 통해 설정파일을 점검할 수 있다: {{ic|apachectl configtest}}}}<br />
<br />
더 많은 설정 옵션들은 다음 파일에서 확인할 수 있다: {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
서버 서명을 비활성화하려면 다음 라인을 추가한다:<br />
ServerSignature Off<br />
<br />
아파치와 PHP 버전과 같은 서버 정보를 숨기려면 다음 라인을 추가한다:<br />
ServerTokens Prod<br />
<br />
=== 사용자 디렉토리 ===<br />
<br />
사용자 디렉토리는 기본적으로 http://localhost/~yourusername/를 통해서 접근 가능하며, {{ic|~/public_html}}의 내용을 표시한다. ({{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}에서 변경이 가능하다).<br />
<br />
만일 유저 디렉토리를 원하지 않는 경우에는 {{ic|/etc/httpd/conf/httpd.conf}} 파일에서 다음 라인을 주석처리한다:<br />
<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
아파치가 사용자의 홈디렉토리에 접근하기 위해서는 반드시 디렉토리의 권한을 적절하게 설정해 주어야 한다. 홈 디렉토리와 {{ic|~/public_html}}은 반드시 다른 사용자들이 실행권한을 갖고 있어야 한다. (혹은 ACL을 통해 아파치 사용자 http에 한해서만 허용하도록 한다.)<br />
<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
$ chmod -R o+r ~/public_html<br />
<br />
권한 설정이 완료되면 {{ic|httpd.service}}를 재시작한다. [[Umask#Set the mask value]] 참고.<br />
<br />
=== TLS/SSL ===<br />
{{Warning|SSL/TLS 구현하고자 한다면 몇몇 변수들과 구현부분에서 [https://weakdh.org/#affected 여전히] [[wikipedia:Transport_Layer_Security#Attacks_against_TLS.2FSSL|공격에 취약]]하다는 것을 알고 있어야 한다. 현재 SSL/TLS에서의 취약점과 웹 서버에 어떻게 반영시켜야 하는지 알고 싶다면 http://disablessl3.com/와 https://weakdh.org/sysadmin.html 사이트를 방문하면 더 자세한 정보를 얻을 수 있다.}}<br />
{{pkg|openssl}}는 TLS/SSL을 지원하고 아치에서 기본으로 설치된다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}}파일에서 다음 세 개의 라인의 주석처리를 해제한다:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
TLS/SSL를 위해서는 키와 인증이 필요하다. 만약 공공 도메인을 가지고 있다면 무료로 인증을 받기 위해 [[Let's Encrypt]]를 사용할 수 있다. 공공 도메인을 가지고 있지 않다면 [[#키 생성과 자체 서명 인증]]방법을 참고한다.<br />
<br />
키와 인증을 얻고 나서는 {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}} 파일 내의 {{ic|SSLCertificateFile}}, {{ic|SSLCertificateKeyFile}} 라인에서 해당 키와 인증을 가리키도록 설정한다.<br />
<br />
마지막으로 변경 사항 적용을 위해 {{ic|httpd.service}} 를 재시작한다.<br />
<br />
{{Tip|Mozilla has a useful [https://wiki.mozilla.org/Security/Server_Side_TLS SSL/TLS article] which includes [https://wiki.mozilla.org/Security/Server_Side_TLS#Apache Apache specific] configuration guidelines as well as an [https://mozilla.github.io/server-side-tls/ssl-config-generator/ automated tool] to help create a more secure configuration.}}<br />
<br />
==== 키 생성과 자체 서명 인증 방법 ====<br />
<br />
개인키와 자체 서명 인증을 생성한다. 이것은 [[wikipedia:Certificate signing request|CSR]]가 요구되지 않는 대부분의 설치로는 적절하다.<br />
<br />
# cd /etc/httpd/conf<br />
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 1095<br />
# chmod 400 server.key<br />
<br />
{{Note|-days 스위치는 옵션이며 RSA 키 크기는 최소 2048(기본값) 이상이어야 한다.}}<br />
<br />
만약 [[wikipedia:Certificate signing request|CSR]]의 생성이 필요하다면, 위의 방법 대신 아래의 키 생성 방법을 따르도록 한다.<br />
<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key<br />
# chmod 400 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 1095 -in server.csr -signkey server.key -out server.crt<br />
<br />
{{Note|더 많은 openssl 옵션을 보려면 [https://www.openssl.org/docs/apps/openssl.html man page] 또는 peruse openssl의 [https://www.openssl.org/docs/ extensive documentation]를 참고한다.}}<br />
<br />
=== 가상 호스트 ===<br />
<br />
{{Note|SSL 가상 호스트를 사용하기 위해서는 독립적인 <VirtualHost dommainame:443> 섹션을 추가해야한다. 관련된 예제는 다음 링크를 참고한다: [[#Managing many virtual hosts]]}}<br />
<br />
한 개 이상의 호스트를 원하는 경우에 {{ic|/etc/httpd/conf/httpd.conf}} 설정 파일에서 아래 기술된 부분의 주석을 해제한다.<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
또한, {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} 파일에서 가상 호스트를 설정할 수 있다. 제공되는 기본 설정파일에는 자세한 예제가 많기 때문에 호스트 설정을 위해 참고하기에 유용하다.<br />
<br />
로컬 머신에서 가상 호스트를 테스트하고 싶다면, {{ic|/etc/hosts}} 파일에 가상 도메인명을 다음과 같이 등록한다:<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
파일 변경 후, 설정 적용을 위해 {{ic|httpd.service}}를 재시작한다.<br />
<br />
==== 가상 호스트 관리 ====<br />
<br />
이 절에서는 엄청나게 많은 가상 호스트를 가지고 있는 경우에 가상 호스트들을 관리하는 방법에 대하여 기술한다. 이러한 경우에는 가상 호스트별로 설정 파일을 만들고 이를 하나의 디렉토리(예: {{ic|/etc/httpd/conf/vhosts}})에 저장하는 것을 권장한다. <br />
<br />
먼저 디렉토리를 하나 생성한다:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
각 가상 호스트별 설정 파일을 생성한 디렉토리 안에 생성한다:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
마지막으로 아파치 메인 설정파일인 {{ic|/etc/httpd/conf/httpd.conf}} 안에 {{ic|Include}}를 사용하서 가상 호스트별로 생성해둔 설정 파일들을 포함시킨다:<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
<br />
위처럼 각각의 가상 호스트를 주석처리를 통해 간단하게 활성화/비활성화할 수 있다.<br />
<br />
다음은 각 가상 호스트별 파일의 예제이다:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/apache.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/apache.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== 확장 모듈(Extensions) ==<br />
<br />
=== PHP ===<br />
[[PHP]] 설치를 위해서는 {{Pkg|php}}, {{Pkg|php-apache}} 패키지를 설치한다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}} 파일에서 아래의 줄을 주석처리 한다:<br />
#LoadModule mpm_event_module modules/mod_mpm_event.so<br />
그리고 아래의 줄의 주석을 해제한다:<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
<br />
{{Note|1={{pkg|php-apache}}에 포함된 {{ic|libphp7.so}}이 {{ic|mod_mpm_event}}와는 제대로 동작하지 않고 {{ic|mod_mpm_prefork}}에서만 정상적으로 동작하기 때문에 위에서 기술된 것처럼 설정해주어야 한다.(참고: {{bug|39218}})<br />
<br />
위의 처리를 해주지 않는 경우 다음과 같은 에러 메세지가 출력된다:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
또 다른 해결 방법으로, {{ic|mod_proxy_fcgi}}를 사용하는 방법이 있다. 자세한 방법은 이하 절의 [[#Using php-fpm and mod_proxy_fcgi]]를 참고한다.<br />
}}<br />
<br />
PHP를 활성화하기 위해서 {{ic|/etc/httpd/conf/httpd.conf}} 파일에 아래 코드를 추가해준다:<br />
*{{ic|LoadModule}} 리스트에서, {{ic|LoadModule dir_module modules/mod_dir.so}} 다음의 원하는 곳에 아래 코드를 추가한다:<br />
LoadModule php7_module modules/libphp7.so<br />
*{{ic|Include}} 리스트 마지막 부분에 다음을 추가한다:<br />
Include conf/extra/php7_module.conf<br />
<br />
설정을 완료한 후, [[systemd#Using units|systemd를 사용하여]] {{ic|httpd.service}}를 재시작한다. <br />
<br />
PHP가 올바르게 설정되었는지 확인하려면 아파치 {{ic|DocumentRoot}} 디렉토리(예. {{ic|/srv/http/}} 혹은 {{ic|~/public_html}})에 {{ic|test.php}} 파일을 생성하여 다음 코드를 해당 파일에 추가한다:<br />
<?php phpinfo(); ?><br />
파일을 저장한 뒤, PHP가 제대로 작동하는지 확인하기 위하여 브라우저를 통해 다음 URL을 연다: http://localhost/test.php 또는 http://localhost/~myname/test.php<br />
<br />
더 많은 설정 옵션과 확장 모듈(extensions)에 대한 정보는 [[PHP]]를 참고한다.<br />
<br />
==== php-fpm, mod_proxy_fcgi 사용하기 ====<br />
<br />
{{Note|널리 알려진 ProxyPass를 이용한 설정과 다르게 SetHandler를 이용한 프록시 설정은 DirectoryIndex와 같이 아파치에서 사용되는 디렉티브를 방해하지 않는다. 이러한 특징ᅟ 덕분에 libphp7, mod_fastcgi, mod_fcgid 등으로 디자인된 소프트웨어와 더 나은 호환성을 보장한다. 하지만 그래도 ProxyPass를 계속해서 사용하고 싶다면, 아래 코드와 같이 시도하여 사용할 수 있다:<br />
{{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
{{pkg|php-fpm}} 패키지를 설치한다.<br />
<br />
아래의 내용으로 {{ic|/etc/httpd/conf/extra/php-fpm.conf}} 파일을 생성한다:<br />
{{hc|/etc/httpd/conf/extra/php-fpm.conf|<nowiki><br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<Proxy "fcgi://localhost/" enablereuse=on max=10><br />
</Proxy><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
</nowiki>}}<br />
<br />
그리고 나서 {{ic|/etc/httpd/conf/httpd.conf}} 파일의 최하단에 include 코드를 추가한다:<br />
Include conf/extra/php-fpm.conf<br />
<br />
{{Note|위 코드에서 {{ic|sock}}과 {{ic|fcgi}} 사이의 파이프 좌우로 빈칸은 허용되지 않는 점에 유의해야 한다. {{ic|localhost}}는 다른 문자열로 치환될 수 있으며, 치환된 문자열은 반드시 {{ic|SetHandler}}와 {{ic|Proxy}} 디렉티브에서도 일치해야 한다. 더 자세한 정보는 [https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html 이곳]에서 확인할 수 있다. {{ic|SetHandler}}와 {{ic|Proxy}}는 가상 호스트 설정 파일별로 사용가능하지만 {{ic|fcgi://}} 이후의 이름은 반드시 가상 호스트들끼리 서로 달라야 한다.}}<br />
<br />
{{ic|/etc/php/php-fpm.d/www.conf}}에서 PHP-FPM을 설정할 수 있지만 기본 설정으로도 정상적으로 동작한다.<br />
<br />
{{Note|<br />
아래 코드는 더이상 필요하지 않기 때문에 만약 {{ic|httpd.conf}} 파일에 추가했다면 삭제하도록 한다.<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
{{ic|httpd.service}}와 {{ic|php-fpm.service}}를 재시작한다.<br />
<br />
==== apache2-mpm-worker, mod_fcgid 사용하기 ====<br />
{{pkg|mod_fcgid}}와 {{Pkg|php-cgi}} 패키지를 설치한다.<br />
<br />
PHP wrapper를 위해 필요한 디렉토리와 심볼릭 링크를 만들어준다:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
다음 내용으로 {{ic|/etc/httpd/conf/extra/php-fcgid.conf}} 파일을 생성한다:<br />
{{hc|/etc/httpd/conf/extra/php-fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule><br />
</nowiki>}}<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}} 파일을 편집하여 actions 모듈을 활성화한다:<br />
LoadModule actions_module modules/mod_actions.so<br />
<br />
다음을 추가해준다.<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/httpd-mpm.conf<br />
Include conf/extra/php-fcgid.conf<br />
<br />
{{Note|<br />
아래 코드는 더이상 필요하지 않기 때문에 만약 {{ic|httpd.conf}} 파일에 추가했다면 삭제하도록 한다.<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
{{ic|httpd.service}}을 재시작한다.<br />
<br />
==== MySQL/MariaDB ====<br />
<br />
[[PHP#MySQL/MariaDB]] 위키페이지의 설명서를 따른다.<br />
<br />
설정이 완료되면 {{ic|httpd.service}}를 재시작한다.<br />
<br />
=== HTTP2 ===<br />
<br />
HTTP/2 지원을 위해서는 {{Pkg|nghttp2}} 패키지를 설치해야 한다.<br />
<br />
설치 후에 {{ic|httpd.conf}} 파일에서 다음 줄의 주석을 해제한다:<br />
LoadModule http2_module modules/mod_http2.so<br />
<br />
다음 줄을 추가한다:<br />
Protocols h2 http/1.1<br />
<br />
더 자세한 내용은 [https://httpd.apache.org/docs/2.4/mod/mod_http2.html mod_http2] 문서를 참고한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== 아파치 서버 상태와 로그 ===<br />
<br />
[[systemctl]]를 통해 아파치 데몬의 현재 상태를 확인할 수 있다.<br />
<br />
아파치 로그파일은 {{ic|/var/log/httpd/}}에서 찾을 수 있다.<br />
<br />
=== Error: PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
{{ic|httpd.conf}}파일에서 {{ic|unique_id_module}} 부분을 주석처리한다: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. ===<br />
<br />
{{ic|httpd.service}}가 {{ic|php7_module}}을 로딩할 때 다음과 같은 에러메세지가 출력되는 경우:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
설정파일에서 다음과 같이 {{ic|mpm_event_module}}를 {{ic|mpm_prefork_module}}로 바꿔준다:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
그리고나서, {{ic|httpd.service}}를 재시작한다.<br />
<br />
=== AH00534: httpd: Configuration error: No MPM loaded. ===<br />
<br />
아파치를 최신 버전으로 업그레이드하면서 나타나는 문제다. 이는 최신 아파치 설정 부분에서 변경된 부분이 이전의 설정파일에 반영되지 않았기 때문에 생기는 문제로서 다음 부분의 주석을 해제해주면 해결이 가능하다.<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
이 후에도 계속해서 에러메세지가 출력된다면 [[#Apache_is_running_a_threaded_MPM.2C_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.|위에서 언급된 부분]]을 참고한다.<br />
<br />
=== Changing the max_execution_time in php.ini has no effect ===<br />
<br />
{{ic|php.ini}}파일에서 {{ic|max_execution_time}}의 값을 30(초)보다 큰 값으로 변경하면 30초 후에 아파치로부터 {{ic|503 Service Unavailable}}라는 응답을 받게 된다. 이를 해결하기 위해서는 http 설정에서 {{ic|<FilesMatch \.php$>}} 부분 이전에 {{ic|ProxyTimeout}} 디렉티브를 추가해주면 해결 가능하다:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
ProxyTimeout 300<br />
}}<br />
<br />
변경 후에는 {{ic|httpd.service}}를 재시작한다.<br />
<br />
== 참조 ==<br />
<br />
* [http://www.apache.org/ Apache Official Website]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Tutorial for creating self-signed certificates]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Apache Wiki Troubleshooting]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=441855Apache HTTP Server (한국어)2016-07-17T14:30:27Z<p>Sukbeom: /* See also */</p>
<hr />
<div>[[Category:Web server]]<br />
[[cs:Apache HTTP Server]]<br />
[[de:LAMP Installation]]<br />
[[el:Apache HTTP Server]]<br />
[[en:Apache HTTP Server]]<br />
[[es:Apache HTTP Server]]<br />
[[fr:Lamp]]<br />
[[it:Apache HTTP Server]]<br />
[[ja:LAMP]]<br />
[[pl:Apache HTTP Server]]<br />
[[ru:Apache HTTP Server]]<br />
[[sr:Apache HTTP Server]]<br />
[[tr:LAMP]]<br />
[[zh-cn:Apache HTTP Server]]<br />
{{Related articles start}}<br />
{{Related|PHP}}<br />
{{Related|MySQL}}<br />
{{Related|PhpMyAdmin}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
[[Wikipedia:Apache HTTP Server|Apache HTTP Server]](생략해서 Apache라고도 한다)는 아파치 소프트웨어 재단에서 개발된 유명한 웹 서버이다.<br />
<br />
아파치는 보통 MySQL 같은 데이터베이스와 PHP 등의 스크립트 언어와 함께 사용된다. 이러ᅟ한 아파치와의 연동은 흔히 [[Wikipedia:LAMP (software bundle)|LAMP]] stack ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP)이라고 불린다. 이 위ᅟᅵ키페이지에서는 아파치 서버 구축 방법과 [[PHP]], [[MySQL]] 연동 방법에 대해서 설명한다.<br />
<br />
== 설치 ==<br />
{{Pkg|apache}} 패키지를 설치([[Install]])한다.<br />
<br />
== 설정 ==<br />
아파치 설정 파일들은 {{ic|/etc/httpd/conf}}에 위치한다. 주(主) 파일은 {{ic|/etc/httpd/conf/httpd.conf}}로서 다른 설정파일들을 포함한다. <br />
기본 설정파일은 아파치 설치 과정에서 자동으로 생성되며 정상적으로 동작하는 설정 파일이다. 기본 설정파일은 {{ic|/srv/http}} 디렉토리를 서버의 웹페이지에 접속한 사용자에게 제공한다.<br />
<br />
아파치 서버 서비스를 시작하기 위해서는 [[systemd#Using units|systemd]]를 이용하여 {{ic|httpd.service}}를 시작한다.<br />
<br />
서비스 시작 후에는 아파치 서버가 정상적으로 동작하고 있을 것이다. 서버의 동작여부를 확인하기 위해서는 웹 브라우저에서 http://localhost/로 접속한다. 접속하면 간단한 인덱스 페이지가 출력될 것이다.<br />
<br />
아파치 설정에 관련된 자세한 정보는 이어지는 절을 참고한다.<br />
<br />
=== 고급 옵션 ===<br />
아래에 열거된 옵션들은 {{ic|/etc/httpd/conf/httpd.conf}} 파일 내에 정의되어 있는 것으로서, 서버를 구축하고자 하는 사용자에게 유용한 옵션들이다.<br />
<br />
User http<br />
:아파치는 보안 문제 때문에 root 관리자에 의해 시작된 뒤 곧바로 http UID로 전환된다. 설정파일에 기본으로 등록되는 사용자는 http이며 해당 사용자는 아파치 설치 과정에서 자동으로 생성된다.<br />
<br />
Listen 80<br />
:아파치 서버에서 열어 놓을 포트를 설정한다. 라우터를 이용한 인터넷 접근을 위해서는 반드시 포트포워딩을 설정해주어야 한다.<br />
<br />
:만일 아파치 서버를 로컬에서만 접속이 허용되도록 설정하고 싶다면, 해당 줄 내용을 {{ic|Listen 127.0.0.1:80}}으로 변경한다.<br />
<br />
ServerAdmin you@example.com<br />
:관리자의 이메일 주소를 설정한다. 설정된 이메일 주소는 에러 페이지에서 관리자 메일로 표시된다.<br />
<br />
DocumentRoot "/srv/http"<br />
:호스팅할 웹 페이지들이 위치하는 디렉토리 위치<br />
<br />
:DocumentRoot를 변경하면 {{ic|<Directory "/srv/http">}}도 변경해야한다. 그렇지 않으면 변경된 DocumentRoot에 접근할 때 '''403 에러'''(권한 부족 에러)가 발생한다. 또한, {{ic|Require all denied}} 부분을 {{ic|Require all granted}}으로 변경해야 한다. 해당 라인을 바꾸지 않는 경우에도 '''403 에러'''가 발생할 수 있다. 언급한 두 가지 경우 외에, DocumentRoot 디텍토리와 그 부모 디렉토리의 권한 문제가 있는 경우에도 '''403 에러'''가 발생될 수 있다.<br />
<br />
두 개의 디렉토리(DocumentRoot, DocumentRoot의 부모 디렉토리)는 반드시 다른 사용자들에게도 실행권한이 부여되어야 한다. ({{ic|chmod o+x /path/to/DocumentRoot}}를 통해 설정할 수 있다)<br />
<br />
위에서 언급된 권한관련 해결방법에는 몇 가지 논란이 있다. 반드시 모든 사용자들에게 실행 권한을 줄 필요가 없고 ACL을 통해 웹서버에만 실행 권한을 줄 수 있는 방법이 있기 때문이다. 자세한 내용은 다음 링크를 살펴보자. [[Access Control Lists#Granting execution permissions for private files to a Web Server]], [[https://wiki.archlinux.org/index.php/Talk:Apache_HTTP_Server]]<br />
<br />
AllowOverride None<br />
:{{ic|<Directory>}} 섹션 안의 위 디렉티브는 아파치가 {{ic|.htaccess}} 파일을 완전하게 무시하도록 설정해준다. 하지만 아피치 2.4버전 이후부터 해당 옵션은 기본으로 되어있기 때문에 {{ic|.htaccess}} 파일을 사용하고 싶다면 명시적으로 허용해주어야 한다. {{ic|.htaccess}}에서 {{ic|mod_rewrite}} 혹은 다른 설정들을 사용하고 싶다면 .htaccess파일에 관련 디렉티브를 선언함으로써 서버 설정을 오버라이딩 해야 한다. 이에 관련된 자세한 내용은 다음 링크를 참고한다. [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache documentation].<br />
<br />
{{Tip|만약 아파치 설정파일과 관련된 이슈가 있다면 다음 명령어를 통해 설정파일을 점검할 수 있다: {{ic|apachectl configtest}}}}<br />
<br />
더 많은 설정 옵션들은 다음 파일에서 확인할 수 있다: {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
서버 서명을 비활성화하려면 다음 라인을 추가한다:<br />
ServerSignature Off<br />
<br />
아파치와 PHP 버전과 같은 서버 정보를 숨기려면 다음 라인을 추가한다:<br />
ServerTokens Prod<br />
<br />
=== 사용자 디렉토리 ===<br />
<br />
사용자 디렉토리는 기본적으로 http://localhost/~yourusername/를 통해서 접근 가능하며, {{ic|~/public_html}}의 내용을 표시한다. ({{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}에서 변경이 가능하다).<br />
<br />
만일 유저 디렉토리를 원하지 않는 경우에는 {{ic|/etc/httpd/conf/httpd.conf}} 파일에서 다음 라인을 주석처리한다:<br />
<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
아파치가 사용자의 홈디렉토리에 접근하기 위해서는 반드시 디렉토리의 권한을 적절하게 설정해 주어야 한다. 홈 디렉토리와 {{ic|~/public_html}}은 반드시 다른 사용자들이 실행권한을 갖고 있어야 한다. (혹은 ACL을 통해 아파치 사용자 http에 한해서만 허용하도록 한다.)<br />
<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
$ chmod -R o+r ~/public_html<br />
<br />
권한 설정이 완료되면 {{ic|httpd.service}}를 재시작한다. [[Umask#Set the mask value]] 참고.<br />
<br />
=== TLS/SSL ===<br />
{{Warning|SSL/TLS 구현하고자 한다면 몇몇 변수들과 구현부분에서 [https://weakdh.org/#affected 여전히] [[wikipedia:Transport_Layer_Security#Attacks_against_TLS.2FSSL|공격에 취약]]하다는 것을 알고 있어야 한다. 현재 SSL/TLS에서의 취약점과 웹 서버에 어떻게 반영시켜야 하는지 알고 싶다면 http://disablessl3.com/와 https://weakdh.org/sysadmin.html 사이트를 방문하면 더 자세한 정보를 얻을 수 있다.}}<br />
{{pkg|openssl}}는 TLS/SSL을 지원하고 아치에서 기본으로 설치된다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}}파일에서 다음 세 개의 라인의 주석처리를 해제한다:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
TLS/SSL를 위해서는 키와 인증이 필요하다. 만약 공공 도메인을 가지고 있다면 무료로 인증을 받기 위해 [[Let's Encrypt]]를 사용할 수 있다. 공공 도메인을 가지고 있지 않다면 [[#키 생성과 자체 서명 인증]]방법을 참고한다.<br />
<br />
키와 인증을 얻고 나서는 {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}} 파일 내의 {{ic|SSLCertificateFile}}, {{ic|SSLCertificateKeyFile}} 라인에서 해당 키와 인증을 가리키도록 설정한다.<br />
<br />
마지막으로 변경 사항 적용을 위해 {{ic|httpd.service}} 를 재시작한다.<br />
<br />
{{Tip|Mozilla has a useful [https://wiki.mozilla.org/Security/Server_Side_TLS SSL/TLS article] which includes [https://wiki.mozilla.org/Security/Server_Side_TLS#Apache Apache specific] configuration guidelines as well as an [https://mozilla.github.io/server-side-tls/ssl-config-generator/ automated tool] to help create a more secure configuration.}}<br />
<br />
==== 키 생성과 자체 서명 인증 방법 ====<br />
<br />
개인키와 자체 서명 인증을 생성한다. 이것은 [[wikipedia:Certificate signing request|CSR]]가 요구되지 않는 대부분의 설치로는 적절하다.<br />
<br />
# cd /etc/httpd/conf<br />
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 1095<br />
# chmod 400 server.key<br />
<br />
{{Note|-days 스위치는 옵션이며 RSA 키 크기는 최소 2048(기본값) 이상이어야 한다.}}<br />
<br />
만약 [[wikipedia:Certificate signing request|CSR]]의 생성이 필요하다면, 위의 방법 대신 아래의 키 생성 방법을 따르도록 한다.<br />
<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key<br />
# chmod 400 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 1095 -in server.csr -signkey server.key -out server.crt<br />
<br />
{{Note|더 많은 openssl 옵션을 보려면 [https://www.openssl.org/docs/apps/openssl.html man page] 또는 peruse openssl의 [https://www.openssl.org/docs/ extensive documentation]를 참고한다.}}<br />
<br />
=== 가상 호스트 ===<br />
<br />
{{Note|SSL 가상 호스트를 사용하기 위해서는 독립적인 <VirtualHost dommainame:443> 섹션을 추가해야한다. 관련된 예제는 다음 링크를 참고한다: [[#Managing many virtual hosts]]}}<br />
<br />
한 개 이상의 호스트를 원하는 경우에 {{ic|/etc/httpd/conf/httpd.conf}} 설정 파일에서 아래 기술된 부분의 주석을 해제한다.<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
또한, {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} 파일에서 가상 호스트를 설정할 수 있다. 제공되는 기본 설정파일에는 자세한 예제가 많기 때문에 호스트 설정을 위해 참고하기에 유용하다.<br />
<br />
로컬 머신에서 가상 호스트를 테스트하고 싶다면, {{ic|/etc/hosts}} 파일에 가상 도메인명을 다음과 같이 등록한다:<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
파일 변경 후, 설정 적용을 위해 {{ic|httpd.service}}를 재시작한다.<br />
<br />
==== 가상 호스트 관리 ====<br />
<br />
이 절에서는 엄청나게 많은 가상 호스트를 가지고 있는 경우에 가상 호스트들을 관리하는 방법에 대하여 기술한다. 이러한 경우에는 가상 호스트별로 설정 파일을 만들고 이를 하나의 디렉토리(예: {{ic|/etc/httpd/conf/vhosts}})에 저장하는 것을 권장한다. <br />
<br />
먼저 디렉토리를 하나 생성한다:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
각 가상 호스트별 설정 파일을 생성한 디렉토리 안에 생성한다:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
마지막으로 아파치 메인 설정파일인 {{ic|/etc/httpd/conf/httpd.conf}} 안에 {{ic|Include}}를 사용하서 가상 호스트별로 생성해둔 설정 파일들을 포함시킨다:<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
<br />
위처럼 각각의 가상 호스트를 주석처리를 통해 간단하게 활성화/비활성화할 수 있다.<br />
<br />
다음은 각 가상 호스트별 파일의 예제이다:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/apache.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/apache.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== 확장 모듈(Extensions) ==<br />
<br />
=== PHP ===<br />
[[PHP]] 설치를 위해서는 {{Pkg|php}}, {{Pkg|php-apache}} 패키지를 설치한다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}} 파일에서 아래의 줄을 주석처리 한다:<br />
#LoadModule mpm_event_module modules/mod_mpm_event.so<br />
그리고 아래의 줄의 주석을 해제한다:<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
<br />
{{Note|1={{pkg|php-apache}}에 포함된 {{ic|libphp7.so}}이 {{ic|mod_mpm_event}}와는 제대로 동작하지 않고 {{ic|mod_mpm_prefork}}에서만 정상적으로 동작하기 때문에 위에서 기술된 것처럼 설정해주어야 한다.(참고: {{bug|39218}})<br />
<br />
위의 처리를 해주지 않는 경우 다음과 같은 에러 메세지가 출력된다:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
또 다른 해결 방법으로, {{ic|mod_proxy_fcgi}}를 사용하는 방법이 있다. 자세한 방법은 이하 절의 [[#Using php-fpm and mod_proxy_fcgi]]를 참고한다.<br />
}}<br />
<br />
PHP를 활성화하기 위해서 {{ic|/etc/httpd/conf/httpd.conf}} 파일에 아래 코드를 추가해준다:<br />
*{{ic|LoadModule}} 리스트에서, {{ic|LoadModule dir_module modules/mod_dir.so}} 다음의 원하는 곳에 아래 코드를 추가한다:<br />
LoadModule php7_module modules/libphp7.so<br />
*{{ic|Include}} 리스트 마지막 부분에 다음을 추가한다:<br />
Include conf/extra/php7_module.conf<br />
<br />
설정을 완료한 후, [[systemd#Using units|systemd를 사용하여]] {{ic|httpd.service}}를 재시작한다. <br />
<br />
PHP가 올바르게 설정되었는지 확인하려면 아파치 {{ic|DocumentRoot}} 디렉토리(예. {{ic|/srv/http/}} 혹은 {{ic|~/public_html}})에 {{ic|test.php}} 파일을 생성하여 다음 코드를 해당 파일에 추가한다:<br />
<?php phpinfo(); ?><br />
파일을 저장한 뒤, PHP가 제대로 작동하는지 확인하기 위하여 브라우저를 통해 다음 URL을 연다: http://localhost/test.php 또는 http://localhost/~myname/test.php<br />
<br />
더 많은 설정 옵션과 확장 모듈(extensions)에 대한 정보는 [[PHP]]를 참고한다.<br />
<br />
==== php-fpm, mod_proxy_fcgi 사용하기 ====<br />
<br />
{{Note|널리 알려진 ProxyPass를 이용한 설정과 다르게 SetHandler를 이용한 프록시 설정은 DirectoryIndex와 같이 아파치에서 사용되는 디렉티브를 방해하지 않는다. 이러한 특징ᅟ 덕분에 libphp7, mod_fastcgi, mod_fcgid 등으로 디자인된 소프트웨어와 더 나은 호환성을 보장한다. 하지만 그래도 ProxyPass를 계속해서 사용하고 싶다면, 아래 코드와 같이 시도하여 사용할 수 있다:<br />
{{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
{{pkg|php-fpm}} 패키지를 설치한다.<br />
<br />
아래의 내용으로 {{ic|/etc/httpd/conf/extra/php-fpm.conf}} 파일을 생성한다:<br />
{{hc|/etc/httpd/conf/extra/php-fpm.conf|<nowiki><br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<Proxy "fcgi://localhost/" enablereuse=on max=10><br />
</Proxy><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
</nowiki>}}<br />
<br />
그리고 나서 {{ic|/etc/httpd/conf/httpd.conf}} 파일의 최하단에 include 코드를 추가한다:<br />
Include conf/extra/php-fpm.conf<br />
<br />
{{Note|위 코드에서 {{ic|sock}}과 {{ic|fcgi}} 사이의 파이프 좌우로 빈칸은 허용되지 않는 점에 유의해야 한다. {{ic|localhost}}는 다른 문자열로 치환될 수 있으며, 치환된 문자열은 반드시 {{ic|SetHandler}}와 {{ic|Proxy}} 디렉티브에서도 일치해야 한다. 더 자세한 정보는 [https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html 이곳]에서 확인할 수 있다. {{ic|SetHandler}}와 {{ic|Proxy}}는 가상 호스트 설정 파일별로 사용가능하지만 {{ic|fcgi://}} 이후의 이름은 반드시 가상 호스트들끼리 서로 달라야 한다.}}<br />
<br />
{{ic|/etc/php/php-fpm.d/www.conf}}에서 PHP-FPM을 설정할 수 있지만 기본 설정으로도 정상적으로 동작한다.<br />
<br />
{{Note|<br />
아래 코드는 더이상 필요하지 않기 때문에 만약 {{ic|httpd.conf}} 파일에 추가했다면 삭제하도록 한다.<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
{{ic|httpd.service}}와 {{ic|php-fpm.service}}를 재시작한다.<br />
<br />
==== apache2-mpm-worker, mod_fcgid 사용하기 ====<br />
{{pkg|mod_fcgid}}와 {{Pkg|php-cgi}} 패키지를 설치한다.<br />
<br />
PHP wrapper를 위해 필요한 디렉토리와 심볼릭 링크를 만들어준다:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
다음 내용으로 {{ic|/etc/httpd/conf/extra/php-fcgid.conf}} 파일을 생성한다:<br />
{{hc|/etc/httpd/conf/extra/php-fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule><br />
</nowiki>}}<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}} 파일을 편집하여 actions 모듈을 활성화한다:<br />
LoadModule actions_module modules/mod_actions.so<br />
<br />
다음을 추가해준다.<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/httpd-mpm.conf<br />
Include conf/extra/php-fcgid.conf<br />
<br />
{{Note|<br />
아래 코드는 더이상 필요하지 않기 때문에 만약 {{ic|httpd.conf}} 파일에 추가했다면 삭제하도록 한다.<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
{{ic|httpd.service}}을 재시작한다.<br />
<br />
==== MySQL/MariaDB ====<br />
<br />
[[PHP#MySQL/MariaDB]] 위키페이지의 설명서를 따른다.<br />
<br />
설정이 완료되면 {{ic|httpd.service}}를 재시작한다.<br />
<br />
=== HTTP2 ===<br />
<br />
HTTP/2 지원을 위해서는 {{Pkg|nghttp2}} 패키지를 설치해야 한다.<br />
<br />
설치 후에 {{ic|httpd.conf}} 파일에서 다음 줄의 주석을 해제한다:<br />
LoadModule http2_module modules/mod_http2.so<br />
<br />
다음 줄을 추가한다:<br />
Protocols h2 http/1.1<br />
<br />
더 자세한 내용은 [https://httpd.apache.org/docs/2.4/mod/mod_http2.html mod_http2] 문서를 참고한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== 아파치 서버 상태와 로그 ===<br />
<br />
[[systemctl]]를 통해 아파치 데몬의 현재 상태를 확인할 수 있다.<br />
<br />
아파치 로그파일은 {{ic|/var/log/httpd/}}에서 찾을 수 있다.<br />
<br />
=== Error: PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
{{ic|httpd.conf}}파일에서 {{ic|unique_id_module}} 부분을 주석처리한다: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. ===<br />
<br />
{{ic|httpd.service}}가 {{ic|php7_module}}을 로딩할 때 다음과 같은 에러메세지가 출력되는 경우:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
설정파일에서 다음과 같이 {{ic|mpm_event_module}}를 {{ic|mpm_prefork_module}}로 바꿔준다:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
그리고나서, {{ic|httpd.service}}를 재시작한다.<br />
<br />
=== AH00534: httpd: Configuration error: No MPM loaded. ===<br />
<br />
아파치를 최신 버전으로 업그레이드하면서 나타나는 문제다. 이는 최신 아파치 설정 부분에서 변경된 부분이 이전의 설정파일에 반영되지 않았기 때문에 생기는 문제로서 다음 부분의 주석을 해제해주면 해결이 가능하다.<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
이 후에도 계속해서 에러메세지가 출력된다면 [[#Apache_is_running_a_threaded_MPM.2C_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.|위에서 언급된 부분]]을 참고한다.<br />
<br />
=== Changing the max_execution_time in php.ini has no effect ===<br />
<br />
{{ic|php.ini}}파일에서 {{ic|max_execution_time}}의 값을 30(초)보다 큰 값으로 변경하면 30초 후에 아파치로부터 {{ic|503 Service Unavailable}}라는 응답을 받게 된다. 이를 해결하기 위해서는 http 설정에서 {{ic|<FilesMatch \.php$>}} 부분 이전에 {{ic|ProxyTimeout}} 디렉티브를 추가해주면 해결 가능하다:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
ProxyTimeout 300<br />
}}<br />
<br />
변경 후에는 {{ic|httpd.service}}를 재시작한다.<br />
<br />
== 참조 ==<br />
<br />
* [http://www.apache.org/ Apache Official Website]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Tutorial for creating self-signed certificates]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Apache Wiki Troubleshooting]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=441854Apache HTTP Server (한국어)2016-07-17T14:29:54Z<p>Sukbeom: /* Troubleshooting */</p>
<hr />
<div>[[Category:Web server]]<br />
[[cs:Apache HTTP Server]]<br />
[[de:LAMP Installation]]<br />
[[el:Apache HTTP Server]]<br />
[[en:Apache HTTP Server]]<br />
[[es:Apache HTTP Server]]<br />
[[fr:Lamp]]<br />
[[it:Apache HTTP Server]]<br />
[[ja:LAMP]]<br />
[[pl:Apache HTTP Server]]<br />
[[ru:Apache HTTP Server]]<br />
[[sr:Apache HTTP Server]]<br />
[[tr:LAMP]]<br />
[[zh-cn:Apache HTTP Server]]<br />
{{Related articles start}}<br />
{{Related|PHP}}<br />
{{Related|MySQL}}<br />
{{Related|PhpMyAdmin}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
[[Wikipedia:Apache HTTP Server|Apache HTTP Server]](생략해서 Apache라고도 한다)는 아파치 소프트웨어 재단에서 개발된 유명한 웹 서버이다.<br />
<br />
아파치는 보통 MySQL 같은 데이터베이스와 PHP 등의 스크립트 언어와 함께 사용된다. 이러ᅟ한 아파치와의 연동은 흔히 [[Wikipedia:LAMP (software bundle)|LAMP]] stack ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP)이라고 불린다. 이 위ᅟᅵ키페이지에서는 아파치 서버 구축 방법과 [[PHP]], [[MySQL]] 연동 방법에 대해서 설명한다.<br />
<br />
== 설치 ==<br />
{{Pkg|apache}} 패키지를 설치([[Install]])한다.<br />
<br />
== 설정 ==<br />
아파치 설정 파일들은 {{ic|/etc/httpd/conf}}에 위치한다. 주(主) 파일은 {{ic|/etc/httpd/conf/httpd.conf}}로서 다른 설정파일들을 포함한다. <br />
기본 설정파일은 아파치 설치 과정에서 자동으로 생성되며 정상적으로 동작하는 설정 파일이다. 기본 설정파일은 {{ic|/srv/http}} 디렉토리를 서버의 웹페이지에 접속한 사용자에게 제공한다.<br />
<br />
아파치 서버 서비스를 시작하기 위해서는 [[systemd#Using units|systemd]]를 이용하여 {{ic|httpd.service}}를 시작한다.<br />
<br />
서비스 시작 후에는 아파치 서버가 정상적으로 동작하고 있을 것이다. 서버의 동작여부를 확인하기 위해서는 웹 브라우저에서 http://localhost/로 접속한다. 접속하면 간단한 인덱스 페이지가 출력될 것이다.<br />
<br />
아파치 설정에 관련된 자세한 정보는 이어지는 절을 참고한다.<br />
<br />
=== 고급 옵션 ===<br />
아래에 열거된 옵션들은 {{ic|/etc/httpd/conf/httpd.conf}} 파일 내에 정의되어 있는 것으로서, 서버를 구축하고자 하는 사용자에게 유용한 옵션들이다.<br />
<br />
User http<br />
:아파치는 보안 문제 때문에 root 관리자에 의해 시작된 뒤 곧바로 http UID로 전환된다. 설정파일에 기본으로 등록되는 사용자는 http이며 해당 사용자는 아파치 설치 과정에서 자동으로 생성된다.<br />
<br />
Listen 80<br />
:아파치 서버에서 열어 놓을 포트를 설정한다. 라우터를 이용한 인터넷 접근을 위해서는 반드시 포트포워딩을 설정해주어야 한다.<br />
<br />
:만일 아파치 서버를 로컬에서만 접속이 허용되도록 설정하고 싶다면, 해당 줄 내용을 {{ic|Listen 127.0.0.1:80}}으로 변경한다.<br />
<br />
ServerAdmin you@example.com<br />
:관리자의 이메일 주소를 설정한다. 설정된 이메일 주소는 에러 페이지에서 관리자 메일로 표시된다.<br />
<br />
DocumentRoot "/srv/http"<br />
:호스팅할 웹 페이지들이 위치하는 디렉토리 위치<br />
<br />
:DocumentRoot를 변경하면 {{ic|<Directory "/srv/http">}}도 변경해야한다. 그렇지 않으면 변경된 DocumentRoot에 접근할 때 '''403 에러'''(권한 부족 에러)가 발생한다. 또한, {{ic|Require all denied}} 부분을 {{ic|Require all granted}}으로 변경해야 한다. 해당 라인을 바꾸지 않는 경우에도 '''403 에러'''가 발생할 수 있다. 언급한 두 가지 경우 외에, DocumentRoot 디텍토리와 그 부모 디렉토리의 권한 문제가 있는 경우에도 '''403 에러'''가 발생될 수 있다.<br />
<br />
두 개의 디렉토리(DocumentRoot, DocumentRoot의 부모 디렉토리)는 반드시 다른 사용자들에게도 실행권한이 부여되어야 한다. ({{ic|chmod o+x /path/to/DocumentRoot}}를 통해 설정할 수 있다)<br />
<br />
위에서 언급된 권한관련 해결방법에는 몇 가지 논란이 있다. 반드시 모든 사용자들에게 실행 권한을 줄 필요가 없고 ACL을 통해 웹서버에만 실행 권한을 줄 수 있는 방법이 있기 때문이다. 자세한 내용은 다음 링크를 살펴보자. [[Access Control Lists#Granting execution permissions for private files to a Web Server]], [[https://wiki.archlinux.org/index.php/Talk:Apache_HTTP_Server]]<br />
<br />
AllowOverride None<br />
:{{ic|<Directory>}} 섹션 안의 위 디렉티브는 아파치가 {{ic|.htaccess}} 파일을 완전하게 무시하도록 설정해준다. 하지만 아피치 2.4버전 이후부터 해당 옵션은 기본으로 되어있기 때문에 {{ic|.htaccess}} 파일을 사용하고 싶다면 명시적으로 허용해주어야 한다. {{ic|.htaccess}}에서 {{ic|mod_rewrite}} 혹은 다른 설정들을 사용하고 싶다면 .htaccess파일에 관련 디렉티브를 선언함으로써 서버 설정을 오버라이딩 해야 한다. 이에 관련된 자세한 내용은 다음 링크를 참고한다. [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache documentation].<br />
<br />
{{Tip|만약 아파치 설정파일과 관련된 이슈가 있다면 다음 명령어를 통해 설정파일을 점검할 수 있다: {{ic|apachectl configtest}}}}<br />
<br />
더 많은 설정 옵션들은 다음 파일에서 확인할 수 있다: {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
서버 서명을 비활성화하려면 다음 라인을 추가한다:<br />
ServerSignature Off<br />
<br />
아파치와 PHP 버전과 같은 서버 정보를 숨기려면 다음 라인을 추가한다:<br />
ServerTokens Prod<br />
<br />
=== 사용자 디렉토리 ===<br />
<br />
사용자 디렉토리는 기본적으로 http://localhost/~yourusername/를 통해서 접근 가능하며, {{ic|~/public_html}}의 내용을 표시한다. ({{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}에서 변경이 가능하다).<br />
<br />
만일 유저 디렉토리를 원하지 않는 경우에는 {{ic|/etc/httpd/conf/httpd.conf}} 파일에서 다음 라인을 주석처리한다:<br />
<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
아파치가 사용자의 홈디렉토리에 접근하기 위해서는 반드시 디렉토리의 권한을 적절하게 설정해 주어야 한다. 홈 디렉토리와 {{ic|~/public_html}}은 반드시 다른 사용자들이 실행권한을 갖고 있어야 한다. (혹은 ACL을 통해 아파치 사용자 http에 한해서만 허용하도록 한다.)<br />
<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
$ chmod -R o+r ~/public_html<br />
<br />
권한 설정이 완료되면 {{ic|httpd.service}}를 재시작한다. [[Umask#Set the mask value]] 참고.<br />
<br />
=== TLS/SSL ===<br />
{{Warning|SSL/TLS 구현하고자 한다면 몇몇 변수들과 구현부분에서 [https://weakdh.org/#affected 여전히] [[wikipedia:Transport_Layer_Security#Attacks_against_TLS.2FSSL|공격에 취약]]하다는 것을 알고 있어야 한다. 현재 SSL/TLS에서의 취약점과 웹 서버에 어떻게 반영시켜야 하는지 알고 싶다면 http://disablessl3.com/와 https://weakdh.org/sysadmin.html 사이트를 방문하면 더 자세한 정보를 얻을 수 있다.}}<br />
{{pkg|openssl}}는 TLS/SSL을 지원하고 아치에서 기본으로 설치된다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}}파일에서 다음 세 개의 라인의 주석처리를 해제한다:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
TLS/SSL를 위해서는 키와 인증이 필요하다. 만약 공공 도메인을 가지고 있다면 무료로 인증을 받기 위해 [[Let's Encrypt]]를 사용할 수 있다. 공공 도메인을 가지고 있지 않다면 [[#키 생성과 자체 서명 인증]]방법을 참고한다.<br />
<br />
키와 인증을 얻고 나서는 {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}} 파일 내의 {{ic|SSLCertificateFile}}, {{ic|SSLCertificateKeyFile}} 라인에서 해당 키와 인증을 가리키도록 설정한다.<br />
<br />
마지막으로 변경 사항 적용을 위해 {{ic|httpd.service}} 를 재시작한다.<br />
<br />
{{Tip|Mozilla has a useful [https://wiki.mozilla.org/Security/Server_Side_TLS SSL/TLS article] which includes [https://wiki.mozilla.org/Security/Server_Side_TLS#Apache Apache specific] configuration guidelines as well as an [https://mozilla.github.io/server-side-tls/ssl-config-generator/ automated tool] to help create a more secure configuration.}}<br />
<br />
==== 키 생성과 자체 서명 인증 방법 ====<br />
<br />
개인키와 자체 서명 인증을 생성한다. 이것은 [[wikipedia:Certificate signing request|CSR]]가 요구되지 않는 대부분의 설치로는 적절하다.<br />
<br />
# cd /etc/httpd/conf<br />
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 1095<br />
# chmod 400 server.key<br />
<br />
{{Note|-days 스위치는 옵션이며 RSA 키 크기는 최소 2048(기본값) 이상이어야 한다.}}<br />
<br />
만약 [[wikipedia:Certificate signing request|CSR]]의 생성이 필요하다면, 위의 방법 대신 아래의 키 생성 방법을 따르도록 한다.<br />
<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key<br />
# chmod 400 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 1095 -in server.csr -signkey server.key -out server.crt<br />
<br />
{{Note|더 많은 openssl 옵션을 보려면 [https://www.openssl.org/docs/apps/openssl.html man page] 또는 peruse openssl의 [https://www.openssl.org/docs/ extensive documentation]를 참고한다.}}<br />
<br />
=== 가상 호스트 ===<br />
<br />
{{Note|SSL 가상 호스트를 사용하기 위해서는 독립적인 <VirtualHost dommainame:443> 섹션을 추가해야한다. 관련된 예제는 다음 링크를 참고한다: [[#Managing many virtual hosts]]}}<br />
<br />
한 개 이상의 호스트를 원하는 경우에 {{ic|/etc/httpd/conf/httpd.conf}} 설정 파일에서 아래 기술된 부분의 주석을 해제한다.<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
또한, {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} 파일에서 가상 호스트를 설정할 수 있다. 제공되는 기본 설정파일에는 자세한 예제가 많기 때문에 호스트 설정을 위해 참고하기에 유용하다.<br />
<br />
로컬 머신에서 가상 호스트를 테스트하고 싶다면, {{ic|/etc/hosts}} 파일에 가상 도메인명을 다음과 같이 등록한다:<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
파일 변경 후, 설정 적용을 위해 {{ic|httpd.service}}를 재시작한다.<br />
<br />
==== 가상 호스트 관리 ====<br />
<br />
이 절에서는 엄청나게 많은 가상 호스트를 가지고 있는 경우에 가상 호스트들을 관리하는 방법에 대하여 기술한다. 이러한 경우에는 가상 호스트별로 설정 파일을 만들고 이를 하나의 디렉토리(예: {{ic|/etc/httpd/conf/vhosts}})에 저장하는 것을 권장한다. <br />
<br />
먼저 디렉토리를 하나 생성한다:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
각 가상 호스트별 설정 파일을 생성한 디렉토리 안에 생성한다:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
마지막으로 아파치 메인 설정파일인 {{ic|/etc/httpd/conf/httpd.conf}} 안에 {{ic|Include}}를 사용하서 가상 호스트별로 생성해둔 설정 파일들을 포함시킨다:<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
<br />
위처럼 각각의 가상 호스트를 주석처리를 통해 간단하게 활성화/비활성화할 수 있다.<br />
<br />
다음은 각 가상 호스트별 파일의 예제이다:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/apache.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/apache.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== 확장 모듈(Extensions) ==<br />
<br />
=== PHP ===<br />
[[PHP]] 설치를 위해서는 {{Pkg|php}}, {{Pkg|php-apache}} 패키지를 설치한다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}} 파일에서 아래의 줄을 주석처리 한다:<br />
#LoadModule mpm_event_module modules/mod_mpm_event.so<br />
그리고 아래의 줄의 주석을 해제한다:<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
<br />
{{Note|1={{pkg|php-apache}}에 포함된 {{ic|libphp7.so}}이 {{ic|mod_mpm_event}}와는 제대로 동작하지 않고 {{ic|mod_mpm_prefork}}에서만 정상적으로 동작하기 때문에 위에서 기술된 것처럼 설정해주어야 한다.(참고: {{bug|39218}})<br />
<br />
위의 처리를 해주지 않는 경우 다음과 같은 에러 메세지가 출력된다:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
또 다른 해결 방법으로, {{ic|mod_proxy_fcgi}}를 사용하는 방법이 있다. 자세한 방법은 이하 절의 [[#Using php-fpm and mod_proxy_fcgi]]를 참고한다.<br />
}}<br />
<br />
PHP를 활성화하기 위해서 {{ic|/etc/httpd/conf/httpd.conf}} 파일에 아래 코드를 추가해준다:<br />
*{{ic|LoadModule}} 리스트에서, {{ic|LoadModule dir_module modules/mod_dir.so}} 다음의 원하는 곳에 아래 코드를 추가한다:<br />
LoadModule php7_module modules/libphp7.so<br />
*{{ic|Include}} 리스트 마지막 부분에 다음을 추가한다:<br />
Include conf/extra/php7_module.conf<br />
<br />
설정을 완료한 후, [[systemd#Using units|systemd를 사용하여]] {{ic|httpd.service}}를 재시작한다. <br />
<br />
PHP가 올바르게 설정되었는지 확인하려면 아파치 {{ic|DocumentRoot}} 디렉토리(예. {{ic|/srv/http/}} 혹은 {{ic|~/public_html}})에 {{ic|test.php}} 파일을 생성하여 다음 코드를 해당 파일에 추가한다:<br />
<?php phpinfo(); ?><br />
파일을 저장한 뒤, PHP가 제대로 작동하는지 확인하기 위하여 브라우저를 통해 다음 URL을 연다: http://localhost/test.php 또는 http://localhost/~myname/test.php<br />
<br />
더 많은 설정 옵션과 확장 모듈(extensions)에 대한 정보는 [[PHP]]를 참고한다.<br />
<br />
==== php-fpm, mod_proxy_fcgi 사용하기 ====<br />
<br />
{{Note|널리 알려진 ProxyPass를 이용한 설정과 다르게 SetHandler를 이용한 프록시 설정은 DirectoryIndex와 같이 아파치에서 사용되는 디렉티브를 방해하지 않는다. 이러한 특징ᅟ 덕분에 libphp7, mod_fastcgi, mod_fcgid 등으로 디자인된 소프트웨어와 더 나은 호환성을 보장한다. 하지만 그래도 ProxyPass를 계속해서 사용하고 싶다면, 아래 코드와 같이 시도하여 사용할 수 있다:<br />
{{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
{{pkg|php-fpm}} 패키지를 설치한다.<br />
<br />
아래의 내용으로 {{ic|/etc/httpd/conf/extra/php-fpm.conf}} 파일을 생성한다:<br />
{{hc|/etc/httpd/conf/extra/php-fpm.conf|<nowiki><br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<Proxy "fcgi://localhost/" enablereuse=on max=10><br />
</Proxy><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
</nowiki>}}<br />
<br />
그리고 나서 {{ic|/etc/httpd/conf/httpd.conf}} 파일의 최하단에 include 코드를 추가한다:<br />
Include conf/extra/php-fpm.conf<br />
<br />
{{Note|위 코드에서 {{ic|sock}}과 {{ic|fcgi}} 사이의 파이프 좌우로 빈칸은 허용되지 않는 점에 유의해야 한다. {{ic|localhost}}는 다른 문자열로 치환될 수 있으며, 치환된 문자열은 반드시 {{ic|SetHandler}}와 {{ic|Proxy}} 디렉티브에서도 일치해야 한다. 더 자세한 정보는 [https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html 이곳]에서 확인할 수 있다. {{ic|SetHandler}}와 {{ic|Proxy}}는 가상 호스트 설정 파일별로 사용가능하지만 {{ic|fcgi://}} 이후의 이름은 반드시 가상 호스트들끼리 서로 달라야 한다.}}<br />
<br />
{{ic|/etc/php/php-fpm.d/www.conf}}에서 PHP-FPM을 설정할 수 있지만 기본 설정으로도 정상적으로 동작한다.<br />
<br />
{{Note|<br />
아래 코드는 더이상 필요하지 않기 때문에 만약 {{ic|httpd.conf}} 파일에 추가했다면 삭제하도록 한다.<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
{{ic|httpd.service}}와 {{ic|php-fpm.service}}를 재시작한다.<br />
<br />
==== apache2-mpm-worker, mod_fcgid 사용하기 ====<br />
{{pkg|mod_fcgid}}와 {{Pkg|php-cgi}} 패키지를 설치한다.<br />
<br />
PHP wrapper를 위해 필요한 디렉토리와 심볼릭 링크를 만들어준다:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
다음 내용으로 {{ic|/etc/httpd/conf/extra/php-fcgid.conf}} 파일을 생성한다:<br />
{{hc|/etc/httpd/conf/extra/php-fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule><br />
</nowiki>}}<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}} 파일을 편집하여 actions 모듈을 활성화한다:<br />
LoadModule actions_module modules/mod_actions.so<br />
<br />
다음을 추가해준다.<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/httpd-mpm.conf<br />
Include conf/extra/php-fcgid.conf<br />
<br />
{{Note|<br />
아래 코드는 더이상 필요하지 않기 때문에 만약 {{ic|httpd.conf}} 파일에 추가했다면 삭제하도록 한다.<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
{{ic|httpd.service}}을 재시작한다.<br />
<br />
==== MySQL/MariaDB ====<br />
<br />
[[PHP#MySQL/MariaDB]] 위키페이지의 설명서를 따른다.<br />
<br />
설정이 완료되면 {{ic|httpd.service}}를 재시작한다.<br />
<br />
=== HTTP2 ===<br />
<br />
HTTP/2 지원을 위해서는 {{Pkg|nghttp2}} 패키지를 설치해야 한다.<br />
<br />
설치 후에 {{ic|httpd.conf}} 파일에서 다음 줄의 주석을 해제한다:<br />
LoadModule http2_module modules/mod_http2.so<br />
<br />
다음 줄을 추가한다:<br />
Protocols h2 http/1.1<br />
<br />
더 자세한 내용은 [https://httpd.apache.org/docs/2.4/mod/mod_http2.html mod_http2] 문서를 참고한다.<br />
<br />
== 문제 해결 ==<br />
<br />
=== 아파치 서버 상태와 로그 ===<br />
<br />
[[systemctl]]를 통해 아파치 데몬의 현재 상태를 확인할 수 있다.<br />
<br />
아파치 로그파일은 {{ic|/var/log/httpd/}}에서 찾을 수 있다.<br />
<br />
=== Error: PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
{{ic|httpd.conf}}파일에서 {{ic|unique_id_module}} 부분을 주석처리한다: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. ===<br />
<br />
{{ic|httpd.service}}가 {{ic|php7_module}}을 로딩할 때 다음과 같은 에러메세지가 출력되는 경우:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
설정파일에서 다음과 같이 {{ic|mpm_event_module}}를 {{ic|mpm_prefork_module}}로 바꿔준다:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
그리고나서, {{ic|httpd.service}}를 재시작한다.<br />
<br />
=== AH00534: httpd: Configuration error: No MPM loaded. ===<br />
<br />
아파치를 최신 버전으로 업그레이드하면서 나타나는 문제다. 이는 최신 아파치 설정 부분에서 변경된 부분이 이전의 설정파일에 반영되지 않았기 때문에 생기는 문제로서 다음 부분의 주석을 해제해주면 해결이 가능하다.<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
이 후에도 계속해서 에러메세지가 출력된다면 [[#Apache_is_running_a_threaded_MPM.2C_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.|위에서 언급된 부분]]을 참고한다.<br />
<br />
=== Changing the max_execution_time in php.ini has no effect ===<br />
<br />
{{ic|php.ini}}파일에서 {{ic|max_execution_time}}의 값을 30(초)보다 큰 값으로 변경하면 30초 후에 아파치로부터 {{ic|503 Service Unavailable}}라는 응답을 받게 된다. 이를 해결하기 위해서는 http 설정에서 {{ic|<FilesMatch \.php$>}} 부분 이전에 {{ic|ProxyTimeout}} 디렉티브를 추가해주면 해결 가능하다:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
ProxyTimeout 300<br />
}}<br />
<br />
변경 후에는 {{ic|httpd.service}}를 재시작한다.<br />
<br />
== See also ==<br />
<br />
* [http://www.apache.org/ Apache Official Website]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Tutorial for creating self-signed certificates]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Apache Wiki Troubleshooting]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=441852Apache HTTP Server (한국어)2016-07-17T14:18:10Z<p>Sukbeom: /* Extensions */</p>
<hr />
<div>[[Category:Web server]]<br />
[[cs:Apache HTTP Server]]<br />
[[de:LAMP Installation]]<br />
[[el:Apache HTTP Server]]<br />
[[en:Apache HTTP Server]]<br />
[[es:Apache HTTP Server]]<br />
[[fr:Lamp]]<br />
[[it:Apache HTTP Server]]<br />
[[ja:LAMP]]<br />
[[pl:Apache HTTP Server]]<br />
[[ru:Apache HTTP Server]]<br />
[[sr:Apache HTTP Server]]<br />
[[tr:LAMP]]<br />
[[zh-cn:Apache HTTP Server]]<br />
{{Related articles start}}<br />
{{Related|PHP}}<br />
{{Related|MySQL}}<br />
{{Related|PhpMyAdmin}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
[[Wikipedia:Apache HTTP Server|Apache HTTP Server]](생략해서 Apache라고도 한다)는 아파치 소프트웨어 재단에서 개발된 유명한 웹 서버이다.<br />
<br />
아파치는 보통 MySQL 같은 데이터베이스와 PHP 등의 스크립트 언어와 함께 사용된다. 이러ᅟ한 아파치와의 연동은 흔히 [[Wikipedia:LAMP (software bundle)|LAMP]] stack ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP)이라고 불린다. 이 위ᅟᅵ키페이지에서는 아파치 서버 구축 방법과 [[PHP]], [[MySQL]] 연동 방법에 대해서 설명한다.<br />
<br />
== 설치 ==<br />
{{Pkg|apache}} 패키지를 설치([[Install]])한다.<br />
<br />
== 설정 ==<br />
아파치 설정 파일들은 {{ic|/etc/httpd/conf}}에 위치한다. 주(主) 파일은 {{ic|/etc/httpd/conf/httpd.conf}}로서 다른 설정파일들을 포함한다. <br />
기본 설정파일은 아파치 설치 과정에서 자동으로 생성되며 정상적으로 동작하는 설정 파일이다. 기본 설정파일은 {{ic|/srv/http}} 디렉토리를 서버의 웹페이지에 접속한 사용자에게 제공한다.<br />
<br />
아파치 서버 서비스를 시작하기 위해서는 [[systemd#Using units|systemd]]를 이용하여 {{ic|httpd.service}}를 시작한다.<br />
<br />
서비스 시작 후에는 아파치 서버가 정상적으로 동작하고 있을 것이다. 서버의 동작여부를 확인하기 위해서는 웹 브라우저에서 http://localhost/로 접속한다. 접속하면 간단한 인덱스 페이지가 출력될 것이다.<br />
<br />
아파치 설정에 관련된 자세한 정보는 이어지는 절을 참고한다.<br />
<br />
=== 고급 옵션 ===<br />
아래에 열거된 옵션들은 {{ic|/etc/httpd/conf/httpd.conf}} 파일 내에 정의되어 있는 것으로서, 서버를 구축하고자 하는 사용자에게 유용한 옵션들이다.<br />
<br />
User http<br />
:아파치는 보안 문제 때문에 root 관리자에 의해 시작된 뒤 곧바로 http UID로 전환된다. 설정파일에 기본으로 등록되는 사용자는 http이며 해당 사용자는 아파치 설치 과정에서 자동으로 생성된다.<br />
<br />
Listen 80<br />
:아파치 서버에서 열어 놓을 포트를 설정한다. 라우터를 이용한 인터넷 접근을 위해서는 반드시 포트포워딩을 설정해주어야 한다.<br />
<br />
:만일 아파치 서버를 로컬에서만 접속이 허용되도록 설정하고 싶다면, 해당 줄 내용을 {{ic|Listen 127.0.0.1:80}}으로 변경한다.<br />
<br />
ServerAdmin you@example.com<br />
:관리자의 이메일 주소를 설정한다. 설정된 이메일 주소는 에러 페이지에서 관리자 메일로 표시된다.<br />
<br />
DocumentRoot "/srv/http"<br />
:호스팅할 웹 페이지들이 위치하는 디렉토리 위치<br />
<br />
:DocumentRoot를 변경하면 {{ic|<Directory "/srv/http">}}도 변경해야한다. 그렇지 않으면 변경된 DocumentRoot에 접근할 때 '''403 에러'''(권한 부족 에러)가 발생한다. 또한, {{ic|Require all denied}} 부분을 {{ic|Require all granted}}으로 변경해야 한다. 해당 라인을 바꾸지 않는 경우에도 '''403 에러'''가 발생할 수 있다. 언급한 두 가지 경우 외에, DocumentRoot 디텍토리와 그 부모 디렉토리의 권한 문제가 있는 경우에도 '''403 에러'''가 발생될 수 있다.<br />
<br />
두 개의 디렉토리(DocumentRoot, DocumentRoot의 부모 디렉토리)는 반드시 다른 사용자들에게도 실행권한이 부여되어야 한다. ({{ic|chmod o+x /path/to/DocumentRoot}}를 통해 설정할 수 있다)<br />
<br />
위에서 언급된 권한관련 해결방법에는 몇 가지 논란이 있다. 반드시 모든 사용자들에게 실행 권한을 줄 필요가 없고 ACL을 통해 웹서버에만 실행 권한을 줄 수 있는 방법이 있기 때문이다. 자세한 내용은 다음 링크를 살펴보자. [[Access Control Lists#Granting execution permissions for private files to a Web Server]], [[https://wiki.archlinux.org/index.php/Talk:Apache_HTTP_Server]]<br />
<br />
AllowOverride None<br />
:{{ic|<Directory>}} 섹션 안의 위 디렉티브는 아파치가 {{ic|.htaccess}} 파일을 완전하게 무시하도록 설정해준다. 하지만 아피치 2.4버전 이후부터 해당 옵션은 기본으로 되어있기 때문에 {{ic|.htaccess}} 파일을 사용하고 싶다면 명시적으로 허용해주어야 한다. {{ic|.htaccess}}에서 {{ic|mod_rewrite}} 혹은 다른 설정들을 사용하고 싶다면 .htaccess파일에 관련 디렉티브를 선언함으로써 서버 설정을 오버라이딩 해야 한다. 이에 관련된 자세한 내용은 다음 링크를 참고한다. [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache documentation].<br />
<br />
{{Tip|만약 아파치 설정파일과 관련된 이슈가 있다면 다음 명령어를 통해 설정파일을 점검할 수 있다: {{ic|apachectl configtest}}}}<br />
<br />
더 많은 설정 옵션들은 다음 파일에서 확인할 수 있다: {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
서버 서명을 비활성화하려면 다음 라인을 추가한다:<br />
ServerSignature Off<br />
<br />
아파치와 PHP 버전과 같은 서버 정보를 숨기려면 다음 라인을 추가한다:<br />
ServerTokens Prod<br />
<br />
=== 사용자 디렉토리 ===<br />
<br />
사용자 디렉토리는 기본적으로 http://localhost/~yourusername/를 통해서 접근 가능하며, {{ic|~/public_html}}의 내용을 표시한다. ({{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}에서 변경이 가능하다).<br />
<br />
만일 유저 디렉토리를 원하지 않는 경우에는 {{ic|/etc/httpd/conf/httpd.conf}} 파일에서 다음 라인을 주석처리한다:<br />
<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
아파치가 사용자의 홈디렉토리에 접근하기 위해서는 반드시 디렉토리의 권한을 적절하게 설정해 주어야 한다. 홈 디렉토리와 {{ic|~/public_html}}은 반드시 다른 사용자들이 실행권한을 갖고 있어야 한다. (혹은 ACL을 통해 아파치 사용자 http에 한해서만 허용하도록 한다.)<br />
<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
$ chmod -R o+r ~/public_html<br />
<br />
권한 설정이 완료되면 {{ic|httpd.service}}를 재시작한다. [[Umask#Set the mask value]] 참고.<br />
<br />
=== TLS/SSL ===<br />
{{Warning|SSL/TLS 구현하고자 한다면 몇몇 변수들과 구현부분에서 [https://weakdh.org/#affected 여전히] [[wikipedia:Transport_Layer_Security#Attacks_against_TLS.2FSSL|공격에 취약]]하다는 것을 알고 있어야 한다. 현재 SSL/TLS에서의 취약점과 웹 서버에 어떻게 반영시켜야 하는지 알고 싶다면 http://disablessl3.com/와 https://weakdh.org/sysadmin.html 사이트를 방문하면 더 자세한 정보를 얻을 수 있다.}}<br />
{{pkg|openssl}}는 TLS/SSL을 지원하고 아치에서 기본으로 설치된다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}}파일에서 다음 세 개의 라인의 주석처리를 해제한다:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
TLS/SSL를 위해서는 키와 인증이 필요하다. 만약 공공 도메인을 가지고 있다면 무료로 인증을 받기 위해 [[Let's Encrypt]]를 사용할 수 있다. 공공 도메인을 가지고 있지 않다면 [[#키 생성과 자체 서명 인증]]방법을 참고한다.<br />
<br />
키와 인증을 얻고 나서는 {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}} 파일 내의 {{ic|SSLCertificateFile}}, {{ic|SSLCertificateKeyFile}} 라인에서 해당 키와 인증을 가리키도록 설정한다.<br />
<br />
마지막으로 변경 사항 적용을 위해 {{ic|httpd.service}} 를 재시작한다.<br />
<br />
{{Tip|Mozilla has a useful [https://wiki.mozilla.org/Security/Server_Side_TLS SSL/TLS article] which includes [https://wiki.mozilla.org/Security/Server_Side_TLS#Apache Apache specific] configuration guidelines as well as an [https://mozilla.github.io/server-side-tls/ssl-config-generator/ automated tool] to help create a more secure configuration.}}<br />
<br />
==== 키 생성과 자체 서명 인증 방법 ====<br />
<br />
개인키와 자체 서명 인증을 생성한다. 이것은 [[wikipedia:Certificate signing request|CSR]]가 요구되지 않는 대부분의 설치로는 적절하다.<br />
<br />
# cd /etc/httpd/conf<br />
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 1095<br />
# chmod 400 server.key<br />
<br />
{{Note|-days 스위치는 옵션이며 RSA 키 크기는 최소 2048(기본값) 이상이어야 한다.}}<br />
<br />
만약 [[wikipedia:Certificate signing request|CSR]]의 생성이 필요하다면, 위의 방법 대신 아래의 키 생성 방법을 따르도록 한다.<br />
<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key<br />
# chmod 400 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 1095 -in server.csr -signkey server.key -out server.crt<br />
<br />
{{Note|더 많은 openssl 옵션을 보려면 [https://www.openssl.org/docs/apps/openssl.html man page] 또는 peruse openssl의 [https://www.openssl.org/docs/ extensive documentation]를 참고한다.}}<br />
<br />
=== 가상 호스트 ===<br />
<br />
{{Note|SSL 가상 호스트를 사용하기 위해서는 독립적인 <VirtualHost dommainame:443> 섹션을 추가해야한다. 관련된 예제는 다음 링크를 참고한다: [[#Managing many virtual hosts]]}}<br />
<br />
한 개 이상의 호스트를 원하는 경우에 {{ic|/etc/httpd/conf/httpd.conf}} 설정 파일에서 아래 기술된 부분의 주석을 해제한다.<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
또한, {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} 파일에서 가상 호스트를 설정할 수 있다. 제공되는 기본 설정파일에는 자세한 예제가 많기 때문에 호스트 설정을 위해 참고하기에 유용하다.<br />
<br />
로컬 머신에서 가상 호스트를 테스트하고 싶다면, {{ic|/etc/hosts}} 파일에 가상 도메인명을 다음과 같이 등록한다:<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
파일 변경 후, 설정 적용을 위해 {{ic|httpd.service}}를 재시작한다.<br />
<br />
==== 가상 호스트 관리 ====<br />
<br />
이 절에서는 엄청나게 많은 가상 호스트를 가지고 있는 경우에 가상 호스트들을 관리하는 방법에 대하여 기술한다. 이러한 경우에는 가상 호스트별로 설정 파일을 만들고 이를 하나의 디렉토리(예: {{ic|/etc/httpd/conf/vhosts}})에 저장하는 것을 권장한다. <br />
<br />
먼저 디렉토리를 하나 생성한다:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
각 가상 호스트별 설정 파일을 생성한 디렉토리 안에 생성한다:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
마지막으로 아파치 메인 설정파일인 {{ic|/etc/httpd/conf/httpd.conf}} 안에 {{ic|Include}}를 사용하서 가상 호스트별로 생성해둔 설정 파일들을 포함시킨다:<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
<br />
위처럼 각각의 가상 호스트를 주석처리를 통해 간단하게 활성화/비활성화할 수 있다.<br />
<br />
다음은 각 가상 호스트별 파일의 예제이다:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/apache.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/apache.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== 확장 모듈(Extensions) ==<br />
<br />
=== PHP ===<br />
[[PHP]] 설치를 위해서는 {{Pkg|php}}, {{Pkg|php-apache}} 패키지를 설치한다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}} 파일에서 아래의 줄을 주석처리 한다:<br />
#LoadModule mpm_event_module modules/mod_mpm_event.so<br />
그리고 아래의 줄의 주석을 해제한다:<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
<br />
{{Note|1={{pkg|php-apache}}에 포함된 {{ic|libphp7.so}}이 {{ic|mod_mpm_event}}와는 제대로 동작하지 않고 {{ic|mod_mpm_prefork}}에서만 정상적으로 동작하기 때문에 위에서 기술된 것처럼 설정해주어야 한다.(참고: {{bug|39218}})<br />
<br />
위의 처리를 해주지 않는 경우 다음과 같은 에러 메세지가 출력된다:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
또 다른 해결 방법으로, {{ic|mod_proxy_fcgi}}를 사용하는 방법이 있다. 자세한 방법은 이하 절의 [[#Using php-fpm and mod_proxy_fcgi]]를 참고한다.<br />
}}<br />
<br />
PHP를 활성화하기 위해서 {{ic|/etc/httpd/conf/httpd.conf}} 파일에 아래 코드를 추가해준다:<br />
*{{ic|LoadModule}} 리스트에서, {{ic|LoadModule dir_module modules/mod_dir.so}} 다음의 원하는 곳에 아래 코드를 추가한다:<br />
LoadModule php7_module modules/libphp7.so<br />
*{{ic|Include}} 리스트 마지막 부분에 다음을 추가한다:<br />
Include conf/extra/php7_module.conf<br />
<br />
설정을 완료한 후, [[systemd#Using units|systemd를 사용하여]] {{ic|httpd.service}}를 재시작한다. <br />
<br />
PHP가 올바르게 설정되었는지 확인하려면 아파치 {{ic|DocumentRoot}} 디렉토리(예. {{ic|/srv/http/}} 혹은 {{ic|~/public_html}})에 {{ic|test.php}} 파일을 생성하여 다음 코드를 해당 파일에 추가한다:<br />
<?php phpinfo(); ?><br />
파일을 저장한 뒤, PHP가 제대로 작동하는지 확인하기 위하여 브라우저를 통해 다음 URL을 연다: http://localhost/test.php 또는 http://localhost/~myname/test.php<br />
<br />
더 많은 설정 옵션과 확장 모듈(extensions)에 대한 정보는 [[PHP]]를 참고한다.<br />
<br />
==== php-fpm, mod_proxy_fcgi 사용하기 ====<br />
<br />
{{Note|널리 알려진 ProxyPass를 이용한 설정과 다르게 SetHandler를 이용한 프록시 설정은 DirectoryIndex와 같이 아파치에서 사용되는 디렉티브를 방해하지 않는다. 이러한 특징ᅟ 덕분에 libphp7, mod_fastcgi, mod_fcgid 등으로 디자인된 소프트웨어와 더 나은 호환성을 보장한다. 하지만 그래도 ProxyPass를 계속해서 사용하고 싶다면, 아래 코드와 같이 시도하여 사용할 수 있다:<br />
{{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
{{pkg|php-fpm}} 패키지를 설치한다.<br />
<br />
아래의 내용으로 {{ic|/etc/httpd/conf/extra/php-fpm.conf}} 파일을 생성한다:<br />
{{hc|/etc/httpd/conf/extra/php-fpm.conf|<nowiki><br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<Proxy "fcgi://localhost/" enablereuse=on max=10><br />
</Proxy><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
</nowiki>}}<br />
<br />
그리고 나서 {{ic|/etc/httpd/conf/httpd.conf}} 파일의 최하단에 include 코드를 추가한다:<br />
Include conf/extra/php-fpm.conf<br />
<br />
{{Note|위 코드에서 {{ic|sock}}과 {{ic|fcgi}} 사이의 파이프 좌우로 빈칸은 허용되지 않는 점에 유의해야 한다. {{ic|localhost}}는 다른 문자열로 치환될 수 있으며, 치환된 문자열은 반드시 {{ic|SetHandler}}와 {{ic|Proxy}} 디렉티브에서도 일치해야 한다. 더 자세한 정보는 [https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html 이곳]에서 확인할 수 있다. {{ic|SetHandler}}와 {{ic|Proxy}}는 가상 호스트 설정 파일별로 사용가능하지만 {{ic|fcgi://}} 이후의 이름은 반드시 가상 호스트들끼리 서로 달라야 한다.}}<br />
<br />
{{ic|/etc/php/php-fpm.d/www.conf}}에서 PHP-FPM을 설정할 수 있지만 기본 설정으로도 정상적으로 동작한다.<br />
<br />
{{Note|<br />
아래 코드는 더이상 필요하지 않기 때문에 만약 {{ic|httpd.conf}} 파일에 추가했다면 삭제하도록 한다.<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
{{ic|httpd.service}}와 {{ic|php-fpm.service}}를 재시작한다.<br />
<br />
==== apache2-mpm-worker, mod_fcgid 사용하기 ====<br />
{{pkg|mod_fcgid}}와 {{Pkg|php-cgi}} 패키지를 설치한다.<br />
<br />
PHP wrapper를 위해 필요한 디렉토리와 심볼릭 링크를 만들어준다:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
다음 내용으로 {{ic|/etc/httpd/conf/extra/php-fcgid.conf}} 파일을 생성한다:<br />
{{hc|/etc/httpd/conf/extra/php-fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule><br />
</nowiki>}}<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}} 파일을 편집하여 actions 모듈을 활성화한다:<br />
LoadModule actions_module modules/mod_actions.so<br />
<br />
다음을 추가해준다.<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/httpd-mpm.conf<br />
Include conf/extra/php-fcgid.conf<br />
<br />
{{Note|<br />
아래 코드는 더이상 필요하지 않기 때문에 만약 {{ic|httpd.conf}} 파일에 추가했다면 삭제하도록 한다.<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
{{ic|httpd.service}}을 재시작한다.<br />
<br />
==== MySQL/MariaDB ====<br />
<br />
[[PHP#MySQL/MariaDB]] 위키페이지의 설명서를 따른다.<br />
<br />
설정이 완료되면 {{ic|httpd.service}}를 재시작한다.<br />
<br />
=== HTTP2 ===<br />
<br />
HTTP/2 지원을 위해서는 {{Pkg|nghttp2}} 패키지를 설치해야 한다.<br />
<br />
설치 후에 {{ic|httpd.conf}} 파일에서 다음 줄의 주석을 해제한다:<br />
LoadModule http2_module modules/mod_http2.so<br />
<br />
다음 줄을 추가한다:<br />
Protocols h2 http/1.1<br />
<br />
더 자세한 내용은 [https://httpd.apache.org/docs/2.4/mod/mod_http2.html mod_http2] 문서를 참고한다.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Apache Status and Logs ===<br />
<br />
See the status of the Apache daemon with [[systemctl]].<br />
<br />
Apache logs can be found in {{ic|/var/log/httpd/}}<br />
<br />
=== Error: PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Comment out the {{ic|unique_id_module}} line in {{ic|httpd.conf}}: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. ===<br />
<br />
If when loading {{ic|php7_module}} the {{ic|httpd.service}} fails, and you get an error like this in the journal:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
you need to replace {{ic|mpm_event_module}} with {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
=== AH00534: httpd: Configuration error: No MPM loaded. ===<br />
<br />
You might encounter this error after a recent upgrade. This is only the result of a recent change in {{ic|httpd.conf}} that you might not have reproduced in your local configuration.<br />
To fix it, uncomment the following line.<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
Also check [[#Apache_is_running_a_threaded_MPM.2C_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.|the above]] if more errors occur afterwards.<br />
<br />
=== Changing the max_execution_time in php.ini has no effect ===<br />
<br />
If you changed the {{ic|max_execution_time}} in {{ic|php.ini}} to a value greater than 30 (seconds), you may still get a {{ic|503 Service Unavailable}} response from Apache after 30 seconds. To solve this, add a {{ic|ProxyTimeout}} directive to your http configuration right before the {{ic|<FilesMatch \.php$>}} block:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
ProxyTimeout 300<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
== See also ==<br />
<br />
* [http://www.apache.org/ Apache Official Website]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Tutorial for creating self-signed certificates]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Apache Wiki Troubleshooting]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=441851Apache HTTP Server (한국어)2016-07-17T13:41:54Z<p>Sukbeom: /* Virtual hosts */</p>
<hr />
<div>[[Category:Web server]]<br />
[[cs:Apache HTTP Server]]<br />
[[de:LAMP Installation]]<br />
[[el:Apache HTTP Server]]<br />
[[en:Apache HTTP Server]]<br />
[[es:Apache HTTP Server]]<br />
[[fr:Lamp]]<br />
[[it:Apache HTTP Server]]<br />
[[ja:LAMP]]<br />
[[pl:Apache HTTP Server]]<br />
[[ru:Apache HTTP Server]]<br />
[[sr:Apache HTTP Server]]<br />
[[tr:LAMP]]<br />
[[zh-cn:Apache HTTP Server]]<br />
{{Related articles start}}<br />
{{Related|PHP}}<br />
{{Related|MySQL}}<br />
{{Related|PhpMyAdmin}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
[[Wikipedia:Apache HTTP Server|Apache HTTP Server]](생략해서 Apache라고도 한다)는 아파치 소프트웨어 재단에서 개발된 유명한 웹 서버이다.<br />
<br />
아파치는 보통 MySQL 같은 데이터베이스와 PHP 등의 스크립트 언어와 함께 사용된다. 이러ᅟ한 아파치와의 연동은 흔히 [[Wikipedia:LAMP (software bundle)|LAMP]] stack ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP)이라고 불린다. 이 위ᅟᅵ키페이지에서는 아파치 서버 구축 방법과 [[PHP]], [[MySQL]] 연동 방법에 대해서 설명한다.<br />
<br />
== 설치 ==<br />
{{Pkg|apache}} 패키지를 설치([[Install]])한다.<br />
<br />
== 설정 ==<br />
아파치 설정 파일들은 {{ic|/etc/httpd/conf}}에 위치한다. 주(主) 파일은 {{ic|/etc/httpd/conf/httpd.conf}}로서 다른 설정파일들을 포함한다. <br />
기본 설정파일은 아파치 설치 과정에서 자동으로 생성되며 정상적으로 동작하는 설정 파일이다. 기본 설정파일은 {{ic|/srv/http}} 디렉토리를 서버의 웹페이지에 접속한 사용자에게 제공한다.<br />
<br />
아파치 서버 서비스를 시작하기 위해서는 [[systemd#Using units|systemd]]를 이용하여 {{ic|httpd.service}}를 시작한다.<br />
<br />
서비스 시작 후에는 아파치 서버가 정상적으로 동작하고 있을 것이다. 서버의 동작여부를 확인하기 위해서는 웹 브라우저에서 http://localhost/로 접속한다. 접속하면 간단한 인덱스 페이지가 출력될 것이다.<br />
<br />
아파치 설정에 관련된 자세한 정보는 이어지는 절을 참고한다.<br />
<br />
=== 고급 옵션 ===<br />
아래에 열거된 옵션들은 {{ic|/etc/httpd/conf/httpd.conf}} 파일 내에 정의되어 있는 것으로서, 서버를 구축하고자 하는 사용자에게 유용한 옵션들이다.<br />
<br />
User http<br />
:아파치는 보안 문제 때문에 root 관리자에 의해 시작된 뒤 곧바로 http UID로 전환된다. 설정파일에 기본으로 등록되는 사용자는 http이며 해당 사용자는 아파치 설치 과정에서 자동으로 생성된다.<br />
<br />
Listen 80<br />
:아파치 서버에서 열어 놓을 포트를 설정한다. 라우터를 이용한 인터넷 접근을 위해서는 반드시 포트포워딩을 설정해주어야 한다.<br />
<br />
:만일 아파치 서버를 로컬에서만 접속이 허용되도록 설정하고 싶다면, 해당 줄 내용을 {{ic|Listen 127.0.0.1:80}}으로 변경한다.<br />
<br />
ServerAdmin you@example.com<br />
:관리자의 이메일 주소를 설정한다. 설정된 이메일 주소는 에러 페이지에서 관리자 메일로 표시된다.<br />
<br />
DocumentRoot "/srv/http"<br />
:호스팅할 웹 페이지들이 위치하는 디렉토리 위치<br />
<br />
:DocumentRoot를 변경하면 {{ic|<Directory "/srv/http">}}도 변경해야한다. 그렇지 않으면 변경된 DocumentRoot에 접근할 때 '''403 에러'''(권한 부족 에러)가 발생한다. 또한, {{ic|Require all denied}} 부분을 {{ic|Require all granted}}으로 변경해야 한다. 해당 라인을 바꾸지 않는 경우에도 '''403 에러'''가 발생할 수 있다. 언급한 두 가지 경우 외에, DocumentRoot 디텍토리와 그 부모 디렉토리의 권한 문제가 있는 경우에도 '''403 에러'''가 발생될 수 있다.<br />
<br />
두 개의 디렉토리(DocumentRoot, DocumentRoot의 부모 디렉토리)는 반드시 다른 사용자들에게도 실행권한이 부여되어야 한다. ({{ic|chmod o+x /path/to/DocumentRoot}}를 통해 설정할 수 있다)<br />
<br />
위에서 언급된 권한관련 해결방법에는 몇 가지 논란이 있다. 반드시 모든 사용자들에게 실행 권한을 줄 필요가 없고 ACL을 통해 웹서버에만 실행 권한을 줄 수 있는 방법이 있기 때문이다. 자세한 내용은 다음 링크를 살펴보자. [[Access Control Lists#Granting execution permissions for private files to a Web Server]], [[https://wiki.archlinux.org/index.php/Talk:Apache_HTTP_Server]]<br />
<br />
AllowOverride None<br />
:{{ic|<Directory>}} 섹션 안의 위 디렉티브는 아파치가 {{ic|.htaccess}} 파일을 완전하게 무시하도록 설정해준다. 하지만 아피치 2.4버전 이후부터 해당 옵션은 기본으로 되어있기 때문에 {{ic|.htaccess}} 파일을 사용하고 싶다면 명시적으로 허용해주어야 한다. {{ic|.htaccess}}에서 {{ic|mod_rewrite}} 혹은 다른 설정들을 사용하고 싶다면 .htaccess파일에 관련 디렉티브를 선언함으로써 서버 설정을 오버라이딩 해야 한다. 이에 관련된 자세한 내용은 다음 링크를 참고한다. [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache documentation].<br />
<br />
{{Tip|만약 아파치 설정파일과 관련된 이슈가 있다면 다음 명령어를 통해 설정파일을 점검할 수 있다: {{ic|apachectl configtest}}}}<br />
<br />
더 많은 설정 옵션들은 다음 파일에서 확인할 수 있다: {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
서버 서명을 비활성화하려면 다음 라인을 추가한다:<br />
ServerSignature Off<br />
<br />
아파치와 PHP 버전과 같은 서버 정보를 숨기려면 다음 라인을 추가한다:<br />
ServerTokens Prod<br />
<br />
=== 사용자 디렉토리 ===<br />
<br />
사용자 디렉토리는 기본적으로 http://localhost/~yourusername/를 통해서 접근 가능하며, {{ic|~/public_html}}의 내용을 표시한다. ({{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}에서 변경이 가능하다).<br />
<br />
만일 유저 디렉토리를 원하지 않는 경우에는 {{ic|/etc/httpd/conf/httpd.conf}} 파일에서 다음 라인을 주석처리한다:<br />
<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
아파치가 사용자의 홈디렉토리에 접근하기 위해서는 반드시 디렉토리의 권한을 적절하게 설정해 주어야 한다. 홈 디렉토리와 {{ic|~/public_html}}은 반드시 다른 사용자들이 실행권한을 갖고 있어야 한다. (혹은 ACL을 통해 아파치 사용자 http에 한해서만 허용하도록 한다.)<br />
<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
$ chmod -R o+r ~/public_html<br />
<br />
권한 설정이 완료되면 {{ic|httpd.service}}를 재시작한다. [[Umask#Set the mask value]] 참고.<br />
<br />
=== TLS/SSL ===<br />
{{Warning|SSL/TLS 구현하고자 한다면 몇몇 변수들과 구현부분에서 [https://weakdh.org/#affected 여전히] [[wikipedia:Transport_Layer_Security#Attacks_against_TLS.2FSSL|공격에 취약]]하다는 것을 알고 있어야 한다. 현재 SSL/TLS에서의 취약점과 웹 서버에 어떻게 반영시켜야 하는지 알고 싶다면 http://disablessl3.com/와 https://weakdh.org/sysadmin.html 사이트를 방문하면 더 자세한 정보를 얻을 수 있다.}}<br />
{{pkg|openssl}}는 TLS/SSL을 지원하고 아치에서 기본으로 설치된다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}}파일에서 다음 세 개의 라인의 주석처리를 해제한다:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
TLS/SSL를 위해서는 키와 인증이 필요하다. 만약 공공 도메인을 가지고 있다면 무료로 인증을 받기 위해 [[Let's Encrypt]]를 사용할 수 있다. 공공 도메인을 가지고 있지 않다면 [[#키 생성과 자체 서명 인증]]방법을 참고한다.<br />
<br />
키와 인증을 얻고 나서는 {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}} 파일 내의 {{ic|SSLCertificateFile}}, {{ic|SSLCertificateKeyFile}} 라인에서 해당 키와 인증을 가리키도록 설정한다.<br />
<br />
마지막으로 변경 사항 적용을 위해 {{ic|httpd.service}} 를 재시작한다.<br />
<br />
{{Tip|Mozilla has a useful [https://wiki.mozilla.org/Security/Server_Side_TLS SSL/TLS article] which includes [https://wiki.mozilla.org/Security/Server_Side_TLS#Apache Apache specific] configuration guidelines as well as an [https://mozilla.github.io/server-side-tls/ssl-config-generator/ automated tool] to help create a more secure configuration.}}<br />
<br />
==== 키 생성과 자체 서명 인증 방법 ====<br />
<br />
개인키와 자체 서명 인증을 생성한다. 이것은 [[wikipedia:Certificate signing request|CSR]]가 요구되지 않는 대부분의 설치로는 적절하다.<br />
<br />
# cd /etc/httpd/conf<br />
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 1095<br />
# chmod 400 server.key<br />
<br />
{{Note|-days 스위치는 옵션이며 RSA 키 크기는 최소 2048(기본값) 이상이어야 한다.}}<br />
<br />
만약 [[wikipedia:Certificate signing request|CSR]]의 생성이 필요하다면, 위의 방법 대신 아래의 키 생성 방법을 따르도록 한다.<br />
<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key<br />
# chmod 400 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 1095 -in server.csr -signkey server.key -out server.crt<br />
<br />
{{Note|더 많은 openssl 옵션을 보려면 [https://www.openssl.org/docs/apps/openssl.html man page] 또는 peruse openssl의 [https://www.openssl.org/docs/ extensive documentation]를 참고한다.}}<br />
<br />
=== 가상 호스트 ===<br />
<br />
{{Note|SSL 가상 호스트를 사용하기 위해서는 독립적인 <VirtualHost dommainame:443> 섹션을 추가해야한다. 관련된 예제는 다음 링크를 참고한다: [[#Managing many virtual hosts]]}}<br />
<br />
한 개 이상의 호스트를 원하는 경우에 {{ic|/etc/httpd/conf/httpd.conf}} 설정 파일에서 아래 기술된 부분의 주석을 해제한다.<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
또한, {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} 파일에서 가상 호스트를 설정할 수 있다. 제공되는 기본 설정파일에는 자세한 예제가 많기 때문에 호스트 설정을 위해 참고하기에 유용하다.<br />
<br />
로컬 머신에서 가상 호스트를 테스트하고 싶다면, {{ic|/etc/hosts}} 파일에 가상 도메인명을 다음과 같이 등록한다:<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
파일 변경 후, 설정 적용을 위해 {{ic|httpd.service}}를 재시작한다.<br />
<br />
==== 가상 호스트 관리 ====<br />
<br />
이 절에서는 엄청나게 많은 가상 호스트를 가지고 있는 경우에 가상 호스트들을 관리하는 방법에 대하여 기술한다. 이러한 경우에는 가상 호스트별로 설정 파일을 만들고 이를 하나의 디렉토리(예: {{ic|/etc/httpd/conf/vhosts}})에 저장하는 것을 권장한다. <br />
<br />
먼저 디렉토리를 하나 생성한다:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
각 가상 호스트별 설정 파일을 생성한 디렉토리 안에 생성한다:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
마지막으로 아파치 메인 설정파일인 {{ic|/etc/httpd/conf/httpd.conf}} 안에 {{ic|Include}}를 사용하서 가상 호스트별로 생성해둔 설정 파일들을 포함시킨다:<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
<br />
위처럼 각각의 가상 호스트를 주석처리를 통해 간단하게 활성화/비활성화할 수 있다.<br />
<br />
다음은 각 가상 호스트별 파일의 예제이다:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/apache.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/apache.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== Extensions ==<br />
<br />
=== PHP ===<br />
To install [[PHP]], first [[install]] the {{Pkg|php}} and {{Pkg|php-apache}} packages.<br />
<br />
In {{ic|/etc/httpd/conf/httpd.conf}}, comment the line:<br />
#LoadModule mpm_event_module modules/mod_mpm_event.so<br />
and uncomment the line:<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
<br />
{{Note|1=The above is required, because {{ic|libphp7.so}} included with {{pkg|php-apache}} does not work with {{ic|mod_mpm_event}}, but will only work {{ic|mod_mpm_prefork}} instead. ({{bug|39218}})<br />
<br />
Otherwise you will get the following error:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
As an alternative, you can use {{ic|mod_proxy_fcgi}} (see [[#Using php-fpm and mod_proxy_fcgi]] below).<br />
}}<br />
<br />
To enable PHP, add these lines to {{ic|/etc/httpd/conf/httpd.conf}}:<br />
*Place this in the {{ic|LoadModule}} list anywhere after {{ic|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php7_module modules/libphp7.so<br />
*Place this at the end of the {{ic|Include}} list:<br />
Include conf/extra/php7_module.conf<br />
<br />
Restart {{ic|httpd.service}} [[systemd#Using units|using systemd]]<br />
<br />
To test whether PHP was correctly configured: create a file called {{ic|test.php}} in your Apache {{ic|DocumentRoot}} directory (e.g. {{ic|/srv/http/}} or {{ic|~/public_html}}) with the following contents:<br />
<?php phpinfo(); ?><br />
To see if it works go to: http://localhost/test.php or http://localhost/~myname/test.php<br />
<br />
For advanced configuration and extensions, please read [[PHP]].<br />
<br />
==== Using php-fpm and mod_proxy_fcgi ====<br />
<br />
{{Note|Unlike the widespread setup with ProxyPass, the proxy configuration with SetHandler respects other Apache directives like DirectoryIndex. This ensures a better compatibility with software designed for libphp7, mod_fastcgi and mod_fcgid.<br />
If you still want to try ProxyPass, experiment with a line like this: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
[[Install]] the {{pkg|php-fpm}} package.<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fpm.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fpm.conf|<nowiki><br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<Proxy "fcgi://localhost/" enablereuse=on max=10><br />
</Proxy><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
</nowiki>}}<br />
<br />
And include it at the bottom of {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/php-fpm.conf<br />
<br />
{{Note|The pipe between {{ic|sock}} and {{ic|fcgi}} is not allowed to be surrounded by a space! {{ic|localhost}} can be replaced by any string but it should match in {{ic|SetHandler}} and {{ic|Proxy}} directives. More [https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html here]. {{ic|SetHandler}} and {{ic|Proxy}} can be used per vhost configs but the name after {{ic|fcgi://}} should differ for each vhost setup.}}<br />
<br />
You can configure PHP-FPM in {{ic|/etc/php/php-fpm.d/www.conf}}, but the default setup should work fine.<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}} and {{ic|php-fpm.service}}.<br />
<br />
==== Using apache2-mpm-worker and mod_fcgid ====<br />
[[Install]] the {{pkg|mod_fcgid}} and {{Pkg|php-cgi}} packages.<br />
<br />
Create the needed directory and symlink it for the PHP wrapper:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fcgid.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule><br />
</nowiki>}}<br />
<br />
Edit {{ic|/etc/httpd/conf/httpd.conf}}, enabling the actions module:<br />
LoadModule actions_module modules/mod_actions.so<br />
<br />
And add the following lines:<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/httpd-mpm.conf<br />
Include conf/extra/php-fcgid.conf<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}}.<br />
<br />
==== MySQL/MariaDB ====<br />
<br />
Follow the instructions in [[PHP#MySQL/MariaDB]].<br />
<br />
When configuration is complete, [[restart]] {{ic|httpd.service}} to apply all the changes.<br />
<br />
=== HTTP2 ===<br />
<br />
To enable HTTP/2 support, install the {{Pkg|nghttp2}} package.<br />
<br />
Then uncomment the following line in {{ic|httpd.conf}}:<br />
LoadModule http2_module modules/mod_http2.so<br />
<br />
And add the following line:<br />
Protocols h2 http/1.1<br />
<br />
For more information, see the [https://httpd.apache.org/docs/2.4/mod/mod_http2.html mod_http2] documentation.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Apache Status and Logs ===<br />
<br />
See the status of the Apache daemon with [[systemctl]].<br />
<br />
Apache logs can be found in {{ic|/var/log/httpd/}}<br />
<br />
=== Error: PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Comment out the {{ic|unique_id_module}} line in {{ic|httpd.conf}}: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. ===<br />
<br />
If when loading {{ic|php7_module}} the {{ic|httpd.service}} fails, and you get an error like this in the journal:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
you need to replace {{ic|mpm_event_module}} with {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
=== AH00534: httpd: Configuration error: No MPM loaded. ===<br />
<br />
You might encounter this error after a recent upgrade. This is only the result of a recent change in {{ic|httpd.conf}} that you might not have reproduced in your local configuration.<br />
To fix it, uncomment the following line.<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
Also check [[#Apache_is_running_a_threaded_MPM.2C_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.|the above]] if more errors occur afterwards.<br />
<br />
=== Changing the max_execution_time in php.ini has no effect ===<br />
<br />
If you changed the {{ic|max_execution_time}} in {{ic|php.ini}} to a value greater than 30 (seconds), you may still get a {{ic|503 Service Unavailable}} response from Apache after 30 seconds. To solve this, add a {{ic|ProxyTimeout}} directive to your http configuration right before the {{ic|<FilesMatch \.php$>}} block:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
ProxyTimeout 300<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
== See also ==<br />
<br />
* [http://www.apache.org/ Apache Official Website]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Tutorial for creating self-signed certificates]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Apache Wiki Troubleshooting]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=441827Apache HTTP Server (한국어)2016-07-17T07:03:12Z<p>Sukbeom: </p>
<hr />
<div>[[Category:Web server]]<br />
[[cs:Apache HTTP Server]]<br />
[[de:LAMP Installation]]<br />
[[el:Apache HTTP Server]]<br />
[[en:Apache HTTP Server]]<br />
[[es:Apache HTTP Server]]<br />
[[fr:Lamp]]<br />
[[it:Apache HTTP Server]]<br />
[[ja:LAMP]]<br />
[[pl:Apache HTTP Server]]<br />
[[ru:Apache HTTP Server]]<br />
[[sr:Apache HTTP Server]]<br />
[[tr:LAMP]]<br />
[[zh-cn:Apache HTTP Server]]<br />
{{Related articles start}}<br />
{{Related|PHP}}<br />
{{Related|MySQL}}<br />
{{Related|PhpMyAdmin}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
[[Wikipedia:Apache HTTP Server|Apache HTTP Server]](생략해서 Apache라고도 한다)는 아파치 소프트웨어 재단에서 개발된 유명한 웹 서버이다.<br />
<br />
아파치는 보통 MySQL 같은 데이터베이스와 PHP 등의 스크립트 언어와 함께 사용된다. 이러ᅟ한 아파치와의 연동은 흔히 [[Wikipedia:LAMP (software bundle)|LAMP]] stack ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP)이라고 불린다. 이 위ᅟᅵ키페이지에서는 아파치 서버 구축 방법과 [[PHP]], [[MySQL]] 연동 방법에 대해서 설명한다.<br />
<br />
== 설치 ==<br />
{{Pkg|apache}} 패키지를 설치([[Install]])한다.<br />
<br />
== 설정 ==<br />
아파치 설정 파일들은 {{ic|/etc/httpd/conf}}에 위치한다. 주(主) 파일은 {{ic|/etc/httpd/conf/httpd.conf}}로서 다른 설정파일들을 포함한다. <br />
기본 설정파일은 아파치 설치 과정에서 자동으로 생성되며 정상적으로 동작하는 설정 파일이다. 기본 설정파일은 {{ic|/srv/http}} 디렉토리를 서버의 웹페이지에 접속한 사용자에게 제공한다.<br />
<br />
아파치 서버 서비스를 시작하기 위해서는 [[systemd#Using units|systemd]]를 이용하여 {{ic|httpd.service}}를 시작한다.<br />
<br />
서비스 시작 후에는 아파치 서버가 정상적으로 동작하고 있을 것이다. 서버의 동작여부를 확인하기 위해서는 웹 브라우저에서 http://localhost/로 접속한다. 접속하면 간단한 인덱스 페이지가 출력될 것이다.<br />
<br />
아파치 설정에 관련된 자세한 정보는 이어지는 절을 참고한다.<br />
<br />
=== 고급 옵션 ===<br />
아래에 열거된 옵션들은 {{ic|/etc/httpd/conf/httpd.conf}} 파일 내에 정의되어 있는 것으로서, 서버를 구축하고자 하는 사용자에게 유용한 옵션들이다.<br />
<br />
User http<br />
:아파치는 보안 문제 때문에 root 관리자에 의해 시작된 뒤 곧바로 http UID로 전환된다. 설정파일에 기본으로 등록되는 사용자는 http이며 해당 사용자는 아파치 설치 과정에서 자동으로 생성된다.<br />
<br />
Listen 80<br />
:아파치 서버에서 열어 놓을 포트를 설정한다. 라우터를 이용한 인터넷 접근을 위해서는 반드시 포트포워딩을 설정해주어야 한다.<br />
<br />
:만일 아파치 서버를 로컬에서만 접속이 허용되도록 설정하고 싶다면, 해당 줄 내용을 {{ic|Listen 127.0.0.1:80}}으로 변경한다.<br />
<br />
ServerAdmin you@example.com<br />
:관리자의 이메일 주소를 설정한다. 설정된 이메일 주소는 에러 페이지에서 관리자 메일로 표시된다.<br />
<br />
DocumentRoot "/srv/http"<br />
:호스팅할 웹 페이지들이 위치하는 디렉토리 위치<br />
<br />
:DocumentRoot를 변경하면 {{ic|<Directory "/srv/http">}}도 변경해야한다. 그렇지 않으면 변경된 DocumentRoot에 접근할 때 '''403 에러'''(권한 부족 에러)가 발생한다. 또한, {{ic|Require all denied}} 부분을 {{ic|Require all granted}}으로 변경해야 한다. 해당 라인을 바꾸지 않는 경우에도 '''403 에러'''가 발생할 수 있다. 언급한 두 가지 경우 외에, DocumentRoot 디텍토리와 그 부모 디렉토리의 권한 문제가 있는 경우에도 '''403 에러'''가 발생될 수 있다.<br />
<br />
두 개의 디렉토리(DocumentRoot, DocumentRoot의 부모 디렉토리)는 반드시 다른 사용자들에게도 실행권한이 부여되어야 한다. ({{ic|chmod o+x /path/to/DocumentRoot}}를 통해 설정할 수 있다)<br />
<br />
위에서 언급된 권한관련 해결방법에는 몇 가지 논란이 있다. 반드시 모든 사용자들에게 실행 권한을 줄 필요가 없고 ACL을 통해 웹서버에만 실행 권한을 줄 수 있는 방법이 있기 때문이다. 자세한 내용은 다음 링크를 살펴보자. [[Access Control Lists#Granting execution permissions for private files to a Web Server]], [[https://wiki.archlinux.org/index.php/Talk:Apache_HTTP_Server]]<br />
<br />
AllowOverride None<br />
:{{ic|<Directory>}} 섹션 안의 위 디렉티브는 아파치가 {{ic|.htaccess}} 파일을 완전하게 무시하도록 설정해준다. 하지만 아피치 2.4버전 이후부터 해당 옵션은 기본으로 되어있기 때문에 {{ic|.htaccess}} 파일을 사용하고 싶다면 명시적으로 허용해주어야 한다. {{ic|.htaccess}}에서 {{ic|mod_rewrite}} 혹은 다른 설정들을 사용하고 싶다면 .htaccess파일에 관련 디렉티브를 선언함으로써 서버 설정을 오버라이딩 해야 한다. 이에 관련된 자세한 내용은 다음 링크를 참고한다. [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache documentation].<br />
<br />
{{Tip|만약 아파치 설정파일과 관련된 이슈가 있다면 다음 명령어를 통해 설정파일을 점검할 수 있다: {{ic|apachectl configtest}}}}<br />
<br />
더 많은 설정 옵션들은 다음 파일에서 확인할 수 있다: {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
서버 서명을 비활성화하려면 다음 라인을 추가한다:<br />
ServerSignature Off<br />
<br />
아파치와 PHP 버전과 같은 서버 정보를 숨기려면 다음 라인을 추가한다:<br />
ServerTokens Prod<br />
<br />
=== 사용자 디렉토리 ===<br />
<br />
사용자 디렉토리는 기본적으로 http://localhost/~yourusername/를 통해서 접근 가능하며, {{ic|~/public_html}}의 내용을 표시한다. ({{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}에서 변경이 가능하다).<br />
<br />
만일 유저 디렉토리를 원하지 않는 경우에는 {{ic|/etc/httpd/conf/httpd.conf}} 파일에서 다음 라인을 주석처리한다:<br />
<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
아파치가 사용자의 홈디렉토리에 접근하기 위해서는 반드시 디렉토리의 권한을 적절하게 설정해 주어야 한다. 홈 디렉토리와 {{ic|~/public_html}}은 반드시 다른 사용자들이 실행권한을 갖고 있어야 한다. (혹은 ACL을 통해 아파치 사용자 http에 한해서만 허용하도록 한다.)<br />
<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
$ chmod -R o+r ~/public_html<br />
<br />
권한 설정이 완료되면 {{ic|httpd.service}}를 재시작한다. [[Umask#Set the mask value]] 참고.<br />
<br />
=== TLS/SSL ===<br />
{{Warning|SSL/TLS 구현하고자 한다면 몇몇 변수들과 구현부분에서 [https://weakdh.org/#affected 여전히] [[wikipedia:Transport_Layer_Security#Attacks_against_TLS.2FSSL|공격에 취약]]하다는 것을 알고 있어야 한다. 현재 SSL/TLS에서의 취약점과 웹 서버에 어떻게 반영시켜야 하는지 알고 싶다면 http://disablessl3.com/와 https://weakdh.org/sysadmin.html 사이트를 방문하면 더 자세한 정보를 얻을 수 있다.}}<br />
{{pkg|openssl}}는 TLS/SSL을 지원하고 아치에서 기본으로 설치된다.<br />
<br />
{{ic|/etc/httpd/conf/httpd.conf}}파일에서 다음 세 개의 라인의 주석처리를 해제한다:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
TLS/SSL를 위해서는 키와 인증이 필요하다. 만약 공공 도메인을 가지고 있다면 무료로 인증을 받기 위해 [[Let's Encrypt]]를 사용할 수 있다. 공공 도메인을 가지고 있지 않다면 [[#키 생성과 자체 서명 인증]]방법을 참고한다.<br />
<br />
키와 인증을 얻고 나서는 {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}} 파일 내의 {{ic|SSLCertificateFile}}, {{ic|SSLCertificateKeyFile}} 라인에서 해당 키와 인증을 가리키도록 설정한다.<br />
<br />
마지막으로 변경 사항 적용을 위해 {{ic|httpd.service}} 를 재시작한다.<br />
<br />
{{Tip|Mozilla has a useful [https://wiki.mozilla.org/Security/Server_Side_TLS SSL/TLS article] which includes [https://wiki.mozilla.org/Security/Server_Side_TLS#Apache Apache specific] configuration guidelines as well as an [https://mozilla.github.io/server-side-tls/ssl-config-generator/ automated tool] to help create a more secure configuration.}}<br />
<br />
==== 키 생성과 자체 서명 인증 방법 ====<br />
<br />
개인키와 자체 서명 인증을 생성한다. 이것은 [[wikipedia:Certificate signing request|CSR]]가 요구되지 않는 대부분의 설치로는 적절하다.<br />
<br />
# cd /etc/httpd/conf<br />
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 1095<br />
# chmod 400 server.key<br />
<br />
{{Note|-days 스위치는 옵션이며 RSA 키 크기는 최소 2048(기본값) 이상이어야 한다.}}<br />
<br />
만약 [[wikipedia:Certificate signing request|CSR]]의 생성이 필요하다면, 위의 방법 대신 아래의 키 생성 방법을 따르도록 한다.<br />
<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key<br />
# chmod 400 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 1095 -in server.csr -signkey server.key -out server.crt<br />
<br />
{{Note|더 많은 openssl 옵션을 보려면 [https://www.openssl.org/docs/apps/openssl.html man page] 또는 peruse openssl의 [https://www.openssl.org/docs/ extensive documentation]를 참고한다.}}<br />
<br />
=== Virtual hosts ===<br />
<br />
{{Note|You will need to add a separate <VirtualHost dommainame:443> section for virtual host SSL support.<br />
See [[#Managing many virtual hosts]] for an example file.}}<br />
<br />
If you want to have more than one host, uncomment the following line in {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
In {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} set your virtual hosts. The default file contains an elaborate example that should help you get started.<br />
<br />
To test the virtual hosts on you local machine, add the virtual names to your {{ic|/etc/hosts}} file:<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
Restart {{ic|httpd.service}} to apply any changes.<br />
<br />
==== Managing many virtual hosts ====<br />
<br />
If you have a huge amount of virtual hosts, you may want to easily disable and enable them. It is recommended to create one configuration file per virtual host and store them all in one folder, eg: {{ic|/etc/httpd/conf/vhosts}}.<br />
<br />
First create the folder:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
Then place the single configuration files in it:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
In the last step, {{ic|Include}} the single configurations in your {{ic|/etc/httpd/conf/httpd.conf}}:<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
<br />
You can enable and disable single virtual hosts by commenting or uncommenting them.<br />
<br />
A very basic vhost file will look like this:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/apache.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/apache.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== Extensions ==<br />
<br />
=== PHP ===<br />
To install [[PHP]], first [[install]] the {{Pkg|php}} and {{Pkg|php-apache}} packages.<br />
<br />
In {{ic|/etc/httpd/conf/httpd.conf}}, comment the line:<br />
#LoadModule mpm_event_module modules/mod_mpm_event.so<br />
and uncomment the line:<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
<br />
{{Note|1=The above is required, because {{ic|libphp7.so}} included with {{pkg|php-apache}} does not work with {{ic|mod_mpm_event}}, but will only work {{ic|mod_mpm_prefork}} instead. ({{bug|39218}})<br />
<br />
Otherwise you will get the following error:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
As an alternative, you can use {{ic|mod_proxy_fcgi}} (see [[#Using php-fpm and mod_proxy_fcgi]] below).<br />
}}<br />
<br />
To enable PHP, add these lines to {{ic|/etc/httpd/conf/httpd.conf}}:<br />
*Place this in the {{ic|LoadModule}} list anywhere after {{ic|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php7_module modules/libphp7.so<br />
*Place this at the end of the {{ic|Include}} list:<br />
Include conf/extra/php7_module.conf<br />
<br />
Restart {{ic|httpd.service}} [[systemd#Using units|using systemd]]<br />
<br />
To test whether PHP was correctly configured: create a file called {{ic|test.php}} in your Apache {{ic|DocumentRoot}} directory (e.g. {{ic|/srv/http/}} or {{ic|~/public_html}}) with the following contents:<br />
<?php phpinfo(); ?><br />
To see if it works go to: http://localhost/test.php or http://localhost/~myname/test.php<br />
<br />
For advanced configuration and extensions, please read [[PHP]].<br />
<br />
==== Using php-fpm and mod_proxy_fcgi ====<br />
<br />
{{Note|Unlike the widespread setup with ProxyPass, the proxy configuration with SetHandler respects other Apache directives like DirectoryIndex. This ensures a better compatibility with software designed for libphp7, mod_fastcgi and mod_fcgid.<br />
If you still want to try ProxyPass, experiment with a line like this: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
[[Install]] the {{pkg|php-fpm}} package.<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fpm.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fpm.conf|<nowiki><br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<Proxy "fcgi://localhost/" enablereuse=on max=10><br />
</Proxy><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
</nowiki>}}<br />
<br />
And include it at the bottom of {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/php-fpm.conf<br />
<br />
{{Note|The pipe between {{ic|sock}} and {{ic|fcgi}} is not allowed to be surrounded by a space! {{ic|localhost}} can be replaced by any string but it should match in {{ic|SetHandler}} and {{ic|Proxy}} directives. More [https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html here]. {{ic|SetHandler}} and {{ic|Proxy}} can be used per vhost configs but the name after {{ic|fcgi://}} should differ for each vhost setup.}}<br />
<br />
You can configure PHP-FPM in {{ic|/etc/php/php-fpm.d/www.conf}}, but the default setup should work fine.<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}} and {{ic|php-fpm.service}}.<br />
<br />
==== Using apache2-mpm-worker and mod_fcgid ====<br />
[[Install]] the {{pkg|mod_fcgid}} and {{Pkg|php-cgi}} packages.<br />
<br />
Create the needed directory and symlink it for the PHP wrapper:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fcgid.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule><br />
</nowiki>}}<br />
<br />
Edit {{ic|/etc/httpd/conf/httpd.conf}}, enabling the actions module:<br />
LoadModule actions_module modules/mod_actions.so<br />
<br />
And add the following lines:<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/httpd-mpm.conf<br />
Include conf/extra/php-fcgid.conf<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}}.<br />
<br />
==== MySQL/MariaDB ====<br />
<br />
Follow the instructions in [[PHP#MySQL/MariaDB]].<br />
<br />
When configuration is complete, [[restart]] {{ic|httpd.service}} to apply all the changes.<br />
<br />
=== HTTP2 ===<br />
<br />
To enable HTTP/2 support, install the {{Pkg|nghttp2}} package.<br />
<br />
Then uncomment the following line in {{ic|httpd.conf}}:<br />
LoadModule http2_module modules/mod_http2.so<br />
<br />
And add the following line:<br />
Protocols h2 http/1.1<br />
<br />
For more information, see the [https://httpd.apache.org/docs/2.4/mod/mod_http2.html mod_http2] documentation.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Apache Status and Logs ===<br />
<br />
See the status of the Apache daemon with [[systemctl]].<br />
<br />
Apache logs can be found in {{ic|/var/log/httpd/}}<br />
<br />
=== Error: PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Comment out the {{ic|unique_id_module}} line in {{ic|httpd.conf}}: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. ===<br />
<br />
If when loading {{ic|php7_module}} the {{ic|httpd.service}} fails, and you get an error like this in the journal:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
you need to replace {{ic|mpm_event_module}} with {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
=== AH00534: httpd: Configuration error: No MPM loaded. ===<br />
<br />
You might encounter this error after a recent upgrade. This is only the result of a recent change in {{ic|httpd.conf}} that you might not have reproduced in your local configuration.<br />
To fix it, uncomment the following line.<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
Also check [[#Apache_is_running_a_threaded_MPM.2C_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.|the above]] if more errors occur afterwards.<br />
<br />
=== Changing the max_execution_time in php.ini has no effect ===<br />
<br />
If you changed the {{ic|max_execution_time}} in {{ic|php.ini}} to a value greater than 30 (seconds), you may still get a {{ic|503 Service Unavailable}} response from Apache after 30 seconds. To solve this, add a {{ic|ProxyTimeout}} directive to your http configuration right before the {{ic|<FilesMatch \.php$>}} block:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
ProxyTimeout 300<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
== See also ==<br />
<br />
* [http://www.apache.org/ Apache Official Website]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Tutorial for creating self-signed certificates]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Apache Wiki Troubleshooting]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=441798Apache HTTP Server (한국어)2016-07-17T03:24:30Z<p>Sukbeom: </p>
<hr />
<div>[[Category:Web server]]<br />
[[cs:Apache HTTP Server]]<br />
[[de:LAMP Installation]]<br />
[[el:Apache HTTP Server]]<br />
[[en:Apache HTTP Server]]<br />
[[es:Apache HTTP Server]]<br />
[[fr:Lamp]]<br />
[[it:Apache HTTP Server]]<br />
[[ja:LAMP]]<br />
[[pl:Apache HTTP Server]]<br />
[[ru:Apache HTTP Server]]<br />
[[sr:Apache HTTP Server]]<br />
[[tr:LAMP]]<br />
[[zh-cn:Apache HTTP Server]]<br />
{{Related articles start}}<br />
{{Related|PHP}}<br />
{{Related|MySQL}}<br />
{{Related|PhpMyAdmin}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
[[Wikipedia:Apache HTTP Server|Apache HTTP Server]](또는 간단하게 Apache라고도 함)는 아파치 소프트웨어 재단에서 개발된 유명한 웹 서버이다.<br />
<br />
아파치는 PHP와 MySQL과 같은 데이터베이스와 같이 스크립트 언어와 함께 자주 사용된다. 이러한 조합은 흔히 [[Wikipedia:LAMP (software bundle)|LAMP]] stack ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP)라고 불린다. 이 위키페이지에서는 아파치 서버 구축 방법과 [[PHP]], [[MySQL]] 연동 방법에 대해서 설명한다.<br />
<br />
== 설치 ==<br />
{{Pkg|apache}} 패키지를 설치([[Install]])한다.<br />
<br />
== 설정 ==<br />
아파치 설정 파일은 {{ic|/etc/httpd/conf}}에서 확인할 수 있다. 주요 설정 파일은 {{ic|/etc/httpd/conf/httpd.conf}}로서 다른 설정파일들을 포함(include)한다. <br />
설치 과정에서 생성된 기본 설정파일은 정상적으로 동작한다. 해당 기본 설정파일은 {{ic|/srv/http}} 디렉토리를 웹서버 접속자에게 제공하도록 되어 있다.<br />
<br />
아파치 서버 시작은 [[systemd#Using units|systemd]]를 통하여 {{ic|httpd.service}}를 실행한다.<br />
<br />
서비스 시작 후에는 아피치 서버가 정상적으로 동작하고 있을 것이다. 이를 확인하기 위해서는 웹 브라우저에서 http://localhost/ 로 접속한다. 접속하면 간단한 인덱스 페이지를 확인할 수 있다.<br />
<br />
설정에 관련하여 더 자세한 정보를 원한다면 이어지는 절을 참고한다.<br />
<br />
=== 고급 옵션들 ===<br />
아래에 열거된 옵션들은 {{ic|/etc/httpd/conf/httpd.conf}} 파일 내에 있는 것으로서 서버를 구축하고자 하는 사용자에게 유용한 옵션들이다.<br />
<br />
User http<br />
:몇몇 보안 문제 때문에 아파치는 root 권한으로 시작되고나서 곧바로 http UID로 전환된다. 기본으로 등록된 사용자는 http이며 해당 사용자는 아파치 설치 과정에서 자동으로 생성된다.<br />
<br />
Listen 80<br />
:아파치 서버에서 열어놓을 포트를 설정한다. 라우터를 이용한 인터넷 접근을 위해서는 반드시 포트포워딩을 설정해주어야 한다.<br />
<br />
:만일 아파치를 로컬에서만 허용되도록 설정하고 싶다면 해당 라인을 {{ic|Listen 127.0.0.1:80}}으로 변경한다.<br />
<br />
ServerAdmin you@example.com<br />
:관리자의 이메일 주소를 설정한다. 설정된 이메일주소는 에러 페이지와 같은 곳에 출력된다.<br />
<br />
DocumentRoot "/srv/http"<br />
:호스팅할 웹 페이지들을 넣는 디렉토리 위치<br />
<br />
:이 옵션은 변경이 가능하지만, 만약 변경한다면 {{ic|<Directory "/srv/http">}} 또한 변경해야한다는 점에 유의해야한다. 그렇지 않은 경우 새로운 DocumentRoot에 접근하려고 할 때 '''403 에러'''(권한 부족 에러)가 발생한다. 추가적으로, {{ic|Require all denied}} 라인을 {{ic|Require all granted}}으로 바꿔야한다. 해당 라인을 바꾸지 않는 경우에도 '''403 에러'''가 발생할 수 있다. 403 에러의 또다른 원인으로 DocumentRoot 디텍토리와 해당 디렉토리의 부모 디렉토리의 권한에 문제가 있을 수 있다. <br />
<br />
이 두 개의 디렉토리(DocumentRoot, DocumentRoot의 부모 디렉토리)는 반드시 다른 사용자들에게도 실행권한이 부여되어야 한다. ({{ic|chmod o+x /path/to/DocumentRoot}}를 통해 설정할 수 있다고 하지만 완전한 해결 방법은 아니다. 아래 내용을 살펴본다.[[Access Control Lists#Granting execution permissions for private files to a Web Server]])<br />
<br />
위 문제 해결 방법에는 다소 문제가 있다. 반드시 모든 사용자들에게 실행 권한을 줄 필요가 없고 ACL을 통해 웹서버에만 실행 권한을 줄 수 있다. 더 자세한 내용은 다음 링크를 참고한다. <br />
<br />
AllowOverride None<br />
:{{ic|<Directory>}} 섹션 안의 이 디렉티브는 아파치가 {{ic|.htaccess}} 파일을 완전하게 무시하도록 설정해준다. 아피치 2.4버전 이후부터 해당 옵션은 기본으로 되어있기 때문에 {{ic|.htaccess}} 파일을 사용하고 싶다면 명시적으로 허용해주어야 한다. {{ic|.htaccess}}에서 {{ic|mod_rewrite}} 혹은 다른 설정들을 사용하려 한다면, 해당 파일에 관련 디렉티브를 선언함으로써 서버 설정을 오버라이딩할 수 있다. 더 자세한 내용은 다음 링크를 참고한다. [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache documentation].<br />
<br />
{{Tip|만약 아파치 설정파일과 관련된 이슈가 있다면 다음 명령어를 통해 현재의 설정파일을 점검할 수 있다: {{ic|apachectl configtest}}}}<br />
<br />
더 많은 설정들은 다음 파일에서 확인할 수 있다: {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
서버 서명을 비활성화하기 위해서는 다음 라인을 추가한다:<br />
ServerSignature Off<br />
<br />
아파치와 PHP 버전과 같은 서버 정보를 숨기고자 한다면 다음 라인을 추가한다:<br />
ServerTokens Prod<br />
<br />
=== 사용자 디렉토리 ===<br />
<br />
사용자 디렉토리는 기본적으로 http://localhost/~yourusername/를 통해서 접근 가능하며, {{ic|~/public_html}}의 내용을 출력한다. ({{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}에서 변경이 가능하다).<br />
<br />
만일 유저 디렉토리를 원하지 않는 경우에는 {{ic|/etc/httpd/conf/httpd.conf}} 파일에서 다음 라인을 주석처리한다:<br />
<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
You must make sure that your home directory permissions are set properly so that Apache can get there. Your home directory and {{ic|~/public_html}} must be executable for others ("rest of the world"):<br />
<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
$ chmod -R o+r ~/public_html<br />
<br />
Restart {{ic|httpd.service}} to apply any changes. See also [[Umask#Set the mask value]].<br />
<br />
=== TLS/SSL ===<br />
{{Warning|If you plan on implementing SSL/TLS, know that some variations and implementations are [https://weakdh.org/#affected still] [[wikipedia:Transport_Layer_Security#Attacks_against_TLS.2FSSL|vulnerable to attack]]. For details on these current vulnerabilities within SSL/TLS and how to apply appropriate changes to the web server, visit http://disablessl3.com/ and https://weakdh.org/sysadmin.html}}<br />
{{pkg|openssl}} provides TLS/SSL support and is installed by default on Arch installations.<br />
<br />
In {{ic|/etc/httpd/conf/httpd.conf}}, uncomment the following three lines:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
For TLS/SSL, you will need a key and certificate. If you own a public domain, you can use [[Let's Encrypt]] to obtain a certificate for free, otherwise follow [[#Create a key and (self-signed) certificate]].<br />
<br />
After obtaining a key and certificate, make sure the {{ic|SSLCertificateFile}} and {{ic|SSLCertificateKeyFile}} lines in {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}} point to the key and certificate.<br />
<br />
Finally, restart {{ic|httpd.service}} to apply any changes.<br />
<br />
{{Tip|Mozilla has a useful [https://wiki.mozilla.org/Security/Server_Side_TLS SSL/TLS article] which includes [https://wiki.mozilla.org/Security/Server_Side_TLS#Apache Apache specific] configuration guidelines as well as an [https://mozilla.github.io/server-side-tls/ssl-config-generator/ automated tool] to help create a more secure configuration.}}<br />
<br />
==== Create a key and (self-signed) certificate ====<br />
<br />
Create a private key and self-signed certificate. This is adequate for most installations that do not require a [[wikipedia:Certificate signing request|CSR]]:<br />
<br />
# cd /etc/httpd/conf<br />
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 1095<br />
# chmod 400 server.key<br />
<br />
{{Note|The -days switch is optional and RSA keysize can be as low as 2048 (default).}}<br />
<br />
If you need to create a [[wikipedia:Certificate signing request|CSR]], follow these keygen instructions instead of the above:<br />
<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key<br />
# chmod 400 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 1095 -in server.csr -signkey server.key -out server.crt<br />
<br />
{{Note|For more openssl options, read the [https://www.openssl.org/docs/apps/openssl.html man page] or peruse openssl's [https://www.openssl.org/docs/ extensive documentation].}}<br />
<br />
=== Virtual hosts ===<br />
<br />
{{Note|You will need to add a separate <VirtualHost dommainame:443> section for virtual host SSL support.<br />
See [[#Managing many virtual hosts]] for an example file.}}<br />
<br />
If you want to have more than one host, uncomment the following line in {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
In {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} set your virtual hosts. The default file contains an elaborate example that should help you get started.<br />
<br />
To test the virtual hosts on you local machine, add the virtual names to your {{ic|/etc/hosts}} file:<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
Restart {{ic|httpd.service}} to apply any changes.<br />
<br />
==== Managing many virtual hosts ====<br />
<br />
If you have a huge amount of virtual hosts, you may want to easily disable and enable them. It is recommended to create one configuration file per virtual host and store them all in one folder, eg: {{ic|/etc/httpd/conf/vhosts}}.<br />
<br />
First create the folder:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
Then place the single configuration files in it:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
In the last step, {{ic|Include}} the single configurations in your {{ic|/etc/httpd/conf/httpd.conf}}:<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
<br />
You can enable and disable single virtual hosts by commenting or uncommenting them.<br />
<br />
A very basic vhost file will look like this:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/apache.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/apache.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== Extensions ==<br />
<br />
=== PHP ===<br />
To install [[PHP]], first [[install]] the {{Pkg|php}} and {{Pkg|php-apache}} packages.<br />
<br />
In {{ic|/etc/httpd/conf/httpd.conf}}, comment the line:<br />
#LoadModule mpm_event_module modules/mod_mpm_event.so<br />
and uncomment the line:<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
<br />
{{Note|1=The above is required, because {{ic|libphp7.so}} included with {{pkg|php-apache}} does not work with {{ic|mod_mpm_event}}, but will only work {{ic|mod_mpm_prefork}} instead. ({{bug|39218}})<br />
<br />
Otherwise you will get the following error:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
As an alternative, you can use {{ic|mod_proxy_fcgi}} (see [[#Using php-fpm and mod_proxy_fcgi]] below).<br />
}}<br />
<br />
To enable PHP, add these lines to {{ic|/etc/httpd/conf/httpd.conf}}:<br />
*Place this in the {{ic|LoadModule}} list anywhere after {{ic|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php7_module modules/libphp7.so<br />
*Place this at the end of the {{ic|Include}} list:<br />
Include conf/extra/php7_module.conf<br />
<br />
Restart {{ic|httpd.service}} [[systemd#Using units|using systemd]]<br />
<br />
To test whether PHP was correctly configured: create a file called {{ic|test.php}} in your Apache {{ic|DocumentRoot}} directory (e.g. {{ic|/srv/http/}} or {{ic|~/public_html}}) with the following contents:<br />
<?php phpinfo(); ?><br />
To see if it works go to: http://localhost/test.php or http://localhost/~myname/test.php<br />
<br />
For advanced configuration and extensions, please read [[PHP]].<br />
<br />
==== Using php-fpm and mod_proxy_fcgi ====<br />
<br />
{{Note|Unlike the widespread setup with ProxyPass, the proxy configuration with SetHandler respects other Apache directives like DirectoryIndex. This ensures a better compatibility with software designed for libphp7, mod_fastcgi and mod_fcgid.<br />
If you still want to try ProxyPass, experiment with a line like this: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
[[Install]] the {{pkg|php-fpm}} package.<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fpm.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fpm.conf|<nowiki><br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<Proxy "fcgi://localhost/" enablereuse=on max=10><br />
</Proxy><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
</nowiki>}}<br />
<br />
And include it at the bottom of {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/php-fpm.conf<br />
<br />
{{Note|The pipe between {{ic|sock}} and {{ic|fcgi}} is not allowed to be surrounded by a space! {{ic|localhost}} can be replaced by any string but it should match in {{ic|SetHandler}} and {{ic|Proxy}} directives. More [https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html here]. {{ic|SetHandler}} and {{ic|Proxy}} can be used per vhost configs but the name after {{ic|fcgi://}} should differ for each vhost setup.}}<br />
<br />
You can configure PHP-FPM in {{ic|/etc/php/php-fpm.d/www.conf}}, but the default setup should work fine.<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}} and {{ic|php-fpm.service}}.<br />
<br />
==== Using apache2-mpm-worker and mod_fcgid ====<br />
[[Install]] the {{pkg|mod_fcgid}} and {{Pkg|php-cgi}} packages.<br />
<br />
Create the needed directory and symlink it for the PHP wrapper:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fcgid.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule><br />
</nowiki>}}<br />
<br />
Edit {{ic|/etc/httpd/conf/httpd.conf}}, enabling the actions module:<br />
LoadModule actions_module modules/mod_actions.so<br />
<br />
And add the following lines:<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/httpd-mpm.conf<br />
Include conf/extra/php-fcgid.conf<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}}.<br />
<br />
==== MySQL/MariaDB ====<br />
<br />
Follow the instructions in [[PHP#MySQL/MariaDB]].<br />
<br />
When configuration is complete, [[restart]] {{ic|httpd.service}} to apply all the changes.<br />
<br />
=== HTTP2 ===<br />
<br />
To enable HTTP/2 support, install the {{Pkg|nghttp2}} package.<br />
<br />
Then uncomment the following line in {{ic|httpd.conf}}:<br />
LoadModule http2_module modules/mod_http2.so<br />
<br />
And add the following line:<br />
Protocols h2 http/1.1<br />
<br />
For more information, see the [https://httpd.apache.org/docs/2.4/mod/mod_http2.html mod_http2] documentation.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Apache Status and Logs ===<br />
<br />
See the status of the Apache daemon with [[systemctl]].<br />
<br />
Apache logs can be found in {{ic|/var/log/httpd/}}<br />
<br />
=== Error: PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Comment out the {{ic|unique_id_module}} line in {{ic|httpd.conf}}: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. ===<br />
<br />
If when loading {{ic|php7_module}} the {{ic|httpd.service}} fails, and you get an error like this in the journal:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
you need to replace {{ic|mpm_event_module}} with {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
=== AH00534: httpd: Configuration error: No MPM loaded. ===<br />
<br />
You might encounter this error after a recent upgrade. This is only the result of a recent change in {{ic|httpd.conf}} that you might not have reproduced in your local configuration.<br />
To fix it, uncomment the following line.<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
Also check [[#Apache_is_running_a_threaded_MPM.2C_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.|the above]] if more errors occur afterwards.<br />
<br />
=== Changing the max_execution_time in php.ini has no effect ===<br />
<br />
If you changed the {{ic|max_execution_time}} in {{ic|php.ini}} to a value greater than 30 (seconds), you may still get a {{ic|503 Service Unavailable}} response from Apache after 30 seconds. To solve this, add a {{ic|ProxyTimeout}} directive to your http configuration right before the {{ic|<FilesMatch \.php$>}} block:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
ProxyTimeout 300<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
== See also ==<br />
<br />
* [http://www.apache.org/ Apache Official Website]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Tutorial for creating self-signed certificates]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Apache Wiki Troubleshooting]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server&diff=441790Apache HTTP Server2016-07-17T00:34:35Z<p>Sukbeom: </p>
<hr />
<div>[[Category:Web server]]<br />
[[cs:Apache HTTP Server]]<br />
[[de:LAMP Installation]]<br />
[[el:Apache HTTP Server]]<br />
[[es:Apache HTTP Server]]<br />
[[fr:Lamp]]<br />
[[it:Apache HTTP Server]]<br />
[[ja:LAMP]]<br />
[[ko:Apache HTTP Server]]<br />
[[pl:Apache HTTP Server]]<br />
[[ru:Apache HTTP Server]]<br />
[[sr:Apache HTTP Server]]<br />
[[tr:LAMP]]<br />
[[zh-cn:Apache HTTP Server]]<br />
{{Related articles start}}<br />
{{Related|PHP}}<br />
{{Related|MySQL}}<br />
{{Related|PhpMyAdmin}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
The [[Wikipedia:Apache HTTP Server|Apache HTTP Server]], or Apache for short, is a very popular web server, developed by the Apache Software Foundation.<br />
<br />
Apache is often used together with a scripting language such as PHP and database such as MySQL. This combination is often referred to as a [[Wikipedia:LAMP (software bundle)|LAMP]] stack ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP). This article describes how to set up Apache and how to optionally integrate it with [[PHP]] and [[MySQL]].<br />
<br />
== Installation ==<br />
[[Install]] the {{Pkg|apache}} package.<br />
<br />
== Configuration ==<br />
Apache configuration files are located in {{ic|/etc/httpd/conf}}. The main configuration file is {{ic|/etc/httpd/conf/httpd.conf}}, which includes various other configuration files.<br />
The default configuration file should be fine for a simple setup. By default, it will serve the directory {{ic|/srv/http}} to anyone who visits your website.<br />
<br />
To start Apache, start {{ic|httpd.service}} [[systemd#Using units|using systemd]].<br />
<br />
Apache should now be running. Test by visiting http://localhost/ in a web browser. It should display a simple index page.<br />
<br />
For optional further configuration, see the following sections.<br />
<br />
=== Advanced options ===<br />
These options in {{ic|/etc/httpd/conf/httpd.conf}} might be interesting for you:<br />
<br />
User http<br />
:For security reasons, as soon as Apache is started by the root user (directly or via startup scripts) it switches to this UID. The default user is ''http'', which is created automatically during installation.<br />
<br />
Listen 80<br />
:This is the port Apache will listen to. For Internet-access with router, you have to forward the port.<br />
<br />
:If you want to setup Apache for local development you may want it to be only accessible from your computer. Then change this line to {{ic|Listen 127.0.0.1:80}}.<br />
<br />
ServerAdmin you@example.com<br />
:This is the admin's email address which can be found on e.g. error pages.<br />
<br />
DocumentRoot "/srv/http"<br />
:This is the directory where you should put your web pages.<br />
<br />
:Change it, if you want to, but do not forget to also change {{ic|<Directory "/srv/http">}} to whatever you changed your {{ic|DocumentRoot}} to, or you will likely get a '''403 Error''' (lack of privileges) when you try to access the new document root. Do not forget to change the {{ic|Require all denied}} line to {{ic|Require all granted}}, otherwise you will get a '''403 Error'''. Remember that the DocumentRoot directory and its parent folders must allow execution permission to others (can be set with {{ic|chmod o+x /path/to/DocumentRoot}}), otherwise you will get a '''403 Error'''.<br />
<br />
AllowOverride None<br />
:This directive in {{ic|<Directory>}} sections causes Apache to completely ignore {{ic|.htaccess}} files. Note that this is now the default for Apache 2.4, so you need to explicitly allow overrides if you plan to use {{ic|.htaccess}} files. If you intend to use {{ic|mod_rewrite}} or other settings in {{ic|.htaccess}} files, you can allow which directives declared in that file can override server configuration. For more info refer to the [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache documentation].<br />
<br />
{{Tip|If you have issues with your configuration you can have Apache check the configuration with: {{ic|apachectl configtest}}}}<br />
<br />
More settings can be found in {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
To turn off your server's signature:<br />
ServerSignature Off<br />
<br />
To hide server information like Apache and PHP versions:<br />
ServerTokens Prod<br />
<br />
=== User directories ===<br />
<br />
User directories are available by default through http://localhost/~yourusername/ and show the contents of {{ic|~/public_html}} (this can be changed in {{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}).<br />
<br />
If you do not want user directories to be available on the web, comment out the following line in {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
{{Accuracy|It is not necessary to set {{ic|+x}} for every users, setting it only for the webserver via ACLs suffices (see [[Access Control Lists#Granting execution permissions for private files to a Web Server]]).}}<br />
<br />
You must make sure that your home directory permissions are set properly so that Apache can get there. Your home directory and {{ic|~/public_html}} must be executable for others ("rest of the world"):<br />
<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
$ chmod -R o+r ~/public_html<br />
<br />
Restart {{ic|httpd.service}} to apply any changes. See also [[Umask#Set the mask value]].<br />
<br />
=== TLS/SSL ===<br />
{{Warning|If you plan on implementing SSL/TLS, know that some variations and implementations are [https://weakdh.org/#affected still] [[wikipedia:Transport_Layer_Security#Attacks_against_TLS.2FSSL|vulnerable to attack]]. For details on these current vulnerabilities within SSL/TLS and how to apply appropriate changes to the web server, visit http://disablessl3.com/ and https://weakdh.org/sysadmin.html}}<br />
{{pkg|openssl}} provides TLS/SSL support and is installed by default on Arch installations.<br />
<br />
In {{ic|/etc/httpd/conf/httpd.conf}}, uncomment the following three lines:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
For TLS/SSL, you will need a key and certificate. If you own a public domain, you can use [[Let's Encrypt]] to obtain a certificate for free, otherwise follow [[#Create a key and (self-signed) certificate]].<br />
<br />
After obtaining a key and certificate, make sure the {{ic|SSLCertificateFile}} and {{ic|SSLCertificateKeyFile}} lines in {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}} point to the key and certificate.<br />
<br />
Finally, restart {{ic|httpd.service}} to apply any changes.<br />
<br />
{{Tip|Mozilla has a useful [https://wiki.mozilla.org/Security/Server_Side_TLS SSL/TLS article] which includes [https://wiki.mozilla.org/Security/Server_Side_TLS#Apache Apache specific] configuration guidelines as well as an [https://mozilla.github.io/server-side-tls/ssl-config-generator/ automated tool] to help create a more secure configuration.}}<br />
<br />
==== Create a key and (self-signed) certificate ====<br />
<br />
Create a private key and self-signed certificate. This is adequate for most installations that do not require a [[wikipedia:Certificate signing request|CSR]]:<br />
<br />
# cd /etc/httpd/conf<br />
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 1095<br />
# chmod 400 server.key<br />
<br />
{{Note|The -days switch is optional and RSA keysize can be as low as 2048 (default).}}<br />
<br />
If you need to create a [[wikipedia:Certificate signing request|CSR]], follow these keygen instructions instead of the above:<br />
<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key<br />
# chmod 400 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 1095 -in server.csr -signkey server.key -out server.crt<br />
<br />
{{Note|For more openssl options, read the [https://www.openssl.org/docs/apps/openssl.html man page] or peruse openssl's [https://www.openssl.org/docs/ extensive documentation].}}<br />
<br />
=== Virtual hosts ===<br />
<br />
{{Note|You will need to add a separate <VirtualHost dommainame:443> section for virtual host SSL support.<br />
See [[#Managing many virtual hosts]] for an example file.}}<br />
<br />
If you want to have more than one host, uncomment the following line in {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
In {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} set your virtual hosts. The default file contains an elaborate example that should help you get started.<br />
<br />
To test the virtual hosts on you local machine, add the virtual names to your {{ic|/etc/hosts}} file:<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
Restart {{ic|httpd.service}} to apply any changes.<br />
<br />
==== Managing many virtual hosts ====<br />
<br />
If you have a huge amount of virtual hosts, you may want to easily disable and enable them. It is recommended to create one configuration file per virtual host and store them all in one folder, eg: {{ic|/etc/httpd/conf/vhosts}}.<br />
<br />
First create the folder:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
Then place the single configuration files in it:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
In the last step, {{ic|Include}} the single configurations in your {{ic|/etc/httpd/conf/httpd.conf}}:<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
<br />
You can enable and disable single virtual hosts by commenting or uncommenting them.<br />
<br />
A very basic vhost file will look like this:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/apache.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/apache.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== Extensions ==<br />
<br />
=== PHP ===<br />
To install [[PHP]], first [[install]] the {{Pkg|php}} and {{Pkg|php-apache}} packages.<br />
<br />
In {{ic|/etc/httpd/conf/httpd.conf}}, comment the line:<br />
#LoadModule mpm_event_module modules/mod_mpm_event.so<br />
and uncomment the line:<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
<br />
{{Note|1=The above is required, because {{ic|libphp7.so}} included with {{pkg|php-apache}} does not work with {{ic|mod_mpm_event}}, but will only work {{ic|mod_mpm_prefork}} instead. ({{bug|39218}})<br />
<br />
Otherwise you will get the following error:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
As an alternative, you can use {{ic|mod_proxy_fcgi}} (see [[#Using php-fpm and mod_proxy_fcgi]] below).<br />
}}<br />
<br />
To enable PHP, add these lines to {{ic|/etc/httpd/conf/httpd.conf}}:<br />
*Place this in the {{ic|LoadModule}} list anywhere after {{ic|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php7_module modules/libphp7.so<br />
*Place this at the end of the {{ic|Include}} list:<br />
Include conf/extra/php7_module.conf<br />
<br />
Restart {{ic|httpd.service}} [[systemd#Using units|using systemd]]<br />
<br />
To test whether PHP was correctly configured: create a file called {{ic|test.php}} in your Apache {{ic|DocumentRoot}} directory (e.g. {{ic|/srv/http/}} or {{ic|~/public_html}}) with the following contents:<br />
<?php phpinfo(); ?><br />
To see if it works go to: http://localhost/test.php or http://localhost/~myname/test.php<br />
<br />
For advanced configuration and extensions, please read [[PHP]].<br />
<br />
==== Using php-fpm and mod_proxy_fcgi ====<br />
<br />
{{Note|Unlike the widespread setup with ProxyPass, the proxy configuration with SetHandler respects other Apache directives like DirectoryIndex. This ensures a better compatibility with software designed for libphp7, mod_fastcgi and mod_fcgid.<br />
If you still want to try ProxyPass, experiment with a line like this: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
[[Install]] the {{pkg|php-fpm}} package.<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fpm.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fpm.conf|<nowiki><br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<Proxy "fcgi://localhost/" enablereuse=on max=10><br />
</Proxy><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
</nowiki>}}<br />
<br />
And include it at the bottom of {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/php-fpm.conf<br />
<br />
{{Note|The pipe between {{ic|sock}} and {{ic|fcgi}} is not allowed to be surrounded by a space! {{ic|localhost}} can be replaced by any string but it should match in {{ic|SetHandler}} and {{ic|Proxy}} directives. More [https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html here]. {{ic|SetHandler}} and {{ic|Proxy}} can be used per vhost configs but the name after {{ic|fcgi://}} should differ for each vhost setup.}}<br />
<br />
You can configure PHP-FPM in {{ic|/etc/php/php-fpm.d/www.conf}}, but the default setup should work fine.<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}} and {{ic|php-fpm.service}}.<br />
<br />
==== Using apache2-mpm-worker and mod_fcgid ====<br />
[[Install]] the {{pkg|mod_fcgid}} and {{Pkg|php-cgi}} packages.<br />
<br />
Create the needed directory and symlink it for the PHP wrapper:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fcgid.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule><br />
</nowiki>}}<br />
<br />
Edit {{ic|/etc/httpd/conf/httpd.conf}}, enabling the actions module:<br />
LoadModule actions_module modules/mod_actions.so<br />
<br />
And add the following lines:<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/httpd-mpm.conf<br />
Include conf/extra/php-fcgid.conf<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}}.<br />
<br />
==== MySQL/MariaDB ====<br />
<br />
Follow the instructions in [[PHP#MySQL/MariaDB]].<br />
<br />
When configuration is complete, [[restart]] {{ic|httpd.service}} to apply all the changes.<br />
<br />
=== HTTP2 ===<br />
<br />
To enable HTTP/2 support, install the {{Pkg|nghttp2}} package.<br />
<br />
Then uncomment the following line in {{ic|httpd.conf}}:<br />
LoadModule http2_module modules/mod_http2.so<br />
<br />
And add the following line:<br />
Protocols h2 http/1.1<br />
<br />
For more information, see the [https://httpd.apache.org/docs/2.4/mod/mod_http2.html mod_http2] documentation.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Apache Status and Logs ===<br />
<br />
See the status of the Apache daemon with [[systemctl]].<br />
<br />
Apache logs can be found in {{ic|/var/log/httpd/}}<br />
<br />
=== Error: PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Comment out the {{ic|unique_id_module}} line in {{ic|httpd.conf}}: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. ===<br />
<br />
If when loading {{ic|php7_module}} the {{ic|httpd.service}} fails, and you get an error like this in the journal:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
you need to replace {{ic|mpm_event_module}} with {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
=== AH00534: httpd: Configuration error: No MPM loaded. ===<br />
<br />
You might encounter this error after a recent upgrade. This is only the result of a recent change in {{ic|httpd.conf}} that you might not have reproduced in your local configuration.<br />
To fix it, uncomment the following line.<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
Also check [[#Apache_is_running_a_threaded_MPM.2C_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.|the above]] if more errors occur afterwards.<br />
<br />
=== Changing the max_execution_time in php.ini has no effect ===<br />
<br />
If you changed the {{ic|max_execution_time}} in {{ic|php.ini}} to a value greater than 30 (seconds), you may still get a {{ic|503 Service Unavailable}} response from Apache after 30 seconds. To solve this, add a {{ic|ProxyTimeout}} directive to your http configuration right before the {{ic|<FilesMatch \.php$>}} block:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
ProxyTimeout 300<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
== See also ==<br />
<br />
* [http://www.apache.org/ Apache Official Website]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Tutorial for creating self-signed certificates]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Apache Wiki Troubleshooting]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=441789Apache HTTP Server (한국어)2016-07-17T00:33:29Z<p>Sukbeom: Created page with "Category:Web server cs:Apache HTTP Server de:LAMP Installation el:Apache HTTP Server es:Apache HTTP Server fr:Lamp it:Apache HTTP Server [[ja:LAMP]..."</p>
<hr />
<div>[[Category:Web server]]<br />
[[cs:Apache HTTP Server]]<br />
[[de:LAMP Installation]]<br />
[[el:Apache HTTP Server]]<br />
[[es:Apache HTTP Server]]<br />
[[fr:Lamp]]<br />
[[it:Apache HTTP Server]]<br />
[[ja:LAMP]]<br />
[[pl:Apache HTTP Server]]<br />
[[ru:Apache HTTP Server]]<br />
[[sr:Apache HTTP Server]]<br />
[[tr:LAMP]]<br />
[[zh-cn:Apache HTTP Server]]<br />
{{Related articles start}}<br />
{{Related|PHP}}<br />
{{Related|MySQL}}<br />
{{Related|PhpMyAdmin}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
The [[Wikipedia:Apache HTTP Server|Apache HTTP Server]], or Apache for short, is a very popular web server, developed by the Apache Software Foundation.<br />
<br />
Apache is often used together with a scripting language such as PHP and database such as MySQL. This combination is often referred to as a [[Wikipedia:LAMP (software bundle)|LAMP]] stack ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP). This article describes how to set up Apache and how to optionally integrate it with [[PHP]] and [[MySQL]].<br />
<br />
== Installation ==<br />
[[Install]] the {{Pkg|apache}} package.<br />
<br />
== Configuration ==<br />
Apache configuration files are located in {{ic|/etc/httpd/conf}}. The main configuration file is {{ic|/etc/httpd/conf/httpd.conf}}, which includes various other configuration files.<br />
The default configuration file should be fine for a simple setup. By default, it will serve the directory {{ic|/srv/http}} to anyone who visits your website.<br />
<br />
To start Apache, start {{ic|httpd.service}} [[systemd#Using units|using systemd]].<br />
<br />
Apache should now be running. Test by visiting http://localhost/ in a web browser. It should display a simple index page.<br />
<br />
For optional further configuration, see the following sections.<br />
<br />
=== Advanced options ===<br />
These options in {{ic|/etc/httpd/conf/httpd.conf}} might be interesting for you:<br />
<br />
User http<br />
:For security reasons, as soon as Apache is started by the root user (directly or via startup scripts) it switches to this UID. The default user is ''http'', which is created automatically during installation.<br />
<br />
Listen 80<br />
:This is the port Apache will listen to. For Internet-access with router, you have to forward the port.<br />
<br />
:If you want to setup Apache for local development you may want it to be only accessible from your computer. Then change this line to {{ic|Listen 127.0.0.1:80}}.<br />
<br />
ServerAdmin you@example.com<br />
:This is the admin's email address which can be found on e.g. error pages.<br />
<br />
DocumentRoot "/srv/http"<br />
:This is the directory where you should put your web pages.<br />
<br />
:Change it, if you want to, but do not forget to also change {{ic|<Directory "/srv/http">}} to whatever you changed your {{ic|DocumentRoot}} to, or you will likely get a '''403 Error''' (lack of privileges) when you try to access the new document root. Do not forget to change the {{ic|Require all denied}} line to {{ic|Require all granted}}, otherwise you will get a '''403 Error'''. Remember that the DocumentRoot directory and its parent folders must allow execution permission to others (can be set with {{ic|chmod o+x /path/to/DocumentRoot}}), otherwise you will get a '''403 Error'''.<br />
<br />
AllowOverride None<br />
:This directive in {{ic|<Directory>}} sections causes Apache to completely ignore {{ic|.htaccess}} files. Note that this is now the default for Apache 2.4, so you need to explicitly allow overrides if you plan to use {{ic|.htaccess}} files. If you intend to use {{ic|mod_rewrite}} or other settings in {{ic|.htaccess}} files, you can allow which directives declared in that file can override server configuration. For more info refer to the [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache documentation].<br />
<br />
{{Tip|If you have issues with your configuration you can have Apache check the configuration with: {{ic|apachectl configtest}}}}<br />
<br />
More settings can be found in {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
To turn off your server's signature:<br />
ServerSignature Off<br />
<br />
To hide server information like Apache and PHP versions:<br />
ServerTokens Prod<br />
<br />
=== User directories ===<br />
<br />
User directories are available by default through http://localhost/~yourusername/ and show the contents of {{ic|~/public_html}} (this can be changed in {{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}).<br />
<br />
If you do not want user directories to be available on the web, comment out the following line in {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
{{Accuracy|It is not necessary to set {{ic|+x}} for every users, setting it only for the webserver via ACLs suffices (see [[Access Control Lists#Granting execution permissions for private files to a Web Server]]).}}<br />
<br />
You must make sure that your home directory permissions are set properly so that Apache can get there. Your home directory and {{ic|~/public_html}} must be executable for others ("rest of the world"):<br />
<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
$ chmod -R o+r ~/public_html<br />
<br />
Restart {{ic|httpd.service}} to apply any changes. See also [[Umask#Set the mask value]].<br />
<br />
=== TLS/SSL ===<br />
{{Warning|If you plan on implementing SSL/TLS, know that some variations and implementations are [https://weakdh.org/#affected still] [[wikipedia:Transport_Layer_Security#Attacks_against_TLS.2FSSL|vulnerable to attack]]. For details on these current vulnerabilities within SSL/TLS and how to apply appropriate changes to the web server, visit http://disablessl3.com/ and https://weakdh.org/sysadmin.html}}<br />
{{pkg|openssl}} provides TLS/SSL support and is installed by default on Arch installations.<br />
<br />
In {{ic|/etc/httpd/conf/httpd.conf}}, uncomment the following three lines:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
For TLS/SSL, you will need a key and certificate. If you own a public domain, you can use [[Let's Encrypt]] to obtain a certificate for free, otherwise follow [[#Create a key and (self-signed) certificate]].<br />
<br />
After obtaining a key and certificate, make sure the {{ic|SSLCertificateFile}} and {{ic|SSLCertificateKeyFile}} lines in {{ic|/etc/httpd/conf/extra/httpd-ssl.conf}} point to the key and certificate.<br />
<br />
Finally, restart {{ic|httpd.service}} to apply any changes.<br />
<br />
{{Tip|Mozilla has a useful [https://wiki.mozilla.org/Security/Server_Side_TLS SSL/TLS article] which includes [https://wiki.mozilla.org/Security/Server_Side_TLS#Apache Apache specific] configuration guidelines as well as an [https://mozilla.github.io/server-side-tls/ssl-config-generator/ automated tool] to help create a more secure configuration.}}<br />
<br />
==== Create a key and (self-signed) certificate ====<br />
<br />
Create a private key and self-signed certificate. This is adequate for most installations that do not require a [[wikipedia:Certificate signing request|CSR]]:<br />
<br />
# cd /etc/httpd/conf<br />
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 1095<br />
# chmod 400 server.key<br />
<br />
{{Note|The -days switch is optional and RSA keysize can be as low as 2048 (default).}}<br />
<br />
If you need to create a [[wikipedia:Certificate signing request|CSR]], follow these keygen instructions instead of the above:<br />
<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key<br />
# chmod 400 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 1095 -in server.csr -signkey server.key -out server.crt<br />
<br />
{{Note|For more openssl options, read the [https://www.openssl.org/docs/apps/openssl.html man page] or peruse openssl's [https://www.openssl.org/docs/ extensive documentation].}}<br />
<br />
=== Virtual hosts ===<br />
<br />
{{Note|You will need to add a separate <VirtualHost dommainame:443> section for virtual host SSL support.<br />
See [[#Managing many virtual hosts]] for an example file.}}<br />
<br />
If you want to have more than one host, uncomment the following line in {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
In {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} set your virtual hosts. The default file contains an elaborate example that should help you get started.<br />
<br />
To test the virtual hosts on you local machine, add the virtual names to your {{ic|/etc/hosts}} file:<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
Restart {{ic|httpd.service}} to apply any changes.<br />
<br />
==== Managing many virtual hosts ====<br />
<br />
If you have a huge amount of virtual hosts, you may want to easily disable and enable them. It is recommended to create one configuration file per virtual host and store them all in one folder, eg: {{ic|/etc/httpd/conf/vhosts}}.<br />
<br />
First create the folder:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
Then place the single configuration files in it:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
In the last step, {{ic|Include}} the single configurations in your {{ic|/etc/httpd/conf/httpd.conf}}:<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
<br />
You can enable and disable single virtual hosts by commenting or uncommenting them.<br />
<br />
A very basic vhost file will look like this:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/apache.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/apache.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== Extensions ==<br />
<br />
=== PHP ===<br />
To install [[PHP]], first [[install]] the {{Pkg|php}} and {{Pkg|php-apache}} packages.<br />
<br />
In {{ic|/etc/httpd/conf/httpd.conf}}, comment the line:<br />
#LoadModule mpm_event_module modules/mod_mpm_event.so<br />
and uncomment the line:<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
<br />
{{Note|1=The above is required, because {{ic|libphp7.so}} included with {{pkg|php-apache}} does not work with {{ic|mod_mpm_event}}, but will only work {{ic|mod_mpm_prefork}} instead. ({{bug|39218}})<br />
<br />
Otherwise you will get the following error:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
As an alternative, you can use {{ic|mod_proxy_fcgi}} (see [[#Using php-fpm and mod_proxy_fcgi]] below).<br />
}}<br />
<br />
To enable PHP, add these lines to {{ic|/etc/httpd/conf/httpd.conf}}:<br />
*Place this in the {{ic|LoadModule}} list anywhere after {{ic|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php7_module modules/libphp7.so<br />
*Place this at the end of the {{ic|Include}} list:<br />
Include conf/extra/php7_module.conf<br />
<br />
Restart {{ic|httpd.service}} [[systemd#Using units|using systemd]]<br />
<br />
To test whether PHP was correctly configured: create a file called {{ic|test.php}} in your Apache {{ic|DocumentRoot}} directory (e.g. {{ic|/srv/http/}} or {{ic|~/public_html}}) with the following contents:<br />
<?php phpinfo(); ?><br />
To see if it works go to: http://localhost/test.php or http://localhost/~myname/test.php<br />
<br />
For advanced configuration and extensions, please read [[PHP]].<br />
<br />
==== Using php-fpm and mod_proxy_fcgi ====<br />
<br />
{{Note|Unlike the widespread setup with ProxyPass, the proxy configuration with SetHandler respects other Apache directives like DirectoryIndex. This ensures a better compatibility with software designed for libphp7, mod_fastcgi and mod_fcgid.<br />
If you still want to try ProxyPass, experiment with a line like this: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
[[Install]] the {{pkg|php-fpm}} package.<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fpm.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fpm.conf|<nowiki><br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<Proxy "fcgi://localhost/" enablereuse=on max=10><br />
</Proxy><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
</nowiki>}}<br />
<br />
And include it at the bottom of {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/php-fpm.conf<br />
<br />
{{Note|The pipe between {{ic|sock}} and {{ic|fcgi}} is not allowed to be surrounded by a space! {{ic|localhost}} can be replaced by any string but it should match in {{ic|SetHandler}} and {{ic|Proxy}} directives. More [https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html here]. {{ic|SetHandler}} and {{ic|Proxy}} can be used per vhost configs but the name after {{ic|fcgi://}} should differ for each vhost setup.}}<br />
<br />
You can configure PHP-FPM in {{ic|/etc/php/php-fpm.d/www.conf}}, but the default setup should work fine.<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}} and {{ic|php-fpm.service}}.<br />
<br />
==== Using apache2-mpm-worker and mod_fcgid ====<br />
[[Install]] the {{pkg|mod_fcgid}} and {{Pkg|php-cgi}} packages.<br />
<br />
Create the needed directory and symlink it for the PHP wrapper:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
Create {{ic|/etc/httpd/conf/extra/php-fcgid.conf}} with the following content:<br />
{{hc|/etc/httpd/conf/extra/php-fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule><br />
</nowiki>}}<br />
<br />
Edit {{ic|/etc/httpd/conf/httpd.conf}}, enabling the actions module:<br />
LoadModule actions_module modules/mod_actions.so<br />
<br />
And add the following lines:<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/httpd-mpm.conf<br />
Include conf/extra/php-fcgid.conf<br />
<br />
{{Note|<br />
If you have added the following lines to {{ic|httpd.conf}}, remove them, as they are no longer needed:<br />
LoadModule php7_module modules/libphp7.so<br />
Include conf/extra/php7_module.conf<br />
}}<br />
<br />
[[Restart]] {{ic|httpd.service}}.<br />
<br />
==== MySQL/MariaDB ====<br />
<br />
Follow the instructions in [[PHP#MySQL/MariaDB]].<br />
<br />
When configuration is complete, [[restart]] {{ic|httpd.service}} to apply all the changes.<br />
<br />
=== HTTP2 ===<br />
<br />
To enable HTTP/2 support, install the {{Pkg|nghttp2}} package.<br />
<br />
Then uncomment the following line in {{ic|httpd.conf}}:<br />
LoadModule http2_module modules/mod_http2.so<br />
<br />
And add the following line:<br />
Protocols h2 http/1.1<br />
<br />
For more information, see the [https://httpd.apache.org/docs/2.4/mod/mod_http2.html mod_http2] documentation.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Apache Status and Logs ===<br />
<br />
See the status of the Apache daemon with [[systemctl]].<br />
<br />
Apache logs can be found in {{ic|/var/log/httpd/}}<br />
<br />
=== Error: PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Comment out the {{ic|unique_id_module}} line in {{ic|httpd.conf}}: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. ===<br />
<br />
If when loading {{ic|php7_module}} the {{ic|httpd.service}} fails, and you get an error like this in the journal:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
you need to replace {{ic|mpm_event_module}} with {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
=== AH00534: httpd: Configuration error: No MPM loaded. ===<br />
<br />
You might encounter this error after a recent upgrade. This is only the result of a recent change in {{ic|httpd.conf}} that you might not have reproduced in your local configuration.<br />
To fix it, uncomment the following line.<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
Also check [[#Apache_is_running_a_threaded_MPM.2C_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.|the above]] if more errors occur afterwards.<br />
<br />
=== Changing the max_execution_time in php.ini has no effect ===<br />
<br />
If you changed the {{ic|max_execution_time}} in {{ic|php.ini}} to a value greater than 30 (seconds), you may still get a {{ic|503 Service Unavailable}} response from Apache after 30 seconds. To solve this, add a {{ic|ProxyTimeout}} directive to your http configuration right before the {{ic|<FilesMatch \.php$>}} block:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
ProxyTimeout 300<br />
}}<br />
<br />
and restart {{ic|httpd.service}}.<br />
<br />
== See also ==<br />
<br />
* [http://www.apache.org/ Apache Official Website]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Tutorial for creating self-signed certificates]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Apache Wiki Troubleshooting]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Xfce_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=441609Xfce (한국어)2016-07-16T10:07:38Z<p>Sukbeom: </p>
<hr />
<div>[[Category:Desktop environments (한국어)]]<br />
[[cs:Xfce]]<br />
[[de:Xfce]]<br />
[[en:Xfce]]<br />
[[es:Xfce]]<br />
[[fr:Xfce]]<br />
[[it:Xfce]]<br />
[[ja:Xfce]]<br />
[[pl:Xfce]]<br />
[[ru:Xfce]]<br />
[[tr:Xfce Masaüstü Ortamı]]<br />
[[uk:Xfce]]<br />
[[zh-cn:Xfce]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Window manager}}<br />
{{Related|Xfwm}}<br />
{{Related|Thunar}}<br />
{{Related|LXDE}}<br />
{{Related|GNOME}}<br />
{{Related articles end}}<br />
<br />
[http://www.xfce.org Xfce]는 현재 GTK+ 2를 기반으로 하는 모듈식의 저용량 [[Desktop environment|데스크탑 환경]]이다. 완벽한 사용자 경험을 제공하기 위해 Xfce는 창 관리자, 파일 관리자, 데스크탑과 패널을 포함한다.<br />
<br />
== 설치하기 ==<br />
<br />
{{Grp|xfce4}} 그룹을 [[Install|설치]]한다. 추가 플러그인과 {{Pkg|mousepad}} 편집기와 같은 유용한 유틸리티를 설치하고자 하는 경우 {{Grp|xfce4-goodies}} 그룹으로 설치할 수 있다. Xfce는 [[Xfwm]]을 기본 창 관리자로 사용한다.<br />
<br />
== Xfce 시작하기 ==<br />
<br />
[[display manager]]의 선택 메뉴에서 ''Xfce Session'' 을 선택하거나 [[Xinitrc]]에 {{ic|exec startxfce4}}를 추가한다.<br />
<br />
{{주의|{{ic|xfce4-session}}을 직접 실행하지 않는다. {{ic|startxfce4}}의 호출이 올바른 실행법이며 해당 명령어에서 단계적으로 {{ic|xfce4-session}}을 적절한 시기에 호출한다.}}<br />
<br />
== 설정하기 ==<br />
<br />
Xfce는 설정 옵션들을 [http://docs.xfce.org/xfce/xfconf/start Xfconf]에 저장한다. 해당 옵션들을 설정하는 방법에는 다음과 같은 몇 가지 방법들이 있다.<br />
<br />
* 메인 메뉴에서 설정([http://docs.xfce.org/xfce/xfce4-settings/start Settings])을 클릭하고 설정하고자 하는 카테고리를 클릭한다. 카테고리들은 대부분 {{ic|/usr/bin/xfce4-*}}와 {{ic|/usr/bin/xfdesktop-settings}}에 위치한 프로그램들이다.<br />
* {{ic|xfce4-settings-editor}}을 통해 수정가능한 설정을 확인할 수 있다. 여기서 수정된 사항들은 곧바로 적용된다. {{ic|xfconf-query}}를 사용하여 커맨드라인에서 설정을 변경할 수도 있다. 자세한 사항은 [http://docs.xfce.org/xfce/xfconf/xfconf-query the documentation]을 참고하기 바란다.<br />
* 설정은 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/}} 에 XML 파일로 저장되며 해당 파일은 직접적으로 수정될 수 있다. 하지만 변경된 사항은 ''곧바로 적용되지 않는다''.<br />
<br />
=== 메뉴 ===<br />
<br />
==== Whisker 메뉴 ====<br />
<br />
{{Pkg|xfce4-whiskermenu-plugin}} is an alternate application launcher. It shows a list of favorites, browses through all installed applications through category buttons, and supports fuzzy searching.<br />
{{Pkg|xfce4-whiskermenu-plugin}} 는 xfce의 또다른 어플리케이션 런처이다. 즐겨찾기 목록을 보여주고, 카테고리 버튼을 통해 설치된 프로그램을 탐색할 수 있으며 퍼지 검색을 지원한다.<br />
<br />
==== 메뉴 편집 ====<br />
<br />
메뉴를 편집하기 위해서 다음과 같은 그래픽 인터페이스 기반의 툴들을 사용할 수 있다:<br />
<br />
* {{App|XAME|Xfce 메뉴 편집용으로 디자인 된 Gambas 기반의 GUI 툴. 오직 Xfce에서만 사용가능하며 다른 Desktop Environment에서는 작동하지 않는다. |http://www.redsquirrel87.com/XAME.html|{{AUR|xame}}}}<br />
* {{App|MenuLibre|깔끔하고 사용하기 쉬운 인터페이스로 최신 기능을 제공하는 고급 메뉴 편집기|https://launchpad.net/menulibre|{{AUR|menulibre}}}}.<br />
* {{App|Alacarte|GNOME용 메뉴 편집기|http://www.gnome.org/|{{Pkg|alacarte}}}}<br />
<br />
다른 방법으로, {{ic|~/.config/menus/xfce-applications.menu}} 파일을 직접 만들어 메뉴를 관리할 수 있다. 다음의 예제를 참고한다.<br />
<br />
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"<br />
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"><br />
<br />
<Menu><br />
<Name>Xfce</Name><br />
<MergeFile type="parent">/etc/xdg/menus/xfce-applications.menu</MergeFile><br />
<br />
<Exclude><br />
<Filename>xfce4-run.desktop</Filename><br />
<Filename>exo-terminal-emulator.desktop</Filename><br />
<Filename>exo-file-manager.desktop</Filename><br />
<Filename>exo-mail-reader.desktop</Filename><br />
<Filename>exo-web-browser.desktop</Filename><br />
<Filename>xfce4-about.desktop</Filename><br />
<Filename>xfhelp4.desktop</Filename><br />
</Exclude><br />
<br />
<Layout><br />
<Merge type="all"/><br />
<Separator/><br />
<Menuname>Settings</Menuname><br />
<Separator/><br />
<Filename>xfce4-session-logout.desktop</Filename><br />
</Layout><br />
</Menu><br />
<br />
{{ic|<MergeFile>}} 태그는 기본 Xfce 메뉴를 포함한다.<br />
<br />
{{ic|<Exclude>}} 태그는 메뉴로부터 태그 안의 어플리케이션을 제외시킨다. 예제에서는 Xfce의 기본 바로가기만을 제외시켰지만 {{ic|firefox.desktop}} 혹은 다른 어플리케이션도 제외시킬 수 있다.<br />
<br />
{{ic|<Layout>}} 태그는 메뉴의 레이아웃을 정의한다. 어플리케이션들은 폴더 내 혹은 사용자가 원하는 곳에 배치될 수 있다. 자세한 정보는 [http://wiki.xfce.org/howto/customize-menu Xfce wiki]를 참고한다.<br />
<br />
추가적으로 {{ic|.desktop}} 파일들을 수정하여 Xfce 메뉴를 변경할 수도 있다. 메뉴 엔트리를 숨기기 위해서는 [[Desktop entries#Hide desktop entries]]를 참고한다. {{ic|1=Categories=}} desktop entry를 수정하여 어플리케이션의 카테고리도 변경이 가능하다. 관련 내용은 [[Desktop entries#File example]]을 참고한다.<br />
<br />
=== 바탕화면 ===<br />
<br />
==== 투명한 아이콘 제목 배경색 ====<br />
<br />
바탕화면에 있는 아이콘 이름 부분의 기본 하얀색 배경을 좀 더 배경과 어울리게 바꾸기 위해서, {{ic|~/.gtkrc-2.0}} 파일을 생성하거나 편집한다:<br />
<br />
{{bc|<nowiki><br />
style "xfdesktop-icon-view" {<br />
XfdesktopIconView::label-alpha = 10<br />
base[NORMAL] = "#000000"<br />
base[SELECTED] = "#71B9FF"<br />
base[ACTIVE] = "#71B9FF"<br />
fg[NORMAL] = "#fcfcfc"<br />
fg[SELECTED] = "#ffffff"<br />
fg[ACTIVE] = "#ffffff"<br />
}<br />
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"<br />
</nowiki>}}<br />
<br />
==== 오른쪽 마우스 클릭 메뉴에서 Thunar 옵션 제거 ====<br />
<br />
다음 명령어를 실행한다.<br />
<br />
$ xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0<br />
<br />
==== 프로그램 강제 종료 단축키 ====<br />
<br />
Xfce에서는 프로그램이 멈추었을 때 강제 종료하기 위한 기본 단축키가 없다. <br />
하지만 {{Pkg|xorg-xkill}} 패키지의 {{ic|xkill}} 명령어를 사용하여 열려있는 창을 강제로 닫을 수 있다. 현재 활성화 상태의 창이라면(현재 창이 열려 있고 포커스를 가지고 있는 경우), {{Pkg|xdotool}}를 사용하여 활성화 상태의 창을 강제종료할 수 있다.<br />
<br />
$ xdotool getwindowfocus windowkill<br />
<br />
또 다른 방법으로, 다음 명령어을 사용할 수 있다.<br />
<br />
$ xkill -id "$(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"<br />
<br />
단축키를 추가하기 위해서는 ''Settings > Keyboard'' 혹은 {{pkg|xbindkeys}} 어플리케이션을 사용한다.<br />
<br />
=== 세션 ===<br />
<br />
==== 시작 프로그램 ====<br />
<br />
사용자정의 프로그램을 Xfce 시작시에 실행되도록 하기 위해서는 ''Applications Menu > Settings > Settings Manager''의 ''Session and Startup > Application Autostart'' 탭을 확인한다.<br />
해당 탭을 통해 시작 시에 실행되는 프로그램 리스트를 확인할 수 있다. 시작프로그램을 추가하기 위해서는 ''Add'' 버튼을 클릭하고 등록하고자 하는 실행파일의 경로를 정의한다.<br />
<br />
또 다른 방법으로, [[xinitrc]] ([[display manager]]가 사용되고 있는 경우에는 [[xprofile]])에 명령어를 추가하여 시작 프로그램을 등록할 수 있다.<br />
<br />
===== 시작 프로그램 지연 설정 =====<br />
<br />
가끔, 시작프로그램의 시작을 늦추는 것이 유용할 때가 있다. 이러한 경우, ''Application Autostart'' 에서 {{ic|sleep 3 && command}}와 같이 등록한 것은 동작하지 않기 때문에 다음 명령어를 대신 사용한다.<br />
<br />
sh -c "sleep 3 && command"<br />
<br />
==== 화면 잠금 ====<br />
<br />
''xflock4''ᅟ을 통해 Xfce4 세션을 잠그기 위해서는 {{Pkg|xscreensaver}}, {{Pkg|gnome-screensaver}}, {{Pkg|slock}}, {{Pkg|xlockmore}} 중 하나는 설치되어 있어야 한다.<br />
또는, 다음 명령어를 통해 잠금 명령어를 설정할 수도 있다.<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l" --create -t string''<br />
<br />
만약 명령어를 업데이트하고 싶다면 다음과 같이 명령어를 새로 업데이트할 수 있다.<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l"<br />
<br />
화면 잠금 관련 프로그램은 [[List of applications/Security#Screen lockers]]에서 확인할 수 있다.<br />
<br />
{{Tip|{{Pkg|light-locker}} 세션 잠금은 {{Pkg|xfce4-power-manager}}와 통합된다. 만약 light-locker가 설치되어 있다면, 전원관리설정(power manager settings)에 추가된 ''Security'' 탭과 ''Security'' 탭에 ''Lock screen when system is going for sleep'' 설정이 있는 것을 확인할 수 있다.}}<br />
<br />
{{Note|1=The ''xflock4'' 스크립트는 포스팅[https://bbs.archlinux.org/viewtopic.php?id=189484]에서 언급된 것처럼 직접적으로 수정될 수 있다. 다만, 패키지 업그레이드로 수정된 사항이 덮어쓰기되는 것을 방지하기 위해서 xflock4를 {{ic|/usr/local/bin}}에 복사하고 해당 경로가 {{ic|/usr/bin}}보다 우선적으로 실행될 수 있도록 설정해야 한다. (환경변수 PATH에서 /usr/local/bin:/usr/bin 과 같은 순서로 될 수 있도록 한다.)}}<br />
<br />
==== 사용자 전환 버튼 ====<br />
<br />
{{Note|GDM 없이 사용자 전환 버튼을 사용하기 위해서는 다음의 해결 방법이 필요하다:<br />
* LXDM - [[LXDM#Simultaneous users and switching users]].<br />
* LightDM - [[LightDM#User switching under Xfce4]].}}<br />
<br />
Xfce4는 [[LightDM]]과 [[GDM]]과 같이 사용자 전환 기능을 가지고 있는 [[Display manager]]가 사용되고 있는 경우에 사용자 전환을 지원한다. 더 자세한 정보는 Display manager 관련 위키페이지를 참조하도록 한다. display manager가 설치되어 있고 올바르게 설정이 되어있다면 Xfce 패널의 사용자 전환 버튼을 통해 사용자 전환이 가능하다.<br />
<br />
==== 저장된 세션 비활성화하기 ====<br />
<br />
유저마다 저장된 세션은 다음 명령어를 실행하여 비활성화될 수 있다.<br />
$ xfconf-query -t bool -c xfce4-session -p /general/SaveOnExit -s false<br />
명령어 실행 이후, ''Applications'' -> ''Settings'' -> ''Session and Startup'' -> ''Sessions'' 안의 ''Clear saved sessions'' 버튼을 클릭한다.<br />
<br />
{{Tip|만약 위의 명령어가 설정을 영구적으로 변경하지 않는다면 다음 명령어를 대신 사용한다: {{ic|xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false}}}}<br />
<br />
또 다른 방법으로, Xfce [https://wiki.xfce.org/howto/kiosk_mode kiosk mode]가 사용될 수 있다. 세션을 비활성화하기 위해, {{ic|/etc/xdg/xfce4/kiosk/kioskrc}} 을 만들거나 수정하고 다음을 추가한다.<br />
<br />
[xfce4-session]<br />
SaveSession=NONE<br />
<br />
만일 kiosk 모드가 작동하지 않는다면 현재 사용자가 세션관련 디렉토리에 대해 read 권한만 갖고 있기 때문이다. <br />
<br />
$ rm ~/.cache/sessions/* && chmod 500 ~/.cache/sessions<br />
<br />
위의 명령어가 Xfce가 모든 관련 설정에 상관없이 세션이 저장되는 것을 방지할 것이다.<br />
<br />
==== 기본 창 관리자 ====<br />
<br />
{{Note|변경 사항을 적용하기 위해서는 저장된 세션을 지우고 처음 로그아웃시에 세션 저장 기능을 반드시 비활성화해야 한다. 창 관리자가 실행되면 세션 저장기능은 다시 활성화된다.}}<br />
<br />
기본 창관리자를 명시하는 파일은 다음 위치에서 찾을 수 있다.<br />
*{{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - 각 사용자 영역<br />
*{{ic|/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - 시스템 전역<br />
<br />
기본 창 관리자는 ''xfconf-query''를 사용하여 간단하게 설정될 수 있다.<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa '''wm_name'''<br />
<br />
만약 커맨드라인 옵션을 사용하여 창 관리자를 실행하고 싶을 경우, 다음 명령어들을 참고한다:<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -t string -s '''wm_name''' -s '''--wm-option'''<br />
더 많은 커맨드라인 옵션이 필요하다면, 간단하게 {{ic|-t string}}와 {{ic|-s '''--wm-option'''}} 인자들을 명령어에 추가한다.<br />
<br />
시스템 전역적으로 기본 창 관리자를 변경하고 싶다면 위에서 명시된 파일을 직접 수정하여 ''xfwm4''를 선호하는 창 관리자로 바꾸고 필요시에는 {{ic|1=<value type="string" value="'''--wm-option'''"/>}} 라인을 extra command line 옵션으로 추가한다.<br />
<br />
또한 {{ic|'''wm_name''' --replace}} 를 자동시작되도록 하거나 {{ic|'''wm_name''' --replace &}}가 터미널에서 시작되도록 하고 해당 세션이 저장되도록 하여 창 관리자를 변경할 수 있다. 하지만 이 방법은 실제로 기본 창관리자를 변경하지 않는다는 점에 주의하자. 만약 자동시작 기능을 사용한다면 저장된 세션 때문에 해당 창 관리자가 두 번 중복되어 실행될 수 있으므로 저장된 세션을 비활성화한다.<br />
<br />
=== 테마 ===<br />
<br />
XFCE 테마들은 [http://www.xfce-look.org xfce-look.org]에서 구할 수 있다. ''Xfwm'' 테마들은 {{ic|/usr/share/themes/xfce4}}에 저장되며 ''Settings > Window Manager''의 설정 탭을 통하여 설정할 수 있다. [[GTK+]] 테마는 ''Settings > Appearance''에서 설정할 수 있다.<br />
<br />
모든 어플리케이션에서 동일한 모양새를 얻고 싶다면, [[Uniform look for Qt and GTK applications]]을 참고한다.<br />
<br />
참고: [[Cursor themes]], [[Icons]], [[Font configuration]]<br />
<br />
=== 사운드 ===<br />
<br />
==== Xfce4 mixer ====<br />
<br />
{{Note|ᅟᅡXfce4 mixer와 Xfce4 volumed는 Streamer 1.0으로 포팅이 되지 않기 때문에 더이상 유지보수 되는 업스트림(upstream)으로 취급되지 않는다. 더 자세한 사항은 다음 링크(4.12)를 참고한다. [http://www.xfce.org/about/news/?post&#61;1425081600 news post].}}<br />
<br />
{{Pkg|xfce4-mixer}}로 제공되는 Xfce4 mixer는 Xfce 팀에서 개발된 GUI 믹서 어플리케이션과 패널 플러그인이다. 해당 패키지는 xfce4 패키지 그룹의 일부분으로 포함되어 있다. [[PulseAudio]]와 [[OSS]] 지원을 원한다면 {{Pkg|gstreamer0.10-good-plugins}} 설치가 필요하다.<br />
<br />
Xfce4 mixer가 제대로 동작하도록 하기 위해 기본으로 설정되어 있는 사운드 카드를 변경해야할지도 모른다. 기본 사운드 카드 변경과 관련하여 자세한 사항을 알고 싶다면 [[Advanced Linux Sound Architecture#Set the default sound card]]를 참고한다. 또 다른 방법으로 [[PulseAudio]]와 {{Pkg|pavucontrol}} 또는 [[PulseAudio]]와 [[OSS]]를 함께 사용하는 방법이 있다. OSS 사용 부분이 궁금하다면 [[OSS#Applications that use GStreamer]]을 참고한다.<br />
<br />
변경된 기본 사운드카드 사항을 적용하기 위해서는 로그아웃을 해주어야 한다.<br />
<br />
===== Xfce4 mixer의 기본 사운드카드 변경 =====<br />
<br />
[[PulseAudio]] 또는 {{AUR|xfce4-volumed}}와 같이 몇몇 경우에 Xfce4 Mixer의 볼륨 조절이 제대로 동작하게 하기 위해서 Xfce4 Mixer의 기본 사운드카드를 변경해야할 필요가 있다. [http://grumbel.blogspot.co.uk/2011/10/fixing-volume-control-in-xfce4.html]<br />
<br />
기본 사운드카드를 변경하기 위해서는 ''xfce4-settings-editor''를 연 뒤에 '''xfce4-mixer''' 부분을 들어간다. 그 뒤에 '''sound-cards'''항목들을 확인한다. 현재 사용하고 있는 사운드카드가 제대로 표시되어있는지 확인하고 '''sound-card'''와 '''active-card''' 항목의 값을 대체한다. PulseAudio를 사용하고 있는 경우에는 다음과 같은 내용과 비슷한 항목이 나타날 것이다: '''PlaybackInternalAudioAnalogStereoPulseAudioMixer'''. 변경이 완료된 후에는 변경사항을 적용하기 위해 로그아웃을 해준다.<br />
<br />
==== 키보드의 볼륨 조절 버튼 ====<br />
<br />
{{Pkg|xfce4-mixer}} 패키지의 버전이 {{ic|4.10.0-3}} 이거나 더 높은 경우 mixer 패널 애플릿이 키보드를 이용한 볼륨조절 기능을 제공한다. 하지만 볼륨조절 관련 알림창은 보이지 않는다. 다른 방법으로는, {{AUR|xfce4-volumed}}를 사용할 수 있다. 해당 프로그램은 Xfce4 mixer로 볼륨키를 매핑시키고 Xfce4-notifyd를 통해 관련 알림창을 화면에 표시해준다.<br />
만약 PulseAudio를 사용하고 있고 Xfce4 Mixer 프로그램 사용을 원하지 않는 경우라면, {{AUR|xfce4-pulseaudio-plugin}}을 설치한다. 이 플러그인 또한 패널 애플릿으로서 키보드 버튼을 통한 볼륨조절과 관련 알림창을 띄워주는 기능을 가지고 있다.<br />
<br />
{{Warning|{{AUR|xfce4-pulseaudio-plugin}} 의 경우 높은 CPU 사용량을 가질 수 있다. (~5% on i7 Intel CPU).}}<br />
<br />
데스크탑 환경(Xfce, 그놈, KDE, etc.)이 아닌 경우는 다음을 참고한다. [[List of applications#Volume managers]].<br />
<br />
===== 단축키 =====<br />
<br />
볼륨조절 키 관련 기능을 제공해주는 애플릿(applet)이나 데몬(daemon)을 사용하지 않는 경우, Xfce의 키보드 설정을 통해 사용자가 직접 볼륨조절 키를 매핑할 수 있다. 사용하고 있는 사운드 시스템에 따라 아래 항목을 참고한다.<br />
*ALSA: [[Advanced Linux Sound Architecture#Keyboard volume control]] <br />
*PulseAudio: [[PulseAudio#Keyboard volume control]] <br />
*OSS: [[OSS#Using multimedia keys with OSS]] <br />
<br />
=== 키보드 단축키 ===<br />
<br />
키보드 단축키는 두 군데서 설정이 가능하다.<br />
* ''Settings > Window Manager > Keyboard'' <br />
* ''Settings > Keyboard > Shortcuts''.<br />
<br />
=== Polkit Authentication Agent ===<br />
<br />
{{Pkg|polkit-gnome}} 패키지는 xfce4-session을 따라서 자동으로 설치되며 Xfce실행 시 자동으로 실행된다. 사용자의 때문에 사용자의 설정이 특별하게 요구되지 않는다. 자세한 사항은 [[Polkit#Authentication agents]]ᅟ을 참고한다.<br />
<br />
Xfce를 위한 서드 파티 polkit 인증 관리자 또한 사용가능하다: {{AUR|xfce-polkit-git}} 참고.<br />
<br />
=== 화면에 아무것도 나오지 않을 경우 ===<br />
<br />
{{Note|1=화면에 아무 것도 나오지 않거나 몇몇 설정에서 검은 화면으로 되었다가 화면이 복구되지 않고 아무 것도 나타나지 않는 문제들이 있다. 관련 문제는 다음 링크를 참고한다. [https://bbs.archlinux.org/viewtopic.php?id=194313&p=2][https://bugzilla.xfce.org/show_bug.cgi?id=11107]}}<br />
<br />
Xfce에서 흔히 사용되는 몇몇 프로그램들은 모니터 초기화와 [[DPMS]] (모니터 전력관리)을 제어한다. 해당 문제들에 대한 온라인 상에서의 토론을 위 링크에서 참고할 수 있다.<br />
<br />
;Xfce Power Manager<br />
Xfce Power Manager는 모니터 초기화와 DPMS 설정을 관리한다. 이러한 설정들은 ''xfce4-power-manager-settings''의 ''Display''탭을 통해서 확인할 수 있다. ''Handle display power management'' 옵션을 해제하면 DPMS 기능이 비활성화 된다는 점에 유의한다(전원관리자가 DPMS 기능을 관리하지 않는다는 뜻이 아니다). 또 하나 유의해야 하는 점은 해당 옵션을 비활성화해도 스크린 초기화기능을 비활성화 하지 않는다는 점이다. 스크린 초기화 기능과 DPMS 기능 모두를 비활성화하기 위해서는 패널의 전원관리자 트레이 아이콘을 대고 오른쪽 마우스를 클릭하거나 패널 애플릿에서 왼쪽 마우스를 클릭하여 ''Presentation mode''라고 표시되어 있는 옵션을 체크한다.<br />
<br />
;XScreenSaver<br />
[[XScreenSaver#DPMS and blanking settings]]을 참고한다. 유의해야할 점은 만약 XScreenSaver와 Xfce Power Manager가 동시에 실행되는 경우 둘 중에 어떤 어플리케이션이 화면 초기화와 DPMS를 제어하는지 불분명해진다는 점이다. 이러한 문제 때문에 화면이 꺼져서는 안되는 상황이라면(예. 영화감상) 두 개의 어플리케이션 모두에서 blanking과 DPMS기능을 해제해주어야 한다.<br />
<br />
;xset<br />
만약 위에서 언급된 어플리케이션이 하나도 실행되고 있지 않다면 스크린 초기화와 DPMS 설정은 xset 명령어를 통해서 제어될 수 있다. 이와 관련된 부분은 [[DPMS#Modifying DPMS and screensaver settings using xset]]을 참고한다.<br />
<br />
== 사용관련 도움말 ==<br />
<br />
=== thunar와 xfdesktop에서 파티션 숨기기 ===<br />
<br />
[[Udisks#Hide selected partitions]] 참고.<br />
<br />
=== 스크린샷(화면 갈무리) ===<br />
<br />
Xfce는 자체 스크린샷 도구를 제공한다({{pkg|xfce4-screenshooter}}). {{grp|xfce4-goodies}} 패키지 그룹으로 설치된다.<br />
<br />
''Applications > Settings > Keyboard''에서 ''Application Shortcuts''을 클릭한다. {{ic|xfce4-screenshooter -f}} (현재창을 갈무리하려면 {{ic|-w}}) 명령어를 추가하여 {{ic|Print}} 키로 전체화면 크기의 화면을 갈무리 하기 위해 등록한다. 추가적인 정보를 확인하기 위해서는 screenshooter의 man page를 참고한다.<br />
<br />
또 다른 방법으로, [[Taking a screenshot#scrot|scrot]]과 같이 화면 갈무리를 위한 독립된 프로그램이 있다.<br />
<br />
=== 터미널 상에서 F1 and F11 단축키 비활성화 ===<br />
<br />
Xfce 터미널은 기본으로 F1 and F11 키를 각각 도움말과 전체 화면 키로 매핑되었다. 이 때문에 htop과 같은 프로그램 사용에 있어 불편한 점이 있기 때문에, 해당 단축키들을 비활성화하기 위해서는 xfce 터미널을 위한 설정 파일을 만든 뒤에 로그아웃 한 뒤 다시 로그인 한다. F10 키의 경우에는 터미널의 설정창에서 비활성화될 수 있다.<br />
<br />
{{hc|~/.config/xfce4/terminal/accels.scm|<br />
(gtk_accel_path "<Actions>/terminal-window/fullscreen" "")<br />
(gtk_accel_path "<Actions>/terminal-window/contents" "")<br />
}}<br />
<br />
=== 터미널 색 테마, 팔레트 ===<br />
<br />
터미널 색 테마와 팔레트는 터미널의 설정의 Appearance 탭을 통해서 변경할 수 있다. 제공되는 칼라들은 [[Emacs]]와 [[Vi]]와 같은 콘솔 어플리케이션의 대부분에서 사용가능한 것들이다. 각각의 설정들은 개별적으로 {{ic|~/.config/xfce4/terminal/terminalrc}} 파일에 저장된다. 또한 다양한 선택 가능한 다른 색 테마들도 있다. 아치 리눅스의 다음 쓰레드를 확인하면 사용 가능한 수백가지의 테마들을 확인할 수 있다. [https://bbs.archlinux.org/viewtopic.php?id=51818 Terminal Colour Scheme Screenshots]<br />
<br />
==== 기본 색 테마 변경하기 ====<br />
<br />
XFCE의 {{ic|extra/terminal}} 패키지는 어두운 색 팔레트가 기본으로 되어 있다. 좀 더 밝은 색 테마를 위해서 이를 변경하기 위해서ᅟ는 다음 내용을 사용자의 terminalrc 파일 뒤에 삽입한다.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
ColorPalette5=#38d0fcaaf3a9<br />
ColorPalette4=#e013a0a1612f<br />
ColorPalette2=#d456a81b7b42<br />
ColorPalette6=#ffff7062ffff<br />
ColorPalette3=#7ffff7bd7fff<br />
ColorPalette13=#82108210ffff<br />
<br />
==== 터미널 tango 색 테마 ====<br />
<br />
tango 색 테마로 변경하기 위해서는 다음 파일을 연다.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
다음 내용을 추가한다.<br />
<br />
ColorForeground=White<br />
ColorBackground=#323232323232<br />
ColorPalette1=#2e2e34343636<br />
ColorPalette2=#cccc00000000<br />
ColorPalette3=#4e4e9a9a0606<br />
ColorPalette4=#c4c4a0a00000<br />
ColorPalette5=#34346565a4a4<br />
ColorPalette6=#757550507b7b<br />
ColorPalette7=#060698989a9a<br />
ColorPalette8=#d3d3d7d7cfcf<br />
ColorPalette9=#555557575353<br />
ColorPalette10=#efef29292929<br />
ColorPalette11=#8a8ae2e23434<br />
ColorPalette12=#fcfce9e94f4f<br />
ColorPalette13=#72729f9fcfcf<br />
ColorPalette14=#adad7f7fa8a8<br />
ColorPalette15=#3434e2e2e2e2<br />
ColorPalette16=#eeeeeeeeecec<br />
<br />
=== 색 관리 ===<br />
<br />
Xfce는 색 관리를 위한 지원이 없다. 다른 방법을 위해 다음 링크를 참조한다. [https://bugzilla.xfce.org/show_bug.cgi?id=8559] See [[ICC profiles]]<br />
<br />
=== 다중 모니터 사용 ===<br />
<br />
{{Pkg|xfce4-settings}} 버전 4.11.4 이후로, Xfce는 다중 모니터에 대한 지원을 제공한다. ''Applications'' -> ''Settings'' -> ''Display'' 을 통해 설정할 수 있다. 더 자세한 내용은 다음 링크를 참고한다. [http://docs.xfce.org/xfce/xfce4-settings/display display]<br />
<br />
=== SSH agents ===<br />
<br />
기본적으로 Xfce 4.10은 세션 초기화 동안에 gpg-agent와 ssh-agent를 로드하려고 한다. 이를 비활성화 하려면 다음과 같이 xfconf 키를 생성한다:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false<br />
<br />
gpg-agent가 설치된 환경에서 ssh-agent 사용을 강제하려면 다음 명령어를 실행한다:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s ssh-agent<br />
<br />
[[GNOME Keyring]]를 사용하기 위해서, Xfce 설정의 ''Session Manager'' > ''Advanced'' 탭에서 ''Launch GNOME services on startup'' 체크박스를 해제한다. 해당 옵션은 gpg-agent와 ssh-agent 모두를 비활성화한다.<br />
<br />
출처: http://docs.xfce.org/xfce/xfce4-session/advanced<br />
<br />
=== 포커스 변경 없이 다른 창 스크롤하기 ===<br />
<br />
''Main Menu > Settings > Window Manager Tweaks > Accessibility'' 탭에서 ''Raise windows when any mouse button is pressed'' 체크를 해제한다.<br />
<br />
=== 마우스 버튼 modifier키 ===<br />
<br />
기본으로 Xfce는 modifier 키가 {{ic|Alt}}로 설정되어 있다. modifier키는 ''xfconf-query''에서 변경될 수 있다. 예를 들어, 다음 명령어는 modifier키를 {{ic|Super}}로 바꾼다.<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"<br />
<br />
임밀히 따지면 복수의 키를 modifier 키로 사용하는 것은 제공되지 않는다. 하지만 {{ic|><}}로 구분된 키 조합을 사용하여 modifier 키를 설정할 수 있다. 예를 들면, {{ic|Ctrl+Alt}}키를 마우스 버튼 modifier 키로 사용하기 위해 다음 명령어를 사용할 수 있다.<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"<br />
<br />
== 기타 문제 해결 ==<br />
<br />
=== Action 버튼에 아이콘이 없는 경우 ===<br />
<br />
아이콘 테마에 몇몇 Action(Suspend, Hibernate)과 관련된 아이콘이 없는 경우 혹은 예상되는 이름을 갖고 있지 않는 경우에 발견되는 문제다. 이러ᅟ한 문제를 해결하기 위해서는 필요한 아이콘들이 추가된 아이콘 테마를 설치해야 한다. [[Icons#Xfce icons]] 참고. <br />
<br />
아이콘 테마 설치 후에는, Applications -> Settings -> Appearance -> Icons 탭에서 아이콘 테마를 변경한다.<br />
<br />
다른 대안으로서, 필요한 아이콘을 이미 설치된 아이콘 테마로 변경할 수 있다. 이를 위해서는 먼저 사용되고 있는 아이콘 테마의 이름을 알아야 한다. 이는 다음 명령어를 통해 알 수 있다:<br />
<br />
$ xfconf-query -c xsettings -p /Net/IconThemeName<br />
<br />
이후, 다음과 같이 변수 이름을 설정한다.<br />
<br />
$ icontheme=/usr/share/icons/''theme-name''<br />
<br />
''theme-name''에는 현재 아이콘 테마의 이름을 적는다.<br />
<br />
이 후, 누락된 아이콘에 대한 심볼릭 링크를 만든다. 밑의 예제에서는 {{AUR|elementary-xfce-icons}} 테마의 아이콘을 이용해서 ${icontheme}에서 누락된 아이콘들의 심볼릭 링크를 만들어주는 과정이다.<br />
<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend.svg ${icontheme}/16x16/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend-hibernate.svg ${icontheme}/16x16/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend.svg ${icontheme}/22x22/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend-hibernate.svg ${icontheme}/22x22/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend.svg ${icontheme}/24x24/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend-hibernate.svg ${icontheme}/24x24/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend.svg ${icontheme}/48x48/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend-hibernate.svg ${icontheme}/48x48/actions/system-hibernate.svg<br />
<br />
로그아웃 뒤에 다시 재로그인하면 아이콘이 제대로 표시되는 것을 확인할 수 있다.<br />
<br />
=== 데스크탑 아이콘 재정렬 문제 ===<br />
<br />
패널 설정 다이얼로그를 여는 것과 같이 어떤 특정 이벤트가 발생했을 때 데스크탑의 아이콘들은 재정렬된다. 이러한 것은 아이콘들의 위치가 {{ic|~/.config/xfce4/desktop/}} 디렉토리 안에 정의되어 있기 때문이다. 매번 변경될 때마다 데스크탑에서의 아이콘들에 관한 새로ᅟ운 파일이 생성되어 해당 파일들끼리 충돌하게 된다. <br />
<br />
이 문제를 해결하기 위해서는 해당 디렉토리로 이동하여 정상적으로 위치가 정의되어 있는 파일을 제외한 모든 파일을 삭제한다. 행렬은 모두 숫자 0부터 시작하여 가장 위쪽 행은 {{ic|row 0}}로, 가장 왼쪽 열은 {{ic|col 0}}로서 정의된다. 때문에 다음 내용은<br />
<br />
[Firefox]<br />
row=3<br />
col=0<br />
<br />
Firefox 아이콘이 4번째 행에서 가장 왼쪽 열에 위치하게 된다는 것을 의미한다.<br />
<br />
=== 다중 모니터에서 GTK 테마가 정상적으로 작동하지 않는 문제 ===<br />
<br />
몇몇 설정 프로그램들은 displays.xml 파일을 망가뜨릴 수 있고 이 때문에 ''Applications Menu > Settings > Appearance'' 설정 탭의 동작을 제대로 작동되지 않게 할 수 있다. 문제를 해결하기 위해서는 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml}} 파일을 삭제하고 사용자의 화면을 재설정한다.and reconfigure your screens.<br />
<br />
=== 오른쪽 마우스 클릭 메뉴에서 아이콘이 나타나지 않을 때 ===<br />
<br />
{{Note|현재 GConf가 deprecation상태이지만 아래 방법은 여전히 잘 작동함}}<br />
<br />
사용자들은 [[Qt]]로 제작된 몇몇 어플리케이션에서 오른쪽 마우스 클릭시에 아이콘들이 나타나지 않는 것을 볼 수 있다. 이는 오직 Xfce에서만 나타나는 문제로서, 다음 명령어를 실행한다:<br />
<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true<br />
<br />
=== xkb-plugin에서 키보드 설정이 저장되지 않는 문제 ===<br />
<br />
{{Pkg|xfce4-xkb-plugin}} ''0.5.4.1-1'' 에서 키보드, 레이아웃 변경과 키 조합 설정과 관련해 저장되지 않는 버그가 있다.[https://bugzilla.xfce.org/show_bug.cgi?id=10226] 해결 방법으는 {{ic|xfce4-keyboard-settings}}에서 ''Use system defaults''를 클릭한 뒤에 ''xfce4-xkb-plugin''를 재설정한다.<br />
<br />
=== NVIDIA와 xfce4-sensors-plugin ===<br />
<br />
nvidia gpu 센서를 사용하기 위해서는 {{Pkg|libxnvctrl}} 패키지를 설치한 뒤에 {{Pkg|xfce4-sensors-plugin}}를 [[ABS]] 옵션과 함께 재빌드 해야한다. 또 다른 방법으로는 {{Pkg|xfce4-sensors-plugin}} 대신 {{AUR|xfce4-sensors-plugin-nvidia}}을 사용하는 방법도 있다.<br />
<br />
=== 패널이 항상 왼쪽으로 정렬되어 있는 문제 ===<br />
<br />
패널에 "expand" 속성을 활성화하여 separator를 추가한다. [https://forums.linuxmint.com/viewtopic.php?f=110&t=155602}] 참고.<br />
<br />
=== Preferred Applications 설정 문제 ===<br />
<br />
대부분의 어플리케이션은 주어진 파일이나 URL을 열기 위해서 [[xdg-open]]에 의존성이 있다.<br />
<br />
xdg-open와 xdg-settings 이 Xfce 데스크탑 환경과 제대로 통합되어 작동되게 하기 위해서는 {{Pkg|xorg-xprop}} 패키지를 설치해야 한다.<br />
<br />
만약 해당 패키지를 설치하지 않는 경우에는 preferred applications 설정이 제대로 반영되지 않는다.<br />
<br />
ᅟᅵᆨxdg-open이 제대로 동작하고 있는지 확이하려면 ''xdg-settings''를 이용해서 다음과 같이 명령어로 알아볼 수 있다.<br />
<br />
# xdg-settings get default-web-browser<br />
<br />
만약 다음과 같은 메세지가 출력된다면,<br />
<br />
xdg-settings: unknown desktop environment<br />
<br />
xdg-open이 Xfce 데스크탑 환경을 감지하지 못했다는 뜻이다({{Pkg|xorg-xprop}}패키지의 미설치가 원인).<br />
<br />
=== 기본 설정 복구 ===<br />
<br />
기본 설정으로 복구하기 위해서는 {{ic|~/.config/xfce4-session/}}과 {{ic|~/.config/xfce4/}}의 이름을 변경한다.<br />
<br />
$ mv ~/.config/xfce4-session/ ~/.config/xfce4-session-bak<br />
$ mv ~/.config/xfce4/ ~/.config/xfce4-bak<br />
<br />
그 후에 다시 로그인하면 기본설정으로 복구된 것을 확인할 수 있다. 만약에 로그인 도중 {{ic|Unable to load a failsafe session}} 메세지가 출력되었다면 [[#Session failure]]을 참고한다.<br />
<br />
=== 세션 실패 ===<br />
<br />
포함되는 증상:<br />
<br />
* 마우스 커서가 X 이거나 아예 나타나지 않는 경우<br />
* 창 테두리가 나타나지 않고 창이 닫히지 않는 경우<br />
* ({{ic|xfwm4-settings}})가 시작되지 않고 {{ic|These settings cannot work with your current window manager (unknown)}}라는 메세지가 나타나는 경우<br />
* [[display manager]] {{ic|No window manager registered on screen 0}}와 같은 에러가 [[display manager]]에 나타나는 경우<br />
* failsafe 세션을 로드하지 못하는 경우<br />
<br />
Unable to load a failsafe session.<br />
Unable to determine failsafe session name. Possible causes: xfconfd isn't running (D-Bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (must include "/etc"), or xfce4-session is installed incorrectly. <br />
<br />
xfce를 재시작하거나 시스템 재부팅이 문제를 해결할 수 있지만 이전의 손상된 세션이 문제의 원인일 수 있기 때문에 해당 세션을 지운다. <br />
<br />
$ rm -r ~/.cache/sessions/<br />
<br />
또한 {{ic|$HOME}} 내의 관련 폴더의 권한을 확인하여 {{ic|xfce4}}를 실행하는 사용자의 권한으로 제대로 설정이 되어있는지 확인한다.. See [[Chown]].<br />
<br />
=== 창 제목의 폰트로 xfce4-title가 깨지는 문제 ===<br />
<br />
{{Pkg|ttf-droid}}, {{Pkg|ttf-dejavu}}를 설치한다. 관련 문제는 {{Bug|44382}}를 참고한다.<br />
<br />
=== 노트북 덮개 설정 문제 ===<br />
<br />
Xfce4 전원 관리자에서 설정한 노트북 덮개 관련 설정이 제대로 작동하지 않는 문제가 있다. 때문에 사용자가 전원 관리자 내에서 어떤 설정을 했던간에 덮개를 덮으면 항상 suspend가 되어버리는 경우다. 이러한 문제는 전원관리자가 덮개가 덮히는 이벤트를 기본으로 관리하지 않기 때문이다. 대신에 logind가 전원관리자 대신 덮개가 닫히는 이벤트를 처리한다. 이러한 문제를 해결하기 위해서는 다음 명령어를 실행한다.<br />
<br />
$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false<br />
전원관리자에서 노트북 덮개 관련 설정이 변경될 때마다 해당 설정은 초기화된다는 점에 유의한다.<br />
<br />
=== Adwaita 테마에서의 렌더링 문제 ===<br />
<br />
gnome-themes-standard가 3.18.0-1 버전에서 3.20.0-1로 업그레이드 된 이후로 Xfce 내에서 Adwaita 테마 사용시, 몇가지 이슈들이 나타난다. 해당 이슈에는 알림창 영역의 주변 프레임영역과 이클립스에서의 어두운 배경의 tooltip과 같은 문제들이 있다. <br />
<br />
무식한 해결 방법으로는 {{Pkg|gnome-themes-standard}}패키지를 구버전 3.18.0-1으로 다운그레이드 하는 것이다. 해당 패키지는 다음 링크에서 다운로드 가능하다: <br />
$ wget <nowiki>https://archive.archlinux.org/repos/2016/04/08/extra/os/$(uname -m)/gnome-themes-standard-3.18.0-1-$(uname -m).pkg.tar.xz</nowiki><br />
다운로드 후에는 pacman의 -U옵션을 통해서 설치될 수 있다.<br />
<br />
== 참고 ==<br />
<br />
* [http://www.xfce.org/about/ Xfce - About]<br />
* http://docs.xfce.org/ - The complete documentation.<br />
* [http://www.xfce-look.org/ Xfce-Look] - Themes, wallpapers, and more.<br />
* [http://xfce.wikia.com/wiki/Frequently_Asked_Questions Xfce Wikia] - How to edit the auto generated menu with the menu editor<br />
* [http://wiki.xfce.org Xfce Wiki]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Xfce_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=439089Xfce (한국어)2016-06-26T10:28:26Z<p>Sukbeom: /* Theming */</p>
<hr />
<div>[[Category:Desktop environments (한국어)]]<br />
[[cs:Xfce]]<br />
[[de:Xfce]]<br />
[[en:Xfce]]<br />
[[es:Xfce]]<br />
[[fr:Xfce]]<br />
[[it:Xfce]]<br />
[[ja:Xfce]]<br />
[[pl:Xfce]]<br />
[[ru:Xfce]]<br />
[[tr:Xfce Masaüstü Ortamı]]<br />
[[uk:Xfce]]<br />
[[zh-cn:Xfce]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Window manager}}<br />
{{Related|Xfwm}}<br />
{{Related|Thunar}}<br />
{{Related|LXDE}}<br />
{{Related|GNOME}}<br />
{{Related articles end}}<br />
<br />
[http://www.xfce.org Xfce]는 현재 GTK+ 2를 기반으로 하는 모듈식의 저용량 [[Desktop environment|데스크탑 환경]]이다. 완벽한 사용자 경험을 제공하기 위해 Xfce는 창 관리자, 파일 관리자, 데스크탑과 패널을 포함한다.<br />
<br />
== 설치하기 ==<br />
<br />
{{Grp|xfce4}} 그룹을 [[Install|설치]]한다. 추가 플러그인과 {{Pkg|mousepad}} 편집기와 같은 유용한 유틸리티를 설치하고자 하는 경우 {{Grp|xfce4-goodies}} 그룹으로 설치할 수 있다. Xfce는 [[Xfwm]]을 기본 창 관리자로 사용한다.<br />
<br />
== Xfce 시작하기 ==<br />
<br />
[[display manager]]의 선택 메뉴에서 ''Xfce Session'' 을 선택하거나 [[Xinitrc]]에 {{ic|exec startxfce4}}를 추가한다.<br />
<br />
{{주의|{{ic|xfce4-session}}을 직접 실행하지 않는다. {{ic|startxfce4}}의 호출이 올바른 실행법이며 해당 명령어에서 단계적으로 {{ic|xfce4-session}}을 적절한 시기에 호출한다.}}<br />
<br />
== 설정하기 ==<br />
<br />
Xfce는 설정 옵션들을 [http://docs.xfce.org/xfce/xfconf/start Xfconf]에 저장한다. 해당 옵션들을 설정하는 방법에는 다음과 같은 몇 가지 방법들이 있다.<br />
<br />
* 메인 메뉴에서 설정([http://docs.xfce.org/xfce/xfce4-settings/start Settings])을 클릭하고 설정하고자 하는 카테고리를 클릭한다. 카테고리들은 대부분 {{ic|/usr/bin/xfce4-*}}와 {{ic|/usr/bin/xfdesktop-settings}}에 위치한 프로그램들이다.<br />
* {{ic|xfce4-settings-editor}}을 통해 수정가능한 설정을 확인할 수 있다. 여기서 수정된 사항들은 곧바로 적용된다. {{ic|xfconf-query}}를 사용하여 커맨드라인에서 설정을 변경할 수도 있다. 자세한 사항은 [http://docs.xfce.org/xfce/xfconf/xfconf-query the documentation]을 참고하기 바란다.<br />
* 설정은 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/}} 에 XML 파일로 저장되며 해당 파일은 직접적으로 수정될 수 있다. 하지만 변경된 사항은 ''곧바로 적용되지 않는다''.<br />
<br />
=== 메뉴 ===<br />
<br />
==== Whisker 메뉴 ====<br />
<br />
{{Pkg|xfce4-whiskermenu-plugin}} is an alternate application launcher. It shows a list of favorites, browses through all installed applications through category buttons, and supports fuzzy searching.<br />
{{Pkg|xfce4-whiskermenu-plugin}} 는 xfce의 또다른 어플리케이션 런처이다. 즐겨찾기 목록을 보여주고, 카테고리 버튼을 통해 설치된 프로그램을 탐색할 수 있으며 퍼지 검색을 지원한다.<br />
<br />
==== 메뉴 편집 ====<br />
<br />
메뉴를 편집하기 위해서 다음과 같은 그래픽 인터페이스 기반의 툴들을 사용할 수 있다:<br />
<br />
* {{App|XAME|Xfce 메뉴 편집용으로 디자인 된 Gambas 기반의 GUI 툴. 오직 Xfce에서만 사용가능하며 다른 Desktop Environment에서는 작동하지 않는다. |http://www.redsquirrel87.com/XAME.html|{{AUR|xame}}}}<br />
* {{App|MenuLibre|깔끔하고 사용하기 쉬운 인터페이스로 최신 기능을 제공하는 고급 메뉴 편집기|https://launchpad.net/menulibre|{{AUR|menulibre}}}}.<br />
* {{App|Alacarte|GNOME용 메뉴 편집기|http://www.gnome.org/|{{Pkg|alacarte}}}}<br />
<br />
다른 방법으로, {{ic|~/.config/menus/xfce-applications.menu}} 파일을 직접 만들어 메뉴를 관리할 수 있다. 다음의 예제를 참고한다.<br />
<br />
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"<br />
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"><br />
<br />
<Menu><br />
<Name>Xfce</Name><br />
<MergeFile type="parent">/etc/xdg/menus/xfce-applications.menu</MergeFile><br />
<br />
<Exclude><br />
<Filename>xfce4-run.desktop</Filename><br />
<Filename>exo-terminal-emulator.desktop</Filename><br />
<Filename>exo-file-manager.desktop</Filename><br />
<Filename>exo-mail-reader.desktop</Filename><br />
<Filename>exo-web-browser.desktop</Filename><br />
<Filename>xfce4-about.desktop</Filename><br />
<Filename>xfhelp4.desktop</Filename><br />
</Exclude><br />
<br />
<Layout><br />
<Merge type="all"/><br />
<Separator/><br />
<Menuname>Settings</Menuname><br />
<Separator/><br />
<Filename>xfce4-session-logout.desktop</Filename><br />
</Layout><br />
</Menu><br />
<br />
{{ic|<MergeFile>}} 태그는 기본 Xfce 메뉴를 포함한다.<br />
<br />
{{ic|<Exclude>}} 태그는 메뉴로부터 태그 안의 어플리케이션을 제외시킨다. 예제에서는 Xfce의 기본 바로가기만을 제외시켰지만 {{ic|firefox.desktop}} 혹은 다른 어플리케이션도 제외시킬 수 있다.<br />
<br />
{{ic|<Layout>}} 태그는 메뉴의 레이아웃을 정의한다. 어플리케이션들은 폴더 내 혹은 사용자가 원하는 곳에 배치될 수 있다. 자세한 정보는 [http://wiki.xfce.org/howto/customize-menu Xfce wiki]를 참고한다.<br />
<br />
추가적으로 {{ic|.desktop}} 파일들을 수정하여 Xfce 메뉴를 변경할 수도 있다. 메뉴 엔트리를 숨기기 위해서는 [[Desktop entries#Hide desktop entries]]를 참고한다. {{ic|1=Categories=}} desktop entry를 수정하여 어플리케이션의 카테고리도 변경이 가능하다. 관련 내용은 [[Desktop entries#File example]]을 참고한다.<br />
<br />
=== 바탕화면 ===<br />
<br />
==== 투명한 아이콘 제목 배경색 ====<br />
<br />
바탕화면에 있는 아이콘 이름 부분의 기본 하얀색 배경을 좀 더 배경과 어울리게 바꾸기 위해서, {{ic|~/.gtkrc-2.0}} 파일을 생성하거나 편집한다:<br />
<br />
{{bc|<nowiki><br />
style "xfdesktop-icon-view" {<br />
XfdesktopIconView::label-alpha = 10<br />
base[NORMAL] = "#000000"<br />
base[SELECTED] = "#71B9FF"<br />
base[ACTIVE] = "#71B9FF"<br />
fg[NORMAL] = "#fcfcfc"<br />
fg[SELECTED] = "#ffffff"<br />
fg[ACTIVE] = "#ffffff"<br />
}<br />
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"<br />
</nowiki>}}<br />
<br />
==== 오른쪽 마우스 클릭 메뉴에서 Thunar 옵션 제거 ====<br />
<br />
다음 명령어를 실행한다.<br />
<br />
$ xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0<br />
<br />
==== 프로그램 강제 종료 단축키 ====<br />
<br />
Xfce에서는 프로그램이 멈추었을 때 강제 종료하기 위한 기본 단축키가 없다. <br />
하지만 {{Pkg|xorg-xkill}} 패키지의 {{ic|xkill}} 명령어를 사용하여 열려있는 창을 강제로 닫을 수 있다. 현재 활성화 상태의 창이라면(현재 창이 열려 있고 포커스를 가지고 있는 경우), {{Pkg|xdotool}}를 사용하여 활성화 상태의 창을 강제종료할 수 있다.<br />
<br />
$ xdotool getwindowfocus windowkill<br />
<br />
또 다른 방법으로, 다음 명령어을 사용할 수 있다.<br />
<br />
$ xkill -id "$(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"<br />
<br />
단축키를 추가하기 위해서는 ''Settings > Keyboard'' 혹은 {{pkg|xbindkeys}} 어플리케이션을 사용한다.<br />
<br />
=== 세션 ===<br />
<br />
==== 시작 프로그램 ====<br />
<br />
사용자정의 프로그램을 Xfce 시작시에 실행되도록 하기 위해서는 ''Applications Menu > Settings > Settings Manager''의 ''Session and Startup > Application Autostart'' 탭을 확인한다.<br />
해당 탭을 통해 시작 시에 실행되는 프로그램 리스트를 확인할 수 있다. 시작프로그램을 추가하기 위해서는 ''Add'' 버튼을 클릭하고 등록하고자 하는 실행파일의 경로를 정의한다.<br />
<br />
또 다른 방법으로, [[xinitrc]] ([[display manager]]가 사용되고 있는 경우에는 [[xprofile]])에 명령어를 추가하여 시작 프로그램을 등록할 수 있다.<br />
<br />
===== 시작 프로그램 지연 설정 =====<br />
<br />
가끔, 시작프로그램의 시작을 늦추는 것이 유용할 때가 있다. 이러한 경우, ''Application Autostart'' 에서 {{ic|sleep 3 && command}}와 같이 등록한 것은 동작하지 않기 때문에 다음 명령어를 대신 사용한다.<br />
<br />
sh -c "sleep 3 && command"<br />
<br />
==== 화면 잠금 ====<br />
<br />
''xflock4''ᅟ을 통해 Xfce4 세션을 잠그기 위해서는 {{Pkg|xscreensaver}}, {{Pkg|gnome-screensaver}}, {{Pkg|slock}}, {{Pkg|xlockmore}} 중 하나는 설치되어 있어야 한다.<br />
또는, 다음 명령어를 통해 잠금 명령어를 설정할 수도 있다.<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l" --create -t string''<br />
<br />
만약 명령어를 업데이트하고 싶다면 다음과 같이 명령어를 새로 업데이트할 수 있다.<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l"<br />
<br />
화면 잠금 관련 프로그램은 [[List of applications/Security#Screen lockers]]에서 확인할 수 있다.<br />
<br />
{{Tip|{{Pkg|light-locker}} 세션 잠금은 {{Pkg|xfce4-power-manager}}와 통합된다. 만약 light-locker가 설치되어 있다면, 전원관리설정(power manager settings)에 추가된 ''Security'' 탭과 ''Security'' 탭에 ''Lock screen when system is going for sleep'' 설정이 있는 것을 확인할 수 있다.}}<br />
<br />
{{Note|1=The ''xflock4'' 스크립트는 포스팅[https://bbs.archlinux.org/viewtopic.php?id=189484]에서 언급된 것처럼 직접적으로 수정될 수 있다. 다만, 패키지 업그레이드로 수정된 사항이 덮어쓰기되는 것을 방지하기 위해서 xflock4를 {{ic|/usr/local/bin}}에 복사하고 해당 경로가 {{ic|/usr/bin}}보다 우선적으로 실행될 수 있도록 설정해야 한다. (환경변수 PATH에서 /usr/local/bin:/usr/bin 과 같은 순서로 될 수 있도록 한다.)}}<br />
<br />
==== 사용자 전환 버튼 ====<br />
<br />
{{Note|GDM 없이 사용자 전환 버튼을 사용하기 위해서는 다음의 해결 방법이 필요하다:<br />
* LXDM - [[LXDM#Simultaneous users and switching users]].<br />
* LightDM - [[LightDM#User switching under Xfce4]].}}<br />
<br />
Xfce4는 [[LightDM]]과 [[GDM]]과 같이 사용자 전환 기능을 가지고 있는 [[Display manager]]가 사용되고 있는 경우에 사용자 전환을 지원한다. 더 자세한 정보는 Display manager 관련 위키페이지를 참조하도록 한다. display manager가 설치되어 있고 올바르게 설정이 되어있다면 Xfce 패널의 사용자 전환 버튼을 통해 사용자 전환이 가능하다.<br />
<br />
==== 저장된 세션 비활성화하기 ====<br />
<br />
유저마다 저장된 세션은 다음 명령어를 실행하여 비활성화될 수 있다.<br />
$ xfconf-query -t bool -c xfce4-session -p /general/SaveOnExit -s false<br />
명령어 실행 이후, ''Applications'' -> ''Settings'' -> ''Session and Startup'' -> ''Sessions'' 안의 ''Clear saved sessions'' 버튼을 클릭한다.<br />
<br />
{{Tip|만약 위의 명령어가 설정을 영구적으로 변경하지 않는다면 다음 명령어를 대신 사용한다: {{ic|xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false}}}}<br />
<br />
또 다른 방법으로, Xfce [https://wiki.xfce.org/howto/kiosk_mode kiosk mode]가 사용될 수 있다. 세션을 비활성화하기 위해, {{ic|/etc/xdg/xfce4/kiosk/kioskrc}} 을 만들거나 수정하고 다음을 추가한다.<br />
<br />
[xfce4-session]<br />
SaveSession=NONE<br />
<br />
만일 kiosk 모드가 작동하지 않는다면 현재 사용자가 세션관련 디렉토리에 대해 read 권한만 갖고 있기 때문이다. <br />
<br />
$ rm ~/.cache/sessions/* && chmod 500 ~/.cache/sessions<br />
<br />
위의 명령어가 Xfce가 모든 관련 설정에 상관없이 세션이 저장되는 것을 방지할 것이다.<br />
<br />
==== 기본 창 관리자 ====<br />
<br />
{{Note|변경 사항을 적용하기 위해서는 저장된 세션을 지우고 처음 로그아웃시에 세션 저장 기능을 반드시 비활성화해야 한다. 창 관리자가 실행되면 세션 저장기능은 다시 활성화된다.}}<br />
<br />
기본 창관리자를 명시하는 파일은 다음 위치에서 찾을 수 있다.<br />
*{{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - 각 사용자 영역<br />
*{{ic|/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - 시스템 전역<br />
<br />
기본 창 관리자는 ''xfconf-query''를 사용하여 간단하게 설정될 수 있다.<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa '''wm_name'''<br />
<br />
만약 커맨드라인 옵션을 사용하여 창 관리자를 실행하고 싶을 경우, 다음 명령어들을 참고한다:<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -t string -s '''wm_name''' -s '''--wm-option'''<br />
더 많은 커맨드라인 옵션이 필요하다면, 간단하게 {{ic|-t string}}와 {{ic|-s '''--wm-option'''}} 인자들을 명령어에 추가한다.<br />
<br />
시스템 전역적으로 기본 창 관리자를 변경하고 싶다면 위에서 명시된 파일을 직접 수정하여 ''xfwm4''를 선호하는 창 관리자로 바꾸고 필요시에는 {{ic|1=<value type="string" value="'''--wm-option'''"/>}} 라인을 extra command line 옵션으로 추가한다.<br />
<br />
또한 {{ic|'''wm_name''' --replace}} 를 자동시작되도록 하거나 {{ic|'''wm_name''' --replace &}}가 터미널에서 시작되도록 하고 해당 세션이 저장되도록 하여 창 관리자를 변경할 수 있다. 하지만 이 방법은 실제로 기본 창관리자를 변경하지 않는다는 점에 주의하자. 만약 자동시작 기능을 사용한다면 저장된 세션 때문에 해당 창 관리자가 두 번 중복되어 실행될 수 있으므로 저장된 세션을 비활성화한다.<br />
<br />
=== 테마 ===<br />
<br />
XFCE 테마들은 [http://www.xfce-look.org xfce-look.org]에서 구할 수 있다. ''Xfwm'' 테마들은 {{ic|/usr/share/themes/xfce4}}에 저장되며 ''Settings > Window Manager''의 설정 탭을 통하여 설정할 수 있다. [[GTK+]] 테마는 ''Settings > Appearance''에서 설정할 수 있다.<br />
<br />
모든 어플리케이션에서 동일한 모양새를 얻고 싶다면, [[Uniform look for Qt and GTK applications]]을 참고한다.<br />
<br />
참고: [[Cursor themes]], [[Icons]], [[Font configuration]]<br />
<br />
=== Sound ===<br />
<br />
==== Xfce4 mixer ====<br />
<br />
{{Note|Xfce4 mixer and Xfce4 volumed are no longer being maintained upstream as they cannot be ported to GStreamer 1.0. For more information, see the 4.12 [http://www.xfce.org/about/news/?post&#61;1425081600 news post].}}<br />
<br />
Xfce4 mixer, provided by {{Pkg|xfce4-mixer}}, is the GUI mixer app and panel plugin from the Xfce team. It is part of the xfce4 group. For [[PulseAudio]] and [[OSS]] support, you will need to install {{Pkg|gstreamer0.10-good-plugins}} if it is not installed already.<br />
<br />
You might need to change the default sound card for Xfce4 mixer to function correctly. For further details, such as how to set the default sound card, see [[Advanced Linux Sound Architecture#Set the default sound card]]. Alternatively you can use [[PulseAudio]] together with {{Pkg|pavucontrol}} or [[OSS]]. For OSS, see [[OSS#Applications that use GStreamer]].<br />
<br />
If you did need to change the default soundcard, logout to ensure that the changes take effect.<br />
<br />
===== Change default sound card in Xfce4 mixer =====<br />
<br />
In some cases (when using [[PulseAudio]] or {{AUR|xfce4-volumed}} for instance) it might be necessary to change the default sound card in Xfce4 Mixer in order for volume control to work as expected. [http://grumbel.blogspot.co.uk/2011/10/fixing-volume-control-in-xfce4.html]<br />
<br />
To change the default sound card, open ''xfce4-settings-editor'' and navigate to '''xfce4-mixer''' and check the entries under '''sound-cards'''. Locate the correct entry for the card you are using and then replace the values of '''sound-card''' and '''active-card''' with the entry. If you are using PulseAudio then the entry will likely be similar to the following: '''PlaybackInternalAudioAnalogStereoPulseAudioMixer'''. Then logout for the changes to take effect.<br />
<br />
==== Keyboard volume buttons ====<br />
<br />
If the {{Pkg|xfce4-mixer}} package is version {{ic|4.10.0-3}} or greater, then the mixer panel applet provides the ability to control the volume using the keyboard. However, volume notifications will not be shown. Alternatively, {{AUR|xfce4-volumed}} maps volume keys to Xfce4 mixer, and displays notifications through Xfce4-notifyd.<br />
If you are using PulseAudio and you do not wish to use Xfce4 Mixer at all, install {{AUR|xfce4-pulseaudio-plugin}}. This provides a panel applet which has support for keyboard volume control and volume notifications.<br />
<br />
{{Warning|{{AUR|xfce4-pulseaudio-plugin}} might have high CPU usage (~5% on i7 Intel CPU).}}<br />
<br />
For non desktop environment specific alternatives, see [[List of applications#Volume managers]].<br />
<br />
===== Shortcuts =====<br />
<br />
If you are not using an applet or daemon that controls the volume keys, you can map volume control commands to your volume keys manually using Xfce's keyboard settings. For the sound system you are using, see the sections linked to below for the appropriate commands.<br />
*ALSA: see [[Advanced Linux Sound Architecture#Keyboard volume control]].<br />
*PulseAudio: see [[PulseAudio#Keyboard volume control]]<br />
*OSS: see [[OSS#Using multimedia keys with OSS]].<br />
<br />
=== Keyboard Shortcuts ===<br />
<br />
Keyboard shortcuts are defined in two places: ''Settings > Window Manager > Keyboard'', and ''Settings > Keyboard > Shortcuts''.<br />
<br />
=== Polkit Authentication Agent ===<br />
<br />
The {{Pkg|polkit-gnome}} agent will be installed along with {{Pkg|xfce4-session}} and autostarted automatically; no user intervention is required. For more information, see [[Polkit#Authentication agents]].<br />
<br />
A third party polkit authentication agent for Xfce is also available, see {{AUR|xfce-polkit-git}}.<br />
<br />
=== Display blanking ===<br />
<br />
{{Note|1=There are some issues associated with blanking and resuming from blanking in some configurations. See [https://bbs.archlinux.org/viewtopic.php?id=194313&p=2][https://bugzilla.xfce.org/show_bug.cgi?id=11107].}}<br />
<br />
Some programs that are commonly used with Xfce will control monitor blanking and [[DPMS]] (monitor powersaving) settings. They are discussed below.<br />
<br />
;Xfce Power Manager<br />
Xfce Power Manager will control blanking and DPMS settings. These settings can be configured by running ''xfce4-power-manager-settings'' and clicking the ''Display'' tab. Note that unticking the ''Handle display power management'' option means that the Power Manager will disable DPMS - it does not mean that the Power Manager will relinquish control of DPMS. Also note that it will not disable screen blanking. To disable both blanking and DPMS, right click on the power manager system tray icon or left click on the panel applet and make sure that the option labelled ''Presentation mode'' is ticked.<br />
<br />
;XScreenSaver<br />
See [[XScreenSaver#DPMS and blanking settings]]. Note that if XScreenSaver is running alongside Xfce Power Manager, it may not be entirely clear which application is in control of blanking and DPMS as both applications are competing for control of the same settings. Therefore, in a situation where it is important that the monitor not be blanked (when watching a film for instance), it is advisable to disable blanking and DPMS through both applications.<br />
<br />
;xset<br />
If neither of the above applications are running, then blanking and DPMS settings can be controlled using the ''xset'' command, see [[DPMS#Modifying DPMS and screensaver settings using xset]].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Hide partitions from thunar and xfdesktop ===<br />
<br />
See [[Udisks#Hide selected partitions]].<br />
<br />
=== Screenshots ===<br />
<br />
Xfce has its own screenshot tool, {{pkg|xfce4-screenshooter}}. It is part of the {{grp|xfce4-goodies}} group.<br />
<br />
Go to ''Applications > Settings > Keyboard'', ''Application Shortcuts''. Add the {{ic|xfce4-screenshooter -f}} (or {{ic|-w}} for the active window) command to use the {{ic|Print}} key in order to take fullscreen screenshots. See screenshooter's man page for other optional arguments.<br />
<br />
Alternatively, an independent screenshot program like [[Taking a screenshot#scrot|scrot]] can be used.<br />
<br />
=== Disable Terminal F1 and F11 shortcuts ===<br />
<br />
The xfce terminal binds F1 and F11 to help and fullscreen, respectively, which can make using programs like htop difficult. To disable those shortcuts, create or edit its configuration file, then log out and log back in. F10 can disabled in the Preferences menu.<br />
<br />
{{hc|~/.config/xfce4/terminal/accels.scm|<br />
(gtk_accel_path "<Actions>/terminal-window/fullscreen" "")<br />
(gtk_accel_path "<Actions>/terminal-window/contents" "")<br />
}}<br />
<br />
=== Terminal color themes or palettes ===<br />
<br />
Terminal color themes or palettes can be changed in GUI under Appearance tab in Preferences. These are the colors that are available to most console applications like [[Emacs]], [[Vi]] and so on. Their settings are stored individually for each system user in {{ic|~/.config/xfce4/terminal/terminalrc}} file. There are also so many other themes to choose from. Check forum thread [https://bbs.archlinux.org/viewtopic.php?id=51818 Terminal Colour Scheme Screenshots] for hundreds of available choices and themes.<br />
<br />
==== Changing default color theme ====<br />
<br />
XFCE's {{ic|extra/terminal}} package comes with a darker color palette. To change this, append the following in your terminalrc file for a lighter color theme, that is always visible in darker Terminal backgrounds.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
ColorPalette5=#38d0fcaaf3a9<br />
ColorPalette4=#e013a0a1612f<br />
ColorPalette2=#d456a81b7b42<br />
ColorPalette6=#ffff7062ffff<br />
ColorPalette3=#7ffff7bd7fff<br />
ColorPalette13=#82108210ffff<br />
<br />
==== Terminal tango color theme ====<br />
<br />
To switch to tango color theme, open with your favorite editor<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
And add(replace) these lines:<br />
<br />
ColorForeground=White<br />
ColorBackground=#323232323232<br />
ColorPalette1=#2e2e34343636<br />
ColorPalette2=#cccc00000000<br />
ColorPalette3=#4e4e9a9a0606<br />
ColorPalette4=#c4c4a0a00000<br />
ColorPalette5=#34346565a4a4<br />
ColorPalette6=#757550507b7b<br />
ColorPalette7=#060698989a9a<br />
ColorPalette8=#d3d3d7d7cfcf<br />
ColorPalette9=#555557575353<br />
ColorPalette10=#efef29292929<br />
ColorPalette11=#8a8ae2e23434<br />
ColorPalette12=#fcfce9e94f4f<br />
ColorPalette13=#72729f9fcfcf<br />
ColorPalette14=#adad7f7fa8a8<br />
ColorPalette15=#3434e2e2e2e2<br />
ColorPalette16=#eeeeeeeeecec<br />
<br />
=== Colour management ===<br />
<br />
Xfce has no native support for colour management. [https://bugzilla.xfce.org/show_bug.cgi?id=8559] See [[ICC profiles]] for alternatives.<br />
<br />
=== Multiple monitors ===<br />
<br />
As of {{Pkg|xfce4-settings}} version 4.11.4, Xfce has support for multiple monitors. Settings can be configured in the ''Applications'' -> ''Settings'' -> ''Display'' dialog. For more information, see the [http://docs.xfce.org/xfce/xfce4-settings/display display] article from the Xfce documentation.<br />
<br />
=== SSH agents ===<br />
<br />
By default Xfce 4.10 will try to load gpg-agent or ssh-agent in that order during session initialization. To disable this, create an xfconf key using the following command:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false<br />
<br />
To force using ssh-agent even if gpg-agent is installed, run the following instead:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s ssh-agent<br />
<br />
To use [[GNOME Keyring]], simply tick the checkbox ''Launch GNOME services on startup'' in the ''Advanced'' tab of ''Session Manager'' in Xfce's settings. This will also disable gpg-agent and ssh-agent.<br />
<br />
Source: http://docs.xfce.org/xfce/xfce4-session/advanced<br />
<br />
=== Scroll a background window without shifting focus on it ===<br />
<br />
Go to ''Main Menu > Settings > Window Manager Tweaks > Accessibility'' tab.<br />
Uncheck ''Raise windows when any mouse button is pressed''.<br />
<br />
=== Mouse button modifier ===<br />
<br />
By default, the mouse button modifier in Xfce is set to {{ic|Alt}}. This can be changed with ''xfconf-query''. For instance, the following command will set the {{ic|Super}} key as the mouse button modifier:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"<br />
<br />
Strictly speaking, using multiple modifiers is not supported. However, as a workaround, multiple modifiers can be specified if the key names are separated with {{ic|><}}. For instance, to set {{ic|Ctrl+Alt}} as the mouse button modifier, you can use the following command:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"<br />
<br />
== Troubleshooting ==<br />
<br />
=== Action buttons are missing icons ===<br />
<br />
This happens if icons for some actions (Suspend, Hibernate) are missing from the icon theme, or do not have the expected names. To fix this, install an icon theme which has the necessary icons already added; see [[Icons#Xfce icons]]. <br />
<br />
Then, you can switch to that icon theme using Applications -> Settings -> Appearance -> Icons.<br />
<br />
Alternatively you can use the required icons provided by the icon theme you installed in your current icon theme. To do so, you first need to find out what the currently used icon theme is called. You can do so by using the command below:<br />
<br />
$ xfconf-query -c xsettings -p /Net/IconThemeName<br />
<br />
Then set the following variable:<br />
<br />
$ icontheme=/usr/share/icons/''theme-name''<br />
<br />
where ''theme-name'' is the name of the current icon theme.<br />
<br />
Then create symbolic links from the current icon theme into the icon theme providing the icons (this example assumes the icons are being provided by the {{AUR|elementary-xfce-icons}} theme.)<br />
<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend.svg ${icontheme}/16x16/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend-hibernate.svg ${icontheme}/16x16/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend.svg ${icontheme}/22x22/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend-hibernate.svg ${icontheme}/22x22/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend.svg ${icontheme}/24x24/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend-hibernate.svg ${icontheme}/24x24/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend.svg ${icontheme}/48x48/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend-hibernate.svg ${icontheme}/48x48/actions/system-hibernate.svg<br />
<br />
Log out and in again, and you should see icons for all actions.<br />
<br />
=== Desktop icons rearrange themselves ===<br />
<br />
At certain events (such as opening the panel settings dialog) icons on the desktop rearrange themselves. This is because icon positions are determined by files in the {{ic|~/.config/xfce4/desktop/}} directory. Each time a change is made to the desktop (icons are added or removed or change position) a new file is generated in this directory and these files can conflict.<br />
<br />
To solve the problem, navigate to the directory and delete all the files other than the one which correctly defines the icon positions. You can determine which file defines the correct icon positions by opening it and examining the locations of the icons. The topmost row is defined as {{ic|row 0}} and the leftmost column is defined by {{ic|col 0}}. Therefore an entry of:<br />
<br />
[Firefox]<br />
row=3<br />
col=0<br />
<br />
means that the Firefox icon will be located on the 4th row of the leftmost column.<br />
<br />
=== GTK themes not working with multiple monitors ===<br />
<br />
Some configuration tools may corrupt displays.xml, which results in GTK themes under ''Applications Menu > Settings > Appearance'' ceasing to work. To fix the issue, delete {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml}} and reconfigure your screens.<br />
<br />
=== Icons do not appear in right-click menus ===<br />
<br />
{{Note|Despite the deprecation of GConf, this method does still work.}}<br />
<br />
Users may find that icons do not appear when right-clicking options within some applications, including those made with [[Qt]]. This problem only appears to happen within Xfce. Run these two commands:<br />
<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true<br />
<br />
=== Keyboard settings are not saved in xkb-plugin ===<br />
<br />
There is a bug in {{Pkg|xfce4-xkb-plugin}} ''0.5.4.1-1'' which causes it to lose keyboard, layout switching and compose key settings. [https://bugzilla.xfce.org/show_bug.cgi?id=10226] As a workaround, enable ''Use system defaults'' in {{ic|xfce4-keyboard-settings}}, then reconfigure ''xfce4-xkb-plugin''.<br />
<br />
=== NVIDIA and xfce4-sensors-plugin ===<br />
<br />
To detect and use sensors of nvidia gpu you need to install {{Pkg|libxnvctrl}} and then rebuild {{Pkg|xfce4-sensors-plugin}} with [[ABS]]. You also have the option of using {{AUR|xfce4-sensors-plugin-nvidia}} which replaces {{Pkg|xfce4-sensors-plugin}}.<br />
<br />
=== Panel applets keep being aligned on the left ===<br />
<br />
Add a separator someplace before the right end and set its "expand" property. [https://forums.linuxmint.com/viewtopic.php?f=110&t=155602}]<br />
<br />
=== Preferred Applications preferences have no effect ===<br />
<br />
Most applications rely on [[xdg-open]] for opening a preferred application for a given file or URL.<br />
<br />
In order for xdg-open and xdg-settings to detect and integrate with the Xfce desktop environment correctly, you need to [[install]] the {{Pkg|xorg-xprop}} package.<br />
<br />
If you do not do that, your preferred applications preferences (set by exo-preferred-applications) will not be obeyed.<br />
Installing the package and allowing ''xdg-open'' to detect that you are running Xfce makes it forward all calls to ''exo-open'' instead, which correctly uses all your preferred applications preferences.<br />
<br />
To make sure xdg-open integration is working correctly, ask ''xdg-settings'' for the default web browser and see what the result is:<br />
<br />
# xdg-settings get default-web-browser<br />
<br />
If it replies with:<br />
<br />
xdg-settings: unknown desktop environment<br />
<br />
it means that it has failed to detect Xfce as your desktop environment, which is likely due to a missing {{Pkg|xorg-xprop}} package.<br />
<br />
=== Restore default settings ===<br />
<br />
If for any reason you need to revert back: to the default settings, rename {{ic|~/.config/xfce4-session/}} and {{ic|~/.config/xfce4/}}<br />
<br />
$ mv ~/.config/xfce4-session/ ~/.config/xfce4-session-bak<br />
$ mv ~/.config/xfce4/ ~/.config/xfce4-bak<br />
<br />
Relogin for changes to take effect. If you get {{ic|Unable to load a failsafe session}} upon login, see the [[#Session failure]] section.<br />
<br />
=== Session failure ===<br />
<br />
Symptoms include:<br />
<br />
* The mouse is an X and/or does not appear at all;<br />
* Window decorations have disappeared and windows cannot be closed;<br />
* ({{ic|xfwm4-settings}}) will not start, reporting {{ic|These settings cannot work with your current window manager (unknown)}};<br />
* Errors reported by a [[display manager]] such as {{ic|No window manager registered on screen 0}}.<br />
* Unable to load a failsafe session:<br />
<br />
Unable to load a failsafe session.<br />
Unable to determine failsafe session name. Possible causes: xfconfd isn't running (D-Bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (must include "/etc"), or xfce4-session is installed incorrectly. <br />
<br />
Restarting xfce or rebooting your system may solve the problem, but a corrupt session is the likely cause. Delete the session folder:<br />
<br />
$ rm -r ~/.cache/sessions/<br />
<br />
Also make sure that the relevant folders in {{ic|$HOME}} are owned by the user starting {{ic|xfce4}}. See [[Chown]].<br />
<br />
=== Fonts in window title crashing xfce4-title ===<br />
<br />
[[Install]] {{Pkg|ttf-droid}} and {{Pkg|ttf-dejavu}}. See also {{Bug|44382}}.<br />
<br />
=== Laptop lid settings ignored ===<br />
<br />
You may find that the lid close settings in Xfce4 Power Manager are ignored, meaning that the laptop will always suspend on lid close, no matter what settings are chosen in the power manager. This is because the power manager is not set to handle lid close events by default. Instead, logind handles the lid close event. To change this behavior so that the the power manager handles lid close events, execute the following command:<br />
$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false<br />
Note that each time the laptop lid settings are changed in the power manager, this setting will be reset.<br />
<br />
=== Rendering issues with Adwaita theme ===<br />
<br />
Since the upgrade of gnome-themes-standard from 3.18.0-1 version to 3.20.0-1 the Adwaita theme exhibits several issues when being used in Xfce, like a frame around the notification area and dark background of the tooltip in eclipse. <br />
<br />
A ugly solution is to downgrade the {{Pkg|gnome-themes-standard}} to the old 3.18.0-1 meanwhile. The package can be downloaded at: <br />
$ wget <nowiki>https://archive.archlinux.org/repos/2016/04/08/extra/os/$(uname -m)/gnome-themes-standard-3.18.0-1-$(uname -m).pkg.tar.xz</nowiki><br />
and installed via pacman's {{ic|-U}} option.<br />
<br />
== See also ==<br />
<br />
* [http://www.xfce.org/about/ Xfce - About]<br />
* http://docs.xfce.org/ - The complete documentation.<br />
* [http://www.xfce-look.org/ Xfce-Look] - Themes, wallpapers, and more.<br />
* [http://xfce.wikia.com/wiki/Frequently_Asked_Questions Xfce Wikia] - How to edit the auto generated menu with the menu editor<br />
* [http://wiki.xfce.org Xfce Wiki]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Xfce_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=438814Xfce (한국어)2016-06-23T16:38:56Z<p>Sukbeom: /* Session */</p>
<hr />
<div>[[Category:Desktop environments (한국어)]]<br />
[[cs:Xfce]]<br />
[[de:Xfce]]<br />
[[es:Xfce]]<br />
[[fr:Xfce]]<br />
[[it:Xfce]]<br />
[[ja:Xfce]]<br />
[[pl:Xfce]]<br />
[[ru:Xfce]]<br />
[[tr:Xfce Masaüstü Ortamı]]<br />
[[uk:Xfce]]<br />
[[zh-CN:Xfce]]<br />
[[ko:Xfce]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Window manager}}<br />
{{Related|Xfwm}}<br />
{{Related|Thunar}}<br />
{{Related|LXDE}}<br />
{{Related|GNOME}}<br />
{{Related articles end}}<br />
<br />
[http://www.xfce.org Xfce]는 현재 GTK+ 2를 기반으로 하는 모듈식의 저용량 [[Desktop environment|데스크탑 환경]]이다. 완벽한 사용자 경험을 제공하기 위해 Xfce는 창 관리자, 파일 관리자, 데스크탑과 패널을 포함한다.<br />
<br />
== 설치하기 ==<br />
<br />
{{Grp|xfce4}} 그룹을 [[Install|설치]]한다. 추가 플러그인과 {{Pkg|mousepad}} 편집기와 같은 유용한 유틸리티를 설치하고자 하는 경우 {{Grp|xfce4-goodies}} 그룹으로 설치할 수 있다. Xfce는 [[Xfwm]]을 기본 창 관리자로 사용한다.<br />
<br />
== Xfce 시작하기 ==<br />
<br />
[[display manager]]의 선택 메뉴에서 ''Xfce Session'' 을 선택하거나 [[Xinitrc]]에 {{ic|exec startxfce4}}를 추가한다.<br />
<br />
{{주의|{{ic|xfce4-session}}을 직접 실행하지 않는다. {{ic|startxfce4}}의 호출이 올바른 실행법이며 해당 명령어에서 단계적으로 {{ic|xfce4-session}}을 적절한 시기에 호출한다.}}<br />
<br />
== 설정하기 ==<br />
<br />
Xfce는 설정 옵션들을 [http://docs.xfce.org/xfce/xfconf/start Xfconf]에 저장한다. 해당 옵션들을 설정하는 방법에는 다음과 같은 몇 가지 방법들이 있다.<br />
<br />
* 메인 메뉴에서 설정([http://docs.xfce.org/xfce/xfce4-settings/start Settings])을 클릭하고 설정하고자 하는 카테고리를 클릭한다. 카테고리들은 대부분 {{ic|/usr/bin/xfce4-*}}와 {{ic|/usr/bin/xfdesktop-settings}}에 위치한 프로그램들이다.<br />
* {{ic|xfce4-settings-editor}}을 통해 수정가능한 설정을 확인할 수 있다. 여기서 수정된 사항들은 곧바로 적용된다. {{ic|xfconf-query}}를 사용하여 커맨드라인에서 설정을 변경할 수도 있다. 자세한 사항은 [http://docs.xfce.org/xfce/xfconf/xfconf-query the documentation]을 참고하기 바란다.<br />
* 설정은 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/}} 에 XML 파일로 저장되며 해당 파일은 직접적으로 수정될 수 있다. 하지만 변경된 사항은 ''곧바로 적용되지 않는다''.<br />
<br />
=== 메뉴 ===<br />
<br />
==== Whisker 메뉴 ====<br />
<br />
{{Pkg|xfce4-whiskermenu-plugin}} is an alternate application launcher. It shows a list of favorites, browses through all installed applications through category buttons, and supports fuzzy searching.<br />
{{Pkg|xfce4-whiskermenu-plugin}} 는 xfce의 또다른 어플리케이션 런처이다. 즐겨찾기 목록을 보여주고, 카테고리 버튼을 통해 설치된 프로그램을 탐색할 수 있으며 퍼지 검색을 지원한다.<br />
<br />
==== 메뉴 편집 ====<br />
<br />
메뉴를 편집하기 위해서 다음과 같은 그래픽 인터페이스 기반의 툴들을 사용할 수 있다:<br />
<br />
* {{App|XAME|Xfce 메뉴 편집용으로 디자인 된 Gambas 기반의 GUI 툴. 오직 Xfce에서만 사용가능하며 다른 Desktop Environment에서는 작동하지 않는다. |http://www.redsquirrel87.com/XAME.html|{{AUR|xame}}}}<br />
* {{App|MenuLibre|깔끔하고 사용하기 쉬운 인터페이스로 최신 기능을 제공하는 고급 메뉴 편집기|https://launchpad.net/menulibre|{{AUR|menulibre}}}}.<br />
* {{App|Alacarte|GNOME용 메뉴 편집기|http://www.gnome.org/|{{Pkg|alacarte}}}}<br />
<br />
다른 방법으로, {{ic|~/.config/menus/xfce-applications.menu}} 파일을 직접 만들어 메뉴를 관리할 수 있다. 다음의 예제를 참고한다.<br />
<br />
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"<br />
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"><br />
<br />
<Menu><br />
<Name>Xfce</Name><br />
<MergeFile type="parent">/etc/xdg/menus/xfce-applications.menu</MergeFile><br />
<br />
<Exclude><br />
<Filename>xfce4-run.desktop</Filename><br />
<Filename>exo-terminal-emulator.desktop</Filename><br />
<Filename>exo-file-manager.desktop</Filename><br />
<Filename>exo-mail-reader.desktop</Filename><br />
<Filename>exo-web-browser.desktop</Filename><br />
<Filename>xfce4-about.desktop</Filename><br />
<Filename>xfhelp4.desktop</Filename><br />
</Exclude><br />
<br />
<Layout><br />
<Merge type="all"/><br />
<Separator/><br />
<Menuname>Settings</Menuname><br />
<Separator/><br />
<Filename>xfce4-session-logout.desktop</Filename><br />
</Layout><br />
</Menu><br />
<br />
{{ic|<MergeFile>}} 태그는 기본 Xfce 메뉴를 포함한다.<br />
<br />
{{ic|<Exclude>}} 태그는 메뉴로부터 태그 안의 어플리케이션을 제외시킨다. 예제에서는 Xfce의 기본 바로가기만을 제외시켰지만 {{ic|firefox.desktop}} 혹은 다른 어플리케이션도 제외시킬 수 있다.<br />
<br />
{{ic|<Layout>}} 태그는 메뉴의 레이아웃을 정의한다. 어플리케이션들은 폴더 내 혹은 사용자가 원하는 곳에 배치될 수 있다. 자세한 정보는 [http://wiki.xfce.org/howto/customize-menu Xfce wiki]를 참고한다.<br />
<br />
추가적으로 {{ic|.desktop}} 파일들을 수정하여 Xfce 메뉴를 변경할 수도 있다. 메뉴 엔트리를 숨기기 위해서는 [[Desktop entries#Hide desktop entries]]를 참고한다. {{ic|1=Categories=}} desktop entry를 수정하여 어플리케이션의 카테고리도 변경이 가능하다. 관련 내용은 [[Desktop entries#File example]]을 참고한다.<br />
<br />
=== 바탕화면 ===<br />
<br />
==== 투명한 아이콘 제목 배경색 ====<br />
<br />
바탕화면에 있는 아이콘 이름 부분의 기본 하얀색 배경을 좀 더 배경과 어울리게 바꾸기 위해서, {{ic|~/.gtkrc-2.0}} 파일을 생성하거나 편집한다:<br />
<br />
{{bc|<nowiki><br />
style "xfdesktop-icon-view" {<br />
XfdesktopIconView::label-alpha = 10<br />
base[NORMAL] = "#000000"<br />
base[SELECTED] = "#71B9FF"<br />
base[ACTIVE] = "#71B9FF"<br />
fg[NORMAL] = "#fcfcfc"<br />
fg[SELECTED] = "#ffffff"<br />
fg[ACTIVE] = "#ffffff"<br />
}<br />
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"<br />
</nowiki>}}<br />
<br />
==== 오른쪽 마우스 클릭 메뉴에서 Thunar 옵션 제거 ====<br />
<br />
다음 명령어를 실행한다.<br />
<br />
$ xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0<br />
<br />
==== 프로그램 강제 종료 단축키 ====<br />
<br />
Xfce에서는 프로그램이 멈추었을 때 강제 종료하기 위한 기본 단축키가 없다. <br />
하지만 {{Pkg|xorg-xkill}} 패키지의 {{ic|xkill}} 명령어를 사용하여 열려있는 창을 강제로 닫을 수 있다. 현재 활성화 상태의 창이라면(현재 창이 열려 있고 포커스를 가지고 있는 경우), {{Pkg|xdotool}}를 사용하여 활성화 상태의 창을 강제종료할 수 있다.<br />
<br />
$ xdotool getwindowfocus windowkill<br />
<br />
또 다른 방법으로, 다음 명령어을 사용할 수 있다.<br />
<br />
$ xkill -id "$(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"<br />
<br />
단축키를 추가하기 위해서는 ''Settings > Keyboard'' 혹은 {{pkg|xbindkeys}} 어플리케이션을 사용한다.<br />
<br />
=== 세션 ===<br />
<br />
==== 시작 프로그램 ====<br />
<br />
사용자정의 프로그램을 Xfce 시작시에 실행되도록 하기 위해서는 ''Applications Menu > Settings > Settings Manager''의 ''Session and Startup > Application Autostart'' 탭을 확인한다.<br />
해당 탭을 통해 시작 시에 실행되는 프로그램 리스트를 확인할 수 있다. 시작프로그램을 추가하기 위해서는 ''Add'' 버튼을 클릭하고 등록하고자 하는 실행파일의 경로를 정의한다.<br />
<br />
또 다른 방법으로, [[xinitrc]] ([[display manager]]가 사용되고 있는 경우에는 [[xprofile]])에 명령어를 추가하여 시작 프로그램을 등록할 수 있다.<br />
<br />
===== 시작 프로그램 지연 설정 =====<br />
<br />
가끔, 시작프로그램의 시작을 늦추는 것이 유용할 때가 있다. 이러한 경우, ''Application Autostart'' 에서 {{ic|sleep 3 && command}}와 같이 등록한 것은 동작하지 않기 때문에 다음 명령어를 대신 사용한다.<br />
<br />
sh -c "sleep 3 && command"<br />
<br />
==== 화면 잠금 ====<br />
<br />
''xflock4''ᅟ을 통해 Xfce4 세션을 잠그기 위해서는 {{Pkg|xscreensaver}}, {{Pkg|gnome-screensaver}}, {{Pkg|slock}}, {{Pkg|xlockmore}} 중 하나는 설치되어 있어야 한다.<br />
또는, 다음 명령어를 통해 잠금 명령어를 설정할 수도 있다.<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l" --create -t string''<br />
<br />
만약 명령어를 업데이트하고 싶다면 다음과 같이 명령어를 새로 업데이트할 수 있다.<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l"<br />
<br />
화면 잠금 관련 프로그램은 [[List of applications/Security#Screen lockers]]에서 확인할 수 있다.<br />
<br />
{{Tip|{{Pkg|light-locker}} 세션 잠금은 {{Pkg|xfce4-power-manager}}와 통합된다. 만약 light-locker가 설치되어 있다면, 전원관리설정(power manager settings)에 추가된 ''Security'' 탭과 ''Security'' 탭에 ''Lock screen when system is going for sleep'' 설정이 있는 것을 확인할 수 있다.}}<br />
<br />
{{Note|1=The ''xflock4'' 스크립트는 포스팅[https://bbs.archlinux.org/viewtopic.php?id=189484]에서 언급된 것처럼 직접적으로 수정될 수 있다. 다만, 패키지 업그레이드로 수정된 사항이 덮어쓰기되는 것을 방지하기 위해서 xflock4를 {{ic|/usr/local/bin}}에 복사하고 해당 경로가 {{ic|/usr/bin}}보다 우선적으로 실행될 수 있도록 설정해야 한다. (환경변수 PATH에서 /usr/local/bin:/usr/bin 과 같은 순서로 될 수 있도록 한다.)}}<br />
<br />
==== 사용자 전환 버튼 ====<br />
<br />
{{Note|GDM 없이 사용자 전환 버튼을 사용하기 위해서는 다음의 해결 방법이 필요하다:<br />
* LXDM - [[LXDM#Simultaneous users and switching users]].<br />
* LightDM - [[LightDM#User switching under Xfce4]].}}<br />
<br />
Xfce4는 [[LightDM]]과 [[GDM]]과 같이 사용자 전환 기능을 가지고 있는 [[Display manager]]가 사용되고 있는 경우에 사용자 전환을 지원한다. 더 자세한 정보는 Display manager 관련 위키페이지를 참조하도록 한다. display manager가 설치되어 있고 올바르게 설정이 되어있다면 Xfce 패널의 사용자 전환 버튼을 통해 사용자 전환이 가능하다.<br />
<br />
==== 저장된 세션 비활성화하기 ====<br />
<br />
유저마다 저장된 세션은 다음 명령어를 실행하여 비활성화될 수 있다.<br />
$ xfconf-query -t bool -c xfce4-session -p /general/SaveOnExit -s false<br />
명령어 실행 이후, ''Applications'' -> ''Settings'' -> ''Session and Startup'' -> ''Sessions'' 안의 ''Clear saved sessions'' 버튼을 클릭한다.<br />
<br />
{{Tip|만약 위의 명령어가 설정을 영구적으로 변경하지 않는다면 다음 명령어를 대신 사용한다: {{ic|xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false}}}}<br />
<br />
또 다른 방법으로, Xfce [https://wiki.xfce.org/howto/kiosk_mode kiosk mode]가 사용될 수 있다. 세션을 비활성화하기 위해, {{ic|/etc/xdg/xfce4/kiosk/kioskrc}} 을 만들거나 수정하고 다음을 추가한다.<br />
<br />
[xfce4-session]<br />
SaveSession=NONE<br />
<br />
만일 kiosk 모드가 작동하지 않는다면 현재 사용자가 세션관련 디렉토리에 대해 read 권한만 갖고 있기 때문이다. <br />
<br />
$ rm ~/.cache/sessions/* && chmod 500 ~/.cache/sessions<br />
<br />
위의 명령어가 Xfce가 모든 관련 설정에 상관없이 세션이 저장되는 것을 방지할 것이다.<br />
<br />
==== 기본 창 관리자 ====<br />
<br />
{{Note|변경 사항을 적용하기 위해서는 저장된 세션을 지우고 처음 로그아웃시에 세션 저장 기능을 반드시 비활성화해야 한다. 창 관리자가 실행되면 세션 저장기능은 다시 활성화된다.}}<br />
<br />
기본 창관리자를 명시하는 파일은 다음 위치에서 찾을 수 있다.<br />
*{{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - 각 사용자 영역<br />
*{{ic|/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - 시스템 전역<br />
<br />
기본 창 관리자는 ''xfconf-query''를 사용하여 간단하게 설정될 수 있다.<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa '''wm_name'''<br />
<br />
만약 커맨드라인 옵션을 사용하여 창 관리자를 실행하고 싶을 경우, 다음 명령어들을 참고한다:<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -t string -s '''wm_name''' -s '''--wm-option'''<br />
더 많은 커맨드라인 옵션이 필요하다면, 간단하게 {{ic|-t string}}와 {{ic|-s '''--wm-option'''}} 인자들을 명령어에 추가한다.<br />
<br />
시스템 전역적으로 기본 창 관리자를 변경하고 싶다면 위에서 명시된 파일을 직접 수정하여 ''xfwm4''를 선호하는 창 관리자로 바꾸고 필요시에는 {{ic|1=<value type="string" value="'''--wm-option'''"/>}} 라인을 extra command line 옵션으로 추가한다.<br />
<br />
또한 {{ic|'''wm_name''' --replace}} 를 자동시작되도록 하거나 {{ic|'''wm_name''' --replace &}}가 터미널에서 시작되도록 하고 해당 세션이 저장되도록 하여 창 관리자를 변경할 수 있다. 하지만 이 방법은 실제로 기본 창관리자를 변경하지 않는다는 점에 주의하자. 만약 자동시작 기능을 사용한다면 저장된 세션 때문에 해당 창 관리자가 두 번 중복되어 실행될 수 있으므로 저장된 세션을 비활성화한다.<br />
<br />
=== Theming ===<br />
<br />
XFCE themes are available at [http://www.xfce-look.org xfce-look.org]. ''Xfwm'' themes are stored in {{ic|/usr/share/themes/xfce4}}, and set in ''Settings > Window Manager''. [[GTK+]] themes are set in ''Settings > Appearance''.<br />
<br />
To achieve a uniform look for all applications, see [[Uniform look for Qt and GTK applications]].<br />
<br />
See also [[Cursor themes]], [[Icons]], and [[Font configuration]].<br />
<br />
=== Sound ===<br />
<br />
==== Xfce4 mixer ====<br />
<br />
{{Note|Xfce4 mixer and Xfce4 volumed are no longer being maintained upstream as they cannot be ported to GStreamer 1.0. For more information, see the 4.12 [http://www.xfce.org/about/news/?post&#61;1425081600 news post].}}<br />
<br />
Xfce4 mixer, provided by {{Pkg|xfce4-mixer}}, is the GUI mixer app and panel plugin from the Xfce team. It is part of the xfce4 group. For [[PulseAudio]] and [[OSS]] support, you will need to install {{Pkg|gstreamer0.10-good-plugins}} if it is not installed already.<br />
<br />
You might need to change the default sound card for Xfce4 mixer to function correctly. For further details, such as how to set the default sound card, see [[Advanced Linux Sound Architecture#Set the default sound card]]. Alternatively you can use [[PulseAudio]] together with {{Pkg|pavucontrol}} or [[OSS]]. For OSS, see [[OSS#Applications that use GStreamer]].<br />
<br />
If you did need to change the default soundcard, logout to ensure that the changes take effect.<br />
<br />
===== Change default sound card in Xfce4 mixer =====<br />
<br />
In some cases (when using [[PulseAudio]] or {{AUR|xfce4-volumed}} for instance) it might be necessary to change the default sound card in Xfce4 Mixer in order for volume control to work as expected. [http://grumbel.blogspot.co.uk/2011/10/fixing-volume-control-in-xfce4.html]<br />
<br />
To change the default sound card, open ''xfce4-settings-editor'' and navigate to '''xfce4-mixer''' and check the entries under '''sound-cards'''. Locate the correct entry for the card you are using and then replace the values of '''sound-card''' and '''active-card''' with the entry. If you are using PulseAudio then the entry will likely be similar to the following: '''PlaybackInternalAudioAnalogStereoPulseAudioMixer'''. Then logout for the changes to take effect.<br />
<br />
==== Keyboard volume buttons ====<br />
<br />
If the {{Pkg|xfce4-mixer}} package is version {{ic|4.10.0-3}} or greater, then the mixer panel applet provides the ability to control the volume using the keyboard. However, volume notifications will not be shown. Alternatively, {{AUR|xfce4-volumed}} maps volume keys to Xfce4 mixer, and displays notifications through Xfce4-notifyd.<br />
If you are using PulseAudio and you do not wish to use Xfce4 Mixer at all, install {{AUR|xfce4-pulseaudio-plugin}}. This provides a panel applet which has support for keyboard volume control and volume notifications.<br />
<br />
{{Warning|{{AUR|xfce4-pulseaudio-plugin}} might have high CPU usage (~5% on i7 Intel CPU).}}<br />
<br />
For non desktop environment specific alternatives, see [[List of applications#Volume managers]].<br />
<br />
===== Shortcuts =====<br />
<br />
If you are not using an applet or daemon that controls the volume keys, you can map volume control commands to your volume keys manually using Xfce's keyboard settings. For the sound system you are using, see the sections linked to below for the appropriate commands.<br />
*ALSA: see [[Advanced Linux Sound Architecture#Keyboard volume control]].<br />
*PulseAudio: see [[PulseAudio#Keyboard volume control]]<br />
*OSS: see [[OSS#Using multimedia keys with OSS]].<br />
<br />
=== Keyboard Shortcuts ===<br />
<br />
Keyboard shortcuts are defined in two places: ''Settings > Window Manager > Keyboard'', and ''Settings > Keyboard > Shortcuts''.<br />
<br />
=== Polkit Authentication Agent ===<br />
<br />
The {{Pkg|polkit-gnome}} agent will be installed along with {{Pkg|xfce4-session}} and autostarted automatically; no user intervention is required. For more information, see [[Polkit#Authentication agents]].<br />
<br />
A third party polkit authentication agent for Xfce is also available, see {{AUR|xfce-polkit-git}}.<br />
<br />
=== Display blanking ===<br />
<br />
{{Note|1=There are some issues associated with blanking and resuming from blanking in some configurations. See [https://bbs.archlinux.org/viewtopic.php?id=194313&p=2][https://bugzilla.xfce.org/show_bug.cgi?id=11107].}}<br />
<br />
Some programs that are commonly used with Xfce will control monitor blanking and [[DPMS]] (monitor powersaving) settings. They are discussed below.<br />
<br />
;Xfce Power Manager<br />
Xfce Power Manager will control blanking and DPMS settings. These settings can be configured by running ''xfce4-power-manager-settings'' and clicking the ''Display'' tab. Note that unticking the ''Handle display power management'' option means that the Power Manager will disable DPMS - it does not mean that the Power Manager will relinquish control of DPMS. Also note that it will not disable screen blanking. To disable both blanking and DPMS, right click on the power manager system tray icon or left click on the panel applet and make sure that the option labelled ''Presentation mode'' is ticked.<br />
<br />
;XScreenSaver<br />
See [[XScreenSaver#DPMS and blanking settings]]. Note that if XScreenSaver is running alongside Xfce Power Manager, it may not be entirely clear which application is in control of blanking and DPMS as both applications are competing for control of the same settings. Therefore, in a situation where it is important that the monitor not be blanked (when watching a film for instance), it is advisable to disable blanking and DPMS through both applications.<br />
<br />
;xset<br />
If neither of the above applications are running, then blanking and DPMS settings can be controlled using the ''xset'' command, see [[DPMS#Modifying DPMS and screensaver settings using xset]].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Hide partitions from thunar and xfdesktop ===<br />
<br />
See [[Udisks#Hide selected partitions]].<br />
<br />
=== Screenshots ===<br />
<br />
Xfce has its own screenshot tool, {{pkg|xfce4-screenshooter}}. It is part of the {{grp|xfce4-goodies}} group.<br />
<br />
Go to ''Applications > Settings > Keyboard'', ''Application Shortcuts''. Add the {{ic|xfce4-screenshooter -f}} (or {{ic|-w}} for the active window) command to use the {{ic|Print}} key in order to take fullscreen screenshots. See screenshooter's man page for other optional arguments.<br />
<br />
Alternatively, an independent screenshot program like [[Taking a screenshot#scrot|scrot]] can be used.<br />
<br />
=== Disable Terminal F1 and F11 shortcuts ===<br />
<br />
The xfce terminal binds F1 and F11 to help and fullscreen, respectively, which can make using programs like htop difficult. To disable those shortcuts, create or edit its configuration file, then log out and log back in. F10 can disabled in the Preferences menu.<br />
<br />
{{hc|~/.config/xfce4/terminal/accels.scm|<br />
(gtk_accel_path "<Actions>/terminal-window/fullscreen" "")<br />
(gtk_accel_path "<Actions>/terminal-window/contents" "")<br />
}}<br />
<br />
=== Terminal color themes or palettes ===<br />
<br />
Terminal color themes or palettes can be changed in GUI under Appearance tab in Preferences. These are the colors that are available to most console applications like [[Emacs]], [[Vi]] and so on. Their settings are stored individually for each system user in {{ic|~/.config/xfce4/terminal/terminalrc}} file. There are also so many other themes to choose from. Check forum thread [https://bbs.archlinux.org/viewtopic.php?id=51818 Terminal Colour Scheme Screenshots] for hundreds of available choices and themes.<br />
<br />
==== Changing default color theme ====<br />
<br />
XFCE's {{ic|extra/terminal}} package comes with a darker color palette. To change this, append the following in your terminalrc file for a lighter color theme, that is always visible in darker Terminal backgrounds.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
ColorPalette5=#38d0fcaaf3a9<br />
ColorPalette4=#e013a0a1612f<br />
ColorPalette2=#d456a81b7b42<br />
ColorPalette6=#ffff7062ffff<br />
ColorPalette3=#7ffff7bd7fff<br />
ColorPalette13=#82108210ffff<br />
<br />
==== Terminal tango color theme ====<br />
<br />
To switch to tango color theme, open with your favorite editor<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
And add(replace) these lines:<br />
<br />
ColorForeground=White<br />
ColorBackground=#323232323232<br />
ColorPalette1=#2e2e34343636<br />
ColorPalette2=#cccc00000000<br />
ColorPalette3=#4e4e9a9a0606<br />
ColorPalette4=#c4c4a0a00000<br />
ColorPalette5=#34346565a4a4<br />
ColorPalette6=#757550507b7b<br />
ColorPalette7=#060698989a9a<br />
ColorPalette8=#d3d3d7d7cfcf<br />
ColorPalette9=#555557575353<br />
ColorPalette10=#efef29292929<br />
ColorPalette11=#8a8ae2e23434<br />
ColorPalette12=#fcfce9e94f4f<br />
ColorPalette13=#72729f9fcfcf<br />
ColorPalette14=#adad7f7fa8a8<br />
ColorPalette15=#3434e2e2e2e2<br />
ColorPalette16=#eeeeeeeeecec<br />
<br />
=== Colour management ===<br />
<br />
Xfce has no native support for colour management. [https://bugzilla.xfce.org/show_bug.cgi?id=8559] See [[ICC profiles]] for alternatives.<br />
<br />
=== Multiple monitors ===<br />
<br />
As of {{Pkg|xfce4-settings}} version 4.11.4, Xfce has support for multiple monitors. Settings can be configured in the ''Applications'' -> ''Settings'' -> ''Display'' dialog. For more information, see the [http://docs.xfce.org/xfce/xfce4-settings/display display] article from the Xfce documentation.<br />
<br />
=== SSH agents ===<br />
<br />
By default Xfce 4.10 will try to load gpg-agent or ssh-agent in that order during session initialization. To disable this, create an xfconf key using the following command:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false<br />
<br />
To force using ssh-agent even if gpg-agent is installed, run the following instead:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s ssh-agent<br />
<br />
To use [[GNOME Keyring]], simply tick the checkbox ''Launch GNOME services on startup'' in the ''Advanced'' tab of ''Session Manager'' in Xfce's settings. This will also disable gpg-agent and ssh-agent.<br />
<br />
Source: http://docs.xfce.org/xfce/xfce4-session/advanced<br />
<br />
=== Scroll a background window without shifting focus on it ===<br />
<br />
Go to ''Main Menu > Settings > Window Manager Tweaks > Accessibility'' tab.<br />
Uncheck ''Raise windows when any mouse button is pressed''.<br />
<br />
=== Mouse button modifier ===<br />
<br />
By default, the mouse button modifier in Xfce is set to {{ic|Alt}}. This can be changed with ''xfconf-query''. For instance, the following command will set the {{ic|Super}} key as the mouse button modifier:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"<br />
<br />
Strictly speaking, using multiple modifiers is not supported. However, as a workaround, multiple modifiers can be specified if the key names are separated with {{ic|><}}. For instance, to set {{ic|Ctrl+Alt}} as the mouse button modifier, you can use the following command:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"<br />
<br />
== Troubleshooting ==<br />
<br />
=== Action buttons are missing icons ===<br />
<br />
This happens if icons for some actions (Suspend, Hibernate) are missing from the icon theme, or do not have the expected names. To fix this, install an icon theme which has the necessary icons already added; see [[Icons#Xfce icons]]. <br />
<br />
Then, you can switch to that icon theme using Applications -> Settings -> Appearance -> Icons.<br />
<br />
Alternatively you can use the required icons provided by the icon theme you installed in your current icon theme. To do so, you first need to find out what the currently used icon theme is called. You can do so by using the command below:<br />
<br />
$ xfconf-query -c xsettings -p /Net/IconThemeName<br />
<br />
Then set the following variable:<br />
<br />
$ icontheme=/usr/share/icons/''theme-name''<br />
<br />
where ''theme-name'' is the name of the current icon theme.<br />
<br />
Then create symbolic links from the current icon theme into the icon theme providing the icons (this example assumes the icons are being provided by the {{AUR|elementary-xfce-icons}} theme.)<br />
<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend.svg ${icontheme}/16x16/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend-hibernate.svg ${icontheme}/16x16/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend.svg ${icontheme}/22x22/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend-hibernate.svg ${icontheme}/22x22/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend.svg ${icontheme}/24x24/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend-hibernate.svg ${icontheme}/24x24/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend.svg ${icontheme}/48x48/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend-hibernate.svg ${icontheme}/48x48/actions/system-hibernate.svg<br />
<br />
Log out and in again, and you should see icons for all actions.<br />
<br />
=== Desktop icons rearrange themselves ===<br />
<br />
At certain events (such as opening the panel settings dialog) icons on the desktop rearrange themselves. This is because icon positions are determined by files in the {{ic|~/.config/xfce4/desktop/}} directory. Each time a change is made to the desktop (icons are added or removed or change position) a new file is generated in this directory and these files can conflict.<br />
<br />
To solve the problem, navigate to the directory and delete all the files other than the one which correctly defines the icon positions. You can determine which file defines the correct icon positions by opening it and examining the locations of the icons. The topmost row is defined as {{ic|row 0}} and the leftmost column is defined by {{ic|col 0}}. Therefore an entry of:<br />
<br />
[Firefox]<br />
row=3<br />
col=0<br />
<br />
means that the Firefox icon will be located on the 4th row of the leftmost column.<br />
<br />
=== GTK themes not working with multiple monitors ===<br />
<br />
Some configuration tools may corrupt displays.xml, which results in GTK themes under ''Applications Menu > Settings > Appearance'' ceasing to work. To fix the issue, delete {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml}} and reconfigure your screens.<br />
<br />
=== Icons do not appear in right-click menus ===<br />
<br />
{{Note|Despite the deprecation of GConf, this method does still work.}}<br />
<br />
Users may find that icons do not appear when right-clicking options within some applications, including those made with [[Qt]]. This problem only appears to happen within Xfce. Run these two commands:<br />
<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true<br />
<br />
=== Keyboard settings are not saved in xkb-plugin ===<br />
<br />
There is a bug in {{Pkg|xfce4-xkb-plugin}} ''0.5.4.1-1'' which causes it to lose keyboard, layout switching and compose key settings. [https://bugzilla.xfce.org/show_bug.cgi?id=10226] As a workaround, enable ''Use system defaults'' in {{ic|xfce4-keyboard-settings}}, then reconfigure ''xfce4-xkb-plugin''.<br />
<br />
=== NVIDIA and xfce4-sensors-plugin ===<br />
<br />
To detect and use sensors of nvidia gpu you need to install {{Pkg|libxnvctrl}} and then rebuild {{Pkg|xfce4-sensors-plugin}} with [[ABS]]. You also have the option of using {{AUR|xfce4-sensors-plugin-nvidia}} which replaces {{Pkg|xfce4-sensors-plugin}}.<br />
<br />
=== Panel applets keep being aligned on the left ===<br />
<br />
Add a separator someplace before the right end and set its "expand" property. [https://forums.linuxmint.com/viewtopic.php?f=110&t=155602}]<br />
<br />
=== Preferred Applications preferences have no effect ===<br />
<br />
Most applications rely on [[xdg-open]] for opening a preferred application for a given file or URL.<br />
<br />
In order for xdg-open and xdg-settings to detect and integrate with the Xfce desktop environment correctly, you need to [[install]] the {{Pkg|xorg-xprop}} package.<br />
<br />
If you do not do that, your preferred applications preferences (set by exo-preferred-applications) will not be obeyed.<br />
Installing the package and allowing ''xdg-open'' to detect that you are running Xfce makes it forward all calls to ''exo-open'' instead, which correctly uses all your preferred applications preferences.<br />
<br />
To make sure xdg-open integration is working correctly, ask ''xdg-settings'' for the default web browser and see what the result is:<br />
<br />
# xdg-settings get default-web-browser<br />
<br />
If it replies with:<br />
<br />
xdg-settings: unknown desktop environment<br />
<br />
it means that it has failed to detect Xfce as your desktop environment, which is likely due to a missing {{Pkg|xorg-xprop}} package.<br />
<br />
=== Restore default settings ===<br />
<br />
If for any reason you need to revert back: to the default settings, rename {{ic|~/.config/xfce4-session/}} and {{ic|~/.config/xfce4/}}<br />
<br />
$ mv ~/.config/xfce4-session/ ~/.config/xfce4-session-bak<br />
$ mv ~/.config/xfce4/ ~/.config/xfce4-bak<br />
<br />
Relogin for changes to take effect. If you get {{ic|Unable to load a failsafe session}} upon login, see the [[#Session failure]] section.<br />
<br />
=== Session failure ===<br />
<br />
Symptoms include:<br />
<br />
* The mouse is an X and/or does not appear at all;<br />
* Window decorations have disappeared and windows cannot be closed;<br />
* ({{ic|xfwm4-settings}}) will not start, reporting {{ic|These settings cannot work with your current window manager (unknown)}};<br />
* Errors reported by a [[display manager]] such as {{ic|No window manager registered on screen 0}}.<br />
* Unable to load a failsafe session:<br />
<br />
Unable to load a failsafe session.<br />
Unable to determine failsafe session name. Possible causes: xfconfd isn't running (D-Bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (must include "/etc"), or xfce4-session is installed incorrectly. <br />
<br />
Restarting xfce or rebooting your system may solve the problem, but a corrupt session is the likely cause. Delete the session folder:<br />
<br />
$ rm -r ~/.cache/sessions/<br />
<br />
Also make sure that the relevant folders in {{ic|$HOME}} are owned by the user starting {{ic|xfce4}}. See [[Chown]].<br />
<br />
=== Fonts in window title crashing xfce4-title ===<br />
<br />
[[Install]] {{Pkg|ttf-droid}} and {{Pkg|ttf-dejavu}}. See also {{Bug|44382}}.<br />
<br />
=== Laptop lid settings ignored ===<br />
<br />
You may find that the lid close settings in Xfce4 Power Manager are ignored, meaning that the laptop will always suspend on lid close, no matter what settings are chosen in the power manager. This is because the power manager is not set to handle lid close events by default. Instead, logind handles the lid close event. To change this behavior so that the the power manager handles lid close events, execute the following command:<br />
$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false<br />
Note that each time the laptop lid settings are changed in the power manager, this setting will be reset.<br />
<br />
=== Rendering issues with Adwaita theme ===<br />
<br />
Since the upgrade of gnome-themes-standard from 3.18.0-1 version to 3.20.0-1 the Adwaita theme exhibits several issues when being used in Xfce, like a frame around the notification area and dark background of the tooltip in eclipse. <br />
<br />
A ugly solution is to downgrade the {{Pkg|gnome-themes-standard}} to the old 3.18.0-1 meanwhile. The package can be downloaded at: <br />
$ wget <nowiki>https://archive.archlinux.org/repos/2016/04/08/extra/os/$(uname -m)/gnome-themes-standard-3.18.0-1-$(uname -m).pkg.tar.xz</nowiki><br />
and installed via pacman's {{ic|-U}} option.<br />
<br />
== See also ==<br />
<br />
* [http://www.xfce.org/about/ Xfce - About]<br />
* http://docs.xfce.org/ - The complete documentation.<br />
* [http://www.xfce-look.org/ Xfce-Look] - Themes, wallpapers, and more.<br />
* [http://xfce.wikia.com/wiki/Frequently_Asked_Questions Xfce Wikia] - How to edit the auto generated menu with the menu editor<br />
* [http://wiki.xfce.org Xfce Wiki]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Xfce_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=438805Xfce (한국어)2016-06-23T15:13:58Z<p>Sukbeom: /* Desktop */</p>
<hr />
<div>[[Category:Desktop environments (한국어)]]<br />
[[cs:Xfce]]<br />
[[de:Xfce]]<br />
[[es:Xfce]]<br />
[[fr:Xfce]]<br />
[[it:Xfce]]<br />
[[ja:Xfce]]<br />
[[pl:Xfce]]<br />
[[ru:Xfce]]<br />
[[tr:Xfce Masaüstü Ortamı]]<br />
[[uk:Xfce]]<br />
[[zh-CN:Xfce]]<br />
[[ko:Xfce]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Window manager}}<br />
{{Related|Xfwm}}<br />
{{Related|Thunar}}<br />
{{Related|LXDE}}<br />
{{Related|GNOME}}<br />
{{Related articles end}}<br />
<br />
[http://www.xfce.org Xfce]는 현재 GTK+ 2를 기반으로 하는 모듈식의 저용량 [[Desktop environment|데스크탑 환경]]이다. 완벽한 사용자 경험을 제공하기 위해 Xfce는 창 관리자, 파일 관리자, 데스크탑과 패널을 포함한다.<br />
<br />
== 설치하기 ==<br />
<br />
{{Grp|xfce4}} 그룹을 [[Install|설치]]한다. 추가 플러그인과 {{Pkg|mousepad}} 편집기와 같은 유용한 유틸리티를 설치하고자 하는 경우 {{Grp|xfce4-goodies}} 그룹으로 설치할 수 있다. Xfce는 [[Xfwm]]을 기본 창 관리자로 사용한다.<br />
<br />
== Xfce 시작하기 ==<br />
<br />
[[display manager]]의 선택 메뉴에서 ''Xfce Session'' 을 선택하거나 [[Xinitrc]]에 {{ic|exec startxfce4}}를 추가한다.<br />
<br />
{{주의|{{ic|xfce4-session}}을 직접 실행하지 않는다. {{ic|startxfce4}}의 호출이 올바른 실행법이며 해당 명령어에서 단계적으로 {{ic|xfce4-session}}을 적절한 시기에 호출한다.}}<br />
<br />
== 설정하기 ==<br />
<br />
Xfce는 설정 옵션들을 [http://docs.xfce.org/xfce/xfconf/start Xfconf]에 저장한다. 해당 옵션들을 설정하는 방법에는 다음과 같은 몇 가지 방법들이 있다.<br />
<br />
* 메인 메뉴에서 설정([http://docs.xfce.org/xfce/xfce4-settings/start Settings])을 클릭하고 설정하고자 하는 카테고리를 클릭한다. 카테고리들은 대부분 {{ic|/usr/bin/xfce4-*}}와 {{ic|/usr/bin/xfdesktop-settings}}에 위치한 프로그램들이다.<br />
* {{ic|xfce4-settings-editor}}을 통해 수정가능한 설정을 확인할 수 있다. 여기서 수정된 사항들은 곧바로 적용된다. {{ic|xfconf-query}}를 사용하여 커맨드라인에서 설정을 변경할 수도 있다. 자세한 사항은 [http://docs.xfce.org/xfce/xfconf/xfconf-query the documentation]을 참고하기 바란다.<br />
* 설정은 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/}} 에 XML 파일로 저장되며 해당 파일은 직접적으로 수정될 수 있다. 하지만 변경된 사항은 ''곧바로 적용되지 않는다''.<br />
<br />
=== 메뉴 ===<br />
<br />
==== Whisker 메뉴 ====<br />
<br />
{{Pkg|xfce4-whiskermenu-plugin}} is an alternate application launcher. It shows a list of favorites, browses through all installed applications through category buttons, and supports fuzzy searching.<br />
{{Pkg|xfce4-whiskermenu-plugin}} 는 xfce의 또다른 어플리케이션 런처이다. 즐겨찾기 목록을 보여주고, 카테고리 버튼을 통해 설치된 프로그램을 탐색할 수 있으며 퍼지 검색을 지원한다.<br />
<br />
==== 메뉴 편집 ====<br />
<br />
메뉴를 편집하기 위해서 다음과 같은 그래픽 인터페이스 기반의 툴들을 사용할 수 있다:<br />
<br />
* {{App|XAME|Xfce 메뉴 편집용으로 디자인 된 Gambas 기반의 GUI 툴. 오직 Xfce에서만 사용가능하며 다른 Desktop Environment에서는 작동하지 않는다. |http://www.redsquirrel87.com/XAME.html|{{AUR|xame}}}}<br />
* {{App|MenuLibre|깔끔하고 사용하기 쉬운 인터페이스로 최신 기능을 제공하는 고급 메뉴 편집기|https://launchpad.net/menulibre|{{AUR|menulibre}}}}.<br />
* {{App|Alacarte|GNOME용 메뉴 편집기|http://www.gnome.org/|{{Pkg|alacarte}}}}<br />
<br />
다른 방법으로, {{ic|~/.config/menus/xfce-applications.menu}} 파일을 직접 만들어 메뉴를 관리할 수 있다. 다음의 예제를 참고한다.<br />
<br />
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"<br />
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"><br />
<br />
<Menu><br />
<Name>Xfce</Name><br />
<MergeFile type="parent">/etc/xdg/menus/xfce-applications.menu</MergeFile><br />
<br />
<Exclude><br />
<Filename>xfce4-run.desktop</Filename><br />
<Filename>exo-terminal-emulator.desktop</Filename><br />
<Filename>exo-file-manager.desktop</Filename><br />
<Filename>exo-mail-reader.desktop</Filename><br />
<Filename>exo-web-browser.desktop</Filename><br />
<Filename>xfce4-about.desktop</Filename><br />
<Filename>xfhelp4.desktop</Filename><br />
</Exclude><br />
<br />
<Layout><br />
<Merge type="all"/><br />
<Separator/><br />
<Menuname>Settings</Menuname><br />
<Separator/><br />
<Filename>xfce4-session-logout.desktop</Filename><br />
</Layout><br />
</Menu><br />
<br />
{{ic|<MergeFile>}} 태그는 기본 Xfce 메뉴를 포함한다.<br />
<br />
{{ic|<Exclude>}} 태그는 메뉴로부터 태그 안의 어플리케이션을 제외시킨다. 예제에서는 Xfce의 기본 바로가기만을 제외시켰지만 {{ic|firefox.desktop}} 혹은 다른 어플리케이션도 제외시킬 수 있다.<br />
<br />
{{ic|<Layout>}} 태그는 메뉴의 레이아웃을 정의한다. 어플리케이션들은 폴더 내 혹은 사용자가 원하는 곳에 배치될 수 있다. 자세한 정보는 [http://wiki.xfce.org/howto/customize-menu Xfce wiki]를 참고한다.<br />
<br />
추가적으로 {{ic|.desktop}} 파일들을 수정하여 Xfce 메뉴를 변경할 수도 있다. 메뉴 엔트리를 숨기기 위해서는 [[Desktop entries#Hide desktop entries]]를 참고한다. {{ic|1=Categories=}} desktop entry를 수정하여 어플리케이션의 카테고리도 변경이 가능하다. 관련 내용은 [[Desktop entries#File example]]을 참고한다.<br />
<br />
=== 바탕화면 ===<br />
<br />
==== 투명한 아이콘 제목 배경색 ====<br />
<br />
바탕화면에 있는 아이콘 이름 부분의 기본 하얀색 배경을 좀 더 배경과 어울리게 바꾸기 위해서, {{ic|~/.gtkrc-2.0}} 파일을 생성하거나 편집한다:<br />
<br />
{{bc|<nowiki><br />
style "xfdesktop-icon-view" {<br />
XfdesktopIconView::label-alpha = 10<br />
base[NORMAL] = "#000000"<br />
base[SELECTED] = "#71B9FF"<br />
base[ACTIVE] = "#71B9FF"<br />
fg[NORMAL] = "#fcfcfc"<br />
fg[SELECTED] = "#ffffff"<br />
fg[ACTIVE] = "#ffffff"<br />
}<br />
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"<br />
</nowiki>}}<br />
<br />
==== 오른쪽 마우스 클릭 메뉴에서 Thunar 옵션 제거 ====<br />
<br />
다음 명령어를 실행한다.<br />
<br />
$ xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0<br />
<br />
==== 프로그램 강제 종료 단축키 ====<br />
<br />
Xfce에서는 프로그램이 멈추었을 때 강제 종료하기 위한 기본 단축키가 없다. <br />
하지만 {{Pkg|xorg-xkill}} 패키지의 {{ic|xkill}} 명령어를 사용하여 열려있는 창을 강제로 닫을 수 있다. 현재 활성화 상태의 창이라면(현재 창이 열려 있고 포커스를 가지고 있는 경우), {{Pkg|xdotool}}를 사용하여 활성화 상태의 창을 강제종료할 수 있다.<br />
<br />
$ xdotool getwindowfocus windowkill<br />
<br />
또 다른 방법으로, 다음 명령어을 사용할 수 있다.<br />
<br />
$ xkill -id "$(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"<br />
<br />
단축키를 추가하기 위해서는 ''Settings > Keyboard'' 혹은 {{pkg|xbindkeys}} 어플리케이션을 사용한다.<br />
<br />
=== Session ===<br />
<br />
==== Startup applications ====<br />
<br />
To launch custom applications when Xfce starts up, click the ''Applications Menu > Settings > Settings Manager'' and then choose the ''Session and Startup'' option and click the tab ''Application Autostart''.<br />
You will see a list of programs that get launched on startup. To add an entry, click the ''Add'' button and fill out the form, specifying the path to an executable you want to run.<br />
<br />
Alternatively, add the commands you wish to run (including setting environment variables) to [[xinitrc]] (or [[xprofile]] when a [[display manager]] is being used).<br />
<br />
===== Delay application startup =====<br />
<br />
Sometimes it might be useful to delay the startup of an application. Specifying a command such as {{ic|sleep 3 && command}} under ''Application Autostart'' does not work. As a workaround, one can use the following syntax instead:<br />
<br />
sh -c "sleep 3 && command"<br />
<br />
==== Lock the screen ====<br />
<br />
To lock an Xfce4 session through the ''xflock4'' script one of {{Pkg|xscreensaver}}, {{Pkg|gnome-screensaver}}, {{Pkg|slock}} or {{Pkg|xlockmore}} packages needs to be installed. <br />
Alternatively you can set a lock command with<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l" --create -t string''<br />
<br />
If you want to update the command, you can use <br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l"<br />
<br />
See [[List of applications/Security#Screen lockers]] for a comprehensive list of screen lockers.<br />
<br />
{{Tip|The {{Pkg|light-locker}} session locker integrates with {{Pkg|xfce4-power-manager}}. If light-locker is installed, a ''Security'' tab is added to the power manager settings and the existing ''Lock screen when system is going for sleep'' setting is relocated under the ''Security'' tab.}}<br />
<br />
{{Note|1=The ''xflock4'' script can also be modified manually as described in the post [https://bbs.archlinux.org/viewtopic.php?id=189484]. To avoid having the changes overwritten on upgrades, you might wish to copy ''xflock4'' to {{ic|/usr/local/bin}} and make the changes to that copy as this will take precedence over the packaged version in {{ic|/usr/bin}}.}}<br />
<br />
==== User switching ====<br />
<br />
{{Note|For the User Switch action button to work without GDM, a workaround is required:<br />
* For LXDM - [[LXDM#Simultaneous users and switching users]].<br />
* For LightDM - [[LightDM#User switching under Xfce4]].}}<br />
<br />
Xfce4 has support for user switching when used with a [[Display manager]] that has this functionality - examples being [[LightDM]] and [[GDM]]. Please consult your display manager's wiki page for more information. When you have a display manager installed and configured correctly you can switch users from the 'action buttons' menu item in the panel.<br />
<br />
==== Disable saved sessions ====<br />
<br />
Per user, saved sessions can be disabled by executing the following:<br />
$ xfconf-query -t bool -c xfce4-session -p /general/SaveOnExit -s false<br />
Then navigate to ''Applications'' -> ''Settings'' -> ''Session and Startup'' -> ''Sessions'' and click the ''Clear saved sessions'' button.<br />
<br />
{{Tip|If the command above does not change the setting persistently, use the following command instead: {{ic|xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false}}}}<br />
<br />
Alternatively, Xfce [https://wiki.xfce.org/howto/kiosk_mode kiosk mode] can be used to disable the saving of sessions systemwide. To disable sessions, create or edit the file {{ic|/etc/xdg/xfce4/kiosk/kioskrc}} and add the following:<br />
<br />
[xfce4-session]<br />
SaveSession=NONE<br />
<br />
If kiosk mode is not working, the user can set read only permissions for the sessions directory:<br />
<br />
$ rm ~/.cache/sessions/* && chmod 500 ~/.cache/sessions<br />
<br />
This will prevent Xfce from saving any sessions despite any configuration that specifies otherwise.<br />
<br />
==== Default window manager ====<br />
<br />
{{Note|For the changes to take effect, you will need to clear the saved sessions and ensure that session saving is disabled when logging out for the first time. Once the window manager of choice is running, session saving can be enabled again.}}<br />
<br />
The files specifying the default window manager are found in the following locations:<br />
*{{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - per user<br />
*{{ic|/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - systemwide<br />
<br />
The default window manager for the user can be set easily using ''xfconf-query'':<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa '''wm_name'''<br />
<br />
If you want to start the window manager with command line options, see the command below:<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -t string -s '''wm_name''' -s '''--wm-option'''<br />
If you need more command line options, simply add more {{ic|-t string}} and {{ic|-s '''--wm-option'''}} arguments to the command.<br />
<br />
If you want to change the default window manager systemwide, edit the file specified above manually, changing ''xfwm4'' to the preferred window manager and adding more {{ic|1=<value type="string" value="'''--wm-option'''"/>}} lines for extra command line options if needed.<br />
<br />
You can also change the window manager by autostarting {{ic|'''wm_name''' --replace}} using the autostart facility or by running {{ic|'''wm_name''' --replace &}} in a terminal and making sure the session is saved on logout. Be aware though that this method does not truly change the default manager, it merely replaces it at login. Note that if you are using the autostart facility, you should disable saved sessions as this could lead to the new window manager being started twice after the default window manager.<br />
<br />
=== Theming ===<br />
<br />
XFCE themes are available at [http://www.xfce-look.org xfce-look.org]. ''Xfwm'' themes are stored in {{ic|/usr/share/themes/xfce4}}, and set in ''Settings > Window Manager''. [[GTK+]] themes are set in ''Settings > Appearance''.<br />
<br />
To achieve a uniform look for all applications, see [[Uniform look for Qt and GTK applications]].<br />
<br />
See also [[Cursor themes]], [[Icons]], and [[Font configuration]].<br />
<br />
=== Sound ===<br />
<br />
==== Xfce4 mixer ====<br />
<br />
{{Note|Xfce4 mixer and Xfce4 volumed are no longer being maintained upstream as they cannot be ported to GStreamer 1.0. For more information, see the 4.12 [http://www.xfce.org/about/news/?post&#61;1425081600 news post].}}<br />
<br />
Xfce4 mixer, provided by {{Pkg|xfce4-mixer}}, is the GUI mixer app and panel plugin from the Xfce team. It is part of the xfce4 group. For [[PulseAudio]] and [[OSS]] support, you will need to install {{Pkg|gstreamer0.10-good-plugins}} if it is not installed already.<br />
<br />
You might need to change the default sound card for Xfce4 mixer to function correctly. For further details, such as how to set the default sound card, see [[Advanced Linux Sound Architecture#Set the default sound card]]. Alternatively you can use [[PulseAudio]] together with {{Pkg|pavucontrol}} or [[OSS]]. For OSS, see [[OSS#Applications that use GStreamer]].<br />
<br />
If you did need to change the default soundcard, logout to ensure that the changes take effect.<br />
<br />
===== Change default sound card in Xfce4 mixer =====<br />
<br />
In some cases (when using [[PulseAudio]] or {{AUR|xfce4-volumed}} for instance) it might be necessary to change the default sound card in Xfce4 Mixer in order for volume control to work as expected. [http://grumbel.blogspot.co.uk/2011/10/fixing-volume-control-in-xfce4.html]<br />
<br />
To change the default sound card, open ''xfce4-settings-editor'' and navigate to '''xfce4-mixer''' and check the entries under '''sound-cards'''. Locate the correct entry for the card you are using and then replace the values of '''sound-card''' and '''active-card''' with the entry. If you are using PulseAudio then the entry will likely be similar to the following: '''PlaybackInternalAudioAnalogStereoPulseAudioMixer'''. Then logout for the changes to take effect.<br />
<br />
==== Keyboard volume buttons ====<br />
<br />
If the {{Pkg|xfce4-mixer}} package is version {{ic|4.10.0-3}} or greater, then the mixer panel applet provides the ability to control the volume using the keyboard. However, volume notifications will not be shown. Alternatively, {{AUR|xfce4-volumed}} maps volume keys to Xfce4 mixer, and displays notifications through Xfce4-notifyd.<br />
If you are using PulseAudio and you do not wish to use Xfce4 Mixer at all, install {{AUR|xfce4-pulseaudio-plugin}}. This provides a panel applet which has support for keyboard volume control and volume notifications.<br />
<br />
{{Warning|{{AUR|xfce4-pulseaudio-plugin}} might have high CPU usage (~5% on i7 Intel CPU).}}<br />
<br />
For non desktop environment specific alternatives, see [[List of applications#Volume managers]].<br />
<br />
===== Shortcuts =====<br />
<br />
If you are not using an applet or daemon that controls the volume keys, you can map volume control commands to your volume keys manually using Xfce's keyboard settings. For the sound system you are using, see the sections linked to below for the appropriate commands.<br />
*ALSA: see [[Advanced Linux Sound Architecture#Keyboard volume control]].<br />
*PulseAudio: see [[PulseAudio#Keyboard volume control]]<br />
*OSS: see [[OSS#Using multimedia keys with OSS]].<br />
<br />
=== Keyboard Shortcuts ===<br />
<br />
Keyboard shortcuts are defined in two places: ''Settings > Window Manager > Keyboard'', and ''Settings > Keyboard > Shortcuts''.<br />
<br />
=== Polkit Authentication Agent ===<br />
<br />
The {{Pkg|polkit-gnome}} agent will be installed along with {{Pkg|xfce4-session}} and autostarted automatically; no user intervention is required. For more information, see [[Polkit#Authentication agents]].<br />
<br />
A third party polkit authentication agent for Xfce is also available, see {{AUR|xfce-polkit-git}}.<br />
<br />
=== Display blanking ===<br />
<br />
{{Note|1=There are some issues associated with blanking and resuming from blanking in some configurations. See [https://bbs.archlinux.org/viewtopic.php?id=194313&p=2][https://bugzilla.xfce.org/show_bug.cgi?id=11107].}}<br />
<br />
Some programs that are commonly used with Xfce will control monitor blanking and [[DPMS]] (monitor powersaving) settings. They are discussed below.<br />
<br />
;Xfce Power Manager<br />
Xfce Power Manager will control blanking and DPMS settings. These settings can be configured by running ''xfce4-power-manager-settings'' and clicking the ''Display'' tab. Note that unticking the ''Handle display power management'' option means that the Power Manager will disable DPMS - it does not mean that the Power Manager will relinquish control of DPMS. Also note that it will not disable screen blanking. To disable both blanking and DPMS, right click on the power manager system tray icon or left click on the panel applet and make sure that the option labelled ''Presentation mode'' is ticked.<br />
<br />
;XScreenSaver<br />
See [[XScreenSaver#DPMS and blanking settings]]. Note that if XScreenSaver is running alongside Xfce Power Manager, it may not be entirely clear which application is in control of blanking and DPMS as both applications are competing for control of the same settings. Therefore, in a situation where it is important that the monitor not be blanked (when watching a film for instance), it is advisable to disable blanking and DPMS through both applications.<br />
<br />
;xset<br />
If neither of the above applications are running, then blanking and DPMS settings can be controlled using the ''xset'' command, see [[DPMS#Modifying DPMS and screensaver settings using xset]].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Hide partitions from thunar and xfdesktop ===<br />
<br />
See [[Udisks#Hide selected partitions]].<br />
<br />
=== Screenshots ===<br />
<br />
Xfce has its own screenshot tool, {{pkg|xfce4-screenshooter}}. It is part of the {{grp|xfce4-goodies}} group.<br />
<br />
Go to ''Applications > Settings > Keyboard'', ''Application Shortcuts''. Add the {{ic|xfce4-screenshooter -f}} (or {{ic|-w}} for the active window) command to use the {{ic|Print}} key in order to take fullscreen screenshots. See screenshooter's man page for other optional arguments.<br />
<br />
Alternatively, an independent screenshot program like [[Taking a screenshot#scrot|scrot]] can be used.<br />
<br />
=== Disable Terminal F1 and F11 shortcuts ===<br />
<br />
The xfce terminal binds F1 and F11 to help and fullscreen, respectively, which can make using programs like htop difficult. To disable those shortcuts, create or edit its configuration file, then log out and log back in. F10 can disabled in the Preferences menu.<br />
<br />
{{hc|~/.config/xfce4/terminal/accels.scm|<br />
(gtk_accel_path "<Actions>/terminal-window/fullscreen" "")<br />
(gtk_accel_path "<Actions>/terminal-window/contents" "")<br />
}}<br />
<br />
=== Terminal color themes or palettes ===<br />
<br />
Terminal color themes or palettes can be changed in GUI under Appearance tab in Preferences. These are the colors that are available to most console applications like [[Emacs]], [[Vi]] and so on. Their settings are stored individually for each system user in {{ic|~/.config/xfce4/terminal/terminalrc}} file. There are also so many other themes to choose from. Check forum thread [https://bbs.archlinux.org/viewtopic.php?id=51818 Terminal Colour Scheme Screenshots] for hundreds of available choices and themes.<br />
<br />
==== Changing default color theme ====<br />
<br />
XFCE's {{ic|extra/terminal}} package comes with a darker color palette. To change this, append the following in your terminalrc file for a lighter color theme, that is always visible in darker Terminal backgrounds.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
ColorPalette5=#38d0fcaaf3a9<br />
ColorPalette4=#e013a0a1612f<br />
ColorPalette2=#d456a81b7b42<br />
ColorPalette6=#ffff7062ffff<br />
ColorPalette3=#7ffff7bd7fff<br />
ColorPalette13=#82108210ffff<br />
<br />
==== Terminal tango color theme ====<br />
<br />
To switch to tango color theme, open with your favorite editor<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
And add(replace) these lines:<br />
<br />
ColorForeground=White<br />
ColorBackground=#323232323232<br />
ColorPalette1=#2e2e34343636<br />
ColorPalette2=#cccc00000000<br />
ColorPalette3=#4e4e9a9a0606<br />
ColorPalette4=#c4c4a0a00000<br />
ColorPalette5=#34346565a4a4<br />
ColorPalette6=#757550507b7b<br />
ColorPalette7=#060698989a9a<br />
ColorPalette8=#d3d3d7d7cfcf<br />
ColorPalette9=#555557575353<br />
ColorPalette10=#efef29292929<br />
ColorPalette11=#8a8ae2e23434<br />
ColorPalette12=#fcfce9e94f4f<br />
ColorPalette13=#72729f9fcfcf<br />
ColorPalette14=#adad7f7fa8a8<br />
ColorPalette15=#3434e2e2e2e2<br />
ColorPalette16=#eeeeeeeeecec<br />
<br />
=== Colour management ===<br />
<br />
Xfce has no native support for colour management. [https://bugzilla.xfce.org/show_bug.cgi?id=8559] See [[ICC profiles]] for alternatives.<br />
<br />
=== Multiple monitors ===<br />
<br />
As of {{Pkg|xfce4-settings}} version 4.11.4, Xfce has support for multiple monitors. Settings can be configured in the ''Applications'' -> ''Settings'' -> ''Display'' dialog. For more information, see the [http://docs.xfce.org/xfce/xfce4-settings/display display] article from the Xfce documentation.<br />
<br />
=== SSH agents ===<br />
<br />
By default Xfce 4.10 will try to load gpg-agent or ssh-agent in that order during session initialization. To disable this, create an xfconf key using the following command:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false<br />
<br />
To force using ssh-agent even if gpg-agent is installed, run the following instead:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s ssh-agent<br />
<br />
To use [[GNOME Keyring]], simply tick the checkbox ''Launch GNOME services on startup'' in the ''Advanced'' tab of ''Session Manager'' in Xfce's settings. This will also disable gpg-agent and ssh-agent.<br />
<br />
Source: http://docs.xfce.org/xfce/xfce4-session/advanced<br />
<br />
=== Scroll a background window without shifting focus on it ===<br />
<br />
Go to ''Main Menu > Settings > Window Manager Tweaks > Accessibility'' tab.<br />
Uncheck ''Raise windows when any mouse button is pressed''.<br />
<br />
=== Mouse button modifier ===<br />
<br />
By default, the mouse button modifier in Xfce is set to {{ic|Alt}}. This can be changed with ''xfconf-query''. For instance, the following command will set the {{ic|Super}} key as the mouse button modifier:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"<br />
<br />
Strictly speaking, using multiple modifiers is not supported. However, as a workaround, multiple modifiers can be specified if the key names are separated with {{ic|><}}. For instance, to set {{ic|Ctrl+Alt}} as the mouse button modifier, you can use the following command:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"<br />
<br />
== Troubleshooting ==<br />
<br />
=== Action buttons are missing icons ===<br />
<br />
This happens if icons for some actions (Suspend, Hibernate) are missing from the icon theme, or do not have the expected names. To fix this, install an icon theme which has the necessary icons already added; see [[Icons#Xfce icons]]. <br />
<br />
Then, you can switch to that icon theme using Applications -> Settings -> Appearance -> Icons.<br />
<br />
Alternatively you can use the required icons provided by the icon theme you installed in your current icon theme. To do so, you first need to find out what the currently used icon theme is called. You can do so by using the command below:<br />
<br />
$ xfconf-query -c xsettings -p /Net/IconThemeName<br />
<br />
Then set the following variable:<br />
<br />
$ icontheme=/usr/share/icons/''theme-name''<br />
<br />
where ''theme-name'' is the name of the current icon theme.<br />
<br />
Then create symbolic links from the current icon theme into the icon theme providing the icons (this example assumes the icons are being provided by the {{AUR|elementary-xfce-icons}} theme.)<br />
<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend.svg ${icontheme}/16x16/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend-hibernate.svg ${icontheme}/16x16/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend.svg ${icontheme}/22x22/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend-hibernate.svg ${icontheme}/22x22/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend.svg ${icontheme}/24x24/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend-hibernate.svg ${icontheme}/24x24/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend.svg ${icontheme}/48x48/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend-hibernate.svg ${icontheme}/48x48/actions/system-hibernate.svg<br />
<br />
Log out and in again, and you should see icons for all actions.<br />
<br />
=== Desktop icons rearrange themselves ===<br />
<br />
At certain events (such as opening the panel settings dialog) icons on the desktop rearrange themselves. This is because icon positions are determined by files in the {{ic|~/.config/xfce4/desktop/}} directory. Each time a change is made to the desktop (icons are added or removed or change position) a new file is generated in this directory and these files can conflict.<br />
<br />
To solve the problem, navigate to the directory and delete all the files other than the one which correctly defines the icon positions. You can determine which file defines the correct icon positions by opening it and examining the locations of the icons. The topmost row is defined as {{ic|row 0}} and the leftmost column is defined by {{ic|col 0}}. Therefore an entry of:<br />
<br />
[Firefox]<br />
row=3<br />
col=0<br />
<br />
means that the Firefox icon will be located on the 4th row of the leftmost column.<br />
<br />
=== GTK themes not working with multiple monitors ===<br />
<br />
Some configuration tools may corrupt displays.xml, which results in GTK themes under ''Applications Menu > Settings > Appearance'' ceasing to work. To fix the issue, delete {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml}} and reconfigure your screens.<br />
<br />
=== Icons do not appear in right-click menus ===<br />
<br />
{{Note|Despite the deprecation of GConf, this method does still work.}}<br />
<br />
Users may find that icons do not appear when right-clicking options within some applications, including those made with [[Qt]]. This problem only appears to happen within Xfce. Run these two commands:<br />
<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true<br />
<br />
=== Keyboard settings are not saved in xkb-plugin ===<br />
<br />
There is a bug in {{Pkg|xfce4-xkb-plugin}} ''0.5.4.1-1'' which causes it to lose keyboard, layout switching and compose key settings. [https://bugzilla.xfce.org/show_bug.cgi?id=10226] As a workaround, enable ''Use system defaults'' in {{ic|xfce4-keyboard-settings}}, then reconfigure ''xfce4-xkb-plugin''.<br />
<br />
=== NVIDIA and xfce4-sensors-plugin ===<br />
<br />
To detect and use sensors of nvidia gpu you need to install {{Pkg|libxnvctrl}} and then rebuild {{Pkg|xfce4-sensors-plugin}} with [[ABS]]. You also have the option of using {{AUR|xfce4-sensors-plugin-nvidia}} which replaces {{Pkg|xfce4-sensors-plugin}}.<br />
<br />
=== Panel applets keep being aligned on the left ===<br />
<br />
Add a separator someplace before the right end and set its "expand" property. [https://forums.linuxmint.com/viewtopic.php?f=110&t=155602}]<br />
<br />
=== Preferred Applications preferences have no effect ===<br />
<br />
Most applications rely on [[xdg-open]] for opening a preferred application for a given file or URL.<br />
<br />
In order for xdg-open and xdg-settings to detect and integrate with the Xfce desktop environment correctly, you need to [[install]] the {{Pkg|xorg-xprop}} package.<br />
<br />
If you do not do that, your preferred applications preferences (set by exo-preferred-applications) will not be obeyed.<br />
Installing the package and allowing ''xdg-open'' to detect that you are running Xfce makes it forward all calls to ''exo-open'' instead, which correctly uses all your preferred applications preferences.<br />
<br />
To make sure xdg-open integration is working correctly, ask ''xdg-settings'' for the default web browser and see what the result is:<br />
<br />
# xdg-settings get default-web-browser<br />
<br />
If it replies with:<br />
<br />
xdg-settings: unknown desktop environment<br />
<br />
it means that it has failed to detect Xfce as your desktop environment, which is likely due to a missing {{Pkg|xorg-xprop}} package.<br />
<br />
=== Restore default settings ===<br />
<br />
If for any reason you need to revert back: to the default settings, rename {{ic|~/.config/xfce4-session/}} and {{ic|~/.config/xfce4/}}<br />
<br />
$ mv ~/.config/xfce4-session/ ~/.config/xfce4-session-bak<br />
$ mv ~/.config/xfce4/ ~/.config/xfce4-bak<br />
<br />
Relogin for changes to take effect. If you get {{ic|Unable to load a failsafe session}} upon login, see the [[#Session failure]] section.<br />
<br />
=== Session failure ===<br />
<br />
Symptoms include:<br />
<br />
* The mouse is an X and/or does not appear at all;<br />
* Window decorations have disappeared and windows cannot be closed;<br />
* ({{ic|xfwm4-settings}}) will not start, reporting {{ic|These settings cannot work with your current window manager (unknown)}};<br />
* Errors reported by a [[display manager]] such as {{ic|No window manager registered on screen 0}}.<br />
* Unable to load a failsafe session:<br />
<br />
Unable to load a failsafe session.<br />
Unable to determine failsafe session name. Possible causes: xfconfd isn't running (D-Bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (must include "/etc"), or xfce4-session is installed incorrectly. <br />
<br />
Restarting xfce or rebooting your system may solve the problem, but a corrupt session is the likely cause. Delete the session folder:<br />
<br />
$ rm -r ~/.cache/sessions/<br />
<br />
Also make sure that the relevant folders in {{ic|$HOME}} are owned by the user starting {{ic|xfce4}}. See [[Chown]].<br />
<br />
=== Fonts in window title crashing xfce4-title ===<br />
<br />
[[Install]] {{Pkg|ttf-droid}} and {{Pkg|ttf-dejavu}}. See also {{Bug|44382}}.<br />
<br />
=== Laptop lid settings ignored ===<br />
<br />
You may find that the lid close settings in Xfce4 Power Manager are ignored, meaning that the laptop will always suspend on lid close, no matter what settings are chosen in the power manager. This is because the power manager is not set to handle lid close events by default. Instead, logind handles the lid close event. To change this behavior so that the the power manager handles lid close events, execute the following command:<br />
$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false<br />
Note that each time the laptop lid settings are changed in the power manager, this setting will be reset.<br />
<br />
=== Rendering issues with Adwaita theme ===<br />
<br />
Since the upgrade of gnome-themes-standard from 3.18.0-1 version to 3.20.0-1 the Adwaita theme exhibits several issues when being used in Xfce, like a frame around the notification area and dark background of the tooltip in eclipse. <br />
<br />
A ugly solution is to downgrade the {{Pkg|gnome-themes-standard}} to the old 3.18.0-1 meanwhile. The package can be downloaded at: <br />
$ wget <nowiki>https://archive.archlinux.org/repos/2016/04/08/extra/os/$(uname -m)/gnome-themes-standard-3.18.0-1-$(uname -m).pkg.tar.xz</nowiki><br />
and installed via pacman's {{ic|-U}} option.<br />
<br />
== See also ==<br />
<br />
* [http://www.xfce.org/about/ Xfce - About]<br />
* http://docs.xfce.org/ - The complete documentation.<br />
* [http://www.xfce-look.org/ Xfce-Look] - Themes, wallpapers, and more.<br />
* [http://xfce.wikia.com/wiki/Frequently_Asked_Questions Xfce Wikia] - How to edit the auto generated menu with the menu editor<br />
* [http://wiki.xfce.org Xfce Wiki]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Xfce_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=438801Xfce (한국어)2016-06-23T14:52:51Z<p>Sukbeom: /* 메뉴 */</p>
<hr />
<div>[[Category:Desktop environments (한국어)]]<br />
[[cs:Xfce]]<br />
[[de:Xfce]]<br />
[[es:Xfce]]<br />
[[fr:Xfce]]<br />
[[it:Xfce]]<br />
[[ja:Xfce]]<br />
[[pl:Xfce]]<br />
[[ru:Xfce]]<br />
[[tr:Xfce Masaüstü Ortamı]]<br />
[[uk:Xfce]]<br />
[[zh-CN:Xfce]]<br />
[[ko:Xfce]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Window manager}}<br />
{{Related|Xfwm}}<br />
{{Related|Thunar}}<br />
{{Related|LXDE}}<br />
{{Related|GNOME}}<br />
{{Related articles end}}<br />
<br />
[http://www.xfce.org Xfce]는 현재 GTK+ 2를 기반으로 하는 모듈식의 저용량 [[Desktop environment|데스크탑 환경]]이다. 완벽한 사용자 경험을 제공하기 위해 Xfce는 창 관리자, 파일 관리자, 데스크탑과 패널을 포함한다.<br />
<br />
== 설치하기 ==<br />
<br />
{{Grp|xfce4}} 그룹을 [[Install|설치]]한다. 추가 플러그인과 {{Pkg|mousepad}} 편집기와 같은 유용한 유틸리티를 설치하고자 하는 경우 {{Grp|xfce4-goodies}} 그룹으로 설치할 수 있다. Xfce는 [[Xfwm]]을 기본 창 관리자로 사용한다.<br />
<br />
== Xfce 시작하기 ==<br />
<br />
[[display manager]]의 선택 메뉴에서 ''Xfce Session'' 을 선택하거나 [[Xinitrc]]에 {{ic|exec startxfce4}}를 추가한다.<br />
<br />
{{주의|{{ic|xfce4-session}}을 직접 실행하지 않는다. {{ic|startxfce4}}의 호출이 올바른 실행법이며 해당 명령어에서 단계적으로 {{ic|xfce4-session}}을 적절한 시기에 호출한다.}}<br />
<br />
== 설정하기 ==<br />
<br />
Xfce는 설정 옵션들을 [http://docs.xfce.org/xfce/xfconf/start Xfconf]에 저장한다. 해당 옵션들을 설정하는 방법에는 다음과 같은 몇 가지 방법들이 있다.<br />
<br />
* 메인 메뉴에서 설정([http://docs.xfce.org/xfce/xfce4-settings/start Settings])을 클릭하고 설정하고자 하는 카테고리를 클릭한다. 카테고리들은 대부분 {{ic|/usr/bin/xfce4-*}}와 {{ic|/usr/bin/xfdesktop-settings}}에 위치한 프로그램들이다.<br />
* {{ic|xfce4-settings-editor}}을 통해 수정가능한 설정을 확인할 수 있다. 여기서 수정된 사항들은 곧바로 적용된다. {{ic|xfconf-query}}를 사용하여 커맨드라인에서 설정을 변경할 수도 있다. 자세한 사항은 [http://docs.xfce.org/xfce/xfconf/xfconf-query the documentation]을 참고하기 바란다.<br />
* 설정은 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/}} 에 XML 파일로 저장되며 해당 파일은 직접적으로 수정될 수 있다. 하지만 변경된 사항은 ''곧바로 적용되지 않는다''.<br />
<br />
=== 메뉴 ===<br />
<br />
==== Whisker 메뉴 ====<br />
<br />
{{Pkg|xfce4-whiskermenu-plugin}} is an alternate application launcher. It shows a list of favorites, browses through all installed applications through category buttons, and supports fuzzy searching.<br />
{{Pkg|xfce4-whiskermenu-plugin}} 는 xfce의 또다른 어플리케이션 런처이다. 즐겨찾기 목록을 보여주고, 카테고리 버튼을 통해 설치된 프로그램을 탐색할 수 있으며 퍼지 검색을 지원한다.<br />
<br />
==== 메뉴 편집 ====<br />
<br />
메뉴를 편집하기 위해서 다음과 같은 그래픽 인터페이스 기반의 툴들을 사용할 수 있다:<br />
<br />
* {{App|XAME|Xfce 메뉴 편집용으로 디자인 된 Gambas 기반의 GUI 툴. 오직 Xfce에서만 사용가능하며 다른 Desktop Environment에서는 작동하지 않는다. |http://www.redsquirrel87.com/XAME.html|{{AUR|xame}}}}<br />
* {{App|MenuLibre|깔끔하고 사용하기 쉬운 인터페이스로 최신 기능을 제공하는 고급 메뉴 편집기|https://launchpad.net/menulibre|{{AUR|menulibre}}}}.<br />
* {{App|Alacarte|GNOME용 메뉴 편집기|http://www.gnome.org/|{{Pkg|alacarte}}}}<br />
<br />
다른 방법으로, {{ic|~/.config/menus/xfce-applications.menu}} 파일을 직접 만들어 메뉴를 관리할 수 있다. 다음의 예제를 참고한다.<br />
<br />
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"<br />
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"><br />
<br />
<Menu><br />
<Name>Xfce</Name><br />
<MergeFile type="parent">/etc/xdg/menus/xfce-applications.menu</MergeFile><br />
<br />
<Exclude><br />
<Filename>xfce4-run.desktop</Filename><br />
<Filename>exo-terminal-emulator.desktop</Filename><br />
<Filename>exo-file-manager.desktop</Filename><br />
<Filename>exo-mail-reader.desktop</Filename><br />
<Filename>exo-web-browser.desktop</Filename><br />
<Filename>xfce4-about.desktop</Filename><br />
<Filename>xfhelp4.desktop</Filename><br />
</Exclude><br />
<br />
<Layout><br />
<Merge type="all"/><br />
<Separator/><br />
<Menuname>Settings</Menuname><br />
<Separator/><br />
<Filename>xfce4-session-logout.desktop</Filename><br />
</Layout><br />
</Menu><br />
<br />
{{ic|<MergeFile>}} 태그는 기본 Xfce 메뉴를 포함한다.<br />
<br />
{{ic|<Exclude>}} 태그는 메뉴로부터 태그 안의 어플리케이션을 제외시킨다. 예제에서는 Xfce의 기본 바로가기만을 제외시켰지만 {{ic|firefox.desktop}} 혹은 다른 어플리케이션도 제외시킬 수 있다.<br />
<br />
{{ic|<Layout>}} 태그는 메뉴의 레이아웃을 정의한다. 어플리케이션들은 폴더 내 혹은 사용자가 원하는 곳에 배치될 수 있다. 자세한 정보는 [http://wiki.xfce.org/howto/customize-menu Xfce wiki]를 참고한다.<br />
<br />
추가적으로 {{ic|.desktop}} 파일들을 수정하여 Xfce 메뉴를 변경할 수도 있다. 메뉴 엔트리를 숨기기 위해서는 [[Desktop entries#Hide desktop entries]]를 참고한다. {{ic|1=Categories=}} desktop entry를 수정하여 어플리케이션의 카테고리도 변경이 가능하다. 관련 내용은 [[Desktop entries#File example]]을 참고한다.<br />
<br />
=== Desktop ===<br />
<br />
==== Transparent background for icon titles ====<br />
<br />
To change the default white background of desktop icon titles to something more suitable, create or edit {{ic|~/.gtkrc-2.0}}:<br />
<br />
{{bc|<nowiki><br />
style "xfdesktop-icon-view" {<br />
XfdesktopIconView::label-alpha = 10<br />
base[NORMAL] = "#000000"<br />
base[SELECTED] = "#71B9FF"<br />
base[ACTIVE] = "#71B9FF"<br />
fg[NORMAL] = "#fcfcfc"<br />
fg[SELECTED] = "#ffffff"<br />
fg[ACTIVE] = "#ffffff"<br />
}<br />
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"<br />
</nowiki>}}<br />
<br />
==== Remove Thunar options from right-click menu ====<br />
<br />
Issue the following command:<br />
<br />
$ xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0<br />
<br />
==== Kill window shortcut ====<br />
<br />
Xfce does not have a shortcut to kill a window, for example when a program freezes.<br />
<br />
With {{Pkg|xorg-xkill}}, use {{ic|xkill}} to interactively kill a window. For the currently active window, use {{Pkg|xdotool}}:<br />
<br />
$ xdotool getwindowfocus windowkill<br />
<br />
Alternatively:<br />
<br />
$ xkill -id "$(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"<br />
<br />
To add the shortcut, use ''Settings > Keyboard'' or an application like {{pkg|xbindkeys}}.<br />
<br />
=== Session ===<br />
<br />
==== Startup applications ====<br />
<br />
To launch custom applications when Xfce starts up, click the ''Applications Menu > Settings > Settings Manager'' and then choose the ''Session and Startup'' option and click the tab ''Application Autostart''.<br />
You will see a list of programs that get launched on startup. To add an entry, click the ''Add'' button and fill out the form, specifying the path to an executable you want to run.<br />
<br />
Alternatively, add the commands you wish to run (including setting environment variables) to [[xinitrc]] (or [[xprofile]] when a [[display manager]] is being used).<br />
<br />
===== Delay application startup =====<br />
<br />
Sometimes it might be useful to delay the startup of an application. Specifying a command such as {{ic|sleep 3 && command}} under ''Application Autostart'' does not work. As a workaround, one can use the following syntax instead:<br />
<br />
sh -c "sleep 3 && command"<br />
<br />
==== Lock the screen ====<br />
<br />
To lock an Xfce4 session through the ''xflock4'' script one of {{Pkg|xscreensaver}}, {{Pkg|gnome-screensaver}}, {{Pkg|slock}} or {{Pkg|xlockmore}} packages needs to be installed. <br />
Alternatively you can set a lock command with<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l" --create -t string''<br />
<br />
If you want to update the command, you can use <br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l"<br />
<br />
See [[List of applications/Security#Screen lockers]] for a comprehensive list of screen lockers.<br />
<br />
{{Tip|The {{Pkg|light-locker}} session locker integrates with {{Pkg|xfce4-power-manager}}. If light-locker is installed, a ''Security'' tab is added to the power manager settings and the existing ''Lock screen when system is going for sleep'' setting is relocated under the ''Security'' tab.}}<br />
<br />
{{Note|1=The ''xflock4'' script can also be modified manually as described in the post [https://bbs.archlinux.org/viewtopic.php?id=189484]. To avoid having the changes overwritten on upgrades, you might wish to copy ''xflock4'' to {{ic|/usr/local/bin}} and make the changes to that copy as this will take precedence over the packaged version in {{ic|/usr/bin}}.}}<br />
<br />
==== User switching ====<br />
<br />
{{Note|For the User Switch action button to work without GDM, a workaround is required:<br />
* For LXDM - [[LXDM#Simultaneous users and switching users]].<br />
* For LightDM - [[LightDM#User switching under Xfce4]].}}<br />
<br />
Xfce4 has support for user switching when used with a [[Display manager]] that has this functionality - examples being [[LightDM]] and [[GDM]]. Please consult your display manager's wiki page for more information. When you have a display manager installed and configured correctly you can switch users from the 'action buttons' menu item in the panel.<br />
<br />
==== Disable saved sessions ====<br />
<br />
Per user, saved sessions can be disabled by executing the following:<br />
$ xfconf-query -t bool -c xfce4-session -p /general/SaveOnExit -s false<br />
Then navigate to ''Applications'' -> ''Settings'' -> ''Session and Startup'' -> ''Sessions'' and click the ''Clear saved sessions'' button.<br />
<br />
{{Tip|If the command above does not change the setting persistently, use the following command instead: {{ic|xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false}}}}<br />
<br />
Alternatively, Xfce [https://wiki.xfce.org/howto/kiosk_mode kiosk mode] can be used to disable the saving of sessions systemwide. To disable sessions, create or edit the file {{ic|/etc/xdg/xfce4/kiosk/kioskrc}} and add the following:<br />
<br />
[xfce4-session]<br />
SaveSession=NONE<br />
<br />
If kiosk mode is not working, the user can set read only permissions for the sessions directory:<br />
<br />
$ rm ~/.cache/sessions/* && chmod 500 ~/.cache/sessions<br />
<br />
This will prevent Xfce from saving any sessions despite any configuration that specifies otherwise.<br />
<br />
==== Default window manager ====<br />
<br />
{{Note|For the changes to take effect, you will need to clear the saved sessions and ensure that session saving is disabled when logging out for the first time. Once the window manager of choice is running, session saving can be enabled again.}}<br />
<br />
The files specifying the default window manager are found in the following locations:<br />
*{{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - per user<br />
*{{ic|/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - systemwide<br />
<br />
The default window manager for the user can be set easily using ''xfconf-query'':<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa '''wm_name'''<br />
<br />
If you want to start the window manager with command line options, see the command below:<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -t string -s '''wm_name''' -s '''--wm-option'''<br />
If you need more command line options, simply add more {{ic|-t string}} and {{ic|-s '''--wm-option'''}} arguments to the command.<br />
<br />
If you want to change the default window manager systemwide, edit the file specified above manually, changing ''xfwm4'' to the preferred window manager and adding more {{ic|1=<value type="string" value="'''--wm-option'''"/>}} lines for extra command line options if needed.<br />
<br />
You can also change the window manager by autostarting {{ic|'''wm_name''' --replace}} using the autostart facility or by running {{ic|'''wm_name''' --replace &}} in a terminal and making sure the session is saved on logout. Be aware though that this method does not truly change the default manager, it merely replaces it at login. Note that if you are using the autostart facility, you should disable saved sessions as this could lead to the new window manager being started twice after the default window manager.<br />
<br />
=== Theming ===<br />
<br />
XFCE themes are available at [http://www.xfce-look.org xfce-look.org]. ''Xfwm'' themes are stored in {{ic|/usr/share/themes/xfce4}}, and set in ''Settings > Window Manager''. [[GTK+]] themes are set in ''Settings > Appearance''.<br />
<br />
To achieve a uniform look for all applications, see [[Uniform look for Qt and GTK applications]].<br />
<br />
See also [[Cursor themes]], [[Icons]], and [[Font configuration]].<br />
<br />
=== Sound ===<br />
<br />
==== Xfce4 mixer ====<br />
<br />
{{Note|Xfce4 mixer and Xfce4 volumed are no longer being maintained upstream as they cannot be ported to GStreamer 1.0. For more information, see the 4.12 [http://www.xfce.org/about/news/?post&#61;1425081600 news post].}}<br />
<br />
Xfce4 mixer, provided by {{Pkg|xfce4-mixer}}, is the GUI mixer app and panel plugin from the Xfce team. It is part of the xfce4 group. For [[PulseAudio]] and [[OSS]] support, you will need to install {{Pkg|gstreamer0.10-good-plugins}} if it is not installed already.<br />
<br />
You might need to change the default sound card for Xfce4 mixer to function correctly. For further details, such as how to set the default sound card, see [[Advanced Linux Sound Architecture#Set the default sound card]]. Alternatively you can use [[PulseAudio]] together with {{Pkg|pavucontrol}} or [[OSS]]. For OSS, see [[OSS#Applications that use GStreamer]].<br />
<br />
If you did need to change the default soundcard, logout to ensure that the changes take effect.<br />
<br />
===== Change default sound card in Xfce4 mixer =====<br />
<br />
In some cases (when using [[PulseAudio]] or {{AUR|xfce4-volumed}} for instance) it might be necessary to change the default sound card in Xfce4 Mixer in order for volume control to work as expected. [http://grumbel.blogspot.co.uk/2011/10/fixing-volume-control-in-xfce4.html]<br />
<br />
To change the default sound card, open ''xfce4-settings-editor'' and navigate to '''xfce4-mixer''' and check the entries under '''sound-cards'''. Locate the correct entry for the card you are using and then replace the values of '''sound-card''' and '''active-card''' with the entry. If you are using PulseAudio then the entry will likely be similar to the following: '''PlaybackInternalAudioAnalogStereoPulseAudioMixer'''. Then logout for the changes to take effect.<br />
<br />
==== Keyboard volume buttons ====<br />
<br />
If the {{Pkg|xfce4-mixer}} package is version {{ic|4.10.0-3}} or greater, then the mixer panel applet provides the ability to control the volume using the keyboard. However, volume notifications will not be shown. Alternatively, {{AUR|xfce4-volumed}} maps volume keys to Xfce4 mixer, and displays notifications through Xfce4-notifyd.<br />
If you are using PulseAudio and you do not wish to use Xfce4 Mixer at all, install {{AUR|xfce4-pulseaudio-plugin}}. This provides a panel applet which has support for keyboard volume control and volume notifications.<br />
<br />
{{Warning|{{AUR|xfce4-pulseaudio-plugin}} might have high CPU usage (~5% on i7 Intel CPU).}}<br />
<br />
For non desktop environment specific alternatives, see [[List of applications#Volume managers]].<br />
<br />
===== Shortcuts =====<br />
<br />
If you are not using an applet or daemon that controls the volume keys, you can map volume control commands to your volume keys manually using Xfce's keyboard settings. For the sound system you are using, see the sections linked to below for the appropriate commands.<br />
*ALSA: see [[Advanced Linux Sound Architecture#Keyboard volume control]].<br />
*PulseAudio: see [[PulseAudio#Keyboard volume control]]<br />
*OSS: see [[OSS#Using multimedia keys with OSS]].<br />
<br />
=== Keyboard Shortcuts ===<br />
<br />
Keyboard shortcuts are defined in two places: ''Settings > Window Manager > Keyboard'', and ''Settings > Keyboard > Shortcuts''.<br />
<br />
=== Polkit Authentication Agent ===<br />
<br />
The {{Pkg|polkit-gnome}} agent will be installed along with {{Pkg|xfce4-session}} and autostarted automatically; no user intervention is required. For more information, see [[Polkit#Authentication agents]].<br />
<br />
A third party polkit authentication agent for Xfce is also available, see {{AUR|xfce-polkit-git}}.<br />
<br />
=== Display blanking ===<br />
<br />
{{Note|1=There are some issues associated with blanking and resuming from blanking in some configurations. See [https://bbs.archlinux.org/viewtopic.php?id=194313&p=2][https://bugzilla.xfce.org/show_bug.cgi?id=11107].}}<br />
<br />
Some programs that are commonly used with Xfce will control monitor blanking and [[DPMS]] (monitor powersaving) settings. They are discussed below.<br />
<br />
;Xfce Power Manager<br />
Xfce Power Manager will control blanking and DPMS settings. These settings can be configured by running ''xfce4-power-manager-settings'' and clicking the ''Display'' tab. Note that unticking the ''Handle display power management'' option means that the Power Manager will disable DPMS - it does not mean that the Power Manager will relinquish control of DPMS. Also note that it will not disable screen blanking. To disable both blanking and DPMS, right click on the power manager system tray icon or left click on the panel applet and make sure that the option labelled ''Presentation mode'' is ticked.<br />
<br />
;XScreenSaver<br />
See [[XScreenSaver#DPMS and blanking settings]]. Note that if XScreenSaver is running alongside Xfce Power Manager, it may not be entirely clear which application is in control of blanking and DPMS as both applications are competing for control of the same settings. Therefore, in a situation where it is important that the monitor not be blanked (when watching a film for instance), it is advisable to disable blanking and DPMS through both applications.<br />
<br />
;xset<br />
If neither of the above applications are running, then blanking and DPMS settings can be controlled using the ''xset'' command, see [[DPMS#Modifying DPMS and screensaver settings using xset]].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Hide partitions from thunar and xfdesktop ===<br />
<br />
See [[Udisks#Hide selected partitions]].<br />
<br />
=== Screenshots ===<br />
<br />
Xfce has its own screenshot tool, {{pkg|xfce4-screenshooter}}. It is part of the {{grp|xfce4-goodies}} group.<br />
<br />
Go to ''Applications > Settings > Keyboard'', ''Application Shortcuts''. Add the {{ic|xfce4-screenshooter -f}} (or {{ic|-w}} for the active window) command to use the {{ic|Print}} key in order to take fullscreen screenshots. See screenshooter's man page for other optional arguments.<br />
<br />
Alternatively, an independent screenshot program like [[Taking a screenshot#scrot|scrot]] can be used.<br />
<br />
=== Disable Terminal F1 and F11 shortcuts ===<br />
<br />
The xfce terminal binds F1 and F11 to help and fullscreen, respectively, which can make using programs like htop difficult. To disable those shortcuts, create or edit its configuration file, then log out and log back in. F10 can disabled in the Preferences menu.<br />
<br />
{{hc|~/.config/xfce4/terminal/accels.scm|<br />
(gtk_accel_path "<Actions>/terminal-window/fullscreen" "")<br />
(gtk_accel_path "<Actions>/terminal-window/contents" "")<br />
}}<br />
<br />
=== Terminal color themes or palettes ===<br />
<br />
Terminal color themes or palettes can be changed in GUI under Appearance tab in Preferences. These are the colors that are available to most console applications like [[Emacs]], [[Vi]] and so on. Their settings are stored individually for each system user in {{ic|~/.config/xfce4/terminal/terminalrc}} file. There are also so many other themes to choose from. Check forum thread [https://bbs.archlinux.org/viewtopic.php?id=51818 Terminal Colour Scheme Screenshots] for hundreds of available choices and themes.<br />
<br />
==== Changing default color theme ====<br />
<br />
XFCE's {{ic|extra/terminal}} package comes with a darker color palette. To change this, append the following in your terminalrc file for a lighter color theme, that is always visible in darker Terminal backgrounds.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
ColorPalette5=#38d0fcaaf3a9<br />
ColorPalette4=#e013a0a1612f<br />
ColorPalette2=#d456a81b7b42<br />
ColorPalette6=#ffff7062ffff<br />
ColorPalette3=#7ffff7bd7fff<br />
ColorPalette13=#82108210ffff<br />
<br />
==== Terminal tango color theme ====<br />
<br />
To switch to tango color theme, open with your favorite editor<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
And add(replace) these lines:<br />
<br />
ColorForeground=White<br />
ColorBackground=#323232323232<br />
ColorPalette1=#2e2e34343636<br />
ColorPalette2=#cccc00000000<br />
ColorPalette3=#4e4e9a9a0606<br />
ColorPalette4=#c4c4a0a00000<br />
ColorPalette5=#34346565a4a4<br />
ColorPalette6=#757550507b7b<br />
ColorPalette7=#060698989a9a<br />
ColorPalette8=#d3d3d7d7cfcf<br />
ColorPalette9=#555557575353<br />
ColorPalette10=#efef29292929<br />
ColorPalette11=#8a8ae2e23434<br />
ColorPalette12=#fcfce9e94f4f<br />
ColorPalette13=#72729f9fcfcf<br />
ColorPalette14=#adad7f7fa8a8<br />
ColorPalette15=#3434e2e2e2e2<br />
ColorPalette16=#eeeeeeeeecec<br />
<br />
=== Colour management ===<br />
<br />
Xfce has no native support for colour management. [https://bugzilla.xfce.org/show_bug.cgi?id=8559] See [[ICC profiles]] for alternatives.<br />
<br />
=== Multiple monitors ===<br />
<br />
As of {{Pkg|xfce4-settings}} version 4.11.4, Xfce has support for multiple monitors. Settings can be configured in the ''Applications'' -> ''Settings'' -> ''Display'' dialog. For more information, see the [http://docs.xfce.org/xfce/xfce4-settings/display display] article from the Xfce documentation.<br />
<br />
=== SSH agents ===<br />
<br />
By default Xfce 4.10 will try to load gpg-agent or ssh-agent in that order during session initialization. To disable this, create an xfconf key using the following command:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false<br />
<br />
To force using ssh-agent even if gpg-agent is installed, run the following instead:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s ssh-agent<br />
<br />
To use [[GNOME Keyring]], simply tick the checkbox ''Launch GNOME services on startup'' in the ''Advanced'' tab of ''Session Manager'' in Xfce's settings. This will also disable gpg-agent and ssh-agent.<br />
<br />
Source: http://docs.xfce.org/xfce/xfce4-session/advanced<br />
<br />
=== Scroll a background window without shifting focus on it ===<br />
<br />
Go to ''Main Menu > Settings > Window Manager Tweaks > Accessibility'' tab.<br />
Uncheck ''Raise windows when any mouse button is pressed''.<br />
<br />
=== Mouse button modifier ===<br />
<br />
By default, the mouse button modifier in Xfce is set to {{ic|Alt}}. This can be changed with ''xfconf-query''. For instance, the following command will set the {{ic|Super}} key as the mouse button modifier:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"<br />
<br />
Strictly speaking, using multiple modifiers is not supported. However, as a workaround, multiple modifiers can be specified if the key names are separated with {{ic|><}}. For instance, to set {{ic|Ctrl+Alt}} as the mouse button modifier, you can use the following command:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"<br />
<br />
== Troubleshooting ==<br />
<br />
=== Action buttons are missing icons ===<br />
<br />
This happens if icons for some actions (Suspend, Hibernate) are missing from the icon theme, or do not have the expected names. To fix this, install an icon theme which has the necessary icons already added; see [[Icons#Xfce icons]]. <br />
<br />
Then, you can switch to that icon theme using Applications -> Settings -> Appearance -> Icons.<br />
<br />
Alternatively you can use the required icons provided by the icon theme you installed in your current icon theme. To do so, you first need to find out what the currently used icon theme is called. You can do so by using the command below:<br />
<br />
$ xfconf-query -c xsettings -p /Net/IconThemeName<br />
<br />
Then set the following variable:<br />
<br />
$ icontheme=/usr/share/icons/''theme-name''<br />
<br />
where ''theme-name'' is the name of the current icon theme.<br />
<br />
Then create symbolic links from the current icon theme into the icon theme providing the icons (this example assumes the icons are being provided by the {{AUR|elementary-xfce-icons}} theme.)<br />
<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend.svg ${icontheme}/16x16/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend-hibernate.svg ${icontheme}/16x16/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend.svg ${icontheme}/22x22/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend-hibernate.svg ${icontheme}/22x22/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend.svg ${icontheme}/24x24/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend-hibernate.svg ${icontheme}/24x24/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend.svg ${icontheme}/48x48/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend-hibernate.svg ${icontheme}/48x48/actions/system-hibernate.svg<br />
<br />
Log out and in again, and you should see icons for all actions.<br />
<br />
=== Desktop icons rearrange themselves ===<br />
<br />
At certain events (such as opening the panel settings dialog) icons on the desktop rearrange themselves. This is because icon positions are determined by files in the {{ic|~/.config/xfce4/desktop/}} directory. Each time a change is made to the desktop (icons are added or removed or change position) a new file is generated in this directory and these files can conflict.<br />
<br />
To solve the problem, navigate to the directory and delete all the files other than the one which correctly defines the icon positions. You can determine which file defines the correct icon positions by opening it and examining the locations of the icons. The topmost row is defined as {{ic|row 0}} and the leftmost column is defined by {{ic|col 0}}. Therefore an entry of:<br />
<br />
[Firefox]<br />
row=3<br />
col=0<br />
<br />
means that the Firefox icon will be located on the 4th row of the leftmost column.<br />
<br />
=== GTK themes not working with multiple monitors ===<br />
<br />
Some configuration tools may corrupt displays.xml, which results in GTK themes under ''Applications Menu > Settings > Appearance'' ceasing to work. To fix the issue, delete {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml}} and reconfigure your screens.<br />
<br />
=== Icons do not appear in right-click menus ===<br />
<br />
{{Note|Despite the deprecation of GConf, this method does still work.}}<br />
<br />
Users may find that icons do not appear when right-clicking options within some applications, including those made with [[Qt]]. This problem only appears to happen within Xfce. Run these two commands:<br />
<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true<br />
<br />
=== Keyboard settings are not saved in xkb-plugin ===<br />
<br />
There is a bug in {{Pkg|xfce4-xkb-plugin}} ''0.5.4.1-1'' which causes it to lose keyboard, layout switching and compose key settings. [https://bugzilla.xfce.org/show_bug.cgi?id=10226] As a workaround, enable ''Use system defaults'' in {{ic|xfce4-keyboard-settings}}, then reconfigure ''xfce4-xkb-plugin''.<br />
<br />
=== NVIDIA and xfce4-sensors-plugin ===<br />
<br />
To detect and use sensors of nvidia gpu you need to install {{Pkg|libxnvctrl}} and then rebuild {{Pkg|xfce4-sensors-plugin}} with [[ABS]]. You also have the option of using {{AUR|xfce4-sensors-plugin-nvidia}} which replaces {{Pkg|xfce4-sensors-plugin}}.<br />
<br />
=== Panel applets keep being aligned on the left ===<br />
<br />
Add a separator someplace before the right end and set its "expand" property. [https://forums.linuxmint.com/viewtopic.php?f=110&t=155602}]<br />
<br />
=== Preferred Applications preferences have no effect ===<br />
<br />
Most applications rely on [[xdg-open]] for opening a preferred application for a given file or URL.<br />
<br />
In order for xdg-open and xdg-settings to detect and integrate with the Xfce desktop environment correctly, you need to [[install]] the {{Pkg|xorg-xprop}} package.<br />
<br />
If you do not do that, your preferred applications preferences (set by exo-preferred-applications) will not be obeyed.<br />
Installing the package and allowing ''xdg-open'' to detect that you are running Xfce makes it forward all calls to ''exo-open'' instead, which correctly uses all your preferred applications preferences.<br />
<br />
To make sure xdg-open integration is working correctly, ask ''xdg-settings'' for the default web browser and see what the result is:<br />
<br />
# xdg-settings get default-web-browser<br />
<br />
If it replies with:<br />
<br />
xdg-settings: unknown desktop environment<br />
<br />
it means that it has failed to detect Xfce as your desktop environment, which is likely due to a missing {{Pkg|xorg-xprop}} package.<br />
<br />
=== Restore default settings ===<br />
<br />
If for any reason you need to revert back: to the default settings, rename {{ic|~/.config/xfce4-session/}} and {{ic|~/.config/xfce4/}}<br />
<br />
$ mv ~/.config/xfce4-session/ ~/.config/xfce4-session-bak<br />
$ mv ~/.config/xfce4/ ~/.config/xfce4-bak<br />
<br />
Relogin for changes to take effect. If you get {{ic|Unable to load a failsafe session}} upon login, see the [[#Session failure]] section.<br />
<br />
=== Session failure ===<br />
<br />
Symptoms include:<br />
<br />
* The mouse is an X and/or does not appear at all;<br />
* Window decorations have disappeared and windows cannot be closed;<br />
* ({{ic|xfwm4-settings}}) will not start, reporting {{ic|These settings cannot work with your current window manager (unknown)}};<br />
* Errors reported by a [[display manager]] such as {{ic|No window manager registered on screen 0}}.<br />
* Unable to load a failsafe session:<br />
<br />
Unable to load a failsafe session.<br />
Unable to determine failsafe session name. Possible causes: xfconfd isn't running (D-Bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (must include "/etc"), or xfce4-session is installed incorrectly. <br />
<br />
Restarting xfce or rebooting your system may solve the problem, but a corrupt session is the likely cause. Delete the session folder:<br />
<br />
$ rm -r ~/.cache/sessions/<br />
<br />
Also make sure that the relevant folders in {{ic|$HOME}} are owned by the user starting {{ic|xfce4}}. See [[Chown]].<br />
<br />
=== Fonts in window title crashing xfce4-title ===<br />
<br />
[[Install]] {{Pkg|ttf-droid}} and {{Pkg|ttf-dejavu}}. See also {{Bug|44382}}.<br />
<br />
=== Laptop lid settings ignored ===<br />
<br />
You may find that the lid close settings in Xfce4 Power Manager are ignored, meaning that the laptop will always suspend on lid close, no matter what settings are chosen in the power manager. This is because the power manager is not set to handle lid close events by default. Instead, logind handles the lid close event. To change this behavior so that the the power manager handles lid close events, execute the following command:<br />
$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false<br />
Note that each time the laptop lid settings are changed in the power manager, this setting will be reset.<br />
<br />
=== Rendering issues with Adwaita theme ===<br />
<br />
Since the upgrade of gnome-themes-standard from 3.18.0-1 version to 3.20.0-1 the Adwaita theme exhibits several issues when being used in Xfce, like a frame around the notification area and dark background of the tooltip in eclipse. <br />
<br />
A ugly solution is to downgrade the {{Pkg|gnome-themes-standard}} to the old 3.18.0-1 meanwhile. The package can be downloaded at: <br />
$ wget <nowiki>https://archive.archlinux.org/repos/2016/04/08/extra/os/$(uname -m)/gnome-themes-standard-3.18.0-1-$(uname -m).pkg.tar.xz</nowiki><br />
and installed via pacman's {{ic|-U}} option.<br />
<br />
== See also ==<br />
<br />
* [http://www.xfce.org/about/ Xfce - About]<br />
* http://docs.xfce.org/ - The complete documentation.<br />
* [http://www.xfce-look.org/ Xfce-Look] - Themes, wallpapers, and more.<br />
* [http://xfce.wikia.com/wiki/Frequently_Asked_Questions Xfce Wikia] - How to edit the auto generated menu with the menu editor<br />
* [http://wiki.xfce.org Xfce Wiki]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Xfce_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=438409Xfce (한국어)2016-06-18T01:14:18Z<p>Sukbeom: /* 설정하기 */</p>
<hr />
<div>[[Category:Desktop environments (한국어)]]<br />
[[cs:Xfce]]<br />
[[de:Xfce]]<br />
[[es:Xfce]]<br />
[[fr:Xfce]]<br />
[[it:Xfce]]<br />
[[ja:Xfce]]<br />
[[pl:Xfce]]<br />
[[ru:Xfce]]<br />
[[tr:Xfce Masaüstü Ortamı]]<br />
[[uk:Xfce]]<br />
[[zh-CN:Xfce]]<br />
[[ko:Xfce]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Window manager}}<br />
{{Related|Xfwm}}<br />
{{Related|Thunar}}<br />
{{Related|LXDE}}<br />
{{Related|GNOME}}<br />
{{Related articles end}}<br />
<br />
[http://www.xfce.org Xfce]는 현재 GTK+ 2를 기반으로 하는 모듈식의 저용량 [[Desktop environment|데스크탑 환경]]이다. 완벽한 사용자 경험을 제공하기 위해 Xfce는 창 관리자, 파일 관리자, 데스크탑과 패널을 포함한다.<br />
<br />
== 설치하기 ==<br />
<br />
{{Grp|xfce4}} 그룹을 [[Install|설치]]한다. 추가 플러그인과 {{Pkg|mousepad}} 편집기와 같은 유용한 유틸리티를 설치하고자 하는 경우 {{Grp|xfce4-goodies}} 그룹으로 설치할 수 있다. Xfce는 [[Xfwm]]을 기본 창 관리자로 사용한다.<br />
<br />
== Xfce 시작하기 ==<br />
<br />
[[display manager]]의 선택 메뉴에서 ''Xfce Session'' 을 선택하거나 [[Xinitrc]]에 {{ic|exec startxfce4}}를 추가한다.<br />
<br />
{{주의|{{ic|xfce4-session}}을 직접 실행하지 않는다. {{ic|startxfce4}}의 호출이 올바른 실행법이며 해당 명령어에서 단계적으로 {{ic|xfce4-session}}을 적절한 시기에 호출한다.}}<br />
<br />
== 설정하기 ==<br />
<br />
Xfce는 설정 옵션들을 [http://docs.xfce.org/xfce/xfconf/start Xfconf]에 저장한다. 해당 옵션들을 설정하는 방법에는 다음과 같은 몇 가지 방법들이 있다.<br />
<br />
* 메인 메뉴에서 설정([http://docs.xfce.org/xfce/xfce4-settings/start Settings])을 클릭하고 설정하고자 하는 카테고리를 클릭한다. 카테고리들은 대부분 {{ic|/usr/bin/xfce4-*}}와 {{ic|/usr/bin/xfdesktop-settings}}에 위치한 프로그램들이다.<br />
* {{ic|xfce4-settings-editor}}을 통해 수정가능한 설정을 확인할 수 있다. 여기서 수정된 사항들은 곧바로 적용된다. {{ic|xfconf-query}}를 사용하여 커맨드라인에서 설정을 변경할 수도 있다. 자세한 사항은 [http://docs.xfce.org/xfce/xfconf/xfconf-query the documentation]을 참고하기 바란다.<br />
* 설정은 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/}} 에 XML 파일로 저장되며 해당 파일은 직접적으로 수정될 수 있다. 하지만 변경된 사항은 ''곧바로 적용되지 않는다''.<br />
<br />
=== 메뉴 ===<br />
<br />
==== Whisker 메뉴 ====<br />
<br />
{{Pkg|xfce4-whiskermenu-plugin}} is an alternate application launcher. It shows a list of favorites, browses through all installed applications through category buttons, and supports fuzzy searching.<br />
<br />
==== Edit entries ====<br />
<br />
A number of graphical tools are available for this task:<br />
<br />
* {{App|XAME|GUI tool written in Gambas designed specifically for editing menu entries in Xfce, it will not work in other environments.|http://www.redsquirrel87.com/XAME.html|{{AUR|xame}}}}<br />
* {{App|MenuLibre|An advanced menu editor that provides modern features in a clean, easy-to-use interface.|https://launchpad.net/menulibre|{{AUR|menulibre}}}}.<br />
* {{App|Alacarte|Menu editor for GNOME|http://www.gnome.org/|{{Pkg|alacarte}}}}<br />
<br />
Alternatively, create the file {{ic|~/.config/menus/xfce-applications.menu}} manually. See the example configuration below:<br />
<br />
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"<br />
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"><br />
<br />
<Menu><br />
<Name>Xfce</Name><br />
<MergeFile type="parent">/etc/xdg/menus/xfce-applications.menu</MergeFile><br />
<br />
<Exclude><br />
<Filename>xfce4-run.desktop</Filename><br />
<Filename>exo-terminal-emulator.desktop</Filename><br />
<Filename>exo-file-manager.desktop</Filename><br />
<Filename>exo-mail-reader.desktop</Filename><br />
<Filename>exo-web-browser.desktop</Filename><br />
<Filename>xfce4-about.desktop</Filename><br />
<Filename>xfhelp4.desktop</Filename><br />
</Exclude><br />
<br />
<Layout><br />
<Merge type="all"/><br />
<Separator/><br />
<Menuname>Settings</Menuname><br />
<Separator/><br />
<Filename>xfce4-session-logout.desktop</Filename><br />
</Layout><br />
</Menu><br />
<br />
The {{ic|<MergeFile>}} tag includes the default Xfce menu.<br />
<br />
The {{ic|<Exclude>}} tag excludes applications which we do not want to appear in the menu. Here we excluded some Xfce default shortcuts, but you can exclude {{ic|firefox.desktop}} or any other application.<br />
<br />
The {{ic|<Layout>}} tag defines the layout of the menu. The applications can be organized in folders or however we wish. For more details see the [http://wiki.xfce.org/howto/customize-menu Xfce wiki].<br />
<br />
You can also make changes to the Xfce menu by editing the {{ic|.desktop}} files themselves. To hide entries, see [[Desktop entries#Hide desktop entries]]. You can edit the application's category by modifying the {{ic|1=Categories=}} line of the desktop entry, see [[Desktop entries#File example]].<br />
<br />
=== Desktop ===<br />
<br />
==== Transparent background for icon titles ====<br />
<br />
To change the default white background of desktop icon titles to something more suitable, create or edit {{ic|~/.gtkrc-2.0}}:<br />
<br />
{{bc|<nowiki><br />
style "xfdesktop-icon-view" {<br />
XfdesktopIconView::label-alpha = 10<br />
base[NORMAL] = "#000000"<br />
base[SELECTED] = "#71B9FF"<br />
base[ACTIVE] = "#71B9FF"<br />
fg[NORMAL] = "#fcfcfc"<br />
fg[SELECTED] = "#ffffff"<br />
fg[ACTIVE] = "#ffffff"<br />
}<br />
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"<br />
</nowiki>}}<br />
<br />
==== Remove Thunar options from right-click menu ====<br />
<br />
Issue the following command:<br />
<br />
$ xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0<br />
<br />
==== Kill window shortcut ====<br />
<br />
Xfce does not have a shortcut to kill a window, for example when a program freezes.<br />
<br />
With {{Pkg|xorg-xkill}}, use {{ic|xkill}} to interactively kill a window. For the currently active window, use {{Pkg|xdotool}}:<br />
<br />
$ xdotool getwindowfocus windowkill<br />
<br />
Alternatively:<br />
<br />
$ xkill -id "$(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"<br />
<br />
To add the shortcut, use ''Settings > Keyboard'' or an application like {{pkg|xbindkeys}}.<br />
<br />
=== Session ===<br />
<br />
==== Startup applications ====<br />
<br />
To launch custom applications when Xfce starts up, click the ''Applications Menu > Settings > Settings Manager'' and then choose the ''Session and Startup'' option and click the tab ''Application Autostart''.<br />
You will see a list of programs that get launched on startup. To add an entry, click the ''Add'' button and fill out the form, specifying the path to an executable you want to run.<br />
<br />
Alternatively, add the commands you wish to run (including setting environment variables) to [[xinitrc]] (or [[xprofile]] when a [[display manager]] is being used).<br />
<br />
===== Delay application startup =====<br />
<br />
Sometimes it might be useful to delay the startup of an application. Specifying a command such as {{ic|sleep 3 && command}} under ''Application Autostart'' does not work. As a workaround, one can use the following syntax instead:<br />
<br />
sh -c "sleep 3 && command"<br />
<br />
==== Lock the screen ====<br />
<br />
To lock an Xfce4 session through the ''xflock4'' script one of {{Pkg|xscreensaver}}, {{Pkg|gnome-screensaver}}, {{Pkg|slock}} or {{Pkg|xlockmore}} packages needs to be installed. <br />
Alternatively you can set a lock command with<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l" --create -t string''<br />
<br />
If you want to update the command, you can use <br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l"<br />
<br />
See [[List of applications/Security#Screen lockers]] for a comprehensive list of screen lockers.<br />
<br />
{{Tip|The {{Pkg|light-locker}} session locker integrates with {{Pkg|xfce4-power-manager}}. If light-locker is installed, a ''Security'' tab is added to the power manager settings and the existing ''Lock screen when system is going for sleep'' setting is relocated under the ''Security'' tab.}}<br />
<br />
{{Note|1=The ''xflock4'' script can also be modified manually as described in the post [https://bbs.archlinux.org/viewtopic.php?id=189484]. To avoid having the changes overwritten on upgrades, you might wish to copy ''xflock4'' to {{ic|/usr/local/bin}} and make the changes to that copy as this will take precedence over the packaged version in {{ic|/usr/bin}}.}}<br />
<br />
==== User switching ====<br />
<br />
{{Note|For the User Switch action button to work without GDM, a workaround is required:<br />
* For LXDM - [[LXDM#Simultaneous users and switching users]].<br />
* For LightDM - [[LightDM#User switching under Xfce4]].}}<br />
<br />
Xfce4 has support for user switching when used with a [[Display manager]] that has this functionality - examples being [[LightDM]] and [[GDM]]. Please consult your display manager's wiki page for more information. When you have a display manager installed and configured correctly you can switch users from the 'action buttons' menu item in the panel.<br />
<br />
==== Disable saved sessions ====<br />
<br />
Per user, saved sessions can be disabled by executing the following:<br />
$ xfconf-query -t bool -c xfce4-session -p /general/SaveOnExit -s false<br />
Then navigate to ''Applications'' -> ''Settings'' -> ''Session and Startup'' -> ''Sessions'' and click the ''Clear saved sessions'' button.<br />
<br />
{{Tip|If the command above does not change the setting persistently, use the following command instead: {{ic|xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false}}}}<br />
<br />
Alternatively, Xfce [https://wiki.xfce.org/howto/kiosk_mode kiosk mode] can be used to disable the saving of sessions systemwide. To disable sessions, create or edit the file {{ic|/etc/xdg/xfce4/kiosk/kioskrc}} and add the following:<br />
<br />
[xfce4-session]<br />
SaveSession=NONE<br />
<br />
If kiosk mode is not working, the user can set read only permissions for the sessions directory:<br />
<br />
$ rm ~/.cache/sessions/* && chmod 500 ~/.cache/sessions<br />
<br />
This will prevent Xfce from saving any sessions despite any configuration that specifies otherwise.<br />
<br />
==== Default window manager ====<br />
<br />
{{Note|For the changes to take effect, you will need to clear the saved sessions and ensure that session saving is disabled when logging out for the first time. Once the window manager of choice is running, session saving can be enabled again.}}<br />
<br />
The files specifying the default window manager are found in the following locations:<br />
*{{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - per user<br />
*{{ic|/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - systemwide<br />
<br />
The default window manager for the user can be set easily using ''xfconf-query'':<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa '''wm_name'''<br />
<br />
If you want to start the window manager with command line options, see the command below:<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -t string -s '''wm_name''' -s '''--wm-option'''<br />
If you need more command line options, simply add more {{ic|-t string}} and {{ic|-s '''--wm-option'''}} arguments to the command.<br />
<br />
If you want to change the default window manager systemwide, edit the file specified above manually, changing ''xfwm4'' to the preferred window manager and adding more {{ic|1=<value type="string" value="'''--wm-option'''"/>}} lines for extra command line options if needed.<br />
<br />
You can also change the window manager by autostarting {{ic|'''wm_name''' --replace}} using the autostart facility or by running {{ic|'''wm_name''' --replace &}} in a terminal and making sure the session is saved on logout. Be aware though that this method does not truly change the default manager, it merely replaces it at login. Note that if you are using the autostart facility, you should disable saved sessions as this could lead to the new window manager being started twice after the default window manager.<br />
<br />
=== Theming ===<br />
<br />
XFCE themes are available at [http://www.xfce-look.org xfce-look.org]. ''Xfwm'' themes are stored in {{ic|/usr/share/themes/xfce4}}, and set in ''Settings > Window Manager''. [[GTK+]] themes are set in ''Settings > Appearance''.<br />
<br />
To achieve a uniform look for all applications, see [[Uniform look for Qt and GTK applications]].<br />
<br />
See also [[Cursor themes]], [[Icons]], and [[Font configuration]].<br />
<br />
=== Sound ===<br />
<br />
==== Xfce4 mixer ====<br />
<br />
{{Note|Xfce4 mixer and Xfce4 volumed are no longer being maintained upstream as they cannot be ported to GStreamer 1.0. For more information, see the 4.12 [http://www.xfce.org/about/news/?post&#61;1425081600 news post].}}<br />
<br />
Xfce4 mixer, provided by {{Pkg|xfce4-mixer}}, is the GUI mixer app and panel plugin from the Xfce team. It is part of the xfce4 group. For [[PulseAudio]] and [[OSS]] support, you will need to install {{Pkg|gstreamer0.10-good-plugins}} if it is not installed already.<br />
<br />
You might need to change the default sound card for Xfce4 mixer to function correctly. For further details, such as how to set the default sound card, see [[Advanced Linux Sound Architecture#Set the default sound card]]. Alternatively you can use [[PulseAudio]] together with {{Pkg|pavucontrol}} or [[OSS]]. For OSS, see [[OSS#Applications that use GStreamer]].<br />
<br />
If you did need to change the default soundcard, logout to ensure that the changes take effect.<br />
<br />
===== Change default sound card in Xfce4 mixer =====<br />
<br />
In some cases (when using [[PulseAudio]] or {{AUR|xfce4-volumed}} for instance) it might be necessary to change the default sound card in Xfce4 Mixer in order for volume control to work as expected. [http://grumbel.blogspot.co.uk/2011/10/fixing-volume-control-in-xfce4.html]<br />
<br />
To change the default sound card, open ''xfce4-settings-editor'' and navigate to '''xfce4-mixer''' and check the entries under '''sound-cards'''. Locate the correct entry for the card you are using and then replace the values of '''sound-card''' and '''active-card''' with the entry. If you are using PulseAudio then the entry will likely be similar to the following: '''PlaybackInternalAudioAnalogStereoPulseAudioMixer'''. Then logout for the changes to take effect.<br />
<br />
==== Keyboard volume buttons ====<br />
<br />
If the {{Pkg|xfce4-mixer}} package is version {{ic|4.10.0-3}} or greater, then the mixer panel applet provides the ability to control the volume using the keyboard. However, volume notifications will not be shown. Alternatively, {{AUR|xfce4-volumed}} maps volume keys to Xfce4 mixer, and displays notifications through Xfce4-notifyd.<br />
If you are using PulseAudio and you do not wish to use Xfce4 Mixer at all, install {{AUR|xfce4-pulseaudio-plugin}}. This provides a panel applet which has support for keyboard volume control and volume notifications.<br />
<br />
{{Warning|{{AUR|xfce4-pulseaudio-plugin}} might have high CPU usage (~5% on i7 Intel CPU).}}<br />
<br />
For non desktop environment specific alternatives, see [[List of applications#Volume managers]].<br />
<br />
===== Shortcuts =====<br />
<br />
If you are not using an applet or daemon that controls the volume keys, you can map volume control commands to your volume keys manually using Xfce's keyboard settings. For the sound system you are using, see the sections linked to below for the appropriate commands.<br />
*ALSA: see [[Advanced Linux Sound Architecture#Keyboard volume control]].<br />
*PulseAudio: see [[PulseAudio#Keyboard volume control]]<br />
*OSS: see [[OSS#Using multimedia keys with OSS]].<br />
<br />
=== Keyboard Shortcuts ===<br />
<br />
Keyboard shortcuts are defined in two places: ''Settings > Window Manager > Keyboard'', and ''Settings > Keyboard > Shortcuts''.<br />
<br />
=== Polkit Authentication Agent ===<br />
<br />
The {{Pkg|polkit-gnome}} agent will be installed along with {{Pkg|xfce4-session}} and autostarted automatically; no user intervention is required. For more information, see [[Polkit#Authentication agents]].<br />
<br />
A third party polkit authentication agent for Xfce is also available, see {{AUR|xfce-polkit-git}}.<br />
<br />
=== Display blanking ===<br />
<br />
{{Note|1=There are some issues associated with blanking and resuming from blanking in some configurations. See [https://bbs.archlinux.org/viewtopic.php?id=194313&p=2][https://bugzilla.xfce.org/show_bug.cgi?id=11107].}}<br />
<br />
Some programs that are commonly used with Xfce will control monitor blanking and [[DPMS]] (monitor powersaving) settings. They are discussed below.<br />
<br />
;Xfce Power Manager<br />
Xfce Power Manager will control blanking and DPMS settings. These settings can be configured by running ''xfce4-power-manager-settings'' and clicking the ''Display'' tab. Note that unticking the ''Handle display power management'' option means that the Power Manager will disable DPMS - it does not mean that the Power Manager will relinquish control of DPMS. Also note that it will not disable screen blanking. To disable both blanking and DPMS, right click on the power manager system tray icon or left click on the panel applet and make sure that the option labelled ''Presentation mode'' is ticked.<br />
<br />
;XScreenSaver<br />
See [[XScreenSaver#DPMS and blanking settings]]. Note that if XScreenSaver is running alongside Xfce Power Manager, it may not be entirely clear which application is in control of blanking and DPMS as both applications are competing for control of the same settings. Therefore, in a situation where it is important that the monitor not be blanked (when watching a film for instance), it is advisable to disable blanking and DPMS through both applications.<br />
<br />
;xset<br />
If neither of the above applications are running, then blanking and DPMS settings can be controlled using the ''xset'' command, see [[DPMS#Modifying DPMS and screensaver settings using xset]].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Hide partitions from thunar and xfdesktop ===<br />
<br />
See [[Udisks#Hide selected partitions]].<br />
<br />
=== Screenshots ===<br />
<br />
Xfce has its own screenshot tool, {{pkg|xfce4-screenshooter}}. It is part of the {{grp|xfce4-goodies}} group.<br />
<br />
Go to ''Applications > Settings > Keyboard'', ''Application Shortcuts''. Add the {{ic|xfce4-screenshooter -f}} (or {{ic|-w}} for the active window) command to use the {{ic|Print}} key in order to take fullscreen screenshots. See screenshooter's man page for other optional arguments.<br />
<br />
Alternatively, an independent screenshot program like [[Taking a screenshot#scrot|scrot]] can be used.<br />
<br />
=== Disable Terminal F1 and F11 shortcuts ===<br />
<br />
The xfce terminal binds F1 and F11 to help and fullscreen, respectively, which can make using programs like htop difficult. To disable those shortcuts, create or edit its configuration file, then log out and log back in. F10 can disabled in the Preferences menu.<br />
<br />
{{hc|~/.config/xfce4/terminal/accels.scm|<br />
(gtk_accel_path "<Actions>/terminal-window/fullscreen" "")<br />
(gtk_accel_path "<Actions>/terminal-window/contents" "")<br />
}}<br />
<br />
=== Terminal color themes or palettes ===<br />
<br />
Terminal color themes or palettes can be changed in GUI under Appearance tab in Preferences. These are the colors that are available to most console applications like [[Emacs]], [[Vi]] and so on. Their settings are stored individually for each system user in {{ic|~/.config/xfce4/terminal/terminalrc}} file. There are also so many other themes to choose from. Check forum thread [https://bbs.archlinux.org/viewtopic.php?id=51818 Terminal Colour Scheme Screenshots] for hundreds of available choices and themes.<br />
<br />
==== Changing default color theme ====<br />
<br />
XFCE's {{ic|extra/terminal}} package comes with a darker color palette. To change this, append the following in your terminalrc file for a lighter color theme, that is always visible in darker Terminal backgrounds.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
ColorPalette5=#38d0fcaaf3a9<br />
ColorPalette4=#e013a0a1612f<br />
ColorPalette2=#d456a81b7b42<br />
ColorPalette6=#ffff7062ffff<br />
ColorPalette3=#7ffff7bd7fff<br />
ColorPalette13=#82108210ffff<br />
<br />
==== Terminal tango color theme ====<br />
<br />
To switch to tango color theme, open with your favorite editor<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
And add(replace) these lines:<br />
<br />
ColorForeground=White<br />
ColorBackground=#323232323232<br />
ColorPalette1=#2e2e34343636<br />
ColorPalette2=#cccc00000000<br />
ColorPalette3=#4e4e9a9a0606<br />
ColorPalette4=#c4c4a0a00000<br />
ColorPalette5=#34346565a4a4<br />
ColorPalette6=#757550507b7b<br />
ColorPalette7=#060698989a9a<br />
ColorPalette8=#d3d3d7d7cfcf<br />
ColorPalette9=#555557575353<br />
ColorPalette10=#efef29292929<br />
ColorPalette11=#8a8ae2e23434<br />
ColorPalette12=#fcfce9e94f4f<br />
ColorPalette13=#72729f9fcfcf<br />
ColorPalette14=#adad7f7fa8a8<br />
ColorPalette15=#3434e2e2e2e2<br />
ColorPalette16=#eeeeeeeeecec<br />
<br />
=== Colour management ===<br />
<br />
Xfce has no native support for colour management. [https://bugzilla.xfce.org/show_bug.cgi?id=8559] See [[ICC profiles]] for alternatives.<br />
<br />
=== Multiple monitors ===<br />
<br />
As of {{Pkg|xfce4-settings}} version 4.11.4, Xfce has support for multiple monitors. Settings can be configured in the ''Applications'' -> ''Settings'' -> ''Display'' dialog. For more information, see the [http://docs.xfce.org/xfce/xfce4-settings/display display] article from the Xfce documentation.<br />
<br />
=== SSH agents ===<br />
<br />
By default Xfce 4.10 will try to load gpg-agent or ssh-agent in that order during session initialization. To disable this, create an xfconf key using the following command:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false<br />
<br />
To force using ssh-agent even if gpg-agent is installed, run the following instead:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s ssh-agent<br />
<br />
To use [[GNOME Keyring]], simply tick the checkbox ''Launch GNOME services on startup'' in the ''Advanced'' tab of ''Session Manager'' in Xfce's settings. This will also disable gpg-agent and ssh-agent.<br />
<br />
Source: http://docs.xfce.org/xfce/xfce4-session/advanced<br />
<br />
=== Scroll a background window without shifting focus on it ===<br />
<br />
Go to ''Main Menu > Settings > Window Manager Tweaks > Accessibility'' tab.<br />
Uncheck ''Raise windows when any mouse button is pressed''.<br />
<br />
=== Mouse button modifier ===<br />
<br />
By default, the mouse button modifier in Xfce is set to {{ic|Alt}}. This can be changed with ''xfconf-query''. For instance, the following command will set the {{ic|Super}} key as the mouse button modifier:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"<br />
<br />
Strictly speaking, using multiple modifiers is not supported. However, as a workaround, multiple modifiers can be specified if the key names are separated with {{ic|><}}. For instance, to set {{ic|Ctrl+Alt}} as the mouse button modifier, you can use the following command:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"<br />
<br />
== Troubleshooting ==<br />
<br />
=== Action buttons are missing icons ===<br />
<br />
This happens if icons for some actions (Suspend, Hibernate) are missing from the icon theme, or do not have the expected names. To fix this, install an icon theme which has the necessary icons already added; see [[Icons#Xfce icons]]. <br />
<br />
Then, you can switch to that icon theme using Applications -> Settings -> Appearance -> Icons.<br />
<br />
Alternatively you can use the required icons provided by the icon theme you installed in your current icon theme. To do so, you first need to find out what the currently used icon theme is called. You can do so by using the command below:<br />
<br />
$ xfconf-query -c xsettings -p /Net/IconThemeName<br />
<br />
Then set the following variable:<br />
<br />
$ icontheme=/usr/share/icons/''theme-name''<br />
<br />
where ''theme-name'' is the name of the current icon theme.<br />
<br />
Then create symbolic links from the current icon theme into the icon theme providing the icons (this example assumes the icons are being provided by the {{AUR|elementary-xfce-icons}} theme.)<br />
<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend.svg ${icontheme}/16x16/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend-hibernate.svg ${icontheme}/16x16/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend.svg ${icontheme}/22x22/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend-hibernate.svg ${icontheme}/22x22/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend.svg ${icontheme}/24x24/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend-hibernate.svg ${icontheme}/24x24/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend.svg ${icontheme}/48x48/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend-hibernate.svg ${icontheme}/48x48/actions/system-hibernate.svg<br />
<br />
Log out and in again, and you should see icons for all actions.<br />
<br />
=== Desktop icons rearrange themselves ===<br />
<br />
At certain events (such as opening the panel settings dialog) icons on the desktop rearrange themselves. This is because icon positions are determined by files in the {{ic|~/.config/xfce4/desktop/}} directory. Each time a change is made to the desktop (icons are added or removed or change position) a new file is generated in this directory and these files can conflict.<br />
<br />
To solve the problem, navigate to the directory and delete all the files other than the one which correctly defines the icon positions. You can determine which file defines the correct icon positions by opening it and examining the locations of the icons. The topmost row is defined as {{ic|row 0}} and the leftmost column is defined by {{ic|col 0}}. Therefore an entry of:<br />
<br />
[Firefox]<br />
row=3<br />
col=0<br />
<br />
means that the Firefox icon will be located on the 4th row of the leftmost column.<br />
<br />
=== GTK themes not working with multiple monitors ===<br />
<br />
Some configuration tools may corrupt displays.xml, which results in GTK themes under ''Applications Menu > Settings > Appearance'' ceasing to work. To fix the issue, delete {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml}} and reconfigure your screens.<br />
<br />
=== Icons do not appear in right-click menus ===<br />
<br />
{{Note|Despite the deprecation of GConf, this method does still work.}}<br />
<br />
Users may find that icons do not appear when right-clicking options within some applications, including those made with [[Qt]]. This problem only appears to happen within Xfce. Run these two commands:<br />
<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true<br />
<br />
=== Keyboard settings are not saved in xkb-plugin ===<br />
<br />
There is a bug in {{Pkg|xfce4-xkb-plugin}} ''0.5.4.1-1'' which causes it to lose keyboard, layout switching and compose key settings. [https://bugzilla.xfce.org/show_bug.cgi?id=10226] As a workaround, enable ''Use system defaults'' in {{ic|xfce4-keyboard-settings}}, then reconfigure ''xfce4-xkb-plugin''.<br />
<br />
=== NVIDIA and xfce4-sensors-plugin ===<br />
<br />
To detect and use sensors of nvidia gpu you need to install {{Pkg|libxnvctrl}} and then rebuild {{Pkg|xfce4-sensors-plugin}} with [[ABS]]. You also have the option of using {{AUR|xfce4-sensors-plugin-nvidia}} which replaces {{Pkg|xfce4-sensors-plugin}}.<br />
<br />
=== Panel applets keep being aligned on the left ===<br />
<br />
Add a separator someplace before the right end and set its "expand" property. [https://forums.linuxmint.com/viewtopic.php?f=110&t=155602}]<br />
<br />
=== Preferred Applications preferences have no effect ===<br />
<br />
Most applications rely on [[xdg-open]] for opening a preferred application for a given file or URL.<br />
<br />
In order for xdg-open and xdg-settings to detect and integrate with the Xfce desktop environment correctly, you need to [[install]] the {{Pkg|xorg-xprop}} package.<br />
<br />
If you do not do that, your preferred applications preferences (set by exo-preferred-applications) will not be obeyed.<br />
Installing the package and allowing ''xdg-open'' to detect that you are running Xfce makes it forward all calls to ''exo-open'' instead, which correctly uses all your preferred applications preferences.<br />
<br />
To make sure xdg-open integration is working correctly, ask ''xdg-settings'' for the default web browser and see what the result is:<br />
<br />
# xdg-settings get default-web-browser<br />
<br />
If it replies with:<br />
<br />
xdg-settings: unknown desktop environment<br />
<br />
it means that it has failed to detect Xfce as your desktop environment, which is likely due to a missing {{Pkg|xorg-xprop}} package.<br />
<br />
=== Restore default settings ===<br />
<br />
If for any reason you need to revert back: to the default settings, rename {{ic|~/.config/xfce4-session/}} and {{ic|~/.config/xfce4/}}<br />
<br />
$ mv ~/.config/xfce4-session/ ~/.config/xfce4-session-bak<br />
$ mv ~/.config/xfce4/ ~/.config/xfce4-bak<br />
<br />
Relogin for changes to take effect. If you get {{ic|Unable to load a failsafe session}} upon login, see the [[#Session failure]] section.<br />
<br />
=== Session failure ===<br />
<br />
Symptoms include:<br />
<br />
* The mouse is an X and/or does not appear at all;<br />
* Window decorations have disappeared and windows cannot be closed;<br />
* ({{ic|xfwm4-settings}}) will not start, reporting {{ic|These settings cannot work with your current window manager (unknown)}};<br />
* Errors reported by a [[display manager]] such as {{ic|No window manager registered on screen 0}}.<br />
* Unable to load a failsafe session:<br />
<br />
Unable to load a failsafe session.<br />
Unable to determine failsafe session name. Possible causes: xfconfd isn't running (D-Bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (must include "/etc"), or xfce4-session is installed incorrectly. <br />
<br />
Restarting xfce or rebooting your system may solve the problem, but a corrupt session is the likely cause. Delete the session folder:<br />
<br />
$ rm -r ~/.cache/sessions/<br />
<br />
Also make sure that the relevant folders in {{ic|$HOME}} are owned by the user starting {{ic|xfce4}}. See [[Chown]].<br />
<br />
=== Fonts in window title crashing xfce4-title ===<br />
<br />
[[Install]] {{Pkg|ttf-droid}} and {{Pkg|ttf-dejavu}}. See also {{Bug|44382}}.<br />
<br />
=== Laptop lid settings ignored ===<br />
<br />
You may find that the lid close settings in Xfce4 Power Manager are ignored, meaning that the laptop will always suspend on lid close, no matter what settings are chosen in the power manager. This is because the power manager is not set to handle lid close events by default. Instead, logind handles the lid close event. To change this behavior so that the the power manager handles lid close events, execute the following command:<br />
$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false<br />
Note that each time the laptop lid settings are changed in the power manager, this setting will be reset.<br />
<br />
=== Rendering issues with Adwaita theme ===<br />
<br />
Since the upgrade of gnome-themes-standard from 3.18.0-1 version to 3.20.0-1 the Adwaita theme exhibits several issues when being used in Xfce, like a frame around the notification area and dark background of the tooltip in eclipse. <br />
<br />
A ugly solution is to downgrade the {{Pkg|gnome-themes-standard}} to the old 3.18.0-1 meanwhile. The package can be downloaded at: <br />
$ wget <nowiki>https://archive.archlinux.org/repos/2016/04/08/extra/os/$(uname -m)/gnome-themes-standard-3.18.0-1-$(uname -m).pkg.tar.xz</nowiki><br />
and installed via pacman's {{ic|-U}} option.<br />
<br />
== See also ==<br />
<br />
* [http://www.xfce.org/about/ Xfce - About]<br />
* http://docs.xfce.org/ - The complete documentation.<br />
* [http://www.xfce-look.org/ Xfce-Look] - Themes, wallpapers, and more.<br />
* [http://xfce.wikia.com/wiki/Frequently_Asked_Questions Xfce Wikia] - How to edit the auto generated menu with the menu editor<br />
* [http://wiki.xfce.org Xfce Wiki]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Xfce_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=438408Xfce (한국어)2016-06-18T01:10:50Z<p>Sukbeom: /* Xfce 시작하기 */</p>
<hr />
<div>[[Category:Desktop environments (한국어)]]<br />
[[cs:Xfce]]<br />
[[de:Xfce]]<br />
[[es:Xfce]]<br />
[[fr:Xfce]]<br />
[[it:Xfce]]<br />
[[ja:Xfce]]<br />
[[pl:Xfce]]<br />
[[ru:Xfce]]<br />
[[tr:Xfce Masaüstü Ortamı]]<br />
[[uk:Xfce]]<br />
[[zh-CN:Xfce]]<br />
[[ko:Xfce]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Window manager}}<br />
{{Related|Xfwm}}<br />
{{Related|Thunar}}<br />
{{Related|LXDE}}<br />
{{Related|GNOME}}<br />
{{Related articles end}}<br />
<br />
[http://www.xfce.org Xfce]는 현재 GTK+ 2를 기반으로 하는 모듈식의 저용량 [[Desktop environment|데스크탑 환경]]이다. 완벽한 사용자 경험을 제공하기 위해 Xfce는 창 관리자, 파일 관리자, 데스크탑과 패널을 포함한다.<br />
<br />
== 설치하기 ==<br />
<br />
{{Grp|xfce4}} 그룹을 [[Install|설치]]한다. 추가 플러그인과 {{Pkg|mousepad}} 편집기와 같은 유용한 유틸리티를 설치하고자 하는 경우 {{Grp|xfce4-goodies}} 그룹으로 설치할 수 있다. Xfce는 [[Xfwm]]을 기본 창 관리자로 사용한다.<br />
<br />
== Xfce 시작하기 ==<br />
<br />
[[display manager]]의 선택 메뉴에서 ''Xfce Session'' 을 선택하거나 [[Xinitrc]]에 {{ic|exec startxfce4}}를 추가한다.<br />
<br />
{{주의|{{ic|xfce4-session}}을 직접 실행하지 않는다. {{ic|startxfce4}}의 호출이 올바른 실행법이며 해당 명령어에서 단계적으로 {{ic|xfce4-session}}을 적절한 시기에 호출한다.}}<br />
<br />
== 설정하기 ==<br />
<br />
Xfce는 설정 옵션들을 [http://docs.xfce.org/xfce/xfconf/start Xfconf]에 저장한다. 해당 옵션들을 설정하는 방법에는 다음과 같은 몇 가지 방법들이 있다.<br />
<br />
* 메인 메뉴에서 설정([http://docs.xfce.org/xfce/xfce4-settings/start Settings])을 클릭하고 설정하고자 하는 카테고리를 클릭한다. 카테고리들은 대부분 {{ic|/usr/bin/xfce4-*}}와 {{ic|/usr/bin/xfdesktop-settings}}에 위치한 프로그램들이다.<br />
* {{ic|xfce4-settings-editor}}을 통해 수정가능한 설정을 확인할 수 있다. 여기서 수정된 사항들은 곧바로 적용된다. {{ic|xfconf-query}}를 사용하여 커맨드라인에서 설정을 변경할 수도 있다. 자세한 사항은 [http://docs.xfce.org/xfce/xfconf/xfconf-query the documentation]을 참고하기 바란다.<br />
* 설정은 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/}} 에 XML 파일에 저장되며 해당 파일은 직접적으로 수정될 수 있다. 하지만 변경된 사항은 ''곧바로 적용되지 않는다''.<br />
<br />
=== Menu ===<br />
<br />
==== Whisker menu ====<br />
<br />
{{Pkg|xfce4-whiskermenu-plugin}} is an alternate application launcher. It shows a list of favorites, browses through all installed applications through category buttons, and supports fuzzy searching.<br />
<br />
==== Edit entries ====<br />
<br />
A number of graphical tools are available for this task:<br />
<br />
* {{App|XAME|GUI tool written in Gambas designed specifically for editing menu entries in Xfce, it will not work in other environments.|http://www.redsquirrel87.com/XAME.html|{{AUR|xame}}}}<br />
* {{App|MenuLibre|An advanced menu editor that provides modern features in a clean, easy-to-use interface.|https://launchpad.net/menulibre|{{AUR|menulibre}}}}.<br />
* {{App|Alacarte|Menu editor for GNOME|http://www.gnome.org/|{{Pkg|alacarte}}}}<br />
<br />
Alternatively, create the file {{ic|~/.config/menus/xfce-applications.menu}} manually. See the example configuration below:<br />
<br />
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"<br />
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"><br />
<br />
<Menu><br />
<Name>Xfce</Name><br />
<MergeFile type="parent">/etc/xdg/menus/xfce-applications.menu</MergeFile><br />
<br />
<Exclude><br />
<Filename>xfce4-run.desktop</Filename><br />
<Filename>exo-terminal-emulator.desktop</Filename><br />
<Filename>exo-file-manager.desktop</Filename><br />
<Filename>exo-mail-reader.desktop</Filename><br />
<Filename>exo-web-browser.desktop</Filename><br />
<Filename>xfce4-about.desktop</Filename><br />
<Filename>xfhelp4.desktop</Filename><br />
</Exclude><br />
<br />
<Layout><br />
<Merge type="all"/><br />
<Separator/><br />
<Menuname>Settings</Menuname><br />
<Separator/><br />
<Filename>xfce4-session-logout.desktop</Filename><br />
</Layout><br />
</Menu><br />
<br />
The {{ic|<MergeFile>}} tag includes the default Xfce menu.<br />
<br />
The {{ic|<Exclude>}} tag excludes applications which we do not want to appear in the menu. Here we excluded some Xfce default shortcuts, but you can exclude {{ic|firefox.desktop}} or any other application.<br />
<br />
The {{ic|<Layout>}} tag defines the layout of the menu. The applications can be organized in folders or however we wish. For more details see the [http://wiki.xfce.org/howto/customize-menu Xfce wiki].<br />
<br />
You can also make changes to the Xfce menu by editing the {{ic|.desktop}} files themselves. To hide entries, see [[Desktop entries#Hide desktop entries]]. You can edit the application's category by modifying the {{ic|1=Categories=}} line of the desktop entry, see [[Desktop entries#File example]].<br />
<br />
=== Desktop ===<br />
<br />
==== Transparent background for icon titles ====<br />
<br />
To change the default white background of desktop icon titles to something more suitable, create or edit {{ic|~/.gtkrc-2.0}}:<br />
<br />
{{bc|<nowiki><br />
style "xfdesktop-icon-view" {<br />
XfdesktopIconView::label-alpha = 10<br />
base[NORMAL] = "#000000"<br />
base[SELECTED] = "#71B9FF"<br />
base[ACTIVE] = "#71B9FF"<br />
fg[NORMAL] = "#fcfcfc"<br />
fg[SELECTED] = "#ffffff"<br />
fg[ACTIVE] = "#ffffff"<br />
}<br />
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"<br />
</nowiki>}}<br />
<br />
==== Remove Thunar options from right-click menu ====<br />
<br />
Issue the following command:<br />
<br />
$ xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0<br />
<br />
==== Kill window shortcut ====<br />
<br />
Xfce does not have a shortcut to kill a window, for example when a program freezes.<br />
<br />
With {{Pkg|xorg-xkill}}, use {{ic|xkill}} to interactively kill a window. For the currently active window, use {{Pkg|xdotool}}:<br />
<br />
$ xdotool getwindowfocus windowkill<br />
<br />
Alternatively:<br />
<br />
$ xkill -id "$(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"<br />
<br />
To add the shortcut, use ''Settings > Keyboard'' or an application like {{pkg|xbindkeys}}.<br />
<br />
=== Session ===<br />
<br />
==== Startup applications ====<br />
<br />
To launch custom applications when Xfce starts up, click the ''Applications Menu > Settings > Settings Manager'' and then choose the ''Session and Startup'' option and click the tab ''Application Autostart''.<br />
You will see a list of programs that get launched on startup. To add an entry, click the ''Add'' button and fill out the form, specifying the path to an executable you want to run.<br />
<br />
Alternatively, add the commands you wish to run (including setting environment variables) to [[xinitrc]] (or [[xprofile]] when a [[display manager]] is being used).<br />
<br />
===== Delay application startup =====<br />
<br />
Sometimes it might be useful to delay the startup of an application. Specifying a command such as {{ic|sleep 3 && command}} under ''Application Autostart'' does not work. As a workaround, one can use the following syntax instead:<br />
<br />
sh -c "sleep 3 && command"<br />
<br />
==== Lock the screen ====<br />
<br />
To lock an Xfce4 session through the ''xflock4'' script one of {{Pkg|xscreensaver}}, {{Pkg|gnome-screensaver}}, {{Pkg|slock}} or {{Pkg|xlockmore}} packages needs to be installed. <br />
Alternatively you can set a lock command with<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l" --create -t string''<br />
<br />
If you want to update the command, you can use <br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l"<br />
<br />
See [[List of applications/Security#Screen lockers]] for a comprehensive list of screen lockers.<br />
<br />
{{Tip|The {{Pkg|light-locker}} session locker integrates with {{Pkg|xfce4-power-manager}}. If light-locker is installed, a ''Security'' tab is added to the power manager settings and the existing ''Lock screen when system is going for sleep'' setting is relocated under the ''Security'' tab.}}<br />
<br />
{{Note|1=The ''xflock4'' script can also be modified manually as described in the post [https://bbs.archlinux.org/viewtopic.php?id=189484]. To avoid having the changes overwritten on upgrades, you might wish to copy ''xflock4'' to {{ic|/usr/local/bin}} and make the changes to that copy as this will take precedence over the packaged version in {{ic|/usr/bin}}.}}<br />
<br />
==== User switching ====<br />
<br />
{{Note|For the User Switch action button to work without GDM, a workaround is required:<br />
* For LXDM - [[LXDM#Simultaneous users and switching users]].<br />
* For LightDM - [[LightDM#User switching under Xfce4]].}}<br />
<br />
Xfce4 has support for user switching when used with a [[Display manager]] that has this functionality - examples being [[LightDM]] and [[GDM]]. Please consult your display manager's wiki page for more information. When you have a display manager installed and configured correctly you can switch users from the 'action buttons' menu item in the panel.<br />
<br />
==== Disable saved sessions ====<br />
<br />
Per user, saved sessions can be disabled by executing the following:<br />
$ xfconf-query -t bool -c xfce4-session -p /general/SaveOnExit -s false<br />
Then navigate to ''Applications'' -> ''Settings'' -> ''Session and Startup'' -> ''Sessions'' and click the ''Clear saved sessions'' button.<br />
<br />
{{Tip|If the command above does not change the setting persistently, use the following command instead: {{ic|xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false}}}}<br />
<br />
Alternatively, Xfce [https://wiki.xfce.org/howto/kiosk_mode kiosk mode] can be used to disable the saving of sessions systemwide. To disable sessions, create or edit the file {{ic|/etc/xdg/xfce4/kiosk/kioskrc}} and add the following:<br />
<br />
[xfce4-session]<br />
SaveSession=NONE<br />
<br />
If kiosk mode is not working, the user can set read only permissions for the sessions directory:<br />
<br />
$ rm ~/.cache/sessions/* && chmod 500 ~/.cache/sessions<br />
<br />
This will prevent Xfce from saving any sessions despite any configuration that specifies otherwise.<br />
<br />
==== Default window manager ====<br />
<br />
{{Note|For the changes to take effect, you will need to clear the saved sessions and ensure that session saving is disabled when logging out for the first time. Once the window manager of choice is running, session saving can be enabled again.}}<br />
<br />
The files specifying the default window manager are found in the following locations:<br />
*{{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - per user<br />
*{{ic|/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - systemwide<br />
<br />
The default window manager for the user can be set easily using ''xfconf-query'':<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa '''wm_name'''<br />
<br />
If you want to start the window manager with command line options, see the command below:<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -t string -s '''wm_name''' -s '''--wm-option'''<br />
If you need more command line options, simply add more {{ic|-t string}} and {{ic|-s '''--wm-option'''}} arguments to the command.<br />
<br />
If you want to change the default window manager systemwide, edit the file specified above manually, changing ''xfwm4'' to the preferred window manager and adding more {{ic|1=<value type="string" value="'''--wm-option'''"/>}} lines for extra command line options if needed.<br />
<br />
You can also change the window manager by autostarting {{ic|'''wm_name''' --replace}} using the autostart facility or by running {{ic|'''wm_name''' --replace &}} in a terminal and making sure the session is saved on logout. Be aware though that this method does not truly change the default manager, it merely replaces it at login. Note that if you are using the autostart facility, you should disable saved sessions as this could lead to the new window manager being started twice after the default window manager.<br />
<br />
=== Theming ===<br />
<br />
XFCE themes are available at [http://www.xfce-look.org xfce-look.org]. ''Xfwm'' themes are stored in {{ic|/usr/share/themes/xfce4}}, and set in ''Settings > Window Manager''. [[GTK+]] themes are set in ''Settings > Appearance''.<br />
<br />
To achieve a uniform look for all applications, see [[Uniform look for Qt and GTK applications]].<br />
<br />
See also [[Cursor themes]], [[Icons]], and [[Font configuration]].<br />
<br />
=== Sound ===<br />
<br />
==== Xfce4 mixer ====<br />
<br />
{{Note|Xfce4 mixer and Xfce4 volumed are no longer being maintained upstream as they cannot be ported to GStreamer 1.0. For more information, see the 4.12 [http://www.xfce.org/about/news/?post&#61;1425081600 news post].}}<br />
<br />
Xfce4 mixer, provided by {{Pkg|xfce4-mixer}}, is the GUI mixer app and panel plugin from the Xfce team. It is part of the xfce4 group. For [[PulseAudio]] and [[OSS]] support, you will need to install {{Pkg|gstreamer0.10-good-plugins}} if it is not installed already.<br />
<br />
You might need to change the default sound card for Xfce4 mixer to function correctly. For further details, such as how to set the default sound card, see [[Advanced Linux Sound Architecture#Set the default sound card]]. Alternatively you can use [[PulseAudio]] together with {{Pkg|pavucontrol}} or [[OSS]]. For OSS, see [[OSS#Applications that use GStreamer]].<br />
<br />
If you did need to change the default soundcard, logout to ensure that the changes take effect.<br />
<br />
===== Change default sound card in Xfce4 mixer =====<br />
<br />
In some cases (when using [[PulseAudio]] or {{AUR|xfce4-volumed}} for instance) it might be necessary to change the default sound card in Xfce4 Mixer in order for volume control to work as expected. [http://grumbel.blogspot.co.uk/2011/10/fixing-volume-control-in-xfce4.html]<br />
<br />
To change the default sound card, open ''xfce4-settings-editor'' and navigate to '''xfce4-mixer''' and check the entries under '''sound-cards'''. Locate the correct entry for the card you are using and then replace the values of '''sound-card''' and '''active-card''' with the entry. If you are using PulseAudio then the entry will likely be similar to the following: '''PlaybackInternalAudioAnalogStereoPulseAudioMixer'''. Then logout for the changes to take effect.<br />
<br />
==== Keyboard volume buttons ====<br />
<br />
If the {{Pkg|xfce4-mixer}} package is version {{ic|4.10.0-3}} or greater, then the mixer panel applet provides the ability to control the volume using the keyboard. However, volume notifications will not be shown. Alternatively, {{AUR|xfce4-volumed}} maps volume keys to Xfce4 mixer, and displays notifications through Xfce4-notifyd.<br />
If you are using PulseAudio and you do not wish to use Xfce4 Mixer at all, install {{AUR|xfce4-pulseaudio-plugin}}. This provides a panel applet which has support for keyboard volume control and volume notifications.<br />
<br />
{{Warning|{{AUR|xfce4-pulseaudio-plugin}} might have high CPU usage (~5% on i7 Intel CPU).}}<br />
<br />
For non desktop environment specific alternatives, see [[List of applications#Volume managers]].<br />
<br />
===== Shortcuts =====<br />
<br />
If you are not using an applet or daemon that controls the volume keys, you can map volume control commands to your volume keys manually using Xfce's keyboard settings. For the sound system you are using, see the sections linked to below for the appropriate commands.<br />
*ALSA: see [[Advanced Linux Sound Architecture#Keyboard volume control]].<br />
*PulseAudio: see [[PulseAudio#Keyboard volume control]]<br />
*OSS: see [[OSS#Using multimedia keys with OSS]].<br />
<br />
=== Keyboard Shortcuts ===<br />
<br />
Keyboard shortcuts are defined in two places: ''Settings > Window Manager > Keyboard'', and ''Settings > Keyboard > Shortcuts''.<br />
<br />
=== Polkit Authentication Agent ===<br />
<br />
The {{Pkg|polkit-gnome}} agent will be installed along with {{Pkg|xfce4-session}} and autostarted automatically; no user intervention is required. For more information, see [[Polkit#Authentication agents]].<br />
<br />
A third party polkit authentication agent for Xfce is also available, see {{AUR|xfce-polkit-git}}.<br />
<br />
=== Display blanking ===<br />
<br />
{{Note|1=There are some issues associated with blanking and resuming from blanking in some configurations. See [https://bbs.archlinux.org/viewtopic.php?id=194313&p=2][https://bugzilla.xfce.org/show_bug.cgi?id=11107].}}<br />
<br />
Some programs that are commonly used with Xfce will control monitor blanking and [[DPMS]] (monitor powersaving) settings. They are discussed below.<br />
<br />
;Xfce Power Manager<br />
Xfce Power Manager will control blanking and DPMS settings. These settings can be configured by running ''xfce4-power-manager-settings'' and clicking the ''Display'' tab. Note that unticking the ''Handle display power management'' option means that the Power Manager will disable DPMS - it does not mean that the Power Manager will relinquish control of DPMS. Also note that it will not disable screen blanking. To disable both blanking and DPMS, right click on the power manager system tray icon or left click on the panel applet and make sure that the option labelled ''Presentation mode'' is ticked.<br />
<br />
;XScreenSaver<br />
See [[XScreenSaver#DPMS and blanking settings]]. Note that if XScreenSaver is running alongside Xfce Power Manager, it may not be entirely clear which application is in control of blanking and DPMS as both applications are competing for control of the same settings. Therefore, in a situation where it is important that the monitor not be blanked (when watching a film for instance), it is advisable to disable blanking and DPMS through both applications.<br />
<br />
;xset<br />
If neither of the above applications are running, then blanking and DPMS settings can be controlled using the ''xset'' command, see [[DPMS#Modifying DPMS and screensaver settings using xset]].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Hide partitions from thunar and xfdesktop ===<br />
<br />
See [[Udisks#Hide selected partitions]].<br />
<br />
=== Screenshots ===<br />
<br />
Xfce has its own screenshot tool, {{pkg|xfce4-screenshooter}}. It is part of the {{grp|xfce4-goodies}} group.<br />
<br />
Go to ''Applications > Settings > Keyboard'', ''Application Shortcuts''. Add the {{ic|xfce4-screenshooter -f}} (or {{ic|-w}} for the active window) command to use the {{ic|Print}} key in order to take fullscreen screenshots. See screenshooter's man page for other optional arguments.<br />
<br />
Alternatively, an independent screenshot program like [[Taking a screenshot#scrot|scrot]] can be used.<br />
<br />
=== Disable Terminal F1 and F11 shortcuts ===<br />
<br />
The xfce terminal binds F1 and F11 to help and fullscreen, respectively, which can make using programs like htop difficult. To disable those shortcuts, create or edit its configuration file, then log out and log back in. F10 can disabled in the Preferences menu.<br />
<br />
{{hc|~/.config/xfce4/terminal/accels.scm|<br />
(gtk_accel_path "<Actions>/terminal-window/fullscreen" "")<br />
(gtk_accel_path "<Actions>/terminal-window/contents" "")<br />
}}<br />
<br />
=== Terminal color themes or palettes ===<br />
<br />
Terminal color themes or palettes can be changed in GUI under Appearance tab in Preferences. These are the colors that are available to most console applications like [[Emacs]], [[Vi]] and so on. Their settings are stored individually for each system user in {{ic|~/.config/xfce4/terminal/terminalrc}} file. There are also so many other themes to choose from. Check forum thread [https://bbs.archlinux.org/viewtopic.php?id=51818 Terminal Colour Scheme Screenshots] for hundreds of available choices and themes.<br />
<br />
==== Changing default color theme ====<br />
<br />
XFCE's {{ic|extra/terminal}} package comes with a darker color palette. To change this, append the following in your terminalrc file for a lighter color theme, that is always visible in darker Terminal backgrounds.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
ColorPalette5=#38d0fcaaf3a9<br />
ColorPalette4=#e013a0a1612f<br />
ColorPalette2=#d456a81b7b42<br />
ColorPalette6=#ffff7062ffff<br />
ColorPalette3=#7ffff7bd7fff<br />
ColorPalette13=#82108210ffff<br />
<br />
==== Terminal tango color theme ====<br />
<br />
To switch to tango color theme, open with your favorite editor<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
And add(replace) these lines:<br />
<br />
ColorForeground=White<br />
ColorBackground=#323232323232<br />
ColorPalette1=#2e2e34343636<br />
ColorPalette2=#cccc00000000<br />
ColorPalette3=#4e4e9a9a0606<br />
ColorPalette4=#c4c4a0a00000<br />
ColorPalette5=#34346565a4a4<br />
ColorPalette6=#757550507b7b<br />
ColorPalette7=#060698989a9a<br />
ColorPalette8=#d3d3d7d7cfcf<br />
ColorPalette9=#555557575353<br />
ColorPalette10=#efef29292929<br />
ColorPalette11=#8a8ae2e23434<br />
ColorPalette12=#fcfce9e94f4f<br />
ColorPalette13=#72729f9fcfcf<br />
ColorPalette14=#adad7f7fa8a8<br />
ColorPalette15=#3434e2e2e2e2<br />
ColorPalette16=#eeeeeeeeecec<br />
<br />
=== Colour management ===<br />
<br />
Xfce has no native support for colour management. [https://bugzilla.xfce.org/show_bug.cgi?id=8559] See [[ICC profiles]] for alternatives.<br />
<br />
=== Multiple monitors ===<br />
<br />
As of {{Pkg|xfce4-settings}} version 4.11.4, Xfce has support for multiple monitors. Settings can be configured in the ''Applications'' -> ''Settings'' -> ''Display'' dialog. For more information, see the [http://docs.xfce.org/xfce/xfce4-settings/display display] article from the Xfce documentation.<br />
<br />
=== SSH agents ===<br />
<br />
By default Xfce 4.10 will try to load gpg-agent or ssh-agent in that order during session initialization. To disable this, create an xfconf key using the following command:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false<br />
<br />
To force using ssh-agent even if gpg-agent is installed, run the following instead:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s ssh-agent<br />
<br />
To use [[GNOME Keyring]], simply tick the checkbox ''Launch GNOME services on startup'' in the ''Advanced'' tab of ''Session Manager'' in Xfce's settings. This will also disable gpg-agent and ssh-agent.<br />
<br />
Source: http://docs.xfce.org/xfce/xfce4-session/advanced<br />
<br />
=== Scroll a background window without shifting focus on it ===<br />
<br />
Go to ''Main Menu > Settings > Window Manager Tweaks > Accessibility'' tab.<br />
Uncheck ''Raise windows when any mouse button is pressed''.<br />
<br />
=== Mouse button modifier ===<br />
<br />
By default, the mouse button modifier in Xfce is set to {{ic|Alt}}. This can be changed with ''xfconf-query''. For instance, the following command will set the {{ic|Super}} key as the mouse button modifier:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"<br />
<br />
Strictly speaking, using multiple modifiers is not supported. However, as a workaround, multiple modifiers can be specified if the key names are separated with {{ic|><}}. For instance, to set {{ic|Ctrl+Alt}} as the mouse button modifier, you can use the following command:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"<br />
<br />
== Troubleshooting ==<br />
<br />
=== Action buttons are missing icons ===<br />
<br />
This happens if icons for some actions (Suspend, Hibernate) are missing from the icon theme, or do not have the expected names. To fix this, install an icon theme which has the necessary icons already added; see [[Icons#Xfce icons]]. <br />
<br />
Then, you can switch to that icon theme using Applications -> Settings -> Appearance -> Icons.<br />
<br />
Alternatively you can use the required icons provided by the icon theme you installed in your current icon theme. To do so, you first need to find out what the currently used icon theme is called. You can do so by using the command below:<br />
<br />
$ xfconf-query -c xsettings -p /Net/IconThemeName<br />
<br />
Then set the following variable:<br />
<br />
$ icontheme=/usr/share/icons/''theme-name''<br />
<br />
where ''theme-name'' is the name of the current icon theme.<br />
<br />
Then create symbolic links from the current icon theme into the icon theme providing the icons (this example assumes the icons are being provided by the {{AUR|elementary-xfce-icons}} theme.)<br />
<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend.svg ${icontheme}/16x16/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend-hibernate.svg ${icontheme}/16x16/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend.svg ${icontheme}/22x22/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend-hibernate.svg ${icontheme}/22x22/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend.svg ${icontheme}/24x24/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend-hibernate.svg ${icontheme}/24x24/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend.svg ${icontheme}/48x48/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend-hibernate.svg ${icontheme}/48x48/actions/system-hibernate.svg<br />
<br />
Log out and in again, and you should see icons for all actions.<br />
<br />
=== Desktop icons rearrange themselves ===<br />
<br />
At certain events (such as opening the panel settings dialog) icons on the desktop rearrange themselves. This is because icon positions are determined by files in the {{ic|~/.config/xfce4/desktop/}} directory. Each time a change is made to the desktop (icons are added or removed or change position) a new file is generated in this directory and these files can conflict.<br />
<br />
To solve the problem, navigate to the directory and delete all the files other than the one which correctly defines the icon positions. You can determine which file defines the correct icon positions by opening it and examining the locations of the icons. The topmost row is defined as {{ic|row 0}} and the leftmost column is defined by {{ic|col 0}}. Therefore an entry of:<br />
<br />
[Firefox]<br />
row=3<br />
col=0<br />
<br />
means that the Firefox icon will be located on the 4th row of the leftmost column.<br />
<br />
=== GTK themes not working with multiple monitors ===<br />
<br />
Some configuration tools may corrupt displays.xml, which results in GTK themes under ''Applications Menu > Settings > Appearance'' ceasing to work. To fix the issue, delete {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml}} and reconfigure your screens.<br />
<br />
=== Icons do not appear in right-click menus ===<br />
<br />
{{Note|Despite the deprecation of GConf, this method does still work.}}<br />
<br />
Users may find that icons do not appear when right-clicking options within some applications, including those made with [[Qt]]. This problem only appears to happen within Xfce. Run these two commands:<br />
<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true<br />
<br />
=== Keyboard settings are not saved in xkb-plugin ===<br />
<br />
There is a bug in {{Pkg|xfce4-xkb-plugin}} ''0.5.4.1-1'' which causes it to lose keyboard, layout switching and compose key settings. [https://bugzilla.xfce.org/show_bug.cgi?id=10226] As a workaround, enable ''Use system defaults'' in {{ic|xfce4-keyboard-settings}}, then reconfigure ''xfce4-xkb-plugin''.<br />
<br />
=== NVIDIA and xfce4-sensors-plugin ===<br />
<br />
To detect and use sensors of nvidia gpu you need to install {{Pkg|libxnvctrl}} and then rebuild {{Pkg|xfce4-sensors-plugin}} with [[ABS]]. You also have the option of using {{AUR|xfce4-sensors-plugin-nvidia}} which replaces {{Pkg|xfce4-sensors-plugin}}.<br />
<br />
=== Panel applets keep being aligned on the left ===<br />
<br />
Add a separator someplace before the right end and set its "expand" property. [https://forums.linuxmint.com/viewtopic.php?f=110&t=155602}]<br />
<br />
=== Preferred Applications preferences have no effect ===<br />
<br />
Most applications rely on [[xdg-open]] for opening a preferred application for a given file or URL.<br />
<br />
In order for xdg-open and xdg-settings to detect and integrate with the Xfce desktop environment correctly, you need to [[install]] the {{Pkg|xorg-xprop}} package.<br />
<br />
If you do not do that, your preferred applications preferences (set by exo-preferred-applications) will not be obeyed.<br />
Installing the package and allowing ''xdg-open'' to detect that you are running Xfce makes it forward all calls to ''exo-open'' instead, which correctly uses all your preferred applications preferences.<br />
<br />
To make sure xdg-open integration is working correctly, ask ''xdg-settings'' for the default web browser and see what the result is:<br />
<br />
# xdg-settings get default-web-browser<br />
<br />
If it replies with:<br />
<br />
xdg-settings: unknown desktop environment<br />
<br />
it means that it has failed to detect Xfce as your desktop environment, which is likely due to a missing {{Pkg|xorg-xprop}} package.<br />
<br />
=== Restore default settings ===<br />
<br />
If for any reason you need to revert back: to the default settings, rename {{ic|~/.config/xfce4-session/}} and {{ic|~/.config/xfce4/}}<br />
<br />
$ mv ~/.config/xfce4-session/ ~/.config/xfce4-session-bak<br />
$ mv ~/.config/xfce4/ ~/.config/xfce4-bak<br />
<br />
Relogin for changes to take effect. If you get {{ic|Unable to load a failsafe session}} upon login, see the [[#Session failure]] section.<br />
<br />
=== Session failure ===<br />
<br />
Symptoms include:<br />
<br />
* The mouse is an X and/or does not appear at all;<br />
* Window decorations have disappeared and windows cannot be closed;<br />
* ({{ic|xfwm4-settings}}) will not start, reporting {{ic|These settings cannot work with your current window manager (unknown)}};<br />
* Errors reported by a [[display manager]] such as {{ic|No window manager registered on screen 0}}.<br />
* Unable to load a failsafe session:<br />
<br />
Unable to load a failsafe session.<br />
Unable to determine failsafe session name. Possible causes: xfconfd isn't running (D-Bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (must include "/etc"), or xfce4-session is installed incorrectly. <br />
<br />
Restarting xfce or rebooting your system may solve the problem, but a corrupt session is the likely cause. Delete the session folder:<br />
<br />
$ rm -r ~/.cache/sessions/<br />
<br />
Also make sure that the relevant folders in {{ic|$HOME}} are owned by the user starting {{ic|xfce4}}. See [[Chown]].<br />
<br />
=== Fonts in window title crashing xfce4-title ===<br />
<br />
[[Install]] {{Pkg|ttf-droid}} and {{Pkg|ttf-dejavu}}. See also {{Bug|44382}}.<br />
<br />
=== Laptop lid settings ignored ===<br />
<br />
You may find that the lid close settings in Xfce4 Power Manager are ignored, meaning that the laptop will always suspend on lid close, no matter what settings are chosen in the power manager. This is because the power manager is not set to handle lid close events by default. Instead, logind handles the lid close event. To change this behavior so that the the power manager handles lid close events, execute the following command:<br />
$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false<br />
Note that each time the laptop lid settings are changed in the power manager, this setting will be reset.<br />
<br />
=== Rendering issues with Adwaita theme ===<br />
<br />
Since the upgrade of gnome-themes-standard from 3.18.0-1 version to 3.20.0-1 the Adwaita theme exhibits several issues when being used in Xfce, like a frame around the notification area and dark background of the tooltip in eclipse. <br />
<br />
A ugly solution is to downgrade the {{Pkg|gnome-themes-standard}} to the old 3.18.0-1 meanwhile. The package can be downloaded at: <br />
$ wget <nowiki>https://archive.archlinux.org/repos/2016/04/08/extra/os/$(uname -m)/gnome-themes-standard-3.18.0-1-$(uname -m).pkg.tar.xz</nowiki><br />
and installed via pacman's {{ic|-U}} option.<br />
<br />
== See also ==<br />
<br />
* [http://www.xfce.org/about/ Xfce - About]<br />
* http://docs.xfce.org/ - The complete documentation.<br />
* [http://www.xfce-look.org/ Xfce-Look] - Themes, wallpapers, and more.<br />
* [http://xfce.wikia.com/wiki/Frequently_Asked_Questions Xfce Wikia] - How to edit the auto generated menu with the menu editor<br />
* [http://wiki.xfce.org Xfce Wiki]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=User:Sukbeom&diff=438395User:Sukbeom2016-06-17T17:50:20Z<p>Sukbeom: Update personal about page</p>
<hr />
<div>Arch Linux Newbie<br />
<br />
'''Language'''<br />
* Korean<br />
* English<br />
<br />
'''Profiles''': [https://aur.archlinux.org/account/sukbeom_kim/ AUR], [https://github.com/seokbeomKim GitHub]<br />
== About ==<br />
* Korean ArchLinux user</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Xfce_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=438394Xfce (한국어)2016-06-17T17:29:45Z<p>Sukbeom: </p>
<hr />
<div>[[Category:Desktop environments (한국어)]]<br />
[[cs:Xfce]]<br />
[[de:Xfce]]<br />
[[es:Xfce]]<br />
[[fr:Xfce]]<br />
[[it:Xfce]]<br />
[[ja:Xfce]]<br />
[[pl:Xfce]]<br />
[[ru:Xfce]]<br />
[[tr:Xfce Masaüstü Ortamı]]<br />
[[uk:Xfce]]<br />
[[zh-CN:Xfce]]<br />
[[ko:Xfce]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Window manager}}<br />
{{Related|Xfwm}}<br />
{{Related|Thunar}}<br />
{{Related|LXDE}}<br />
{{Related|GNOME}}<br />
{{Related articles end}}<br />
<br />
[http://www.xfce.org Xfce]는 현재 GTK+ 2를 기반으로 하는 모듈식의 저용량 [[Desktop environment|데스크탑 환경]]이다. 완벽한 사용자 경험을 제공하기 위해 Xfce는 창 관리자, 파일 관리자, 데스크탑과 패널을 포함한다.<br />
<br />
== 설치하기 ==<br />
<br />
{{Grp|xfce4}} 그룹을 [[Install|설치]]한다. 추가 플러그인과 {{Pkg|mousepad}} 편집기와 같은 유용한 유틸리티를 설치하고자 하는 경우 {{Grp|xfce4-goodies}} 그룹으로 설치할 수 있다. Xfce는 [[Xfwm]]을 기본 창 관리자로 사용한다.<br />
<br />
== Xfce 시작하기 ==<br />
<br />
[[display manager]]의 선택 메뉴에서 ''Xfce Session'' 을 선택하거나 [[Xinitrc]]에 {{ic|exec startxfce4}}를 추가한다.<br />
<br />
{{주의|{{ic|xfce4-session}}을 직접 실행하지 않는다. {{ic|startxfce4}}이 올바른 명령어이며 단계적으로 {{ic|xfce4-session}}을 적절한 시기에 호출한다.}}<br />
<br />
== 설정하기 ==<br />
<br />
Xfce는 설정 옵션들을 [http://docs.xfce.org/xfce/xfconf/start Xfconf]에 저장한다. 해당 옵션들을 설정하는 방법에는 다음과 같은 몇 가지 방법들이 있다.<br />
<br />
* 메인 메뉴에서 설정([http://docs.xfce.org/xfce/xfce4-settings/start Settings])을 클릭하고 설정하고자 하는 카테고리를 클릭한다. 카테고리들은 대부분 {{ic|/usr/bin/xfce4-*}}와 {{ic|/usr/bin/xfdesktop-settings}}에 위치한 프로그램들이다.<br />
* {{ic|xfce4-settings-editor}}을 통해 수정가능한 설정을 확인할 수 있다. 여기서 수정된 사항들은 곧바로 적용된다. {{ic|xfconf-query}}를 사용하여 커맨드라인에서 설정을 변경할 수도 있다. 자세한 사항은 [http://docs.xfce.org/xfce/xfconf/xfconf-query the documentation]을 참고하기 바란다.<br />
* 설정은 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/}} 에 XML 파일에 저장되며 해당 파일은 직접적으로 수정될 수 있다. 하지만 변경된 사항은 ''곧바로 적용되지 않는다''.<br />
<br />
=== Menu ===<br />
<br />
==== Whisker menu ====<br />
<br />
{{Pkg|xfce4-whiskermenu-plugin}} is an alternate application launcher. It shows a list of favorites, browses through all installed applications through category buttons, and supports fuzzy searching.<br />
<br />
==== Edit entries ====<br />
<br />
A number of graphical tools are available for this task:<br />
<br />
* {{App|XAME|GUI tool written in Gambas designed specifically for editing menu entries in Xfce, it will not work in other environments.|http://www.redsquirrel87.com/XAME.html|{{AUR|xame}}}}<br />
* {{App|MenuLibre|An advanced menu editor that provides modern features in a clean, easy-to-use interface.|https://launchpad.net/menulibre|{{AUR|menulibre}}}}.<br />
* {{App|Alacarte|Menu editor for GNOME|http://www.gnome.org/|{{Pkg|alacarte}}}}<br />
<br />
Alternatively, create the file {{ic|~/.config/menus/xfce-applications.menu}} manually. See the example configuration below:<br />
<br />
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"<br />
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"><br />
<br />
<Menu><br />
<Name>Xfce</Name><br />
<MergeFile type="parent">/etc/xdg/menus/xfce-applications.menu</MergeFile><br />
<br />
<Exclude><br />
<Filename>xfce4-run.desktop</Filename><br />
<Filename>exo-terminal-emulator.desktop</Filename><br />
<Filename>exo-file-manager.desktop</Filename><br />
<Filename>exo-mail-reader.desktop</Filename><br />
<Filename>exo-web-browser.desktop</Filename><br />
<Filename>xfce4-about.desktop</Filename><br />
<Filename>xfhelp4.desktop</Filename><br />
</Exclude><br />
<br />
<Layout><br />
<Merge type="all"/><br />
<Separator/><br />
<Menuname>Settings</Menuname><br />
<Separator/><br />
<Filename>xfce4-session-logout.desktop</Filename><br />
</Layout><br />
</Menu><br />
<br />
The {{ic|<MergeFile>}} tag includes the default Xfce menu.<br />
<br />
The {{ic|<Exclude>}} tag excludes applications which we do not want to appear in the menu. Here we excluded some Xfce default shortcuts, but you can exclude {{ic|firefox.desktop}} or any other application.<br />
<br />
The {{ic|<Layout>}} tag defines the layout of the menu. The applications can be organized in folders or however we wish. For more details see the [http://wiki.xfce.org/howto/customize-menu Xfce wiki].<br />
<br />
You can also make changes to the Xfce menu by editing the {{ic|.desktop}} files themselves. To hide entries, see [[Desktop entries#Hide desktop entries]]. You can edit the application's category by modifying the {{ic|1=Categories=}} line of the desktop entry, see [[Desktop entries#File example]].<br />
<br />
=== Desktop ===<br />
<br />
==== Transparent background for icon titles ====<br />
<br />
To change the default white background of desktop icon titles to something more suitable, create or edit {{ic|~/.gtkrc-2.0}}:<br />
<br />
{{bc|<nowiki><br />
style "xfdesktop-icon-view" {<br />
XfdesktopIconView::label-alpha = 10<br />
base[NORMAL] = "#000000"<br />
base[SELECTED] = "#71B9FF"<br />
base[ACTIVE] = "#71B9FF"<br />
fg[NORMAL] = "#fcfcfc"<br />
fg[SELECTED] = "#ffffff"<br />
fg[ACTIVE] = "#ffffff"<br />
}<br />
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"<br />
</nowiki>}}<br />
<br />
==== Remove Thunar options from right-click menu ====<br />
<br />
Issue the following command:<br />
<br />
$ xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0<br />
<br />
==== Kill window shortcut ====<br />
<br />
Xfce does not have a shortcut to kill a window, for example when a program freezes.<br />
<br />
With {{Pkg|xorg-xkill}}, use {{ic|xkill}} to interactively kill a window. For the currently active window, use {{Pkg|xdotool}}:<br />
<br />
$ xdotool getwindowfocus windowkill<br />
<br />
Alternatively:<br />
<br />
$ xkill -id "$(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"<br />
<br />
To add the shortcut, use ''Settings > Keyboard'' or an application like {{pkg|xbindkeys}}.<br />
<br />
=== Session ===<br />
<br />
==== Startup applications ====<br />
<br />
To launch custom applications when Xfce starts up, click the ''Applications Menu > Settings > Settings Manager'' and then choose the ''Session and Startup'' option and click the tab ''Application Autostart''.<br />
You will see a list of programs that get launched on startup. To add an entry, click the ''Add'' button and fill out the form, specifying the path to an executable you want to run.<br />
<br />
Alternatively, add the commands you wish to run (including setting environment variables) to [[xinitrc]] (or [[xprofile]] when a [[display manager]] is being used).<br />
<br />
===== Delay application startup =====<br />
<br />
Sometimes it might be useful to delay the startup of an application. Specifying a command such as {{ic|sleep 3 && command}} under ''Application Autostart'' does not work. As a workaround, one can use the following syntax instead:<br />
<br />
sh -c "sleep 3 && command"<br />
<br />
==== Lock the screen ====<br />
<br />
To lock an Xfce4 session through the ''xflock4'' script one of {{Pkg|xscreensaver}}, {{Pkg|gnome-screensaver}}, {{Pkg|slock}} or {{Pkg|xlockmore}} packages needs to be installed. <br />
Alternatively you can set a lock command with<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l" --create -t string''<br />
<br />
If you want to update the command, you can use <br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l"<br />
<br />
See [[List of applications/Security#Screen lockers]] for a comprehensive list of screen lockers.<br />
<br />
{{Tip|The {{Pkg|light-locker}} session locker integrates with {{Pkg|xfce4-power-manager}}. If light-locker is installed, a ''Security'' tab is added to the power manager settings and the existing ''Lock screen when system is going for sleep'' setting is relocated under the ''Security'' tab.}}<br />
<br />
{{Note|1=The ''xflock4'' script can also be modified manually as described in the post [https://bbs.archlinux.org/viewtopic.php?id=189484]. To avoid having the changes overwritten on upgrades, you might wish to copy ''xflock4'' to {{ic|/usr/local/bin}} and make the changes to that copy as this will take precedence over the packaged version in {{ic|/usr/bin}}.}}<br />
<br />
==== User switching ====<br />
<br />
{{Note|For the User Switch action button to work without GDM, a workaround is required:<br />
* For LXDM - [[LXDM#Simultaneous users and switching users]].<br />
* For LightDM - [[LightDM#User switching under Xfce4]].}}<br />
<br />
Xfce4 has support for user switching when used with a [[Display manager]] that has this functionality - examples being [[LightDM]] and [[GDM]]. Please consult your display manager's wiki page for more information. When you have a display manager installed and configured correctly you can switch users from the 'action buttons' menu item in the panel.<br />
<br />
==== Disable saved sessions ====<br />
<br />
Per user, saved sessions can be disabled by executing the following:<br />
$ xfconf-query -t bool -c xfce4-session -p /general/SaveOnExit -s false<br />
Then navigate to ''Applications'' -> ''Settings'' -> ''Session and Startup'' -> ''Sessions'' and click the ''Clear saved sessions'' button.<br />
<br />
{{Tip|If the command above does not change the setting persistently, use the following command instead: {{ic|xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false}}}}<br />
<br />
Alternatively, Xfce [https://wiki.xfce.org/howto/kiosk_mode kiosk mode] can be used to disable the saving of sessions systemwide. To disable sessions, create or edit the file {{ic|/etc/xdg/xfce4/kiosk/kioskrc}} and add the following:<br />
<br />
[xfce4-session]<br />
SaveSession=NONE<br />
<br />
If kiosk mode is not working, the user can set read only permissions for the sessions directory:<br />
<br />
$ rm ~/.cache/sessions/* && chmod 500 ~/.cache/sessions<br />
<br />
This will prevent Xfce from saving any sessions despite any configuration that specifies otherwise.<br />
<br />
==== Default window manager ====<br />
<br />
{{Note|For the changes to take effect, you will need to clear the saved sessions and ensure that session saving is disabled when logging out for the first time. Once the window manager of choice is running, session saving can be enabled again.}}<br />
<br />
The files specifying the default window manager are found in the following locations:<br />
*{{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - per user<br />
*{{ic|/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - systemwide<br />
<br />
The default window manager for the user can be set easily using ''xfconf-query'':<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa '''wm_name'''<br />
<br />
If you want to start the window manager with command line options, see the command below:<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -t string -s '''wm_name''' -s '''--wm-option'''<br />
If you need more command line options, simply add more {{ic|-t string}} and {{ic|-s '''--wm-option'''}} arguments to the command.<br />
<br />
If you want to change the default window manager systemwide, edit the file specified above manually, changing ''xfwm4'' to the preferred window manager and adding more {{ic|1=<value type="string" value="'''--wm-option'''"/>}} lines for extra command line options if needed.<br />
<br />
You can also change the window manager by autostarting {{ic|'''wm_name''' --replace}} using the autostart facility or by running {{ic|'''wm_name''' --replace &}} in a terminal and making sure the session is saved on logout. Be aware though that this method does not truly change the default manager, it merely replaces it at login. Note that if you are using the autostart facility, you should disable saved sessions as this could lead to the new window manager being started twice after the default window manager.<br />
<br />
=== Theming ===<br />
<br />
XFCE themes are available at [http://www.xfce-look.org xfce-look.org]. ''Xfwm'' themes are stored in {{ic|/usr/share/themes/xfce4}}, and set in ''Settings > Window Manager''. [[GTK+]] themes are set in ''Settings > Appearance''.<br />
<br />
To achieve a uniform look for all applications, see [[Uniform look for Qt and GTK applications]].<br />
<br />
See also [[Cursor themes]], [[Icons]], and [[Font configuration]].<br />
<br />
=== Sound ===<br />
<br />
==== Xfce4 mixer ====<br />
<br />
{{Note|Xfce4 mixer and Xfce4 volumed are no longer being maintained upstream as they cannot be ported to GStreamer 1.0. For more information, see the 4.12 [http://www.xfce.org/about/news/?post&#61;1425081600 news post].}}<br />
<br />
Xfce4 mixer, provided by {{Pkg|xfce4-mixer}}, is the GUI mixer app and panel plugin from the Xfce team. It is part of the xfce4 group. For [[PulseAudio]] and [[OSS]] support, you will need to install {{Pkg|gstreamer0.10-good-plugins}} if it is not installed already.<br />
<br />
You might need to change the default sound card for Xfce4 mixer to function correctly. For further details, such as how to set the default sound card, see [[Advanced Linux Sound Architecture#Set the default sound card]]. Alternatively you can use [[PulseAudio]] together with {{Pkg|pavucontrol}} or [[OSS]]. For OSS, see [[OSS#Applications that use GStreamer]].<br />
<br />
If you did need to change the default soundcard, logout to ensure that the changes take effect.<br />
<br />
===== Change default sound card in Xfce4 mixer =====<br />
<br />
In some cases (when using [[PulseAudio]] or {{AUR|xfce4-volumed}} for instance) it might be necessary to change the default sound card in Xfce4 Mixer in order for volume control to work as expected. [http://grumbel.blogspot.co.uk/2011/10/fixing-volume-control-in-xfce4.html]<br />
<br />
To change the default sound card, open ''xfce4-settings-editor'' and navigate to '''xfce4-mixer''' and check the entries under '''sound-cards'''. Locate the correct entry for the card you are using and then replace the values of '''sound-card''' and '''active-card''' with the entry. If you are using PulseAudio then the entry will likely be similar to the following: '''PlaybackInternalAudioAnalogStereoPulseAudioMixer'''. Then logout for the changes to take effect.<br />
<br />
==== Keyboard volume buttons ====<br />
<br />
If the {{Pkg|xfce4-mixer}} package is version {{ic|4.10.0-3}} or greater, then the mixer panel applet provides the ability to control the volume using the keyboard. However, volume notifications will not be shown. Alternatively, {{AUR|xfce4-volumed}} maps volume keys to Xfce4 mixer, and displays notifications through Xfce4-notifyd.<br />
If you are using PulseAudio and you do not wish to use Xfce4 Mixer at all, install {{AUR|xfce4-pulseaudio-plugin}}. This provides a panel applet which has support for keyboard volume control and volume notifications.<br />
<br />
{{Warning|{{AUR|xfce4-pulseaudio-plugin}} might have high CPU usage (~5% on i7 Intel CPU).}}<br />
<br />
For non desktop environment specific alternatives, see [[List of applications#Volume managers]].<br />
<br />
===== Shortcuts =====<br />
<br />
If you are not using an applet or daemon that controls the volume keys, you can map volume control commands to your volume keys manually using Xfce's keyboard settings. For the sound system you are using, see the sections linked to below for the appropriate commands.<br />
*ALSA: see [[Advanced Linux Sound Architecture#Keyboard volume control]].<br />
*PulseAudio: see [[PulseAudio#Keyboard volume control]]<br />
*OSS: see [[OSS#Using multimedia keys with OSS]].<br />
<br />
=== Keyboard Shortcuts ===<br />
<br />
Keyboard shortcuts are defined in two places: ''Settings > Window Manager > Keyboard'', and ''Settings > Keyboard > Shortcuts''.<br />
<br />
=== Polkit Authentication Agent ===<br />
<br />
The {{Pkg|polkit-gnome}} agent will be installed along with {{Pkg|xfce4-session}} and autostarted automatically; no user intervention is required. For more information, see [[Polkit#Authentication agents]].<br />
<br />
A third party polkit authentication agent for Xfce is also available, see {{AUR|xfce-polkit-git}}.<br />
<br />
=== Display blanking ===<br />
<br />
{{Note|1=There are some issues associated with blanking and resuming from blanking in some configurations. See [https://bbs.archlinux.org/viewtopic.php?id=194313&p=2][https://bugzilla.xfce.org/show_bug.cgi?id=11107].}}<br />
<br />
Some programs that are commonly used with Xfce will control monitor blanking and [[DPMS]] (monitor powersaving) settings. They are discussed below.<br />
<br />
;Xfce Power Manager<br />
Xfce Power Manager will control blanking and DPMS settings. These settings can be configured by running ''xfce4-power-manager-settings'' and clicking the ''Display'' tab. Note that unticking the ''Handle display power management'' option means that the Power Manager will disable DPMS - it does not mean that the Power Manager will relinquish control of DPMS. Also note that it will not disable screen blanking. To disable both blanking and DPMS, right click on the power manager system tray icon or left click on the panel applet and make sure that the option labelled ''Presentation mode'' is ticked.<br />
<br />
;XScreenSaver<br />
See [[XScreenSaver#DPMS and blanking settings]]. Note that if XScreenSaver is running alongside Xfce Power Manager, it may not be entirely clear which application is in control of blanking and DPMS as both applications are competing for control of the same settings. Therefore, in a situation where it is important that the monitor not be blanked (when watching a film for instance), it is advisable to disable blanking and DPMS through both applications.<br />
<br />
;xset<br />
If neither of the above applications are running, then blanking and DPMS settings can be controlled using the ''xset'' command, see [[DPMS#Modifying DPMS and screensaver settings using xset]].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Hide partitions from thunar and xfdesktop ===<br />
<br />
See [[Udisks#Hide selected partitions]].<br />
<br />
=== Screenshots ===<br />
<br />
Xfce has its own screenshot tool, {{pkg|xfce4-screenshooter}}. It is part of the {{grp|xfce4-goodies}} group.<br />
<br />
Go to ''Applications > Settings > Keyboard'', ''Application Shortcuts''. Add the {{ic|xfce4-screenshooter -f}} (or {{ic|-w}} for the active window) command to use the {{ic|Print}} key in order to take fullscreen screenshots. See screenshooter's man page for other optional arguments.<br />
<br />
Alternatively, an independent screenshot program like [[Taking a screenshot#scrot|scrot]] can be used.<br />
<br />
=== Disable Terminal F1 and F11 shortcuts ===<br />
<br />
The xfce terminal binds F1 and F11 to help and fullscreen, respectively, which can make using programs like htop difficult. To disable those shortcuts, create or edit its configuration file, then log out and log back in. F10 can disabled in the Preferences menu.<br />
<br />
{{hc|~/.config/xfce4/terminal/accels.scm|<br />
(gtk_accel_path "<Actions>/terminal-window/fullscreen" "")<br />
(gtk_accel_path "<Actions>/terminal-window/contents" "")<br />
}}<br />
<br />
=== Terminal color themes or palettes ===<br />
<br />
Terminal color themes or palettes can be changed in GUI under Appearance tab in Preferences. These are the colors that are available to most console applications like [[Emacs]], [[Vi]] and so on. Their settings are stored individually for each system user in {{ic|~/.config/xfce4/terminal/terminalrc}} file. There are also so many other themes to choose from. Check forum thread [https://bbs.archlinux.org/viewtopic.php?id=51818 Terminal Colour Scheme Screenshots] for hundreds of available choices and themes.<br />
<br />
==== Changing default color theme ====<br />
<br />
XFCE's {{ic|extra/terminal}} package comes with a darker color palette. To change this, append the following in your terminalrc file for a lighter color theme, that is always visible in darker Terminal backgrounds.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
ColorPalette5=#38d0fcaaf3a9<br />
ColorPalette4=#e013a0a1612f<br />
ColorPalette2=#d456a81b7b42<br />
ColorPalette6=#ffff7062ffff<br />
ColorPalette3=#7ffff7bd7fff<br />
ColorPalette13=#82108210ffff<br />
<br />
==== Terminal tango color theme ====<br />
<br />
To switch to tango color theme, open with your favorite editor<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
And add(replace) these lines:<br />
<br />
ColorForeground=White<br />
ColorBackground=#323232323232<br />
ColorPalette1=#2e2e34343636<br />
ColorPalette2=#cccc00000000<br />
ColorPalette3=#4e4e9a9a0606<br />
ColorPalette4=#c4c4a0a00000<br />
ColorPalette5=#34346565a4a4<br />
ColorPalette6=#757550507b7b<br />
ColorPalette7=#060698989a9a<br />
ColorPalette8=#d3d3d7d7cfcf<br />
ColorPalette9=#555557575353<br />
ColorPalette10=#efef29292929<br />
ColorPalette11=#8a8ae2e23434<br />
ColorPalette12=#fcfce9e94f4f<br />
ColorPalette13=#72729f9fcfcf<br />
ColorPalette14=#adad7f7fa8a8<br />
ColorPalette15=#3434e2e2e2e2<br />
ColorPalette16=#eeeeeeeeecec<br />
<br />
=== Colour management ===<br />
<br />
Xfce has no native support for colour management. [https://bugzilla.xfce.org/show_bug.cgi?id=8559] See [[ICC profiles]] for alternatives.<br />
<br />
=== Multiple monitors ===<br />
<br />
As of {{Pkg|xfce4-settings}} version 4.11.4, Xfce has support for multiple monitors. Settings can be configured in the ''Applications'' -> ''Settings'' -> ''Display'' dialog. For more information, see the [http://docs.xfce.org/xfce/xfce4-settings/display display] article from the Xfce documentation.<br />
<br />
=== SSH agents ===<br />
<br />
By default Xfce 4.10 will try to load gpg-agent or ssh-agent in that order during session initialization. To disable this, create an xfconf key using the following command:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false<br />
<br />
To force using ssh-agent even if gpg-agent is installed, run the following instead:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s ssh-agent<br />
<br />
To use [[GNOME Keyring]], simply tick the checkbox ''Launch GNOME services on startup'' in the ''Advanced'' tab of ''Session Manager'' in Xfce's settings. This will also disable gpg-agent and ssh-agent.<br />
<br />
Source: http://docs.xfce.org/xfce/xfce4-session/advanced<br />
<br />
=== Scroll a background window without shifting focus on it ===<br />
<br />
Go to ''Main Menu > Settings > Window Manager Tweaks > Accessibility'' tab.<br />
Uncheck ''Raise windows when any mouse button is pressed''.<br />
<br />
=== Mouse button modifier ===<br />
<br />
By default, the mouse button modifier in Xfce is set to {{ic|Alt}}. This can be changed with ''xfconf-query''. For instance, the following command will set the {{ic|Super}} key as the mouse button modifier:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"<br />
<br />
Strictly speaking, using multiple modifiers is not supported. However, as a workaround, multiple modifiers can be specified if the key names are separated with {{ic|><}}. For instance, to set {{ic|Ctrl+Alt}} as the mouse button modifier, you can use the following command:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"<br />
<br />
== Troubleshooting ==<br />
<br />
=== Action buttons are missing icons ===<br />
<br />
This happens if icons for some actions (Suspend, Hibernate) are missing from the icon theme, or do not have the expected names. To fix this, install an icon theme which has the necessary icons already added; see [[Icons#Xfce icons]]. <br />
<br />
Then, you can switch to that icon theme using Applications -> Settings -> Appearance -> Icons.<br />
<br />
Alternatively you can use the required icons provided by the icon theme you installed in your current icon theme. To do so, you first need to find out what the currently used icon theme is called. You can do so by using the command below:<br />
<br />
$ xfconf-query -c xsettings -p /Net/IconThemeName<br />
<br />
Then set the following variable:<br />
<br />
$ icontheme=/usr/share/icons/''theme-name''<br />
<br />
where ''theme-name'' is the name of the current icon theme.<br />
<br />
Then create symbolic links from the current icon theme into the icon theme providing the icons (this example assumes the icons are being provided by the {{AUR|elementary-xfce-icons}} theme.)<br />
<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend.svg ${icontheme}/16x16/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend-hibernate.svg ${icontheme}/16x16/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend.svg ${icontheme}/22x22/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend-hibernate.svg ${icontheme}/22x22/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend.svg ${icontheme}/24x24/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend-hibernate.svg ${icontheme}/24x24/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend.svg ${icontheme}/48x48/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend-hibernate.svg ${icontheme}/48x48/actions/system-hibernate.svg<br />
<br />
Log out and in again, and you should see icons for all actions.<br />
<br />
=== Desktop icons rearrange themselves ===<br />
<br />
At certain events (such as opening the panel settings dialog) icons on the desktop rearrange themselves. This is because icon positions are determined by files in the {{ic|~/.config/xfce4/desktop/}} directory. Each time a change is made to the desktop (icons are added or removed or change position) a new file is generated in this directory and these files can conflict.<br />
<br />
To solve the problem, navigate to the directory and delete all the files other than the one which correctly defines the icon positions. You can determine which file defines the correct icon positions by opening it and examining the locations of the icons. The topmost row is defined as {{ic|row 0}} and the leftmost column is defined by {{ic|col 0}}. Therefore an entry of:<br />
<br />
[Firefox]<br />
row=3<br />
col=0<br />
<br />
means that the Firefox icon will be located on the 4th row of the leftmost column.<br />
<br />
=== GTK themes not working with multiple monitors ===<br />
<br />
Some configuration tools may corrupt displays.xml, which results in GTK themes under ''Applications Menu > Settings > Appearance'' ceasing to work. To fix the issue, delete {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml}} and reconfigure your screens.<br />
<br />
=== Icons do not appear in right-click menus ===<br />
<br />
{{Note|Despite the deprecation of GConf, this method does still work.}}<br />
<br />
Users may find that icons do not appear when right-clicking options within some applications, including those made with [[Qt]]. This problem only appears to happen within Xfce. Run these two commands:<br />
<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true<br />
<br />
=== Keyboard settings are not saved in xkb-plugin ===<br />
<br />
There is a bug in {{Pkg|xfce4-xkb-plugin}} ''0.5.4.1-1'' which causes it to lose keyboard, layout switching and compose key settings. [https://bugzilla.xfce.org/show_bug.cgi?id=10226] As a workaround, enable ''Use system defaults'' in {{ic|xfce4-keyboard-settings}}, then reconfigure ''xfce4-xkb-plugin''.<br />
<br />
=== NVIDIA and xfce4-sensors-plugin ===<br />
<br />
To detect and use sensors of nvidia gpu you need to install {{Pkg|libxnvctrl}} and then rebuild {{Pkg|xfce4-sensors-plugin}} with [[ABS]]. You also have the option of using {{AUR|xfce4-sensors-plugin-nvidia}} which replaces {{Pkg|xfce4-sensors-plugin}}.<br />
<br />
=== Panel applets keep being aligned on the left ===<br />
<br />
Add a separator someplace before the right end and set its "expand" property. [https://forums.linuxmint.com/viewtopic.php?f=110&t=155602}]<br />
<br />
=== Preferred Applications preferences have no effect ===<br />
<br />
Most applications rely on [[xdg-open]] for opening a preferred application for a given file or URL.<br />
<br />
In order for xdg-open and xdg-settings to detect and integrate with the Xfce desktop environment correctly, you need to [[install]] the {{Pkg|xorg-xprop}} package.<br />
<br />
If you do not do that, your preferred applications preferences (set by exo-preferred-applications) will not be obeyed.<br />
Installing the package and allowing ''xdg-open'' to detect that you are running Xfce makes it forward all calls to ''exo-open'' instead, which correctly uses all your preferred applications preferences.<br />
<br />
To make sure xdg-open integration is working correctly, ask ''xdg-settings'' for the default web browser and see what the result is:<br />
<br />
# xdg-settings get default-web-browser<br />
<br />
If it replies with:<br />
<br />
xdg-settings: unknown desktop environment<br />
<br />
it means that it has failed to detect Xfce as your desktop environment, which is likely due to a missing {{Pkg|xorg-xprop}} package.<br />
<br />
=== Restore default settings ===<br />
<br />
If for any reason you need to revert back: to the default settings, rename {{ic|~/.config/xfce4-session/}} and {{ic|~/.config/xfce4/}}<br />
<br />
$ mv ~/.config/xfce4-session/ ~/.config/xfce4-session-bak<br />
$ mv ~/.config/xfce4/ ~/.config/xfce4-bak<br />
<br />
Relogin for changes to take effect. If you get {{ic|Unable to load a failsafe session}} upon login, see the [[#Session failure]] section.<br />
<br />
=== Session failure ===<br />
<br />
Symptoms include:<br />
<br />
* The mouse is an X and/or does not appear at all;<br />
* Window decorations have disappeared and windows cannot be closed;<br />
* ({{ic|xfwm4-settings}}) will not start, reporting {{ic|These settings cannot work with your current window manager (unknown)}};<br />
* Errors reported by a [[display manager]] such as {{ic|No window manager registered on screen 0}}.<br />
* Unable to load a failsafe session:<br />
<br />
Unable to load a failsafe session.<br />
Unable to determine failsafe session name. Possible causes: xfconfd isn't running (D-Bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (must include "/etc"), or xfce4-session is installed incorrectly. <br />
<br />
Restarting xfce or rebooting your system may solve the problem, but a corrupt session is the likely cause. Delete the session folder:<br />
<br />
$ rm -r ~/.cache/sessions/<br />
<br />
Also make sure that the relevant folders in {{ic|$HOME}} are owned by the user starting {{ic|xfce4}}. See [[Chown]].<br />
<br />
=== Fonts in window title crashing xfce4-title ===<br />
<br />
[[Install]] {{Pkg|ttf-droid}} and {{Pkg|ttf-dejavu}}. See also {{Bug|44382}}.<br />
<br />
=== Laptop lid settings ignored ===<br />
<br />
You may find that the lid close settings in Xfce4 Power Manager are ignored, meaning that the laptop will always suspend on lid close, no matter what settings are chosen in the power manager. This is because the power manager is not set to handle lid close events by default. Instead, logind handles the lid close event. To change this behavior so that the the power manager handles lid close events, execute the following command:<br />
$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false<br />
Note that each time the laptop lid settings are changed in the power manager, this setting will be reset.<br />
<br />
=== Rendering issues with Adwaita theme ===<br />
<br />
Since the upgrade of gnome-themes-standard from 3.18.0-1 version to 3.20.0-1 the Adwaita theme exhibits several issues when being used in Xfce, like a frame around the notification area and dark background of the tooltip in eclipse. <br />
<br />
A ugly solution is to downgrade the {{Pkg|gnome-themes-standard}} to the old 3.18.0-1 meanwhile. The package can be downloaded at: <br />
$ wget <nowiki>https://archive.archlinux.org/repos/2016/04/08/extra/os/$(uname -m)/gnome-themes-standard-3.18.0-1-$(uname -m).pkg.tar.xz</nowiki><br />
and installed via pacman's {{ic|-U}} option.<br />
<br />
== See also ==<br />
<br />
* [http://www.xfce.org/about/ Xfce - About]<br />
* http://docs.xfce.org/ - The complete documentation.<br />
* [http://www.xfce-look.org/ Xfce-Look] - Themes, wallpapers, and more.<br />
* [http://xfce.wikia.com/wiki/Frequently_Asked_Questions Xfce Wikia] - How to edit the auto generated menu with the menu editor<br />
* [http://wiki.xfce.org Xfce Wiki]</div>Sukbeomhttps://wiki.archlinux.org/index.php?title=Xfce_(%ED%95%9C%EA%B5%AD%EC%96%B4)&diff=438393Xfce (한국어)2016-06-17T17:24:58Z<p>Sukbeom: </p>
<hr />
<div>[[Category:Desktop environments (한국어)]]<br />
[[cs:Xfce]]<br />
[[de:Xfce]]<br />
[[es:Xfce]]<br />
[[fr:Xfce]]<br />
[[it:Xfce]]<br />
[[ja:Xfce]]<br />
[[pl:Xfce]]<br />
[[ru:Xfce]]<br />
[[tr:Xfce Masaüstü Ortamı]]<br />
[[uk:Xfce]]<br />
[[zh-CN:Xfce]]<br />
[[ko:Xfce]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Window manager}}<br />
{{Related|Xfwm}}<br />
{{Related|Thunar}}<br />
{{Related|LXDE}}<br />
{{Related|GNOME}}<br />
{{Related articles end}}<br />
<br />
[http://www.xfce.org Xfce]는 현재 GTK+ 2를 기반으로 하는 가벼운 모듈식의 [[Desktop environment|데스크탑 환경]]이다. 완벽한 사용자 경험을 제공하기 위해 Xfce는 창 관리자, 파일 관리자, 데스크탑과 패널을 포함한다.<br />
<br />
== 설치하기 ==<br />
<br />
{{Grp|xfce4}} 그룹을 [[Install|설치]]한다. 추가 플러그인과 {{Pkg|mousepad}} 편집기와 같은 유용한 유틸리티를 설치하고자 하는 경우 {{Grp|xfce4-goodies}} 그룹으로 설치할 수 있다. Xfce는 [[Xfwm]]을 기본 창 관리자로 사용한다.<br />
<br />
== Xfce 시작하기 ==<br />
<br />
[[display manager]]의 선택 메뉴에서 ''Xfce Session'' 을 선택하거나 [[Xinitrc]]에 {{ic|exec startxfce4}}를 추가한다.<br />
<br />
{{주의|{{ic|xfce4-session}}을 직접 실행하지 않는다. {{ic|startxfce4}}이 올바른 명령어이며 단계적으로 {{ic|xfce4-session}}을 적절한 시기에 호출한다.}}<br />
<br />
== 설정하기 ==<br />
<br />
Xfce는 설정 옵션들을 [http://docs.xfce.org/xfce/xfconf/start Xfconf]에 저장한다. 해당 옵션들을 설정하는 방법에는 다음과 같은 몇 가지 방법들이 있다.<br />
<br />
* 메인 메뉴에서 설정([http://docs.xfce.org/xfce/xfce4-settings/start Settings])을 클릭하고 설정하고자 하는 카테고리를 클릭한다. 카테고리들은 대부분 {{ic|/usr/bin/xfce4-*}}와 {{ic|/usr/bin/xfdesktop-settings}}에 위치한 프로그램들이다.<br />
* {{ic|xfce4-settings-editor}}을 통해 수정가능한 설정을 확인할 수 있다. 여기서 수정된 사항들은 곧바로 적용된다. {{ic|xfconf-query}}를 사용하여 커맨드라인에서 설정을 변경할 수도 있다. 자세한 사항은 [http://docs.xfce.org/xfce/xfconf/xfconf-query the documentation]을 참고하기 바란다.<br />
* 설정은 {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/}} 에 XML 파일에 저장되며 해당 파일은 직접적으로 수정될 수 있다. 하지만 변경된 사항은 ''곧바로 적용되지 않는다''.<br />
<br />
=== Menu ===<br />
<br />
==== Whisker menu ====<br />
<br />
{{Pkg|xfce4-whiskermenu-plugin}} is an alternate application launcher. It shows a list of favorites, browses through all installed applications through category buttons, and supports fuzzy searching.<br />
<br />
==== Edit entries ====<br />
<br />
A number of graphical tools are available for this task:<br />
<br />
* {{App|XAME|GUI tool written in Gambas designed specifically for editing menu entries in Xfce, it will not work in other environments.|http://www.redsquirrel87.com/XAME.html|{{AUR|xame}}}}<br />
* {{App|MenuLibre|An advanced menu editor that provides modern features in a clean, easy-to-use interface.|https://launchpad.net/menulibre|{{AUR|menulibre}}}}.<br />
* {{App|Alacarte|Menu editor for GNOME|http://www.gnome.org/|{{Pkg|alacarte}}}}<br />
<br />
Alternatively, create the file {{ic|~/.config/menus/xfce-applications.menu}} manually. See the example configuration below:<br />
<br />
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"<br />
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"><br />
<br />
<Menu><br />
<Name>Xfce</Name><br />
<MergeFile type="parent">/etc/xdg/menus/xfce-applications.menu</MergeFile><br />
<br />
<Exclude><br />
<Filename>xfce4-run.desktop</Filename><br />
<Filename>exo-terminal-emulator.desktop</Filename><br />
<Filename>exo-file-manager.desktop</Filename><br />
<Filename>exo-mail-reader.desktop</Filename><br />
<Filename>exo-web-browser.desktop</Filename><br />
<Filename>xfce4-about.desktop</Filename><br />
<Filename>xfhelp4.desktop</Filename><br />
</Exclude><br />
<br />
<Layout><br />
<Merge type="all"/><br />
<Separator/><br />
<Menuname>Settings</Menuname><br />
<Separator/><br />
<Filename>xfce4-session-logout.desktop</Filename><br />
</Layout><br />
</Menu><br />
<br />
The {{ic|<MergeFile>}} tag includes the default Xfce menu.<br />
<br />
The {{ic|<Exclude>}} tag excludes applications which we do not want to appear in the menu. Here we excluded some Xfce default shortcuts, but you can exclude {{ic|firefox.desktop}} or any other application.<br />
<br />
The {{ic|<Layout>}} tag defines the layout of the menu. The applications can be organized in folders or however we wish. For more details see the [http://wiki.xfce.org/howto/customize-menu Xfce wiki].<br />
<br />
You can also make changes to the Xfce menu by editing the {{ic|.desktop}} files themselves. To hide entries, see [[Desktop entries#Hide desktop entries]]. You can edit the application's category by modifying the {{ic|1=Categories=}} line of the desktop entry, see [[Desktop entries#File example]].<br />
<br />
=== Desktop ===<br />
<br />
==== Transparent background for icon titles ====<br />
<br />
To change the default white background of desktop icon titles to something more suitable, create or edit {{ic|~/.gtkrc-2.0}}:<br />
<br />
{{bc|<nowiki><br />
style "xfdesktop-icon-view" {<br />
XfdesktopIconView::label-alpha = 10<br />
base[NORMAL] = "#000000"<br />
base[SELECTED] = "#71B9FF"<br />
base[ACTIVE] = "#71B9FF"<br />
fg[NORMAL] = "#fcfcfc"<br />
fg[SELECTED] = "#ffffff"<br />
fg[ACTIVE] = "#ffffff"<br />
}<br />
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"<br />
</nowiki>}}<br />
<br />
==== Remove Thunar options from right-click menu ====<br />
<br />
Issue the following command:<br />
<br />
$ xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0<br />
<br />
==== Kill window shortcut ====<br />
<br />
Xfce does not have a shortcut to kill a window, for example when a program freezes.<br />
<br />
With {{Pkg|xorg-xkill}}, use {{ic|xkill}} to interactively kill a window. For the currently active window, use {{Pkg|xdotool}}:<br />
<br />
$ xdotool getwindowfocus windowkill<br />
<br />
Alternatively:<br />
<br />
$ xkill -id "$(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"<br />
<br />
To add the shortcut, use ''Settings > Keyboard'' or an application like {{pkg|xbindkeys}}.<br />
<br />
=== Session ===<br />
<br />
==== Startup applications ====<br />
<br />
To launch custom applications when Xfce starts up, click the ''Applications Menu > Settings > Settings Manager'' and then choose the ''Session and Startup'' option and click the tab ''Application Autostart''.<br />
You will see a list of programs that get launched on startup. To add an entry, click the ''Add'' button and fill out the form, specifying the path to an executable you want to run.<br />
<br />
Alternatively, add the commands you wish to run (including setting environment variables) to [[xinitrc]] (or [[xprofile]] when a [[display manager]] is being used).<br />
<br />
===== Delay application startup =====<br />
<br />
Sometimes it might be useful to delay the startup of an application. Specifying a command such as {{ic|sleep 3 && command}} under ''Application Autostart'' does not work. As a workaround, one can use the following syntax instead:<br />
<br />
sh -c "sleep 3 && command"<br />
<br />
==== Lock the screen ====<br />
<br />
To lock an Xfce4 session through the ''xflock4'' script one of {{Pkg|xscreensaver}}, {{Pkg|gnome-screensaver}}, {{Pkg|slock}} or {{Pkg|xlockmore}} packages needs to be installed. <br />
Alternatively you can set a lock command with<br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l" --create -t string''<br />
<br />
If you want to update the command, you can use <br />
<br />
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l"<br />
<br />
See [[List of applications/Security#Screen lockers]] for a comprehensive list of screen lockers.<br />
<br />
{{Tip|The {{Pkg|light-locker}} session locker integrates with {{Pkg|xfce4-power-manager}}. If light-locker is installed, a ''Security'' tab is added to the power manager settings and the existing ''Lock screen when system is going for sleep'' setting is relocated under the ''Security'' tab.}}<br />
<br />
{{Note|1=The ''xflock4'' script can also be modified manually as described in the post [https://bbs.archlinux.org/viewtopic.php?id=189484]. To avoid having the changes overwritten on upgrades, you might wish to copy ''xflock4'' to {{ic|/usr/local/bin}} and make the changes to that copy as this will take precedence over the packaged version in {{ic|/usr/bin}}.}}<br />
<br />
==== User switching ====<br />
<br />
{{Note|For the User Switch action button to work without GDM, a workaround is required:<br />
* For LXDM - [[LXDM#Simultaneous users and switching users]].<br />
* For LightDM - [[LightDM#User switching under Xfce4]].}}<br />
<br />
Xfce4 has support for user switching when used with a [[Display manager]] that has this functionality - examples being [[LightDM]] and [[GDM]]. Please consult your display manager's wiki page for more information. When you have a display manager installed and configured correctly you can switch users from the 'action buttons' menu item in the panel.<br />
<br />
==== Disable saved sessions ====<br />
<br />
Per user, saved sessions can be disabled by executing the following:<br />
$ xfconf-query -t bool -c xfce4-session -p /general/SaveOnExit -s false<br />
Then navigate to ''Applications'' -> ''Settings'' -> ''Session and Startup'' -> ''Sessions'' and click the ''Clear saved sessions'' button.<br />
<br />
{{Tip|If the command above does not change the setting persistently, use the following command instead: {{ic|xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false}}}}<br />
<br />
Alternatively, Xfce [https://wiki.xfce.org/howto/kiosk_mode kiosk mode] can be used to disable the saving of sessions systemwide. To disable sessions, create or edit the file {{ic|/etc/xdg/xfce4/kiosk/kioskrc}} and add the following:<br />
<br />
[xfce4-session]<br />
SaveSession=NONE<br />
<br />
If kiosk mode is not working, the user can set read only permissions for the sessions directory:<br />
<br />
$ rm ~/.cache/sessions/* && chmod 500 ~/.cache/sessions<br />
<br />
This will prevent Xfce from saving any sessions despite any configuration that specifies otherwise.<br />
<br />
==== Default window manager ====<br />
<br />
{{Note|For the changes to take effect, you will need to clear the saved sessions and ensure that session saving is disabled when logging out for the first time. Once the window manager of choice is running, session saving can be enabled again.}}<br />
<br />
The files specifying the default window manager are found in the following locations:<br />
*{{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - per user<br />
*{{ic|/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml}} - systemwide<br />
<br />
The default window manager for the user can be set easily using ''xfconf-query'':<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa '''wm_name'''<br />
<br />
If you want to start the window manager with command line options, see the command below:<br />
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -t string -s '''wm_name''' -s '''--wm-option'''<br />
If you need more command line options, simply add more {{ic|-t string}} and {{ic|-s '''--wm-option'''}} arguments to the command.<br />
<br />
If you want to change the default window manager systemwide, edit the file specified above manually, changing ''xfwm4'' to the preferred window manager and adding more {{ic|1=<value type="string" value="'''--wm-option'''"/>}} lines for extra command line options if needed.<br />
<br />
You can also change the window manager by autostarting {{ic|'''wm_name''' --replace}} using the autostart facility or by running {{ic|'''wm_name''' --replace &}} in a terminal and making sure the session is saved on logout. Be aware though that this method does not truly change the default manager, it merely replaces it at login. Note that if you are using the autostart facility, you should disable saved sessions as this could lead to the new window manager being started twice after the default window manager.<br />
<br />
=== Theming ===<br />
<br />
XFCE themes are available at [http://www.xfce-look.org xfce-look.org]. ''Xfwm'' themes are stored in {{ic|/usr/share/themes/xfce4}}, and set in ''Settings > Window Manager''. [[GTK+]] themes are set in ''Settings > Appearance''.<br />
<br />
To achieve a uniform look for all applications, see [[Uniform look for Qt and GTK applications]].<br />
<br />
See also [[Cursor themes]], [[Icons]], and [[Font configuration]].<br />
<br />
=== Sound ===<br />
<br />
==== Xfce4 mixer ====<br />
<br />
{{Note|Xfce4 mixer and Xfce4 volumed are no longer being maintained upstream as they cannot be ported to GStreamer 1.0. For more information, see the 4.12 [http://www.xfce.org/about/news/?post&#61;1425081600 news post].}}<br />
<br />
Xfce4 mixer, provided by {{Pkg|xfce4-mixer}}, is the GUI mixer app and panel plugin from the Xfce team. It is part of the xfce4 group. For [[PulseAudio]] and [[OSS]] support, you will need to install {{Pkg|gstreamer0.10-good-plugins}} if it is not installed already.<br />
<br />
You might need to change the default sound card for Xfce4 mixer to function correctly. For further details, such as how to set the default sound card, see [[Advanced Linux Sound Architecture#Set the default sound card]]. Alternatively you can use [[PulseAudio]] together with {{Pkg|pavucontrol}} or [[OSS]]. For OSS, see [[OSS#Applications that use GStreamer]].<br />
<br />
If you did need to change the default soundcard, logout to ensure that the changes take effect.<br />
<br />
===== Change default sound card in Xfce4 mixer =====<br />
<br />
In some cases (when using [[PulseAudio]] or {{AUR|xfce4-volumed}} for instance) it might be necessary to change the default sound card in Xfce4 Mixer in order for volume control to work as expected. [http://grumbel.blogspot.co.uk/2011/10/fixing-volume-control-in-xfce4.html]<br />
<br />
To change the default sound card, open ''xfce4-settings-editor'' and navigate to '''xfce4-mixer''' and check the entries under '''sound-cards'''. Locate the correct entry for the card you are using and then replace the values of '''sound-card''' and '''active-card''' with the entry. If you are using PulseAudio then the entry will likely be similar to the following: '''PlaybackInternalAudioAnalogStereoPulseAudioMixer'''. Then logout for the changes to take effect.<br />
<br />
==== Keyboard volume buttons ====<br />
<br />
If the {{Pkg|xfce4-mixer}} package is version {{ic|4.10.0-3}} or greater, then the mixer panel applet provides the ability to control the volume using the keyboard. However, volume notifications will not be shown. Alternatively, {{AUR|xfce4-volumed}} maps volume keys to Xfce4 mixer, and displays notifications through Xfce4-notifyd.<br />
If you are using PulseAudio and you do not wish to use Xfce4 Mixer at all, install {{AUR|xfce4-pulseaudio-plugin}}. This provides a panel applet which has support for keyboard volume control and volume notifications.<br />
<br />
{{Warning|{{AUR|xfce4-pulseaudio-plugin}} might have high CPU usage (~5% on i7 Intel CPU).}}<br />
<br />
For non desktop environment specific alternatives, see [[List of applications#Volume managers]].<br />
<br />
===== Shortcuts =====<br />
<br />
If you are not using an applet or daemon that controls the volume keys, you can map volume control commands to your volume keys manually using Xfce's keyboard settings. For the sound system you are using, see the sections linked to below for the appropriate commands.<br />
*ALSA: see [[Advanced Linux Sound Architecture#Keyboard volume control]].<br />
*PulseAudio: see [[PulseAudio#Keyboard volume control]]<br />
*OSS: see [[OSS#Using multimedia keys with OSS]].<br />
<br />
=== Keyboard Shortcuts ===<br />
<br />
Keyboard shortcuts are defined in two places: ''Settings > Window Manager > Keyboard'', and ''Settings > Keyboard > Shortcuts''.<br />
<br />
=== Polkit Authentication Agent ===<br />
<br />
The {{Pkg|polkit-gnome}} agent will be installed along with {{Pkg|xfce4-session}} and autostarted automatically; no user intervention is required. For more information, see [[Polkit#Authentication agents]].<br />
<br />
A third party polkit authentication agent for Xfce is also available, see {{AUR|xfce-polkit-git}}.<br />
<br />
=== Display blanking ===<br />
<br />
{{Note|1=There are some issues associated with blanking and resuming from blanking in some configurations. See [https://bbs.archlinux.org/viewtopic.php?id=194313&p=2][https://bugzilla.xfce.org/show_bug.cgi?id=11107].}}<br />
<br />
Some programs that are commonly used with Xfce will control monitor blanking and [[DPMS]] (monitor powersaving) settings. They are discussed below.<br />
<br />
;Xfce Power Manager<br />
Xfce Power Manager will control blanking and DPMS settings. These settings can be configured by running ''xfce4-power-manager-settings'' and clicking the ''Display'' tab. Note that unticking the ''Handle display power management'' option means that the Power Manager will disable DPMS - it does not mean that the Power Manager will relinquish control of DPMS. Also note that it will not disable screen blanking. To disable both blanking and DPMS, right click on the power manager system tray icon or left click on the panel applet and make sure that the option labelled ''Presentation mode'' is ticked.<br />
<br />
;XScreenSaver<br />
See [[XScreenSaver#DPMS and blanking settings]]. Note that if XScreenSaver is running alongside Xfce Power Manager, it may not be entirely clear which application is in control of blanking and DPMS as both applications are competing for control of the same settings. Therefore, in a situation where it is important that the monitor not be blanked (when watching a film for instance), it is advisable to disable blanking and DPMS through both applications.<br />
<br />
;xset<br />
If neither of the above applications are running, then blanking and DPMS settings can be controlled using the ''xset'' command, see [[DPMS#Modifying DPMS and screensaver settings using xset]].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Hide partitions from thunar and xfdesktop ===<br />
<br />
See [[Udisks#Hide selected partitions]].<br />
<br />
=== Screenshots ===<br />
<br />
Xfce has its own screenshot tool, {{pkg|xfce4-screenshooter}}. It is part of the {{grp|xfce4-goodies}} group.<br />
<br />
Go to ''Applications > Settings > Keyboard'', ''Application Shortcuts''. Add the {{ic|xfce4-screenshooter -f}} (or {{ic|-w}} for the active window) command to use the {{ic|Print}} key in order to take fullscreen screenshots. See screenshooter's man page for other optional arguments.<br />
<br />
Alternatively, an independent screenshot program like [[Taking a screenshot#scrot|scrot]] can be used.<br />
<br />
=== Disable Terminal F1 and F11 shortcuts ===<br />
<br />
The xfce terminal binds F1 and F11 to help and fullscreen, respectively, which can make using programs like htop difficult. To disable those shortcuts, create or edit its configuration file, then log out and log back in. F10 can disabled in the Preferences menu.<br />
<br />
{{hc|~/.config/xfce4/terminal/accels.scm|<br />
(gtk_accel_path "<Actions>/terminal-window/fullscreen" "")<br />
(gtk_accel_path "<Actions>/terminal-window/contents" "")<br />
}}<br />
<br />
=== Terminal color themes or palettes ===<br />
<br />
Terminal color themes or palettes can be changed in GUI under Appearance tab in Preferences. These are the colors that are available to most console applications like [[Emacs]], [[Vi]] and so on. Their settings are stored individually for each system user in {{ic|~/.config/xfce4/terminal/terminalrc}} file. There are also so many other themes to choose from. Check forum thread [https://bbs.archlinux.org/viewtopic.php?id=51818 Terminal Colour Scheme Screenshots] for hundreds of available choices and themes.<br />
<br />
==== Changing default color theme ====<br />
<br />
XFCE's {{ic|extra/terminal}} package comes with a darker color palette. To change this, append the following in your terminalrc file for a lighter color theme, that is always visible in darker Terminal backgrounds.<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
ColorPalette5=#38d0fcaaf3a9<br />
ColorPalette4=#e013a0a1612f<br />
ColorPalette2=#d456a81b7b42<br />
ColorPalette6=#ffff7062ffff<br />
ColorPalette3=#7ffff7bd7fff<br />
ColorPalette13=#82108210ffff<br />
<br />
==== Terminal tango color theme ====<br />
<br />
To switch to tango color theme, open with your favorite editor<br />
<br />
~/.config/xfce4/terminal/terminalrc<br />
<br />
And add(replace) these lines:<br />
<br />
ColorForeground=White<br />
ColorBackground=#323232323232<br />
ColorPalette1=#2e2e34343636<br />
ColorPalette2=#cccc00000000<br />
ColorPalette3=#4e4e9a9a0606<br />
ColorPalette4=#c4c4a0a00000<br />
ColorPalette5=#34346565a4a4<br />
ColorPalette6=#757550507b7b<br />
ColorPalette7=#060698989a9a<br />
ColorPalette8=#d3d3d7d7cfcf<br />
ColorPalette9=#555557575353<br />
ColorPalette10=#efef29292929<br />
ColorPalette11=#8a8ae2e23434<br />
ColorPalette12=#fcfce9e94f4f<br />
ColorPalette13=#72729f9fcfcf<br />
ColorPalette14=#adad7f7fa8a8<br />
ColorPalette15=#3434e2e2e2e2<br />
ColorPalette16=#eeeeeeeeecec<br />
<br />
=== Colour management ===<br />
<br />
Xfce has no native support for colour management. [https://bugzilla.xfce.org/show_bug.cgi?id=8559] See [[ICC profiles]] for alternatives.<br />
<br />
=== Multiple monitors ===<br />
<br />
As of {{Pkg|xfce4-settings}} version 4.11.4, Xfce has support for multiple monitors. Settings can be configured in the ''Applications'' -> ''Settings'' -> ''Display'' dialog. For more information, see the [http://docs.xfce.org/xfce/xfce4-settings/display display] article from the Xfce documentation.<br />
<br />
=== SSH agents ===<br />
<br />
By default Xfce 4.10 will try to load gpg-agent or ssh-agent in that order during session initialization. To disable this, create an xfconf key using the following command:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false<br />
<br />
To force using ssh-agent even if gpg-agent is installed, run the following instead:<br />
<br />
xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s ssh-agent<br />
<br />
To use [[GNOME Keyring]], simply tick the checkbox ''Launch GNOME services on startup'' in the ''Advanced'' tab of ''Session Manager'' in Xfce's settings. This will also disable gpg-agent and ssh-agent.<br />
<br />
Source: http://docs.xfce.org/xfce/xfce4-session/advanced<br />
<br />
=== Scroll a background window without shifting focus on it ===<br />
<br />
Go to ''Main Menu > Settings > Window Manager Tweaks > Accessibility'' tab.<br />
Uncheck ''Raise windows when any mouse button is pressed''.<br />
<br />
=== Mouse button modifier ===<br />
<br />
By default, the mouse button modifier in Xfce is set to {{ic|Alt}}. This can be changed with ''xfconf-query''. For instance, the following command will set the {{ic|Super}} key as the mouse button modifier:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"<br />
<br />
Strictly speaking, using multiple modifiers is not supported. However, as a workaround, multiple modifiers can be specified if the key names are separated with {{ic|><}}. For instance, to set {{ic|Ctrl+Alt}} as the mouse button modifier, you can use the following command:<br />
<br />
$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"<br />
<br />
== Troubleshooting ==<br />
<br />
=== Action buttons are missing icons ===<br />
<br />
This happens if icons for some actions (Suspend, Hibernate) are missing from the icon theme, or do not have the expected names. To fix this, install an icon theme which has the necessary icons already added; see [[Icons#Xfce icons]]. <br />
<br />
Then, you can switch to that icon theme using Applications -> Settings -> Appearance -> Icons.<br />
<br />
Alternatively you can use the required icons provided by the icon theme you installed in your current icon theme. To do so, you first need to find out what the currently used icon theme is called. You can do so by using the command below:<br />
<br />
$ xfconf-query -c xsettings -p /Net/IconThemeName<br />
<br />
Then set the following variable:<br />
<br />
$ icontheme=/usr/share/icons/''theme-name''<br />
<br />
where ''theme-name'' is the name of the current icon theme.<br />
<br />
Then create symbolic links from the current icon theme into the icon theme providing the icons (this example assumes the icons are being provided by the {{AUR|elementary-xfce-icons}} theme.)<br />
<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend.svg ${icontheme}/16x16/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/16/system-suspend-hibernate.svg ${icontheme}/16x16/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend.svg ${icontheme}/22x22/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/22/system-suspend-hibernate.svg ${icontheme}/22x22/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend.svg ${icontheme}/24x24/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/24/system-suspend-hibernate.svg ${icontheme}/24x24/actions/system-hibernate.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend.svg ${icontheme}/48x48/actions/system-suspend.svg<br />
ln -s /usr/share/icons/elementary-xfce/apps/48/system-suspend-hibernate.svg ${icontheme}/48x48/actions/system-hibernate.svg<br />
<br />
Log out and in again, and you should see icons for all actions.<br />
<br />
=== Desktop icons rearrange themselves ===<br />
<br />
At certain events (such as opening the panel settings dialog) icons on the desktop rearrange themselves. This is because icon positions are determined by files in the {{ic|~/.config/xfce4/desktop/}} directory. Each time a change is made to the desktop (icons are added or removed or change position) a new file is generated in this directory and these files can conflict.<br />
<br />
To solve the problem, navigate to the directory and delete all the files other than the one which correctly defines the icon positions. You can determine which file defines the correct icon positions by opening it and examining the locations of the icons. The topmost row is defined as {{ic|row 0}} and the leftmost column is defined by {{ic|col 0}}. Therefore an entry of:<br />
<br />
[Firefox]<br />
row=3<br />
col=0<br />
<br />
means that the Firefox icon will be located on the 4th row of the leftmost column.<br />
<br />
=== GTK themes not working with multiple monitors ===<br />
<br />
Some configuration tools may corrupt displays.xml, which results in GTK themes under ''Applications Menu > Settings > Appearance'' ceasing to work. To fix the issue, delete {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml}} and reconfigure your screens.<br />
<br />
=== Icons do not appear in right-click menus ===<br />
<br />
{{Note|Despite the deprecation of GConf, this method does still work.}}<br />
<br />
Users may find that icons do not appear when right-clicking options within some applications, including those made with [[Qt]]. This problem only appears to happen within Xfce. Run these two commands:<br />
<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true<br />
<br />
=== Keyboard settings are not saved in xkb-plugin ===<br />
<br />
There is a bug in {{Pkg|xfce4-xkb-plugin}} ''0.5.4.1-1'' which causes it to lose keyboard, layout switching and compose key settings. [https://bugzilla.xfce.org/show_bug.cgi?id=10226] As a workaround, enable ''Use system defaults'' in {{ic|xfce4-keyboard-settings}}, then reconfigure ''xfce4-xkb-plugin''.<br />
<br />
=== NVIDIA and xfce4-sensors-plugin ===<br />
<br />
To detect and use sensors of nvidia gpu you need to install {{Pkg|libxnvctrl}} and then rebuild {{Pkg|xfce4-sensors-plugin}} with [[ABS]]. You also have the option of using {{AUR|xfce4-sensors-plugin-nvidia}} which replaces {{Pkg|xfce4-sensors-plugin}}.<br />
<br />
=== Panel applets keep being aligned on the left ===<br />
<br />
Add a separator someplace before the right end and set its "expand" property. [https://forums.linuxmint.com/viewtopic.php?f=110&t=155602}]<br />
<br />
=== Preferred Applications preferences have no effect ===<br />
<br />
Most applications rely on [[xdg-open]] for opening a preferred application for a given file or URL.<br />
<br />
In order for xdg-open and xdg-settings to detect and integrate with the Xfce desktop environment correctly, you need to [[install]] the {{Pkg|xorg-xprop}} package.<br />
<br />
If you do not do that, your preferred applications preferences (set by exo-preferred-applications) will not be obeyed.<br />
Installing the package and allowing ''xdg-open'' to detect that you are running Xfce makes it forward all calls to ''exo-open'' instead, which correctly uses all your preferred applications preferences.<br />
<br />
To make sure xdg-open integration is working correctly, ask ''xdg-settings'' for the default web browser and see what the result is:<br />
<br />
# xdg-settings get default-web-browser<br />
<br />
If it replies with:<br />
<br />
xdg-settings: unknown desktop environment<br />
<br />
it means that it has failed to detect Xfce as your desktop environment, which is likely due to a missing {{Pkg|xorg-xprop}} package.<br />
<br />
=== Restore default settings ===<br />
<br />
If for any reason you need to revert back: to the default settings, rename {{ic|~/.config/xfce4-session/}} and {{ic|~/.config/xfce4/}}<br />
<br />
$ mv ~/.config/xfce4-session/ ~/.config/xfce4-session-bak<br />
$ mv ~/.config/xfce4/ ~/.config/xfce4-bak<br />
<br />
Relogin for changes to take effect. If you get {{ic|Unable to load a failsafe session}} upon login, see the [[#Session failure]] section.<br />
<br />
=== Session failure ===<br />
<br />
Symptoms include:<br />
<br />
* The mouse is an X and/or does not appear at all;<br />
* Window decorations have disappeared and windows cannot be closed;<br />
* ({{ic|xfwm4-settings}}) will not start, reporting {{ic|These settings cannot work with your current window manager (unknown)}};<br />
* Errors reported by a [[display manager]] such as {{ic|No window manager registered on screen 0}}.<br />
* Unable to load a failsafe session:<br />
<br />
Unable to load a failsafe session.<br />
Unable to determine failsafe session name. Possible causes: xfconfd isn't running (D-Bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (must include "/etc"), or xfce4-session is installed incorrectly. <br />
<br />
Restarting xfce or rebooting your system may solve the problem, but a corrupt session is the likely cause. Delete the session folder:<br />
<br />
$ rm -r ~/.cache/sessions/<br />
<br />
Also make sure that the relevant folders in {{ic|$HOME}} are owned by the user starting {{ic|xfce4}}. See [[Chown]].<br />
<br />
=== Fonts in window title crashing xfce4-title ===<br />
<br />
[[Install]] {{Pkg|ttf-droid}} and {{Pkg|ttf-dejavu}}. See also {{Bug|44382}}.<br />
<br />
=== Laptop lid settings ignored ===<br />
<br />
You may find that the lid close settings in Xfce4 Power Manager are ignored, meaning that the laptop will always suspend on lid close, no matter what settings are chosen in the power manager. This is because the power manager is not set to handle lid close events by default. Instead, logind handles the lid close event. To change this behavior so that the the power manager handles lid close events, execute the following command:<br />
$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false<br />
Note that each time the laptop lid settings are changed in the power manager, this setting will be reset.<br />
<br />
=== Rendering issues with Adwaita theme ===<br />
<br />
Since the upgrade of gnome-themes-standard from 3.18.0-1 version to 3.20.0-1 the Adwaita theme exhibits several issues when being used in Xfce, like a frame around the notification area and dark background of the tooltip in eclipse. <br />
<br />
A ugly solution is to downgrade the {{Pkg|gnome-themes-standard}} to the old 3.18.0-1 meanwhile. The package can be downloaded at: <br />
$ wget <nowiki>https://archive.archlinux.org/repos/2016/04/08/extra/os/$(uname -m)/gnome-themes-standard-3.18.0-1-$(uname -m).pkg.tar.xz</nowiki><br />
and installed via pacman's {{ic|-U}} option.<br />
<br />
== See also ==<br />
<br />
* [http://www.xfce.org/about/ Xfce - About]<br />
* http://docs.xfce.org/ - The complete documentation.<br />
* [http://www.xfce-look.org/ Xfce-Look] - Themes, wallpapers, and more.<br />
* [http://xfce.wikia.com/wiki/Frequently_Asked_Questions Xfce Wikia] - How to edit the auto generated menu with the menu editor<br />
* [http://wiki.xfce.org Xfce Wiki]</div>Sukbeom