====== Linux X Window / X11 ======
===== 초기화 스크립트 =====
* ''/etc/X11/Xsession.d'' 디렉토리에 각종 초기화 스크립트가 있음.
===== 로그인 후 GUI 환경 변수 설정 =====
* [[linux:systemd|systemd]] 를 사용할 경우에는 systemd 방식의 환경변수도 기본적으로 작동한다.
* [[linux:wayland|Wayland]]는 별도 방식 사용함.
* ''.xprofile''
* [[linux:ubuntu|Ubuntu Linux]]에서 확실히 실행됨. 그러나 GDM과 LightDM 전용이다.
* 환경변수만 넣어야 했다. 다른 기능 호출을 하면 오류 발생함.
* 확인필요 : GUI 애플리케이션에 적용되는 환경변수는 **Debian/Ubuntu 계통 전용** ''.xsessionrc'' 에 ''export X=1'' 형태로 넣어주면 모든 GUI 애플리케이션에 적용된다.
* 확인필요 : ''~/.pam_environment'' 환경변수는 모든 로그인시마다 실행된다.
* 단, 일부 환경에서 auto start application 들은 위 환경변수설정보다 먼저 실행된다.
* 확인필요 : [[linux:ubuntu|Ubuntu Linux]] [[linux:gnome|Gnome]]의 경우(혹은 다른 배포판도), ''~/.gnomerc'' 설정을 읽어들인다.
* [[https://wiki.archlinux.org/index.php/environment_variables|Environment Variables - Arch]]
===== .xprofile 에서 systemd 형태 환경변수 읽기 =====
* [[linux:systemd|systemd]] 방식 환경변수(''~/.config/environment.d/*.conf'')가 만약에 작동하지 않는다면 유사 형태로 만들 수 있다.
* systemd 방식은 스크립트는 안된다. ''KEY=value'' 방식이다.
* ''.xprofile'' 을 다음과 같은 형태로 작성하면 systemd 형식 환경변수 지정도 함께 사용가능하다.
# systemd environment.d 를 X11/Gnome 환경에서도 읽도록 한다.
# 오름차순 정렬을 위해서 ls 명령으로 순회한다.
set -o allexport # set -a
for conf in `ls ~/.config/environment.d/*.conf`
do
source "$conf"
done
set +o allexport # set +a
===== 각 설정 파일의 차이 =====
* [[https://unix.stackexchange.com/questions/281858/difference-between-xinitrc-xsession-and-xsessionrc|x11 - Difference between .xinitrc, .xsession and .xsessionrc - Unix & Linux Stack Exchange]]
===== Zoom mode =====
* 화면을 확대하는 모드. 마우스 움직임에 따라 확대부분으로 이동한다.
* 켜기 / 끄지 : ''Alt+마우스휠'' 혹은 ''Ctrl+Alt+Keypad-Plus / Ctrl+Alt+Keypad-Minus''
* 불가능하게 하기''DontZoom'' option is set in the ServerFlags section of ''/etc/X11/xorg.conf''.
Option "DontZoom" "false"
* [[linux:xrandr|XRandr]] 로 조정가능