모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    ★☆님의
    개인페이지입니다
    가입 : 17-07-17
    방문 : 493회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_22773
    작성자 : ★☆
    추천 : 1
    조회수 : 1564
    IP : 222.233.***.246
    댓글 : 0개
    등록시간 : 2019/01/08 05:59:21
    http://todayhumor.com/?programmer_22773 모바일
    [emacs] EXWM 간단히 맛보기(?), 냄새 맡기(?), 암튼 소개
    두근두근 울렁울렁 가슴 뛰지만 무섭고도 두려워서 겁이 나지만 새해를 맞아 사용하고 있는 리눅스용 윈도우 하위 시스템(이하 WSL)에 그래픽 사용자 인터페이스(이하 GUI)를 입혀보기로 했습니다. 알고계시겠지만, WSL은 마이크로소프트 윈도우(이하 윈도우)에서 리눅스 바이너리를 사용할 수 있도록 매개하는 개발자용 도구입니다. 리눅스 명령을 그대로 사용할 수 있다는 장점이 있지만, 아직 여러 한계가 있습니다. 그 중 하나가 바로 GUI 부분이죠.

    이 한계를 피해가는 몇 가지 방법이 있습니다. 가장 쉬운 방법은 윈도우에 X 서버를 설치하고 리눅스에서 DISPLAY 환경 변수를 이 서버의 화면으로 지정하는 것입니다. 또 다른 방법은 리눅스에서 Xrdp같은 윈도우 원격 데스크톱을 지원하는 서비스를 제공하는 것입니다. 크게 어려운 일은 아닙니다. 인터넷에서 쉽게 정보를 찾아볼 수도 있고요. 어려웠던 점은 제가 펀투 리눅스라는 극히 마이너한 리눅스 배포판을 사용하고 있어서... 찾은 문서의 내용을 그대로 따라하는 수준으로는 되지 않았다는 점 정도입니다.

    1.png
    2.png

    Xfce를 띄워봤습니다. 리눅스의 사용자 홈 디렉터리 밑에, 윈도우의 바탕화면(%USERPROFILE%\Desktop 디렉터리)을 Desktop이란 이름으로 심볼릭 링크해 두었더니 Xfce의 바탕화면이 윈도우와 연동되기도 하고요. 조금 더 욕심이 생겨 그놈을 시도해봤습니다. 문서가 없는 이유가 있었습니다. 여러 방법을 시험해보다 내가 왜 이러고 있지... 하는 의문이 생겼네요.

    어짜피 내가 WSL에서 가장 많이 사용하는 것은 이맥스일 뿐이고(윈도우에도 이맥스 바이너리가 있지만 리눅스에서 사용하는 것이 더 편하니까), 다른 GUI용 프로그램은 많이 사용하지 않는데 무거운 데스크톱 환경을 굳이 설치해야하나 하는 생각이 들었습니다. 이런 생각이 들어 찾아보니 이맥스 안에서 X의 창 관리를 해주는 패키지가 있더군요.

    3.png

    위의 원격 데스크톱 화면과 달리 이맥스가 달랑 뜹니다(화면 갈무리를 위해 크기를 줄였지만, 모니터 전체에 이맥스가 뜰 때 기분이란...). 이게 이맥스이므로 이맥스의 키 바인딩으로 화면 분할이 됩니다. C-x 3 으로 양 쪽으로 나누고 C-x 2 로 위 아래로 나눌 수 있습니다. C-x 1 또는 C-x 0 로 합칠 수 있고요, C-x o 로 순회할 수 있습니다. 물론, 이런 단축키는 이맥스 사용자라면 익숙한 것이겠죠.

    4.png

    창을 나누고 구글 크롬과 EShell을 띄워봤습니다. 외부 프로그램을 실행시킬 때는 S-& 키를 누르라고 하더군요. (윈도우에서 이 키 조합은 ctrl 과 alt 사이에 있는 윈도우키를 누르고, shft 키와 7 키를 누르는 것입니다. 원격 데스크톱이 전체 화면을 사용하도록 하지 않으면 윈도우 메뉴가 먼저 떠버립니다. 전체 화면이 아니라면 키 바인딩을 바꿔야 될 것 같네요.) M-! 로 외부 프로그램을 실행시키면 안됩니다. (쉘에서 GUI 프로그램을 실행시킬 때와 같은 일이 벌어집니다. 백그라운드--&--로 실행시키지 않으면 그 프로그램이 종료할 때 까지 쉘이 잠기게 됩니다.)

    5.png

    EXWM 은 화면의 공간을 절약하기 위해 기본적으로 메뉴 바를 숨깁니다. M-x menu-bar-mode 명령으로 메뉴 바를 드러내면 구글 크롬이 이맥스 안에서 실행된 것이 더욱 확실하게 보이네요. 또 다른 재미있는 기능은 작업 공간 이동이었습니다. 첫번째 작업 공간에서 화면 구성을 이렇게 잡아두고, S-w 키를 눌러 다른 작업 공간을 선택해서 다른 화면을 구성할 수 있었습니다. (이맥스의 다른 프레임을 선택해서 윈도--창--를 나누는 것에 해당하겠죠.)

    6.png

    발견하고 설치해본 것이 전부라 많이 알지는 못하지만, 이맥스 내부에서 구글 크롬을 실행시킬 수 있다는 점이 마음에 들었습니다. 이런 것이 있다는 것을 알고 있으면 혹시 도움이 되는 사람이 있을지도 모르겠네요.



    덧붙임: EXWM 사용자 설명서에서 제시한 EXWM 기동 방법은 ${HOME}/.xinitrc 파일과 ${HOME}/.emacs 파일을 사용하는 것이었습니다. EXWM을 시험하는 도중에 이런 방식을 사용하는 것이 마음에 들지 않았습니다.

    펀투 리눅스에서 XSESSION 관련 설정은 /etc/env.d/90xsession 파일에 적습니다. 예를 들어 XSESSION="exwm" 라고 적어두면, /etc/X11/Sessions/exwm 파일을 실행하게됩니다. 이 파일을 다음과 같이 만들었습니다.

    # Write exwmrc.el file if not exist
    [ -e ${HOME}/.emacs.d ] || mkdir ${HOME}/.emacs.d
    [ -e ${HOME}/.emacs.d/exwmrc.el ] || cat > ${HOME}/.emacs.d/exwmrc.el <<EOF
    (if (file-exists-p (expand-file-name ".emacs" "$HOME"))
        (load-file (expand-file-name ".emacs" "$HOME"))
      (if (or (file-exists-p (expand-file-name ".emacs.el" "$HOME"))
              (file-exists-p (expand-file-name ".emacs.elc" "$HOME")))
          (load (expand-file-name ".emacs" "$HOME"))
        (if (or (file-exists-p (expand-file-name "init.el" user-emacs-directory))
                (file-exists-p (expand-file-name "init.elc" user-emacs-directory)))
            (load (expand-file-name "init" user-emacs-directory)))))

    (setq display-time-default-load-average nil)
    (display-time-mode t)
    (server-start)

    (require 'exwm)
    (require 'exwm-config)
    (exwm-config-default)
    EOF

    # Start Emacs
    exec dbus-launch --exit-with-session emacs -q -l ${HOME}/.emacs.d/exwmrc

    /etc/X11/Sessions/exwm 은 ${HOME}/.emacs.d/exwmrc.el 파일을 만들고 (이맥스가 창 관리자 역할을 할 때는) 이맥스의 초기화 파일 대신 이 파일로 기동하도록 합니다. 이렇게 이맥스가 기동한 후 원래의 초기화 파일을 적재 할 필요가 있습니다. ${HOME}/.emacs.d/exwmrc.el 코드의 앞부분이 하는 일이 그것이고요. 저는 ${HOME}/.emacs.d/init.el 파일을 초기화 파일로 사용합니다. 이 파일에는 EXWM의 디렉터리만 라이브러리 경로에 추가해주었습니다. 이렇게요.

    (add-to-list 'load-path (locate-user-emacs-file "elpa/xelb-0.16"))
    (add-to-list 'load-path (locate-user-emacs-file "elpa/exwm-0.21"))

    이런 방식의 장점은 이맥스가 창 관리자 역할을 하지 않을때는 EXWM을 기동하지 않는 것 입니다.

    이 게시물을 추천한 분들의 목록입니다.
    [1] 2019/01/08 07:35:52  223.38.***.113  ^ㅅ^)/  116492
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    897
    윈도우 원격 데스크톱과 Xrdp 서버 사이에 클립보드 공유 실패 ★☆ 19/01/19 03:39 116 0
    896
    [emacs] 글꼴 설정 [2] ★☆ 19/01/18 08:52 83 1
    [emacs] EXWM 간단히 맛보기(?), 냄새 맡기(?), 암튼 소개 ★☆ 19/01/08 05:59 116 1
    894
    나의 기본 Makefile [2] ★☆ 18/12/29 06:24 120 4
    893
    [gcc] 적용되는 옵션 플래그 확인하기 ★☆ 18/12/26 22:51 73 0
    892
    [gcc] 어셈블리 코드 보기 [11] ★☆ 18/12/26 18:08 104 0
    891
    const 한정자는 좋은 코딩 습관의 기초 [1] ★☆ 18/12/22 00:30 78 2
    890
    [gcc] 의미없어 보이지만 의미심장한 (X)+0 그리고 함수 오버로딩 [6] ★☆ 18/12/21 07:40 108 2
    889
    재미있는 상황?? [1] ★☆ 18/10/12 18:23 63 0
    888
    아빠가 너무 나대요... [5] 펌글 ★☆ 18/10/12 15:29 2104 12
    887
    저금통 샀다고 와잎한테 쳐맞은 남편... [4] 펌글 ★☆ 18/10/11 18:44 2099 19
    886
    관악산에 노루가 뛰논다를 영어로?(feat. 서울대 법대 합격하는 법) [5] 펌글 ★☆ 18/10/10 23:58 1662 12
    885
    ㅈ간지 연출 [6] 펌글 ★☆ 18/10/10 23:53 2018 10
    884
    뒤틀린 학구열 [2] 펌글 ★☆ 18/10/10 23:50 1667 14
    883
    웃대가 오유 먹었다 야호 [4] 펌글 ★☆ 18/10/10 23:38 1127 17
    882
    귀여운 약사를 만난 루리웹 유저 [6] 펌글 ★☆ 18/10/10 23:26 1497 18
    881
    미대생의 농락 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ [2] 펌글 ★☆ 18/10/10 23:11 1622 15
    880
    군필자가 세금으로 배워온 기술 [6] 펌글 ★☆ 18/10/10 23:01 1618 16
    879
    마법사 세계에서 포켓몬이 금지인 이유 [1] 펌글 ★☆ 18/10/10 22:51 1197 5
    878
    조별과제 침대 빌런 [7] 펌글 ★☆ 18/10/10 22:39 1420 15
    877
    이거 방울토마토 맞음? 펌글 ★☆ 18/10/10 22:30 883 5
    876
    입뺀 당한 김희철 [2] 펌글 ★☆ 18/10/10 22:23 1133 10
    875
    32살이나 먹고 똥을 지린 남자 [12] 펌글 ★☆ 18/10/10 22:15 1554 11
    874
    무술의 천재 [2] 펌글 ★☆ 18/10/10 22:11 1190 11
    873
    환장의 호흡 feat.웃대 [10] 펌글 ★☆ 18/10/10 22:04 872 10
    872
    북한 야동사이트 접속기록 통계 [10] 펌글 ★☆ 18/10/10 21:53 1741 10
    871
    북서유럽과 동남유럽의 차이 [2] 펌글 ★☆ 18/10/10 21:42 1287 7
    870
    경계가 너무 심한 중고나라 [3] 펌글 ★☆ 18/10/10 21:38 1446 19
    869
    소개팅 직업 레전드 [2] 펌글 ★☆ 18/10/10 21:34 1411 10
    868
    흔한 뇌가 히토미류 甲 [14] 펌글 ★☆ 18/10/10 21:23 1415 14
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