Автор Тема: [РЕШЕН]Смяна на компиз и метасити с бутон  (Прочетена 3097 пъти)

bazu

  • Напреднали
  • *****
  • Публикации: 810
  • Distribution: Debian
  • superman
    • Профил
не съм сигурен дали изобщо темата е за тук, а желанието ми е да направя така, че с клавиатурата, а не от fusion-icon да сменям от compiz на metacity и обратно. Това е лесно направел съм си го ALT+3=compiz, а ALT+4=metacity, но искам така да стане само с alt+3 да сменям и двете. Или друго яче казано, ако ми е пуснат компиз да ме прехвърли на metacity и ако съм на metacity да ме прехвърли на компиз.
« Последна редакция: Feb 22, 2011, 09:53 от bazu »
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #1 -: Feb 12, 2011, 15:01 »
Каква команда се изпълнява за пускане на едното и на другото? Т.е. какво е било срещу Alt+3 и Alt+4?
Активен

bazu

  • Напреднали
  • *****
  • Публикации: 810
  • Distribution: Debian
  • superman
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #2 -: Feb 12, 2011, 15:10 »
alt+3 = compiz --replace ccp ; alt+4 = metacity --replace
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #3 -: Feb 12, 2011, 15:20 »
Това, за което аз се сещам, е команда "ако в момента върви metacity, направи compiz -- replace ccp, иначе направи metacity --replace". Не знам дали може това цялото да се запише направо за shortcut команда, но, ако не може, може да го запишеш в едно файлче като shell script и да задаваш за shortcut команда да се пуска този скрипт.
Активен

bazu

  • Напреднали
  • *****
  • Публикации: 810
  • Distribution: Debian
  • superman
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #4 -: Feb 12, 2011, 15:23 »
Да де и аз си мислех, че да е някакъв си shell script ама и най-елементарните кодове са ми непоносимо трудни.
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #5 -: Feb 12, 2011, 15:58 »
Да де и аз си мислех, че да е някакъв си shell script ама и най-елементарните кодове са ми непоносимо трудни.
Искаш го наготово или искаш насоки за справяне?  :)

1. Трябва ти if-else израз. Най-простата му форма (която ти е нужна) е
Код
GeSHi (Bash):
  1. if COMMAND1; then COMMAND2; else COMMAND3; fi
Това означава "изпълни COMMAND1 и, ако завърши с успех, изпълни COMMAND2, ако ли не - изпълни COMMAND3". COMMAND2 и COMMAND3 сам си ги каза. Под COMMANDn имам пред вид както името на командата (програмата), така и опциите и аргументите ѝ.

2. COMMAND1 - разгледай добре с коя опция ще ти даде информация за всички процеси, които имат определено име на изпълнимия файл

3. Пробвай всички подкоманди в терминала, после целия if в терминал, за да се убедиш, че работи както трябва.

4. Сглобяваш си скрипта - слагаш if-а в текстов файл и си избираш име. Ако искаш да го изпълняваш като
Код
GeSHi (Bash):
  1. bash scriptname
това е достатъчно. Ако искаш да го изпълняваш като
Код
GeSHi (Bash):
  1. /path/to/scriptname
в началото на файла на първия ред сложи
Код
GeSHi (Bash):
  1. #!/bin/bash
(пътя до интерпретатора, който ти трябва, може и /bin/sh да бъде или някакъв друг), а за самия файл вдигни executable правото на твоя потребител.
Една малка забележка - ако ще е по вторият начин и скрипта е в текущата директория, изпълнява се не просто със
Код
GeSHi (Bash):
  1. scriptname
а с
Код
GeSHi (Bash):
  1. ./scriptname

5. След като си видял, че скрипта работи с избрания от теб начин на извикване, можеш да зададеш този начин на извикване за shortcut команда.

Допълнително може да пренасочиш стандартния изход на COMMAND1 към нищото. Пренасочването на стандартен изход на команда става чрез поставяне на
Код
GeSHi (Bash):
  1. > filename
където filename е име на файла, към който да се пренасочи стандартния изход. В твоя случай filename е нищото, т.е. файлът /dev/null. Може и някакви други пренасочвания да си сложиш по твой избор.

Пробвай сам и пиши, ако срещнеш спънки.
Активен

bazu

  • Напреднали
  • *****
  • Публикации: 810
  • Distribution: Debian
  • superman
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #6 -: Feb 12, 2011, 16:42 »
Благодаря, утре ще го пробвам че дълга ме зове на работа трябва да се ходи.
Активен

