Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: icemans в Oct 10, 2009, 14:37



Титла: Откъде се стартира автоматично Skype?
Публикувано от: icemans в Oct 10, 2009, 14:37
Когато си пусна KUBUNTU-то 9.04 и Скайп-а си тръгва автоматично - това добре, но немога да разбера къде му е зададено да тръгва автоматично. Проблемът е, че искам да си променя командата с която да се стартира, за да мога да си ползвам камерата, тъй като при това положение ми излизат само зелени ленти. С
Цитат
/bin/sh -c "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype"
  проблемът е решен, НО къде да я поставя тази команда, за да може стартиращия се скайп да е с нея. Няма го в автоматично стартирани програми.
(http://store.picbg.net/pubpic/27/E9/5587cb46723127e9.png)
 Пробвах да сменя командата в MENU EDITOR-а - ОК сменям си я, но сами когато го стартирам ръчно от там се получава, но преди това ми се стартирал заедно с ОС и трябва да затварям единия за да го пусна от там. Когато го добавя в "автоматично стартирани програми" ми се стартират 2 Скайп-а и единия казва, че вече работи това приложение. Не мога да го разбера как да го спра?


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: ji в Oct 11, 2009, 00:26
Проблема ти е , че КДЕ си въстановява последната сесия.
Направи си  скрипт с, който да замениш изпълнимия файл на скайп.


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: ji в Oct 11, 2009, 09:28
Знаеш ли това с обвързващия скрипт май няма да работи.
С КДЕ4 още не съм работил, но при КДЕ3 има настройка за сесиите, която позволява списък от програми да се изключат от сесийна подръжка. Сиреч да не се стартират автоматично от КДЕ.
Виж дали това е възможно при КДЕ4. Ако е, ще си свободен да си реализираш автоматично стартиране по друг метод.


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: ji в Oct 11, 2009, 09:40
Що не пробваш да добавиш този ред
Код
GeSHi (Bash):
  1. export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
във файла ".profile" в домашната ти директория.
И не пипай нищо останало. Остави си сесийния мениджър на КДЕ както си е.
Ще трябва да се логнеш отново в системата за да са налице промените.


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: icemans в Oct 11, 2009, 13:11
Преди да пробвам това с добавянето на реда в .profile, мислиш ли, че в този прозорец може да се направи нещо по въпроса:
(http://store.picbg.net/pubpic/5C/F1/d353fa05a9795cf1.png)
 Примерно, ако в реда "програми за изключване" задам Скайп, дали може да има някакъв ефект?


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: bop_bop_mara в Oct 11, 2009, 13:24
Виждам, че имаш при вход възстановяване на предишната сесия. Аз съм забелязала наистина, че под КДЕ 4 като се логаутна без да спра някоя програма, при логин тя се пуска сама. В частност Скайпа, който обикновено бива забравен долу в tray-я. Ако отметнеш вместо това стартиране с нова сесия, предполагам, че това поведение ще отпадне. Дали това ще ти оправи проблема, ти ще кажеш.


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: c2h5oh в Oct 11, 2009, 13:44
Примерно, ако в реда "програми за изключване" задам Скайп, дали може да има някакъв ефект?
Е радвам се че най после си разбрал това което ти писах Молко повечко време ти е трябвало но това не е болка за умилане. Вместо да "изключваш" скайпа махни отметката от "Възстановяване на предишната сесия" Сложи я на някое от другите Каквото ти хареса. След тона излез от скайпа и рестартирай сесията Ако скайпа пак ти се включи - пиши Аз не бих те съветвал да го добавяш в .profile защото губиш контрола кога и с каква цел да се зарежда библиотека за v4l


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: ji в Oct 11, 2009, 13:58
С този ред в .profile не се зарежда библиотеката а се създава променлива LD_PRELOAD в обкръжението със стойност /usr/lib/libv4l/v4l1compat.so

нямам идея кой софтуер използва тази променлива, ясно е само, че скайпа проверяв за нея.
Така или иначе, тази променлива се създава след като си пусне скайпа по този начин :
/bin/sh -c "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype"

ако променливата вече съществвува и и е зададена стойност, преди да се стартира КДЕ, токава скайп ще си работи коректно дори със сесиното управление на КДЕ. А това ще стане с въпросния ред е .profile

Сесийте в КДЕ за готино нещо. :) аз не бих се отказал от сесиите :)

Да, ако добавиш "skype" в реда "програми за изключване" ще спреш автоматичното стартиране на скайп.


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: c2h5oh в Oct 11, 2009, 15:09
Само дето LD_PRELOAD така ще я обвържеш с определена библиотека и за това което избягваш като действие за скайпа ще трябва да го правиш за други програми (ако се наложи) Затова смятам че по-гъвкавият вариант е всяка програма да си зарежда това което и е необходимо преди стартиране В случая се налага защото скайпа не бачка с v4l2


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: icemans в Oct 11, 2009, 19:42
Да, интересно е че решението ми е било толкова елементарно и пред очите ми, но явно ще ми трябва време, за да се опомня в тази материя. Проблемът ми се реши, като зададох да стартира с нова сесия и Скайп-а го сложих в листа с автоматично стартираните програми! Всичко е ОК и камерата в Скайп си работи. И все пак обаче не ми стана ясно следното: ОК, пускам си Скайп-а от иконата на плота, която е с команда
Цитат
/bin/sh -c "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype"
- камерата си работи. Слагам отметка при вход да се възстановява предишната сесия - рестартирам, Скайп-а си тръгва, само че явно не със същата команда, защото камерата ми не работи, а се виждат само зелените черти. Защо не възстановява сесията, като статира Скайп-а по начина по който е бил стартиран преди да се затвори сесията. Надявам се на това да получа отговор. Иначе благодаря на всички които се отзовават!


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: ji в Oct 11, 2009, 22:46
Мдааа, Алко е прав.
Поставянето на LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so в .profile може да предизвика аномалии в системата.
Най-добрия вариант за теб е да забраниш скайп от сесийния мениджър, чрез добавяне на "skype" в онзи ред "Възстановяване на предишната сесия" после правиш това на скрипт файл с права за стартиране
Код
GeSHi (Bash):
  1. #!/bin/sh
  2. LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype
  3. exit
  4.  

и слагаш файла в "домашна_дир/.kde/Autostart"


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: c2h5oh в Oct 12, 2009, 00:45
Провери да нямаш останал някакъв скайп от предни опити В смисъл инсталиран през пакетния мениджър Ако нямаш и си САМО с един скайп, потърси и прегледай файла skype.desktop Там трябва да имаш командата за PRELOAD и тогава ще ти върви Ако я няма - редактирай файла Ето как е при мен Ползвам статична версия разпакетирана в нестандартна за системата директория В /home/Hitaka/.local/share/applications/ се намира файла skype.desktop със следното съдържание
Код:
[Desktop Entry]
Comment[bg]=Skype Internet Telephony
Comment=Skype Internet Telephony
Comment[bg_BG]=Skype Internet Telephony
Exec=/home/Hitaka/skype_static+camera
GenericName[bg]=
GenericName=
Icon=skype
Icon[bg_BG]=gnome-panel-launcher
MimeType=
Name[bg]=Skype
Name=Skype
Name[bg_BG]=Skype
NoDisplay=false
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=
Само това е файла който е ясен четим и разбираем за KDE-то Обърни внимание на реда Exec=/home/Hitaka/skype_static+cameraТова  всъщност е скрипта за пускане на скайпа (така съм си го кръстил skype_static+camera)
Неговото съдържание е
Код:
#! /bin/bash
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /Storage/Linux/skype_static-2.1.0.47/skype
Както виждаш скрипта е същия като на ji с тая разлика че е указан абсолютен път към скайпа

