Как может я активировать Значок панелей с помощью сценария (или получите его экранные координаты; нажимать его)?

Этот вопрос находится в контексте рабочего стола Lucid 10.04 (т.е. никакая Единица).

Я действительно больше всего экранирую навигацию через клавиатуру (не мышь), таким образом, я ищу решение для сценария повторной активации приложения, которое было "минимизировано" к области уведомлений Панели.

Я буду использовать Skype в качестве примера.

wmctrl предоставляет мне достаточно доступа к обычно минимизированным окнам, но когда Skype "минимизирован" к области уведомлений, это просто идет "от радара" насколько wmctrl затронут.

Мысль, что позиции значка в области уведомлений могут варьироваться, является там некоторым способом определить экранные координаты Значка панелей Skype, таким образом, я могу "нажать" его использование xdotool (или подобная утилита)?

... или возможно существует более прямой способ активировать "бездействующий" Skype?... (и я не имею в виду мышь ;)

Вот сценарий, до сих пор. Надо надеяться, это ясно даст понять, что я пытаюсь сделать:

#!/bin/bash
procname="skype-wrapper"
windmask="Skype™"
if [[ $(pgrep -x -n -c "$procname") == 1 ]] ; then 
  wintitle="$(wmctrl -l |grep "$windmask" |head -n 1 |sed -n "s/^.\+${HOSTNAME} \(.*\)/\1/p")"
  if [ "$wintitle" = "" ] ; then
    echo "Click on Skype's Panel-icon to show the main window"  
    ###############################################################
    # How can I find the screen co-ordinates of Skype's Panel Icon
    ###############################################################
  else
    # Skype is running, and has (at least) one visible window which matches $windmask. Activate it.
   wmctrl -a "$wintitle"
  fi
else 
  # The process is not currently running. Start it.
  ("$procname" &)
fi
4
задан 8 December 2010 в 07:44

3 ответа

http://d01.megashares.com/dl/161a012/Skype.zip

  • zskypewrapper.sh является моим пользовательским сценарием для показа Skype (@fred.bear, для права или неправильно, я просто 'wmctrl-a Skype™' для показа уже существующего окна).
  • showskype.py является сценарием ændrük выше, измененный, чтобы также распечатать код возврата Skype.
  • Skype.desktop является .desktop файлом, который я создал для использования с Docky, который является целой причиной, которую я записал zskypewrapper.sh (но zskypewrapper будет работать без .desktop, и я даже добавил некоторую логику, которая только полезна от командной строки, и Docky никогда не может использовать). Этот .desktop не нужен по сути; все, что я сделал, было наутилусом->, правильный щелчок-> создает средство запуска и вставил zskypewrapper.sh.

zskypewrapper.sh и showskype.py должны быть исполняемым файлом и в $PATH где-нибудь.

Надежда это помогает кому-то.:-D

1
ответ дан 1 December 2019 в 09:58

Как насчет:

#!/usr/bin/env python

import dbus

# Get a D-Bus interface to Skype
bus = dbus.SessionBus()
skype_object = bus.get_object('com.Skype.API', '/com/Skype')
skype = dbus.Interface(skype_object, dbus_interface='com.Skype.API')

# Ask for permission to control Skype
response = skype.Invoke("NAME " + __file__)
response = skype.Invoke("PROTOCOL 8")

# Issue commands
response = skype.Invoke("SET WINDOWSTATE NORMAL")

Это столь не обобщено, как Вы хотели, но это могло бы сделать задание. Для чего-либо кроме простого персонального использования будет требоваться некоторую включенную обработку ошибок.

Источник: общественность Skype ссылка API

2
ответ дан 1 December 2019 в 09:58

Мне удалось соединить сценарий Python, который делает задание (... большая кривая обучения и хороший способ учиться :)

Это не доберется до господствующей тенденции, но я отправляю его для любого, кому может быть интересно.

Поскольку нет никакого способа, которым я знаю о непосредственно определить координаты конкретного Значка панели задач уведомления, я должен был "искать" значок.

Для идентификации значка сценарий имеет "одно время на значок", ПОЛУЧАЮТ proc, который определяет (надо надеяться), уникальную строку пикселей..., к счастью, значки являются очень цветными.
(получение proc обращается к 2 незначительным сценариям удара),

Я не уверен, что askubuntu политика расценивает большую регистрацию кода, поэтому пока я не узнаю, хорошо ли это или нет, я отправил ее на pastebin.ubuntu.com

Основной сценарий является 140 строками фактического кода, но работает к 240 с комментариями, и по некоторой неизвестной причине, когда в pastebin, многие, но не все строки с двумя пробелами, продвигая его к 339! (мой редактор установлен на Unix LF)...

Вот ссылки на основные сценарии Python и 2 сценария удара помощника;

1
ответ дан 1 December 2019 в 09:58

Другие вопросы по тегам:

Похожие вопросы: