Feature #281

Default X.org interface should be administrative interface

Added by Hammel over 3 years ago. Updated over 3 years ago.

Status:ClosedStart date:02 Mar 2014
Priority:UrgentDue date:
Assignee:Hammel% Done:

100%

Category:04 - Root File System
Target version:0.9.0
Severity:02 - High

Description

The default X.org interface should be a general administrative interface. It should include:

1. Adding users
2. Setting up network configuration
2.1 Wifi
2.2 HostAP
3. Configuring new USB devices

This will be a complex problem because:
1. It requires a display manager for user logins
2. It currently can't run from the browser interface with Javascript because we don't have a native browser working yet (see RM #172)
3. It isn't clear what UI toolset should be used for this: js+web server, GTK+, nodejs, etc.

If I can't get the browser working it's possible I could get node.js with an X11 interface running. nodejs is supported in Buildroot 2013.11 but it's unclear how much of my existing Javascript from the web interface would have to be rewritten. Then again, the fastest way with little ramp-up is to just extend bui-network-config or create an environment where it's just one of the possible tools available.

mbdock.session - left side panel configuration (251 Bytes) Hammel, 12 Apr 2014 13:22

mbdock.session.2 - bottom side panel configuration (44 Bytes) Hammel, 12 Apr 2014 13:22

xinitrc - Startup applications (current config, but likely to change) (269 Bytes) Hammel, 12 Apr 2014 13:22

IconNetwork.png - Network Icon (6.35 KB) Hammel, 12 Apr 2014 13:22

IconUSB.png - USB configuration icon (5.5 KB) Hammel, 12 Apr 2014 13:22

IconUser.png - User configuration icon (5.67 KB) Hammel, 12 Apr 2014 13:22

59
60
61

Associated revisions

Revision 88ae9031
Added by Hammel over 3 years ago

RM #281: Fix cdtools script to properly match upstream repo for PMSUI package.

Revision f8df7b0b
Added by Hammel over 3 years ago

RM #281: Added mkfontdir, mkfontscale and xwd.

Revision 227fda35
Added by Hammel over 3 years ago

RM #281: Add font paths to xorg.conf.

Revision 993c90da
Added by Hammel over 3 years ago

RM #281: Add reference to gtkrc file, if one exists.

Revision 254007a1
Added by Hammel over 3 years ago

RM #281: Revert back to Blackbox as the default UI. The Pibox Media Server has its own opkg to set up its UI.

Revision 08ea836d
Added by Hammel over 3 years ago

RM #281: Fix preinst packaging.

Revision b8eb8f74
Added by Hammel over 3 years ago

RM #281: Switch to Nunito as the desired font for gtk apps.

Revision 5bf92c5a
Added by Hammel over 3 years ago

RM #281: Fix location of png icons.

Revision 566ad52e
Added by Hammel over 3 years ago

RM #281: Remove chown, which is not needed since the build sets the owner of files, and add mkfontdir for pibox fonts.

Revision 8d6b23fa
Added by Hammel over 3 years ago

RM #281: Add desktop setup script, called by S90UI.

Revision 7cdafe5d
Added by Hammel over 3 years ago

RM #281: Call desktop.sh if it exists.

Revision 1b834f21
Added by Hammel over 3 years ago

RM #281: Add mkfontdir to available font directories.

History

#1 Updated by Hammel over 3 years ago

  • Target version changed from 1.0 - Atreides to 0.9.0

Targeting for 0.9.0.

#2 Updated by Hammel over 3 years ago

  • Priority changed from Normal to Urgent
  • Severity changed from 03 - Medium to 02 - High

#3 Updated by Hammel over 3 years ago

I now have a configuration for Matchbox that is a good start, sans a nice theme.
  1. Left side panel for icon navigation (network configuration, users and USB)
  2. Bottom panel for a clock, right aligned (left aligned menu will go away).
  3. Icons for all navigation in a new opkg: piboxtheme (theme is TBD)
  4. xinitrc that launches bui-network-config

The left side navigation should launch its application and then kill the one that was running. This will reduce the load on the board and keep application display smoothly switching from one application to another. It might be useful to has a daemon handling the switching between applications, which would make it easier to create my own desktop paradigm.

Attached are the relevant files. Here are the icons I created for this configuration.

Network Icon
USB configuration icon
User configuration icon

#4 Updated by Hammel over 3 years ago

I've cleaned it up a bit and added a Cycle icon which will be used to restart X (needed sometimes to get keyboard input working) and the computer.

Some links for setting up GTK+ themes:

Also refer to the Matchbox issue (RM #306).

Place an existing theme under /root/.themes and try it, just to see what I get. Or try this. Or this. Or this.

#5 Updated by Hammel over 3 years ago

  • % Done changed from 20 to 30

Got GTK+ 2.0 themes working. All that's required is to point /root/.gtkrc to the theme's gtkrc file. If pixmaps can't be found then you add

pixmap_path "/path/to/themename/gtk/"

to the top of the file.

I also have to add the following to the S90UI init script

export GTK2_RC_FILES=/root/.gtkrc

Now I just need to decide on a gtk theme and put it into an opkg.

#6 Updated by Hammel over 3 years ago

I've found two gtk themes that I like:
  1. MurrinaMirev2-lime (from Mire V2)
  2. CarbonGold

The MurrinaMire theme is one single gtkrc file and serves as a useful starting point for creating my own theme (it even has green accents). I've already discovered how to increase the font size and how to integrate existing fonts on the system (like RPi Userland's Vera.ttf) that the X server doesn't pick up automatically.

The CarbonGold theme is far more artistic but might be overkill. I really just want a nice dark theme where the UI components stand out and are reasonably sized on up to a 20" monitor.

I have a working theme that I'm going to put into an opkg.

#7 Updated by Hammel over 3 years ago

  • % Done changed from 30 to 40

I've reverted the main tree to blackbox (PiBox Development Platform) and created an opkg for PiBox Media Server. Now I need to test both to make sure they work correctly. I'll have to start with a complete rebuild of the rootfs, then add the opkg.

After that is done I'll need to create UIs for managing users and USB devices. The latter will grab info from lsusb and then show which ones have drivers specified for them. The result will be an update to /etc/usbhandler.conf, or possibly a secondary file on the SD card that usbhandler.sh will also need to parse.

#8 Updated by Hammel over 3 years ago

  • % Done changed from 40 to 60
Tested a rebuilt rootfs with the pmsui opkg. Some things I noted.
  1. /etc/matchbox/mbdock.session is referencing icons in /root instead of /usr/share/themes/PiboxMediaServer/matchbox/
  2. S90UI needs to copy /etc/matchbox/mbdock.session* to /root/.matchbox on startup. This requires a test for a handler script in S90UI that will be run if found. The handler script will copy these files every time to prevent accidental muck up of the ones in /root/.matchbox.
  3. The opkg does chown on some files/dirs but this causes an error to be printed saying those don't exist (even though they do exist).
  4. The xinitrc is not being backed up by the opkg installation script.

Other than that, things seem in pretty good shape. The PiBox Dev Platform comes up in the default blackbox config and the opkg (after minor tweaks) takes it into the PMS config.

#9 Updated by Hammel over 3 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 60 to 100

All fixes to opkg and the dev platform are tested, checked in and pushed upstream.

This issue can be closed.

Also available in: Atom PDF