Mało czasu mało

Grudzień 10, 2008 - Odpowiedzi: 9

Obecnie mam bardzo mało czasu niestety i mój config stoi w miejscu. Jest jednak na tyle używalny, że nie muszę go zmieniać. Jak będe miał chwilkę czasu to na pewno coś dodam, choć przed świętami to wątpie… Do usłyszenia!

Nowa wersja configa, niech będzie że 0.2

Październik 22, 2008 - Odpowiedzi: 4

Tym razem daje linka do forum fvwm, gdzie opublikowałem configa
link

Cały opis + screenshoty są tam, hihi od razu widać jak kiepski jest mój angielski:P

Pozdrawiam potencjalnych czytelników. Niech ktoś napisze jakiś komentarz:P

PrzegladarkaFolderow i SzybkiDostep – funkcje funkcje..

Wrzesień 4, 2008 - Odpowiedzi: 88

Nowy rok szkolny zaczął się parę dni temu, a wraz z nim pojawiły się w moim configu dwie nowe funkcje. Nazwy w tytule, mogą wydawać się trochę dziwne (polskie?), ale po dłuższym zastanowieniu wydaje mi się, że tak będzie łatwiej znajdywać je i odwołania do nich w gąszczu tych wszystkich linii kodu. Przejdźmy do pierwszej.

PrzegladarkaFolderow jest to skrypt generujący menu z nazw katalogów znajdujących się w danym katalogu. Jest to rekurencyjne, więc służy jako przeglądarka folderów, gdy celem moim jest szybkie dostanie się do jakiegoś folderu i uruchomienie w nim terminala czy thunara. Chciałem do tego użyć specjalnie do tego przygotowanego skryptu perla fvwm-menu-directory, ale niestety sam, ani nikt na fvwm.lair.be nie umiał sprawić, by wyświetlały się jedynie foldery. Po za tym skrypt ten jest dość toporny i nie jest rozwijany (bądź rozwijany jest w tempie podobnym do samego FVWM:). Wobec tego zastosowałem niewielki skrypt explorer.sh autorstwa Arsena, z nieistniejącego już blogu arsen.gentoo.pl. Poniżej jego kod:


#!/bin/bash
if [[ -n $1 && -d $1 ]]
then
echo DestroyMenu recreate $1
echo AddToMenu $1
echo + DynamicPopDownAction DestroyMenu $1
echo + MissingSubmenuFunction PrzegladarkaFolderow
echo + \"Otworz terminal%ikony/terminal.png%\" Exec exec ~/.fvwm/skrypty/urxvt.sh $1
echo + \"Thunar%ikony/thunar.png%\" Exec exec thunar $1

