Panorama


Hmm. That could be the same crash Cloudef mentioned. Those bugs were in the JSON library libmilky uses called jansson. If you run into one again, send me the output file from your /tmp. If I can find a pattern in the crashes it will be easier to find the cause :)
 
Last one was just: "copying temp.pnd to /medi:Segmentation fault" (from memory)
 
Compiled Qt5 for my desktop today and out of curiosity ported Panorama to the new SceneGraph system.

1. All text is just a bunch of squares, relevant error "Warning: distance-field glyph is not available with index 0"
2. The QSGView doesn't update. In qmlscene (qmlviewer for SceneGraph) I need to wiggle the mouse cursor over the window to get it to update, in panorama it only updates when the window size is changed.

Just messing around with this, don't expect a release :D
 
I'm sure the person who is most interested in a desktop port (with the skills to make it happen) will show up when they are needed and join the crew... :p
 
A desktop port wasn't the point here (panorama works fine on a linux desktop). It's just easier to try stuff out on a desktop, so I compiled Qt5 on it before I'd move on to cross-compiling for a pandora. However, Qt5 still seems to have enough issues for me not to bother doing the cross-compilation. The ultimate point was to try how panorama would fare under the new SceneGraph rendering system introduced in Qt5 (which will be released some time next year).

For reference, here's a small sample of what the SceneGraph can do and some benchmarks. We're currently using QML1/Raster, so thoretically we could get over 2.5x performance boost from it according to these benchmarks.
 
I figure that was your point... which is why I said if someone comes along that is interested enough and has the skill, they will do it... until then, it's just your test setup that you are describing to people and they shouldn't expect to see a desktop port coming from you/deflemster atm... (at least that's how I comprehend the situation)
 
A small update of requested features on milky-plugin and MilkyTest:


milky-plugin:
  • New libmilky and libpnd, now with less memory leaks!
  • Support for finding out if packages have been modified in the repo since last sync
  • Support for getting modified date and package size in a human-readable format

MilkyTest UI:
  • Ordering packages by "last modified" date (latest changes on top) or alphabetically
  • Filter /mnt/utmp and /mnt/pnd from devices
  • Crawl device on startup and device change
  • Sync button is disabled when there's no new stuff in the repo (checked at startup, device change and every 5 minutes)
  • Show package size, current repo version, installed version and last updated in package details
  • Don't start loading icons if the package list is moving

Now back to doing wars-gamenode :p
 
Small bugfix update:
  • New libmilky, fixes some bugs
  • Fixed search and and pandora controls in MilkyTest UI after last update :p
 
I've been watching and trying Panorama for a while now, waiting for the "perfect" UI to appear out of nowhere to make my Pandora even more awesome. Alas, this hasn't happened yet, so now I'm tinkering with the idea of making said "perfect" UI.

I don't know if I actually have to time to do this, but I'm taking the first step and compiling QT 4.7 on my computer right now. So I guess I'll find out.

While waiting, I've decided to collect all my ideas. I could just put them into a text file, but putting them here might be better. So here it goes.


Overall UI
----------
- Based roughly on the "Colors" theme. I recall reading that this isn't actually a native Panorama theme, but rather from P-something or other. So perhaps will need to code from scratch.
- Overall visual space usage needs optimization. Smaller icons. Remove or make the clock much smaller.
- Much more visually minimalistic than Colors. Solid black background. Solid lines with solid colors. Terminal-like. Maybe like Okuda theme for N900 (See http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/). Use Terminus font (note to readers: best font ever made).
- Main bar at top should have less height but still be finger friendly. If more icons used that can be displayed at once, then it scrolls with wrapping. Like one of the reels on a slot machine, but sideways. Lots of ideas here, so new topic.

Main Bar
--------
- Many choices of icons (and the categories that go with the icons, of course) for the main menu. User can swap in and out different categories via settings.
- Categories can simply be different application categories ala Minimenu. But like Colors theme, kind of, should go beyond that. A Media category, for example. Could have different category plugins, like a linux terminal, for example, that takes up the space below the menu when the category is selected. Ncmpcpp would be a good candidate for a Media Player category. Anything with low memory usage (and, even better, a curses interface matching UI theme) would be a good candidate for a category plugin.
- For application categories, my personal preference would be like Colors theme--Emulators, Games (perhaps with type submenu), and Other. Other people will have their own preferences of course.
- Since I'm probably already going way beyond my own skills and time, I'll also throw out the idea of--you guessed it--a Rom category for exploring video game roms and launching appropriate emulators and whatnot.

Technical
---------
- Panorama needs ability to operate as main UI like Minimenu, I understand this is planned/being worked on.
- Some kind of multitasking ability beyond that of Minimenu would be nice if feasible. Best case scenario would be like iPad in some sense. I don't know technically how it works, but I imagine the ability to switch between applications and the UI via a usual alt-tab-like popup (that's not the iPad part). But it would be nice if there's a way to do this without impacting performance of foreground processes. Is there a way to temporarily end a process but write its state to the SD Card? Thus, when switching away from an application, it would no longer use resources, but switching back would bring it back as if it was never ended (perhaps with a short delay from having to bring it back into memory [which I think would be totally acceptable]). This could yield all the performance benefits of Minimenu without losing multitasking.
- Above-mentioned main menu plugins--feasible? Sounds like it based on modularity of Panorama, but I think all of functionality would have to be written into Panorama itself as plugins. Fine. New category.

Panorama Plugins
----------------
I guess the question starts as: how much needs to actually be written into the plugin and how much can just be a wrapper to an outside application? Take the ncmpcpp main menu item for example. Could this simply be accomplished by telling Panorama that when the Media Player category is selected to show the ncmpcpp process in the appropriate area of the UI? Or does part of the interface need to be written into the Panorama plugin? Would the entire source need to be compiled into the plugin? Does the answer depend on how seamless I want the integration to be?


Ok, I think that's enough for now. I'm still compiling, though I think QT is done. Of course I'm having to pull in KDE updates as well since KDE is f'd up.

To go off on an extreme tangent: so much of my life seems to end of being wasted on kde libraries just because I like to use a few applications that happen to be way too dependent on kde. In fact, I think it's just okular and gwenview. I usually use feh anyway, so gwenview's just there because what's a few more KB/MB on top of the monstrosity that is kdelibs. Someone should make a terminal-based pdf viewer (with plain text rendering) so I can ditch this mess :)

So here's the plan. I'm going to try writing a simple UI sometime in the next few weeks. It obviously won't do any of the cool stuff I listed above, but I need to start somewhere I guess. I hope it's as easy as it's claimed to be! Then who knows what might happen from there.
 
jeffrey said:
I've been watching and trying Panorama for a while now, waiting for the "perfect" UI to appear out of nowhere to make my Pandora even more awesome. Alas, this hasn't happened yet, so now I'm tinkering with the idea of making said "perfect" UI.
Awesome :). I'd love UI contibutions. I've been working on another project for a while now (wars-gamenode. I think I haven't even mentioned it here, maybe I should), so I've mostly been doing bugfixes and stuff for panorama. I do plan to get back to adding features when the other project reaches a good point.

jeffrey said:
- Based roughly on the "Colors" theme. I recall reading that this isn't actually a native Panorama theme, but rather from P-something or other. So perhaps will need to code from scratch.
- Overall visual space usage needs optimization. Smaller icons. Remove or make the clock much smaller.
- Much more visually minimalistic than Colors. Solid black background. Solid lines with solid colors. Terminal-like. Maybe like Okuda theme for N900 (See http://maemo.org/downloads/product/Maemo5/hildon-theme-okuda/). Use Terminus font (note to readers: best font ever made).
- Main bar at top should have less height but still be finger friendly. If more icons used that can be displayed at once, then it scrolls with wrapping. Like one of the reels on a slot machine, but sideways. Lots of ideas here, so new topic.
Yes, the "Colors" theme uses a compatibility layer theme that enables panorama to show Pmenu themes. Most of the changes you mention here would be trivial to change to a normal theme, but with "Colors" it might be a bit harder. I suggest starting from scratch.

jeffrey said:
- Categories can simply be different application categories ala Minimenu. But like Colors theme, kind of, should go beyond that. A Media category, for example. Could have different category plugins, like a linux terminal, for example, that takes up the space below the menu when the category is selected. Ncmpcpp would be a good candidate for a Media Player category. Anything with low memory usage (and, even better, a curses interface matching UI theme) would be a good candidate for a category plugin.
- For application categories, my personal preference would be like Colors theme--Emulators, Games (perhaps with type submenu), and Other. Other people will have their own preferences of course.
Check "Tabbed". It uses regular expressions to implement composite categories. The plugins you mention are indeed possible, but you'll need to do
QML plugins for those. Check panorama-plugins directory and Qt documentation (especially the pie chart example) for reference. Might not be easy or quick to implement, but certainly possible. Some stuff like a web browser is easier to add, since standard QML plungins already have a WebKit-based WebView.

jeffrey said:
- Since I'm probably already going way beyond my own skills and time, I'll also throw out the idea of--you guessed it--a Rom category for exploring video game roms and launching appropriate emulators and whatnot.
This is another place for a QML plugin. It should probably be structured like milky-plugin or applications-plugin, providing the UI with a data model of the available ROMs and a launching service.

jeffrey said:
- Panorama needs ability to operate as main UI like Minimenu, I understand this is planned/being worked on.
It's a goal, yes. Basically it shouldn't be difficult to just copy panorama to NAND and add it to /etc/pandora/conf/ui.conf (IIRC), so it can be selected in the pandora's UI changer application. Currently I haven't done this because a) the Qt version on current firmware images is 4.6, which is too old. Qt 4.7 would need to be installed to NAND also, and B) I don't consider any Panorama UI so far being ready to actually be the only UI used. Most of them are "just" launchers. I'd like to add a bit more integration with the underlying system (stuff like shutting down).

