Титла: [РЕШЕН]Смяна на компиз и метасити с бутон Публикувано от: bazu в Feb 12, 2011, 13:00 не съм сигурен дали изобщо темата е за тук, а желанието ми е да направя така, че с клавиатурата, а не от fusion-icon да сменям от compiz на metacity и обратно. Това е лесно направел съм си го ALT+3=compiz, а ALT+4=metacity, но искам така да стане само с alt+3 да сменям и двете. Или друго яче казано, ако ми е пуснат компиз да ме прехвърли на metacity и ако съм на metacity да ме прехвърли на компиз.
Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bop_bop_mara в Feb 12, 2011, 15:01 Каква команда се изпълнява за пускане на едното и на другото? Т.е. какво е било срещу Alt+3 и Alt+4?
Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bazu в Feb 12, 2011, 15:10 alt+3 = compiz --replace ccp ; alt+4 = metacity --replace
Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bop_bop_mara в Feb 12, 2011, 15:20 Това, за което аз се сещам, е команда "ако в момента върви metacity, направи compiz -- replace ccp, иначе направи metacity --replace". Не знам дали може това цялото да се запише направо за shortcut команда, но, ако не може, може да го запишеш в едно файлче като shell script и да задаваш за shortcut команда да се пуска този скрипт.
Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bazu в Feb 12, 2011, 15:23 Да де и аз си мислех, че да е някакъв си shell script ама и най-елементарните кодове са ми непоносимо трудни.
Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bop_bop_mara в Feb 12, 2011, 15:58 Да де и аз си мислех, че да е някакъв си shell script ама и най-елементарните кодове са ми непоносимо трудни.Искаш го наготово или искаш насоки за справяне? :) 1. Трябва ти if-else израз. Най-простата му форма (която ти е нужна) е Код Това означава "изпълни COMMAND1 и, ако завърши с успех, изпълни COMMAND2, ако ли не - изпълни COMMAND3". COMMAND2 и COMMAND3 сам си ги каза. Под COMMANDn имам пред вид както името на командата (програмата), така и опциите и аргументите ѝ. 2. COMMAND1 ($2) - разгледай добре с коя опция ще ти даде информация за всички процеси, които имат определено име на изпълнимия файл 3. Пробвай всички подкоманди в терминала, после целия if в терминал, за да се убедиш, че работи както трябва. 4. Сглобяваш си скрипта - слагаш if-а в текстов файл и си избираш име. Ако искаш да го изпълняваш като Код това е достатъчно. Ако искаш да го изпълняваш като Код в началото на файла на първия ред сложи Код (пътя до интерпретатора, който ти трябва, може и /bin/sh да бъде или някакъв друг), а за самия файл вдигни executable правото на твоя потребител. Една малка забележка - ако ще е по вторият начин и скрипта е в текущата директория, изпълнява се не просто със Код а с Код
5. След като си видял, че скрипта работи с избрания от теб начин на извикване, можеш да зададеш този начин на извикване за shortcut команда. Допълнително може да пренасочиш стандартния изход на COMMAND1 към нищото. Пренасочването на стандартен изход на команда става чрез поставяне на Код където filename е име на файла, към който да се пренасочи стандартния изход. В твоя случай filename е нищото, т.е. файлът /dev/null. Може и някакви други пренасочвания да си сложиш по твой избор. Пробвай сам и пиши, ако срещнеш спънки. Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bazu в Feb 12, 2011, 16:42 Благодаря, утре ще го пробвам че дълга ме зове на работа трябва да се ходи.
Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bazu в Feb 21, 2011, 11:52 Срам не срам ще си призная, след такова обяснение дори не успях да си го подкарам това чудо не техниката.
Код: if /usr/bin/compiz ccp; then metacity --replace; else compiz --replace Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bop_bop_mara в Feb 21, 2011, 12:12
Цитат Това означава "изпълни COMMAND1 и, ако завърши с успех, изпълни COMMAND2, ако ли не - изпълни COMMAND3". Командата, която трябва да е COMMAND1, трябваше да е такава, която проверява дали върви процеса compiz (или пък metacity) върви, т.е. ps. ps има хубава опция, която ти показва процесите с дадено име на изпълнимия файл. Тя завършва успешно, ако има такива процеси, ако няма - завършва неуспешно. Успяваш ли да се ориентираш? Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bazu в Feb 21, 2011, 13:00 Код: [bazu@igoshin ~]$ ps x | grep compiz Ето така е както съм го пробвал и дори ми заби линукса и трявбаше master reset. :D Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bop_bop_mara в Feb 21, 2011, 13:14 Ти не спомена да си пробвал if ps x | grep compiz; then... Само че тука има една уловка - ps x | grep compiz винаги ще е успешен, защото винаги ще има думичката compiz в изхода ps x - тя идва от процеса grep с аргумент compiz. Трябва, ако държиш да ползваш ps | grep, така да извикаш ps, че в изхода да показва само имената на процесите (изпълнимите файлове) без аргументите им. Или пък да промениш малко шаблона, който да търси grep. Иначе, както ти казах ps има такава опция, че като му дадеш име на изпълним файл (а даже и списък с имена), да ти изведе информацията за всички процеси, пуснати с указания изпълним файл. Разрови man-а на ps малко. ПС. Е, друг е въпроса, ако искаш решение наготово. Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bazu в Feb 21, 2011, 13:16 Наистина май вече предпочитам наготово, изтормозих се. :)
Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bop_bop_mara в Feb 21, 2011, 13:28 Наистина май вече предпочитам наготово, изтормозих се. :)Да ме прощава VladSun [_]3, ама направих всичко възможно... Вариант 1 - "така да извикаш ps, че в изхода да показва само имената на процесите (изпълнимите файлове) без аргументите им" Код: ps -eo fname | grep compiz Вариант 2 - "ps има такава опция, че като му дадеш име на изпълним файл (а даже и списък с имена), да ти изведе информацията за всички процеси, пуснати с указания изпълним файл" Код: ps -C compiz Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bazu в Feb 21, 2011, 13:41 тотално бъгва всичко. Пуснах го като script ./блала сложих го в usr/bin/... и пак същото. Пуска метасити но след това не ми пуска компиз ако го стартирам пак, а забива линукса.
Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bop_bop_mara в Feb 21, 2011, 13:50 тотално бъгва всичко. Пуснах го като script ./блала сложих го в usr/bin/... и пак същото. Пуска метасити но след това не ми пуска компиз ако го стартирам пак, а забива линукса.Чакай сега, досега ти твърдеше, че Код: metacity --replace Код: compiz --replace ccp Когато изпълняваш от терминала тези команди, вървят ли (включително като го затвориш терминала)? Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bazu в Feb 21, 2011, 14:50 Като затворя терминала се спират.
Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bop_bop_mara в Feb 21, 2011, 14:56 Като затворя терминала се спират.Пробвай Код: if ...; then metacity --replace &; disown; else compiz --replace ccp &; disown; fi Код: if ps -C compiz Титла: Re: Смяна на компиз и метасити с бутон Публикувано от: bazu в Feb 21, 2011, 15:06 Много ти благодаря, работи без отказ. Ако дойдеш до Банско обещавам да те почерпя бира с персонално намаление. :D
|