TechLife devBlog

#- Software

Automatyzacja myszy i klawiatury

Linux, Software, Techblog 7 stycznia 2010 22:41

Jak wiadomo Linux znany jest z tego, że można tutaj zautomatyzować niemalże wszystko. Zazwyczaj robimy to za pomocą skryptów Basha, Perla czy innego Pythona. Są jednak przypadki, kiedy nie bardzo mamy dojście do API czy komend aby zautomatyzować jakiś proces. Bo jak zautomatyzować np. ruch myszy w środowisku graficznym czy zasymulować wciskanie klawiszy?

Drugą rzeczą, z której znany jest Linux jest to, że zawsze znajdzie się rozwiązanie ;-) Podobnie w tym przypadku rozwiązaniem naszym problemów jest pakiet xautomation (spaczkowany w większości dystrybucji). Dostarcza on bardzo pomocnej komendy jaką jest xte. Podstawowymi parametrami tej komendy są:

key k          Wciśnięcie klawisza k
keydown k      Przytrzymanie klawisza k
keyup k        Zwolnienie klawisza k
str string     Wpisanie ciągu znaków
mouseclick i   Wciśniecie lewego klawisza myszy
mousedown i    Wciśniecie lewego klawisza myszy
mouseup i      Zwolnienie lewego klawisza myszy
mousemove x y  Przemieszczenie kursora na pozycję (x,y)
mousermove x y Względne przemieszczenie kursora na pozycję (x,y)
sleep x        Odczekanie x sekund

Dzięki zastosowaniu tych komend możemy już zautomatyzować wyklikiwanie pewnych czynności, np. głupiej ankiety internetowej lub pajacyka. Swojego czasu używałem tego do łączenia się z ukrytą siecią Wifi, której Gnomowy Network Manager za nic nie umiał mi zapamiętać. Zamiast wyklikiwać codziennie szereg opcji i po raz setny wpisywać długie wygenerowane hasło klikałem tylko w skrypt, który robił wszystko za mnie.

Przykładowy skrypt powtarzający pewną czynność w nieskończoność może wglądać tak:

#!/bin/bash
while [ 1 ]
do
    sleep 1
    xte 'mouseclick 1'

    # otwórz Chrome w trybie porno
    xte 'keydown Control_L' 'keydown Shift_L' 'key n' 'keyup Shift_L' 'keyup Control_L'
    sleep 1

    # wybierz adres
    xte 'str http://...wybierz_polskiego_polityka_roku_2009...'
    xte 'key Return'

    # czekamy na wczytanie strony
    sleep 7

    #wybierz kandydata
    xte 'mousemove 44 490'
    xte 'mouseclick 1' 

    # głosuj
    xte 'mousemove 253 710'
    xte 'mouseclick 1' 
    sleep 1

    # zamknij Chrome
    xte 'keydown Alt_L' 'key F4' 'keyup Alt_L'
done

Dla ułatwienie sobie życia możemy skorzystać z komendy xmousepos, dzięki której nie będziemy musieli zgadywać pozycji kursora. Wystarczy ustawić kursor w odpowiednie miejsce a następnie uruchomić podaną komendę aby uzyskać pozycję kursora, np:

tomek@Arch:~$ xmousepos
1125 136 1125 110
^^ dwie pozycje, bo każdy kij ma dwa końce

W każdym razie miło wiedzieć, że mamy możliwość zautomatyzowania kolejnej czynności ;-)

I <3 Linux

Xfce 4.6 oficjalnie wydane

Linux, Software, Techblog 27 lutego 2009 05:39

Poniższy tekst jest tłumaczeniem oficjalnego przewodnika po nowej wersji Xfce 4.6:

Wizualny przewodnik po Xfce 4.6.0

Długo wyczekiwana wersja 4.6.0 środowiska graficznego Xfce wreszcie została wydana. Postaramy się wyszczególnić niektóre z nowych funkcji, które zostały dodane od czasu ostatniego stabilnego wydania.

Ulepszone użytkowanie pulpitu z Xfdesktop

Od czasu kiedy w wersji Xfce 4.4 pojawiły się ikony na pulpicie, ludzie chcieli mieć możliwość jednoczesnego zaznaczania wielu ikon. W Xfce 4.6 Xfdesktop wreszcie posiada tą funkcję: można zaznaczać wiele ikon, przesuwać je, usuwać itp.

Xfce 4.6 wprowadza całkiem nowe menu pulpitu, które pozwala zarówno na manipulowanie plikami tak samo jak menu kontekstowe Thunara, jak również na otwieranie aplikacji, zakończenie sesji czy dostęp do dokumentacji.

Panel

Wiele znanych od dawna błędów zostało naprawionych w panelu Xfce4, zwłaszcza wsparcie dla wielu monitorów. Nowe wydanie przynosi też wiele ulepszeń panelowych wtyczek.

Wtyczka zegara została całkowicie przepisana, aby zużywać jak najmniej zasobów systemowych oraz pozbycia się kilku błędów wyświetlania. Wprowadzony został również nowy tryb zegara dla geeków: zegar binarny! Nowa wtyczka obszaru powiadomień pozwala na ukrywanie wybranych ikon, aby zachować porządek i przejrzystość.

Nowy mikser dźwięku

Mikser Xfce4 został przepisany od zera aby używał Gstreamer-a. Umożliwia to łatwiejsze wsparcie dla wielu systemów dźwięku, interfejs użytkownika jest bardziej dopracowany oraz można zarządzać kilkoma różnymi kartami dźwiękowymi. Dodatkowo wtyczka panelu pozwana na szybką zmianę poziomu dźwięku przy użyciu rolki myszy.

Udoskonalony menadżer sesji

Xfce 4.6 posiada udoskonalony menadżer sesji: sesje powinny startować szybciej a okno dialogowe ustawień sesji zostało przerobione aby umożliwić łatwiejsze zarządzanie uruchamianymi aplikacjami. Dodatkowo menadżer sesji automatycznie zrestartuje sesyjne aplikacje, które się „wysypały”, tak aby w przypadku wystąpienia błędu nie pozostawić użytkownika bez pulpitu, paneli czy menadżera okien.

Nowy menadżer sesji zawiera również długo wyczekiwane funkcje: wsparcie dla uśpienia i hibernacji „out of the box”. Dialog zamykania sesji posiada teraz dwa dodatkowe przyciski umożliwiające uśpienie i hibernację komputera.

Menadżer okien

Jak zwykle Xfwm4 dojrzał nieco podczas tego cyklu dystrybucyjnego: wiele błędów zostało poprawionych, dodano wsparcie dla wielu monitorów oraz ogólne osiągi zostały poprawione.

W nawiązaniu do kilku innych nowych funkcji, Xfwm4 potrafi teraz wykryć okna, które nie odpowiadają i zaoferować zabicie ich.

Pojawiło się również nowe menu, które pozawala na szybkie przesuwanie i zmianę rozmiaru okien, przemieszczenia ich na wierzch czy pod spód względem innych okien oraz przełączenie ich w tryb pełnoekranowy.

Zaimplementowana została nowa funkcja wypełniania: powiększa ona wybrane okno tak, aby zajmowało jak największą przestrzeń lecz bez przysłaniania sąsiednich okien.

Kompozytor został zoptymalizowany tak, aby zredukować miganie okien podczas zmiany ich rozmiaru.

Rozszerzono również niektóre opcje: np. można wyłączyć miganie okien gdy te otrzymują jakieś zdarzenie.

Menadżer plików

Naprawiono wiele błędów oraz poprawiono osiągi Thunar-a. Można teraz używać przycisków „naprzód” i „wstecz” na myszce (o ile są włączone) aby nawigować. Dołączono też nową wtyczkę, która pozwala na ustawienie tapety pulpitu z menu kontekstowego obrazka.

Thunar korzysta teraz ze słownika specyfikacji użytkowników – XDG. Pozwala to na wskazanie i oznaczenie folderów użytkownika tj. muzyka, dokumenty, wideo, szablony itd.

Thunar potrafi teraz wyświetlać półprzezroczyste ikony dla dysków i woluminów, które nie są zamontowane, więc można je teraz łatwo odróżnić od pozostałych.

Thunar obsługuje teraz szyfrowane urządzenia!

Nowe okno konfiguracji

Xfce 4.6 wprowadza nowe okno konfiguracji interfejsu – Xfce Settings Manager – które umożliwia konfigurację środowiska graficznego dużo łatwiej niż poprzednio. Nowe okno konfiguracji dostępne jest poprzez pojedyncze kliknięcie na ikonkę ustawień i zaprojektowane zostało jako bardziej jednolite, pozwalające szybciej oraz bardziej intuicyjnie konfigurować środowisko.

Ustawienia dostępności

Okno ustawień dostępności pozwala na konfigurację opcji związanych z klawiaturą i myszą tj. modyfikacja zachowania klawiszy funkcyjnych, czas powtarzania klawiszy, minimalny czas przytrzymania klawiszy, odstęp pomiędzy kolejnymi powtórzeniami czy emulacja myszy.

Ustawienia wyglądu

Okno ustawień wyglądu pozwala na dobór styli elementów sterujących, wyglądu ikon i czcionek, pasków narzędzi oraz wyglądu menu.

Okno ustawień wyświetlania pozwala na dobór rozdzielczości ekranu, częstotliwości odświeżania oraz rotacji każdego podłączonego ekranu.

Ustawienia klawiatury

Ustawienia klawiatury pozwalają na dorób opcji związanych z powtarzalnością klawiszy, skrótami klawiaturowymi oraz układem klawiatury.

Konfiguracja skrótów klawiszowych odbywa się teraz o wiele łatwiej a wszelkie konflikty skrótów są natychmiast wykrywane.

Ustawienia myszy

Okno ustawień myszy pozwala na konfigurację myszy podłączonej do komputera: kolejność klawiszy, akcelerację, prędkość podwójnego kliknięcia, wygląd kursora itp.

Ustawienia pulpitu

Okno ustawień pulpitu jest obecnie znacznie bardziej ujednolicone. Pozwala ono na konfigurację dla każdego ekranu: tapety, jasności, menu pulpitu, wyświetlanych ikon itp.

Nowy wyszukiwacz aplikacji

Xfce 4.6 posiada również całkiem nowy wyszukiwacz aplikacji odznaczający się przejrzystym interfejsem. Posiada również ulepszenie wyszukiwania aplikacji przy użyciu klawiatury oraz na bieżąco monitoruje zainstalowane aplikacje, dzięki czemu potrafi „w locie” uaktualnić listę aplikacji. Pozwala również na łatwiejsze tworzenie aktywatorów w panelu poprzez przeciągnięcie ikony aplikacji do okna kreatora aktywatorów.

Linki

Zasługi

  • tekst: Jérôme Guelfucci (luty 2009),
  • zrzuty ekranu: Jannis Pohlmann,
  • tłumaczenie metodą chałupniczą: – trójkąt.

Geany 0.16

Linux, Software, Techblog 26 lutego 2009 14:20

Kronikarskim obowiązkiem melduję pojawienie się nowej wersji mojego ulubionego edytora Geany.

Ważniejsze zmiany:

  • cała konfiguracja została przeniesiona do ~/.config/geany. Pliki zostaną przeniesione automatycznie przy pierwszym uruchomieniu nowej wersji,
  • boczna lista symboli jest teraz drzewem,
  • minimalne wymagania zostały podwyższone do GTK w wersji 2.8
  • nowy pasek narzędzi jest teraz bardziej elastyczny i spersonalizowany. (Narzędzia > Configuration Files > ui_toolbar.xml),
  • dodano opcję automatycznego zamykania nawiasów i cydzysłowów (Guillaume de Rorthais),
  • wsparcie dla kilkukrotnego występowania znaku %cursor% w snippetach, dzięki czemu przy wstawianiu snippeta możemy tabulatorem przechodzić w kolejne miejsca przeznaczone do wypełnienia tekstem (Thomas Martitz),
  • wsparcie dla nowych typów plików Ada, CMake, Matlab, NSIS, Vala and YAML,
  • możliwość dzielenia okna również w poziomie (thanks to Moritz Barsnick),
  • udoskonalony instalator dla Windowsów
  • aktualizacje tłumaczeń: bg, ca, cs, de, en_GB, fr, hu, it, ja, pt_BR, sv, ru, tr, vi, zh_CN

Pełną listę zmian znajdziecie w Release Notes (nie mam pomysłu jak to przetłumaczyć :-P)

Zachęcam również do zaglądnięcia w sekcję Extras na stronie projektu, gdzie znajdziecie między innymi snippety PHP, HTML oraz Pythona. Jest tam również mój ulubiony schemat ciemnych kolorów…

...czy inne ciekawe wynalazki typu edytor schematów kolorowania składni on-line.

Rippowanie muzyki z Last.fm

Linux, ArchLinux, Software, Techblog 29 listopada 2008 11:57

Aktualnie w polskim prawie nie ma przepisu zabraniającego nagrywania audycji radiowych. Oznacza to, że całkowicie legalnie możemy wejść w posiadanie sporych zbiorów muzyki. Nie każde radio jednak gra to czego chcielibyśmy słuchać. I tu pojawia się Last.fm – radio, które zna nasz gust i gra to co lubimy. Tylko jak teraz dobrać się do tej muzyki?

Odpowiedzią jest program TheLastRipper. Małe ale skuteczne narzędzie, pożerające adresy typu lastfm://. Wystarczy wskazać mu katalog, do jakiego ma rippować muzykę oraz stację.

Rezultatem działania TheLastRippera będą utwory znajdujące się w ładnie nazwanych katalogach (wg. schematu wykonawca > album > utwór) oraz pobrane okładki albumów w trzech rozmiarach.

Trzy rozmiary okładek mogą przeszkadzać. Np. mój QuodLibet przy odtwarzaniu utworu wybiera akurat najmniejszą okładkę co nie wygląda najlepiej. Ale łatwo można temu zaradzić. Wystarczy w katalogu z muzyką utworzyć skrypt zawierający:

find ./ -type f \( -name "SmallCover.jpg" -o -name "MediumCover.jpg" \) -delete

który usunie małe i średnie okładki z wszystkich podkatalogów.

Użytkownicy Archa aby pobrać pogram mogą skorzystać z aktualnego PKGBUILDa, który zamieszczam poniżej, ponieważ ten obecnie znajdujący się w AUR jest przestarzały.

PKGBUILD for version 1.1.1
pkgname=thelastripper
pkgver=1.1.1
pkgrel=1
pkgdesc="A Last.FM Ripper"
arch=('i686')
url="http://thelastripper.com/"
license=('GPL')
depends=('gnome-desktop-sharp' 'gnome-icon-theme')
makedepends=('pkgconfig')
source=("http://thelastripper.googlecode.com/files/$pkgname-$pkgver.tar.gz")
md5sums=('9a8653cc0cf450077b599cb8988ba8a3')
build() {
export RSVG_SHARP_20_CFLAGS="/usr/share/rsvg2-sharp/2.0/rsvg2-api.xml"
export RSVG_SHARP_20_LIBS="/usr/lib/mono/rsvg2-sharp-2.0/rsvg2-sharp.dll"
cd $startdir/src/$pkgname-$pkgver
# Bypass GMCS and fakeroot bug
mkdir -p $startdir/src/$pkgname/.wabi
export MONO_SHARED_DIR="$startdir/src/$pkgname/"
./configure --prefix=/usr
make || return 1
make DESTDIR=$startdir/pkg install
}

Załącznik 1 - lista adresów last.fm

  • lastfm://user/$username/personal
  • lastfm://user/$username/playlist
  • lastfm://artist/$artistname or lastfm://artist/$artistname/similarartists
  • lastfm://globaltags/$tag
  • lastfm://group/$groupname
  • lastfm://user/$username/neighbours
  • lastfm://user/$username/recommended/100
  • lastfm://play/tracks/$trackid,$trackid,$trackid

Geany 0.15

Linux, Software 20 października 2008 12:14

Po półrocznym okresie kodowania, nie dalej jak wczoraj pojawiła się nowa wersja mojego ulubionego edytora Geany. Nowa wersja oznaczona numerkiem 0.15 przynosi wiele zmian. Ważniejsze z nich to:

  • Dodanie opcji ‘Close Other Documents’ do menu Pliki. (zamknięcie wszystkich kart poza obecnie aktywną)
  • Obsługa własnych szablonów kolorowania składni plików (katalog ~/.geany/templates/files)
  • Dodanie mechanizmu „soft tabs” (teraz możemy tworzyć wcięcia oparte na tabulacjach lub spacjach)
  • Aktualizacja Scintilli do wersji 1.77 (Scintilla to komponent odpowiadający za wyświetlanie kodu, czyli rozwijanie/zwijanie sekcji kodu, podpowiadanie składni itp.)
  • Obsługa nowych typów plików: OpenGL Shader Language (GLSL), R, gettext files (.po)
  • Możliwość pionowego dzielenia okna (wtyczka Split Window)

  • Scalenie wtyczek InstantSave, AutoSave i BackupCopy w nową wtyczkę ‘Save Actions’
  • Wiele zmian w API dla wtyczek (patrz dokumentacja)
  • Usunięcie wielu błędów i dodanie ulepszeń
  • Nowe języki: Koreańskie i Tureckie oraz aktualizacja pozostałych tłumaczeń

Więcej szczegółów w znajdziecie w Release Notes

Dzięki sprawnym developerom Arch Linuksa paczka z Geany 0.15 jest już w repozytorium community.

« Nowsze | Strona 2 z 6 | Starsze »