There have been a few posts on planet KDE about text-based presentation tools (1 , 2 , 3) and while their solutions are all probably better than mine, I have to say I did something in the area about a year ago.
Since I like restructured text and PyQt that's what it's based on, but you can just use it with vi and a wyse60, if you want.
My project is called Tobogan and it has a working version.
It has a GUI, but let's ignore it for this post about text-based software ;-) and show the text behind it:
=============== Why use Tobogan =============== ------------------- (If you are a nerd) ------------------- :transitions: from_left,to_left,from_top,to_top,from_right,to_right,to_bottom,fade_out It's nerd-oriented ------------------ It's trivial to display source code, with proper syntax highlighting. .. code-block:: python from base64 import * def myFirstFunction(): print b64decode ('YnllIHdvcmxkIQ==') Even for things like shell sessions. Dammit, I am a nerd, I will try to add every nerd feature I deem cool. It does things simply --------------------- This is a subtitle? =================== Wanna show a flickr photo? .. code-block:: rst .. flickr:: myPhotoTitle How about using openomy.com to share your files? And whatever else you can think of, it probably **can**\ be done. .. footer:: Smart thing goes here
And here is the result after running rst2sl.py on it.
If you move the cursor to the top, you will get (broken?) previous/next arrows
If you click on the window, you get to the next slide.
I have not touched this in almost a year, and it would need lots of love, but it's not a bad concept, IMVHO.
I am still anxiously waiting for my Asus eee (still a week to go or so), and I was thinking about web browsing in the 7", 800x480 screen.
Yes, you can do the usual things, go to full screen mode, whatever, but for many sites, 800 pixels is just too narrow.
You can make pages fit better in a limited width by reducing the font size. A good 8pt font is probably readable on that screen, since you will be pretty close to the screen.
However, that does nothing for layouts that are pixel-based, and for the size of images.
However, after reading about Qt 4.4's support for webkit and widgets in QGraphicsView, I started thinking... that's doing it wrong.
What you want in limited screen space is text in the usual size and the page in a smaller size.
So, my idea is:
Make the font larger. Say, 12pt.
Render the page in a webkit widget that's 1200x720 pixels.
Put the widget in a QGraphicsScene, and reduce it 33%.
The result? a 800x480 web page view that contains the whole page.
Of course you should be able to change all these parameters with a single control. Is the page too wide to see in 800x480 with 8pt fonts?
Then try 1000x600 with 10pt fonts, and reduce it to fit the screen.
Still too wide? Then try 1200x720 and a 33% reduction.
Should work better with aliased fonts, since the size reduction should make antialiased fonts too blurry. A wide, open font will look better,
The scrollbars will look squashed, I expect. Probably checkboxes and radio buttons will look funky. Here, more advanced wizardry is needed.
Of course it would have to be tested, but I am willing to bet this will work better than other alternatives. If I had a working PyQt 4.4 I would try to do it myself ;-)
For a project I am doing for one of my customers, I needed a mailing list archive. I looked, and it seems the nicer one is Lurker.
Sadly, there are no RPM packages, so I had to build it manually... and ran into mimelib. Which, looking closer, is the same mimelib from Doug Sauder I used in KRN back in the late 90s.
And which I had a hand in GPLing, too. And it's still in use. One of the things I always liked about FLOSS: nothing ever really gets thrown away.
This is the real outcome of my PyWeek failure: a neat library.
A OpenGL-accelerated, multiplatform, easy-to-use playground!
But watch the silly video that shows no interesting features instead:
You can't see it but there are 29 balloons, numbered, that bounce around happily.
Performance in the video sucks because I had to disable OpenGL in order to capture it correctly (and video recording kills my notebook,anyway). That demo normally runs in 3 seconds, not 57.
Here's the non-boilerplate code for that demo:
def fillWorld(scene): items= for x in range(1, 29): b=cs.CPBodyItem(bpos=[0+13*random.randint(0,25), -50-30*random.randint(0,10)],m=10) s=cs.CPCircleShapeItem(10, b, e=.5, offset=[0, 0]) t=QtGui.QGraphicsSimpleTextItem(str(x), s) t.setPos(-5, -5) items.append(b) items.append(cs.CPSegmentShapeItem([0, 50], [500, 450], 1, None, e=.7)) items.append(cs.CPSegmentShapeItem([0, 450], [500, 50], 1, None, e=.7)) for i in items: scene.addItem(i)
Neat, isn't it?