Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: scd 07 Srpna 2012, 19:38:18
-
Dobrý deň,
mám na mojom kubuntu nastavené spustenie skriptu po spustení(skript je v zložke ~/.kde/Autostart). V skripte je vlastne len pomocou xmodmap namapovaná klavesa "super" na inú virtuálnu, aby som mohol na ňu mať nastavenú klávesovú skratku. Všetko funguje až na to, že keď notebook uspím, tak potom po zobudení to už nefunguje. Pravdepodobne pri uspaní sa tá klávesa "odmapuje". Chcem poprosiť o radu čo by sa stým dalo robiť. Napadá ma buď nejako zakázať to odmapovanie virtuálnej klávesy pri uspaní alebo niekde nastaviť, aby sa ten skript spustil znovu pri zobudení.
ďakujem za pomoc
-
Asi bych řešení věděl, ale mohl by jsi sem poslat obsah toho skriptu a taky jak to spouštíš, předpokládám, že to máš vloženo do souboru a přidělený spustitelný příznak
-
obsah súboru
#! /bin/bash
xmodmap -e 'keycode 133=F13'
spúšta sa automaticky pri spustení = je v zložke Autostart(skúsil som aj env) a samozrejme má nastavený príznak na spustenie
-
Zkus tohle
sudo gedit (v KDE asi není, tak jiný editor který používáš) /etc/pm/sleep.d/0000keymap.sh to by mělo vytvořit prázdný soubor, do něj vlož tohle #!/bin/bash
case "$1" in
thaw|resume)
xmodmap -e 'keycode 133=F13'
;;
*)
;;
esac
exit $? ulož a přiděl spustitelný příznak sudo chmod +x /etc/pm/sleep.d/0000keymap.sh kdyby to náhodou nefungovalo, zkus změnit pořadí startu. Koukni do toho adresáře, bude tam víc takových souborů s čísly na začátku, změň tedy ty "0000" na něco jako třeba "0099" tak aby to nekolidovalo s něčím co už tam je
-
OK, díky moc ;)
neskôr vyskúšam a dám vedieť či funguje
-
Bohužial, vyzeralo to nádejne ale nefunguje to :(
prikladám zoznam súborov v zložke sleep.d :
file:///etc/pm/sleep.d/0000keymap.sh
file:///etc/pm/sleep.d/10_grub-common
file:///etc/pm/sleep.d/10_unattended-upgrades-hibernate
file:///etc/pm/sleep.d/novatel_3g_suspend
skript som skúšal aj premenovať napr. na 11_keymap.sh no nepomohlo, na poradí asi nezáleží, skúšal som aj do tych ostatných skriptov, kde bola podmienka thaw|resume) dopísať ten príkaz na premapovanie no ani to nefungovalo.
Podla mňa, ak sa ten príkaz vykonal(neviem ako by som to zistil/overil, skúšal som tam dať príkaz na vytvorenie textového súboru ">> ~/zobudil", aby som videl či sa to vykonalo no nevytvoril sa, ale neviem či som postupoval správne tak prosím o radu), tak potom asi ešte niečo, čo sa vykoná ešte následne za skriptami v sleep.d to premapovanie zruší.
-
protoze se to musi poustet pro Xka .. jako prislusnej user .. takze su -c a promennou DISPLAY= .. nejsem si jistej tedka, nutno vyzkouset, ale mozna ten DISPLAY primo v ramci toho su
-
Vďaka za rýchlu odpoveď ale akosi vám nerozumiem :(
mysleli ste takéto niečo?
#!/bin/bash
case "${1}" in
thaw|resume)
su -c
DISPLAY=xmodmap -e 'keycode 133=F13'
esac
exit $?
-
ne, to nemyslim, myslim pomoci
su $jmeno_uzivatele -c 'DISPLAY=$hodnota_te_promenne $nejaky_prikaz'
-
Ja naozaj nerozumiem vašej odpovedi.
Načo mám prepínať užívateľa?
Prečo mám použiť premennú DISPLAY?
Aký to má súvis s premapovaním klávesy?
Ako by mal teda podľa vás vyzerať celý ten script?
-
Co to zkusit spustit s časovou prodlevou, asi nějak takhle
#!/bin/bash
case "$1" in
thaw|resume)
sleep 10s
xmodmap -e 'keycode 133=F13'
;;
*)
;;
esac
exit $?
-
Dobrý nápad,
no nefunguje. Kazdopádne zistil som aspoň, že skript sa spustí.
Prebehlo to nasledovne:
uspal som PC
zobudil som PC
10s bola podsvietená čierna obrazovka (čiže vykonával sa onen skript)
potom nabehlo okno na zadanie hesla
-
On má NTZ pravdu, musí se to vykonat nad úrovní X serveru, tedy až poté co naběhne grafika, problém mě v tom, že momentálně mě nenapadá jak to udělat
-
Vyriešené :) vďaka za pomoc
príkaz xmodmap treba použiť bez modifikátora -e
výsledný skript
#!/bin/bash
case "$1" in
thaw|resume)
xmodmap 'keycode 133=F13'
;;
*)
;;
esac
exit
tu je pekne opísané niečo obdobné keby niekto potreboval
http://rebusdigitalis.blogspot.sk/2011/11/umlauts-for-us-keyboard.html (http://rebusdigitalis.blogspot.sk/2011/11/umlauts-for-us-keyboard.html)
-
On má NTZ pravdu, musí se to vykonat nad úrovní X serveru, tedy až poté co naběhne grafika, problém mě v tom, že momentálně mě nenapadá jak to udělat
kdyz dam k sobe do tohodle souboru
sleep 10;
su $__me -c 'DISPLAY=:0 xeyes'
tak mi to samozrejme ty xeyes pusti pod mym uzivatelem kdyz se to probere
-
On má NTZ pravdu, musí se to vykonat nad úrovní X serveru, tedy až poté co naběhne grafika, problém mě v tom, že momentálně mě nenapadá jak to udělat
kdyz dam k sobe do tohodle souboru
sleep 10;
su $__me -c 'DISPLAY=:0 xeyes'
tak mi to samozrejme ty xeyes pusti pod mym uzivatelem kdyz se to probere
Jen ti to může zablokovat další resume skripty, v Ununtu to je typicky (mimo jiné) obnova připojení k síti, i když to máš s prioritou 00. Pokud to tedy nespustíš na pozadí pomocí &.