Skip to main content

Ralsina.Me — Roberto Alsina's website

Posts about pyqt (old posts, page 6)

Marave 0.2 is out!

Ver­sion 0.2 of Mar­ave, a dis­trac­tion-free fullscreen ed­i­tor is out at http://­mar­ave.­google­code.­com

This ver­sion in­cludes sev­er­al bugs fixed and fea­tures im­ple­ment­ed since 0.1.1:

  • A cor­rup­t­ed Right-click menu (Is­­sue 20)

  • Flick­­er­ing on back­­­ground changes

  • More de­­tailed li­­cen­s­ing in­­­for­­ma­­tion

  • More test­ed on Win­­dows

  • Added help (F1)

  • Search & Re­­place (but re­­place all is not done)

  • New art­­work

  • Sta­­tus no­ti­­fi­­ca­­tions

  • Doc­u­­ment In­­­fo (C­tr­l+I)

  • Bet­ter feed­back in the UI el­e­­ments (spe­­cial­­ly the but­­ton­s)

  • Save font size cor­rec­t­­ly

  • Fix "S­­tarts in the back­­­ground" prob­lem (Is­­sue 17)

Mar­ave is free soft­are re­leased un­der the GPL, and should work in all ma­jor desk­top plat­form­s.

I would love feed­back on this re­lease, as well as ideas for Mar­ave's fu­ture, so a mail­ing list for Mar­ave has been opened:


Of course, if you like Mar­ave, feel free to give me mon­ey

Marave 0.1 released, please test!

The first "good" ver­sion of Mar­ave my re­lax­ing text ed­i­tor is out!

What is Mar­ave?

Mar­ave is an ed­i­tor that does­n't dis­tract you. It has a fullscreen in­ter­face, and most of the time, while you write, you will on­ly see your tex­t, and maybe a back­ground:


Of course it is al­so quite con­fig­urable:


Some of the fea­tures:

  • Cus­­tom back­­­grounds (im­ages or col­ors)

  • Font and font size are con­­fig­urable

  • Re­­size­able ed­i­­tor of con­­fig­urable opac­i­­ty

  • "Van­ish­ing" UI, when you tipe, it all goes away

  • Op­­tion­al me­­dia play­er (right now aimed at stream­ing au­­dio, maybe sound­s­capes some­­day)

  • Op­­tion­al au­­dio feed­back for the key­board (just in case you miss the old type­­writer)

  • Theme sup­­port

  • Mul­ti­lin­gual spellcheck­­ing (re­quires pyen­chan­t)

Mar­ave is im­ple­ment­ed us­ing PyQt, so it should work in all ma­jor plat­form­s, Win­dows, Lin­ux and Mac OS­X, as long as you have PyQt in­stalled.

In the fu­ture, easy to use bi­na­ries will be pro­vid­ed for Win­dows and Mac.

This ver­sion is not fea­ture com­plete. Specif­i­cal­ly:

  • Search+Re­­place is not done

  • There may be some cus­­tomiza­­­tions not im­­ple­­men­t­ed

Down­load Mar­ave 0.1

UP­DATE 0.2 is out, at http://­code.­google.­com/p/­mar­ave/­down­load­s/list

New project: marave, a relaxed text editor


Mar­ave (noth­ing, in guaraní) is a re­laxed text ed­i­tor. Its goal is to let you fo­cus in your writ­ing, free of vis­ual dis­trac­tions and clut­ter.

It is writ­ten us­ing PyQt, so it should work in all ma­jor plat­form­s, and it is li­censed un­der the GPLv2 so it is free soft­ware.

You can find the cur­rent SVN (no re­lease yet) at http://­mar­ave.­google­code.­com




It's not fin­ished yet, but it has the fol­low­ing fea­tures:

  • You can ed­it text

  • Min­i­­mal­is­tic, "van­ish­ing" us­er in­­ter­­face

  • (Op­­tion­al) au­­dio feed­back for the key­board

  • (Op­­tion­al) re­lax­ing mu­sic (re­quires in­­ter­net ac­cess)

  • You can cus­­tom­ize the back­­­ground, font, colours, and sounds

  • Live spell check­­ing (re­quires pyen­chan­t)

