Komputery, oprogramowanie, internet i okolice
Blog > Komentarze do wpisu

PyWO - orzeźwiający Python Window Organizer

Dawno już tak długiej przerwy na blogu nie było... Już nawet miałem w głowie kilka pomysłów na wpisy o narzędziach ułatwiających zarządzanie oknami - Quicktile oraz wtyczkach Compiza: Grid, Put i Maximumize. Niestety stała się rzecz straszna. Zaczęły irytować mnie ich różne drobne błędy. Co gorsze, zdałem sobie sprawę, że żadna z tych aplikacji nie działa tak, jakbym chciał. Chyba już wiecie jak to się skończyło...

Python Window Organizer

W wolnym czasie, którego jak na złość za wiele nie było, zamiast pisać notki na bloga zgłębiałem tajniki EWMH, ICCM i Python X Library. Efektem tej pracy jest Python Window Organizer, w skrócie PyWO, prawdopodobnie najlepsze narzędzie wspomagające zarządzanie oknami.

Możliwości

Głównym założeniem jest umożliwienie łatwej zmiany położenia i rozmiaru okien okien z użyciem skrótów klawiaturowych (domyślnie sterowanie odbywa się z użyciem klawiatury numerycznej). Do dyspozycji mamy:

Float - przemieszczanie okien

Przemieszczanie okien

Możemy przesuwać okno w dowolnym kierunku, przyklejając je do krawędzi sąsiadujących okien.

Expand i Shrink - zmianę rozmiaru okna

Powiększanie i pomniejszanie

Możemy powiększać lub pomniejszać rozmiar okna w dowolnym kierunku, by maksymalnie wykorzystać dostępne miejsce.

Put - rzucanie oknem

Rzucanie oknem

Możemy rzucić okno (bez zmiany rozmiaru) w jedną z wcześniej zdefiniowanych pozycji na ekranie.

Grid - siatka

Siatka okien

Rzucamy oknem w wybraną pozycję na ekranie jednocześnie zmieniając rozmiar okna, w efekcie uzyskując siatkę, równomiernie rozłożonych okien. Można wybrać siatkę 2x2, 3x2 (domyślna), 3x3 lub łatwo zdefiniować własne ułożenie okien. Starałem się by ta funkcja działała bardziej przewidywalnie niż odpowiedniki w Compiz Grid i Quicktile - zawsze najpierw wybierany jest największy możliwy rozmiar.

Wymagania

Potrzebny nam będzie Python w wersji 2.5 lub wyższej (nie testowałem z 3.0) i zainstalowana biblioteka Xlib (w Ubuntu wystarczy zainstalować pakiet python-xlib). No i oczywiście menadżer okien poprawnie implementujący EWMH. Z pobieżnych testów wynika, że Python Window Organizer powinien działać z większością popularnych menadżerów okien. Testowałem w Compizie, Metacity, KDE (KWin), XFCE (Xfwin), Openbox, Enlightment (e16) oraz FVWM i wydaje się działać jak należy.

Jak na razie pod Blackbox, Fluxbox, IceWM, WindowMaker, AfterStep i pekwm pojawiają się dziwne błędy wynikające z niepełnego wsparcia dla EWMH przez te menadżery okien. Jest szansa, że część z tych problemów uda się obejść, jednak niczego obiecać na razie nie mogę.

Instalacja i użytkowanie

Wystarczy pobrać archiwum ze strony projektu PyWO, rozpakować i wykonać:

./pywo.py

Ot i cała filozofia. Skonfigurować do swoich potrzeb (zmiana klawiszy, siatki) można tworząc plik ~/.pyworc - opis jego składni i dostępnych opcji znajdziecie przeglądając dołączony plik pyworc, zawierający domyślne ustawienia.

Błędy, problemy i propozycje

Nie ukrywam, że jeszcze zostało trochę do poprawienie, zoptymalizowania. Jeszcze nie wszystko jest dostatecznie przetestowane. Nie wiem jak PyWO zachowuje się przy więcej niż jednym monitorze, wiem o problemach z oknami ustawionymi by pojawiały się na wszystkich pulpitach.

