diff --git a/Manual.org b/Manual.org
index 2c7817e..4ec25ab 100644
--- a/Manual.org
+++ b/Manual.org
@@ -1281,822 +1281,822 @@ systemctl --user isolate yavdr-desktop.target
#+END_SRC
****** rc.xml
#+BEGIN_SRC xml :tangle roles/yavdr-xorg/templates/openbox_rc.xml.j2 :mkdirp yes :padline no
-
-
-
-
- 10
- 20
-
-
- yes
-
- no
-
- yes
-
- no
-
- 200
-
- no
-
-
-
- Smart
-
- yes
-
- Active
-
- Active
-
-
-
- Onyx
- NLIMC
-
+
+ 10
+ 20
+
+
+ yes
+
+ no
+
+ yes
+
+ no
+
+ 200
+
+ no
+
+
+
+ Smart
+
+ yes
+
+ Active
+
+ Active
+
+
+
+ Onyx
+ NLIMC
+
+ yes
+ yes
+
+ sans
+ 8
+
+ bold
+
+ normal
+
+
+
+ sans
+ 8
+
+ bold
+
+ normal
+
+
+
+ sans
+ 9
+
+ normal
+
+ normal
+
+
+
+ sans
+ 9
+
+ normal
+
+ normal
+
+
+
+ sans
+ 9
+
+ bold
+
+ normal
+
+
+
+ sans
+ 9
+
+ bold
+
+ normal
+
+
+
+
+
+ 2
+ 1
+
+
- yes
- yes
-
- sans
- 8
-
- bold
-
- normal
-
-
-
- sans
- 8
-
- bold
-
- normal
-
-
-
- sans
- 9
-
- normal
-
- normal
-
-
-
- sans
- 9
-
- normal
-
- normal
-
-
-
- sans
- 9
-
- bold
-
- normal
-
-
-
- sans
- 9
-
- bold
-
- normal
-
-
-
-
-
- 2
- 1
-
-
-
- 875
-
-
-
- yes
- Nonpixel
-
- Center
-
-
-
- 10
-
- 10
-
-
-
-
-
- 0
- 0
- 0
- 0
-
-
- TopLeft
-
- 0
- 0
- no
- Above
-
- Vertical
-
- no
- 300
-
- 300
-
- Middle
-
-
-
- C-g
-
-
-
- left
- no
-
-
-
-
- right
- no
-
-
-
-
- up
- no
-
-
-
-
- down
- no
-
-
-
-
- left
- no
-
-
-
-
- right
- no
-
-
-
-
- up
- no
-
-
-
-
- down
- no
-
-
-
-
- 1
-
-
-
-
- 2
-
-
-
-
- 3
-
-
-
-
- 4
-
-
-
-
-
-
-
-
-
-
+
+ 875
+
+
+
+ yes
+ Nonpixel
+
+ Center
+
+
+
+ 10
+
+ 10
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ TopLeft
+
+ 0
+ 0
+ no
+ Above
+
+ Vertical
+
+ no
+ 300
+
+ 300
+
+ Middle
+
+
+
+ C-g
+
+
+
+ left
+ no
+
+
+
+
+ right
+ no
+
+
+
+
+ up
+ no
+
+
+
+
+ down
+ no
+
+
+
+
+ left
+ no
+
+
+
+
+ right
+ no
+
+
+
+
+ up
+ no
+
+
+
+
+ down
+ no
+
+
+
+
+ 1
+
+
+
+
+ 2
+
+
+
+
+ 3
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ scrot -s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ yes
+ yes
+
+
+
+
+
+
+
+
+
+
+ right
+
+
+
+
+ left
+
+
+
+
+ up
+
+
+
+
+ down
+
+
+
+
+
+
+ true
+ Konqueror
+
+ kfmclient openProfile filemanagement
+
+
+
+
+
+ scrot
+
+
+
+
+ 1
+
+ 500
+
+ 400
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+ previous
+
+
+
+
+ next
+
+
+
+
+ previous
+
+
+
+
+ next
+
+
+
+
+ previous
+
+
+
+
+ next
+
+
+
+
+
+
+
+
+
+
+
+
+ no
+
+
+
+
+
+
+
+
+
+
+ yes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
- scrot -s
+
+
+
+
+
+ top
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ left
-
-
-
-
-
-
-
-
+
+
+
+
+
+ right
-
-
-
- yes
- yes
-
-
-
-
-
+
+
+
+
+
+ bottom
-
-
-
-
- right
+
+
+
+
+
+
-
-
-
- left
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- up
+
+
+
+
+
+
-
-
-
- down
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ vertical
-
-
-
-
-
- true
- Konqueror
-
- kfmclient openProfile filemanagement
+
+
+
+ horizontal
-
-
-
-
- scrot
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ previous
-
-
-
- 1
-
- 500
-
- 400
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
-
-
-
-
-
-
-
-
- no
-
-
-
-
-
-
-
-
-
-
- yes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- top
-
-
-
-
-
-
- left
-
-
-
-
-
-
- right
-
-
-
-
-
-
- bottom
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- vertical
-
-
-
-
- horizontal
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ previous
+
+
+
+
+ next
+
+
+
+
+ previous
+
+
+
+
+ next
+
+
+
+
+
+
+
+
+ no
true
- # 'Horizontal', 'Vertical' or boolean (yes/no)
+
+ yes
-
- # end of the example
- -->
-
-
- no
- true
-
- yes
-
-
- no
- true
-
- yes
-
-
- no
- true
-
- yes
-
-
-
+
+ no
+ true
+
+ yes
+
+
+ no
+ true
+
+ yes
+
+
+
#+END_SRC
** samba-install
@@ -2258,22 +2258,21 @@ from http://www.vdr-portal.de/board18-vdr-hardware/board102-dvb-karten/120817-tr
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.
*** tasks
#+BEGIN_SRC yaml :tangle roles/autoinstall-ubuntu-drivers/tasks/main.yml
- ---
- # file roles/autoinstall-ubuntu-drivers/tasks/main.yml
+---
+# file roles/autoinstall-ubuntu-drivers/tasks/main.yml
+- name: apt | install ubuntu-drivers-common
+ apt:
+ name: ubuntu-drivers-common
+ state: present
- - name: apt | install ubuntu-drivers-common
- apt:
- name: ubuntu-drivers-common
- state: present
+- name: ensure /etc/yavdr exists
+ file:
+ path: /etc/yavdr
+ state: directory
+ mode: 0755
- - name: ensure /etc/yavdr exists
- file:
- path: /etc/yavdr
- state: directory
- mode: 0755
-
- - name: let ubuntu-drivers automatically install additional drivers
- command: ubuntu-drivers --package-list /etc/yavdr/autoinstalled autoinstall
+- name: let ubuntu-drivers automatically install additional drivers
+ command: ubuntu-drivers --package-list /etc/yavdr/autoinstalled autoinstall
#+END_SRC
** autoinstall-satip
If a Sat>IP Server responds to a discovery request, the package vdr-plugin-satip is installed.
@@ -2740,10 +2739,10 @@ fi
This section contains custom modules for the yaVDR Playbooks. They are used to collect facts about the system and configure applications and daemons.
** hardware_facts.py
#+BEGIN_SRC python :tangle library/hardware_facts.py
- #!/usr/bin/env python
+#!/usr/bin/env python
- # This Module collects the vendor- and device ids for USB- and PCI(e)-devices and currently loaded kernel modules.
- DOCUMENTATION = '''
+# This Module collects the vendor- and device ids for USB- and PCI(e)-devices and currently loaded kernel modules.
+DOCUMENTATION = '''
---
module: hardware_facts
short_description: collects facts for kernel modules, usb and pci devices
@@ -2757,115 +2756,115 @@ This section contains custom modules for the yaVDR Playbooks. They are used to c
description:
- return a list of vendor- and device ids for usb devices in '04x:04x' notation
- pci:
- required: False
- default: True
- description:
- - return a list of vendor- and device ids for pci devices in '04x:04x' notation
+ pci:
+ required: False
+ default: True
+ description:
+ - return a list of vendor- and device ids for pci devices in '04x:04x' notation
- modules:
- required: False
- default: True
- description:
- - return a list of currently loaded kernel modules
+ modules:
+ required: False
+ default: True
+ description:
+ - return a list of currently loaded kernel modules
- gpus:
- required: False
- default: True
- description:
- - return a list of devices of the pci gpu class (0x030000)
- notes:
- - requres python-pyusb and python-kmodpy
- requirements: [ ]
- author: "Alexander Grothe "
- '''
+ gpus:
+ required: False
+ default: True
+ description:
+ - return a list of devices of the pci gpu class (0x030000)
+notes:
+ - requres python-pyusb and python-kmodpy
+requirements: [ ]
+author: "Alexander Grothe "
+'''
- EXAMPLES = '''
- - name: get information about usb and pci hardware and loaded kernel modules
- hardware_facts:
- usb: True
- pci: True
- modules: True
- - debug:
- var: usb
- - debug
- var: pci
- - debug
- var: modules
- - debug
- var: gpus
- '''
+EXAMPLES = '''
+- name: get information about usb and pci hardware and loaded kernel modules
+ hardware_facts:
+ usb: True
+ pci: True
+ modules: True
+- debug:
+ var: usb
+- debug
+ var: pci
+- debug
+ var: modules
+- debug
+ var: gpus
+'''
- import glob
- import json
- import os
- import sys
- import usb.core
- from collections import namedtuple
+import glob
+import json
+import os
+import sys
+import usb.core
+from collections import namedtuple
- import kmodpy
- from ansible.module_utils.basic import *
+import kmodpy
+from ansible.module_utils.basic import *
- PCIDevice = namedtuple("PCIDevice", 'idVendor idProduct idClass pciPath')
+PCIDevice = namedtuple("PCIDevice", 'idVendor idProduct idClass pciPath')
- def get_pci_devices():
- for device in glob.glob('/sys/devices/pci*/*:*:*/'):
- with open(os.path.join(device, 'device')) as d:
- product_id = int(d.read().strip(), 16)
- with open(os.path.join(device, 'vendor')) as d:
- vendor_id = int(d.read().strip(), 16)
- with open(os.path.join(device, 'class')) as d:
- class_id = int(d.read().strip(), 16)
- yield PCIDevice(idVendor=vendor_id, idProduct=product_id, idClass=class_id, pciPath=device)
+def get_pci_devices():
+ for device in glob.glob('/sys/devices/pci*/*:*:*/'):
+ with open(os.path.join(device, 'device')) as d:
+ product_id = int(d.read().strip(), 16)
+ with open(os.path.join(device, 'vendor')) as d:
+ vendor_id = int(d.read().strip(), 16)
+ with open(os.path.join(device, 'class')) as d:
+ class_id = int(d.read().strip(), 16)
+ yield PCIDevice(idVendor=vendor_id, idProduct=product_id, idClass=class_id, pciPath=device)
- def format_device_list(iterator):
- return ["{:04x}:{:04x}".format(d.idVendor, d.idProduct) for d in iterator]
+def format_device_list(iterator):
+ return ["{:04x}:{:04x}".format(d.idVendor, d.idProduct) for d in iterator]
- def format_gpu_device_list(iterator):
- def get_entries(iterator):
- for d in iterator:
- if d.idClass == 0x030000:
- yield ("{:04x}:{:04x}".format(d.idVendor, d.idProduct))
- return [entry for entry in get_entries(iterator)]
+def format_gpu_device_list(iterator):
+ def get_entries(iterator):
+ for d in iterator:
+ if d.idClass == 0x030000:
+ yield ("{:04x}:{:04x}".format(d.idVendor, d.idProduct))
+ return [entry for entry in get_entries(iterator)]
- arg_specs = {
- 'usb': dict(default=True, type='bool', required=False),
- 'pci': dict(default=True, type='bool', required=False),
- 'modules': dict(default=True, type='bool', required=False),
- 'gpus': dict(default=True, type='bool', required=False),
- }
+arg_specs = {
+ 'usb': dict(default=True, type='bool', required=False),
+ 'pci': dict(default=True, type='bool', required=False),
+ 'modules': dict(default=True, type='bool', required=False),
+ 'gpus': dict(default=True, type='bool', required=False),
+ }
- def main():
- module = AnsibleModule(argument_spec=arg_specs, supports_check_mode=True,)
- collect_usb = module.params['usb']
- collect_pci = module.params['pci']
- collect_modules = module.params['modules']
- collect_gpus = module.params['gpus']
- if collect_usb:
- usb_devices = format_device_list(usb.core.find(find_all=True))
- else:
- usb_device = []
- if collect_pci:
- pci_devices = format_device_list(get_pci_devices())
- else:
- pci_devices = []
- if collect_modules:
- k = kmodpy.Kmod()
- modules = [m[0] for m in k.loaded()]
- else:
- modules = []
- if collect_gpus:
- gpus = format_gpu_device_list(get_pci_devices())
- else:
- gpus = []
- data = {'usb': usb_devices, 'pci': pci_devices, 'modules': modules, 'gpus': gpus}
- module.exit_json(changed=False, ansible_facts=data, msg=data)
+def main():
+ module = AnsibleModule(argument_spec=arg_specs, supports_check_mode=True,)
+ collect_usb = module.params['usb']
+ collect_pci = module.params['pci']
+ collect_modules = module.params['modules']
+ collect_gpus = module.params['gpus']
+ if collect_usb:
+ usb_devices = format_device_list(usb.core.find(find_all=True))
+ else:
+ usb_device = []
+ if collect_pci:
+ pci_devices = format_device_list(get_pci_devices())
+ else:
+ pci_devices = []
+ if collect_modules:
+ k = kmodpy.Kmod()
+ modules = [m[0] for m in k.loaded()]
+ else:
+ modules = []
+ if collect_gpus:
+ gpus = format_gpu_device_list(get_pci_devices())
+ else:
+ gpus = []
+ data = {'usb': usb_devices, 'pci': pci_devices, 'modules': modules, 'gpus': gpus}
+ module.exit_json(changed=False, ansible_facts=data, msg=data)
- if __name__ == '__main__':
- main()
+if __name__ == '__main__':
+ main()
#+END_SRC
** satip_facts.py
#+BEGIN_SRC python :tangle library/satip_facts.py
diff --git a/library/hardware_facts.py b/library/hardware_facts.py
index ef58f76..d4b8bd2 100644
--- a/library/hardware_facts.py
+++ b/library/hardware_facts.py
@@ -1,7 +1,7 @@
- #!/usr/bin/env python
+#!/usr/bin/env python
- # This Module collects the vendor- and device ids for USB- and PCI(e)-devices and currently loaded kernel modules.
- DOCUMENTATION = '''
+# This Module collects the vendor- and device ids for USB- and PCI(e)-devices and currently loaded kernel modules.
+DOCUMENTATION = '''
---
module: hardware_facts
short_description: collects facts for kernel modules, usb and pci devices
@@ -15,112 +15,112 @@
description:
- return a list of vendor- and device ids for usb devices in '04x:04x' notation
- pci:
- required: False
- default: True
- description:
- - return a list of vendor- and device ids for pci devices in '04x:04x' notation
+ pci:
+ required: False
+ default: True
+ description:
+ - return a list of vendor- and device ids for pci devices in '04x:04x' notation
- modules:
- required: False
- default: True
- description:
- - return a list of currently loaded kernel modules
+ modules:
+ required: False
+ default: True
+ description:
+ - return a list of currently loaded kernel modules
- gpus:
- required: False
- default: True
- description:
- - return a list of devices of the pci gpu class (0x030000)
- notes:
- - requres python-pyusb and python-kmodpy
- requirements: [ ]
- author: "Alexander Grothe "
- '''
+ gpus:
+ required: False
+ default: True
+ description:
+ - return a list of devices of the pci gpu class (0x030000)
+notes:
+ - requres python-pyusb and python-kmodpy
+requirements: [ ]
+author: "Alexander Grothe "
+'''
- EXAMPLES = '''
- - name: get information about usb and pci hardware and loaded kernel modules
- hardware_facts:
- usb: True
- pci: True
- modules: True
- - debug:
- var: usb
- - debug
- var: pci
- - debug
- var: modules
- - debug
- var: gpus
- '''
+EXAMPLES = '''
+- name: get information about usb and pci hardware and loaded kernel modules
+ hardware_facts:
+ usb: True
+ pci: True
+ modules: True
+- debug:
+ var: usb
+- debug
+ var: pci
+- debug
+ var: modules
+- debug
+ var: gpus
+'''
- import glob
- import json
- import os
- import sys
- import usb.core
- from collections import namedtuple
+import glob
+import json
+import os
+import sys
+import usb.core
+from collections import namedtuple
- import kmodpy
- from ansible.module_utils.basic import *
+import kmodpy
+from ansible.module_utils.basic import *
- PCIDevice = namedtuple("PCIDevice", 'idVendor idProduct idClass pciPath')
+PCIDevice = namedtuple("PCIDevice", 'idVendor idProduct idClass pciPath')
- def get_pci_devices():
- for device in glob.glob('/sys/devices/pci*/*:*:*/'):
- with open(os.path.join(device, 'device')) as d:
- product_id = int(d.read().strip(), 16)
- with open(os.path.join(device, 'vendor')) as d:
- vendor_id = int(d.read().strip(), 16)
- with open(os.path.join(device, 'class')) as d:
- class_id = int(d.read().strip(), 16)
- yield PCIDevice(idVendor=vendor_id, idProduct=product_id, idClass=class_id, pciPath=device)
+def get_pci_devices():
+ for device in glob.glob('/sys/devices/pci*/*:*:*/'):
+ with open(os.path.join(device, 'device')) as d:
+ product_id = int(d.read().strip(), 16)
+ with open(os.path.join(device, 'vendor')) as d:
+ vendor_id = int(d.read().strip(), 16)
+ with open(os.path.join(device, 'class')) as d:
+ class_id = int(d.read().strip(), 16)
+ yield PCIDevice(idVendor=vendor_id, idProduct=product_id, idClass=class_id, pciPath=device)
- def format_device_list(iterator):
- return ["{:04x}:{:04x}".format(d.idVendor, d.idProduct) for d in iterator]
+def format_device_list(iterator):
+ return ["{:04x}:{:04x}".format(d.idVendor, d.idProduct) for d in iterator]
- def format_gpu_device_list(iterator):
- def get_entries(iterator):
- for d in iterator:
- if d.idClass == 0x030000:
- yield ("{:04x}:{:04x}".format(d.idVendor, d.idProduct))
- return [entry for entry in get_entries(iterator)]
+def format_gpu_device_list(iterator):
+ def get_entries(iterator):
+ for d in iterator:
+ if d.idClass == 0x030000:
+ yield ("{:04x}:{:04x}".format(d.idVendor, d.idProduct))
+ return [entry for entry in get_entries(iterator)]
- arg_specs = {
- 'usb': dict(default=True, type='bool', required=False),
- 'pci': dict(default=True, type='bool', required=False),
- 'modules': dict(default=True, type='bool', required=False),
- 'gpus': dict(default=True, type='bool', required=False),
- }
+arg_specs = {
+ 'usb': dict(default=True, type='bool', required=False),
+ 'pci': dict(default=True, type='bool', required=False),
+ 'modules': dict(default=True, type='bool', required=False),
+ 'gpus': dict(default=True, type='bool', required=False),
+ }
- def main():
- module = AnsibleModule(argument_spec=arg_specs, supports_check_mode=True,)
- collect_usb = module.params['usb']
- collect_pci = module.params['pci']
- collect_modules = module.params['modules']
- collect_gpus = module.params['gpus']
- if collect_usb:
- usb_devices = format_device_list(usb.core.find(find_all=True))
- else:
- usb_device = []
- if collect_pci:
- pci_devices = format_device_list(get_pci_devices())
- else:
- pci_devices = []
- if collect_modules:
- k = kmodpy.Kmod()
- modules = [m[0] for m in k.loaded()]
- else:
- modules = []
- if collect_gpus:
- gpus = format_gpu_device_list(get_pci_devices())
- else:
- gpus = []
- data = {'usb': usb_devices, 'pci': pci_devices, 'modules': modules, 'gpus': gpus}
- module.exit_json(changed=False, ansible_facts=data, msg=data)
+def main():
+ module = AnsibleModule(argument_spec=arg_specs, supports_check_mode=True,)
+ collect_usb = module.params['usb']
+ collect_pci = module.params['pci']
+ collect_modules = module.params['modules']
+ collect_gpus = module.params['gpus']
+ if collect_usb:
+ usb_devices = format_device_list(usb.core.find(find_all=True))
+ else:
+ usb_device = []
+ if collect_pci:
+ pci_devices = format_device_list(get_pci_devices())
+ else:
+ pci_devices = []
+ if collect_modules:
+ k = kmodpy.Kmod()
+ modules = [m[0] for m in k.loaded()]
+ else:
+ modules = []
+ if collect_gpus:
+ gpus = format_gpu_device_list(get_pci_devices())
+ else:
+ gpus = []
+ data = {'usb': usb_devices, 'pci': pci_devices, 'modules': modules, 'gpus': gpus}
+ module.exit_json(changed=False, ansible_facts=data, msg=data)
- if __name__ == '__main__':
- main()
+if __name__ == '__main__':
+ main()
diff --git a/roles/autoinstall-ubuntu-drivers/tasks/main.yml b/roles/autoinstall-ubuntu-drivers/tasks/main.yml
index ef82a2e..eefbcf5 100644
--- a/roles/autoinstall-ubuntu-drivers/tasks/main.yml
+++ b/roles/autoinstall-ubuntu-drivers/tasks/main.yml
@@ -1,16 +1,15 @@
- ---
- # file roles/autoinstall-ubuntu-drivers/tasks/main.yml
+---
+# file roles/autoinstall-ubuntu-drivers/tasks/main.yml
+- name: apt | install ubuntu-drivers-common
+ apt:
+ name: ubuntu-drivers-common
+ state: present
- - name: apt | install ubuntu-drivers-common
- apt:
- name: ubuntu-drivers-common
- state: present
+- name: ensure /etc/yavdr exists
+ file:
+ path: /etc/yavdr
+ state: directory
+ mode: 0755
- - name: ensure /etc/yavdr exists
- file:
- path: /etc/yavdr
- state: directory
- mode: 0755
-
- - name: let ubuntu-drivers automatically install additional drivers
- command: ubuntu-drivers --package-list /etc/yavdr/autoinstalled autoinstall
+- name: let ubuntu-drivers automatically install additional drivers
+ command: ubuntu-drivers --package-list /etc/yavdr/autoinstalled autoinstall
diff --git a/roles/yavdr-xorg/templates/openbox_rc.xml.j2 b/roles/yavdr-xorg/templates/openbox_rc.xml.j2
index e61c42a..d866a8c 100644
--- a/roles/yavdr-xorg/templates/openbox_rc.xml.j2
+++ b/roles/yavdr-xorg/templates/openbox_rc.xml.j2
@@ -1,816 +1,816 @@
-
-
-
-
- 10
- 20
-
-
- yes
-
- no
-
- yes
-
- no
-
- 200
-
- no
-
-
-
- Smart
-
- yes
-
- Active
-
- Active
-
-
-
- Onyx
- NLIMC
-
+
+ 10
+ 20
+
+
+ yes
+
+ no
+
+ yes
+
+ no
+
+ 200
+
+ no
+
+
+
+ Smart
+
+ yes
+
+ Active
+
+ Active
+
+
+
+ Onyx
+ NLIMC
+
+ yes
+ yes
+
+ sans
+ 8
+
+ bold
+
+ normal
+
+
+
+ sans
+ 8
+
+ bold
+
+ normal
+
+
+
+ sans
+ 9
+
+ normal
+
+ normal
+
+
+
+ sans
+ 9
+
+ normal
+
+ normal
+
+
+
+ sans
+ 9
+
+ bold
+
+ normal
+
+
+
+ sans
+ 9
+
+ bold
+
+ normal
+
+
+
+
+
+ 2
+ 1
+
+
- yes
- yes
-
- sans
- 8
-
- bold
-
- normal
-
-
-
- sans
- 8
-
- bold
-
- normal
-
-
-
- sans
- 9
-
- normal
-
- normal
-
-
-
- sans
- 9
-
- normal
-
- normal
-
-
-
- sans
- 9
-
- bold
-
- normal
-
-
-
- sans
- 9
-
- bold
-
- normal
-
-
-
-
-
- 2
- 1
-
-
-
- 875
-
-
-
- yes
- Nonpixel
-
- Center
-
-
-
- 10
-
- 10
-
-
-
-
-
- 0
- 0
- 0
- 0
-
-
- TopLeft
-
- 0
- 0
- no
- Above
-
- Vertical
-
- no
- 300
-
- 300
-
- Middle
-
-
-
- C-g
-
-
-
- left
- no
-
-
-
-
- right
- no
-
-
-
-
- up
- no
-
-
-
-
- down
- no
-
-
-
-
- left
- no
-
-
-
-
- right
- no
-
-
-
-
- up
- no
-
-
-
-
- down
- no
-
-
-
-
- 1
-
-
-
-
- 2
-
-
-
-
- 3
-
-
-
-
- 4
-
-
-
-
-
-
-
-
-
-
+
+ 875
+
+
+
+ yes
+ Nonpixel
+
+ Center
+
+
+
+ 10
+
+ 10
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ TopLeft
+
+ 0
+ 0
+ no
+ Above
+
+ Vertical
+
+ no
+ 300
+
+ 300
+
+ Middle
+
+
+
+ C-g
+
+
+
+ left
+ no
+
+
+
+
+ right
+ no
+
+
+
+
+ up
+ no
+
+
+
+
+ down
+ no
+
+
+
+
+ left
+ no
+
+
+
+
+ right
+ no
+
+
+
+
+ up
+ no
+
+
+
+
+ down
+ no
+
+
+
+
+ 1
+
+
+
+
+ 2
+
+
+
+
+ 3
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ scrot -s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ yes
+ yes
+
+
+
+
+
+
+
+
+
+
+ right
+
+
+
+
+ left
+
+
+
+
+ up
+
+
+
+
+ down
+
+
+
+
+
+
+ true
+ Konqueror
+
+ kfmclient openProfile filemanagement
+
+
+
+
+
+ scrot
+
+
+
+
+ 1
+
+ 500
+
+ 400
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+ previous
+
+
+
+
+ next
+
+
+
+
+ previous
+
+
+
+
+ next
+
+
+
+
+ previous
+
+
+
+
+ next
+
+
+
+
+
+
+
+
+
+
+
+
+ no
+
+
+
+
+
+
+
+
+
+
+ yes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
- scrot -s
+
+
+
+
+
+ top
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ left
-
-
-
-
-
-
-
-
+
+
+
+
+
+ right
-
-
-
- yes
- yes
-
-
-
-
-
+
+
+
+
+
+ bottom
-
-
-
-
- right
+
+
+
+
+
+
-
-
-
- left
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- up
+
+
+
+
+
+
-
-
-
- down
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ vertical
-
-
-
-
-
- true
- Konqueror
-
- kfmclient openProfile filemanagement
+
+
+
+ horizontal
-
-
-
-
- scrot
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ previous
-
-
-
- 1
-
- 500
-
- 400
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
-
-
-
-
-
-
-
-
- no
-
-
-
-
-
-
-
-
-
-
- yes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- top
-
-
-
-
-
-
- left
-
-
-
-
-
-
- right
-
-
-
-
-
-
- bottom
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- vertical
-
-
-
-
- horizontal
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
- previous
-
-
-
-
- next
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ previous
+
+
+
+
+ next
+
+
+
+
+ previous
+
+
+
+
+ next
+
+
+
+
+
+
+
+
+ no
true
- # 'Horizontal', 'Vertical' or boolean (yes/no)
+
+ yes
-
- # end of the example
- -->
-
-
- no
- true
-
- yes
-
-
- no
- true
-
- yes
-
-
- no
- true
-
- yes
-
-
-
+
+ no
+ true
+
+ yes
+
+
+ no
+ true
+
+ yes
+
+
+