?

Log in

No account? Create an account

Padorios langų tvarkyklės paieškos

Ne per seniausiai sužinojau, kad egzistuoja langų tvarkyklės, išlygiuojančios langus. T.y. maksimaliai išnaudojančios darbastalio erdvę, be jokių vienas ant kito lipančių langų ir pan.
Po pusdienio eksperimentavimo atsirinkau tris vertus dėmesio:
dwm - itin lengvas daiktas, beveik be konfigūracijos
wmii - dwm didesnis brolis, iš pirmo žvilgsnio gan įdomus
ion3 - o šiame žvėry yra ne tik išlygiavimas, bet ir tab'ai
Sakiau pasėdėsiu prie kiekvieno po savaitę, pažiūrėsiu, kuris labiausiai patiks. Tačiau susimečiau paprasčiausią - dwm su dmenu, ir nemanau kad keisiu, nebent su laiku ims trūkti konfigūravimo galimybių :)
Ši langų tvarkyklė atidarius naują langą jį išdidina per visą darbalaukį, atidarius antrą langą - sumažina pirmąjį horizontaliai, ir pastumia į kraštą, o naujai atsivėrusį langą išdidina per likusią laisvą vietą.
Nėra jokio systray'aus, langus galima aprašyt, kad atsirastų tam tikram desktope, išdidinti ar ne (nes tarkim skypas išdidintas niekam nereikalingas).
Veikimo greitis ... liuks. Perėjęs nuo fluxbox'o ant dwm pasijutau tarsi kažkada nuo xfce ant fluxboxo perėjęs.
Susikonfigūravęs viską esu taip: yra 5 desktopai (tiksliau tag'ai, nes norint galima kelių tag'ų langus žiūrėt išsyk), pirmuose trijuose - vieta mano programom, ketvirtame - firefoxas ir nieko daugiau, penktame - trayer - systray pakaitalas, nes visokiem šūdskypiam ir pan. jis yra gan reikalingas daiktas. 5 desktope pas mane veikia tos programos, kurių nenoriu maksimizuot - pašto klientas, skype, xmms.
Konfigūruojamas šis windowmanageris tiesiai sourc'e, prieš kompiliuojant. O 2000 eilučių programos kompiliavimas nėra ilgas darbas :)
$ time make
......
real 0m1.250s
user 0m0.988s
sys 0m0.044s


Ši langų tvarkyklė savo meniu juostoje rodo tai, ką gauna iš stdin, tad paleidžiu ją tokiu būdu:

while true
do
echo `uptime |cut -d" " -f 12-` `date "+%D %T"`
sleep 1
done | dwm


Yra ir pora minusų - langų pavadinimuose nerodomos lietuviškos raidės (greičiausiai fontą pakeitus susitvarkytų), klaviatūros shortcut'ai neveikia, jei xorg.conf pirma įrašyta klaviatūros kalba yra lt o ne us, taip pat teko jame pakeisti klaviatūros kalbos perjungimą iš grp:alt_shift_toggle į grp:lwin_toggle, t.y. kalbą keičia "vindausų" kairys klavišas. Ir gerai, vis kam nors naudingas bus :)

Na, ir galiausiai - mano konfigas:

/* See LICENSE file for copyright and license details. */

/* appearance */
#define BARPOS BarTop /* BarBot, BarOff */
#define BORDERPX 3
#define FONT "-*-terminus-medium-*-*-*-*-*-*-*-*-*-*-*"
#define NORMBORDERCOLOR "#cccccc"
#define NORMBGCOLOR "#cccccc"
#define NORMFGCOLOR "#000000"
#define SELBORDERCOLOR "#ff0000"
#define SELBGCOLOR "#666666"
#define SELFGCOLOR "#ffffff"

/* tagging */
const char *tags[] = { "1", "2", "3", "ff", "shit" };
Rule rules[] = {
/* class:instance:title regex tags regex isfloating */
{ "Firefox", "ff", False },
{ "MPlayer", NULL, True },
{ "xdtv", NULL, True },
{ "Skype", "shit", True },
{ "trayer", "shit", False },
{ "xmms", "shit", True },
{ "Sylpheed", "shit", True },
{ "Liferea", "shit", True },
{ "OpenDict", NULL, True },
{ "LinuxDC++", "shit", True },
{ "Nicotine+", "shit", True },
{ "gkrellm", "shit", True },


};

/* layout(s) */
#define ISTILE isarrange(tile) /* || isarrange(<custom>) */
#define MWFACT 0.7 /* master width factor [0.1 .. 0.9] */
#define SNAP 32 /* snap pixel */
Layout layouts[] = {
/* symbol function */
{ "[]=", tile }, /* first entry is default */
{ "><>", floating },
};

/* key definitions */
#define MODKEY Mod1Mask
#define KEYS \
Key keys[] = { \
/* modifier key function argument */ \
{ MODKEY, XK_F2, spawn, \
"exe=`dmenu_path | dmenu -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"'" \
" -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'` && exec $exe" }, \
{ MODKEY, XK_F1, spawn, "exec uxterm" }, \
{ MODKEY, XK_F3, spawn, "exec thunar" }, \
{ MODKEY, XK_space, setlayout, NULL }, \
{ MODKEY, XK_b, togglebar, NULL }, \
{ MODKEY, XK_Tab, focusnext, NULL }, \
{ MODKEY, XK_h, setmwfact, "-0.05" }, \
{ MODKEY, XK_l, setmwfact, "+0.05" }, \
{ MODKEY, XK_m, togglemax, NULL }, \
{ MODKEY, XK_Return, zoom, NULL }, \
{ MODKEY|ShiftMask, XK_Tab, viewprevtag, NULL }, \
{ MODKEY|ShiftMask, XK_space, togglefloating, NULL }, \
{ MODKEY, XK_F4, killclient, NULL }, \
{ MODKEY, XK_0, view, NULL }, \
{ MODKEY, XK_1, view, tags[0] }, \
{ MODKEY, XK_2, view, tags[1] }, \
{ MODKEY, XK_3, view, tags[2] }, \
{ MODKEY, XK_4, view, tags[3] }, \
{ MODKEY, XK_5, view, tags[4] }, \
{ MODKEY|ControlMask, XK_1, toggleview, tags[0] }, \
{ MODKEY|ControlMask, XK_2, toggleview, tags[1] }, \
{ MODKEY|ControlMask, XK_3, toggleview, tags[2] }, \
{ MODKEY|ControlMask, XK_4, toggleview, tags[3] }, \
{ MODKEY|ControlMask, XK_5, toggleview, tags[4] }, \
{ MODKEY|ShiftMask, XK_0, tag, NULL }, \
{ MODKEY|ShiftMask, XK_1, tag, tags[0] }, \
{ MODKEY|ShiftMask, XK_2, tag, tags[1] }, \
{ MODKEY|ShiftMask, XK_3, tag, tags[2] }, \
{ MODKEY|ShiftMask, XK_4, tag, tags[3] }, \
{ MODKEY|ShiftMask, XK_5, tag, tags[4] }, \
{ MODKEY|ControlMask|ShiftMask, XK_1, toggletag, tags[0] }, \
{ MODKEY|ControlMask|ShiftMask, XK_2, toggletag, tags[1] }, \
{ MODKEY|ControlMask|ShiftMask, XK_3, toggletag, tags[2] }, \
{ MODKEY|ControlMask|ShiftMask, XK_4, toggletag, tags[3] }, \
{ MODKEY|ControlMask|ShiftMask, XK_5, toggletag, tags[4] }, \
{ MODKEY|ShiftMask, XK_q, quit, NULL }, \
};


Tai tiek, skrynšotų nedėsiu, jų yra langų tvarkyklių puslapiuose.

Comments

(Anonymous)

įdomus projektėlis wdm
Įdomus vienas dalykas. Kurių velnių naudoji Skype, kai yra Jabber, kuris galimybėmis tikrai lenkia Skype. Taip pat, tie, kas naudojasi gmail.com arba Google Talk, taip pat yra ir Jabber naudotojai...

labai paprasta

Šiaip prieš savaitę ištrenkiau skypą lauk iš kompo.
Naudojausi juo todėl, kad jame sėdi dauguma pažįstamų, kurie nesėdi niekur kitur.
Sėdžiu dabar prie ex-gaim ( http://www.pidgin.im ), kuris, nors ir ne iki galo, tačiau palaiko tiek protokolų, kiek man nereikės gyvenime. Kitą sav. planuoju parašyt apie jį :) Gal dar vienas kitas žmogas pabėgs iš skypo.

May 2009

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      
Powered by LiveJournal.com