Commit graph

55 commits

Author SHA1 Message Date
Daniel Díaz 75b7197f4e Add configuration option for no input device.
As it has been discussed in the past [1], running Weston
without any input device at launch might be beneficial for
some use cases.

Certainly, it's best for the vast majority of users (and
the project) to require an input device to be present, as
to avoid frustration and hassle, but for those brave souls
that so prefer, this patch lets them run without any input
device at all.

This introduces a simple configuration in weston.ini:
  [core]
  require-input=true

True is the default, so no behavioral change is introduced.

[1] https://lists.freedesktop.org/archives/wayland-devel/2015-November/025193.html

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
2016-10-22 15:04:58 +01:00
Pekka Paalanen ca52b31d3f Remove Raspberry Pi backend and renderer
This patch completely removes the Raspberry Pi backend and the renderer.

The backend and the renderer were written to use the proprietary
DispmanX API available only on the Raspberry Pi, to demonstrate what the
tiny computer is capable of graphics wise. They were also used to
demonstrate how Wayland and Weston in particular could leverage hardware
compositing capabilities that are not OpenGL. The backend was first
added in e8de35c922, in 2012.

Since then, the major point has been proven. Over time, support for the
rpi-backend diminished, it started to deteriorate and hinder Weston
development. On May 11, I tried to ask if anyone actually cared about
the rpi-backend, but did not get any votes for keeping it:
https://lists.freedesktop.org/archives/wayland-devel/2016-May/028764.html

The rpi-backend is a good example of how using an API that is only
available for specific hardware, even more so as it is only available
with a proprietary driver stack, is not maintainable in the long run.
Most developers working on Weston either just cannot, or cannot bother
to test things also on the RPi. Breakage creeps in without anyone
noticing. If someone actually notices it, fixing it will require a very
specific environment to be able to test. Also the quality of the
proprietary implementation fluctuated. There are reports that RPi
firmware updates randomly broke Weston, and that nowadays it is very
hard to find a RPi firmware version that you could expect to work with
Weston if Weston itself was not broken. We are not even sure what is
broken nowadays.

This removal does not leave Raspberry Pi users cold (for long), though.
There is serious work going on in implementing a FOSS driver stack for
Raspberry Pi, including modern kernel DRM drivers and Mesa drivers. It
might not be fully there yet, but the plan is to be able to use the
standard DRM-backend of Weston on the RPis. See:
http://dri.freedesktop.org/wiki/VC4/

The rpi-backend had its moments. Now, it needs to go. Good riddance!

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Acked-by: Bryce Harrington <bryce@osg.samsung.com>
Acked-by: Jonas Ådahl <jadahl@gmail.com>
Acked-by: Daniel Stone <daniels@collabora.com>
2016-06-03 10:23:52 +03:00
Yong Bakos 425d9d9a67 man: Clarify weston.ini scale option
Add explanations of scaling that are a bit more approachable for users.

Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=94824
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2016-04-25 17:05:20 +03:00
Armin Krezović c6a55dbf04 desktop-shell: make panel clock configurable
This patch enhances the panel clock by adding a config file
option which can be used to either disable the clock or make
it also show seconds in the current clock format.

v2: Implement suggestions from Pekka:
    - Include Signed-off-by
    - Coding style fixes
    - Implement clock widget allocation by using
      width from cairo_text_extents
    - Highlight config option values in man page
v3: Implement suggestions from Pekka and Bryce:
    - Use CLOCK_FORMAT_* instead of FORMAT_* in the enum
    - Switch to using fixed clock widget size instead
      of one returned from cairo_text_extents
    - Fixes to config option highlighting in the man page
v4: Implement more suggestions from Pekka and Bryce:
    - Improve patch changelog
    - Move the check for CLOCK_FORMAT_NONE into the
      caller function
    - Fix a memory leak in panel_create introduced by
      previous revision of this patch

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57583
Signed-off-by: Armin Krezović <armin.krezovic@fet.ba>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2016-03-10 14:58:16 -08:00
Bob Ham 553d12488c desktop-shell: Allow binding-modifier weston.ini option to be none
Allow the binding-modifier option in weston.ini to take a value of
"none", meaning that none of the usual Super+Tab, Super+K, Super+Fn,
etc. key bindings will be enabled.

Signed-off-by: Bob Ham <bob.ham@collabora.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2016-01-12 09:25:28 -06:00
Bob Ham 744e65317d desktop-shell: Make zapping configurable
Add a new boolean weston.ini option, "allow-zap" to enable or disable
the Ctrl-Alt-Backspace key combination.