bazu

  • Напреднали
  • *****
  • Публикации: 810
  • Distribution: Debian
  • superman
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #7 -: Feb 21, 2011, 11:52 »
Срам не срам ще си призная, след такова обяснение дори не успях да си го подкарам това чудо не техниката.
Код:
if /usr/bin/compiz ccp; then metacity --replace; else compiz --replace
ccp; fi
и с това отпред if как ли не пробвах, compiz; compiz --replace ccp и /usr/bin/compiz ccp и винаги като го пусна се опитва пак да ме смени на компиз нищо че вече съм на него.
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #8 -: Feb 21, 2011, 12:12 »
Код:
if /usr/bin/compiz ccp; then metacity --replace; else compiz --replace
ccp; fi
и с това отпред if как ли не пробвах, compiz; compiz --replace ccp и /usr/bin/compiz ccp и винаги като го пусна се опитва пак да ме смени на компиз нищо че вече съм на него.

Цитат
Това означава "изпълни COMMAND1 и, ако завърши с успех, изпълни COMMAND2, ако ли не - изпълни COMMAND3".

Командата, която трябва да е COMMAND1, трябваше да е такава, която проверява дали върви процеса compiz (или пък metacity) върви, т.е. ps. ps има хубава опция, която ти показва процесите с дадено име на изпълнимия файл. Тя завършва успешно, ако има такива процеси, ако няма - завършва неуспешно. Успяваш ли да се ориентираш?
Активен

bazu

  • Напреднали
  • *****
  • Публикации: 810
  • Distribution: Debian
  • superman
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #9 -: Feb 21, 2011, 13:00 »
Код:
[bazu@igoshin ~]$ ps x | grep compiz
 5525 ?        Sl     0:59 /usr/bin/compiz ccp
 9071 pts/0    S+     0:00 grep compiz
[bazu@igoshin ~]$

Ето така е както съм го пробвал и дори ми заби линукса и трявбаше master reset. :D
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #10 -: Feb 21, 2011, 13:14 »
Код:
[bazu@igoshin ~]$ ps x | grep compiz
 5525 ?        Sl     0:59 /usr/bin/compiz ccp
 9071 pts/0    S+     0:00 grep compiz
[bazu@igoshin ~]$

Ето така е както съм го пробвал и дори ми заби линукса и трявбаше master reset. :D
Ти не спомена да си пробвал  if ps x | grep compiz; then...
Само че тука има една уловка - ps x | grep compiz винаги ще е успешен, защото винаги ще има думичката compiz в изхода ps x - тя идва от процеса grep с аргумент compiz.

Трябва, ако държиш да ползваш ps | grep,  така да извикаш ps, че в изхода да показва само имената на процесите (изпълнимите файлове) без аргументите им. Или пък да промениш малко шаблона, който да търси grep.

Иначе, както ти казах ps има такава опция, че като му дадеш име на изпълним файл (а даже и списък с имена), да ти изведе информацията за всички процеси, пуснати с указания изпълним файл.

Разрови man-а на ps малко.

ПС. Е, друг е въпроса, ако искаш решение наготово.
Активен

bazu

  • Напреднали
  • *****
  • Публикации: 810
  • Distribution: Debian
  • superman
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #11 -: Feb 21, 2011, 13:16 »
Наистина май вече предпочитам наготово, изтормозих се. :)
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #12 -: Feb 21, 2011, 13:28 »
Наистина май вече предпочитам наготово, изтормозих се. :)
Да ме прощава VladSun  [_]3, ама направих всичко възможно...

Вариант 1 - "така да извикаш ps, че в изхода да показва само имената на процесите (изпълнимите файлове) без аргументите им"
Код:
ps -eo fname | grep compiz

Вариант 2 - "ps има такава опция, че като му дадеш име на изпълним файл (а даже и списък с имена), да ти изведе информацията за всички процеси, пуснати с указания изпълним файл"
Код:
ps -C compiz
Активен

bazu

  • Напреднали
  • *****
  • Публикации: 810
  • Distribution: Debian
  • superman
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #13 -: Feb 21, 2011, 13:41 »
тотално бъгва всичко. Пуснах го като script ./блала сложих го в usr/bin/... и пак същото. Пуска метасити но след това не ми пуска компиз ако го стартирам пак, а забива линукса.
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Смяна на компиз и метасити с бутон
« Отговор #14 -: Feb 21, 2011, 13:50 »
тотално бъгва всичко. Пуснах го като script ./блала сложих го в usr/bin/... и пак същото. Пуска метасити но след това не ми пуска компиз ако го стартирам пак, а забива линукса.
Чакай сега, досега ти твърдеше, че
Код:
metacity --replace
и
Код:
compiz --replace ccp
ти работят без проблеми.
Когато изпълняваш от терминала тези команди, вървят ли (включително като го затвориш терминала)?
Активен