echo + \"\" Nop
for i in ${1}/*
do \
if [[ -d "${i}" ]]
then
echo + \"$(basename "${i}")%ikony/folder.png%\" Popup "${i}"
continue
fi
done
fi

Miałem pewne problemy z tym, by działało uruchamianie mojego ulubionego terminala urxvt, ale jak widać z powyższego kodu, poradziłem sobie dość okrężną metodą. Kod pliku urxvt.sh:


#!/bin/bash
cd $1 ; urxvt

Pozostaje jeszcze stworzenie odpowiedniej funkcji w configach i odniesienia do niej w menu:


DestroyFunc PrzegladarkaFolderow
AddToFunc PrzegladarkaFolderow
+ I PipeRead `$[FVWM_USERDIR]/skrypty/explorer.sh $0`

i samo menu

DestroyMenu MenuPrzegladarka
AddToMenu MenuPrzegladarka
+ MissingSubmenuFunction PrzegladarkaFolderow
+ "bookmarks%ikony/harddisk.png%" Popup /

Korzystanie z funkcji PrzegladarkaFolderow, moze i fajne, ale po jakimś czasie konieczne jest zmienianie w configu folderów, do których chcemy mieć szybki dostęp. Z kolei thunar i duża część aplikacji gtk posiada coś takiego jak Ulubione. Nie wiem dokładnie jak to nazwać – poniżej screenshot:

Free Image Hosting at www.ImageShack.us

Pomyślałem – fajnym pomysłem byłoby stworzenie menu z tymi katalogami do których miałbym szybki dostęp za pomocą tamtej funkcji. Tak powstała kolejna funkcja, tym razem całkowicie napisana przeze mnie. Tutaj jej kod:


DestroyFunc SzybkiDostep
AddToFunc SzybkiDostep
+ I DestroyMenu recreate bookmarks
+ I AddToMenu bookmarks "...::Miejsca::..." Title Top
+ I + DynamicPopDownAction DestroyMenu bookmarks
+ I PipeRead `$[FVWM_USERDIR]/skrypty/bookmarks.sh`

I kod samego pliku bookmarks.sh:


#!/bin/bash
echo + "%ikony/folder_home.png%Home" Exec exec thunar ~
for i in $(cat ~/.gtk-bookmarks | grep file | cut -b 8-); do
export folder=`basename $i`
echo + \"$folder%ikony/folder.png%\" Exec exec thunar "${i}"
done;

echo + ""
echo + ""

echo + MissingSubmenuFunction PrzegladarkaFolderow
echo + "%ikony/folder_home.png%Home" Popup ~
for i in $(cat ~/.gtk-bookmarks | grep file | cut -b 8-); do
export folder=`basename $i`
echo + \"$folder%ikony/folder.png%\" Popup "${i}"
done;

Odrobina wyjaśnienia dla tych mniej kumatych:

Bookmarks.sh odczytuje zawartość pliku ~/.gtk-bookmarks, w którym są zapisane nasze zakładki. W pierwszej części skryptu tworzy z elementów tego pliku listę. Po kliknięciu na któryś z nich, otworzy się thunar w danym katalogu. Poniżej wyświetlane są dwa seperatory, a po nich ta sama lista, tyle że po najechaniu na któryś z jej elementów tworzą się podmenu za pomocą funkcji PrzegladarkaFolderow.

Mam nadzieje, że mój bełkot jest choć w części zrozumiały dla Was:)

Dobra, ale ktoś spyta: po co dwa razy ta sama lista? Z wygody. Rzeczą, którą robiłem najczęściej było otwieranie thunara w danym katalogu, no więc czemu nie zrobić, by ta czynność była szybsza? Jak to się sprawdzi na dłuższą metę – zobaczymy. Menu to podpinam do lewego przycisku myszy za pomocą funkcji:


AddToFunc Bookmarks
+ I SzybkiDostep
+ I Menu bookmarks

i wpisu


Mouse 1 R A Bookmarks

I to by było na tyle. Jeszcze screenshoty:

Free Image Hosting at www.ImageShack.us

Free Image Hosting at www.ImageShack.us

Prawda, że fajne to?:)

FilesBrowser – kontynuacja

Sierpień 26, 2008 - Jedna odpowiedź

Dziś rozbudowałem funkcję FilesBrowser. Oprócz tego, że wyświetla configi do FVWM, potarafi jeszcze wyświetlać inne pliki konfiguracyjne podzielone na dwa podmenu, z których pierwsze odpowiedzialne jest za edytowanie configów użytkownika, a drugie reszty systemu (za pomocą konta roota). W zasadzie nie byłoby w tym nic fajnego, gdyby nie ostatni element w wyżej wymienonych menusach:
Free Image Hosting at www.ImageShack.us

Jak nietrudno się domyśleć odpowiada on za dodawanie nowych configów to listy. Sposób jest prosty, jak konstrukcja cepa, aczkolwiek wśród ogromu tych wszystkich nawiasów jego zapis może być nieczytelny. Poniżej pełny listing i już wszystko tłumacze.

DestroyFunc FilesBrowser
AddToFunc FilesBrowser
+ I DestroyMenu ConfigFVWMMenu
+ I AddToMenu ConfigFVWMMenu
+ I + DynamicPopDownAction DestroyMenu ConfigFVWMMenu
+ I PipeRead 'echo "+ \"config%ikony/configtxt.png%\" Exec exec gedit ~/.fvwm/config" ; for i in ~/.fvwm/*.fvwm; \
do echo "+ \"`basename $i`%ikony/txt.png%\" Exec exec gedit $i"; done'

+ I DestroyMenu ConfigUserMenu
+ I AddToMenu ConfigUserMenu
+ I + DynamicPopDownAction DestroyMenu ConfigUserMenu
+ I PipeRead 'for i in `cat ~/.fvwm/lista_configow_user`; \
do echo "+ \"`basename $i`%ikony/txt.png%\" Exec exec gedit $i"; done ; echo "+ \"Nowy...%ikony/nowa_sesja.png%\" Exec exec zenity --title=Podaj_adres_pliku_konfiguracyjnego --file-selection >> ~/.fvwm/lista_configow_user"'

+ I DestroyMenu ConfigRootMenu
+ I AddToMenu ConfigRootMenu
+ I + DynamicPopDownAction DestroyMenu ConfigRootMenu
+ I PipeRead 'for i in `cat ~/.fvwm/lista_configow_root`; \
do echo "+ \"`basename $i`%ikony/txt.png%\" Exec exec gksu \"gedit $i\""; done ; echo "+ \"Nowy...%ikony/nowa_sesja.png%\" Exec exec zenity --title=Podaj_adres_pliku_konfiguracyjnego --file-selection >> ~/.fvwm/lista_configow_root"'

Pierwsze 6 czy 7 linijek jest bez zmian, więc nie ma o czym pisać. Nowe rzeczy zaczynają się dopiero od linijki + I DestroyMenu ConfigUserMenu. Skrypcik ten dla każdej linijki z pliku ~/.fvwm/lista_configow_user tworzy nowy element w menu, który otwiera nam edytor tekstowy z wybranym configiem. Plik ten można edytować ręcznie, ale po kliknięciu na Nowy..., otwiera się ładne okienko z wyborem configa:
Free Image Hosting at www.ImageShack.us

Odpowiada za to program zenity, dostępny oczywiście w repozytoriach Debiana. Wyjście tego polecenia – pełny adres pliku – skierowane jest na końcówkę ~/.fvwm/lista_configow_user, co pośrednio powoduje powstanie nowego elementu w menu. Drugi element FilesBrowser jest prawie identyczny, odnosi się tylko do innego pliku oraz powoduje, że wybrane przez nas pliki konfiguracyjne będą otwierane z uprawnieniami roota.

Jeszcze tylko całe nadmenu:
DestroyMenu MenuConfig
AddToMenu MenuConfig
+ MissingSubmenuFunction FilesBrowser
+ "%ikony/configi.png%FVWM" Popup ConfigFVWMMenu
+ "%ikony/configi.png%Lukasz" Popup ConfigUserMenu
+ "%ikony/configi.png%System" Popup ConfigRootMenu

I to by było na tyle. Aha, pewnie niejedna osoba zauważy, że mógłbym zrobić jeszcze jakiś bajer do usuwania elementów z tego menu oraz, że to mogłoby być ładniej napisane i w jednym menu. Jasne, ale mnie szlag trafia, jak mam czytać kogoś config do FVWM, gdzie jest pełno różnorakich wogóle nie potrzebnych zmiennych i gdzie we funkcje tego typu trzeba się długo wczytywać, żeby cokolwiek z nich zrozumieć przez to, że są właśnie za bardzo skomplikowane. A co do jakości kodu – jeśli coś razi w oczy, bardzo przepraszam:)

Funkcja FilesBrowser

Sierpień 23, 2008 - Odpowiedzi: 3

Mając chwilkę czasu, uzupełniłem config o funkcję nazwaną przeze mnie FilesBrowser. Obecnie służy ona jedynie do przeglądania configów z Fvwm, ale jej zadaniem może być również wyświetlanie listy pdfów, dokumentów openoffice i wiele innych. Warunkiem (na chwilę obecną, do przeglądania configów zupełnie wystarcza) jest to, że dane pliki muszą być w jednym katalogu. A oto i ona:

DestroyFunc FilesBrowser
AddToFunc FilesBrowser
+ I DestroyMenu ConfigFVWMMenu
+ I AddToMenu ConfigFVWMMenu
+ I + DynamicPopDownAction DestroyMenu ConfigFVWMMenu
+ I PipeRead 'echo "+ \"config%ikony/configtxt.png%\" Exec exec gedit ~/.fvwm/config" ; for i in ~/.fvwm/*.fvwm; \
do echo "+ \"`basename $i`%ikony/txt.png%\" Exec exec gedit $i"; done'

W skrócie mówiąc, tworzy ona menu o nazwie ConfigFVWMMenu, w którym zawarta jest lista plików, które posiadają końcówkę .fvwm oraz pliku o nazwie config. Po kliknięciu dany pliczek wyświetla się w oknie edytora gedit (tak tak, vima też znam:) ). Do używania jej potrzebny jest jeszcze wpis w normalnym menu:

+ MissingSubmenuFunction FilesBrowser
+ "%ikony/configi.png%FVWM Configi" Popup ConfigFVWMMenu

Prawda, że proste?

Na koniec zrzutka:
Free Image Hosting at www.ImageShack.us

TreadstoneWM-0.1

Sierpień 21, 2008 - Jedna odpowiedź

No, miało to być wczoraj, ale jest dopiero dziś (już na samym początku mam opóźnienia:)). Pierwsza wersja mojego configu właśnie wylądowała na serwerze 2shared. Zrzutki na samym dole posta. Przejdźmy do najciekawszych możliwości.

  • Dynamiczno-statyczne menu pod prawym przyciskiem myszy. Na pierwszy rzut oka służy do uruchamiania aplikacji, ale to nie koniec jego możliwości. Znajduje się tam też podmenu Funkcje->Screen, w którym widać aktualne sesje screena. Można je przywracać albo uruchomić nową. Skrypt znalazłem na fvwm.lair.be. Jest tam też przeglądarka obrazów umieszczonych w katalogu ~/.fvwm/tapety, której funkcją jest zmienianie tapety. Skrypt do niej znalazłem także na tamtej stronie.
  • Panel na górze pełniący głównie funkcję informacyjną (conky), ale po prawej stronie jest także niewielki pager oraz zegarek, który po kliknięciu na niego pokazuje datę. Taka mała rzecz, a cieszy:) Wszystkie te rzeczy są umieszczone w jednym panelu stworzonym za pomocą FvwmButtons.
  • Wysuwany panel po lewej stronie. Przyciski na nim służą do sterowania MPD. Dodatkowo, jeśli trzymamy mysz nad przyciskiem z głośnikiem, możemy kółkiem myszy regulować głośność. Jak już pewnie widzicie, jest tam też popularny skrypt azhaga pogodynka.sh, oraz inne pierdoły. Panel stworzony także przy pomocy FvwmButtons

Całego tego potworka odpalam przy pomocy Xephyr, dzięki czemu mam stare FVWM normalnie, i nowe, to które tworze odpalone w oknie.
Oto dwie zrzutki:
Free Image Hosting at www.ImageShack.us

Free Image Hosting at www.ImageShack.us

I sam config (oraz configi conky): Pobierz
No, to by było na tyle. Zapraszam do testowania oraz komentowania:)

Pierwszy post

Sierpień 19, 2008 - Odpowiedzi: 2

Witam na moim blogu, w zasadzie to techblogu ze ściśle ukierunkowaną tematyką. Otóż będę w nim pisał tylko o imo Najlepszym Window Managerem jakim jest FVWM. Jak pewnie niektórzy z Was się przekonali, sam FVWM świeżo po instalacji jest kompletnie nieprzyjazny użytkownikowi, brzydki (podobnie jak jego strona internetowa), odpychający i pozostawiający uraz w psychice młodych Pingwinów, którzy dziwią się, jak można takiego czegoś używać. Otóż można i to z powodzeniem. Po odpowiedniej konfiguracji. W porównaniu z tym, co spotyka nas w KDE, Gnome czy nawet Fluxboksem nie jest to rzecz prosta. W zasadzie jestem skłonny nazywać FVWM jedynie narzędziami, przy pomocy których możemy stworzyć ściśle dopasowany do naszych potrzeb interfejs graficzny.

FVWM jest, jak już wspomniałem, trudny do skonfigurowania. Niektórzy z użytkowników prezentują swoje configi wraz z configami conky itp. Ja mam zamiar właśnie zacząć robić to samo – wiem z doświadczenia, że pisanie swojej pierwszej konfiguracji od zera jest niekiedy zniechęcające, a podpatrywanie gotowych rozwiązań jest jedna z lepszych metod uczenia się.

Korzystając z tego, że są jeszcez wakacje i mam sporo czasu, wziąłem się za pisanie konfiguracji FVWM od zera, nazywając ją dumnie TreadstoneWM. Celem moim nie jest jednak stworzenie czegoś na wzór Fvwm-Crystal,to, co będzie się sukcesywnie pojawiać w tym blogu, jest z założenia przeznaczone dla mnie, ale z niewielkimi modyfikacjami powinno działać także u Was, drodzy potencjalni czytelnicy:)

No, to by było na tyle. Dodaje jeszcze screenshota z czystago FVWM, oraz z mojego aktualnego pulpitu:
Free Image Hosting at www.ImageShack.us

Free Image Hosting at www.ImageShack.us

Pierwsza wersja nowego configu już jutro:)