Jeśli zauważycie dziwne zachowanie prosiłbym, oprócz opisu niepożądanego zachowania, o przesłanie również pliku /tmp/PyWO.log, gdzie zapisywane są informacje o działaniu programu.

Chętnie też wysłucham waszych propozycji zmian. Dopóki zapał nie opadł jest spora szansa na ich realizację. Na pewno powinienem wkrótce dopisać funkcję Undo.

środa, 11 sierpnia 2010, kosciak1

Polecane wpisy

  • Quake MDL Loader

    Cóż... Na starość człowiek geeczeje, a do głowy przychodzą różne głupie pomysły. I tak zamiast kończyć przygotowania do wydania nowej wersji Python Window Organ

  • PIL i pango + cairo - renderowanie tekstu w Pythonie

    Niedawno poproszony zostałem o pomoc w przygotowaniu fiszek (z ang. flashcards ). Zadanie wydawałoby się proste, cóż może być trudnego w wygenerowaniu plików gr

  • Python Window Organizer - wersja 0.2

    Moja aplikacja Python Window Organizer (w skrócie PyWO ) doczekała się nowej wersji! Zmiany w PyWO 0.2 Zmiana licencji na GPLv3 - zauważyłem, że python-xlib ,

TrackBack
TrackBack w tym blogu jest moderowany. TrackBack URL do wpisu:
Python Windows Organizer - wersja 0.2 z KosciaKowy blog
Moja aplikacja Python Windows Organizer w skrócie PyWO doczekała się nowej wersji! Zmiany w PyWO 0.2 Zmiana licencji na GPLv3 - zauważyłem, że python-xlib , z którego korzystam udostępniony jest na GPLv2, więc nie pozostało nic innego jak ... »
Wysłany 2010/08/16 17:57:57
Komentarze
2010/08/11 10:53:04
No super... A ja szukałem, szukałem i znaleźć nie mogłem takiego rozwiązania. Pod Windowsem miałem WinSplit, pod XFCE korzystałem z wbudowanych skrótów, które miały dużo ograniczeń.
Jeszcze tylko muszę przetestować jak to będzie działało... i hurra :) W sumie, jak dotychczas, kiedy korzystałem z pythonowych programów, to częściej nie działały, niż działały. Może ten będzie pierwszy, ewentualnie będzie impulsem do zgłębienia Pythona na tyle, żeby problemów z samym uruchamianiem nie było.
-
2010/08/11 11:13:11
No proszę! U Kościaka cicho było przez prawie miesiąc, ale jak wystrzelił notkę, to konkretnie!! :)
-
2010/08/11 11:36:46
@szmegiell - jeśli PyWO będzie sprawiało jakieś problemy to pisz i postaram się rozwiązać.
A Python trudny nie jest. Jeśli już programujesz to załapanie podstaw to kwestia dwóch weekendów.
-
2010/08/11 11:41:46
W razie problemów, to na pewno będę pisał.
Może i można załapać programowanie w dwa weekendy... pod warunkiem, że człowiek się tak zorganizuje, żeby je mieć wolne ;)
Skoro już piszę: czy na pewno program nazywa się Pythow? :
-
2010/08/11 11:45:12
@szmergiel - dzięki! Poprawione. Tak to już jest jak się po nocy przygotowuje notkę i potem nie czyta uważnie przed samą publikacją...
-
2010/08/16 23:50:04
Dotychczas używałem stilera ( github.com/soulfx/stiler ) + openbox, ale to narzędzie wygląda na bardziej rozbudowane. Zaraz przetestujemy
-
2010/09/04 14:39:52
Myślałeś może o dorobieniu funkcji "rozłóż w gridzie wszystkie aktywne okna na bieżącym desktopie"?
-
2010/09/04 15:02:50
@Mekk - na razie tylko myślałem. Zastanawiam, jak do tego podejść by rzeczywiście było to użyteczne i w miarę proste w obsłudze.
Spis Treści
Kanały RSS
Add to Google
Add to Netvibes