Zenity 간단한 메뉴얼 |
1. 개 요
쉘 스크립트에서 GUI 형태의 대화 상자로 만들어 주는 도구입니다. 단순한 쉘 스크립트에 제니티를 적용하면 스크립트 자체가 GUI 대화 창 모드로 진행되기 때문에 사용자의 편의성을 향상시켜 줄 수 있습니다. 이 메뉴얼은 Zenity 메뉴얼에 있는 내용들을 간략하게 설명합니다.
2. 다이얼로그
2.1 텍스트 엔트리 다이얼로그
zenity --entry --title="창제목" --text="새 프로파일 이름을 입력하세요" --entry-text="새 프로파일"
2.2 텍스트 정보 다이얼로그
스크립트 안내문과 같은 정보를 제공하고자 할 때 --text-info 옵션을 사용합니다.
zenity --text-info --title="No1.Linux" --filename="readme" --checkbox="Yes?"
- --filename=파일명 : 텍스트 정보 대화창에서 보여줄 메시지가 있는 파일명
- --editable : 보여주는 메시지를 수정 가능 여부
- --font=글꼴명: 텍스트 글꼴 명시
- --checkbox=텍스트 : 체크 박스의 메시지
- --html : HTML 지원
- --url=URL : 파일 대신에 URL 사용
2.3 진행 상태 다이얼로그
스크립트에서 진행 상태를 보여주고자 할 때 --progress 옵션을 사용합니다.
zenity --progress
2.4 스케일 다이얼로그
양(스케일) 정도를 나타내고자 할 때는 --scale 옵션을 사용합니다. 투명도나 볼륨 값을 표시하고자 할 때 사용합니다.
zenity --scale
- --text=텍스트 : 다이얼로그 텍스트 설정
- --value=값(숫자) : 기본값 지정
- --min-value=값: 최소값 지정(기본값:0)
- --max-value=값: 최대값 지정(기본값:100)
- --step=값 : 스텝 크기 지정(기본값:1)
- --hide-value : 다이얼로그에서 값을 숨김
2.5 리스트 다이얼로그
나열형 다이얼로그를 만들고자 할 때 --list 옵션을 사용합니다.
zenity --list --title="선택해 주세요" --column="번호" --column="장치명" --column="설명" 1 /dev/sda1 "첫번째 파티션" 2 /dev/sda5 "두번째 파티션" 3 /dev/sda6 "세번째 파티션"
- --column=단어 : 행 목록
- --checklist : 첫 행에 체크 박스 사용 여부
- --radiolist : 첫 행에 라디오박스 사용 여부
- --editable : 나열한 아이템 수정 여부
- --separator=구분자: 구분자로 사용할 기호 명시
2.6 폼 다이얼로그
폼 대화상자를 만들려면 --forms 옵션을 사용합니다.
zenity --forms --text="각 폼을 채워 주세요" --separator="|" --add-entry="이름" --add-entry="이메일" --add-entry="아이디"
- --add-entry=필드명 : 폼 제목
- --add-password=필드명 : 암호 엔트리 폼 추가
- --add-calendar=필드명: 폼 다이얼로그에 캘린더 지원
- --text=텍스트 : 대화상자에 텍스트 설정
- --separator=기호 : 구분자(기본값 "|")
- --forms-date-formet=패턴: 날짜 형식 지정
2.7 파일 선택 다이얼로그
파일을 선택할 수 있도록 파일 브라우저 창이 뜨게 하려면 --file-selection 옵션을 사용합니다.
zenity --file-selection
- --filename=파일명 : 다이얼로그 창이 들 때 기본적으로 선택되어질 파일이나 디렉토리
- --multiple : 파일 선택 다이얼로그창에서 다중 파일 선택 허용
- --directory : 파일 선택 창에서 디렉토리만 선택
3. 예제 파일
3.1 /usr/sbin/no1linux-dvb-pvr
#!/bin/bash
#
# No1.Linux-DVB-PVR
# First Build 2013.10.11
# Last Build 2013.11.19
# Created by no1linuxer
# License GPL
#
#
mkdir -p $HOME/Recordings
export ABOUT='
<window title="프로그램정보" icon-name="gtk-dialog-info">
<vbox>
<frame About No1.Linux DVB PVR>
<pixmap>
<input file>/usr/share/pixmaps/no1linux-pvr.png</input>
</pixmap>
<text use-markup="True" width-chars="30">
<label>"<span color='"'blue'"'><b>No1.Linux DVB(HDTV) PVR</b></span>"</label>
</text>
<text use-markup="True" width-chars="30">
<label>"<b>Version 0.4</b>"</label>
</text>
<text>
<label>2013년 10월 넘버원 리눅스용 서자룡 개발</label>
</text>
<text>
<label>GPL 라이선스를 따름</label>
</text>
<button>
<label>확인</label>
<action function="closewindow">ABOUT</action>
</button>
</frame>
</vbox>
<variable>ABOUT</variable>
</window>
'
export NO1LINUX_PVR='
<window icon-name="gtk-execute" title="No1.Linux DVB PVR" decorated="True">
<vbox>
<pixmap>
<input file>/usr/share/pixmaps/no1linux-pvr.png</input>
</pixmap>
<frame 비디오 장치 설정>
<hbox tooltip-text="HDTV 채널을 선택해 주세요. 내림차림표를 클릭하여 하나를 선택해야 합니다.">
<text>
<label>"HDTV채널:"</label>
</text>
<combobox case-sensitive="false" value-in-list="true">
<variable>CHANNEL</variable>
<item>"MBC"</item>
<item>"KBS"</item>
<item>"KBS2"</item>
<item>"EBS"</item>
<item>"SBS"</item>
</combobox>
</hbox>
</frame>
<frame 오디오 장치 설정>
<hbox tooltip-text="사운드카드 드라이버를 선택해 주세요.">
<text>
<label>"오디오드라이버:"</label>
</text>
<combobox case-sensitive="false" value-in-list="true">
<variable>ADRIVER</variable>
<item>"alsa"</item>
<item>"oss"</item>
<item>"pulse"</item>
</combobox>
</hbox>
<hbox tooltip-text="사운드카드 장치번호를 선택해 주세요.">
<text>
<label>"오디오장치번호:"</label>
</text>
<combobox case-sensitive="false" value-in-list="true">
<variable>ADEVICE</variable>
<item>"0"</item>
<item>"1"</item>
<item>"2"</item>
</combobox>
</hbox>
<hbox tooltip-text="사운드카드 장치번호를 선택해 주세요.">
<text>
<label>"오디오비트율:"</label>
</text>
<combobox case-sensitive="false" value-in-list="true">
<variable>AUDIORATE</variable>
<item>"44100"</item>
<item>"8000"</item>
<item>"16000"</item>
<item>"22050"</item>
<item>"32000"</item>
<item>"44056"</item>
<item>"44100"</item>
<item>"48000"</item>
</combobox>
</hbox>
</frame>
<frame 인코더 설정>
<hbox tooltip-text="128,160,192,256kbps중 MP3 비트율을 선택해 주세요. 또는 직접 입력할 수 있습니다.">
<text>
<label>"MP3 비트율:"</label>
</text>
<combobox case-sensitive="false" value-in-list="false">
<variable>AUDIO_BITRATE</variable>
<item>128</item>
<item>160</item>
<item>192</item>
<item>256</item>
</combobox>
</hbox>
<hbox tooltip-text="녹화 비디오 포맷 형식을 서택해 주세요.">
<text>
<label>"비디오 포맷 형식:"</label>
</text>
<combobox case-sensitive="false" value-in-list="true">
<variable>FILE_EXT</variable>
<item>ts</item>
<item>avi</item>
<item>mp4</item>
<item>ogv</item>
</combobox>
</hbox>
<hbox tooltip-text="녹화 시간을 분 단위로 설정해 주세요.">
<text>
<label>"녹화시간 선택(분 단위):"</label>
</text>
<combobox case-sensitive="false" value-in-list="false">
<variable>LENGTH</variable>
<item>1</item>
<item>5</item>
<item>10</item>
<item>15</item>
<item>30</item>
<item>60</item>
<item>90</item>
<item>120</item>
<item>150</item>
<item>180</item>
<item>210</item>
<item>240</item>
<item>300</item>
<item>360</item>
<item>420</item>
<item>480</item>
</combobox>
</hbox>
<hbox tooltip-text="녹화 저장 파일명을 설정해 주세요.">
<text>
<label>"녹화저장파일:"</label>
</text>
<combobox case-sensitive="false" value-in-list="false">
<variable>FILENAME</variable>
<item></item>
</combobox>
</hbox>
</frame>
<hbox tooltip-text="설정한 값으로 비디오를 녹화하려면 [비디오 녹화]버튼을 클릭하세요. 녹화된 파일은 여러분 계정의 '"'Recordings'"'디렉토리에 자동으로 생성되고 저장됩니다.
실행하고 있는 넘버원 리눅스 PVR 버전에 대한 정보를 보려면 [프로그램 정보] 버튼을 누르면 됩니다. 만일 녹화 시간내에 녹화를 중단하려면 [녹화 중지] 버튼을 누르면 됩니다.
No1.Linux PVR를 종료하려면 '"'종료'"' 버튼을 클릭하세요.">
<button>
<input file icon="functionhelp"></input>
<label>정보</label>
<action type="launch">ABOUT</action>
</button>
<button>
<label>방송보기</label>
<input file icon="multimedia_section"></input>
<action>killall mplayer;mplayer dvb://$CHANNEL</action>
</button>
<button><input file icon="multimedia_section"></input>
<label>비디오녹화</label>
<action>killall mencoder;let L=$LENGTH*60+1 && timeout $L mencoder dvb://$CHANNEL width=$WIDTH:height=$HEIGHT:$ADRIVER:adevice=hw.$ADEVICE:forceaudio:audiorate=$AUDIORATE:amode=1 -ovc copy -oac mp3lame -lameopts cbr:br=$AUDIO_BITRATE -o "$HOME/Recordings/`date +%Y-%m-%d-%H%M`.$FILENAME.${VBR}kbps.$FILE_EXT" &</action>
</button>
<button>
<label>녹화 중지</label>
<input file icon="bball"></input>
<action>killall mencoder &</action>
</button>
<button>
<label>녹화 보기</label>
<input file icon="video_section"></input>
<action>killall mplayer;mplayer "$HOME/Recordings/`date +%Y-%m-%d-%H%M`.$FILENAME.${VBR}kbps.$FILE_EXT"</action>
</button>
<button>
<label>종료</label>
<input file icon="window-close"></input>
<action function="closewindow">NO1LINUX_PVR</action>
</button>
</hbox>
</vbox>
<variable>NO1LINUX_PVR</variable>
</window>
'
gtkdialog --program=NO1LINUX_PVR
3.2 그외의 참고할 수 있는 파일 : /usr/bin/myliveusb