Blog (12)
Komentarze (221)
Recenzje (0)
@SaskatchewanPolecenia Opery

Polecenia Opery

21.03.2014 23:09

Uwaga: tekst ten dotyczy Opery w wersji 12 i starszych i jest pierwszym z serii wpisów o starej Operze

Ogromna możliwość personalizacji programu była tym, co wyróżniało Operę na tle innych przeglądarek. Jedną z rzeczy niemal niepowtarzalnych były tzw. polecenia.

Co?

Prawie każda czynność, jaką możemy wykonać w Operze, posiada przypisaną tzw. akcję. Co ważne, akcje te wykorzystywane są nie tylko do komunikacji wewnątrz programu, ale są także dostępne dla użytkownika – każdą akcję/polecenie możemy użyć do sterowania programem.

Jak to działa? Przykładem może być kliknięcie przycisku „+” na pasku kart, które wywołuje akcję "New page". Aby otworzyć nową kartę za pomocą, dajmy na to, skrótu klawiaturowego, wystarczy mu przypisać akcję "New page".

Niektóre akcje przyjmują parametry (zwykle jeden, czasem dwa). Podajemy je po przecinku, np. akcja "Go to page" przyjmuje jeden parametr, którym jest adres URL strony, którą chcemy otworzyć.

Siła całego rozwiązania tkwi w tym, że pojedyncze akcje możemy ze sobą łączyć w polecenia. (W dalszej części tekstu poleceniem będę nazywał kombinację akcji, czyli w szczególności i pojedynczą akcję.) Nie jest to język programowania – nie możemy tu np. użyć instrukcji warunkowej jeżeli, ale i tak mamy spore pole do popisu.

Gdzie?

Polecenia możemy wykorzystać w kilku miejscach:

  • w skrótach klawiszowych,
  • w gestach myszy,
  • w menu głównym i menu kontekstowym,
  • we własnych przyciskach.

Każdy z tych elementów znajduje się w pliku konfiguracyjnym będącym plikiem ini. Poza tym, skróty klawiaturowe i gesty myszy można edytować z poziomu interfejsu użytkownika, a co jest naprawdę ciekawym rozwiązaniem, przyciski można umieszczać na stronach internetowych jako odnośniki.

Struktura plików konfiguracyjnych wygląda następująco:


      [kontekst]
      skrót = polecenie
    

[list] [item]Skróty klawiaturowe

[/item] [item]gesty myszy [code=text] [kontekst] skrót = polecenie [/code]

[/item] [item]menu [code] [kontekst] Item, "Nazwa wyświetlana" = polecenie [/code]

[/item] [item]przycisk [code] [kontekst] Button##, "Nazwa wyświetlana" = polecenie [/code]

[/item][/list]

Aby umieścić przycisk na stronie internetowej, należy użyć kodu:

<a href="opera:/button/polecenie">Nazwa przycisku</a>

Czym jest tutaj kontekst? Dzięki kontekstowi ten sam skrót wykonany w różnych miejscach interfejsu, może wywołać inne polecenie. W przypadku gestów myszy i skrótów klawiszowych określa on miejsce wywołania skrótu (rozpoczęcia gestu). Oznacza to konkretnie tyle, że możemy określić skróty, które albo będą działały identycznie w całej aplikacji, albo w inny sposób po wywołaniu np. w określonym panelu bocznym, oknie poczty, ponad stroną internetową, czy w oknie dialogowym.

W przypadku menu, kontekst określa jednoznacznie element dla którego jest ono wywoływane, np. odnośnik. W przypadku przycisków z kolei jest to unikalna nazwa paska narzędzi na którym umieszczony jest przycisk.

Upiększanie

W miejscach w których musimy wstawić tekst przycisku i/lub ikonę, stosujemy następujący zapis akcji:

akcja1, parametr1_1, parametr1_2, tekst, ikona

Jeżeli polecenie jest złożone, czyli zawiera więcej niż jedną akcję, to tekst i ikonę zazwyczaj wystarczy wstawić tylko w pierwszej z nich. Nie można też zapomnieć, że nawet jeśli akcja nie przyjmuje parametrów lub przyjmuje jedynie jeden, to i tak musimy wstawić przecinki rozdzielające puste wartości – tekst występuje zawsze jako trzeci, a ikona jako czwarty parametr.

Przykład:

Otwórz okno kanałów RSS:

Read mail, "rss", , "Czytaj kanały informacyjne", "Show Newsfeeds"

To samo bez ikony i tekstu podpowiedzi:

Read mail, "rss"

Przycisk jako odnośnik:

<a href="opera:/button/Read">Czytaj kanały informacyjne</a>

Tekst wykorzystywany jako tekst podpowiedzi lub jako tekst przycisku (w zależności od ustawień paska narzędzi), to ciąg znaków w cudzysłowach lub stała numeryczna z pliku językowego, lub stała tekstowa (takie występują w domyślnym pliku). "Ikona", to nazwa ikony występująca w skórce. Pełne listy stałych numerycznych i ikon można odnaleźć w Internecie.

W przypadku zamieszczania bardziej skomplikowanych przycisków w postaci odnośników, należy niektóre znaki zakodować. Przede wszystkim znaki cudzysłowu muszą być zamienione na "%22". Istnieją także rozszerzenia takie jak: Button Creator, które automatyzują proces tworzenia przycisków.

...Przygotowania

Każdą z konfiguracji skrótów powinniśmy skopiować przed edycją. Nie należy edytować domyślnych plików konfiguracyjnych (tych w katalogu instalacyjnym), gdyż po aktualizacji Opery utracimy zmiany - pliki zostaną nadpisane. Po przejściu do Menu O > Ustawienia > Preferencje > Zaawansowane > Mysz i klawiatura (lub Paski narzędzi), tworzymy kopię domyślnego układu i zmieniamy jego nazwę. Po tym możemy zacząć wprowadzać zmiany.

Jak? - Tworzenie poleceń

Pojedyncze akcje możemy łączyć ze sobą w polecenia za pomocą poniżej wymienionych "łączników".

& - i

Połączenie akcji łącznikiem & powoduje wykonanie wszystkich akcji które występują w poleceniu. Przykład: Chcemy otworzyć stronę http://www.dobreprogramy.pl na nowej karcie. Musimy zatem wykonać polecenie: Otwórz nową kartę i Otwórz stronę,"http://www.dobreprogramy.pl".

New page & Go to page, "http://www.dobreprogramy.pl"

Nie jest to jednak zawsze rozwiązaniem perfekcyjnym – kolejna akcja nie jest wywoływana po zakończeniu poprzedniej, ale natychmiast. O ile w większości przypadków nie ma to dla nas znaczenia (zawsze jakieś minimalne opóźnienie jest), to czasami trzeba umieścić w poleceniu akcję Delay,"##", która opóźnia wywołanie o ## milisekund, np.: [code=text]Focus page & Delay,10 & Go to end[/code]

spowoduje przewinięcie strony do końca po uprzednim ustawieniu na niej fokusu, który mógł się znajdować np. w polu adresu.

| - albo

Taki łącznik wykonuje pierwszą możliwą do wykonania akcję i kończy polecenie. Przykład: "Włącz pełny ekran | Wyłącz pełny ekran". Polecenie to spróbuje wykonać pierwszą akcję, a jeżeli się nie uda, to przejdzie do kolejnej, toteż jeżeli nie uda się włączyć pełnego ekranu (już jest włączony), to powrócimy do zwykłego trybu okienkowego.

Istotnym jest, że nie jesteśmy ograniczeni tylko do dwóch akcji. Ba! Akcje nie muszą być nawet wzajemnie wykluczające się. Przykład:

Forward | Back | Fast Forward

– może wzięty z kosmosu, ale działający.

> - sekwencja/cykl

Nazwa mówi sama za siebie: akcje w danym poleceniu wykonywane są sekwencyjnie, jedna po drugiej i cyklicznie (ale zawsze tylko jedna na raz). Najprostszy i najpopularniejszy przykład, to przycisk przełączania wyświetlania obrazków:

Enable display images > Display cached images only > Disable display images

(wyświetlaj obrazki > wyświetlaj tylko obrazki będące w pamięci podręcznej > nie wyświetlaj obrazków).

Warto także, aby w takim przycisku każda z akcji miała zdefiniowaną własną ikonkę i tekst podpowiedzi.

+ - opcja

Nazwijmy to opcją lub dodatkiem... Pozwala stworzyć opcjonalne polecenie przycisku, które wykonywane jest po przytrzymaniu przez chwilę wciśniętego lewego przycisku myszy albo po przeciągnięciu jej w takiej sytuacji w dół. Opcja jest wykorzystywana m.in. w domyślnych przyciskach Wstecz i Dalej i pokazuje listy odwiedzonych stron bez potrzeby wyświetlania strzałeczki do rozwijania menu obok przycisku.

Przykład – przycisk Wstecz ze strzałeczką (dropdown) obok:

Back + Show popup menu, "Back Menu"

i ten sam przycisk bez strzałeczki:

Back + Show hidden popup menu, "Back Menu"

Kombinacje łączników

Łączniki można mieszać w jednym poleceniu, ale, niestety, nie zawsze wiadomo w jakiej kolejności podane akcje zostaną wywołane. Czasem jest to oczywiste, czasem nie. Nie ma operatorów uprzywilejowanych, ani nie ma możliwości ustalania kolejności za pomocą nawiasów.

Przykład:

Set alignment, "Pagebar", 1 & Set wrapping, "Pagebar", 2 | Set alignment, "Pagebar", 2 & Set wrapping, "Pagebar", 3

(Pasek kart po lewej i zawijanie=nie zawijaj LUB Pasek kart na górze i zawijanie=pokaż rozwijalne menu)

Jak to będzie zinterpretowane? Chcielibyśmy pewnie tak:

(Set alignment, "Pagebar", 1 & Set wrapping, "Pagebar", 2) | (Set alignment, "Pagebar", 2 & Set wrapping, "Pagebar", 3)

Ale polecenie zostanie wykonane inaczej, np. tak:

(Set alignment, "Pagebar", 1) & (Set wrapping, "Pagebar", 2 | (Set alignment, "Pagebar", 2 & Set wrapping, "Pagebar", 3))

Czyli przeniesie pasek kart na lewo i wykona pierwszą akcję z drugiego nawiasu (z łącznikiem ALBO), którą da się wykonać, tj. zmieni zawijanie na "Pokaż rozwijalne menu". Po kolejnym wywołaniu polecenia efekt będzie identyczny.

Zmienne

Niektóre akcje umożliwiają wykorzystanie jako parametrów następujących zmiennych:

Go to page, "http://translate.google.pl/?#auto|pl|%t"

[list] [item]%t - aktualnie zaznaczony tekst, np. Tłumacz zaznaczenie za pomocą Google Translate

[/item] [item]%c - tekst znajdujący się w schowku systemowym, np. Otwórz zaznaczenie na nowej karcie w tle (takie małe oszustwo: otwiera na nowej karcie i ją minimalizuje) [code]Copy & New page,,,,"New page" & Go to page, "%c" & Minimize page[/code]

[/item] [item]%u - adres aktywnego dokumentu (strony internetowej), np. Otwórz aktualną stronę za pomocą przeglądarki SRWare Iron [code]Execute program, "C:\\Program Files (x86)\\SRWare Iron\\iron.exe","%u"[/code]

[/item] [item]%l - adres linku (parametr dostępny przy wywołaniu polecenia spod menu kontekstowego), np. Otwórz kliknięty PPM link na nowej prywatnej karcie [code]Item, "Otwórz na nowej prywatnej karcie" = New private page,,,,"Window Private Icon" & Go to page, "%l"[/code]

[/item][/list]

Zakończenie

Polecenia Opery, to jedna z najciekawszych jej funkcji, która daje ogromne możliwości oraz szerokie zastosowanie. Żadna inna przeglądarka, a nawet mało który program umożliwia tak głęboki wpływ użytkownika na to co się w nim dzieje. Szkoda, że jest to rzecz tylko dla zaawansowanych użytkowników – brak możliwości intuicyjnej modyfikacji poleceń z poziomu programu – oraz nie posiada dokumentacji z prawdziwego zdarzenia.

Więcej informacji o poleceniach można odnaleźć na stronie Opera Wiki: Lista akcji i Operatory.

Wybrane dla Ciebie
Komentarze (26)