일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 정식버전
- Fedora
- asahi
- Tarantula
- 3D 프린터
- macos
- 컨트롤러
- 터치바
- IOS
- AirPods
- 시에라
- mojave
- asahi linux
- 맥북프로
- iOS 13
- 맥
- sierra
- 업데이트
- tevo
- 3D프린터
- 모하비
- 아이폰
- 애플
- high sierra
- Linux
- catalina
- 버그
- beta
- Mac
- 에어팟
- Today
- Total
elsa in mac
mac:Fedora-Asahi Remix, Hyprland의 기능을 확장하라. Pyprland 본문
이번 포스트에서는 Hyprland의 extension CLI인 Pyprland에 대해 알아보도록 하겠습니다.
Pyprland는 Hyprland WM(Window Manager) 기반에서 추갖거인 기능을 사용할 수 있는 Pyhton 기반의 service 앱 이라고 할 수 있습니다.
1. 설치
기본 package manager인 dnf를 이용하여 설치 합니다 .
sudo dnf install pyprland
2. 지원하는 plugin들
설치를 하게 되면, 기본적으로 pyprland가 제공하는 모든 plugin들이 설칙가 됩니다 plugin들에는 scrachpads, magnify, toggle_special, shortcut_menu, fetch_client_meu, layout_center, expose, lost_windows, toggle_dpms 등이 있습니다. 각 plugin들에 대한 셜멍은 여기서 확인할 수 있습니다.
3. 어플리케이션을 drodown & toggling 할 수 있는 scratchpads
가장 기본적이고 많이 사용하는 plugin은 바로, scratchpads 입니다. 이 플러그-인은 사용자가 원하는 app을 화면의 상/하/좌/우 에서 dropdown 방식으로 나타나게하고, 다시 사라지게 할 수 있는 기능을 제공합니다.
4. 설정
pyprland는 기본 설정 파일이 있어야 동작을 할 수 있습니다. 기본 설정 파일의 위치와 파일명은 ~/.config/hypr/pyprland.toml 입니다. 아래는 본인이 사용하고 있는 설정파일의 내용 입니다.
[pyprland]
plugins = ["scratchpads"]
# musikcube CLI 음악 플레이어
[scratchpads.term_b]
animation = "fromBottom"
command = "kitty --class kitty-dropterm_b musikcube"
class = "kitty-dropterm_b"
lazy = true
size = "40% 40%"
margin = 600
# 빈 터미널
[scratchpads.term_l]
animation = "fromLeft"
command = "kitty --class kitty-dropterm_l"
class = "kitty-dropterm_l"
# class = "firefox"
lazy = true
size = "40% 70%"
margin = 1150
# Reddit CLI
[scratchpads.term_r]
animation = "fromRight"
command = "kitty --class kitty-dropterm_r tuir"
class = "kitty-dropterm_r"
lazy = true
size = "40% 70%"
margin = 1150
# bleutooth 설정
[scratchpads.blueman_t]
animation = "fromTop"
command = "blueman-manager"
class = "blueman-manager"
lazy = true
size = "20% 30%"
margin = 700
plugins = 에서는 사용할 plugin을 명시해 주고, 각 세션은 [plugin명.세션명] 으로 정의를 합니다, 아래는 첫번째 세션에 대한 설명입니다.
# musikcube CLI 음악 플레이어
[scratchpads.term_b] # 세션명
animation = "fromBottom" # 화면아래에서 화면 중앙으로 나타남
command = "kitty --class kitty-dropterm_b musikcube" # kitty terminal을 통해 musikcube를 실행
class = "kitty-dropterm_b" # class 식별자
lazy = true # lazy = true, pypr 실행 시, 미리 해당 앱을 실행해 놓지 않음
size = "40% 40%" # 해당 window의 크기, 전체화면 대비 가로 40%, 세로 60%
margin = 600 # offset (픽셀)
# margin 대신에 position을 사용할 수도 있음.
# position = 10%, 20% # 전체 화면 기준
주석과 같이 호출 시, 화면 하단에서 화면 중앙으로 나타나며, 크기는 전체 화면의 40%, 60% 가 됩니다. kitty의 경우에는 class를 정의하여, 식별할 수 있습니다. 이점 참고 하시고, 나마지 기타 앱들의 class는 일단 해당 앱을 실행시킨 후, terminal 에서 hyprctl clients 명령으로 확인할 수 있습니다.
foot terminal을 사용한다면, kitty --class 대신에 foot -a로 바꿔주면 됩니다.
위의 스샷은 bluetooth manager인 blueman-manager GUI 앱에 대한 window 속성을 확인한 예 입니다. 보면, class가 무엇인지를 확인할 수 있습니다.
5. 실행
Hyprland가 실행될 때 pyprland를 자동으로 실행하게 만듭니다.
exec-once = pypr
다음으로, 각 command를 호출하고 Toggle 시키기 위해 키-바인딩(shoutcut)을 설정합니다.
bind = , F9, exec, pypr toggle blueman_t
bind = , F10, exec, pypr toggle term_l
bind = , F11, exec, pypr toggle term_r
bind = , F12, exec, pypr toggle term_b
F10키를 누르면 term_l class를 호출하게 되고, pyprland.toml 의 설정에 따라 term_l class에 해당되는 세션 설정에 따라 scratchpad를 토글하게 됩니다.
대부분의 앱들이 잘 작동하지만, 그렇다고 모든 앱들이 다 정상적으로 실행되는 것은 아닙니다. Firefox의 경우에는 toggle이 되기는 하지만, floating 되지 않고, tiling 되고, Chromium의 경우에는 정상적으로 floating dropdown이 되지만, 추가적으로 앱을 띄울 수 없는 현상이 나타나기도 합니다.
위의 예에서는 각기 다른 방향에서 나타나도록 했지만, 꼭 그럴 필요는 없습니다. Hyprland를 보다 구조적으로 단단하게 만들 수 있는 좋은 도구로 설치와 실행이 매우 직관적이고 간단하니, Hyprland에 입문하셨다면 검토해 보시고, 유용하게 사용해 보시기 바랍니다.
'Asahi Linux' 카테고리의 다른 글
mac:Fedora-Asahi Remix, Wayland 환경에서 키보드 키나 마우스 버튼을 다른 키로 맵핑하는 방법 (0) | 2024.03.29 |
---|---|
mac:Fedora-Asahi Remix, Hyprland 재 로그인 시 socket 연결 오류가 발생하는 경우 해결 방법 (0) | 2024.03.27 |
mac:Fedora-Asahi Remix, wayland 환경에서 chromium 사용 시 고려할 사항들 (0) | 2024.03.22 |
mac:Fedora-Asahi Remix, 그냥.. 음악이 듣고 싶을 때.. Internet Radio를 들어 봐요. (0) | 2024.03.14 |
hyprland 에서 cava를 바탕화면 좌/우측에 위젯처럼 고정 배치하는 방법 (0) | 2024.03.07 |