Xfce Forum

Sub domains
 

You are not logged in.

#1 2017-07-30 12:29:01

Friedrich
Member
Registered: 2016-09-18
Posts: 33

Add new buttons to xfce4-session-logout

Hi,

i'm using 3 os on my machine (xubuntu, kubuntu and windows 7). normally i use xubuntu. i want to add 2 extra buttons to the xfce4-session-logout window to directly reboot into kubuntu or windows using 'grub-reboot'. that means when i press one of the extra buttons xubuntu sets the changes settings to 'grubenv' and reboots

sudo grub-reboot "Kubuntu" && sudo reboot

can i edit this window in this way?

how can i use this command without having to enter the password? when i shutdown or restart the computer i don't need it.

friedrich

Offline

#2 2017-07-30 17:23:58

ToZ
Moderator
From: Canada
Registered: 2011-06-02
Posts: 3,897

Re: Add new buttons to xfce4-session-logout

Friedrich wrote:

can i edit this window in this way?

Unfortunately, no. These options are hard coded. However, you can create your own logout launcher. Using zenity:

zenity  --title "Save With Exit" --height 300 --width 200 --list  --text "Log Out: $USER" --radiolist  --column " " --column "Method" TRUE Logout FALSE Shutdown FALSE Reboot FALSE Suspend FALSE Hibernate FALSE "Lock Screen" FALSE "Reboot Kubuntu"

...or yad:

yad  --window-icon=system-devices-panel-information --on-top --sticky --fixed --center --width 200 --entry --title "Xfce Exit" --text "\nSelect an action:\n" --image=xfce4_xicon3 --image-on-top --button="gtk-ok:0" --button="gtk-cancel:1" --text-align center --entry-text  "Logout" "Reboot" "Suspend" "Hibernate" "Power Off" "Lock Screen" "Reboot Kubuntu"

The full code snippet would look like this:

#!/bin/bash

### Uncomment either the zenity or yad command

#ans=$(zenity  --title "Save With Exit" --height 300 --width 200 --list  --text "Log Out: $USER" --radiolist  --column " " --column "Method" TRUE Logout FALSE Shutdown FALSE Reboot FALSE Suspend FALSE Hibernate FALSE "Lock Screen" FALSE "Reboot Kubuntu")

#ans=$(yad  --window-icon=system-devices-panel-information --on-top --sticky --fixed --center --width 200 --entry --title "Xfce Exit" --text "\nSelect an action:\n" --image=xfce4_xicon3 --image-on-top --button="gtk-ok:0" --button="gtk-cancel:1" --text-align center --entry-text  "Logout" "Reboot" "Suspend" "Hibernate" "Power Off" "Lock Screen" "Reboot Kubuntu")

[[ $ret -eq 1 ]] && exit 0

case $ans in 
	Logout*)
		xfce4-session-logout -l
	;;
	Power*)
		xfce4-session-logout -h
	;;
	Reboot)
		xfce4-session-logout -r
	;;
	Suspend*)
		xfce4-session-logout -s
	;;
	Hibernate*)
		xfce4-session-logout --hibernate
	;;
    	Lock*)
        	xflock4
	;;
	Reboot\ Kubuntu)
		sudo grub-reboot "Kubuntu" 
		xfce4-session-logout -r		
    	;;
	*)
	;;
esac
exit 0

...just uncomment the code line to use either zenity or yad. For the sudo command to work, see below.

how can i use this command without having to enter the password? when i shutdown or restart the computer i don't need it.

You can configure sudo to allow non-password authentication to certain commands. To do so, add something like this to your sudo configs:

%wheel ALL=(ALL) NOPASSWD: /usr/bin/grub-reboot

...for all members of the wheel group to have non-password access to the command, or for only one user:

YOUR_USER_NAME ALL=(ALL) NOPASSWD: /usr/bin/grub-reboot

...and change YOUR_USER_NAME to your actual user name. Where to place this command may be dependent on your distro. For Arch linux, I would create the file /etc/sudoers.d/grub-reboot and put the contents there.

When you've done all that, create a new launcher on your panel and point it to this executable.


How To Ask For Help           Xfce FAQ                            Xfce Release Information
The Xfce Community          Xfce Tips and Tricks

Offline

Board footer

Powered by FluxBB