První, co mě napadlo, bylo vytvořit klávesovou zkratku založenou na xbindkeys. Klasickou zkratku v systému si nastavit nemůžete, protože ty obsluhuje Compiz a jeho smrt tu právě řeším. Říkal jsem si: xbindkeys je nezávislý démon, ten mi to zařídí. Ale ouha, ani xbindkeys v tomto případě klávesy nezachytí a taková klávesová zkratka funguje jen tehdy, když to nepotřebujete. Tak tedy jinak..
Předesílám, že klíčová je proměnná prostředí $DISPLAY, která je na lokálním systému běžně nastavena na hodnotu :0. Je potřeba si tedy předem zjistit, jak má tuto proměnnou nastaveno sezení X serveru, na kterém Unity běží, třeba příkazem:
echo $DISPLAY
Script
První možností je vytvořit si skript v adresáři ~/bin, který se při startu systému automaticky přidá do proměnné $PATH a skripty zde uložené nemusíte spouštět se zadáním celé cesty. Můžete si tedy vytvořit třeba skript ru (jako restart unity)Nejprve si vytvoříte adresář, pokud již nemáte a pak založíte soubor v editoru:
mkdir ~/bin
gedit ~/bin/ru
gedit ~/bin/ru
do něj vložíte následující (s vaší hodnotou $DISPLAY):
#!/bin/sh
DISPLAY=:0 unity --replace &
DISPLAY=:0 unity --replace &
Uložíte, nastavíte souboru spustitelný příznak v Nautilu, nebo z terminálu:
chmod +x ~/bin/ru
A pokaždé, když se Unity sekne, stisknete klávesovou zkratku Ctrl+Alt+F1, přihlásíte se do konzole, pokud již přihlášeni nejste, spustíte příkaz:
ru
a pomocí Alt+F7 se vrátíte do systému.
Alias
Další, ekvivalentní možností je vytvoření aliasu, jehož definici přidáte na konec souboru ~/.bashrc. Definice vypadá takto:
alias ru='DISPLAY=:0 unity --replace &'
Použití je pak úplně stejné jako v předešlém případě.
LIRC
Pokud náhodou používáte dálkový ovladač založený na LIRC, je nejpohodlnější cestou věnovat jedno tlačítko na ovladači tomuto účelu. Já mám na mém ovladači nadefinováno spouštění XBMC, přepínání monitorů a teď i restart Unity. Jen jsem přidal do svého konfiguračního souboru ~/.lirc/system následující:
begin
prog = irexec
button = F_TELETEXT
config = /bin/sh -c "unity --replace"
repeat = 0
end
prog = irexec
button = F_TELETEXT
config = /bin/sh -c "unity --replace"
repeat = 0
end
F_TELETEXT je jméno tlačítka, kterému jsem to přiřadil, jeho přesné jméno jsem si předem zjistil spuštěním příkazu irw který mi po stisku onoho tlačítka název prozradil. Samozřejmě můj ~/.lircrc musí obsahovat řádek:
include ~/.lirc/system
Výhoda je v tom, že tento způsob nevyžaduje přepínání do konzole, jen stisknete tlačítko a Unity se restartuje.
Více o LIRC:
http://www.root.cz/clanky/lirc-dalkove-ovladani-pro-vas-linux/
http://www.lirc.org/
Reset Unity
Pokud už něco poděláte tak, že vám Unity nenastartuje vůbec, pak zbývá příkaz:
unity --reset
který obnoví výchozí nastavení
Update
Ubuntu 12.10 a novější již nepotřebují přepínač --replace, samotný příkaz unity se chová tímto způsobem. Další změnou je zrušení přepínače --reset.
Žádné komentáře:
Okomentovat
Zkuste prosím při komentováni používat místo volby Anonymní volbu Název/adresa URL, kde vyplníte nějakou přezdívku, adresu zadávat nemusíte. Vědět, které příspěvky jsou od jednoho člověka, je fajn. Díky.
Pokud by se vám náhodou odeslaný komentář na stránce nezobrazil, vytáhnu ho z koše hned jak si toho všimnu. I Google spam filter se občas sekne.