아 그게 뭐더라

ubuntu에서 i3wm 써보기 본문

공부/토막 상식

ubuntu에서 i3wm 써보기

뭐더라토 2020. 11. 26. 03:53

i3라고 하면 당연히 씨피유 칩이 떠오르지만 여기서는 i3wm, window manager를 뜻한다.

i3는 arch linux 쪽의 고인물들이 많이 쓴다는 것 같다.

얼마나 좋은지 한번 보자.

이 동영상만 보면 i3가 뭔지 단번에 알 수 있다.

www.youtube.com/watch?v=Wx0eNaGzAZU

타일 기반 창 관리 시스템.

창을 나누는게 트리 구조로 진행되기 때문에 move to parent 같은 커맨드도 있다는 점이 흥미롭다.

꽤 괜찮아 보이길래 설치를 마음먹었다.

 

참고로 우리의 Ubuntu 의 default window manager는 다들 어디선가 들어봤을 GNOME(그놈) 이다. 즉, i3를 쓰게 되면, 이 GNOME에서 해주던 기능들을 그냥은 못쓴다...!

 

더보기

설치과정

1.설치는 그냥 sudo apt i3 하면 된다.

 

2. 설치하고 reboot 한번 해주면 login 창 옆에 톱니바퀴를 눌러서 i3로 로그인 하면 된다.

처음 로그인 하면 mod 키로 window 키를 쓸 것인지 alt 키를 쓸 것인지 고르라고 하는데, 소중한 alt를 내버릴 수는 없으니, win키로 했다. 아 그리고 i3 설정 적용 후 새로고침 하려면 "i3-msg restart" 명령어를 쓰면 된다.

 

그러면 꺼먼 화면이 나오면서 두 가지 사실을 깨달을 수 있는데,

하나는 그 동안 사용했던 단축키가 먹통이 되었음을 깨닫게 되고,

다른 하나는 GNOME의 소중함을 깨닫게 된다.

그동안 GNOME에서 사용하던 단축키들, 터미널(Ctrl+Alt+T) 부터 시작해서, 화면 잠금(win+L), 구간 클립보드 스크린샷 (Ctrl+Shift+PS), 키보드로 음량 조절도 안되는 것은 물론이고, 기본 캘린더, 네트워크 설정, 블루투스 설정 창도 없다.

자 그러면 설정을 조금 해보자. 일단 나는 vertical 모니터를 쓰고 있었는데, 이게 설정이 날아가버려서 vertical 모니터 설정부터 다시 했다.

 

3. 나만 그런지 모르겠는데 ibus로 한글입력이 안된다. 그래서 fcitx 설치해서 겨우 한글설정을 해 주었다.

 

4. 일단 xrandr 로 모니터 설정을 해 준 다음에
xrandr --output HDMI-0 --auto --primary --pos 0x0 --output DP-0 --rotate right --pos 2560x-600 --verbose

 

5. autorandr 도 깔아주고

 

6. ~/.config/i3/config 에 한 줄 추가해 줬다.

exec_always --no-startup-id autorandr --change

login 하면 무조건 실행되는 명령어를 적어주는 것이다. 자세한 정보는 여기에 있다. i3wm.org/docs/userguide.html

 

7. 그리고 모니터 마다 workspace를 bind 해주고 싶으면 이렇게 적어주면 된다.

workspace 1 output HDMI-0
workspace 2 output HDMI-0
workspace 3 output HDMI-0
workspace 4 output HDMI-0
workspace 5 output HDMI-0
workspace 6 output HDMI-0
workspace 7 output DP-0
workspace 8 output DP-0
workspace 9 output DP-0
workspace 10 output DP-0

xrandr 명령어로 나오는 정보를 적어주면 된다. i3에서 xrandr의 정보를 가져다가 사용하는 듯.

 

8. 그리고 Lockscreen이 없으니까. lock screen도 단축키로 할 수 있도록 추가해 준다.

bindsym $mod+p exec "i3lock -c aa0922 -e"

c는 색상이고, e는 빈 비밀번호 입력 못하게 하는 옵션이다.

 

9. 음량조절 키도 설정해주자.

bindsym XF86AudioRaiseVolume exec pactl set-sink-mute 1 0; exec pactl set-sink-volume 1 +5% #increase sound volume
bindsym XF86AudioLowerVolume exec pactl set-sink-mute 1 0; exec pactl set-sink-volume 1 -5% #decrease sound volume
bindsym XF86AudioMute exec pactl set-sink-mute 1 toggle # mute sound