jeffrey said:
- Some kind of multitasking ability beyond that of Minimenu would be nice if feasible. Best case scenario would be like iPad in some sense. I don't know technically how it works, but I imagine the ability to switch between applications and the UI via a usual alt-tab-like popup (that's not the iPad part). But it would be nice if there's a way to do this without impacting performance of foreground processes. Is there a way to temporarily end a process but write its state to the SD Card? Thus, when switching away from an application, it would no longer use resources, but switching back would bring it back as if it was never ended (perhaps with a short delay from having to bring it back into memory [which I think would be totally acceptable]). This could yield all the performance benefits of Minimenu without losing multitasking.
I've read of such things, like cryopid, but AFAIK they're mostly experimental in graphical applications. It would be possible to just pause the process like the low power mode does, but that would still take up the RAM. No easy answers here.

jeffrey said:
I guess the question starts as: how much needs to actually be written into the plugin and how much can just be a wrapper to an outside application? Take the ncmpcpp main menu item for example. Could this simply be accomplished by telling Panorama that when the Media Player category is selected to show the ncmpcpp process in the appropriate area of the UI? Or does part of the interface need to be written into the Panorama plugin? Would the entire source need to be compiled into the plugin? Does the answer depend on how seamless I want the integration to be?
I have to admit, this is a little out of my comfort zone :). You'll need to consult XLib documentation for that. If you do create a QML plugin that can render an X application to a QML element while keeping it responsive to input I think I'm not going to be the only one saying "gimme gimme gimme!" :D

jeffrey said:
So here's the plan. I'm going to try writing a simple UI sometime in the next few weeks. It obviously won't do any of the cool stuff I listed above, but I need to start somewhere I guess. I hope it's as easy as it's claimed to be! Then who knows what might happen from there.
Making UI's with the already implemented features is easy. QML is a very simple language and easy to learn. Adding features like rom browsing/launching (kinda easy, but a lot of work to do properly) or embedded X applications (my guess? Hard.) is another story.
 
Last edited by a moderator:
Hi,

I have a small question about Milky Test UI: is it suposed to actually work, or is it just a proof of concept ? Because when I select "installed" nothing shows up, I can browse the apps on the Repo but I can't install them...Is it the expected behaviour, or is it a bug ?

Bye, and thanks for your hard work on Panorama :)

Magic Sam
 
It is supposed to work. Are you using the latest version? Get the latest PND and remove the "interfaces" directory in your panorama appdata to make sure you get the new interfaces.
 
I can't code it myself, but what about this as an emulatorlauncher?
emuui.jpg

This is just a concept! But I could provide a real skin too.
 
@ B-ZaR: I have deleted panorama.pnd from /pandora/apps and its appdata folder too, redownloaded the latest PND from the Repo, launched it a first time to recreate an appdata folder, modified settings.conf to use MilkyTest as UI, relaunched panorama...still no luck: I can browse the apps on the Repo, but those already installed won't show up, and I still can't install from that UI :(

What am I doing wrong ? (I'm using HF6b4, if it helps)

Bye and thanks, Magic Sam
 
Hmm. It should work. Do you see your sd cards in the bottom right corner? If you do, try switching between them and PM me the PND output file from /tmp (named something like pnd_run_panorama.out or something like that) if it still doesn't work.
 
B-ZaR: I haven't started coding anything yet, but I really appreciate the comments. I'll let you know when I get somewhere.

mcobit: I assume that's directed toward me (or, I suppose, anyone who's willing to do it). It would be a long way away for me at least, but I think that concept is worthy of implementation.
 
Back
Top