i3 exit

Publicado por Ryuk Shinigami (última atualização em 13/04/2019)

[ Hits: 2.818 ]

Homepage: www.alem.com.br

Download i3exit.sh




Script para i3, compatível com runit e systemd. Pode ser usado para sair do i3 (logout), bloquear tela, e suspender, desligar e reiniciar o sistema.

  



Esconder código-fonte

#!/bin/sh
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# Permissões para Shutdown/Reboot/Suspend com sudo (Void linux):
# sudo visudo
# %wheel ALL=(ALL) NOPASSWD: /usr/bin/halt, /usr/bin/poweroff, /usr/bin/reboot, /usr/bin/shutdown, /usr/bin/zzz, /usr/bin/ZZZ

lock() {
import -window root /tmp/screenshot.png
convert /tmp/screenshot.png -blur 0x5 /tmp/screenshotblur.png
rm /tmp/screenshot.png
i3lock -i /tmp/screenshotblur.png
}

case "$1" in
    lock)
        lock
    ;;
    logout)
        i3-msg exit
    ;;
    suspend)
        if [ $(cat /proc/1/comm) = "systemd" ]; then
            systemctl suspend
        elif [ $(cat /proc/1/comm) = "runit" ]; then
            lock && sudo zzz 
        else
            lock && dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Suspend boolean:true
        fi
    ;;
    hibernate)
        if [ $(cat /proc/1/comm) = "systemd" ]; then
            systemctl hibernate
        elif [ $(cat /proc/1/comm) = "runit" ]; then
            lock && sudo ZZZ
        else
            lock && dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Hibernate boolean:true
        fi
    ;;
    reboot)
        if [ $(cat /proc/1/comm) = "systemd" ]; then
            systemctl reboot
        elif [ $(cat /proc/1/comm) = "runit" ]; then
            sudo reboot
        else
            dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
        fi
    ;;
    shutdown)
        if [ $(cat /proc/1/comm) = "systemd" ]; then
            systemctl poweroff
        elif [ $(cat /proc/1/comm) = "runit" ]; then
            sudo shutdown -h now
        else
            dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
        fi
    ;;
    *)
        echo "Usage: $0 {lock|logout|suspend|hibernate|reboot|shutdown}"
        exit 2
esac

exit 0

Scripts recomendados

Implementando um simples manipulador de eventos de teclado

Manutenção de rede

Conversor de M4A para MP3

Instalar splashtop em um pendrive

Restaura gerenciador de boot grub


  

Comentários
[1] Comentário enviado por cizordj em 02/03/2020 - 23:10h

Para quem não sabe como usar esse script, baixe ele, renomeie para "i3exit" sem aspas, torne-o executável com chmod +x e por último mova-o para /usr/local/bin no caso das distros Debian.

Se o seu i3 estiver com a conf padrão basta pressionar $mod + 0 que as opções que aparecer na barra vão funcionar.

Obrigado pelo script :)
________________________________________________
O programador tem a mania de achar que tudo é objeto


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts