Last active
June 16, 2025 02:09
-
-
Save partrita/72f4242b40a9abf48f6ea1cbaf6bdb73 to your computer and use it in GitHub Desktop.
.config/i3/config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 이 파일은 i3-config-wizard(1)에 의해 자동으로 생성되었습니다. 덮어쓰여지지 않으므로 원하는 대로 수정하십시오. | |
# 키보드 레이아웃을 변경해야 하는 경우, 이 파일을 삭제하고 i3-config-wizard(1)를 다시 실행하십시오. | |
# i3 설정 파일 (v4). https://i3wm.org/docs/userguide.html을 참조하십시오. | |
# 변수 설정 | |
set $mod Mod1 | |
set $refresh_i3status killall -SIGUSR1 i3status | |
# ============================================================================== | |
# 폰트 설정 | |
# ============================================================================== | |
# 창 제목용 폰트입니다. 아래 bar {} 블록에서 다른 폰트가 사용되지 않는 한 | |
# 바에서도 사용됩니다. | |
font pango: JBD2 12 | |
# ============================================================================== | |
# 자동 시작 애플리케이션 | |
# ============================================================================== | |
# dex를 사용하여 XDG 자동 시작 .desktop 파일을 시작합니다. 다음도 참조하십시오: | |
# https://wiki.archlinux.org/index.php/XDG_Autostart | |
exec --no-startup-id dex --autostart --environment i3 | |
# xss-lock, nm-applet, pactl의 조합은 널리 사용되는 선택이므로 | |
# 여기에 예시로 포함되어 있습니다. 필요에 따라 수정하십시오. | |
# xss-lock은 logind 절전 억제 잠금을 획득하고 절전 전에 i3lock을 사용하여 | |
# 화면을 잠급니다. 화면을 잠그려면 loginctl lock-session을 사용하십시오. | |
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork | |
# NetworkManager는 Linux에서 무선 네트워크를 관리하는 가장 인기 있는 방법이며, | |
# nm-applet은 데스크톱 환경에 독립적인 시스템 트레이 GUI입니다. | |
exec --no-startup-id nm-applet | |
# ============================================================================== | |
# 볼륨 및 미디어 키 설정 | |
# ============================================================================== | |
# PulseAudio에서 볼륨을 조절하려면 pactl을 사용하십시오. | |
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status | |
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status | |
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status | |
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status | |
# ============================================================================== | |
# 프로그램 실행 및 창 관리 기본 설정 | |
# ============================================================================== | |
# 터미널 시작 | |
bindsym $mod+Return exec i3-sensible-terminal | |
# dmenu (프로그램 런처) 시작 | |
bindsym $mod+d exec --no-startup-id dmenu_run | |
# 더 현대적인 dmenu 대체재는 rofi입니다: | |
#bindcode $mod+d exec "rofi -modi drun,run -show drun" | |
# .desktop 파일이 있는 애플리케이션만 표시하는 i3-dmenu-desktop도 있습니다. | |
# 이것은 dmenu의 래퍼이므로 dmenu가 설치되어 있어야 합니다. | |
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop | |
# rofi 실행 | |
bindsym ctrl+space exec rofi -show combi | |
# 포커스된 창 닫기 (kill) | |
bindsym ctrl+q kill | |
# ============================================================================== | |
# 창 이동 및 크기 조절 | |
# ============================================================================== | |
# 마우스+$mod를 사용하여 플로팅 창을 원하는 위치로 드래그합니다. | |
floating_modifier $mod | |
# 타일링 창을 제목 표시줄을 왼쪽 클릭하거나, 플로팅 수정자를 누른 채 창 어디든 왼쪽 클릭하여 | |
# 드래그 앤 드롭으로 이동합니다. | |
tiling_drag modifier titlebar | |
# 포커스 변경 | |
bindsym $mod+h focus left | |
bindsym $mod+j focus down | |
bindsym $mod+k focus up | |
bindsym $mod+l focus right | |
# 또는 커서 키를 사용할 수 있습니다: | |
bindsym $mod+Left focus left | |
bindsym $mod+Down focus down | |
bindsym $mod+Up focus up | |
bindsym $mod+Right focus right | |
# 이전 focus로 돌아가기 | |
bindsym $mod+shift+z focus prev | |
# 포커스된 창 이동 | |
bindsym $mod+Shift+h move left | |
bindsym $mod+Shift+j move down | |
bindsym $mod+Shift+k move up | |
bindsym $mod+Shift+l move right | |
# 또는 커서 키를 사용할 수 있습니다: | |
bindsym $mod+Shift+Left move left | |
bindsym $mod+Shift+Down move down | |
bindsym $mod+Shift+Up move up | |
bindsym $mod+Shift+Right move right | |
# 가로 방향으로 분할 | |
#bindsym $mod+h split h | |
# 세로 방향으로 분할 | |
bindsym $mod+v split v | |
# 포커스된 컨테이너를 전체 화면 모드로 전환 | |
bindsym $mod+f fullscreen toggle | |
# 컨테이너 레이아웃 변경 (스택, 탭, 분할 토글) | |
bindsym $mod+s layout stacking | |
bindsym $mod+w layout tabbed | |
bindsym $mod+e layout toggle split | |
# 타일링 / 플로팅 토글 | |
bindsym $mod+Shift+space floating toggle | |
# 타일링 / 플로팅 창 간 포커스 변경 | |
#bindsym $mod+space focus mode_toggle | |
# 상위 컨테이너 포커스 | |
#bindsym $mod+a focus parent | |
# 하위 컨테이너 포커스 | |
#bindsym $mod+d focus child | |
# ============================================================================== | |
# 워크스페이스 설정 | |
# ============================================================================== | |
# 나중에 키 바인딩을 구성할 기본 워크스페이스의 이름을 정의합니다. | |
# 여러 곳에서 이름이 반복되는 것을 피하기 위해 변수를 사용합니다. | |
set $ws1 "1" | |
set $ws2 "2" | |
set $ws3 "3" | |
set $ws4 "4" | |
set $ws5 "5" | |
set $ws6 "6" | |
set $ws7 "7" | |
set $ws8 "8" | |
set $ws9 "9" | |
set $ws10 "10" | |
# 워크스페이스로 전환 | |
bindsym $mod+1 workspace number $ws1 | |
bindsym $mod+2 workspace number $ws2 | |
bindsym $mod+3 workspace number $ws3 | |
bindsym $mod+4 workspace number $ws4 | |
bindsym $mod+5 workspace number $ws5 | |
bindsym $mod+6 workspace number $ws6 | |
bindsym $mod+7 workspace number $ws7 | |
bindsym $mod+8 workspace number $ws8 | |
bindsym $mod+9 workspace number $ws9 | |
bindsym $mod+0 workspace number $ws10 | |
# 포커스된 컨테이너를 워크스페이스로 이동 | |
bindsym $mod+Shift+1 move container to workspace number $ws1 | |
bindsym $mod+Shift+2 move container to workspace number $ws2 | |
bindsym $mod+Shift+3 move container to workspace number $ws3 | |
bindsym $mod+Shift+4 move container to workspace number $ws4 | |
bindsym $mod+Shift+5 move container to workspace number $ws5 | |
bindsym $mod+Shift+6 move container to workspace number $ws6 | |
bindsym $mod+Shift+7 move container to workspace number $ws7 | |
bindsym $mod+Shift+8 move container to workspace number $ws8 | |
bindsym $mod+Shift+9 move container to workspace number $ws9 | |
bindsym $mod+Shift+0 move container to workspace number $ws10 | |
# ============================================================================== | |
# i3 관리 | |
# ============================================================================== | |
# 설정 파일 다시 로드 | |
bindsym $mod+Shift+r reload | |
# i3를 현재 위치에서 다시 시작 (레이아웃/세션 유지, i3 업그레이드에 사용 가능) | |
bindsym $mod+Shift+d restart | |
# i3 종료 (X 세션에서 로그아웃) | |
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m '종료 단축키를 눌렀습니다. i3를 정말 종료하시겠습니까? X 세션이 종료됩니다.' -B '네, i3 종료' 'i3-msg exit'" | |
# ============================================================================== | |
# 창 크기 조절 모드 | |
# ============================================================================== | |
# 창 크기 조절 (마우스를 사용할 수도 있습니다) | |
mode "resize" { | |
# 이 바인딩은 크기 조절 모드에 진입하자마자 트리거됩니다. | |
# 왼쪽을 누르면 창의 너비가 줄어듭니다. | |
# 오른쪽을 누르면 창의 너비가 늘어납니다. | |
# 위를 누르면 창의 높이가 줄어듭니다. | |
# 아래를 누르면 창의 높이가 늘어납니다. | |
bindsym j resize shrink width 10 px or 10 ppt | |
bindsym k resize grow height 10 px or 10 ppt | |
bindsym l resize shrink height 10 px or 10 ppt | |
bindsym semicolon resize grow width 10 px or 10 ppt | |
# 동일한 바인딩이지만 화살표 키용입니다. | |
bindsym Left resize shrink width 10 px or 10 ppt | |
bindsym Down resize grow height 10 px or 10 ppt | |
bindsym Up resize shrink height 10 px or 10 ppt | |
bindsym Right resize grow width 10 px or 10 ppt | |
# 기본 모드로 돌아가기: Enter 또는 Escape 또는 $mod+r | |
bindsym Return mode "default" | |
bindsym Escape mode "default" | |
bindsym $mod+r mode "default" | |
} | |
bindsym $mod+r mode "resize" | |
# ============================================================================== | |
# i3bar 설정 | |
# ============================================================================== | |
# 워크스페이스 바를 표시하기 위해 i3bar를 시작합니다 (사용 가능한 경우 i3status가 찾아내는 시스템 정보 포함). | |
bar { | |
status_command i3status | |
position top | |
} | |
# ============================================================================== | |
# 간격(Gaps) 설정 | |
# ============================================================================== | |
# 창 사이와 화면 가장자리 사이에 5px 간격을 설정합니다. | |
gaps inner 5px | |
# 화면 가장자리에 추가로 5px의 여백을 설정하여, | |
# 화면 가장자리에는 총 10px, 창 사이에는 5px의 간격을 둡니다. | |
gaps outer 5px | |
# 워크스페이스 3의 간격을 0으로 덮어씁니다. 워크스페이스 3에서는 모든 공간이 필요합니다. | |
workspace 3 gaps inner 0 | |
workspace 3 gaps outer 0 | |
# 워크스페이스에 정확히 하나의 창이나 분할 컨테이너가 있을 때만 외부 간격을 활성화합니다. | |
smart_gaps inverse_outer | |
# ============================================================================== | |
# 마우스 커서 설정 | |
# ============================================================================== | |
# 포커스된 창으로 커서 이동 | |
mouse_warping output |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment