Unity에서 카운트 다운을 사용하여 gnome-session-quit를 어떻게 호출합니까?

감사합니다

키보드 단축키종료 할 수 있도록 gnome-session-quit ---power-off사용자 정의 단축키에 할당 할 수 있습니다 .

Unity에서는 다음과 같은 대화 상자가 나타납니다.

여기에 이미지 설명 입력

그런 다음 마지막으로 시스템 전원을 끄려면 최소 두 번의 키 입력이 필요합니다. 이것은 다소 불편하며 Return기본 카운트 다운 인 60 초를 기다림으로써 전원을 끌 수있을 때 이전 종료 대화 상자를 선호합니다 .

호출 할 때 gnome-session-quit --poweroffA로부터 GNOME 세션 플래시백 동일한 시스템 (14.04 LTS)에 세션 카운트 다운을 포함하여 이전 대화 상자가 다시 온다 :

여기에 이미지 설명 입력

그래서 우리는 그것이 어딘가에 있다는 것을 압니다.

Unity 세션을 실행할 때이 이전 대화 상자를 호출하는 방법이 있습니까?

세르지 콜로 디아즈 니

다음은 원하는 동작을 에뮬레이트하는 스크립트입니다. 와 같이 실행해야합니다 sudo. 키보드 바로 가기에 바인딩 할 수 있습니다 ( 비밀번호없는 실행shutdown허용 하기 위해 sudoers 파일에 명령을 미리 추가 함 ). 단순하고 간결하며 작업을 수행합니다.

#!/bin/bash
# Date: June 11,2015
# Author: Serg Kolo
# Description: a script to emulate
# behavior of GNOME session flashback
# shutdown dialog

# Tell ubuntu to shutdown in 1 min
shutdown -P +1 &
# Show the dialog
zenity --question --text="Shutdown now ? Automatic shutdown in 60 seconds" --ok-label="DOIT" 
# If user clicks DOIT, then cancel the old 
# shutdown call that has countdown,
# (because only one shutdown command can be run at a time), and
# tell ubuntu to shutdown immediately
# otherwise - cancel it
if [ $? -eq 0 ];then
        shutdown -c
        shutdown -P now
else
        shutdown -c
fi

업데이트 : 6 월 14 일

Takkat이 제안한대로 다음은 zenity의 --timer 옵션과 dbus를 사용하여 sudo 액세스없이 동일한 동작을 달성하는 스크립트입니다.

#!/bin/bash
# Date: June 14,2015
# Author: Serg Kolo
# Description: a script to emulate
# behavior of GNOME session flashback
# shutdown dialog
# version #2

zenity --question --text="Shutdown now ? Autoshutdown in 60 seconds" \
    --cancel-label="DOIT" --ok-label="NOPE" --timeout=60 ||  
  dbus-send --system --print-reply --dest=org.freedesktop.login1 \
    /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true

여기서 기본 아이디어는 zenity의 시간 초과 옵션이 0보다 큰 코드로 종료되며 일반적으로 명령이 실패했음을 의미합니다. 따라서 zenity의 취소 옵션과 시간 제한을 종료를 허용하는 조건으로 처리하여 ||사용자가 취소 버튼 ( "DOIT"로 표시됨)을 클릭하거나 대화 상자가 시간 초과되는 경우에만 OR 연산자 ( )를 사용하여 종료합니다.

사용자 경험을 향상시키기위한 또 다른 변형을 수행 할 수 있습니다 yad(이 명령을 사용하여 먼저 설치해야 함 sudo apt-add-repository ppa:webupd8team/y-ppa-manager;sudo apt-get update; sudo apg-get install yad). 이 변형은 진행률 표시 줄을 사용하여 사용자에게 남은 시간을 알려줍니다.

    #!/bin/bash
    yad --auto-close --sticky --on-top --skip-taskbar --center \
  --text 'Shutdown now ? Autoshutdown in 60 seconds.' \
  --button="gtk-ok:1" --button="gtk-close:0" --image=dialog-question \ 
--title 'Shutdown' --timeout=60 --timeout-indicator=top || 
dbus-send --system --print-reply --dest=org.freedesktop.login1 \
/org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true

또 다른 가능한 버전은 zenity의 확인 버튼 레이블을 변경하면 기본적으로 강조 표시된 버튼이 확인 버튼 일 수도 있고 아닐 수도 있다는 점을 고려합니다.

zenity --question --timeout 10 --text="Automatic shutdown in 10 seconds"
if [[ $? -eq 1 ]] ; then
    # user clicked Cancel
    exit 
else
    dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true
fi

스크립트는 0이 아닌 반환시 시스템을 종료합니다. 스크립트 시간이 초과되면 반환 값 1 또는 5는 스크립트가 해당 else부분 을 실행하도록 지시합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Unity에서 카운트 다운을 사용하여 gnome-session-quit를 어떻게 호출합니까?

분류에서Dev

카운트 다운 타이머에서 카운트 다운을 표시하려면 어떻게합니까

분류에서Dev

스크립트를 사용하여 아카이브를 다운로드하고 추출하려면 어떻게해야합니까 (후속 명령에 다운로드 한 파일을 안정적으로 지정하려면 어떻게해야합니까)?

분류에서Dev

Unity3d에서 코 루틴을 사용하여 카운터를 업데이트하려면 어떻게해야합니까?

분류에서Dev

카운트 다운 시간 (H : i : s)을 사용하여 jquery 또는 js에 대한 메이커 카운트 다운 타이머는 어떻게됩니까?

분류에서Dev

mongo DB에서 집계를 사용하여 다중 계층 카운트 분석을 수행하려면 어떻게해야합니까?

분류에서Dev

TextView에서 카운트 다운 타이머를 어떻게 표시합니까?

분류에서Dev

Rainmeter에서이 카운트 다운을 다시 시작하려면 어떻게해야합니까?

분류에서Dev

Bosun에서 win.disk.duration을 어떻게 사용하거나 카운터 유형 메트릭을 어떻게 다운 샘플링합니까?

분류에서Dev

curl을 사용하여 sourceforge에서 콘텐츠를 다운로드하려면 어떻게해야합니까?

분류에서Dev

nodejs를 사용하여 javascript에서 xml을 다운로드하려면 어떻게해야합니까?

분류에서Dev

SDImageView를 사용하여 TableViewCell 내에서 URL을 다운로드하려면 어떻게해야합니까?

분류에서Dev

버튼을 누른 후 ModalView에서 카운트 다운 타이머를 생성하려면 어떻게합니까?

분류에서Dev

kde / gnome / unity에서 릴리스 후 마우스 운동량을 활성화하려면 어떻게합니까?

분류에서Dev

wget을 사용하여 SourceForge에서 어떻게 다운로드합니까?

분류에서Dev

Linux에서 파일 관리자를 사용하여 실제로 파일을 어떻게 마운트합니까?

분류에서Dev

업데이트 사이트를 사용하여 Eclipse 플러그인을 zip 아카이브로 다운로드하려면 어떻게해야합니까?

분류에서Dev

Flutter에서 텍스트 필드를 사용하여 숫자 카운터 앱을 어떻게 만들 수 있습니까?

분류에서Dev

WWW :: Mechanize를 사용하여 웹 사이트에서 이미지 파일을 다운로드하려면 어떻게합니까?

분류에서Dev

Python을 사용하여 웹 사이트에서 비디오를 다운로드하려면 어떻게해야합니까?

분류에서Dev

"rw"를 사용하여 GRUB을 드라이브에 마운트하려면 어떻게해야합니까?

분류에서Dev

루비 변수에서 카운트 다운하기 위해 자바 스크립트 타이머를 어떻게 통합합니까?

분류에서Dev

OEL에서 쉘을 사용하여 마운트 포인트 Use %를 어떻게 얻을 수 있습니까?

분류에서Dev

.Net을 사용하여 엔드 포인트에서 인증서를 다운로드하려면 어떻게해야합니까?

분류에서Dev

Gnome + xmonad에서 암호화 된 플래시 드라이브를 자동 마운트하려면 어떻게해야합니까?

분류에서Dev

18.04에서 gnome-shell을 어떻게 다운 그레이드합니까?

분류에서Dev

NSTimer를 사용하여 10 초부터 카운트 다운 한 다음 타이머를 중지하려면 어떻게해야합니까?

분류에서Dev

토렌트를 사용하여 어떻게 다운로드합니까?

분류에서Dev

ULink를 사용하여 IAR 컴파일러의 Hex 파일 출력을 MCU에 다운로드하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    Unity에서 카운트 다운을 사용하여 gnome-session-quit를 어떻게 호출합니까?

  2. 2

    카운트 다운 타이머에서 카운트 다운을 표시하려면 어떻게합니까

  3. 3

    스크립트를 사용하여 아카이브를 다운로드하고 추출하려면 어떻게해야합니까 (후속 명령에 다운로드 한 파일을 안정적으로 지정하려면 어떻게해야합니까)?

  4. 4

    Unity3d에서 코 루틴을 사용하여 카운터를 업데이트하려면 어떻게해야합니까?

  5. 5

    카운트 다운 시간 (H : i : s)을 사용하여 jquery 또는 js에 대한 메이커 카운트 다운 타이머는 어떻게됩니까?

  6. 6

    mongo DB에서 집계를 사용하여 다중 계층 카운트 분석을 수행하려면 어떻게해야합니까?

  7. 7

    TextView에서 카운트 다운 타이머를 어떻게 표시합니까?

  8. 8

    Rainmeter에서이 카운트 다운을 다시 시작하려면 어떻게해야합니까?

  9. 9

    Bosun에서 win.disk.duration을 어떻게 사용하거나 카운터 유형 메트릭을 어떻게 다운 샘플링합니까?

  10. 10

    curl을 사용하여 sourceforge에서 콘텐츠를 다운로드하려면 어떻게해야합니까?

  11. 11

    nodejs를 사용하여 javascript에서 xml을 다운로드하려면 어떻게해야합니까?

  12. 12

    SDImageView를 사용하여 TableViewCell 내에서 URL을 다운로드하려면 어떻게해야합니까?

  13. 13

    버튼을 누른 후 ModalView에서 카운트 다운 타이머를 생성하려면 어떻게합니까?

  14. 14

    kde / gnome / unity에서 릴리스 후 마우스 운동량을 활성화하려면 어떻게합니까?

  15. 15

    wget을 사용하여 SourceForge에서 어떻게 다운로드합니까?

  16. 16

    Linux에서 파일 관리자를 사용하여 실제로 파일을 어떻게 마운트합니까?

  17. 17

    업데이트 사이트를 사용하여 Eclipse 플러그인을 zip 아카이브로 다운로드하려면 어떻게해야합니까?

  18. 18

    Flutter에서 텍스트 필드를 사용하여 숫자 카운터 앱을 어떻게 만들 수 있습니까?

  19. 19

    WWW :: Mechanize를 사용하여 웹 사이트에서 이미지 파일을 다운로드하려면 어떻게합니까?

  20. 20

    Python을 사용하여 웹 사이트에서 비디오를 다운로드하려면 어떻게해야합니까?

  21. 21

    "rw"를 사용하여 GRUB을 드라이브에 마운트하려면 어떻게해야합니까?

  22. 22

    루비 변수에서 카운트 다운하기 위해 자바 스크립트 타이머를 어떻게 통합합니까?

  23. 23

    OEL에서 쉘을 사용하여 마운트 포인트 Use %를 어떻게 얻을 수 있습니까?

  24. 24

    .Net을 사용하여 엔드 포인트에서 인증서를 다운로드하려면 어떻게해야합니까?

  25. 25

    Gnome + xmonad에서 암호화 된 플래시 드라이브를 자동 마운트하려면 어떻게해야합니까?

  26. 26

    18.04에서 gnome-shell을 어떻게 다운 그레이드합니까?

  27. 27

    NSTimer를 사용하여 10 초부터 카운트 다운 한 다음 타이머를 중지하려면 어떻게해야합니까?

  28. 28

    토렌트를 사용하여 어떻게 다운로드합니까?

  29. 29

    ULink를 사용하여 IAR 컴파일러의 Hex 파일 출력을 MCU에 다운로드하려면 어떻게해야합니까?

뜨겁다태그

보관