Minimal Kiosk Browser (kweb) Changelog
Version 1.6.9
This is the first Raspbian Jessie release. It will not work any more on Wheezy. It also fixes some crashs that could happen if you used version 1.6.8 in Jessie.
kweb now uses the new webkitgkt 2.4.8 engine, kweb3 the 2.4.1 webkit3 engine provided by the Foundation with GPU support for video and JPEG decoding. Both can be run with the same settings.
It's not possible to use the built-in update method from earlier versions. Version 1.6.9 has to be installed manually. For future Jessie versions you can use the update funktion again.
Changes in kweb and kweb3
The options to set the cache size have been removed and the options "Q" and 'R have now a new meaning and also the "F" option:
"F": enable experimental options: webaudio, media-stream und media-source. I'm not sure, if they really work. The engine developers consider these options as experimental and "work in progress".
"Q": enable smooth scrolling. This is not HW accelerated and may be heavy on the CPU.
"R" Never open a new window in kiosk mode. This also prevents the "." keyboard shortcut from working. Links that request a new window simply don't work. No effect when you don't start the browser in kiosk mode.
Support for webgl and accelerated compositing has been disabled because it causes crashes of the webkit1 engine and doesn't work with the current webkit3 engine anyway.
Changes in omxplayerGUI
Improved handling of m3u and pls playlist dowloads, which now also should work from cryptic URLs, if they send the correct mimetype.
Avoid the creation of temporary files for playlist downloads and in the html5 video extractor.
Changes in the default settings
In kwebhelper_settings.py and also in the default and nogui templates the youtube_dl_options have been preset to "-f best". This avoids getting separate streams for video and audio, which is now the default in youtube-dl.
Known Issues
There's some strange effect, when you use the menu buttons in omxplayerGUI: if the menus pop downwards, they behave as before. If they pop upwards into the player window, you must keep the mouse button pressed, move to the desired option and then release the mouse button. I consider this a bug in the current TKinter implementation and cannot do anything about it at the moment.
Version 1.6.8
Maintenance update fixes a bug in package creation.
Last Raspbian Wheezy release!
Version 1.6.7
The most important changes regard the handling of new windows and the support of multiple processor cores on the RPi 2.
kweb and kweb3
Now each new window uses its own webkitsettings object. This means that some settings are now local to that window.
The most important result is that enabling/disabling Javascript or the zoom method (full zoom or text zoom only) in one window won't change it in any other window. And it's also possible to use different user-agents or spellchecking languanges in different windows. When a new window is opened, it inherits its settings from the window, from which it was opened.
It's now also possible, to open a new window in a new browser instance. The webkit engine doesn't use multiple cores and so a long loading web page may block all other pages. Opening a new page in a new browser instance will need more memory, but the new browser window will use another processor core (on the RPi 2). Of course, this should be used sparingly, but it may help, if you want to open multiple websites at the same time.
If you click on a link, which requests to open a new window while holding the SHIFT key pressed, the new page will be opened in a new browser instance. It will use the same settings which were used when starting the original browser. (You can create bookmarks that open in a new window by using the "#!target=blank" option in the bookmarks text file.)
Unfortunately this is not possible when opening a page in a new window from the right click menu (the webkit engine never sends the signal I need in this case). Therefore I have implemented a workaround: pressing ALT+"." (new keyboard shortcut) will close the current window (if it's not the only one) and open it again in a new browser instance (if only one window is open, it won't be closed, but a new instance will be created nevertheless).
In either case opening a web page in a new browser instance won't take more than a second.
kweb3
Hardware accelerated scrolling is now completely disabled. It simply caused to many crashes. The "F" option has currently no meaning in kweb3.
Changes in omxplayerGUI
A small bug fix in dbuscontrolm.sh has now made it possible to use a more refined volume control in omxplayerGUI. The old method will still be used when a video runs in full screen or refresh mode (using the keyboard commands '+' and '-') and give visual feedback via the OSD. In window mode both the audio and video player will directly set the new volume using dbus commands without any OSD from omxplayer.
Version 1.6.6
Withdrawn because of frequent kweb3 crashes.
Version 1.6.5
This maintenance update provides a few small changes and bug fixes:
kweb(3): It is now possible to create kiosk applications that never open a second browser window: start in kiosk mode and exclude "k" from the list of available keyboard commands. Links that ask for a new window simply don't work and also trying to open a new window from the right click popup menu is blocked. In all other cases a new window will be opened with controls enabled and in normal window mode (no fullscreen).
The meaning of the "N" options has slightly changed: it now prevents the browser from going full screen in kiosk mode (kiosk running within a window instead).
kweb3: auto-start playing videos is now allowed by default and can be switched off with the "O" option (new meaning!).
Bug fixes and code optimizations:
A small fix in kwebhelper.py allows calling omxplayer directly from a command link without blocking.
Better handling of full screen toggling.
Default Cache Model is now set correctly.
Global webkit settings have been moved to a separate function (more efficient).
Version 1.6.4
This update provides a few changes to omxplayerGUI.
Response to moving or resizing the video window has been made snappier.
When you click the "Mode:" or "Lines:" option menu, video display is set to half transparent for about two seconds. So the menus will remain visible even if they pop upwards into the video area.
Resolution of the seek bar is now much finer: 3 seconds instead of 30.
Two more keyboard shortcuts have ben added.
By default video windows are now started in maximized mode.
Important note: You need the latest version of omxplayer from http://omxplayer.sconde.net/ for everything to work correctly. Latest versions also fixed the small jumps inside a video when resizing or moving the video window and live TV streams don't stop any more when you move,resize or unhide the video window.
Version 1.6.3
This update provides a few changes to kweb3 and the :command editor (kwebhelper_set.py)
Changes in kweb3
In earlier versions I had to disable some features of the new webkit3 engine to prevent bugs by setting some environment variables. As the latest updates of epiphany/webkit3 have fixed most of these bugs, these restrictions are not needed any more. In fact, kweb3 does run now with exactly the same settings as epiphany with one exception: fast scrolling is disabled by default (I prefer the WYSIWYG scrolling mode and don't like the flashing checkered background). But you can enable it with the experimental (F) option, if you like it.
The chapter "Configuring Kweb3 With Environment Variables" of the kweb manual is obsolete now (it also contained some errors, as I've recently learned).
Known bugs: kweb3 (and epiphany) may crash, if you move the slider in web videos to jump forward or backward.
Changes to the :command editor
The third kind of command links introduced in version 1.6.2 is now also supported by the editor. If you include a line starting with
name=#....
a button or link will be created, that inserts the text following the '#' into the URL entry line and executes it (even if it is hidden in kiosk mode). With this option all URL line command types can be executed (e. g. web search, setting the spelling language or the user agent etc.).
The default application page has been extended and contains some useful examples (a number of user agent buttons, for example).
But the old application page will not be overwritten when you update kweb (in case you have modified it). To get the new application page, run the following commands after updating kweb:
sudo rm /usr/local/share/kweb/kweb_about_a.txt
sudo kwebhelper_set.py
If you have extended your application page, you should copy your changes first and add them again afterwards.
Version 1.6.2
This update adds two new options, a third kind of command link and fixes a small bug.
New options, available from the URL entry line:
&URI
where URI is the full URI to a CSS file (e.g. file:///home/pi/my.css), will set this CSS file as user style. This will not override styles settings of a web page
(no style injection).
To disable it again, use & without any argument.
$TEXT
will replace the user-agent by TEXT. You can use this to simulate another browser (and even a different computer or OS), if a web page rejects you because
you are using the "wrong browser", or to access the mobile version of a website. For example, the following entry
$Mozilla/5.0 (Android; Tablet; rv:34.0) Gecko/34.0 Firefox/34.0
will make kweb(3) look like the mobile version of Firefox.
To reset your browser to its default user-agent again, enter "$" without any argument.
New command link type
To make these settings (and also others like setting the spell checking language(s)) available as commands, kweb now supports a third kind of command link:
file:///homage.html?txt=SOMETEXT
as href argument of a link or as src argument of an iframe, will enter SOMETEXT into the URL entry line and execute it. For example, the following
file:///homage.html?txt=$Mozilla/5.0%20(Android;%20Tablet;%20rv:34.0)%20Gecko/34.0%20Firefox/34.0
will set the user-agent to mobile Android Firefox. All "%20" values are automatically converted to spaces.
As with all command links this will only work from local html files and requires the command execution (right most icon) to be enabled.
Bug fix:
"rtp://" URLs are now really enabled and will be sent to omxplayerGUI.
Finally the (very old) man page has been updated.
Version 1.6.1
Bug fix release.
Fixed a problem with saving keyboard options from the browser configuration page.
Version 1.6
This is a major new release, which means, that both manuals have been revised to include all changes since version 1.5. The kweb manual includes a lot more configuration and application examples now.
Changes in kweb and kweb3
Added "Stop" (loading) button, keyboard shortcut ALT+s (redefined)
Icons rearranged, separator added between command and toggle buttons
Replaced "/" for page search with "=" (which includes a modification of keyboard shortcuts)
Better URL expansion in the URL entry field and from the command line:
Each URL that does not include "://" will be expanded. If it starts with a slash (full path), it will be extended by putting "file://" in front, otherwise "http://" will be used.
Better cooperation with lxappearance:
If option "S" (small icons) is not used, the icon size of kweb will depend on the settings in lxappearance.
In kweb3 this doesn't work, because lxappearance settings are not working correctly with GTK+3 applications since the latest dist-upgrade. Therefore double icon size will be used, if the "S" options is not set.
New function to save current web page including images, css etc. using wget with special options. Only available from the keyboard with ALT+c (redefined!)
When opening files whose names contain a question mark, it's replaced with %3F (wget creates such filenames when downloading web pages). Otherwise they would not be loaded.
User definable keyboard commands ALT+0 ... 9 are now enabled, if the folder "~/kwebcontrol" exists. The new manual contains two complete examples of the necessary HTML files (for starting a program or opening a web page).
In kweb3 auto start of media files has been blocked (not possible in webkit1)
Changes in omxplayerGUI
Support for new dbus function "Aspect" has been added. If you use a very recent omxplayer version, the "auto" mode of the "Mode:" menu will show a video with the correct aspect ratio, even if you started with another mode set.
New utilities
Two new utility scripts to install and update a faster running version of youtube-dl from github have been added:
ginstall-ytdl
will remove older versions of youtube-dl, install git (if not installed already) and clone the current version from github.
update-ytdl
updates the github version and restores fast mode again, if it has been lost due to changes on github.
Version 1.5.7
Installation method has changed again: now gdebi is used instead of dpkg. This will automatically install missing dependecies. If gdebi is not found, gdebi-core will be installed by the installation script debinstall.
The kiosk part has been completely rewritten. Formerly the user interface has not been created in kiosk mode at all, now it's always created, but hidden when the browser starts in kiosk mode. This has a lot of advantages:
1) You can always switch between kiosk mode (hide user interface) and full mode (show user interface) with the keyboard shortcut ALT+k (the meaning has changed!)
2) kweb(3) can now be completely controlled from xdotool, including pointing it to a new URL. This works only with matchbox-window-manager; OpenBox does not work correctly with xdotool's type command. I'll supply some examples on kweb's news page.
3) The code has become more compact (a lot of checks for kiosk mode are not needed any more).
There's a small change within omxplayerGUI: when it finishes, it checks for a file ~/.omxplayergui.run and deletes it. This can be used to check, if a video has stopped playing in presentation applications (your script is responsible for creating this file).
Bug fixes:
An error in the preparekweb script has been fixed.
Errors in the Makefile of the source distribution package have been fixed.
Version 1.5.6
Only small changes, but now kweb is installed as a debian package. The new installation method also fixes missing dependencies on freshly installed Raspbian or NOOBs images. It check's if either kweb or Midori are installed on your system and if it doesn't find any one of them it will install a number of packages via apt-get first. Install the new version with:
./debinstall
(Don't call this with sudo!) This will also call a kwebprepare script afterwards, which is installed in /usr/local/bin.
The old installation scripts are still there, because they are needed for the automatic upgrade function, but they also use dpkg now.
Note that the .deb package file does not include all dependencies, but at least the most important ones. Nevertheless it should work out of the box on a standard Raspbian distribution. If you've stripped down your distribution it might not work any more (but it has always been that way).
To remove the package use "./remove" or "./removeall" (if you want to delete all settings and data files). Both use "dpkg -r" now.
The source code is available in a separate download now. There's now only one Makefile any more that creates both keb and kweb3. But the binaries are already included. Install from the souce distribution with:
sudo make install
To fix missing dependencies on a fresh Raspbian image, run
./installdeps
Known problem: If you are using a framebuffer size that doesn't match your physical screen size, omxplayerGUI will not work correctly. I can't change that.
Other small changes:
kweb, kweb3 and omxplayerGUI appear now in the Debian menu system (important if you use other Desktops like Awesome or run Openbox as desktop).
omxplayerGUI now supports song titles in m3u playlist files (if they use EXTM3U format).
Version 1.5.5.1
Bug fix in omxplayerGUI, required after latest rpi-update
Version 1.5.5
Small fixes for kweb3, omxplayerGUI, and check.py
kweb3:
Javascript JIT (Just In Time compiler) is now enabled by default.
kweb3 can now be controlled by the same environment variables as epiphany, but uses different defaults:
WEBKIT_DISABLE_TBS=0
This enables fast scrolling, disabled in kweb3 (=1) because of problems with iframes.
WEBKIT_DISABLE_CAIRO_BUFFER_POOL=0
Disabled in kweb3 (=1) for smoother video playback
WEBKIT_DISABLE_DIRECT_PAINT=1
Makes video playback slower but could fix some video problems. Enabled (=0) in kweb3.
SC_useJIT=0
disables the Javascript JIT compiler. Now enabled (=1) by default in kweb3
The following options are enabled in kweb3 (=1) if you set the "F" (experimental) option in browser configuration. Setting them to "0" will disable them independantly from the option:
ENABLE_IMAGE_DECODING_WITH_OMX=1
means that OMX (i.e. the HW) is used for image decoding.
WEBKIT_OMX_IMAGE_RESIZE=1
means that resizing jpegs is done using the HW.
These functions still contain bugs and cause crashes.
omxplayerGUI
Better support for modified dbus interface of newest omxplayer releases.
HTML5 video extractor (using the play button) now also works, if youtube-dl is missing.
check.py, used by the prepare script:
On newest Raspbian, evince must be installed instead of evince-gtk
Alternate methods for installing youtube-dl, because the current Raspbian version is broken.
Version 1.5.4.1
This is an emergency update to fix omxplayerGUI to work with newest omxplayer versions (the dbus interface call has been changed in version omxplayer_0.3.5~git20140914)
If you reinstall an older version of omxplayer again, run:
sudo rm /tmp/*
from the commande line, before using this version. Otherwise omxplayerGUI will assume that you have the latest version installed and not run correctly.
Version 1.5.4
This update fixes a few problems of kweb3 or Minimal Kiosk Browser (GTK-3), which uses the new accelerated webkit engine introduced with the publication of the new "Web" = Epiphany-Browser by the foundation.
Bug fixes and other changes:
Avoid crashing when going to another web page, while a video is still playing within the browser.
Scrolling within iframes is working again.
Smoother, but slower scrolling without the flashing checkerboard
Slightly smoother video playback within the browser window
Javascript JIT is disabled by default
The "Experimental" (F) option has now a different meaning for kweb3 than for kweb. If it is set, the following features are enabled:
Javascript JIT (Just in time compiler)
Hardware decoding and hardware resizing of images. These are not considered completely stable and are therefore disabled in epiphany at the moment. Use these features on your own risk. They may lead to crashes or freezing your RPi (but you'll get rid of the slow loading of images in stripes).
I want to thank Marco Barisione for his support in adding tweaks and fixes.
Version 1.5.3
This update installs kweb3 as a second desktop application named "Minimal Kiosk Browser (GTK 3)". This is the version that uses the new, accelerated webkit library, which includes HW accelerated video inside the browser and some more enhancements. This new library has definitely still a lot of bugs and may even lead to crashes. I still consider this experimental.
There's one more difference compared to kweb: The "F" option (experimental settings) is enabled by default. Setting this option therefore has no effect.
Version 1.5.2
This is an emergency update! The decision of the foundation to leave Wheezy compatibility and upgrade a lot of packages has broken quite a number of things. I've decided to create a new version of Minimal Kiosk Browser that reverts back to gtk+2 and libwebkitgtk1. The icons in the toolbar look a bit different and the file select box when using the "Open" command isn't as nice as before, but kweb is fast again, supports 32bit true color mode and doesn't freeze and crash any more.
I've added an experimental version version that uses the new libraries. It's named kweb3 and can only be called from the command line. Use it on your own risk and don't complain about it's bugs. These are not bugs of kweb, but of the new libraries it has to use. Maybe it works better, if you migrate to Jessie.
Source code for both versions is part of the download package and also a "makeall" script that creates both versions (kweb and kweb3).
Version 1.5.1
This is a small maintenance update. That means, that the manuals have not been changed. New options or changes are only documented in this changelog.
1) Changes in kweb:
Support for spell checking is now enabled for all kinds of web text input. By default, your current system language will be used. You can change that at run time by entering a command like this in the URL entry field:
!en_US
(to switch to US English, for example). Multiple language support is also possible like this:
!en_US,de_DE
You must have the matching aspell/myspell/hunspell dictionaries installed; otherwise it won't work. Language codes are either two or three letter codes, optionally followed by an underscore and a country code (en, en_GB, en_US, de_LU etc.). Install enchant-lsmod and run:
enchant-lsmod -list-dicts
to get a list of available spell checking dictionaries on your system and their language codes.
There's also a matching new keyboard command
ALT+ !
which will empty the entry field, put a '!' in front and activate the field for further input.
New keyboard commands in Command mode
If "C" (= command execution option) is enabled when starting the browser (only possible from a script), ten new keyboard controls
(ALT+) 0 to (ALT+) 9
are automatically added. When they are called, special html files are loaded:
~/kwebcontrol/kweb0.html (and so on)
This way kweb can be controlled remotely (in a limited way) by using xdotool. It can also be used to start programs using keyboard shortcuts when using kweb as desktop replacement.
A news page (which comes from the internet) has beem added to the menu page. I'll use it for additional information and to offer some application examples for download.
2) Changes in omxplayerGUI:
The option
omxplayer_in_terminal_for_video (when set to False)
can now also be used for web media (HTML5 and video supported by youtube-dl). This will allow embedded applications to run extracted web video in certain areas of the screen by using omxplayer's --win option in youtube_omxoptions(simulating web video inside a browser window).
When playing video the keyboard commands "," and "." can now be used for large jumps backwards and forward (in addition to PageUp and PageDown).
Version 1.5
1) kweb
Support for new configuration options (cache control and more)
Download mode has been changed again to switch between using wget or
the download manager uGet.
Added rtsp, rtmp and mmsh URL types (handled as media streams)
Added URLs of type file://~/, which will be expanded to the users home
directory
Added browser (keyboard short cuts) commands to the command link
execution interface
Command execution has now to be explicitely enabled by the user with a new toggle button.
By default the command execution is always disabled; enabling it at start is only possible with command line argument "C"
Added the evaluation of ":commands" from the text entry field
Added more keyboard commands (and changed a few)
Keyboards commands are now enabled by default without setting them on
the command line
Added support for a browser configuration file, which will be used when
started with no command line arguments
Enhanced security for the command link interface
Helper support is now split between kwebhelper and omxplayerGUI.
Cleaned up the code a lot, added white space for better readability
2) kwebhelper.py
All media support has been removed (to a separate application)
In the PDF section support for evince has been added, which is now the
preferred PDF reader
In the download section support for uGet has been added.
The comand interface has now no Python process overhead any more when
running other applications
Added internal commands for browser configuration management
Added program update from the internet
3) omxplayergui.py
This is a new application, which contains all the media handling
formerly done by kwebhelper
It adds a GUI for playing video
It is also installed and can be used as a standalone media player
It has its own manual
4) kwebhelper_settings.py
Reorganized
A few settings changes, a lot added for the video part of omxplayerGUI
The comment lines have been modified, so they can be used for creating
a settings web page.
5) ḱwebhelper_set.py
This is a new application to manage settings files and user editable
content
Runs as root, as it has to modify files in the protected part of the
file system
6) dbuscontrolm.sh
A shell script to send dbus commands to different instances of omxplayer
Extended and modified version of a script from omxplayer github
7) Documentation
Split into 3 documents now:
This changelog html page
Kweb Manual (a complete rewrite)
OmxplayerGUI manual
8) and more ...
New prepare, install and remove files
A number of static web pages for system management
ktop file for easy use from the command line and as desktop replacement
Version 1.4
1) New toggle button in the task bar:
Use Omxplayer
By default, this is enabled. If you disable it, kweb will try to play
audio and video files and streams directly within the browser, using
the gstreamer-library that libwebkit supports. Currently this will only
work with some audio formats. Future webkit libraries, using
gstreamer-1.0 with OpenMax support, may also play video with HW
acceleration.
2) New audio player GUI for playing
audio files and playlists containing only audio files with omxplayer:
"omxaudioplayer" has 6 buttons (play/pause, stop, rewind (about 10sec),
forward (about 10 seconds), previous and next song), a volume slider,
and a scrollable playlist window (for larger playlists).
Keyboard controls:
Space,Return or Enter to play/pause, ESC or q to stop, ← = rewind, → =
forward, ↑ = previous, ↓ = next, + and - for volume control.
3) New (optional) keyboard commands
(usually with ALT+):
q = stop any running omxplayer instance
x = enable omxplayer for audio and video
y = disable omxplayer for audio and video
4) New or modified command line
options
F = Disable plugins and other exotic stuff (now enabled by default,
CHANGED!)
Y = Disable the use of omxplayer upon start (by default enabled)
x,y,q for new keyboard controls (see above)
5) New or modified options in
kwebhelper(_settings).py
The option "playaudioinbackground" is gone. It has been replaced by a
few new options.
"omxoptions" will now be used only for playing video files or streams.
omxplayer_in_terminal_for_audio = True
if set to "False", audio can be played completely in background,
without starting a terminal or a player GUI, depending on other
settings (see below). To play audio on a web page automatically,
include an (invisible) iframe, whose "src" points to an audio file or
playlist.
omxplayer_in_terminal_for_video = True
if set to "False", video can be played completely in background,
without starting a terminal first. You can then also use omxplayer's
"-win" to simulate video playing inside the browser window. For full
screen video you should use the "-b" option. Keyboard control of
omxplayer is not possible then, but omxplayer can be stopped with ALT+q
(if enabled on the command line). To automatically play video on a web
page, include an (invisible) iframe, whose "src" points to a video file
or playlist.
try_stream_as_audio = False
Normally stream links that don't have a file extension are handled as
video by kweb. If you set this to "True", they will be handled as audio
streams and use the audio settings. If the stream is a video stream
will still be played as such, but using audio settings and maybe even
the omxaudioplayer GUI. I added this option, because quite a number of
m3u(8) files lists from web radio servers contain such streams. You
should only set this to "True", if you want to play such audio streams
inside a terminal or omxaudioplayer.
videoextensions
This is a list of video file type extensions. It's only used for
counter checking, if you set "try_stream_as_audio" to "True"
useAudioplayer = True
If this is "True" (default), audio files and playlists containing only
audio files will be played inside the new "omxaudioplayer" GUI. The
setting "omxplayer_in_terminal_for_audio" will have no effect in this
case. If this is set to "False", audio will be played inside a terminal
or completely in background, if "omxplayer_in_terminal_for_audio"
is set to "False".
One more thing: if "useVLC" is set to "True", all other audio options
don't matter; VLC will be used to play audio (playlists) in this case.
omxaudiooptions = []
This list of omxplayer options (empty by default) will be used for all
kinds of audio playback (except when using VLC). To use "pass through",
for example, set it to ['-p'].
defaultaudiovolume = 0
volume setting when starting omxaudioplayer ranging from -20 to 4 ( -60
to +12 db)
autoplay = True
autofinish = True
start playing and close after playing last song automatically (if
"True", set to "False" to disable)
fontname= 'SansSerif'
Font to be used for playlist and interface
fontheight = 12
font size, value between 10 and 22, will also determine the size of the
GUI window
maxlines = 8
number of entries displayed in playlist window of omxaudioplayer at the
same time; value between 5 and 25
lwidth = 40
Minimal width of playlist entries in characters (usually much more are
displayed); value between 40 and 80.
youtube_omxoptions = []
These is also a list of omxplayer options, to be used for all kinds of
"web video", to be played when you click the "Play" buttons in the
toolbar; this includes HTML5 video tags inside a web page and all
websites using flash player, which are supported by youtube-dl. If you
want to use the same options as with "normal" video (files or stream
links) you can set it to:
youtube_omxoptions = omxoptions
Version 1.3
1) Ported to GTK+3
kweb has been ported from GTK+2 to GTK+3 now. You won't notice a big
difference (from the outside); some icons had to be exchanged and the
file select box for the new "Open file" command looks and works much
better now. But in the future that will help with things like Wayland
support (the newest versions of GTK+3 and libwebkit have at least some
support for Wayland built in).
2) New function and toolbar icon: "Open file"
Will open a file select box and if you have selected a file, it will be
opened, if possible:
HTML, Text, JPEG, PNG, GIF files will be opened and displayed inside
the browser
Audo and video files and m3u or pls playlists will be opened and run
with omxplayer
PDF files will be opened with either xpdf or mupdf
If the "X" flag is set in a command line options string, executable
files will be executed
Keyboard command: (ALT+) o
3) New toggle button in the toolbar to switch between full zoom mode or
text zoom only, which is now the default. The background of this new
setting is the fact, that webkit gets extremely slow (by a factor of
about 10), if full zoom mode is enabled, zoom is not set to 100% and
the web page contains color runs.
There is another side effect (on purpose): if you open a page in a new
window, it is opened with 100% zoom, if full zoom is enabled, but in
the current zoom setting of the old window, when it's disabled. This
should prevent your system from freezing for a long time (often 10 to
20 seconds) when opening new browser windows.
Keyboard commands to switch: (ALT+) "g" (full zoom) or "t" (text zoom
only).
4) Two different download methods to choose from with a new toolbar
icon
a) internal download method of webkit (default). If you start a
download, a message like "downloading: file name" will appear in the
URL entry field. This method supports all kinds of cookies including
session cookies. Files are always downloaded to the "Downloads" folder
inside the user's home directory.
b) external download using wget (icon activated). Cookies are
supported, but no session cookies. The download can be run in a
terminal window to control its progress (depending on a setting in
kwebhelper_settings.py). Files are downloaded to the "Downloads" folder
inside the "homedir" defined in kewebhelper_settings (default is also
the Downloads folder inside the user's home directory).
Keyboard commands to switch: (ALT+) "w" (wget) or "i" (internal).
Downloads can only be started from the right click menu!
5) The toolbar icons have been arranged in a new order: the "Play"
button is placed left of the zoom buttons, so that all zoom functions
(4 now) are grouped together.
6) startpage.com is now the default search engine, if starting a search
from the URL entry line (with a "?" in front). startpage.com uses
google search but prevents google from getting any information about
you. I wanted to do this all along, but the damned colour run on the
startpage.com website used to slow it down terribly. For this reason,
full zoom is deactivated automatically, when you start a search and
zoom is not set to 100%. Searching on Google directly instead can be
enabled by adding "G" to a command line options string.
7) Support of embedded videos (HTML5 or flash players on all websites
supported by youtube-dl) works without any fifo buffer now.
Youtube-dl is still needed to extract the URLs, but omxplayer now plays
the videos directly from those URLs. This approach works with some
websites which didn't work before and it avoids buffering on the SD
card. Youtube videos (only) seem to start later, but this is an
illusion because omxplayer is started at a later time (less time to
wait on a dark screen).
8) Support for PLS playlists (radio stations mostly) has been added.
9) Not only playlists containing only audio files but also single audio
files can be played "in background" now (this is the default setting in
kwebhelper), which means that omxplayer does not take over the screen.
A terminal window is opened in which you can control omxplayer with
keyboard commands, but you can put that in the background, of course,
and listen to some music while you are doing something else. And
optionally VLC can be used for that.
10) Javascript, cookies, full zoom and external downloads using wget
are now disabled by default. They can be enabled at run time with the
toggle buttons in the toolbar or with keyboard commands. They can also
be enabled by command line flags in the options string.
11) The options string as first argument on the command line (starting
with a "-") now uses capital letters for global options and lower case
characters to enable keyboard commands and numbers for default window
size (new!). As there have been lots of changes, check chapter 6 of
this manual for details. All kiosk files you may have been using with
earlier versions, have to be modified!
12) Extended command interface
Until now, commands could be executed from the browser either from the
URL entry line putting a "#" in front or with special command links
using the form:
href="file///homepage.html?cmd=cmdline", where is "cmdline" is the
command line to be executed. Spaces have to be escaped with "%20". Some
things were not possible with such links (URLs or file paths containing
spaces as arguments, for example). And user selectable options were
also not possible.
Now kwebhelper.py supports commands coming from form elements inside a
HTML file, if they follow certain rules.
The form must start with:
<form accept-charset="utf-8"
enctype="application/x-www-form-urlencoded" method="get"
action="file:///homepage.html" name="anyname">
the first form element must be named "cmd" and begin with "formdata":
<input name="cmd" value="formdata" type="hidden">
Form elements whose names start with "quoted" result in quoted
arguments
Form elements whose names start with "dquoted" result in quoted
arguments using double quotes
Submit buttons should not have a name.
The default_homepage.html file contains a simple example, which plays
video in a small window area.
Two new options for command execution have been added in kwebhelper.py
(see above). Now most GUI applications are detected automatically and
are not run from a terminal without adding them to the direct_commands
list. And optionally a script may be generated to execute a command to
reduce the memory overhead of the Python interpreter for each
application started from kweb (disabled by default, to avoid too many
disk accesses).
13) The settings part of kwebhelper.py and kwebhelper_settings.py have
been reorganized into subsections and a few new options have been added
(and a few others removed). Use
sudo idle /usr/local/bin/kwebhelper_settings.py
to edit the settings (at run time)
All options are commented, quite a number can be set by commenting or
commenting out the provided examples. Here is a list of the new options
(for more details see chapter 8 of this manual):
AUDIO VIDEO OPTIONS
# special options for watching live TV streams (requires omxplayer 0.32
or later)
omx_livetv_options = ['--live']
# add the start of your live TV stream links to this list to enable
live TV options
live_TV = []
# like this:
#live_TV = ['http://192.168.0.5:9082']
# set this to False, if you want to allow more than one omxplayer
instance
kill_omxplayer = True
COMMAND EXECUTION OPTIONS
Some terminal programs seem to have problems with double quoted
arguments following the -e (execute) option. Here you have the choice
to run all commands coming from formdata without opening a terminal
first.
formdata_in_terminal = False
#formdata_in_terminal = True
DOWNLOAD OPTIONS
If you use the external download method with wget, you may want to see
what is happening, especially with large downloads:
show_download_in_terminal = True
#show_download_in_terminal = False
ONLINE VIDEO OPTIONS
# Choose, if HTML5 URL extraction is tried first (it's faster) and
youtube-dl extraction afterwards or vice versa
html5_first = True
#html5_first = False
#additional youtube-dl options, e. g. selecting a resolution or file
format
youtube_dl_options = []
#youtube_dl_options = ['-f','37/22/18']
14) A few small bugs and side effects have been fixed. The state of the
toggle buttons is now set if you call the respective keyboard commands
and they are also synchronized between different browser windows. And
the annoying text messages in the terminal window when starting (web)
videos has been made invisible.
Version 1.2
I've included an extractor for videos embedded into HTML5 tags. Usually
libwebkit will try to play such videos, but far too slow. Clicking on
the "Play" icon will now extract the video source links and play the
video(s) full screen with omxplayer.
I've also enabled the"spacial navigation" feature of webkit, which
provides fast navigation through form elements or links with the arrow
keys. In embedded applications this can be used to control the browser
content with an ir remote control (which has to issue key strokes). To
make that visible on links, the focus style has to be set.
There are four new command line options:
'x' - use argument 2 as your homepage (bound to the "home" button).
This can be a file:// or http:// link. If you create a script (or
kiosk) file, that contains
kweb -x http://myhomepagelink
the browser will open that page when it starts and always return to it,
when you click the "home" button. The command links won't work, if you
connect to a server, because they can only be used from file links (but
see below).
'z' - disable private browsing (which is by default enabled in Minimal
Kiosk Browser)
The last two options are very special ones, only to be used in kiosk
mode:
'n' - kweb can be used without a window manager; screen size is hard
coded to 1920x1080 then. Not all options work as expected (keyboard
control of omxplayer, for example), so this is only useful for special
applications.
'l' - use the command links from a server running on localhost (only
useful in combination with the x option). For example
kweb -k...xl http://localhost:8080/
will use this link as homepage and support command links of the form
'<a href=http://localhost:8080/homepage.html?cmd=top" (to run the
top command inside a terminal). This is risky from a security aspect
and is only recommended for very special embedded applications.
Version 1.1
Two more toolbar icons: “Reload page” and “Enable/Disable Cookies”
Tooltips on all toolbar icons
Icon labels are now visible when started from Raspbian desktop
Different handling of videos embedded in web pages; it now supports all
websites that can be accessed by youtube-dl (and not only youtube); it
does not reload the page any more.
Command line now supports up to two arguments (options string and URL)
More options and keyboard commands:
interface options for the toolbar (icons and icon size, labels)
two different characters for switching Javascript or Cookie support on
and off, instead of toggling them.
Support for calling programs (defined in kwebhelper_settings) as root
(sudo) without opening a terminal
Separate settings file for kwebhelper.py, that can be edited at runtime
(changing the settings does not require a new install any more)
Added homepagecreator.py script to create a homepage.html file with
example configuration text files (in separate compressed tools folder)
Readme file has been replaced by this manual
Version 1.0
Initial relase.