From 4cbb78ca340f23da24361f92005567c359456a9c Mon Sep 17 00:00:00 2001 From: Alexander Grothe Date: Sat, 2 Jun 2018 20:04:57 +0200 Subject: [PATCH] Update Manual.html --- Manual.html | 2318 ++++++++++++++++++++++++++------------------------- 1 file changed, 1169 insertions(+), 1149 deletions(-) diff --git a/Manual.html b/Manual.html index 18a82bf..3ce8839 100644 --- a/Manual.html +++ b/Manual.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Ansible Playbooks for yaVDR 0.7 @@ -240,260 +240,260 @@ for the JavaScript code in this tag.

Inhaltsverzeichnis

-
-

1 User Stories

+
+

1 User Stories

-
-

1.1 yavdr-full

+
+

1.1 yavdr-full

A User wants to install yaVDR without customization and relies on full automation. @@ -526,22 +526,22 @@ Several roles are used to tie everything together:

-
-

1.1.1 Using vdr, pulseaudio and xorg together

+
+

1.1.1 Using vdr, pulseaudio and xorg together

-
-

2 Introduction

+
+

2 Introduction

One of the major problems we faced with customized Ubuntu ISO files as installation media for prior yaVDR versions has been the limited hardware support and the time consuming process to create and update them. An interesting alternative to this approach is to enable the user to choose the installation medium by himself, so point releases, kernel versions and additional drivers can be chosen deliberately. After the basic setup is complete (and a working internet connection is available), a fully customizable install script completes the yaVDR installation.

-
-

3 Installing and configuring yaVDR with Ansible

+
+

3 Installing and configuring yaVDR with Ansible

This is an experimental feature which allows to set up a yaVDR installation based on a normal Ubuntu Server 16.04.x installation using Ansible. @@ -576,8 +576,8 @@ We use a callback to generate tags for all roles autmatically:

-
-

3.1 Install script for local usage

+
+

3.1 Install script for local usage

if (( $EUID != 0 )); then
@@ -598,12 +598,12 @@ ansible-playbook yavdr07.yml -b -i 'localhost_inventory
 
-
-

4 Playbooks

+
+

4 Playbooks

-
-

4.1 yavdr07.yml

+
+

4.1 yavdr07.yml

The yavdr07.yml playbook sets up a fully-featured yaVDR installation: @@ -654,8 +654,8 @@ The yavdr07.yml playbook sets up a fully-featured yaVDR installatio

-
-

4.2 yavdr07-headless.yml

+
+

4.2 yavdr07-headless.yml

For a headless server installation yavdr07-headless.yml is a good choice @@ -688,8 +688,8 @@ For a headless server installation yavdr07-headless.yml is a good c

-
-

5 Hosts

+
+

5 Hosts

This playbook can either be used to run the installation on the localhost or any other PC in the network that can be accessed via ssh. Simply add the host names or IP addresses to the hosts file in the respective section: @@ -703,12 +703,12 @@ This playbook can either be used to run the installation on the localhost or any

-
-

6 Group Variables

+
+

6 Group Variables

-
-

6.1 PPAs

+
+

6.1 PPAs

---
@@ -726,8 +726,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.2 VDR user, directories, special configuration and plugins

+
+

6.2 VDR user, directories, special configuration and plugins

# properties of the user vdr and vdr-related options
@@ -754,8 +754,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.3 Media directories

+
+

6.3 Media directories

# dictionary of directories for (shared) files. Automatically exported via NFS and Samba if those roles are enabled
@@ -770,8 +770,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.4 NFS

+
+

6.4 NFS

nfs:
@@ -780,8 +780,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.5 Samba

+
+

6.5 Samba

samba:
@@ -791,8 +791,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.6 Additional packages

+
+

6.6 Additional packages

# additional packages you want to install
@@ -808,8 +808,8 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

6.7 System pre-configuration

+
+

6.7 System pre-configuration

frontend: vdr
@@ -824,20 +824,20 @@ This playbook can either be used to run the installation on the localhost or any
 
-
-

7 Roles

+
+

7 Roles

-
-

7.1 install-dependencies

+
+

7.1 install-dependencies

-
-

7.1.1 tasks

+
+

7.1.1 tasks

    -
  1. main.yml
    +
  2. main.yml
    ---
    @@ -858,19 +858,19 @@ This playbook can either be used to run the installation on the localhost or any
     
    -
    -

    7.2 nvidia experimental drivers

    +
    +

    7.2 nvidia experimental drivers

    install nvidia-396 from ppa:graphics-drivers/ppa

    -
    -

    7.2.1 tasks

    +
    +

    7.2.1 tasks

      -
    1. main.yml
      +
    2. main.yml
      ---
      @@ -900,15 +900,15 @@ install nvidia-396 from ppa:graphics-drivers/ppa
       
    -
    -

    7.3 yavdr-common

    +
    +

    7.3 yavdr-common

    This role is used to set up a basic yaVDR installation. It creates the directories, installs the vdr and other useful packages.

    -
    -

    7.3.1 default variables

    +
    +

    7.3.1 default variables

    This section is for reference only, please use the files in global_vars for customizations. @@ -921,7 +921,7 @@ This section is for reference only, please use the files in global_vars

      -
    1. Repositories
      +
    2. Repositories

      You can set a list of package repositories which provide the necessary packages. Feel free to use own PPAs if you need special customization to the VDR and it’s plugins. @@ -938,7 +938,7 @@ You can set a list of package repositories which provide the necessary packages.

  3. -
  4. Drivers
    +
  5. Drivers

    Automatically installed drivers can be very useful, but if you know you need a certain driver, you can simply set it’s value to true. If you don’t want a driver to be installed, set it’s value to false. @@ -951,7 +951,7 @@ Automatically installed drivers can be very useful, but if you know you need a c

