커널패닉 (119.♡.59.225)
2025년 5월 9일 AM 02:12 · 수정됨(12:26)
현재 사용중인 키보드에 XF86 키(기능키) 가 존재하지 않아 아래와 같은 키조합을 사용할 수 없었습니다.
[code=bash]# Special keys to adjust volume via PulseAudio
bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
bindsym --locked Ctrl+XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -1%
bindsym --locked Ctrl+XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +1%
bindsym --locked Shift+XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -2%
bindsym --locked Shift+XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +2%
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
# Special keys to control media track
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous[/code]
하지만 매번 `pavucontrol`를 통해 볼륨조절하기 귀찮아서 고민하다 키보드의 Menu 키를 조금 응용해 봤습니다.
[code=bash]bindsym Menu exec ~/.config/sway/src/backend "media_controller"
bindsym Shift+Menu exec ~/.config/sway/src/backend "sinks_controller"[/code]
`backend` 스크립트를 잠깐 설명해보자면 특정 키조합이 발동되면 상황에 따라 각기 다른 역활을 합니다.
[code=bash]function logout() # 로그아웃 키(Meta+Shift+E) 와 동일
function power() # 전원버튼 클릭시 재부팅, 절전모드, 시스템 종료 선택창 표시
function change_wallpaper() # 바탕화면 이미지 변경
function lock_session() # 화면잠금(Meta+Ctrl+Q) 처리 (change_wallpaper 함수와 함께 작동)
function enter_sleep() # 절전모드 처리
function current_sink_status() # 현재 출력장치 정보 확인
function current_playing_media() # 현재 미디어 재생정보 확인
function media_controller() # 미디어키 처리함수
function sinks_controller() # 출력장치 변경함수 [/code]
그 중 위에서 언급한 `media_controller`와 `sinks_controller` 를 설명해 보자면 Sinks 의 갯수와 Input(미디어를 재생하는 프로그램 갯수) 에 따라 출력 소스 변경, 볼륨 제어 등을 수행합니다. 그리고 `media_controller` 는 여러개의 미디어가 재생 중일 경우 `rofi` 를 사용해서 변경할 앱의 미디어를 제어합니다.
마지막으로 `change_sink` 는 지면상 역할만 간단하게 설명하겠습니다.
[code=bash]function default() # 기본 출력소스 변경함수
function per_source() # 앱별 출력소스 변경함수
function change_sink_volumes() # 출력장치 볼륨 설정
function sink_mute_toggles() # 출력장치 음소거 토글
function check_current_state() # 출력장치 및 재생중인 앱 확인함수[/code]
만약 전체 내용이 궁금하시다면 첨부파일을 참조해 주세요. (압축파일 내용은 아래와 같습니다.)
[code=bash]# 리비전: e3b7141
[hm:~/.config/sway/src]$ tar -zcf sway_source.tgz * (master)
[hm:~/.config/sway/src]$ tar -ztf sway_source.tgz (master✱)
backend
change_sink[/code]
다음에 기회가 되면 swaybar에 날씨정보를 표시하는 스크립트(weather) 를 소개해 볼까 합니다.

추신) 글이 너무 길면 클라우드플레어 오류가 발생하네요. https://damoang.net/bug/6043
댓글 (3)
-
신신사아님당
25.05.09 · 125.♡.243.26
-
커커널패닉
→ 신사아님당 작성자
25.05.09 · 119.♡.59.225
swaybar는 뭔가 작성할 게 많지만 한번 구성해 놓으면 만족도가 높더라구요. 다만 swaybar 전용 쉘 스크립트를 만들지 않고 sway config 파일에다 작성하니 코드가 점점 난해해지고 있습니다. 조만간에 한번 정리해 봐야겠네요.
코드는 버튼을 이용해서 작성하고 있습니다.
[code=bash]echo 'Hello World!'[/code] -
신신사아님당
→ 커널패닉
25.05.09 · 125.♡.243.26
[code=hs]우앗! 감사합니다!! d+_+b[/code]
댓글을 작성하려면 이 필요합니다.
+
waybar는 일단 깔아 놓으면 기본 기능들이 다 작동을 하니까, 그래서 전 waybar를 깔았는데요. 저번에 커널패닉님께서 올려주신 스샷 보고 좀 혹했습니다. swaybar... 깔끔하더라구요. ㅎㅎ