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 + + + + + + + + + + + + + + + + + client-menu + + + + + + 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 + + + + + + + + + + + + + + + + + + + + + client-menu - - - - - scrot -s + + + + + + top - - - - - - - - - + + + + + + left - - - - - - - - + + + + + + right - - - - yes - yes - - - - - + + + + + + bottom - - - - - right + + + + + + client-menu - - - - left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + client-menu - - - - up + + + + + + client-menu - - - - down + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vertical - - - - - - true - Konqueror - - kfmclient openProfile filemanagement + + + + horizontal - - - - - scrot + + + + + + + + + + + + + + + + previous - - - - 1 - - 500 - - 400 - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - previous - - - - - next - - - - - previous - - - - - next - - - - - previous - - - - - next - - - - - - - - - - - - - no - - - - - - - - - - - yes - - - - - - - - - - - - - - - - - - - - - - - client-menu - - - - - - - top - - - - - - - left - - - - - - - right - - - - - - - bottom - - - - - - - client-menu - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - client-menu - - - - - - - client-menu - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - vertical - - - - - horizontal - - - - - - - - - - - - - - - - - previous - - - - - next - - - - - previous - - - - - next - - - - - previous - - - - - next - - - - - - - - - - - - - - - - client-list-combined-menu - - - - - root-menu - - - - - - - previous - - - - - next - - - - - previous - - - - - next - - - - - - - - - /var/lib/openbox/debian-menu.xml - menu.xml - 200 - - no - - 100 - - 400 - - yes - - yes - - - + + + client-list-combined-menu + + + + + root-menu + + + + + + + previous + + + + + next + + + + + previous + + + + + next + + + + + + + + + /var/lib/openbox/debian-menu.xml + menu.xml + 200 + + no + + 100 + + 400 + + yes + + yes + + + + + + 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 + + + + + + + + + + + + + + + + + client-menu + + + + + + 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 + + + + + + + + + + + + + + + + + + + + + client-menu - - - - - scrot -s + + + + + + top - - - - - - - - - + + + + + + left - - - - - - - - + + + + + + right - - - - yes - yes - - - - - + + + + + + bottom - - - - - right + + + + + + client-menu - - - - left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + client-menu - - - - up + + + + + + client-menu - - - - down + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vertical - - - - - - true - Konqueror - - kfmclient openProfile filemanagement + + + + horizontal - - - - - scrot + + + + + + + + + + + + + + + + previous - - - - 1 - - 500 - - 400 - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - previous - - - - - next - - - - - previous - - - - - next - - - - - previous - - - - - next - - - - - - - - - - - - - no - - - - - - - - - - - yes - - - - - - - - - - - - - - - - - - - - - - - client-menu - - - - - - - top - - - - - - - left - - - - - - - right - - - - - - - bottom - - - - - - - client-menu - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - client-menu - - - - - - - client-menu - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - vertical - - - - - horizontal - - - - - - - - - - - - - - - - - previous - - - - - next - - - - - previous - - - - - next - - - - - previous - - - - - next - - - - - - - - - - - - - - - - client-list-combined-menu - - - - - root-menu - - - - - - - previous - - - - - next - - - - - previous - - - - - next - - - - - - - - - /var/lib/openbox/debian-menu.xml - menu.xml - 200 - - no - - 100 - - 400 - - yes - - yes - - - + + + client-list-combined-menu + + + + + root-menu + + + + + + + previous + + + + + next + + + + + previous + + + + + next + + + + + + + + + /var/lib/openbox/debian-menu.xml + menu.xml + 200 + + no + + 100 + + 400 + + yes + + yes + + + + + + 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 + + +