There are al­so some ma­jor miss­ing fea­tures:

  • Search and Search/Re­­place is not im­­ple­­men­t­ed

  • UI cus­­tomiza­­­tions are not stored

  • UI has to be cleaned up a lot more

  • It does­n't ask to save when clos­ing

  • Au­­tosave not im­­ple­­men­t­ed

And at least one known bug:

  • In win­­dows the wid­gets are not well placed Fixed in SVN

A litte his­to­ry:

A few days ago, I saw ommwrit­er men­tioned in a tweet or some­thing sim­i­lar.

I was think­ing "nice thing", but in the back of my mind I was al­so think­ing "that can't be too hard to do". Af­ter al­l, the hard part of cre­at­ing a pro­gram is mak­ing it do things, right?

Well, yes and no. I did man­age to cre­ate a some­what rea­son­able fac­sim­i­le in a day, but tweak­ing the looks of it is driv­ing me nuts :-)

Happy 10th blogiversary to me!

Since yes­ter­day this blog is ten years old so, time for some his­to­ry.

It all start­ed in ad­voga­to where you could still read it to­day! (Please read it here in­stead ;-)

Then it moved to PyDS an ear­ly python desk­top blog plat­form with a web in­ter­face, and was host­ed in PyC­S, a free ser­vice.

Then PyCS kin­da died, and I start­ed gen­er­at­ing a stat­ic blog and host­ing it in my IS­P's free host­ing. That sucked bad.

Then I start­ed my own com­pa­ny, and I had my own server­s, so I start­ed host­ing it there (even to­day this blog is com­plete­ly stat­ic HTM­L!)

Then PyDS start­ed act­ing weird, so I wrote my own blog­ging soft­ware, which is a re­al mess, per­haps 25% fin­ished, but it does things ex­act­ly the way I like them.

Cur­rent­ly, this blog is syn­di­cat­ed in Plan­e­ta PyAr, Plan­et Python, Plan­et Qt, Plan­e­ta LUGLI, and a cou­ple oth­er places.

This year, I de­cid­ed to make the blog com­plete­ly bilin­gual (English and Span­ish), but I hate trans­lat­ing it.

Ac­cord­ing to the stats I have avail­able, the blog is in av­er­age more pop­u­lar now than ev­er (but yes, my most pop­u­lar posts were years ago ;-)


These are the most pop­u­lar pages in the last year:


  1. I need to write more about Qt and/or start flame­wars with clue­­less IT writ­ers

  2. I need to search for an­­cient ma­te­ri­al and de­p­re­­cate it

  3. Hav­ing your own host­ing and blog­ging soft­­ware is neat

  4. 10 years is a lot of time: 860 posts (or 913, de­pend­ing on how you coun­t)

python-keyring is seriously nice

Many pro­grams re­quire pass­words from the us­er.

It's nice when a pro­gram can re­mem­ber the pass­word you give it.

It's nicer when it stores said pass­word safe­ly. How­ev­er, it's not triv­ial to do that if you care for cross-­plat­form sup­port.

Or at least it was­n't un­til Kang Zhang wrote python keyring, a mod­ule that ab­stracts the pass­word stor­age mech­a­nisms for KDE, GNOME, OSX and win­dows (and adds a cou­ple of file-based back­ends just in case).

So, how does it work?

In­stall it in the usu­al way. If it's not pack­aged for your dis­tro/­op­er­at­ing sys­tem, just use easy_in­stal­l:

easy_install keyring

You could al­so get it from mer­cu­ri­al:

hg clone

The API is sim­plic­i­ty it­self. This is how you save a se­cret:

import keyring

You may get this di­a­log (or some ana­log on oth­er plat­form­s):


And here's the proof that it was saved cor­rect­ly (this is KDE's pass­word man­ager):


And how do you get the se­cret back?

import keyring
print keyring.get_password('keyring_demo','username')

This is how it run­s:

$ python

As you can see, the API is as easy as it could pos­si­ble get. It even chose the KWal­let back­end au­to­mat­i­cal­ly be­cause I am in KDE!

Python-keyring is a mod­ule that fix­es a big prob­lem, so a big thank you to Kang Zhang and Tarek Zi­adé (who had the idea)

Contents © 2000-2023 Roberto Alsina