Signed-off-by: Bob Ham <bob.ham@collabora.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2016-01-12 09:24:05 -06:00
Bob Ham 91880f1e9e compositor-{drm, fbdev, rpi}: Make VT switching configurable
Add a new boolean weston.ini option, "vt-switching" to enable or
disable Ctrl-Alt-Fn key combinations.

Signed-off-by: Bob Ham <bob.ham@collabora.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>

(Derek Foreman changed the prototype for switch_vt_binding to
have a weston_keyboard * instead of weston_seat *.  The pointer
wasn't used, so this is just a warning fix.)
2016-01-12 09:21:28 -06:00
Pekka Paalanen b37ac4006a desktop-shell: remove screensaver support
This is a follow-up for the patch that removed weston-screensaver. The
aim is to clean up shell.c a little by removing non-essential
components. Vanilla Weston desktop is only a demo, external projects are
encouraged to create user-friendly desktop environments.

The support for launching a screensaver client and the protocol bindings
are removed. With them, all related configuration options are removed,
and the manuals are updated accordingly.

The screensaver protocol definition is left in desktop-shell.xml for
posterity.

This does not affect Weston's or desktop-shells ability to put screens
to sleep after inactivity. The inactivity timer continues to operate as
before. Also screen locking is unaffected.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Acked-by: Giulio Camuffo <giuliocamuffo@gmail.com>
2015-06-22 15:19:39 +03:00
Giulio Camuffo 4a787f805e man: use Xwayland instead of Xorg 2015-05-10 20:01:42 -07:00
Pekka Paalanen 8a0e0ba66a compositor: add option to specify a weston.ini
Add a command line option to specify a file to be read instead of
weston.ini.

IVI-shell testing will at least temporarily need to specify a config
file, because it cannot run without. That is why this is being added,
but should be convenient for everybody, too.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
Reviewed-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-03-27 09:38:19 +02:00
Pekka Paalanen 6c71aaeec5 Pass config file from compositor to everything
We have the Weston command line option '--no-config' which is meant to
prevent loading weston.ini at all. It works for Weston itself, but it
does not work for any clients that also want to read weston.ini.

To fix that, introduce a new environment variable WESTON_CONFIG_FILE.
Weston will set it to the absolute path of the config file it loads.
Clients will load the config file pointed to by WESTON_CONFIG_FILE. If
the environment variable is set but empty, no config file will be
loaded. If the variable is unset, things fall back to the default
"weston.ini".

Note, that Weston will only set WESTON_CONFIG_FILE, it never reads it.
The ability to specify a custom config file to load will be another patch.

All programs that loaded "weston.ini" are modified to honour
WESTON_CONFIG_FILE.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
Reviewed-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-03-27 09:38:12 +02:00
Pekka Paalanen 41d2ccccb0 man: update weston's shells
Tablet shell is long gone. Might as well list what we have now.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2015-03-20 14:01:02 -07:00
Pekka Paalanen 0513a95a06 compositor: add repaint delay timer
This timer delays the output_repaint towards the end of the refresh
period, reducing the time from repaint to present.

The length of the repaint window can be set in weston.ini.

The call to weston_output_schedule_repaint_reset() is delayed by one
more period.  If we exit the continuous repaint loop (set
output->repaint_scheduled to false) in finish_frame, we may call
start_repaint_loop() unnecessarily.  The problem case was actually
observed with two outputs on the DRM backend at 60 Hz, and 7 ms
repaint-window. During a window move, one output was constantly falling
off the continuous repaint loop and introducing additional one frame
latency, leading to jerky window motion. This code now avoids the
problem.

Changes in v2:

- Rename repaint_delay_timer to repaint_timer and
output_repaint_delay_handler to output_repaint_timer_handler.

- When computing the delay, take the current time into account. The timer
uses a relative timeout, so we have to subtract any time already gone.

Note, that 'gone' may also be negative. DRM has a habit of predicting
the page flip timestamp so it may be still in the future when we get the
completion event.

- Do also a sanity check 'msec > 1000'. In the unlikely case that
something fails to provide a good timestamp, never delay for more than
one second.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-By: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-03-20 12:19:29 +02:00
Pekka Paalanen b4e976ab56 man: explain idle-time=0 in weston.ini
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-11-21 16:11:44 +02:00
Frederic Plourde 4a84c83ad7 compositor: Add idle timeout option to weston.ini
Weston's idle timeout can already be set via the '-i' command-line
option, but this patch lets users specify it also via weston.ini.
Note that the command-line option takes precedence over the .ini,
should the option be set by both.

This patch also Updates weston.ini man page with idle-timeout bits

https://bugs.freedesktop.org/show_bug.cgi?id=83921

Signed-off-by: Frederic Plourde <frederic.plourde@collabora.co.uk>
Reviewed-by: Bryce Harrington <b.harrington@samsung.com>
2014-11-21 16:03:37 +02:00
Frederic Plourde 4b53f630e8 man: Fix some weston.ini.man typesetting macros
This patch fixes a couple of misuses around .TP 7 macros that wrongly
limited right margins and relative identation.

Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-11-11 13:05:48 +02:00
Giulio Camuffo de7e2b3ce3 compositor: add an option to set the default numlock value
Add a new "numlock-on" option in the [keyboard] section of weston.ini
which, if set to true, is used to enable the numlock of the keyboards
attached at startup.

Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-09-03 15:31:31 +03:00
Magnus Hoff 33eb5ed574 Document output/scale configuration option in the weston.ini man page.
v2: Different, hopefully better, wording. This patch entirely replaces
the previous similar patch I sent.

v3: Now including the correct patch. Please disregard the "v2" mail.

Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-08-27 16:27:36 +03:00
Andrew Wedgbury c34b67702e screen-share: Add screen-share command to weston.ini man page
This adds a description of the screen-share command configuration key to the
weston.ini man page.

[Pekka Paalanen: removed the sentence about default value, because the
default value is empty, and AFAIU cannot work.]

Signed-off-by: Andrew Wedgbury <andrew.wedgbury@realvnc.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-08-21 14:11:49 +03:00
Jonas Ådahl d3d128e07c weston.ini.man: Add libinput section
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2014-08-20 14:13:45 +03:00
Jonny Lamb f322f8efea desktop-shell: add close-animation config option for destroying surfaces
At the moment when surfaces are destroyed they are faded out but let's
make it configurable!

Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-08-18 13:27:11 +03:00
Jonny Lamb e67118c80a desktop-shell: add option to avoid creating the panel
This option is so we can disable showing any panel at all. The default
is to continue showing the panel and no example is added to weston.ini
because it's an uncommon request.

Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-08-18 13:26:41 +03:00
Jonny Lamb 66a41a06e7 compositor: fetch repeat info from weston.ini 2014-08-15 15:39:47 +03:00
Pekka Paalanen 588bee10de compositor: add --no-config command line option
Useful for unit tests. If Weston finds a weston.ini during unit tests,
it will load it and all the modules it asks for. We need a way to
prevent loading arbitrary modules from the command line.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-05-09 15:00:01 -07:00
Jason Ekstrand d89a0946a7 x11-backend: Add a --scale option 2014-03-10 13:29:40 -07:00
Nobuhiko Tanibata 8841917e13 Improvement of weston.ini.man. Add key:shell and remove tablet-shell
Add description of key:shell to CORE SECTION and move a example of desktop-shell from key:modules to key:shell.
Add cms-colord.so to key:modules of CORE SECTION.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
2014-02-18 14:00:19 -08:00
Kristian Høgsberg 68c5c10905 build: Move man/Makefile.am into toplevel Makefile.am 2014-02-01 00:08:51 -08:00
Wieland Hoffmann ad0704a226 weston.ini.man: Fix some grammar 2014-01-17 11:11:31 -08:00
Emilio Pozuelo Monfort 8a81b83900 Make the default desktop shell client configurable
The default can be set by passing WESTON_SHELL_CLIENT as an argument
to configure, similarly to WESTON_NATIVE_BACKEND.

Reviewed-by: Bryce Harrington <b.harrington@samsung.com>
2013-12-02 15:44:49 -08:00
Emilio Pozuelo Monfort bb835b419e man: document new focus-animation config entry 2013-11-21 21:35:28 -08:00
Emilio Pozuelo Monfort 46ce798d28 shell: add a client config entry 2013-11-21 21:35:17 -08:00
Jason Ekstrand 399841dae7 Update the weston man page to include the new Wayland backend options
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
2013-11-19 13:39:58 -08:00
Lubomir Rintel ba44c6bf2e Add [core] backend option
This allows specifying a particular backend to load in a manner similar to
modules.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
2013-11-15 16:17:51 -08:00
Jason Ekstrand 48ce42177f compositor-wayland: Parse [output] config sections and more options
This commit makes the wayland backend search through the config for
[output] sections with names starting with "WL" and create outputs
accordingly.  Outputs created due to the config file support mode, scale,
and transform parameters.  It also listens for the --output-count
command-line option.

This brings the wayland backend almost up to par, in terms of functionality
with the X11 backend.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
2013-11-07 16:35:01 -08:00
Kristian Høgsberg 8e6f376ef0 compositor-drm: Support configuring the framebuffer format from weston.ini
This patch adds a new weston.ini key, gbm-format, to the [core] section.
This new key can be rgb565, xrgb8888 or xrgb2101010, and makes the
compositor use the corresponding GBM format for the framebuffer.
2013-10-16 16:31:42 -07:00
Kristian Høgsberg 724c8d9e7c shell: Add a new weston.ini to control the startup animation
The new key startup-animation in the [shell] section lets you
control the startup animation.  Default is fade, but with this patch
we can also do none, which just show the desktop as fast as possible.
2013-10-16 11:38:24 -07:00
Maksim Melnikau 92de144331 add [xwayland] path weston.ini option
It sets the path to the xserver to run.

Signed-off-by: Maksim Melnikau <maxposedon@gmail.com>
2013-08-16 10:55:59 -07:00
Rob Bradford 14494625b5 man: Add documentation for output seat confining
v2: Add some explanation about the default seat
2013-06-28 13:36:17 -04:00
Pekka Paalanen a402b0567f desktop-shell: new wallpaper mode scale-crop
Scale-crop mode scales the wallpaper to tightly fill the whole output,
but preserving wallpaper aspect ratio. If aspect ratio differs from the
output's, the wallpaper is centered cutting it from top/bottom or
left/right.

Add this to the weston.ini man page, and explain all three modes.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2013-05-22 18:07:30 -04:00
Ossama Othman a50e6e4c50 config-parser: Honor XDG_CONFIG_DIRS
This set of changes adds support for searching for a given config file
in the directories listed in $XDG_CONFIG_DIRS if it wasn't found in
$XDG_CONFIG_HOME or ~/.config.  This allows packages to install custom
config files in /etc/xdg/weston, for example, thus allowing them to
avoid dealing with home directories.

To avoid a TOCTOU race the config file is actually open()ed during the
search.  Its file descriptor is returned and stored in the compositor
for later use when performing subsequent config file parses.

Signed-off-by: Ossama Othman <ossama.othman@intel.com>
2013-05-14 14:36:37 -04:00
Emilio Pozuelo Monfort f12a094ade weston.ini: document background-type 2013-05-01 13:40:50 -04:00
Scott Moreau 650aab55e7 weston.man: Document the way to disable idle timeout 2013-03-19 15:50:45 -04:00
Emilio Pozuelo Monfort 57ac406c2f weston.ini.man: document cursor-theme and cursor-key 2013-03-19 14:42:46 -04:00
Pekka Paalanen 6d8fcc75b8 update .gitignores for src/ and man/
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2013-02-26 11:20:29 -05:00
Scott Moreau 1224514f5b Add --version option 2013-02-02 10:28:50 -05:00
Martin Minarik edc51c0f9c Weston: weston.ini.man page
changes:
 - launcher path, passing environment variables and parameter
 - indent modeline example
2013-01-24 19:44:00 -05:00
Kristian Høgsberg efaca34bc5 Document --use-pixman option 2013-01-07 15:52:44 -05:00
Pekka Paalanen 864c784b5c man: fill missing pieces to weston page
Config file, WAYLAND_SOCKET, XDG_CONFIG_HOME, segfault handler.

NOTE: This is a candidate for the stable branch
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2012-11-27 11:13:00 -05:00
Pekka Paalanen 424820f4bc man: add weston-drm page
Add some documentation about the DRM backend into its own man page, and
refer to it in weston(1).

Environment variable, that are reserved for backends, and currently used
only by the DRM backend, are moved to weston-drm page.

NOTE: This is a candidate for the stable branch
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2012-11-27 11:12:56 -05:00
Pekka Paalanen a51e6fa322 build: make default backend configurable
Instead of hardcoding drm-backend.so as the default if environment
presents neither Wayland nor X11, have a ./configure option to change
it. It still defaults to drm-backend.so, if not given.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2012-11-08 16:56:25 -05:00