계피에서 osd 창을 사용자 정의하는 방법은 무엇입니까?

계피에서 osd 창을 사용자 정의하는 방법은 무엇입니까?

저는 데스크탑의 모양을 사용자 정의하기 위해 Linux Mint용으로 개발 중인 사용자 정의 테마의 cinnamon.css 파일을 사용하고 있습니다. 파일에서 osdWindow 클래스를 발견하고 배경색, 볼륨 및 밝기를 변경할 수 있었습니다. OSD 알림 등의 경계 반경.

하지만 모양을 사용자 정의하는 방법을 알고 싶습니다. 예를 들어 볼륨이 변경될 때 osd 창이 계속 팝업되기를 원하지만 팝업 창에서 아이콘을 제거하거나 레이아웃을 변경할 수 있기를 원합니다. osdWindow.js 파일을 살펴봤고 여기가 이 작업이 수행되는 곳이라고 생각하지만 어떻게 하는지는 모르겠습니다.

누구든지 이 문제를 해결하도록 도와줄 수 있나요?

답변1

나는 그것을 생각했다!

비결은 파일을 열고 osdWindows.js다음 줄을 찾는 것입니다.

this._icon = new St.Icon();  
this.actor.add(this.icon, { expand: true });

그리고 두 번째 줄을 주석 처리하세요. 그런 다음 아이콘은 제거되었지만 osd 창의 크기는 조정되지 않았으므로 함수에서 다음 줄을 찾아 _monitorsChanged다음 줄을 편집했습니다.

this.actor.set_size(this._popupSize, this._popupSize);  
this.actor.translation_y = (monitor.height + monitor.y) - (this._popupSize + (50 * scaleFactor));  
this.actor.translation_x = ((monitor.width / 2) + monitor.x) - (this._popupSize / 2);  

다음과 같이 편집하세요.

let popupWidth = 200;  
let popupHeight = 50;   
this.actor.set_size(popupWidth,popupHeight);     
this.actor.translation_y = monitor.height-3*popupHeight;  
this.actor.translation_x = ((monitor.width / 2)-(popupWidth / 2));

레이아웃을 약간 변경했기 때문에 osd 창의 크기가 조정되고 위치가 일부 변경되었습니다.

관련 정보