Říj 07

i3wm XI. – Vypnutie a reštart

Áno, áno, áno! Chce to dajaké fanfáry a riadnu párty! Je tu v poradí jedenásty, na 100% neplánový článok zo série o i3wm. Pokojne sa usaďte a nenechajte sa ničím vyrušovať. Tak ako ja pri písaní si spravte pohodičku. Mne ju vytvárala, tak ako vždy, metalová hudba.

Dnes si povieme ako svoj počítač s i3 vypnúť, reštartovať, odhlásiť, hibernovať či uspať pomocou mode, čo je špeciálny mód, ako už sám “názov” napovedá, do ktorého sa dostaneme použitím zvolenej klávesovej skratky. Čo nám umožní používať dodatočné možnosti. Podobným módom je aj resize, s ktorým prichádza i3 už v základe.

Predstavíme si 3 spôsoby. Prvé dva patria do tzv. mode, posledný tretí využíva na zobrazenie menu rofi alebo zenity. Dva z nich sú závislé na skriptoch… i3exit a shutdown_menu.

 

Prvý spôsob bez použitia skriptu:

Voliteľná závislosť: i3lock

Pomocou nejakého textového editoru si otvoríme základný konfiguračný súbor:

gedit ~/.config/i3/config

A pridáme túto pasáž:

set $powermenu (L)ock, (E)xit, (S)uspend, (H)ibernate, (R)eboot, (P)oweroff
bindsym $mod+Delete mode "$powermenu"

mode "$powermenu" {
 bindsym l exec --no-startup-id i3lock, mode "default"
 bindsym e exec --no-startup-id i3-msg exit, mode "default"
 bindsym s exec --no-startup-id systemctl suspend, mode "default"
 bindsym h exec --no-startup-id systemctl hibernate, mode "default"
 bindsym r exec --no-startup-id systemctl reboot, mode "default"
 bindsym p exec --no-startup-id systemctl poweroff, mode "default"

# back to normal: Enter or Escape
 bindsym Return mode "default"
 bindsym Escape mode "default"
 }

Druhý spôsob za použitia i3exit:

Voliteľná závislosť: i3lock

Pomocou nejakého textového editoru si otvoríme základný konfiguračný súbor:

gedit ~/.config/i3/config

A pridáme túto časť v prípade, že sa skript i3exit nachádza v /bin/usr/:

set $powermenu (L)ock, (E)xit, (S)uspend, (H)ibernate, (R)eboot, (P)oweroff
bindsym $mod+Delete mode "$powermenu"

mode "$powermenu" {
 bindsym l exec --no-startup-id i3exit lock, mode "default"
 bindsym e exec --no-startup-id i3exit logout, mode "default"
 bindsym s exec --no-startup-id i3exit suspend, mode "default"
 bindsym h exec --no-startup-id i3exit hibernate, mode "default"
 bindsym r exec --no-startup-id i3exit reboot, mode "default"
 bindsym p exec --no-startup-id i3exit shutdown, mode "default"

# back to normal: Enter or Escape
 bindsym Return mode "default"
 bindsym Escape mode "default"
 }

V prípade, že skript máme na inom mieste, napríklad v priečinku i3, časť bude vyzerať následovne:

set $powermenu (L)ock, (E)xit, (S)uspend, (H)ibernate, (R)eboot, (P)oweroff
bindsym $mod+Delete mode "$powermenu"

mode "$powermenu" {
 bindsym l exec --no-startup-id ~/.config/i3/i3exit lock, mode "default"
 bindsym e exec --no-startup-id ~/.config/i3/i3exit logout, mode "default"
 bindsym s exec --no-startup-id ~/.config/i3/i3exit suspend, mode "default"
 bindsym h exec --no-startup-id ~/.config/i3/i3exit hibernate, mode "default"
 bindsym r exec --no-startup-id ~/.config/i3/i3exit reboot, mode "default"
 bindsym p exec --no-startup-id ~/.config/i3/i3exit shutdown, mode "default"

# back to normal: Enter or Escape
 bindsym Return mode "default"
 bindsym Escape mode "default"
 }

 

Samozrejmosťou je, že skript musí byť spustiteľný ako program:

chmod +x /cesta/ku/i3exit

 

Tretí spôsob pomocou shutdowshutdown_menun_menu:

Potrebné závislosti: rofi alebo zenity

Skript na stiahnutie: shutdown_menu

Voliteľná závislosť: i3lock

Pomocou nejakého textového editoru si otvoríme základný konfiguračný súbor:

gedit ~/.config/i3/config

A vytvoríme si klávesovú skratku, vďaka ktorej sa skript spustí:

bindsym $mod+Delete exec /cesta/ku/shutdown_menu
bindsym $mod+Delete exec $HOME/.config/i3/shutdown_menu

 

Samozrejmosťou je povolenie spustenie skriptu ako programu:

chmod +x /cesta/ku/shutdown_menu

 

Tento skript sa dá pridať aj do i3blocks (veď je od toho vývojára). Ukážkové pridanie od vývojára:

[shutdown_menu]
full_text=Quit
# If you are using FontAwesome, we recommend the power-off icon:
# http://fontawesome.io/icon/power-off/
command=$SCRIPT_DIR/shutdown_menu -c; echo Quit

 

Dá sa to zadefinovať aj inak (ten neznámy symbol je fa-power-off):

[shutdown_menu]
full_text=
command=$HOME/.config/i3/shutdown_menu &
color=#5994ad

 

Použitie vlastného skriptu:

[powermenu]
full_text= 
command=$HOME/.config/i3/Scripts/powermenu_rofi &
color=#5994ad

Zjednodušená verzia skriptu (bez nutnosti použitia rofi témy). Celý sa dá nájsť na pastebin (s použitím rofi téme):

#!/bin/bash

export TERM=xterm
USE_LOCKER='false'
LOCKER='i3lock-my'

OPT=$(echo -e 'Cancel\nLock\nLogout\nSuspend\nHibernate\nReboot\nPoweroff' \
 | rofi -markup-rows -hide-scrollbar -no-fullscreen -no-custom \
 -location 0 -bw 2 -eh 1 \
 -font 'Terminus bold 13' \
 -theme-str '#inputbar {enabled: false;}' \
 -theme-str '#inputbar {padding: 0.2em;}' \
 -theme-str '#window {x-offset: 0%; y-offset: -43.3%;}' \
 -theme-str '#window {width: 530;}' \
 -theme-str '#listview {padding: 0.5em;}' \
 -theme-str '#listview {columns: 5;}' \
 -theme-str '#listview {lines: 1;}' \
 -theme-str '#listview {border: none;}' \
 -theme-str '#element {horizontal-align: 0.55;}' \
 -dmenu -i -p 'Powermenu')

if [ ${#OPT} -gt 0 ]
then
 case $OPT in
 Cancel) ;;
 Lock) i3lock-my ;;
 Logout) i3-msg exit ;;
 Reboot) systemctl reboot ;;
 Poweroff) systemctl poweroff ;;
 Suspend) $($USE_LOCKER) && "$LOCKER"; systemctl suspend ;;
 Hibernate) $($USE_LOCKER) && "$LOCKER"; systemctl hibernate ;;
 *) ;;
 esac
fi

 

Po každej úprave konfigurácie je potrebné i3wm reštartovať pomocou klávesovej skratky:

$mod+Shift+r

 

Napsat komentář

Your email address will not be published.

%d blogerům se to líbí: