로그인
Sign in
Extra Form

 Zenity 간단한 메뉴얼


1. 개 요

쉘 스크립트에서 GUI 형태의 대화 상자로 만들어 주는 도구입니다. 단순한 쉘 스크립트에 제니티를 적용하면 스크립트 자체가 GUI 대화 창 모드로 진행되기 때문에 사용자의 편의성을 향상시켜 줄 수 있습니다. 이 메뉴얼은 Zenity 메뉴얼에 있는 내용들을 간략하게 설명합니다.


2. 다이얼로그


2.1 텍스트 엔트리 다이얼로그


zenity --entry --title="창제목" --text="새 프로파일 이름을 입력하세요" --entry-text="새 프로파일"


zenity1.png


 2.2 텍스트 정보 다이얼로그


스크립트 안내문과 같은 정보를 제공하고자 할 때 --text-info 옵션을 사용합니다.


zenity --text-info --title="No1.Linux" --filename="readme"  --checkbox="Yes?"


zenity2.png

  • --filename=파일명 : 텍스트 정보 대화창에서 보여줄 메시지가 있는 파일명
  • --editable : 보여주는 메시지를 수정 가능 여부
  • --font=글꼴명: 텍스트 글꼴 명시
  • --checkbox=텍스트 : 체크 박스의 메시지
  • --html : HTML 지원
  • --url=URL : 파일 대신에 URL 사용


2.3 진행 상태 다이얼로그


스크립트에서 진행 상태를 보여주고자 할 때 --progress 옵션을 사용합니다.


zenity --progress


zenity3.png 


2.4 스케일 다이얼로그


양(스케일) 정도를 나타내고자 할 때는 --scale 옵션을 사용합니다. 투명도나 볼륨 값을 표시하고자 할 때 사용합니다.


zenity --scale


zenity4.png


  • --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 "세번째 파티션"


zenity5.png

  • --column=단어 : 행 목록
  • --checklist : 첫 행에 체크 박스 사용 여부
  • --radiolist : 첫 행에 라디오박스 사용 여부
  • --editable : 나열한 아이템 수정 여부
  • --separator=구분자: 구분자로 사용할 기호 명시

2.6 폼 다이얼로그


폼 대화상자를 만들려면 --forms 옵션을 사용합니다.


zenity --forms --text="각 폼을 채워 주세요" --separator="|" --add-entry="이름" --add-entry="이메일" --add-entry="아이디"


zenity6.png 

  •  --add-entry=필드명 : 폼 제목
  •  --add-password=필드명 : 암호 엔트리 폼 추가
  •  --add-calendar=필드명: 폼 다이얼로그에 캘린더 지원
  •  --text=텍스트 : 대화상자에 텍스트 설정
  •  --separator=기호 : 구분자(기본값 "|")
  •  --forms-date-formet=패턴: 날짜 형식 지정 


2.7 파일 선택 다이얼로그


파일을 선택할 수 있도록 파일 브라우저 창이 뜨게 하려면 --file-selection 옵션을 사용합니다.


zenity --file-selection


zenity7.png

  • --filename=파일명 : 다이얼로그 창이 들 때 기본적으로 선택되어질 파일이나 디렉토리
  • --multiple : 파일 선택 다이얼로그창에서 다중 파일 선택 허용
  • --directory : 파일 선택 창에서 디렉토리만 선택

3. 예제 파일

3.1 /usr/sbin/no1linux-dvb-pvr


zenity8.png


 #!/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


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 넘버원 리눅스 팁은 FAQ 게시판으로 zharyong 2018.07.15 1866
173 [엑스] No1.Linux 2018 KDE Plasma5의 QT 프로그램 글꼴 비대화 file zharyong 2018.03.19 328
172 [설치] 넘버원 리눅스 부팅 메뉴에 대해서 알아보자 file zharyong 2018.03.19 474
171 [TodayAPP] KDE Plasma와 스마트폰 연동하기 - KDE Connect 4 file zharyong 2018.03.10 7281
170 [TodayAPP] 빨리 파일을 찾고자 한다면 AngrySearch zharyong 2018.03.08 344
169 [KDE5] Latte Dock file zharyong 2018.03.07 633
168 [PLASMA5] KDE5 PLASMA5용 DOCK - KSmoothDock file PourLinux 2018.03.02 354
167 [원격제어] 팀뷰어 잘 사용하세요? AnyDesk는 어떨까요? file zharyong 2017.07.10 2677
166 [한글입력기] KDE5의 iBUS 한글 입력기에서 한영키가 안 될때 file zharyong 2017.07.09 2627
165 [하드웨어] 블루투스 스피커와 블루투스 동글 셋팅하여 음악 감상하기 file PourLinux 2017.07.09 1967
164 [Graphics] No1.Linux에서 사용할 수 있는 페인트 프로그램들 file PourLinux 2017.02.05 1345
163 [Music] 악기(기타)를 좋아하는 리눅서를 위한 프로그램 file PourLinux 2017.02.04 1059
162 [화면캡쳐] scrot를 이용한 콘솔에서 엑스 화면 캡쳐 file PourLinux 2017.02.04 1181
161 [No1.Linux-2016.10.30] 바탕화면을 예쁘게 꾸며보자 file PourLinux 2017.02.01 800
160 [No1.Linux-2016.10.30] 한글 입력기 UIM, Nabi file zharyong 2016.12.30 1515
» [GUI스크립트] 쉘 스크립트를 GUI로 작동시켜 보자 -- zenity 간단한 메뉴얼 file zharyong 2016.12.29 2825
158 [No1.Linux-2016.10.30] 3D 데스크탑을 즐겨봐요 file zharyong 2016.12.28 697
157 [No1.Linux-2016.10.30] 한컴오피스 뷰어 설치하기 file zharyong 2016.12.27 699
156 [No1.Linux-2016.10.30] 스팀을 이용하여 게임 즐기기 file zharyong 2016.12.26 982
155 [쉬었다가는 코너] cURL를 이용한 콘솔에서 날씨 보기및 그외 file zharyong 2016.10.06 1506
154 [엑스] 엑스에서 고해상도 설정이 안될 경우 설정 방법 file zharyong 2016.10.06 1890
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 12 Next
/ 12