-
  • Additional Packages
    +
  • Additional Packages

    Add additional packages you would like to have on your installation to this list @@ -965,7 +965,7 @@ Add additional packages you would like to have on your installation to this list

  • -
  • VDR
    +
  • VDR

    This section allows you to set the recording directory, the user and group that runs the vdr and it’s home directory. @@ -998,15 +998,15 @@ This section allows you to set the recording directory, the user and group that

  • -
    -

    7.3.2 tasks

    +
    +

    7.3.2 tasks

    yavdr-common executes the following tasks:

      -
    1. main.yml
      +
    2. main.yml
      ---
      @@ -1017,12 +1017,13 @@ yavdr-common executes the following tasks:
               - import_tasks: configure_apt.yml
               - import_tasks: configure_system.yml
               - import_tasks: create_directories.yml
      +        - import_tasks: create_sudoers.yml
         tags: [install]
       
        -
      1. Disable default installation of recommended packages
        +
      2. Disable default installation of recommended packages

        This task prevents apt to automatically install all recommended dependencies for packages: @@ -1039,7 +1040,7 @@ This task prevents apt to automatically install all recommended dependencies for

    -
  • Set up package repositories
    +
  • Set up package repositories
    - name: add PPAs
    @@ -1059,7 +1060,7 @@ This task prevents apt to automatically install all recommended dependencies for
     
  • -
  • Use bash instead of dash
    +
  • Use bash instead of dash
    - name: use bash instead of dash
    @@ -1071,10 +1072,10 @@ This task prevents apt to automatically install all recommended dependencies for
     
  • -
  • create user vdr
  • -
  • Disable release-upgrade notifications
    +
  • create user vdr
  • +
  • Disable release-upgrade notifications
      -
    1. SOMEDAY move from lineinfile to template
      +
    2. SOMEDAY move from lineinfile to template
      - name: disable release-upgrade notifications
      @@ -1096,7 +1097,7 @@ This task prevents apt to automatically install all recommended dependencies for
       
  • -
  • Install essential packages
    +
  • Install essential packages
    - name: apt | install basic packages
    @@ -1128,7 +1129,7 @@ This task prevents apt to automatically install all recommended dependencies for
     
  • -
  • Install additional packages (user defined)
    +
  • Install additional packages (user defined)
    - name: apt | install extra packages
    @@ -1142,13 +1143,14 @@ This task prevents apt to automatically install all recommended dependencies for
     
  • -
  • create directories
  • +
  • create directories
  • +
  • create sudoers drop-in for vdr
  • -
    -

    7.3.3 templates

    +
    +

    7.3.3 templates

    {{ ansible_managed | comment('c') }}
    @@ -1158,14 +1160,28 @@ APT::Install-Suggests "0";
     
    +
      +
    1. yavdr sudoers drop-in
      +
      +

      +Allow the vdr user to restart vdr.service and reboot the system +

      +
      +
      {{ vdr.user }} ALL=NOPASSWD: /bin/systemctl --no-block restart vdr.service
      +{{ vdr.user }} ALL=NOPASSWD: /bin/systemctl --no-block reboot
      +
      -
      -

      7.4 collect facts about the system with custom modules

      +
    2. +
    +
    +
    +
    +

    7.4 collect facts about the system with custom modules

    -
    -

    7.4.1 variables

    +
    +

    7.4.1 variables

    first_run: False
    @@ -1173,12 +1189,12 @@ APT::Install-Suggests "0";
     
    -
    -

    7.4.2 tasks

    +
    +

    7.4.2 tasks

      -
    1. main.yml
      +
    2. main.yml
      - name: get information about usb and pci hardware and loaded kernel modules
      @@ -1218,16 +1234,16 @@ APT::Install-Suggests "0";
       
    -
    -

    7.5 vdr

    +
    +

    7.5 vdr

    -
    -

    7.5.1 tasks

    +
    +

    7.5.1 tasks

      -
    1. install the basic vdr packages
      +
    2. install the basic vdr packages
      ---
      @@ -1246,7 +1262,7 @@ APT::Install-Suggests "0";
       
    3. -
    4. Add svdrp/svdrp-disc to /etc/services
      +
    5. Add svdrp/svdrp-disc to /etc/services
      - name: add svdrp and svdrp-disc to /etc/services
      @@ -1261,7 +1277,7 @@ APT::Install-Suggests "0";
       
    6. -
    7. Set up the recording directory for the vdr user
      +
    8. Set up the recording directory for the vdr user
      - name: create vdr recdir
      @@ -1296,7 +1312,7 @@ APT::Install-Suggests "0";
       
    9. -
    10. Install additional vdr plugins
      +
    11. Install additional vdr plugins

      The additional plugins to install can be set in the variable {{vdr_plugins}} in the group variables @@ -1314,7 +1330,7 @@ The additional plugins to install can be set in the variable {{vdr_plugins

    -
  • copy vdr configuration files (if they don’t exist yet)
    +
  • copy vdr configuration files (if they don’t exist yet)
    - name: ensure vdr is stopped
    @@ -1345,7 +1361,7 @@ The additional plugins to install can be set in the variable {{vdr_plugins
     
  • -
  • start vdr after network-online.target
    +
  • start vdr after network-online.target
    - name: create directory for vdr.service systemd drop-in files
    @@ -1366,8 +1382,8 @@ The additional plugins to install can be set in the variable {{vdr_plugins
     
     
    -
    -

    7.5.2 templates

    +
    +

    7.5.2 templates

    Start after network-online.target @@ -1379,12 +1395,12 @@ Start after network-online.target

    -
    -

    7.5.3 files

    +
    +

    7.5.3 files

      -
    1. remote.conf
      +
    2. remote.conf
      LIRC.Up KEY_UP
      @@ -1519,7 +1535,7 @@ XKeySym.Next       XF86AudioNext
       
    3. -
    4. keymacros.conf
      +
    5. keymacros.conf
      # Remote control key macros for VDR
      @@ -1545,12 +1561,12 @@ User0     @osdteletext
       
    -
    -

    7.6 STARTED yavdr-network

    +
    +

    7.6 STARTED yavdr-network

    -
    -

    7.6.1 default variables

    +
    +

    7.6.1 default variables

    install_avahi: true
    @@ -1558,8 +1574,8 @@ User0     @osdteletext
     
    -
    -

    7.6.2 tasks

    +
    +

    7.6.2 tasks

    ---
    @@ -1629,15 +1645,15 @@ User0     @osdteletext
     
    -
    -

    7.7 nfs-server

    +
    +

    7.7 nfs-server

    -
    -

    7.7.1 TODO avahi-services für NFS beim Stoppen des nfs-kernel-servers depublizieren, beim Start wieder announcen

    +
    +

    7.7.1 TODO avahi-services für NFS beim Stoppen des nfs-kernel-servers depublizieren, beim Start wieder announcen

    -
    -

    7.7.2 tasks

    +
    +

    7.7.2 tasks

    ---
    @@ -1666,12 +1682,12 @@ User0     @osdteletext
     
    -
    -

    7.7.3 templates

    +
    +

    7.7.3 templates

      -
    1. /etc/exports
      +
    2. /etc/exports
      /srv *(rw,fsid=0,sync,no_subtree_check,all_squash,anongid={{ vdr.gid }},anonuid={{ vdr.uid }})
      @@ -1682,13 +1698,13 @@ User0     @osdteletext
       
    3. -
    4. avahi services
      +
    5. avahi services
      -
      <?xml version="1.0" standalone='no'?>
      -<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
      +
      <?xml version="1.0" standalone='no'?>
      +<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
       <service-group>
      -<name replace-wildcards="yes">{{ item.key|capitalize }} on %h</name> ## Name
      +<name replace-wildcards="yes">{{ item.key|capitalize }} on %h</name> ## Name
       <service>
              <type>_nfs._tcp</type>
              <port>2049</port>
      @@ -1703,12 +1719,12 @@ User0     @osdteletext
       
    -
    -

    7.8 STARTED yavdr-remote

    +
    +

    7.8 STARTED yavdr-remote

    -
    -

    7.8.1 default variables

    +
    +

    7.8.1 default variables

    lircd0_socket: /var/run/lirc/lircd0
    @@ -1716,8 +1732,8 @@ User0     @osdteletext
     
    -
    -

    7.8.2 tasks

    +
    +

    7.8.2 tasks

    ---
    @@ -1790,12 +1806,12 @@ User0     @osdteletext
     
    -
    -

    7.8.3 templates

    +
    +

    7.8.3 templates

      -
    1. Systemd Drop-in to start vdr with lirc support
      +
    2. Systemd Drop-in to start vdr with lirc support
      {% if frontend != 'kodi' %}
      @@ -1806,7 +1822,7 @@ User0     @osdteletext
       
    3. -
    4. Systemd Drop-in to start lircd2uinput with lircd
      +
    5. Systemd Drop-in to start lircd2uinput with lircd
      [Service]
      @@ -1816,7 +1832,7 @@ User0     @osdteletext
       
    6. -
    7. create /etc/rc_maps.cfg
      +
    8. create /etc/rc_maps.cfg
      #
      @@ -1828,154 +1844,154 @@ User0     @osdteletext
       # Although not yet tested, it is mented to be added at udev.
       #
       # To use, you just need to run:
      -#   ./ir-keytable -a
      +#       ./ir-keytable -a
       #
       # Or, if the remote is not the first device:
      -#   ./ir-keytable -a -s rc1     # for RC at rc1
      +#       ./ir-keytable -a -s rc1         # for RC at rc1
       #
       
       # Format:
      -#   driver - name of the driver provided via uevent - use * for any driver
      -#   table -  RC keymap table, provided via uevent - use * for any table
      -#   file - file name. If directory is not specified, it will default to
      -#       /etc/rc_keymaps.
      +#       driver - name of the driver provided via uevent - use * for any driver
      +#       table -  RC keymap table, provided via uevent - use * for any table
      +#       file - file name. If directory is not specified, it will default to
      +#               /etc/rc_keymaps.
       # For example:
      -# driver    table               file
      -# cx8800    *               ./keycodes/rc5_hauppauge_new
      -# *     rc-avermedia-m135a-rm-jx    ./keycodes/kworld_315u
      -# saa7134   rc-avermedia-m135a-rm-jx    ./keycodes/keycodes/nec_terratec_cinergy_xs
      -# em28xx    *               ./keycodes/kworld_315u
      -# *     *               ./keycodes/rc5_hauppauge_new
      +# driver        table                           file
      +# cx8800        *                               ./keycodes/rc5_hauppauge_new
      +# *             rc-avermedia-m135a-rm-jx        ./keycodes/kworld_315u
      +# saa7134       rc-avermedia-m135a-rm-jx        ./keycodes/keycodes/nec_terratec_cinergy_xs
      +# em28xx        *                               ./keycodes/kworld_315u
      +# *             *                               ./keycodes/rc5_hauppauge_new
       
       # Table to automatically load the rc maps for the bundled IR's provided with the
       # devices supported by the linux kernel
       
       #driver table                    file
      -*   rc-adstech-dvb-t-pci     adstech_dvb_t_pci
      -*   rc-alink-dtu-m           alink_dtu_m
      -*   rc-anysee                anysee
      -*   rc-apac-viewcomp         apac_viewcomp
      -*   rc-asus-pc39             asus_pc39
      -*   rc-asus-ps3-100          asus_ps3_100
      -*   rc-ati-tv-wonder-hd-600  ati_tv_wonder_hd_600
      -*   rc-ati-x10               ati_x10
      -*   rc-avermedia-a16d        avermedia_a16d
      -*   rc-avermedia-cardbus     avermedia_cardbus
      -*   rc-avermedia-dvbt        avermedia_dvbt
      -*   rc-avermedia-m135a       avermedia_m135a
      -*   rc-avermedia-m733a-rm-k6 avermedia_m733a_rm_k6
      -*   rc-avermedia-rm-ks       avermedia_rm_ks
      -*   rc-avermedia             avermedia
      -*   rc-avertv-303            avertv_303
      -*   rc-azurewave-ad-tu700    azurewave_ad_tu700
      -*   rc-behold-columbus       behold_columbus
      -*   rc-behold                behold
      -*   rc-budget-ci-old         budget_ci_old
      -*   rc-cec                   cec
      -*   rc-cinergy-1400          cinergy_1400
      -*   rc-cinergy               cinergy
      -*   rc-delock-61959          delock_61959
      -*   rc-dib0700-nec           dib0700_nec
      -*   rc-dib0700-rc5           dib0700_rc5
      -*   rc-digitalnow-tinytwin   digitalnow_tinytwin
      -*   rc-digittrade            digittrade
      -*   rc-dm1105-nec            dm1105_nec
      -*   rc-dntv-live-dvb-t       dntv_live_dvb_t
      -*   rc-dntv-live-dvbt-pro    dntv_live_dvbt_pro
      -*   rc-dtt200u               dtt200u
      -*   rc-dvbsky                dvbsky
      -*   rc-em-terratec           em_terratec
      -*   rc-encore-enltv-fm53     encore_enltv_fm53
      -*   rc-encore-enltv          encore_enltv
      -*   rc-encore-enltv2         encore_enltv2
      -*   rc-evga-indtube          evga_indtube
      -*   rc-eztv                  eztv
      -*   rc-flydvb                flydvb
      -*   rc-flyvideo              flyvideo
      -*   rc-fusionhdtv-mce        fusionhdtv_mce
      -*   rc-gadmei-rm008z         gadmei_rm008z
      -*   rc-genius-tvgo-a11mce    genius_tvgo_a11mce
      -*   rc-gotview7135           gotview7135
      -*   rc-hauppauge             hauppauge
      -#*  rc-imon-mce              imon_mce
      -#*  rc-imon-pad              imon_pad
      -*   rc-iodata-bctv7e         iodata_bctv7e
      -*   rc-it913x-v1             it913x_v1
      -*   rc-it913x-v2             it913x_v2
      -*   rc-kaiomy                kaiomy
      -*   rc-kworld-315u           kworld_315u
      -*   rc-kworld-pc150u         kworld_pc150u
      -*   rc-kworld-plus-tv-analog kworld_plus_tv_analog
      -*   rc-leadtek-y04g0051      leadtek_y04g0051
      -*   rc-lme2510               lme2510
      -*   rc-manli                 manli
      -*   rc-medion-x10-digitainer medion_x10_digitainer
      -*   rc-medion-x10-or2x       medion_x10_or2x
      -*   rc-medion-x10            medion_x10
      -*   rc-msi-digivox-ii        msi_digivox_ii
      -*   rc-msi-digivox-iii       msi_digivox_iii
      -*   rc-msi-tvanywhere-plus   msi_tvanywhere_plus
      -*   rc-msi-tvanywhere        msi_tvanywhere
      -*   rc-nebula                nebula
      -*   rc-nec-terratec-cinergy-xs nec_terratec_cinergy_xs
      -*   rc-norwood               norwood
      -*   rc-npgtech               npgtech
      -*   rc-pctv-sedna            pctv_sedna
      -*   rc-pinnacle-color        pinnacle_color
      -*   rc-pinnacle-grey         pinnacle_grey
      -*   rc-pinnacle-pctv-hd      pinnacle_pctv_hd
      -*   rc-pixelview-002t        pixelview_002t
      -*   rc-pixelview-mk12        pixelview_mk12
      -*   rc-pixelview-new         pixelview_new
      -*   rc-pixelview             pixelview
      -*   rc-powercolor-real-angel powercolor_real_angel
      -*   rc-proteus-2309          proteus_2309
      -*   rc-purpletv              purpletv
      -*   rc-pv951                 pv951
      -*   rc-real-audio-220-32-keys real_audio_220_32_keys
      -*   rc-reddo                 reddo
      -*   rc-snapstream-firefly    snapstream_firefly
      -*   rc-streamzap             streamzap
      -*   rc-su3000                su3000
      -*   rc-tbs-nec               tbs_nec
      -*   rc-technisat-ts35        technisat_ts35
      -*   rc-technisat-usb2        technisat_usb2
      -*   rc-terratec-cinergy-c-pci terratec_cinergy_c_pci
      -*   rc-terratec-cinergy-s2-hd terratec_cinergy_s2_hd
      -*   rc-terratec-cinergy-xs   terratec_cinergy_xs
      -*   rc-terratec-slim-2       terratec_slim_2
      -*   rc-terratec-slim         terratec_slim
      -*   rc-tevii-nec             tevii_nec
      -*   rc-tivo                  tivo
      -*   rc-total-media-in-hand-02 total_media_in_hand_02
      -*   rc-total-media-in-hand   total_media_in_hand
      -*   rc-trekstor              trekstor
      -*   rc-tt-1500               tt_1500
      -*   rc-twinhan-dtv-cab-ci    twinhan_dtv_cab_ci
      -*   rc-twinhan1027           twinhan_vp1027_dvbs
      -*   rc-videomate-k100        videomate_k100
      -*   rc-videomate-s350        videomate_s350
      -*   rc-videomate-tv-pvr      videomate_tv_pvr
      -*   rc-winfast-usbii-deluxe  winfast_usbii_deluxe
      -*   rc-winfast               winfast
      -# * *            a800                 # found in a800.c
      -# * *            af9005               # found in af9005-remote.c
      -# * *            cinergyt2            # found in cinergyT2-core.c
      -# * *            dvico_mce            # found in cxusb.c
      -# * *            dvico_portable       # found in cxusb.c
      -# * *            d680_dmb             # found in cxusb.c
      -# * *            dibusb               # found in dibusb-common.c
      -# * *            digitv               # found in digitv.c
      -# * *            megasky              # found in m920x.c
      -# * *            tvwalkerir-kbd-i2c rc-hauppauge            /lib/udev/rc_keymaps/rc-hauppaugetwin         # found in m920x.c
      -# * *            pinnacle310e         # found in m920x.c
      -# * *            haupp                # found in nova-t-usb2.c
      -# * *            opera1               # found in opera1.c
      -# * *            vp702x               # found in vp702x.c
      -# * *            vp7045               # found in vp7045.c
      +*       rc-adstech-dvb-t-pci     adstech_dvb_t_pci
      +*       rc-alink-dtu-m           alink_dtu_m
      +*       rc-anysee                anysee
      +*       rc-apac-viewcomp         apac_viewcomp
      +*       rc-asus-pc39             asus_pc39
      +*       rc-asus-ps3-100          asus_ps3_100
      +*       rc-ati-tv-wonder-hd-600  ati_tv_wonder_hd_600
      +*       rc-ati-x10               ati_x10
      +*       rc-avermedia-a16d        avermedia_a16d
      +*       rc-avermedia-cardbus     avermedia_cardbus
      +*       rc-avermedia-dvbt        avermedia_dvbt
      +*       rc-avermedia-m135a       avermedia_m135a
      +*       rc-avermedia-m733a-rm-k6 avermedia_m733a_rm_k6
      +*       rc-avermedia-rm-ks       avermedia_rm_ks
      +*       rc-avermedia             avermedia
      +*       rc-avertv-303            avertv_303
      +*       rc-azurewave-ad-tu700    azurewave_ad_tu700
      +*       rc-behold-columbus       behold_columbus
      +*       rc-behold                behold
      +*       rc-budget-ci-old         budget_ci_old
      +*       rc-cec                   cec
      +*       rc-cinergy-1400          cinergy_1400
      +*       rc-cinergy               cinergy
      +*       rc-delock-61959          delock_61959
      +*       rc-dib0700-nec           dib0700_nec
      +*       rc-dib0700-rc5           dib0700_rc5
      +*       rc-digitalnow-tinytwin   digitalnow_tinytwin
      +*       rc-digittrade            digittrade
      +*       rc-dm1105-nec            dm1105_nec
      +*       rc-dntv-live-dvb-t       dntv_live_dvb_t
      +*       rc-dntv-live-dvbt-pro    dntv_live_dvbt_pro
      +*       rc-dtt200u               dtt200u
      +*       rc-dvbsky                dvbsky
      +*       rc-em-terratec           em_terratec
      +*       rc-encore-enltv-fm53     encore_enltv_fm53
      +*       rc-encore-enltv          encore_enltv
      +*       rc-encore-enltv2         encore_enltv2
      +*       rc-evga-indtube          evga_indtube
      +*       rc-eztv                  eztv
      +*       rc-flydvb                flydvb
      +*       rc-flyvideo              flyvideo
      +*       rc-fusionhdtv-mce        fusionhdtv_mce
      +*       rc-gadmei-rm008z         gadmei_rm008z
      +*       rc-genius-tvgo-a11mce    genius_tvgo_a11mce
      +*       rc-gotview7135           gotview7135
      +*       rc-hauppauge             hauppauge
      +#*      rc-imon-mce              imon_mce
      +#*      rc-imon-pad              imon_pad
      +*       rc-iodata-bctv7e         iodata_bctv7e
      +*       rc-it913x-v1             it913x_v1
      +*       rc-it913x-v2             it913x_v2
      +*       rc-kaiomy                kaiomy
      +*       rc-kworld-315u           kworld_315u
      +*       rc-kworld-pc150u         kworld_pc150u
      +*       rc-kworld-plus-tv-analog kworld_plus_tv_analog
      +*       rc-leadtek-y04g0051      leadtek_y04g0051
      +*       rc-lme2510               lme2510
      +*       rc-manli                 manli
      +*       rc-medion-x10-digitainer medion_x10_digitainer
      +*       rc-medion-x10-or2x       medion_x10_or2x
      +*       rc-medion-x10            medion_x10
      +*       rc-msi-digivox-ii        msi_digivox_ii
      +*       rc-msi-digivox-iii       msi_digivox_iii
      +*       rc-msi-tvanywhere-plus   msi_tvanywhere_plus
      +*       rc-msi-tvanywhere        msi_tvanywhere
      +*       rc-nebula                nebula
      +*       rc-nec-terratec-cinergy-xs nec_terratec_cinergy_xs
      +*       rc-norwood               norwood
      +*       rc-npgtech               npgtech
      +*       rc-pctv-sedna            pctv_sedna
      +*       rc-pinnacle-color        pinnacle_color
      +*       rc-pinnacle-grey         pinnacle_grey
      +*       rc-pinnacle-pctv-hd      pinnacle_pctv_hd
      +*       rc-pixelview-002t        pixelview_002t
      +*       rc-pixelview-mk12        pixelview_mk12
      +*       rc-pixelview-new         pixelview_new
      +*       rc-pixelview             pixelview
      +*       rc-powercolor-real-angel powercolor_real_angel
      +*       rc-proteus-2309          proteus_2309
      +*       rc-purpletv              purpletv
      +*       rc-pv951                 pv951
      +*       rc-real-audio-220-32-keys real_audio_220_32_keys
      +*       rc-reddo                 reddo
      +*       rc-snapstream-firefly    snapstream_firefly
      +*       rc-streamzap             streamzap
      +*       rc-su3000                su3000
      +*       rc-tbs-nec               tbs_nec
      +*       rc-technisat-ts35        technisat_ts35
      +*       rc-technisat-usb2        technisat_usb2
      +*       rc-terratec-cinergy-c-pci terratec_cinergy_c_pci
      +*       rc-terratec-cinergy-s2-hd terratec_cinergy_s2_hd
      +*       rc-terratec-cinergy-xs   terratec_cinergy_xs
      +*       rc-terratec-slim-2       terratec_slim_2
      +*       rc-terratec-slim         terratec_slim
      +*       rc-tevii-nec             tevii_nec
      +*       rc-tivo                  tivo
      +*       rc-total-media-in-hand-02 total_media_in_hand_02
      +*       rc-total-media-in-hand   total_media_in_hand
      +*       rc-trekstor              trekstor
      +*       rc-tt-1500               tt_1500
      +*       rc-twinhan-dtv-cab-ci    twinhan_dtv_cab_ci
      +*       rc-twinhan1027           twinhan_vp1027_dvbs
      +*       rc-videomate-k100        videomate_k100
      +*       rc-videomate-s350        videomate_s350
      +*       rc-videomate-tv-pvr      videomate_tv_pvr
      +*       rc-winfast-usbii-deluxe  winfast_usbii_deluxe
      +*       rc-winfast               winfast
      +# *     *                        a800                 # found in a800.c
      +# *     *                        af9005               # found in af9005-remote.c
      +# *     *                        cinergyt2            # found in cinergyT2-core.c
      +# *     *                        dvico_mce            # found in cxusb.c
      +# *     *                        dvico_portable       # found in cxusb.c
      +# *     *                        d680_dmb             # found in cxusb.c
      +# *     *                        dibusb               # found in dibusb-common.c
      +# *     *                        digitv               # found in digitv.c
      +# *     *                        megasky              # found in m920x.c
      +# *     *                        tvwalkerir-kbd-i2c     rc-hauppauge                    /lib/udev/rc_keymaps/rc-hauppaugetwin         # found in m920x.c
      +# *     *                        pinnacle310e         # found in m920x.c
      +# *     *                        haupp                # found in nova-t-usb2.c
      +# *     *                        opera1               # found in opera1.c
      +# *     *                        vp702x               # found in vp702x.c
      +# *     *                        vp7045               # found in vp7045.c
       
       # Hauppauge PVR 350
      -ir-kbd-i2c  rc-hauppauge    /lib/udev/rc_keymaps/rc-hauppauge
      +ir-kbd-i2c  rc-hauppauge        /lib/udev/rc_keymaps/rc-hauppauge
       
       # imon-pad
       imon        rc-imon-pad /lib/udev/rc_keymaps/rc-imon-pad
      @@ -1986,7 +2002,7 @@ imon        rc-imon-mce /lib/udev/rc_keymaps/rc-imon-mce
       budget_ci   rc-tt-1500  /lib/udev/rc_keymaps/rc-tt-1501
       
       # rc-rc6-mce
      -*           rc-rc6-mce  /lib/udev/rc_keymaps/rc-rc6-mce
      +*               rc-rc6-mce  /lib/udev/rc_keymaps/rc-rc6-mce
       # CIR
       ite-cir     rc-rc6-mce  /lib/udev/rc_keymaps/rc-rc6-mce
       nuvoton-cir rc-rc6-mce  /lib/udev/rc_keymaps/rc-rc6-mce
      @@ -2007,17 +2023,17 @@ ati_remote    rc-medion-x10-digitainer   /lib/udev/rc_keymaps/rc-medion-x10-digi
       
    -
    -

    7.8.4 files

    +
    +

    7.8.4 files

    -
    -

    7.9 pulseaudio

    +
    +

    7.9 pulseaudio

    -
    -

    7.9.1 tasks

    +
    +

    7.9.1 tasks

    ---
    @@ -2040,8 +2056,8 @@ ati_remote    rc-medion-x10-digitainer   /lib/udev/rc_keymaps/rc-medion-x10-digi
     
    -
    -

    7.9.2 templates

    +
    +

    7.9.2 templates

    # Use PulseAudio by default
    @@ -2063,12 +2079,12 @@ ati_remote    rc-medion-x10-digitainer   /lib/udev/rc_keymaps/rc-medion-x10-digi
     
    -
    -

    7.10 yavdr-xorg

    +
    +

    7.10 yavdr-xorg

    -
    -

    7.10.1 About the GUI session

    +
    +

    7.10.1 About the GUI session

    The X-Server is started by using the two systemd units xlogin@.service and x@.service provided by the package xlogin. The former is enabled (and started) for the vdr user - which results (using the default settings for the user vdr with the uid 666) in the activation of xlogin@vdr.service when reaching the graphical.target. To simplify starting and stopping the X-server and the desktop session a yavdr-xorg.service is provided by the package yavdr-xorg, which depends on the two units mentioned before. @@ -2097,8 +2113,8 @@ In order to achive a clean shutdown of the session, x@t7.service is

    -
    -

    7.10.2 default variables

    +
    +

    7.10.2 default variables

    first_run: False
    @@ -2121,12 +2137,12 @@ In order to achive a clean shutdown of the session, x@t7.service is
     
    -
    -

    7.10.3 tasks

    +
    +

    7.10.3 tasks

      -
    1. main.yml
      +
    2. main.yml
      ---
      @@ -2139,7 +2155,7 @@ In order to achive a clean shutdown of the session, x@t7.service is
       
    3. -
    4. setup-xorg.yml
      +
    5. setup-xorg.yml
      ---
      @@ -2260,7 +2276,7 @@ In order to achive a clean shutdown of the session, x@t7.service is
       
    6. -
    7. detect-xorg.yml
      +
    8. detect-xorg.yml
      ---
      @@ -2422,14 +2438,14 @@ In order to achive a clean shutdown of the session, x@t7.service is
       
    -
    -

    7.10.4 templates

    +
    +

    7.10.4 templates

      -
    1. xorg
      +
    2. xorg
        -
      1. x-verbose@.service
        +
      2. x-verbose@.service
        # file: roles/yavdr-xorg/templates/systemd/system/x-verbose@.service.j2
        @@ -2445,7 +2461,7 @@ In order to achive a clean shutdown of the session, x@t7.service is
         
      3. -
      4. Drop-in snippet for x@.service
        +
      5. Drop-in snippet for x@.service
        [Unit]
        @@ -2471,7 +2487,7 @@ In order to achive a clean shutdown of the session, x@t7.service is
         
      6. -
      7. Drop-in snippet for vdr.service
        +
      8. Drop-in snippet for vdr.service
        {{ ansible_managed | comment }}
        @@ -2483,7 +2499,7 @@ In order to achive a clean shutdown of the session, x@t7.service is
         
      9. -
      10. xorg.conf snippets
        +
      11. xorg.conf snippets
        {{ ansible_managed | comment }}
        @@ -2497,7 +2513,7 @@ EndSection
         
      12. -
      13. xorg.conf
        +
      14. xorg.conf
        Section "Device"
        @@ -2564,7 +2580,7 @@ Section "Screen"
             DefaultDepth    24
             Option         "nvidiaXineramaInfoOrder" "{{ xorg.primary.connector }}"
             Option         "UseDisplayDevice" "{{ xorg.primary.connector }}"
        -    Option         "metamodes" "{{ xorg.primary.connector }}: {{ xorg.primary.mode }} +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
        +    Option         "metamodes" "{{ xorg.primary.connector }}: {{ xorg.primary.mode }} +0+0 {ForceCompositionPipeline=Off, ForceFullCompositionPipeline=Off}"
             Option         "AllowIndirectGLXProtocol" "off"
             Option         "TripleBuffer" "on"
             Option         "SLI" "Off"
        @@ -2605,7 +2621,7 @@ Section "Screen"
             #Option         "ConnectedMonitor" "{{ xorg.secondary.connector }}"
             Option         "UseDisplayDevice" "{{ xorg.secondary.connector }}"
             #Option         "CustomEDID" "{{ xorg.secondary.connector }}:/etc/X11/edid.{{ xorg.secondary.connector }}.bin"
        -    Option         "metamodes" "{{ xorg.secondary.connector }}: {{ xorg.secondary.mode }} +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
        +    Option         "metamodes" "{{ xorg.secondary.connector }}: {{ xorg.secondary.mode }} +0+0 {ForceCompositionPipeline=Off, ForceFullCompositionPipeline=Off}"
             Option         "AllowIndirectGLXProtocol" "off"
             Option         "TripleBuffer" "on"
             Option         "SLI" "Off"
        @@ -2616,6 +2632,10 @@ Section "Screen"
             EndSubSection
         EndSection
         {% endif %}
        +
        +Section "Extensions"
        +    Option         "Composite" "Disable"
        +EndSection
         
        @@ -2819,7 +2839,7 @@ EndSection
    3. -
    4. vdr
      +
    5. vdr

      Set environment variables for system locale and user session on startup @@ -2837,16 +2857,16 @@ Set environment variables for system locale and user session on startup

    -
    -

    7.11 yavdr-desktop

    +
    +

    7.11 yavdr-desktop

    -
    -

    7.11.1 Tasks

    +
    +

    7.11.1 Tasks

      -
    1. main.yml
      +
    2. main.yml
      ---
      @@ -2987,14 +3007,14 @@ Set environment variables for system locale and user session on startup
       
    -
    -

    7.11.2 Templates

    +
    +

    7.11.2 Templates

      -
    1. xorg configuration
      +
    2. xorg configuration
        -
      1. .Xresources
        +
      2. .Xresources
        xterm*background: Black
        @@ -3017,7 +3037,7 @@ XTerm.vt100.font: 7x13
         
      3. -
      4. .xinitrc
        +
      5. .xinitrc
        #!/bin/bash
        @@ -3029,9 +3049,9 @@ XTerm.vt100.font: 7x13
         
    3. -
    4. openbox
      +
    5. openbox
        -
      1. autostart
        +
      2. autostart
        # forward environment variables to an environment file and the systemd user session
        @@ -3057,7 +3077,7 @@ feh --bg-center "/usr/share/yavdr/images/yavdr_logo.png
           systemctl --user disable "$service"
         done
         
        -if which dbus-update-activation-environment >/dev/null 2>&1; then
        +if which dbus-update-activation-environment >/dev/null 2>&1; then
                 dbus-update-activation-environment DISPLAY XAUTHORITY XDG_RUNTIME_DIR
         fi
         
        @@ -3067,163 +3087,163 @@ systemctl --user isolate yavdr-desktop.target
         
      3. -
      4. rc.xml
        +
      5. rc.xml
        -
        <?xml version="1.0" encoding="UTF-8"?>
        -<openbox_config xmlns="http://openbox.org/3.4/rc" xmlns:xi="http://www.w3.org/2001/XInclude">
        -<!-- Do not edit this file, it will be overwritten on install.
        -        Copy the file to $HOME/.config/openbox/ instead. -->
        +
        <?xml version="1.0" encoding="UTF-8"?>
        +<openbox_config xmlns="http://openbox.org/3.4/rc" xmlns:xi="http://www.w3.org/2001/XInclude">
        +<!-- Do not edit this file, it will be overwritten on install.
        +        Copy the file to $HOME/.config/openbox/ instead. -->
           <resistance>
             <strength>10</strength>
             <screen_edge_strength>20</screen_edge_strength>
           </resistance>
           <focus>
             <focusNew>yes</focusNew>
        -    <!-- always try to focus new windows when they appear. other rules do
        -       apply -->
        +    <!-- always try to focus new windows when they appear. other rules do
        +       apply -->
             <followMouse>no</followMouse>
        -    <!-- move focus to a window when you move the mouse into it -->
        +    <!-- move focus to a window when you move the mouse into it -->
             <focusLast>yes</focusLast>
        -    <!-- focus the last used window when changing desktops, instead of the one
        -       under the mouse pointer. when followMouse is enabled -->
        +    <!-- focus the last used window when changing desktops, instead of the one
        +       under the mouse pointer. when followMouse is enabled -->
             <underMouse>no</underMouse>
        -    <!-- move focus under the mouse, even when the mouse is not moving -->
        +    <!-- move focus under the mouse, even when the mouse is not moving -->
             <focusDelay>200</focusDelay>
        -    <!-- when followMouse is enabled, the mouse must be inside the window for
        -       this many milliseconds (1000 = 1 sec) before moving focus to it -->
        +    <!-- when followMouse is enabled, the mouse must be inside the window for
        +       this many milliseconds (1000 = 1 sec) before moving focus to it -->
             <raiseOnFocus>no</raiseOnFocus>
        -    <!-- when followMouse is enabled, and a window is given focus by moving the
        -       mouse into it, also raise the window -->
        +    <!-- when followMouse is enabled, and a window is given focus by moving the
        +       mouse into it, also raise the window -->
           </focus>
           <placement>
             <policy>Smart</policy>
        -    <!-- 'Smart' or 'UnderMouse' -->
        +    <!-- 'Smart' or 'UnderMouse' -->
             <center>yes</center>
        -    <!-- whether to place windows in the center of the free area found or
        -       the top left corner -->
        +    <!-- whether to place windows in the center of the free area found or
        +       the top left corner -->
             <monitor>Active</monitor>
        -    <!-- with Smart placement on a multi-monitor system, try to place new windows
        -       on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where
        -       the active window is, 'Primary' - only on the primary monitor -->
        +    <!-- with Smart placement on a multi-monitor system, try to place new windows
        +       on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where
        +       the active window is, 'Primary' - only on the primary monitor -->
             <primaryMonitor>Active</primaryMonitor>
        -    <!-- The monitor where Openbox should place popup dialogs such as the
        -       focus cycling popup, or the desktop switch popup.  It can be an index
        -       from 1, specifying a particular monitor.  Or it can be one of the
        -       following: 'Mouse' - where the mouse is, or
        -                  'Active' - where the active window is -->
        +    <!-- The monitor where Openbox should place popup dialogs such as the
        +       focus cycling popup, or the desktop switch popup.  It can be an index
        +       from 1, specifying a particular monitor.  Or it can be one of the
        +       following: 'Mouse' - where the mouse is, or
        +                  'Active' - where the active window is -->
           </placement>
           <theme>
             <name>Onyx</name>
             <titleLayout>NLIMC</titleLayout>
        -    <!--
        -      available characters are NDSLIMC, each can occur at most once.
        -      N: window icon
        -      L: window label (AKA title).
        -      I: iconify
        -      M: maximize
        -      C: close
        -      S: shade (roll up/down)
        -      D: omnipresent (on all desktops).
        -  -->
        +    <!--
        +      available characters are NDSLIMC, each can occur at most once.
        +      N: window icon
        +      L: window label (AKA title).
        +      I: iconify
        +      M: maximize
        +      C: close
        +      S: shade (roll up/down)
        +      D: omnipresent (on all desktops).
        +  -->
             <keepBorder>no</keepBorder>
             <animateIconify>yes</animateIconify>
        -    <font place="ActiveWindow">
        +    <font place="ActiveWindow">
               <name>sans</name>
               <size>8</size>
        -      <!-- font size in points -->
        +      <!-- font size in points -->
               <weight>bold</weight>
        -      <!-- 'bold' or 'normal' -->
        +      <!-- 'bold' or 'normal' -->
               <slant>normal</slant>
        -      <!-- 'italic' or 'normal' -->
        +      <!-- 'italic' or 'normal' -->
             </font>
        -    <font place="InactiveWindow">
        +    <font place="InactiveWindow">
               <name>sans</name>
               <size>8</size>
        -      <!-- font size in points -->
        +      <!-- font size in points -->
               <weight>bold</weight>
        -      <!-- 'bold' or 'normal' -->
        +      <!-- 'bold' or 'normal' -->
               <slant>normal</slant>
        -      <!-- 'italic' or 'normal' -->
        +      <!-- 'italic' or 'normal' -->
             </font>
        -    <font place="MenuHeader">
        +    <font place="MenuHeader">
               <name>sans</name>
               <size>9</size>
        -      <!-- font size in points -->
        +      <!-- font size in points -->
               <weight>normal</weight>
        -      <!-- 'bold' or 'normal' -->
        +      <!-- 'bold' or 'normal' -->
               <slant>normal</slant>
        -      <!-- 'italic' or 'normal' -->
        +      <!-- 'italic' or 'normal' -->
             </font>
        -    <font place="MenuItem">
        +    <font place="MenuItem">
               <name>sans</name>
               <size>9</size>
        -      <!-- font size in points -->
        +      <!-- font size in points -->
               <weight>normal</weight>
        -      <!-- 'bold' or 'normal' -->
        +      <!-- 'bold' or 'normal' -->
               <slant>normal</slant>
        -      <!-- 'italic' or 'normal' -->
        +      <!-- 'italic' or 'normal' -->
             </font>
        -    <font place="ActiveOnScreenDisplay">
        +    <font place="ActiveOnScreenDisplay">
               <name>sans</name>
               <size>9</size>
        -      <!-- font size in points -->
        +      <!-- font size in points -->
               <weight>bold</weight>
        -      <!-- 'bold' or 'normal' -->
        +      <!-- 'bold' or 'normal' -->
               <slant>normal</slant>
        -      <!-- 'italic' or 'normal' -->
        +      <!-- 'italic' or 'normal' -->
             </font>
        -    <font place="InactiveOnScreenDisplay">
        +    <font place="InactiveOnScreenDisplay">
               <name>sans</name>
               <size>9</size>
        -      <!-- font size in points -->
        +      <!-- font size in points -->
               <weight>bold</weight>
        -      <!-- 'bold' or 'normal' -->
        +      <!-- 'bold' or 'normal' -->
               <slant>normal</slant>
        -      <!-- 'italic' or 'normal' -->
        +      <!-- 'italic' or 'normal' -->
             </font>
           </theme>
           <desktops>
        -    <!-- this stuff is only used at startup, pagers allow you to change them
        -       during a session
        +    <!-- this stuff is only used at startup, pagers allow you to change them
        +       during a session
         
        -       these are default values to use when other ones are not already set
        -       by other applications, or saved in your session
        +       these are default values to use when other ones are not already set
        +       by other applications, or saved in your session
         
        -       use obconf if you want to change these without having to log out
        -       and back in -->
        +       use obconf if you want to change these without having to log out
        +       and back in -->
             <number>2</number>
             <firstdesk>1</firstdesk>
             <names>
        -      <!-- set names up here if you want to, like this:
        -    <name>desktop 1</name>
        -    <name>desktop 2</name>
        -    -->
        +      <!-- set names up here if you want to, like this:
        +    <name>desktop 1</name>
        +    <name>desktop 2</name>
        +    -->
             </names>
             <popupTime>875</popupTime>
        -    <!-- The number of milliseconds to show the popup for when switching
        -       desktops.  Set this to 0 to disable the popup. -->
        +    <!-- The number of milliseconds to show the popup for when switching
        +       desktops.  Set this to 0 to disable the popup. -->
           </desktops>
           <resize>
             <drawContents>yes</drawContents>
             <popupShow>Nonpixel</popupShow>
        -    <!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
        +    <!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
             <popupPosition>Center</popupPosition>
        -    <!-- 'Center', 'Top', or 'Fixed' -->
        +    <!-- 'Center', 'Top', or 'Fixed' -->
             <popupFixedPosition>
        -      <!-- these are used if popupPosition is set to 'Fixed' -->
        +      <!-- these are used if popupPosition is set to 'Fixed' -->
               <x>10</x>
        -      <!-- positive number for distance from left edge, negative number for
        -         distance from right edge, or 'Center' -->
        +      <!-- positive number for distance from left edge, negative number for
        +         distance from right edge, or 'Center' -->
               <y>10</y>
        -      <!-- positive number for distance from top edge, negative number for
        -         distance from bottom edge, or 'Center' -->
        +      <!-- positive number for distance from top edge, negative number for
        +         distance from bottom edge, or 'Center' -->
             </popupFixedPosition>
           </resize>
        -  <!-- You can reserve a portion of your screen where windows will not cover when
        -     they are maximized, or when they are initially placed.
        -     Many programs reserve space automatically, but you can use this in other
        -     cases. -->
        +  <!-- You can reserve a portion of your screen where windows will not cover when
        +     they are maximized, or when they are initially placed.
        +     Many programs reserve space automatically, but you can use this in other
        +     cases. -->
           <margins>
             <top>0</top>
             <bottom>0</bottom>
        @@ -3232,652 +3252,652 @@ systemctl --user isolate yavdr-desktop.target
           </margins>
           <dock>
             <position>TopLeft</position>
        -    <!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
        +    <!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
             <floatingX>0</floatingX>
             <floatingY>0</floatingY>
             <noStrut>no</noStrut>
             <stacking>Above</stacking>
        -    <!-- 'Above', 'Normal', or 'Below' -->
        +    <!-- 'Above', 'Normal', or 'Below' -->
             <direction>Vertical</direction>
        -    <!-- 'Vertical' or 'Horizontal' -->
        +    <!-- 'Vertical' or 'Horizontal' -->
             <autoHide>no</autoHide>
             <hideDelay>300</hideDelay>
        -    <!-- in milliseconds (1000 = 1 second) -->
        +    <!-- in milliseconds (1000 = 1 second) -->
             <showDelay>300</showDelay>
        -    <!-- in milliseconds (1000 = 1 second) -->
        +    <!-- in milliseconds (1000 = 1 second) -->
             <moveButton>Middle</moveButton>
        -    <!-- 'Left', 'Middle', 'Right' -->
        +    <!-- 'Left', 'Middle', 'Right' -->
           </dock>
           <keyboard>
             <chainQuitKey>C-g</chainQuitKey>
        -    <!-- Keybindings for desktop switching -->
        -    <keybind key="C-A-Left">
        -      <action name="GoToDesktop">
        +    <!-- Keybindings for desktop switching -->
        +    <keybind key="C-A-Left">
        +      <action name="GoToDesktop">
                 <to>left</to>
                 <wrap>no</wrap>
               </action>
             </keybind>
        -    <keybind key="C-A-Right">
        -      <action name="GoToDesktop">
        +    <keybind key="C-A-Right">
        +      <action name="GoToDesktop">
                 <to>right</to>
                 <wrap>no</wrap>
               </action>
             </keybind>
        -    <keybind key="C-A-Up">
        -      <action name="GoToDesktop">
        +    <keybind key="C-A-Up">
        +      <action name="GoToDesktop">
                 <to>up</to>
                 <wrap>no</wrap>
               </action>
             </keybind>
        -    <keybind key="C-A-Down">
        -      <action name="GoToDesktop">
        +    <keybind key="C-A-Down">
        +      <action name="GoToDesktop">
                 <to>down</to>
                 <wrap>no</wrap>
               </action>
             </keybind>
        -    <keybind key="S-A-Left">
        -      <action name="SendToDesktop">
        +    <keybind key="S-A-Left">
        +      <action name="SendToDesktop">
                 <to>left</to>
                 <wrap>no</wrap>
               </action>
             </keybind>
        -    <keybind key="S-A-Right">
        -      <action name="SendToDesktop">
        +    <keybind key="S-A-Right">
        +      <action name="SendToDesktop">
                 <to>right</to>
                 <wrap>no</wrap>
               </action>
             </keybind>
        -    <keybind key="S-A-Up">
        -      <action name="SendToDesktop">
        +    <keybind key="S-A-Up">
        +      <action name="SendToDesktop">
                 <to>up</to>
                 <wrap>no</wrap>
               </action>
             </keybind>
        -    <keybind key="S-A-Down">
        -      <action name="SendToDesktop">
        +    <keybind key="S-A-Down">
        +      <action name="SendToDesktop">
                 <to>down</to>
                 <wrap>no</wrap>
               </action>
             </keybind>
        -    <keybind key="W-F1">
        -      <action name="GoToDesktop">
        +    <keybind key="W-F1">
        +      <action name="GoToDesktop">
                 <to>1</to>
               </action>
             </keybind>
        -    <keybind key="W-F2">
        -      <action name="GoToDesktop">
        +    <keybind key="W-F2">
        +      <action name="GoToDesktop">
                 <to>2</to>
               </action>
             </keybind>
        -    <keybind key="W-F3">
        -      <action name="GoToDesktop">
        +    <keybind key="W-F3">
        +      <action name="GoToDesktop">
                 <to>3</to>
               </action>
             </keybind>
        -    <keybind key="W-F4">
        -      <action name="GoToDesktop">
        +    <keybind key="W-F4">
        +      <action name="GoToDesktop">
                 <to>4</to>
               </action>
             </keybind>
        -    <keybind key="W-d">
        -      <action name="ToggleShowDesktop"/>
        +    <keybind key="W-d">
        +      <action name="ToggleShowDesktop"/>
             </keybind>
        -    <!-- Keybindings for windows -->
        -    <keybind key="A-F4">
        -      <action name="Close"/>
        +    <!-- Keybindings for windows -->
        +    <keybind key="A-F4">
        +      <action name="Close"/>
             </keybind>
        -    <keybind key="A-Escape">
        -      <action name="Lower"/>
        -      <action name="FocusToBottom"/>
        -      <action name="Unfocus"/>
        +    <keybind key="A-Escape">
        +      <action name="Lower"/>
        +      <action name="FocusToBottom"/>
        +      <action name="Unfocus"/>
             </keybind>
        -    <keybind key="A-space">
        -      <action name="ShowMenu">
        +    <keybind key="A-space">
        +      <action name="ShowMenu">
                 <menu>client-menu</menu>
               </action>
             </keybind>
        -    <!-- Take a screenshot of the current window with scrot when Alt+Print are pressed -->
        -    <keybind key="A-Print">
        -      <action name="Execute">
        +    <!-- Take a screenshot of the current window with scrot when Alt+Print are pressed -->
        +    <keybind key="A-Print">
        +      <action name="Execute">
                 <command>scrot -s</command>
               </action>
             </keybind>
        -    <!-- Keybindings for window switching -->
        -    <keybind key="A-Tab">
        -      <action name="NextWindow">
        +    <!-- Keybindings for window switching -->
        +    <keybind key="A-Tab">
        +      <action name="NextWindow">
                 <finalactions>
        -          <action name="Focus"/>
        -          <action name="Raise"/>
        -          <action name="Unshade"/>
        +          <action name="Focus"/>
        +          <action name="Raise"/>
        +          <action name="Unshade"/>
                 </finalactions>
               </action>
             </keybind>
        -    <keybind key="A-S-Tab">
        -      <action name="PreviousWindow">
        +    <keybind key="A-S-Tab">
        +      <action name="PreviousWindow">
                 <finalactions>
        -          <action name="Focus"/>
        -          <action name="Raise"/>
        -          <action name="Unshade"/>
        +          <action name="Focus"/>
        +          <action name="Raise"/>
        +          <action name="Unshade"/>
                 </finalactions>
               </action>
             </keybind>
        -    <keybind key="C-A-Tab">
        -      <action name="NextWindow">
        +    <keybind key="C-A-Tab">
        +      <action name="NextWindow">
                 <panels>yes</panels>
                 <desktop>yes</desktop>
                 <finalactions>
        -          <action name="Focus"/>
        -          <action name="Raise"/>
        -          <action name="Unshade"/>
        +          <action name="Focus"/>
        +          <action name="Raise"/>
        +          <action name="Unshade"/>
                 </finalactions>
               </action>
             </keybind>
        -    <!-- Keybindings for window switching with the arrow keys -->
        -    <keybind key="W-S-Right">
        -      <action name="DirectionalCycleWindows">
        +    <!-- Keybindings for window switching with the arrow keys -->
        +    <keybind key="W-S-Right">
        +      <action name="DirectionalCycleWindows">
                 <direction>right</direction>
               </action>
             </keybind>
        -    <keybind key="W-S-Left">
        -      <action name="DirectionalCycleWindows">
        +    <keybind key="W-S-Left">
        +      <action name="DirectionalCycleWindows">
                 <direction>left</direction>
               </action>
             </keybind>
        -    <keybind key="W-S-Up">
        -      <action name="DirectionalCycleWindows">
        +    <keybind key="W-S-Up">
        +      <action name="DirectionalCycleWindows">
                 <direction>up</direction>
               </action>
             </keybind>
        -    <keybind key="W-S-Down">
        -      <action name="DirectionalCycleWindows">
        +    <keybind key="W-S-Down">
        +      <action name="DirectionalCycleWindows">
                 <direction>down</direction>
               </action>
             </keybind>
           </keyboard>
           <mouse>
             <dragThreshold>1</dragThreshold>
        -    <!-- number of pixels the mouse must move before a drag begins -->
        +    <!-- number of pixels the mouse must move before a drag begins -->
             <doubleClickTime>500</doubleClickTime>
        -    <!-- in milliseconds (1000 = 1 second) -->
        +    <!-- in milliseconds (1000 = 1 second) -->
             <screenEdgeWarpTime>400</screenEdgeWarpTime>
        -    <!-- Time before changing desktops when the pointer touches the edge of the
        -       screen while moving a window, in milliseconds (1000 = 1 second).
        -       Set this to 0 to disable warping -->
        +    <!-- Time before changing desktops when the pointer touches the edge of the
        +       screen while moving a window, in milliseconds (1000 = 1 second).
        +       Set this to 0 to disable warping -->
             <screenEdgeWarpMouse>false</screenEdgeWarpMouse>
        -    <!-- Set this to TRUE to move the mouse pointer across the desktop when
        -       switching due to hitting the edge of the screen -->
        -    <context name="Frame">
        -      <mousebind button="A-Left" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        +    <!-- Set this to TRUE to move the mouse pointer across the desktop when
        +       switching due to hitting the edge of the screen -->
        +    <context name="Frame">
        +      <mousebind button="A-Left" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
               </mousebind>
        -      <mousebind button="A-Left" action="Click">
        -        <action name="Unshade"/>
        +      <mousebind button="A-Left" action="Click">
        +        <action name="Unshade"/>
               </mousebind>
        -      <mousebind button="A-Left" action="Drag">
        -        <action name="Move"/>
        +      <mousebind button="A-Left" action="Drag">
        +        <action name="Move"/>
               </mousebind>
        -      <mousebind button="A-Right" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="Unshade"/>
        +      <mousebind button="A-Right" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="Unshade"/>
               </mousebind>
        -      <mousebind button="A-Right" action="Drag">
        -        <action name="Resize"/>
        +      <mousebind button="A-Right" action="Drag">
        +        <action name="Resize"/>
               </mousebind>
        -      <mousebind button="A-Middle" action="Press">
        -        <action name="Lower"/>
        -        <action name="FocusToBottom"/>
        -        <action name="Unfocus"/>
        +      <mousebind button="A-Middle" action="Press">
        +        <action name="Lower"/>
        +        <action name="FocusToBottom"/>
        +        <action name="Unfocus"/>
               </mousebind>
        -      <mousebind button="A-Up" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="A-Up" action="Click">
        +        <action name="GoToDesktop">
                   <to>previous</to>
                 </action>
               </mousebind>
        -      <mousebind button="A-Down" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="A-Down" action="Click">
        +        <action name="GoToDesktop">
                   <to>next</to>
                 </action>
               </mousebind>
        -      <mousebind button="C-A-Up" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="C-A-Up" action="Click">
        +        <action name="GoToDesktop">
                   <to>previous</to>
                 </action>
               </mousebind>
        -      <mousebind button="C-A-Down" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="C-A-Down" action="Click">
        +        <action name="GoToDesktop">
                   <to>next</to>
                 </action>
               </mousebind>
        -      <mousebind button="A-S-Up" action="Click">
        -        <action name="SendToDesktop">
        +      <mousebind button="A-S-Up" action="Click">
        +        <action name="SendToDesktop">
                   <to>previous</to>
                 </action>
               </mousebind>
        -      <mousebind button="A-S-Down" action="Click">
        -        <action name="SendToDesktop">
        +      <mousebind button="A-S-Down" action="Click">
        +        <action name="SendToDesktop">
                   <to>next</to>
                 </action>
               </mousebind>
             </context>
        -    <context name="Titlebar">
        -      <mousebind button="Left" action="Drag">
        -        <action name="Move"/>
        +    <context name="Titlebar">
        +      <mousebind button="Left" action="Drag">
        +        <action name="Move"/>
               </mousebind>
        -      <mousebind button="Left" action="DoubleClick">
        -        <action name="ToggleMaximize"/>
        +      <mousebind button="Left" action="DoubleClick">
        +        <action name="ToggleMaximize"/>
               </mousebind>
        -      <mousebind button="Up" action="Click">
        -        <action name="if">
        +      <mousebind button="Up" action="Click">
        +        <action name="if">
                   <shaded>no</shaded>
                   <then>
        -            <action name="Shade"/>
        -            <action name="FocusToBottom"/>
        -            <action name="Unfocus"/>
        -            <action name="Lower"/>
        +            <action name="Shade"/>
        +            <action name="FocusToBottom"/>
        +            <action name="Unfocus"/>
        +            <action name="Lower"/>
                   </then>
                 </action>
               </mousebind>
        -      <mousebind button="Down" action="Click">
        -        <action name="if">
        +      <mousebind button="Down" action="Click">
        +        <action name="if">
                   <shaded>yes</shaded>
                   <then>
        -            <action name="Unshade"/>
        -            <action name="Raise"/>
        +            <action name="Unshade"/>
        +            <action name="Raise"/>
                   </then>
                 </action>
               </mousebind>
             </context>
        -    <context name="Titlebar Top Right Bottom Left TLCorner TRCorner BRCorner BLCorner">
        -      <mousebind button="Left" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="Unshade"/>
        +    <context name="Titlebar Top Right Bottom Left TLCorner TRCorner BRCorner BLCorner">
        +      <mousebind button="Left" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="Unshade"/>
               </mousebind>
        -      <mousebind button="Middle" action="Press">
        -        <action name="Lower"/>
        -        <action name="FocusToBottom"/>
        -        <action name="Unfocus"/>
        +      <mousebind button="Middle" action="Press">
        +        <action name="Lower"/>
        +        <action name="FocusToBottom"/>
        +        <action name="Unfocus"/>
               </mousebind>
        -      <mousebind button="Right" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="ShowMenu">
        +      <mousebind button="Right" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="ShowMenu">
                   <menu>client-menu</menu>
                 </action>
               </mousebind>
             </context>
        -    <context name="Top">
        -      <mousebind button="Left" action="Drag">
        -        <action name="Resize">
        +    <context name="Top">
        +      <mousebind button="Left" action="Drag">
        +        <action name="Resize">
                   <edge>top</edge>
                 </action>
               </mousebind>
             </context>
        -    <context name="Left">
        -      <mousebind button="Left" action="Drag">
        -        <action name="Resize">
        +    <context name="Left">
        +      <mousebind button="Left" action="Drag">
        +        <action name="Resize">
                   <edge>left</edge>
                 </action>
               </mousebind>
             </context>
        -    <context name="Right">
        -      <mousebind button="Left" action="Drag">
        -        <action name="Resize">
        +    <context name="Right">
        +      <mousebind button="Left" action="Drag">
        +        <action name="Resize">
                   <edge>right</edge>
                 </action>
               </mousebind>
             </context>
        -    <context name="Bottom">
        -      <mousebind button="Left" action="Drag">
        -        <action name="Resize">
        +    <context name="Bottom">
        +      <mousebind button="Left" action="Drag">
        +        <action name="Resize">
                   <edge>bottom</edge>
                 </action>
               </mousebind>
        -      <mousebind button="Right" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="ShowMenu">
        +      <mousebind button="Right" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="ShowMenu">
                   <menu>client-menu</menu>
                 </action>
               </mousebind>
             </context>
        -    <context name="TRCorner BRCorner TLCorner BLCorner">
        -      <mousebind button="Left" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="Unshade"/>
        +    <context name="TRCorner BRCorner TLCorner BLCorner">
        +      <mousebind button="Left" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="Unshade"/>
               </mousebind>
        -      <mousebind button="Left" action="Drag">
        -        <action name="Resize"/>
        +      <mousebind button="Left" action="Drag">
        +        <action name="Resize"/>
               </mousebind>
             </context>
        -    <context name="Client">
        -      <mousebind button="Left" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        +    <context name="Client">
        +      <mousebind button="Left" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
               </mousebind>
        -      <mousebind button="Middle" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        +      <mousebind button="Middle" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
               </mousebind>
        -      <mousebind button="Right" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        +      <mousebind button="Right" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
               </mousebind>
             </context>
        -    <context name="Icon">
        -      <mousebind button="Left" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="Unshade"/>
        -        <action name="ShowMenu">
        +    <context name="Icon">
        +      <mousebind button="Left" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="Unshade"/>
        +        <action name="ShowMenu">
                   <menu>client-menu</menu>
                 </action>
               </mousebind>
        -      <mousebind button="Right" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="ShowMenu">
        +      <mousebind button="Right" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="ShowMenu">
                   <menu>client-menu</menu>
                 </action>
               </mousebind>
             </context>
        -    <context name="AllDesktops">
        -      <mousebind button="Left" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="Unshade"/>
        +    <context name="AllDesktops">
        +      <mousebind button="Left" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="Unshade"/>
               </mousebind>
        -      <mousebind button="Left" action="Click">
        -        <action name="ToggleOmnipresent"/>
        +      <mousebind button="Left" action="Click">
        +        <action name="ToggleOmnipresent"/>
               </mousebind>
             </context>
        -    <context name="Shade">
        -      <mousebind button="Left" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        +    <context name="Shade">
        +      <mousebind button="Left" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
               </mousebind>
        -      <mousebind button="Left" action="Click">
        -        <action name="ToggleShade"/>
        +      <mousebind button="Left" action="Click">
        +        <action name="ToggleShade"/>
               </mousebind>
             </context>
        -    <context name="Iconify">
        -      <mousebind button="Left" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        +    <context name="Iconify">
        +      <mousebind button="Left" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
               </mousebind>
        -      <mousebind button="Left" action="Click">
        -        <action name="Iconify"/>
        +      <mousebind button="Left" action="Click">
        +        <action name="Iconify"/>
               </mousebind>
             </context>
        -    <context name="Maximize">
        -      <mousebind button="Left" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="Unshade"/>
        +    <context name="Maximize">
        +      <mousebind button="Left" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="Unshade"/>
               </mousebind>
        -      <mousebind button="Middle" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="Unshade"/>
        +      <mousebind button="Middle" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="Unshade"/>
               </mousebind>
        -      <mousebind button="Right" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="Unshade"/>
        +      <mousebind button="Right" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="Unshade"/>
               </mousebind>
        -      <mousebind button="Left" action="Click">
        -        <action name="ToggleMaximize"/>
        +      <mousebind button="Left" action="Click">
        +        <action name="ToggleMaximize"/>
               </mousebind>
        -      <mousebind button="Middle" action="Click">
        -        <action name="ToggleMaximize">
        +      <mousebind button="Middle" action="Click">
        +        <action name="ToggleMaximize">
                   <direction>vertical</direction>
                 </action>
               </mousebind>
        -      <mousebind button="Right" action="Click">
        -        <action name="ToggleMaximize">
        +      <mousebind button="Right" action="Click">
        +        <action name="ToggleMaximize">
                   <direction>horizontal</direction>
                 </action>
               </mousebind>
             </context>
        -    <context name="Close">
        -      <mousebind button="Left" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        -        <action name="Unshade"/>
        +    <context name="Close">
        +      <mousebind button="Left" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
        +        <action name="Unshade"/>
               </mousebind>
        -      <mousebind button="Left" action="Click">
        -        <action name="Close"/>
        +      <mousebind button="Left" action="Click">
        +        <action name="Close"/>
               </mousebind>
             </context>
        -    <context name="Desktop">
        -      <mousebind button="Up" action="Click">
        -        <action name="GoToDesktop">
        +    <context name="Desktop">
        +      <mousebind button="Up" action="Click">
        +        <action name="GoToDesktop">
                   <to>previous</to>
                 </action>
               </mousebind>
        -      <mousebind button="Down" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="Down" action="Click">
        +        <action name="GoToDesktop">
                   <to>next</to>
                 </action>
               </mousebind>
        -      <mousebind button="A-Up" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="A-Up" action="Click">
        +        <action name="GoToDesktop">
                   <to>previous</to>
                 </action>
               </mousebind>
        -      <mousebind button="A-Down" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="A-Down" action="Click">
        +        <action name="GoToDesktop">
                   <to>next</to>
                 </action>
               </mousebind>
        -      <mousebind button="C-A-Up" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="C-A-Up" action="Click">
        +        <action name="GoToDesktop">
                   <to>previous</to>
                 </action>
               </mousebind>
        -      <mousebind button="C-A-Down" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="C-A-Down" action="Click">
        +        <action name="GoToDesktop">
                   <to>next</to>
                 </action>
               </mousebind>
        -      <mousebind button="Left" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        +      <mousebind button="Left" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
               </mousebind>
        -      <mousebind button="Right" action="Press">
        -        <action name="Focus"/>
        -        <action name="Raise"/>
        +      <mousebind button="Right" action="Press">
        +        <action name="Focus"/>
        +        <action name="Raise"/>
               </mousebind>
             </context>
        -    <context name="Root">
        -      <!-- Menus -->
        -      <mousebind button="Middle" action="Press">
        -        <action name="ShowMenu">
        +    <context name="Root">
        +      <!-- Menus -->
        +      <mousebind button="Middle" action="Press">
        +        <action name="ShowMenu">
                   <menu>client-list-combined-menu</menu>
                 </action>
               </mousebind>
        -      <mousebind button="Right" action="Press">
        -        <action name="ShowMenu">
        +      <mousebind button="Right" action="Press">
        +        <action name="ShowMenu">
                   <menu>root-menu</menu>
                 </action>
               </mousebind>
             </context>
        -    <context name="MoveResize">
        -      <mousebind button="Up" action="Click">
        -        <action name="GoToDesktop">
        +    <context name="MoveResize">
        +      <mousebind button="Up" action="Click">
        +        <action name="GoToDesktop">
                   <to>previous</to>
                 </action>
               </mousebind>
        -      <mousebind button="Down" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="Down" action="Click">
        +        <action name="GoToDesktop">
                   <to>next</to>
                 </action>
               </mousebind>
        -      <mousebind button="A-Up" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="A-Up" action="Click">
        +        <action name="GoToDesktop">
                   <to>previous</to>
                 </action>
               </mousebind>
        -      <mousebind button="A-Down" action="Click">
        -        <action name="GoToDesktop">
        +      <mousebind button="A-Down" action="Click">
        +        <action name="GoToDesktop">
                   <to>next</to>
                 </action>
               </mousebind>
             </context>
           </mouse>
           <menu>
        -    <!-- You can specify more than one menu file in here and they are all loaded,
        -       just don't make menu ids clash or, well, it'll be kind of pointless -->
        -    <!-- default menu file (or custom one in $HOME/.config/openbox/) -->
        -    <!-- system menu files on Debian systems -->
        +    <!-- You can specify more than one menu file in here and they are all loaded,
        +       just don't make menu ids clash or, well, it'll be kind of pointless -->
        +    <!-- default menu file (or custom one in $HOME/.config/openbox/) -->
        +    <!-- system menu files on Debian systems -->
             <file>/var/lib/openbox/debian-menu.xml</file>
             <file>menu.xml</file>
             <hideDelay>200</hideDelay>
        -    <!-- if a press-release lasts longer than this setting (in milliseconds), the
        -       menu is hidden again -->
        +    <!-- if a press-release lasts longer than this setting (in milliseconds), the
        +       menu is hidden again -->
             <middle>no</middle>
        -    <!-- center submenus vertically about the parent entry -->
        +    <!-- center submenus vertically about the parent entry -->
             <submenuShowDelay>100</submenuShowDelay>
        -    <!-- time to delay before showing a submenu after hovering over the parent
        -       entry.
        -       if this is a negative value, then the delay is infinite and the
        -       submenu will not be shown until it is clicked on -->
        +    <!-- time to delay before showing a submenu after hovering over the parent
        +       entry.
        +       if this is a negative value, then the delay is infinite and the
        +       submenu will not be shown until it is clicked on -->
             <submenuHideDelay>400</submenuHideDelay>
        -    <!-- time to delay before hiding a submenu when selecting another
        -       entry in parent menu
        -       if this is a negative value, then the delay is infinite and the
        -       submenu will not be hidden until a different submenu is opened -->
        +    <!-- time to delay before hiding a submenu when selecting another
        +       entry in parent menu
        +       if this is a negative value, then the delay is infinite and the
        +       submenu will not be hidden until a different submenu is opened -->
             <showIcons>yes</showIcons>
        -    <!-- controls if icons appear in the client-list-(combined-)menu -->
        +    <!-- controls if icons appear in the client-list-(combined-)menu -->
             <manageDesktops>yes</manageDesktops>
        -    <!-- show the manage desktops section in the client-list-(combined-)menu -->
        +    <!-- show the manage desktops section in the client-list-(combined-)menu -->
           </menu>
        -    <!--
        -  # this is an example with comments through out. use these to make your
        -  # own rules, but without the comments of course.
        -  # you may use one or more of the name/class/role/title/type rules to specify
        -  # windows to match
        +    <!--
        +  # this is an example with comments through out. use these to make your
        +  # own rules, but without the comments of course.
        +  # you may use one or more of the name/class/role/title/type rules to specify
        +  # windows to match
         
        -  <application name="the window's _OB_APP_NAME property (see obxprop)"
        -              class="the window's _OB_APP_CLASS property (see obxprop)"
        -          groupname="the window's _OB_APP_GROUP_NAME property (see obxprop)"
        -         groupclass="the window's _OB_APP_GROUP_CLASS property (see obxprop)"
        -               role="the window's _OB_APP_ROLE property (see obxprop)"
        -              title="the window's _OB_APP_TITLE property (see obxprop)"
        -               type="the window's _OB_APP_TYPE property (see obxprob)..
        -                      (if unspecified, then it is 'dialog' for child windows)">
        -  # you may set only one of name/class/role/title/type, or you may use more
        -  # than one together to restrict your matches.
        +  <application name="the window's _OB_APP_NAME property (see obxprop)"
        +              class="the window's _OB_APP_CLASS property (see obxprop)"
        +          groupname="the window's _OB_APP_GROUP_NAME property (see obxprop)"
        +         groupclass="the window's _OB_APP_GROUP_CLASS property (see obxprop)"
        +               role="the window's _OB_APP_ROLE property (see obxprop)"
        +              title="the window's _OB_APP_TITLE property (see obxprop)"
        +               type="the window's _OB_APP_TYPE property (see obxprob)..
        +                      (if unspecified, then it is 'dialog' for child windows)">
        +  # you may set only one of name/class/role/title/type, or you may use more
        +  # than one together to restrict your matches.
         
        -  # the name, class, role, and title use simple wildcard matching such as those
        -  # used by a shell. you can use * to match any characters and ? to match
        -  # any single character.
        +  # the name, class, role, and title use simple wildcard matching such as those
        +  # used by a shell. you can use * to match any characters and ? to match
        +  # any single character.
         
        -  # the type is one of: normal, dialog, splash, utility, menu, toolbar, dock,
        -  #    or desktop
        +  # the type is one of: normal, dialog, splash, utility, menu, toolbar, dock,
        +  #    or desktop
         
        -  # when multiple rules match a window, they will all be applied, in the
        -  # order that they appear in this list
        +  # when multiple rules match a window, they will all be applied, in the
        +  # order that they appear in this list
         
         
        -    # each rule element can be left out or set to 'default' to specify to not 
        -    # change that attribute of the window
        +    # each rule element can be left out or set to 'default' to specify to not 
        +    # change that attribute of the window
         
        -    <decor>yes</decor>
        -    # enable or disable window decorations
        +    <decor>yes</decor>
        +    # enable or disable window decorations
         
        -    <shade>no</shade>
        -    # make the window shaded when it appears, or not
        +    <shade>no</shade>
        +    # make the window shaded when it appears, or not
         
        -    <position force="no">
        -      # the position is only used if both an x and y coordinate are provided
        -      # (and not set to 'default')
        -      # when force is "yes", then the window will be placed here even if it
        -      # says you want it placed elsewhere.  this is to override buggy
        -      # applications who refuse to behave
        -      <x>center</x>
        -      # a number like 50, or 'center' to center on screen. use a negative number
        -      # to start from the right (or bottom for <y>), ie -50 is 50 pixels from
        -      # the right edge (or bottom). use 'default' to specify using value
        -      # provided by the application, or chosen by openbox, instead.
        -      <y>200</y>
        -      <monitor>1</monitor>
        -      # specifies the monitor in a xinerama setup.
        -      # 1 is the first head, or 'mouse' for wherever the mouse is
        -    </position>
        +    <position force="no">
        +      # the position is only used if both an x and y coordinate are provided
        +      # (and not set to 'default')
        +      # when force is "yes", then the window will be placed here even if it
        +      # says you want it placed elsewhere.  this is to override buggy
        +      # applications who refuse to behave
        +      <x>center</x>
        +      # a number like 50, or 'center' to center on screen. use a negative number
        +      # to start from the right (or bottom for <y>), ie -50 is 50 pixels from
        +      # the right edge (or bottom). use 'default' to specify using value
        +      # provided by the application, or chosen by openbox, instead.
        +      <y>200</y>
        +      <monitor>1</monitor>
        +      # specifies the monitor in a xinerama setup.
        +      # 1 is the first head, or 'mouse' for wherever the mouse is
        +    </position>
         
        -    <size>
        -      # the size to make the window.
        -      <width>20</width>
        -      # a number like 20, or 'default' to use the size given by the application.
        -      # you can use fractions such as 1/2 or percentages such as 75% in which
        -      # case the value is relative to the size of the monitor that the window
        -      # appears on.
        -      <height>30%</height>
        -    </size>
        +    <size>
        +      # the size to make the window.
        +      <width>20</width>
        +      # a number like 20, or 'default' to use the size given by the application.
        +      # you can use fractions such as 1/2 or percentages such as 75% in which
        +      # case the value is relative to the size of the monitor that the window
        +      # appears on.
        +      <height>30%</height>
        +    </size>
         
        -    <focus>yes</focus>
        -    # if the window should try be given focus when it appears. if this is set
        -    # to yes it doesn't guarantee the window will be given focus. some
        -    # restrictions may apply, but Openbox will try to
        +    <focus>yes</focus>
        +    # if the window should try be given focus when it appears. if this is set
        +    # to yes it doesn't guarantee the window will be given focus. some
        +    # restrictions may apply, but Openbox will try to
         
        -    <desktop>1</desktop>
        -    # 1 is the first desktop, 'all' for all desktops
        +    <desktop>1</desktop>
        +    # 1 is the first desktop, 'all' for all desktops
         
        -    <layer>normal</layer>
        -    # 'above', 'normal', or 'below'
        +    <layer>normal</layer>
        +    # 'above', 'normal', or 'below'
         
        -    <iconic>no</iconic>
        -    # make the window iconified when it appears, or not
        +    <iconic>no</iconic>
        +    # make the window iconified when it appears, or not
         
        -    <skip_pager>no</skip_pager>
        -    # asks to not be shown in pagers
        +    <skip_pager>no</skip_pager>
        +    # asks to not be shown in pagers
         
        -    <skip_taskbar>no</skip_taskbar>
        -    # asks to not be shown in taskbars. window cycling actions will also
        -    # skip past such windows
        +    <skip_taskbar>no</skip_taskbar>
        +    # asks to not be shown in taskbars. window cycling actions will also
        +    # skip past such windows
         
        -    <fullscreen>yes</fullscreen>
        -    # make the window in fullscreen mode when it appears
        +    <fullscreen>yes</fullscreen>
        +    # make the window in fullscreen mode when it appears
         
        -    <maximized>true</maximized>
        -    # 'Horizontal', 'Vertical' or boolean (yes/no)
        -  </application>
        +    <maximized>true</maximized>
        +    # 'Horizontal', 'Vertical' or boolean (yes/no)
        +  </application>
         
        -  # end of the example
        --->
        +  # end of the example
        +-->
           <applications>
        -    <application title="softhddevice">
        +    <application title="softhddevice">
               <decor>no</decor>
               <maximized>yes</maximized>
        -      <!--<skip_pager>yes</skip_pager>-->
        +      <!--<skip_pager>yes</skip_pager>-->
               <skip_taskbar>no</skip_taskbar>
             </application>
        -    <application title="vaapidevice">
        +    <application title="vaapidevice">
               <decor>no</decor>
               <maximized>yes</maximized>
        -      <!--<skip_pager>yes</skip_pager>-->
        +      <!--<skip_pager>yes</skip_pager>-->
               <skip_taskbar>no</skip_taskbar>
             </application>
        -    <application class="VDR">
        +    <application class="VDR">
               <decor>no</decor>
               <maximized>yes</maximized>
        -      <!--<skip_pager>yes</skip_pager>-->
        +      <!--<skip_pager>yes</skip_pager>-->
               <skip_taskbar>no</skip_taskbar>
             </application>
        -    <application title="browser">
        +    <application title="browser">
               <decor>no</decor>
               <maximized>yes</maximized>
        -      <!--<skip_pager>yes</skip_pager>-->
        +      <!--<skip_pager>yes</skip_pager>-->
               <skip_taskbar>no</skip_taskbar>
             </application>
        -    <application title="osd2Web">
        +    <application title="osd2Web">
               <decor>no</decor>
               <maximized>yes</maximized>
        -      <!--<skip_pager>yes</skip_pager>-->
        +      <!--<skip_pager>yes</skip_pager>-->
               <skip_taskbar>no</skip_taskbar>
             </application>
           </applications>
        @@ -3890,9 +3910,9 @@ systemctl --user isolate yavdr-desktop.target
         
    6. -
    7. Systemd User Session
      +
    8. Systemd User Session
        -
      1. yavdr-desktop.target
        +
      2. yavdr-desktop.target
        [Unit]
        @@ -3905,7 +3925,7 @@ systemctl --user isolate yavdr-desktop.target
         
      3. -
      4. detect-second-display
        +
      5. detect-second-display
        [Unit]
        @@ -3921,7 +3941,7 @@ systemctl --user isolate yavdr-desktop.target
         
      6. -
      7. openbox-second.service
        +
      8. openbox-second.service
        [Unit]
        @@ -3943,7 +3963,7 @@ systemctl --user isolate yavdr-desktop.target
         
      9. -
      10. osd2web.service
        +
      11. osd2web.service
        [Unit]
        @@ -3966,7 +3986,7 @@ systemctl --user isolate yavdr-desktop.target
         
      12. -
      13. tmux.service
        +
      14. tmux.service
        [Unit]
        @@ -3985,7 +4005,7 @@ systemctl --user isolate yavdr-desktop.target
         
      15. -
      16. wm-exit.service
        +
      17. wm-exit.service
        [Unit]
        @@ -4004,7 +4024,7 @@ systemctl --user isolate yavdr-desktop.target
         
    9. -
    10. irexec
      +
    11. irexec

      irexec.service starts irexec for the user session @@ -4026,9 +4046,9 @@ irexec.service starts irexec for the user session

      begin
      -    prog = irexec
      -    button = KEY_HOME
      -    config = frontend-dbus-send switchbetween kodi vdr
      +    prog = irexec
      +    button = KEY_HOME
      +    config = frontend-dbus-send switchbetween kodi vdr
       end
       
      @@ -4038,12 +4058,12 @@ end
    -
    -

    7.12 samba-install

    +
    +

    7.12 samba-install

    -
    -

    7.12.1 tasks

    +
    +

    7.12.1 tasks

    ---
    @@ -4065,12 +4085,12 @@ end
     
    -
    -

    7.13 samba-config

    +
    +

    7.13 samba-config

    -
    -

    7.13.1 tasks

    +
    +

    7.13.1 tasks

    ---
    @@ -4095,14 +4115,14 @@ end
     
    -
    -

    7.13.2 templates

    +
    +

    7.13.2 templates

      -
    1. smb.conf
      +
    2. smb.conf
        -
      1. global settings
        +
      2. global settings
        {{ ansible_managed | comment }}
        @@ -4188,7 +4208,7 @@ end
         
      3. -
      4. media directories
        +
      5. media directories
        {% for name, path in media_dirs.iteritems() %}
        @@ -4210,7 +4230,7 @@ end
         
      6. -
      7. include custom samba exports
        +
      8. include custom samba exports
        include = /etc/samba/smb.conf.custom
        @@ -4223,15 +4243,15 @@ end
         
    -
    -

    7.14 STARTED autoinstall-drivers

    +
    +

    7.14 STARTED autoinstall-drivers

    It would be nice to be able to detect if it is suitable to install those drivers:

    -
    -

    7.14.1 TODO sundtek for Sundtek devices (local or network connection)

    +
    +

    7.14.1 TODO sundtek for Sundtek devices (local or network connection)

    Vendor-IDs: @@ -4242,8 +4262,8 @@ Vendor-IDs:

    -
    -

    7.14.2 TODO drivers for TT S2-6400 FF

    +
    +

    7.14.2 TODO drivers for TT S2-6400 FF

    https://github.com/s-moch/linux-saa716x - kann man den relevanten Teil als dkms-Paket bauen? @@ -4251,15 +4271,15 @@ Vendor-IDs:

    -
    -

    7.15 autoinstall-ubuntu-drivers

    +
    +

    7.15 autoinstall-ubuntu-drivers

    The tool ubuntu-drivers is used to install the matching driver version for nvidia graphics cards, virtualbox guest additions and Intel and AMD microcode updates.

    -
    -

    7.15.1 tasks

    +
    +

    7.15.1 tasks

    ---
    @@ -4282,8 +4302,8 @@ The tool ubuntu-drivers is used to install the matching driver version for nvidi
     
    -
    -

    7.16 autoinstall-virtualbox-guest

    +
    +

    7.16 autoinstall-virtualbox-guest

    This role installs the guest additions for virtualbox guests on Ubuntu 16.04 @@ -4334,12 +4354,12 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04

    -
    -

    7.17 autoinstall-atric-usb

    +
    +

    7.17 autoinstall-atric-usb

    -
    -

    7.17.1 dependencies

    +
    +

    7.17.1 dependencies

    ---
    @@ -4351,8 +4371,8 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
     
    -
    -

    7.17.2 tasks

    +
    +

    7.17.2 tasks

    ---
    @@ -4394,8 +4414,8 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
     
    -
    -

    7.17.3 templates

    +
    +

    7.17.3 templates

    {{ ansible_managed | comment }}
    @@ -4424,12 +4444,12 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
     
    -
    -

    7.18 autoinstall-yausbir

    +
    +

    7.18 autoinstall-yausbir

    -
    -

    7.18.1 dependencies

    +
    +

    7.18.1 dependencies

    ---
    @@ -4440,8 +4460,8 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
     
    -
    -

    7.18.2 tasks

    +
    +

    7.18.2 tasks

    ---
    @@ -4483,8 +4503,8 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
     
    -
    -

    7.18.3 templates

    +
    +

    7.18.3 templates

    {{ ansible_managed | comment }}
    @@ -4512,15 +4532,15 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
     
    -
    -

    7.19 autoinstall-satip

    +
    +

    7.19 autoinstall-satip

    If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip is installed.

    -
    -

    7.19.1 tasks

    +
    +

    7.19.1 tasks

    ---
    @@ -4545,12 +4565,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
     
    -
    -

    7.20 autoinstall-targavfd

    +
    +

    7.20 autoinstall-targavfd

    -
    -

    7.20.1 tasks

    +
    +

    7.20.1 tasks

    ---
    @@ -4566,12 +4586,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
     
    -
    -

    7.21 autoinstall-imonlcd

    +
    +

    7.21 autoinstall-imonlcd

    -
    -

    7.21.1 tasks

    +
    +

    7.21.1 tasks

    ---
    @@ -4587,12 +4607,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
     
    -
    -

    7.22 autoinstall-libcecdaemon

    +
    +

    7.22 autoinstall-libcecdaemon

    -
    -

    7.22.1 tasks

    +
    +

    7.22.1 tasks

    ---
    @@ -4608,12 +4628,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
     
    -
    -

    7.23 autoinstall-pvr350

    +
    +

    7.23 autoinstall-pvr350

    -
    -

    7.23.1 tasks

    +
    +

    7.23.1 tasks

    ---
    @@ -4629,8 +4649,8 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
     
    -
    -

    7.24 autoinstall-hauppauge-pvr

    +
    +

    7.24 autoinstall-hauppauge-pvr

    ---
    @@ -4645,12 +4665,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
     
    -
    -

    7.25 autoinstall-firmware

    +
    +

    7.25 autoinstall-firmware

    -
    -

    7.25.1 dependencies

    +
    +

    7.25.1 dependencies

    ---
    @@ -4661,8 +4681,8 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
     
    -
    -

    7.25.2 tasks

    +
    +

    7.25.2 tasks

    ---
    @@ -4687,12 +4707,12 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
     
    -
    -

    7.26 autoinstall-dvbsky-firmware

    +
    +

    7.26 autoinstall-dvbsky-firmware

    -
    -

    7.26.1 dependencies

    +
    +

    7.26.1 dependencies

    ---
    @@ -4703,8 +4723,8 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
     
    -
    -

    7.26.2 defaults

    +
    +

    7.26.2 defaults

    ---
    @@ -4714,8 +4734,8 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
     
    -
    -

    7.26.3 tasks

    +
    +

    7.26.3 tasks

    ---
    @@ -4765,15 +4785,15 @@ If a Sat>IP Server responds to a discovery request, the package vdr-plugin-sa
     
    -
    -

    7.27 TODO autoinstall-dvbhddevice

    +
    +

    7.27 TODO autoinstall-dvbhddevice

    Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware sollte in yavdr-firmware stecken

    -
    -

    7.27.1 dependencies

    +
    +

    7.27.1 dependencies

    ---
    @@ -4784,8 +4804,8 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
     
    -
    -

    7.27.2 tasks

    +
    +

    7.27.2 tasks

    ---
    @@ -4802,12 +4822,12 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
     
    -
    -

    7.28 autoinstall-dvbsddevice

    +
    +

    7.28 autoinstall-dvbsddevice

    -
    -

    7.28.1 dependencies

    +
    +

    7.28.1 dependencies

    ---
    @@ -4818,8 +4838,8 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
     
    -
    -

    7.28.2 tasks

    +
    +

    7.28.2 tasks

    ---
    @@ -4837,12 +4857,12 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
     
    -
    -

    7.29 autoinstall-hardware-irmp

    +
    +

    7.29 autoinstall-hardware-irmp

    -
    -

    7.29.1 dependencies

    +
    +

    7.29.1 dependencies

    ---
    @@ -4853,8 +4873,8 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
     
    -
    -

    7.29.2 tasks

    +
    +

    7.29.2 tasks

    ---
    @@ -4870,19 +4890,19 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
     
    -
    -

    7.30 kodi

    +
    +

    7.30 kodi

    -
    -

    7.30.1 tasks

    +
    +

    7.30.1 tasks

      -
    1. Install KODI
      +
    2. Install KODI
        -
      • main.yml
        -
        +
      • main.yml
        +
        - import_tasks: install-kodi.yml tags=install,update,kodi:install
         - import_tasks: configure-kodi.yml tags=install,update,kodi:configure
        @@ -4890,7 +4910,7 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
         
      • -
      • install-kodi.yml
        +
      • install-kodi.yml
        ---
        @@ -4908,7 +4928,7 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
         
      • -
      • configure-kodi.yml
        +
      • configure-kodi.yml
        - name: create kodi.service for the user session
        @@ -4957,12 +4977,12 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
         
    -
    -

    7.30.2 templates

    +
    +

    7.30.2 templates

      -
    1. kodi.service
      +
    2. kodi.service

      This systemd unit for the user session starts (and stops) kodi. @@ -4987,72 +5007,72 @@ This systemd unit for the user session starts (and stops) kodi.

    -
    -

    7.30.3 files

    +
    +

    7.30.3 files

    Those configuration files provide a preconfiguration for kodi which overrides the system wide configuration

      -
    1. Lircmap.xml
      +
    2. Lircmap.xml

      This file allows to map keys sent by remotes via eventlircd (which uses the name devinput) to kodi key names.

      -
      <?xml version="1.0" encoding="UTF-8"?>
      +
      <?xml version="1.0" encoding="UTF-8"?>
       <lircmap>
      -    <remote device="linux-input-layer">
      -    <altname>cx23885_remote</altname>
      -    <altname>devinput</altname>
      -        <up>KEY_UP</up>
      -        <down>KEY_DOWN</down>
      +        <remote device="linux-input-layer">
      +        <altname>cx23885_remote</altname>
      +        <altname>devinput</altname>
      +                <up>KEY_UP</up>
      +                <down>KEY_DOWN</down>
                       <menu>KEY_MENU</menu>
      -        <select>KEY_OK</select>
      -        <back>KEY_ESC</back>
      -        <left>KEY_LEFT</left>
      -        <right>KEY_RIGHT</right>
      -        <red>KEY_RED</red>
      -        <green>KEY_GREEN</green>
      -        <yellow>KEY_YELLOW</yellow>
      -        <blue>KEY_BLUE</blue>
      -        <zero>KEY_0</zero>
      -        <one>KEY_1</one>
      -        <two>KEY_2</two>
      -        <three>KEY_3</three>
      -        <four>KEY_4</four>
      -        <five>KEY_5</five>
      -        <six>KEY_6</six>
      -        <seven>KEY_7</seven>
      -        <eight>KEY_8</eight>
      -        <nine>KEY_9</nine>
      -        <info>KEY_INFO</info>
      -        <play>KEY_PLAY</play>
      -        <play>KEY_PLAYPAUSE</play>
      -        <pause>KEY_PAUSE</pause>
      -        <stop>KEY_STOP</stop>
      -        <record>KEY_RECORD</record>
      -        <forward>KEY_FASTFORWARD</forward>
      -        <reverse>KEY_REWIND</reverse>
      -        <skipplus>KEY_NEXT</skipplus>
      -        <skipminus>KEY_BACK</skipminus>
      -        <power>KEY_POWER2</power>
      -        <channelplus>KEY_CHANNELUP</channelplus>
      -        <channelminus>KEY_CHANNELDOWN</channelminus>
      -        <title>KEY_PROG3</title>
      -        <volumeplus>KEY_VOLUMEUP</volumeplus>
      -        <volumeminus>KEY_VOLUMEDOWN</volumeminus>
      +                <select>KEY_OK</select>
      +                <back>KEY_ESC</back>
      +                <left>KEY_LEFT</left>
      +                <right>KEY_RIGHT</right>
      +                <red>KEY_RED</red>
      +                <green>KEY_GREEN</green>
      +                <yellow>KEY_YELLOW</yellow>
      +                <blue>KEY_BLUE</blue>
      +                <zero>KEY_0</zero>
      +                <one>KEY_1</one>
      +                <two>KEY_2</two>
      +                <three>KEY_3</three>
      +                <four>KEY_4</four>
      +                <five>KEY_5</five>
      +                <six>KEY_6</six>
      +                <seven>KEY_7</seven>
      +                <eight>KEY_8</eight>
      +                <nine>KEY_9</nine>
      +                <info>KEY_INFO</info>
      +                <play>KEY_PLAY</play>
      +                <play>KEY_PLAYPAUSE</play>
      +                <pause>KEY_PAUSE</pause>
      +                <stop>KEY_STOP</stop>
      +                <record>KEY_RECORD</record>
      +                <forward>KEY_FASTFORWARD</forward>
      +                <reverse>KEY_REWIND</reverse>
      +                <skipplus>KEY_NEXT</skipplus>
      +                <skipminus>KEY_BACK</skipminus>
      +                <power>KEY_POWER2</power>
      +                <channelplus>KEY_CHANNELUP</channelplus>
      +                <channelminus>KEY_CHANNELDOWN</channelminus>
      +                <title>KEY_PROG3</title>
      +                <volumeplus>KEY_VOLUMEUP</volumeplus>
      +                <volumeminus>KEY_VOLUMEDOWN</volumeminus>
                       <teletext>KEY_TEXT</teletext>
      -        <mute>KEY_MUTE</mute>
      -        <start>KEY_SELECT</start>
      -        <subtitle>KEY_SUBTITLE</subtitle>
      +                <mute>KEY_MUTE</mute>
      +                <start>KEY_SELECT</start>
      +                <subtitle>KEY_SUBTITLE</subtitle>
                       <audio>KEY_MODE</audio>
      -        <mute>KEY_MUTE</mute>
      -        <myvideo>KEY_VIDEO</myvideo>
      -        <mymusic>KEY_AUDIO</mymusic>
      -        <mypictures>KEY_IMAGES</mypictures>
      -        <recordedtv>KEY_PVR</recordedtv>
      +                <mute>KEY_MUTE</mute>
      +                <myvideo>KEY_VIDEO</myvideo>
      +                <mymusic>KEY_AUDIO</mymusic>
      +                <mypictures>KEY_IMAGES</mypictures>
      +                <recordedtv>KEY_PVR</recordedtv>
                       <guide>KEY_EPG</guide>
                       <display>KEY_SCREEN</display>
                       <enter>KEY_PROG4</enter>
      @@ -5060,60 +5080,60 @@ This file allows to map keys sent by remotes via eventlircd (which uses the name
                       <livetv>KEY_CHANNEL</livetv>
                       <mytv>KEY_TV</mytv>
                       <liveradio>KEY_FN</liveradio>
      -    </remote>
      +        </remote>
       </lircmap>
       
    3. -
    4. keymaps
      +
    5. keymaps

      This file maps the keys defined in Lircmap.xml to actions within kodi.

        -
      1. remote.xml
        +
      2. remote.xml
        -
        <?xml version="1.0" encoding="UTF-8"?>
        -<!-- This file contains the mapping of keys (gamepad, remote, and keyboard) to actions within XBMC -->
        -<!-- The <global> section is a fall through - they will only be used if the button is not          -->
        -<!-- used in the current window's section.  Note that there is only handling                       -->
        -<!-- for a single action per button at this stage.                                                 -->
        -<!-- For joystick/gamepad configuration under linux/win32, see below as it differs from xbox       -->
        -<!-- gamepads.                                                                                     -->
        +
        <?xml version="1.0" encoding="UTF-8"?>
        +<!-- This file contains the mapping of keys (gamepad, remote, and keyboard) to actions within XBMC -->
        +<!-- The <global> section is a fall through - they will only be used if the button is not          -->
        +<!-- used in the current window's section.  Note that there is only handling                       -->
        +<!-- for a single action per button at this stage.                                                 -->
        +<!-- For joystick/gamepad configuration under linux/win32, see below as it differs from xbox       -->
        +<!-- gamepads.                                                                                     -->
         
        -<!-- The format is:                      -->
        -<!--    <device>                         -->
        -<!--      <button>action</button>        -->
        -<!--    </device>                        -->
        +<!-- The format is:                      -->
        +<!--    <device>                         -->
        +<!--      <button>action</button>        -->
        +<!--    </device>                        -->
         
        -<!-- To map keys from other remotes using the RCA protocol, you may add <universalremote> blocks -->
        -<!-- In this case, the tags used are <obc#> where # is the original button code (OBC) of the key -->
        -<!-- You set it up by adding a <universalremote> block to the window or <global> section:       -->
        -<!--    <universalremote>             -->
        -<!--       <obc45>Stop</obc45>         -->
        -<!--    </universalremote>            -->
        -<!-- To find out the OBC's of your remote, try enabling the <displayremotecodes> tag in AdvancedSettings.xml -->
        +<!-- To map keys from other remotes using the RCA protocol, you may add <universalremote> blocks -->
        +<!-- In this case, the tags used are <obc#> where # is the original button code (OBC) of the key -->
        +<!-- You set it up by adding a <universalremote> block to the window or <global> section:       -->
        +<!--    <universalremote>             -->
        +<!--       <obc45>Stop</obc45>         -->
        +<!--    </universalremote>            -->
        +<!-- To find out the OBC's of your remote, try enabling the <displayremotecodes> tag in AdvancedSettings.xml -->
         
        -<!-- Note that the action can be a built-in function.                 -->
        -<!--  eg <B>XBMC.ActivateWindow(MyMusic)</B>                         -->
        -<!-- would automatically go to My Music on the press of the B button. -->
        +<!-- Note that the action can be a built-in function.                 -->
        +<!--  eg <B>XBMC.ActivateWindow(MyMusic)</B>                         -->
        +<!-- would automatically go to My Music on the press of the B button. -->
         
        -<!-- Joysticks / Gamepads:                                                                    -->
        -<!--   See the sample PS3 controller configuration below for the format.                      -->
        -<!--                                                                                          -->
        -<!--  Joystick Name:                                                                          -->
        -<!--   Do 'cat /proc/bus/input/devices' or see your xbmc log file  to find the names of       -->
        -<!--   detected joysticks. The name used in the configuration should match the detected name. -->
        -<!--                                                                                          -->
        -<!--  Button Ids:                                                                             -->
        -<!--   'id' is the button ID used by SDL. Joystick button ids of connected joysticks appear   -->
        -<!--   in xbmc.log when they are pressed. Use your log to map custom buttons to actions.      -->
        -<!--                                                                                          -->
        -<!--  Axis Ids / Analog Controls                                                              -->
        -<!--   Coming soon.                                                                           -->
        +<!-- Joysticks / Gamepads:                                                                    -->
        +<!--   See the sample PS3 controller configuration below for the format.                      -->
        +<!--                                                                                          -->
        +<!--  Joystick Name:                                                                          -->
        +<!--   Do 'cat /proc/bus/input/devices' or see your xbmc log file  to find the names of       -->
        +<!--   detected joysticks. The name used in the configuration should match the detected name. -->
        +<!--                                                                                          -->
        +<!--  Button Ids:                                                                             -->
        +<!--   'id' is the button ID used by SDL. Joystick button ids of connected joysticks appear   -->
        +<!--   in xbmc.log when they are pressed. Use your log to map custom buttons to actions.      -->
        +<!--                                                                                          -->
        +<!--  Axis Ids / Analog Controls                                                              -->
        +<!--   Coming soon.                                                                           -->
         <keymap>
           <global>
             <universalremote>
        @@ -5149,18 +5169,18 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
               <myvideo>XBMC.ActivateWindow(MyVideos)</myvideo>
               <mymusic>XBMC.ActivateWindow(MyMusic)</mymusic>
               <mypictures>XBMC.ActivateWindow(MyPictures)</mypictures>
        -      <!--- <mytv>XBMC.ActivateWindow(Home)</mytv> -->
        +      <!--- <mytv>XBMC.ActivateWindow(Home)</mytv> -->
               <recordedtv>XBMC.ActivateWindowAndFocus(MyPVR, 34,0, 13,0)</recordedtv>
        -      <!-- PVR: EPG -->
        +      <!-- PVR: EPG -->
               <guide>XBMC.ActivateWindowAndFocus(MyPVR, 31,0, 10,0)</guide>
        -      <!-- PVR: Channellist -->
        +      <!-- PVR: Channellist -->
               <livetv>XBMC.ActivateWindowAndFocus(MyPVR, 32,0, 11,0)</livetv>
        -      <!-- PVR: Radio -->
        +      <!-- PVR: Radio -->
               <liveradio>XBMC.ActivateWindowAndFocus(MyPVR, 33,0, 12,0)</liveradio>
               <red>XBMC.ActivateWindow(Home)</red>
               <yellow>XBMC.ActivateWindow(MyVideos)</yellow>
               <green>XBMC.ActivateWindow(MyMusic)</green>
        -      <!-- <blue>XBMC.ActivateWindow(MyPictures)</blue> -->
        +      <!-- <blue>XBMC.ActivateWindow(MyPictures)</blue> -->
               <zero>Number0</zero>
               <one>Number1</one>
               <two>JumpSMS2</two>
        @@ -5195,7 +5215,7 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
           </MyFiles>
           <MyMusicPlaylist>
             <remote>
        -      <back>Playlist</back>      <!-- Close playlist -->
        +      <back>Playlist</back>      <!-- Close playlist -->
               <clear>Delete</clear>
             </remote>
           </MyMusicPlaylist>
        @@ -5427,7 +5447,7 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
           </MyPictures>
           <MyVideoPlaylist>
             <remote>
        -      <back>Playlist</back>      <!-- Close playlist -->
        +      <back>Playlist</back>      <!-- Close playlist -->
               <clear>Delete</clear>
               <zero>Delete</zero>
             </remote>
        @@ -5469,7 +5489,7 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
           </Scripts>
           <ScriptsDebugInfo>
             <remote>
        -      <info>Info</info>      <!-- clears debug python info -->
        +      <info>Info</info>      <!-- clears debug python info -->
             </remote>
           </ScriptsDebugInfo>
           <NumericInput>
        @@ -5625,17 +5645,17 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
         
    -
    -

    7.31 dvd

    +
    +

    7.31 dvd

    -
    -

    7.31.1 tasks

    +
    +

    7.31.1 tasks

      -
    • install libdvd-pkg, allow programs to eject optical media
      -
      +
    • install libdvd-pkg, allow programs to eject optical media
      +
      ---
       # file: roles/dvd/tasks/main.yml
      @@ -5675,15 +5695,15 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
       
    -
    -

    7.32 install-sundtek

    +
    +

    7.32 install-sundtek

    -
    -

    7.32.1 variables

    +
    +

    7.32.1 variables

    -
    -

    7.32.2 tasks

    +
    +

    7.32.2 tasks

    ---
    @@ -5732,16 +5752,16 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
     
    -
    -

    7.32.3 templates

    +
    +

    7.32.3 templates

    # ----- GLOBAL SECTION -----
     #Set loglevel for logging to /var/log/mediasrv.log
     #autoupdate=[on|off]                    #enable automatic driver update, default off
     autoupdate=off
    -#loglevel=[off|min|full]            #default: off
    -                    #max .. little bit more
    +#loglevel=[off|min|full]                #default: off
    +                                        #max .. little bit more
     loglevel=off
     #pluginpath=/path/to/drivers            #set path to drivers
     #dvb_api_version=x.y                    #default API version will be parsed from
    @@ -5784,17 +5804,17 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
     
     #
     #Enable listening on network
    -#enablenetwork=[on|off]         #default: off
    +#enablenetwork=[on|off]                 #default: off
     
     #Lowest adapter number to start with, e.g. /dev/dvb/adapter5/frontend0
     #first_adapter=5
     
     #Call attach script when new device appears
    -#device_attach=[PATH_TO_SCRIPT] [PARAMETER|DEVID]   #"DEVID" will automatically be replaced with the device ID
    +#device_attach=[PATH_TO_SCRIPT] [PARAMETER|DEVID]       #"DEVID" will automatically be replaced with the device ID
     device_attach=/usr/bin/sundtek_attach
     
     #Call detach script when device disappears
    -#device_detach=[PATH_TO_SCRIPT] [PARAMETER|DEVID]   #"DEVID" will automatically be replaced with the device ID
    +#device_detach=[PATH_TO_SCRIPT] [PARAMETER|DEVID]       #"DEVID" will automatically be replaced with the device ID
     device_detach=/usr/bin/sundtek_detach
     
     
    @@ -5803,13 +5823,13 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
     [{{ device.serial }}]
     
     #Infrared protocol to use
    -#ir_protocol=[RC5|NEC|RC6]          #default: NEC
    +#ir_protocol=[RC5|NEC|RC6]                      #default: NEC
     {% if device.ir_protocol|default("") %}
     ir_protocol={{ device.ir_protocol }}
     {% endif %}
     
     #Keymap to use, e.g. "/lib/udev/rc_keymaps/vp702x"
    -#rcmap=[PATH_TO_KEYMAP]         #default: keymap which comes with the device
    +#rcmap=[PATH_TO_KEYMAP]                 #default: keymap which comes with the device
     {% if device.rcmap|default("") %}
     rcmap={{ device.rcmap }}
     {% endif %}
    @@ -5821,11 +5841,11 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
     {% endif %}
     
     #Call attach script when new device appears
    -#device_attach=[PATH_TO_SCRIPT] [PARAMETER|DEVID]   #"DEVID" will automatically be replaced with the device ID
    +#device_attach=[PATH_TO_SCRIPT] [PARAMETER|DEVID]       #"DEVID" will automatically be replaced with the device ID
     device_attach=/usr/bin/sundtek_attach
     
     #Call detach script when device disappears
    -#device_detach=[PATH_TO_SCRIPT] [PARAMETER|DEVID]   #"DEVID" will automatically be replaced with the device ID
    +#device_detach=[PATH_TO_SCRIPT] [PARAMETER|DEVID]       #"DEVID" will automatically be replaced with the device ID
     device_detach=/usr/bin/sundtek_detach
     
     {% if device.capabilites.analog_tv %}
    @@ -5839,8 +5859,8 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
     
    -
    -

    7.33 template-test

    +
    +

    7.33 template-test

    ---
    @@ -6081,12 +6101,12 @@ EndSection
     
    -
    -

    7.34 wakeup

    +
    +

    7.34 wakeup

    -
    -

    7.34.1 defaults

    +
    +

    7.34.1 defaults

    ---
    @@ -6096,8 +6116,8 @@ EndSection
     
    -
    -

    7.34.2 tasks

    +
    +

    7.34.2 tasks

    ---
    @@ -6118,23 +6138,23 @@ EndSection
     
    -
    -

    7.34.3 templates

    +
    +

    7.34.3 templates

    -
    {{ ansible_managed | comment }}
    +
    {{ ansible_managed | comment }}
     
    -# Activate/deactivate ACPIWakeup with yes/no:
    -ACPI_ENABLED="{% if wakeup_method == 'acpiwakeup' %}yes{% else %}no{% endif %}"
    +# Activate/deactivate ACPIWakeup with yes/no:
    +ACPI_ENABLED="{% if wakeup_method == 'acpiwakeup' %}yes{% else %}no{% endif %}"
     
     # How many minutes should the machine wake up before the timer starts:
     ACPI_START_AHEAD=5
     
    -# If you want your VDR machine to wakeup in regular intervals (i.e. for
    -# updating EPG data), specify the days of the week and the wakeup time.
    +# If you want your VDR machine to wakeup in regular intervals (i.e. for
    +# updating EPG data), specify the days of the week and the wakeup time.
     #
    -# Days of the week for regular wakeup (not set=Disabled, 1=Monday...7=Sunday)
    -# ACPI_REGULAR_DAYS="1 2 3 4 5 6 7"
    +# Days of the week for regular wakeup (not set=Disabled, 1=Monday...7=Sunday)
    +# ACPI_REGULAR_DAYS="1 2 3 4 5 6 7"
     
     # Wakeup time
     #ACPI_REGULAR_TIME=01:00  # HH:MM
    @@ -6145,12 +6165,12 @@ ACPI_START_AHEAD=5
     
    -
    -

    7.35 grub-config

    +
    +

    7.35 grub-config

    -
    -

    7.35.1 default variables

    +
    +

    7.35.1 default variables

    system:
    @@ -6162,8 +6182,8 @@ ACPI_START_AHEAD=5
     
    -
    -

    7.35.2 tasks

    +
    +

    7.35.2 tasks

    ---
    @@ -6188,8 +6208,8 @@ ACPI_START_AHEAD=5
     
    -
    -

    7.35.3 templates

    +
    +

    7.35.3 templates

    #!/bin/sh
    @@ -6212,8 +6232,8 @@ menuentry "PowerOff" {
     
    -
    -

    7.35.4 handlers

    +
    +

    7.35.4 handlers

    ---
    @@ -6231,15 +6251,15 @@ menuentry "PowerOff" {
     
    -
    -

    8 Modules

    +
    +

    8 Modules

    This section contains custom modules for the yaVDR Playbooks. They are used to collect facts about the system and configure applications and daemons.

    -
    -

    8.1 hardware_facts.py

    +
    +

    8.1 hardware_facts.py

    # This Module collects the vendor- and device ids for USB- and PCI(e)-devices and currently loaded kernel modules.
    @@ -6417,8 +6437,8 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
     
    -
    -

    8.2 satip_facts.py

    +
    +

    8.2 satip_facts.py

    DOCUMENTATION = '''
    @@ -6542,8 +6562,8 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
     
    -
    -

    8.3 xrandr_facts.py

    +
    +

    8.3 xrandr_facts.py

    • [ ] support multiple screens (-d :0.0 .. :0.n)
    • @@ -6830,8 +6850,8 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
    -
    -

    9 Handlers

    +
    +

    9 Handlers

    - name: Reconfigure unattended upgrades with dpkg
    @@ -6920,7 +6940,7 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
     

    Autor: Alexander Grothe <seahawk1986@gmx.de>

    -

    Created: 2018-05-20 So 09:14

    +

    Created: 2018-06-02 Sa 20:04

    Validate