pactl 말고 amixer는 unmute가 안되는 버그가 있으니까 쓰지 말자. set-sink-volume 다음에 오는 숫자는 "pactl list sinks"로 확인할 수 있다.

 

10. 그리고 jkl; 로 매핑되어 있는 기본값도 vim 친화적이게 hjkl 로 config에서 바꿔줬다.

 

11. 그런데 윗쪽이 조금 허전하다. polybar 라고 있길래 설치했다. apt-get 말고 git에서 가져와서 ./build.sh 해주면 된다. 설치 마지막에 example config 파일은 만드는게 좋다.

 

12. ~/.config/polybar/config 가 있음을 확인하고 cmd에 polybar example을 입력해 본다.

 

13. 이제 저 example config 파일을 실행해 줄 쉘 스크립트 polybar.sh 를 적는다.

#!/bin/sh

# Terminate already running bar instances
killall -q polybar

# Wait until the processes have been shut down
while pgrep -x polybar >/dev/null; do sleep 1; done

# Launch polybar
polybar example &

무식한 방법이라 아닌줄 알았는데, 다 이렇게 하더라.

 

14. 그리고 i3/config 에 polybar를 실행하도록 써준다.

exec_always --no-startup-id ~/.config/i3/polybar.sh &

15. polybar에는 siji 라는 이름의 font가 들어가는데, 이게 없으면 허전하니까. github.com/stark/siji/tree/master/pcf 여기 있는 siji.pcf 파일을 ~/.font를 만들어서 안에 넣어주자. 나와있는대로 설치해도 될 것 같긴 한데, 안해봐서 모르겠다.

 

16. polybar config을 기호에 맞게 수정하고.

 

17. i3 하단에 있는 status bar도 i3wm.org/i3status/manpage.html이 링크를 참고해서 고친다. (위치: /etc/i3status.conf 또는 ~/.config/i3status/conf)

 

18. screenshoot도 기존에 gnome에서 쓰던 것과 같이 설정해준다.

gist.github.com/dianjuar/ee774561a8bc02b077989bc17424a19f

# Screenshots
bindsym --release Print exec --no-startup-id maim "/home/$USER/Pictures/$(date +'%Y-%m-%d-%H%M%S.png')"
bindsym $mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) "/home/$USER/Pictures/$(date +'%Y-%m-%d-%H%M%S.png')"
bindsym Shift+Print exec --no-startup-id maim --select "/home/$USER/Pictures/$(date +'%Y-%m-%d-%H%M%S.png')"

## Clipboard Screenshots
bindsym Ctrl+Print exec --no-startup-id maim | xclip -selection clipboard -t image/png
bindsym Ctrl+$mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) | xclip -selection clipboard -t image/png
bindsym Ctrl+Shift+Print exec --no-startup-id maim --select | xclip -selection clipboard -t image/png

 

평가:

아직 제대로 안써보긴 했는데 설정할 것들이 너무 많다. 그리고 창이 조금 많아지다보면 창이 찌부가 되어버리기 때문에 계속해서 workspace를 새로 띄워주거나, 새 창을 아예 자제하게 된다. 그리고 각종 팝업 창 같은 소형 창들도 default로는 1/n 해서 사이즈를 늘려서 차지하게 된다는 점도 거슬린다. 물론 기존 GNOME과 같이 floating 창도 지원을 하긴 한다.

 

workspace마다 기본 창 배열 포맷을 설정할 수도 있고,

프로그램마다 띄워지는 workspace를 지정할 수도 있고,

내가 지정하는 단축키로 프로그램을 띄울 수도 있고,

이런 점들은 좋긴 한데, 전부 설정이 따로 필요하다는 점이 빡세다. 배보다 배꼽이 더 큰 느낌. 그래도 확실히 노트북에서 쓰기에는 좋을 것 같은 느낌이다. 사실 듀얼모니터에서 쓰기에도 괜찮은 것 같다.

 

 

설치한지 일주일도 안 지났다. 일단 조금 더 써봐야겠다.

 

=================== 2020.12.03 추가

일주일정도 사용하는 동안 큰 문제점은 없었다. 

그러다 모니터를 4K로 바꾸면서 폰트가 너무 작아졌다.
Gnome 에서는 gnome-tweaks 에서 폰트 scale을 손쉽게 변경할 수 있길래 그냥 gnome으로 갈아탔다.

애초에 일반적인 GUI 프로그램들은 tile 기반 창 관리에 적합하지 않았기 때문에 불편한 점들이 있기는 했다.


차라리 tweak과 keyboard shortcut 을 활용해서 간단히 GNOME을 꾸며보는게 훨씬 좋아보인다.

 

Comments