Сега вече мога да си редактирам менютата на KDE и GNOME и да им кажа да изпълнява скрипта skype_static+camera


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: icemans в Oct 12, 2009, 13:46
ОК! Аз съм си редактирал файла skype.desktop като съм сложил комадата с PRELOAD, но на десктоп-а. Това означава ли, че в директорията share/applications файла skype.desktop няма да е с тази команда?!? А също съм си го редактирал и в MENU Editor-а. И като си го стартирам от десктоп-а си работи камерата. Рестартирам при сложена отметка да възстановява предишната сесия, скайпа тръгва, но камерата не работи. Освен проблема да е в това, че трябва да редактирам и skype.desktop от /share/applications, а не само иконата която е на работния плот. Но пък след като съм редактирал и в Menu Editor-а, не би ли трябвало да си го стартира както си е било.


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: bop_bop_mara в Oct 12, 2009, 14:15
В /usr/share/applications skype.desktop нека да бъде както трябва да бъде. Щом вече си стигнал до ръчното едитване на този тип файлове, меню едитора може да го забравиш, този начин винаги ще си работи. А като оправиш "главния" .desktop файл, просто си замени иконката на десктопа с нова (изтрий я и я добави), която ще стане копие на "главната". Така ще ти изчезнат и съмненията къде е конфигурирано както ти искаш и къде - не.


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: c2h5oh в Oct 12, 2009, 14:21
BBM (bop_bop_mara) Хубаво че се намеси щото бях извадил лайномета и пишех отговор който вероятно щеше да погази всичко свято в  т.6 от правилата 10Х  :)


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: icemans в Oct 12, 2009, 20:00
Днес се прибирам и решавам да се пробвам с съветите, но Скайпа изобщо не тръгва! Нито от иконата на плота, нито от меню-то. Реших да видя дали ще се види в KPackageKit, но го няма и най-вероятно защото го инсталирах от сайта на Скайп и беше .deb файл, мисля. Не знам защо днес не тръгва, но сега се сещам, че вчера пусках някакво приложение за почистване на машината и може би там се е омазало нещо. Сега искам да го сложа наново, виждам, че в KPackageKit-a има само Skype for MID's и някакъв Skype (NONE), но ми се струва, че не ми трябва това. Кажете как да изчистя всичко свързано със Скайп (защото отначало като го слагах пробвах няколко версии и вече незнам коя ползвам), за да мога да го сложа наново.


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: icemans в Oct 12, 2009, 22:01
Така, аз продължавам с опитите си, но без успех. Значи след горе споменатия проблем си изтеглих .deb пакета и си го иснатлирах наново - скайпа си тръгна. Промених навсякъде skype.desktop да се стартира с необходимата команда:
Цитат
/bin/sh -c "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype"
Оставам си отметка на При излизане : Възстанови предишната сесия, но след рестарт Скайпа пак си тръгва както той си знае и камерата не работи. Не съм пробвал с предложения скрипт още.

П.П. Значи искам само пак да спомена, че по принцип проблема ми се решава, като задам При вход: Стартирай с нова сесия и задам в Автоматично стартирани програми да ми се стартира Скайп-а! Просто ми е интересно защо, като задам да ми възстановява сесията при влизане и Скайп-а не тръгва по начина по който е работил при спирането. И според някой сигурно се занимавам с излишни неща, но просто ми е интересно къде бъркам.


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: ji в Oct 12, 2009, 23:26
Става така понеже КДЕ не знае, че трябва да установи променливата LD_PRELOAD да е равна на /usr/lib/libv4l/v4l1compat.so. В резултат динамичната библиотека "v4l1compat.so" не се зарежда в памета. И dynamic linker-а "ld-linux" (това което накача динамичните библиотеки ".so"  по изпълнимия файл вече зареден в памета) не я връзва към skape".exe" и камерата ти не работи щото програмата skype няма как да ползва функциите(програмен кода) от библиотеката v4l1compat.so.

Ако разкачиш скайп от сесийното управлвние на КДЕ и намериш друг начин да го стартираш при старт проблема ти се решава.

В КДЕ3, автоматично при старт се пускат всички скриптове от директорията "/home/usrer/.kde/Autostart"
Как да си направиш скрипта сме ти писали по-горе.

Тази команда която ползваш да си пускаш скайпа :
/bin/sh -c "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype
В превод означава:
Установи променливата на обкръжениеето "LD_PRELOAD" да е равна на "/usr/lib/libv4l/v4l1compat.so"
и после стартирай скайп.

Сесийния мениджър на КДЕ не знае че ти установяваш "LD_PRELOAD" да е равна на "/usr/lib/libv4l/v4l1compat.so", преди да пуснеш скайпа.
Той просто стартира всичко което е било пускано през "klauncher" (КДЕ демек) в предишнат сесия.


Титла: Re: Откъде се стартира автоматично Skype?
Публикувано от: icemans в Oct 13, 2009, 10:13
Не разбрах много от горе написаното, но звучи адекватно :) Това което разбрах само е, че няма начин при възстановяване на предишната сесия, Скайп-а да тръгва както е работил преди това. И единствения начин, за да ми тръгва със зареждане на ОС е да задам "При вход - да започва нова сесия" и Скайп-а да го сложа в "Автоматично стартирани програми" - при това положение си го зарежда както трябва. А иначе горе-посочения скрипт не е ли аналогичен на добавяне на Скайпа в автоматично стартираните програми?!? Т.е. не мога да разбера ако добавя скрипта и дам да възстановява сесията дали всичко ще е ОК - според мене НЕ, а ще е наред само ако дам да влиза с нова сесия и да се изпълнява този скрипт.