2013-08-24 4 views
1

셸에서 SWT setAlpha() 메서드를 사용하고 있습니다.창 관리자없이 SWT에서 투명한 셸을 만드는 방법은 무엇입니까?

java -jar program.jar 

을하지만 난 창 관리자 쉘없이 순수한 X에 내 자바 응용 프로그램을 시작하고하면은 투명하지 않고 흰색 배경을 가지고 : 투명성은 터미널에서 KDE와 GNOME 환경에서 제대로 즉 입력을 사용할 수 있습니다. 나는 startx 명령을 사용하여 X가 포함되어 내 ~/.xinitrc에 스크립트 실행 : 나는 SWT-3.7-2와 GTK-3.2를 사용하고

public void showTransparentShell() { 
    transparentShell = new Shell(shell, SWT.NO_TRIM); 
    transparentShell.setAlpha(120); 
    transparentShell.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE)); 
    transparentShell.setBounds(shell.getBounds()); 
    AlphaEffect.fadeOnClose(transparentShell, 900, new ExpoOut(), animationRunner); 
    transparentShell.open(); 
    AlphaEffect.setAlpha(animationRunner, transparentShell, 160, 900, new ExpoOut(), null, null); 
} 

: 메소드의 코드를 다음

cd /home/user 
java -jar ./program.jar 

을입니다. 0

투명도를 위해 Linux에서 필요한 것은 무엇입니까? "투명 효과"가 작동하려면 어떤 구성 요소/라이브러리/패키지를 설치해야합니까?

편집 : 솔루션 우연히 인터넷 검색의 시간 후, 난 그저 내 자바 프로그램 전에 Kwin를 시작

kwin& 
cd /home/user 
java -jar ./program.jar 

유일한 문제는 Kwin 꽤 크고 의존성을 많이 가지고보다. 256 MB RAM 컴퓨터에서 프로그램을 실행해야합니다. 투명도를 지원하는 조금 가벼운 창 관리자를 알고 누군가 KTW와 같은 방식으로 SWT와 작동합니까?

답변

3

마침내 내 문제를 해결하는 방법을 알게되었습니다. 아마 다른 사람들에게 도움이 될 것입니다. 로드해야하는 Xorg 확장에 따라

libswt-cairo-gtk-3-jni 
libcairo2 
libxcomposite1 
libxdamage1 

: 나는 창을 사용할 필요가 있으므로

Composite 
DAMAGE 

GDK 투명성을 그릴 합성 할 창을 필요로 리눅스를 사용 카이로에서 SWT는 투명 효과와 요구 다음 라이브러리를 그릴 수 매니저. KWin은 무거웠으며 대신 xfwm4를 사용합니다. xfwm4 단지 특성 파일 편집 xfwm4에서 합성 가능 enabled.To해야하는 컴포 지터 내장했습니다

~/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml 

및 설정 :

<property name="use_compositing" type="bool" value="true"/>