Merge branch 'bionic' of https://github.com/yavdr/yavdr-ansible into bionic
This commit is contained in:
commit
71a48021eb
1923
Manual.html
1923
Manual.html
File diff suppressed because it is too large
Load Diff
782
Manual.org
782
Manual.org
@ -69,7 +69,7 @@ Format: "%d:%d:%d" (lspci liefert es als "%04x:%02x:%02x.%x", domain, bus, devic
|
|||||||
- Wie mit mehreren GPUs umgehen? Priorität bzw. Reihenfolge?
|
- Wie mit mehreren GPUs umgehen? Priorität bzw. Reihenfolge?
|
||||||
- Was ist mit NVidia Optimus/Bumblebee (AFAIK keine VDPAU-Funktionalität)?
|
- Was ist mit NVidia Optimus/Bumblebee (AFAIK keine VDPAU-Funktionalität)?
|
||||||
- Wie BusID der xrandr-Ausgabe zuordnen?
|
- Wie BusID der xrandr-Ausgabe zuordnen?
|
||||||
*** NVIDIA-Dokumentation zur BusID:
|
*** NOTE NVIDIA-Dokumentation zur BusID:
|
||||||
**** What is the format of a PCI Bus ID?
|
**** What is the format of a PCI Bus ID?
|
||||||
Different tools have different formats for the PCI Bus ID of a PCI device.
|
Different tools have different formats for the PCI Bus ID of a PCI device.
|
||||||
|
|
||||||
@ -183,6 +183,7 @@ The ~yavdr07.yml~ playbook sets up a fully-featured yaVDR installation:
|
|||||||
- pulseaudio # install pulseaudio
|
- pulseaudio # install pulseaudio
|
||||||
- yavdr-xorg # graphical session
|
- yavdr-xorg # graphical session
|
||||||
- yavdr-remote # remote configuration files, services and scripts
|
- yavdr-remote # remote configuration files, services and scripts
|
||||||
|
- yavdr-desktop # openbox session with yavdr frontend script
|
||||||
- autoinstall-satip # install vdr-plugin-satip if a Sat>IP server has been found
|
- autoinstall-satip # install vdr-plugin-satip if a Sat>IP server has been found
|
||||||
- autoinstall-targavfd # install vdr-plugin-targavfd if display is connected
|
- autoinstall-targavfd # install vdr-plugin-targavfd if display is connected
|
||||||
- autoinstall-imonlcd # install vdr-plugin-imonlcd if a matchind display is connected
|
- autoinstall-imonlcd # install vdr-plugin-imonlcd if a matchind display is connected
|
||||||
@ -217,7 +218,7 @@ For a headless server installation ~yavdr07-headless.yml~ is a good choice
|
|||||||
- collect-facts # query system facts
|
- collect-facts # query system facts
|
||||||
- vdr
|
- vdr
|
||||||
- yavdr-network
|
- yavdr-network
|
||||||
- samba-server
|
- samba-install
|
||||||
- samba-config
|
- samba-config
|
||||||
- nfs-server
|
- nfs-server
|
||||||
- grub-config
|
- grub-config
|
||||||
@ -254,6 +255,7 @@ repositories:
|
|||||||
** VDR user, directories, special configuration and plugins
|
** VDR user, directories, special configuration and plugins
|
||||||
#+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes
|
#+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes
|
||||||
# properties of the user vdr and vdr-related options
|
# properties of the user vdr and vdr-related options
|
||||||
|
# NOTE: user name, uid and confdir must match the values set by the vdr package
|
||||||
vdr:
|
vdr:
|
||||||
user: vdr
|
user: vdr
|
||||||
group: vdr
|
group: vdr
|
||||||
@ -705,7 +707,27 @@ The additional plugins to install can be set in the variable ~{{vdr_plugins}}~ i
|
|||||||
force: no
|
force: no
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
**** start vdr after network-online.target
|
||||||
|
#+BEGIN_SRC yaml :tangle roles/vdr/tasks/main.yml :mkdirp yes
|
||||||
|
- name: create directory for vdr.service systemd drop-in files
|
||||||
|
file:
|
||||||
|
dest: '{{ item }}'
|
||||||
|
state: directory
|
||||||
|
with_items:
|
||||||
|
- "/etc/systemd/system/vdr.service.d/"
|
||||||
|
|
||||||
|
- name: systemd-drop-in | start vdr.service after network-online.target
|
||||||
|
template:
|
||||||
|
src: templates/systemd/network-online.j2
|
||||||
|
dest: /etc/systemd/system/vdr.service.d/network-online.conf
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
*** templates
|
*** templates
|
||||||
|
Start after network-online.target
|
||||||
|
#+BEGIN_SRC conf :tangle roles/vdr/templates/systemd/network-online.j2 :mkdirp yes
|
||||||
|
[Unit]
|
||||||
|
After=network-online.target
|
||||||
|
#+END_SRC
|
||||||
*** files
|
*** files
|
||||||
**** remote.conf
|
**** remote.conf
|
||||||
#+BEGIN_SRC conf :tangle roles/vdr/files/remote.conf :mkdirp yes :padline no
|
#+BEGIN_SRC conf :tangle roles/vdr/files/remote.conf :mkdirp yes :padline no
|
||||||
@ -1695,8 +1717,6 @@ first_run: False
|
|||||||
tags: [install,update]
|
tags: [install,update]
|
||||||
- import_tasks: detect-xorg.yml
|
- import_tasks: detect-xorg.yml
|
||||||
tags: [xorg.detect,install]
|
tags: [xorg.detect,install]
|
||||||
- import_tasks: desktop-session.yml
|
|
||||||
tags: [install,update]
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
**** setup-xorg.yml
|
**** setup-xorg.yml
|
||||||
#+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/setup-xorg.yml :mkdirp yes :padline no
|
#+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/setup-xorg.yml :mkdirp yes :padline no
|
||||||
@ -1717,6 +1737,11 @@ first_run: False
|
|||||||
src: templates/vdr-xorg.conf
|
src: templates/vdr-xorg.conf
|
||||||
dest: /etc/systemd/system/vdr.service.d/vdr-xorg.conf
|
dest: /etc/systemd/system/vdr.service.d/vdr-xorg.conf
|
||||||
|
|
||||||
|
- name: systemd-drop-in | start x@.service after plymouth.service
|
||||||
|
template:
|
||||||
|
src: templates/x@service.d/plymouth.conf.j2
|
||||||
|
dest: /etc/systemd/system/x@.service.d/plymouth.conf
|
||||||
|
|
||||||
- name: systemd-drop-in | start x@.service before xlogin@.service
|
- name: systemd-drop-in | start x@.service before xlogin@.service
|
||||||
template:
|
template:
|
||||||
src: templates/x@service.d/xlogin.conf.j2
|
src: templates/x@service.d/xlogin.conf.j2
|
||||||
@ -1727,11 +1752,6 @@ first_run: False
|
|||||||
src: templates/systemd/vdr-environ.j2
|
src: templates/systemd/vdr-environ.j2
|
||||||
dest: /etc/systemd/system/vdr.service.d/load-environ.conf
|
dest: /etc/systemd/system/vdr.service.d/load-environ.conf
|
||||||
|
|
||||||
- name: systemd-drop-in | start vdr.service after network-online.target
|
|
||||||
template:
|
|
||||||
src: templates/systemd/network-online.j2
|
|
||||||
dest: /etc/systemd/system/vdr.service.d/network-online.conf
|
|
||||||
|
|
||||||
- name: systemd-drop-in | user@{{ vdr.uid }}.service depends on x@vt7.service
|
- name: systemd-drop-in | user@{{ vdr.uid }}.service depends on x@vt7.service
|
||||||
template:
|
template:
|
||||||
src: templates/user@666.service.d/x-dependency.conf.j2
|
src: templates/user@666.service.d/x-dependency.conf.j2
|
||||||
@ -1743,6 +1763,7 @@ first_run: False
|
|||||||
line: '{{ item }}'
|
line: '{{ item }}'
|
||||||
with_items:
|
with_items:
|
||||||
- '-D'
|
- '-D'
|
||||||
|
- '-w alsa-driver-broken'
|
||||||
# - '-a pulse' # do we need this with our existing asound.conf?
|
# - '-a pulse' # do we need this with our existing asound.conf?
|
||||||
|
|
||||||
- name: add a login shell for the user vdr
|
- name: add a login shell for the user vdr
|
||||||
@ -1790,6 +1811,11 @@ first_run: False
|
|||||||
# NOTE: write-x11-keyboard-config is in the xlogin package
|
# NOTE: write-x11-keyboard-config is in the xlogin package
|
||||||
# Ubuntu's systemd is patched, so it does not create the file automatically
|
# Ubuntu's systemd is patched, so it does not create the file automatically
|
||||||
|
|
||||||
|
- name: add snippet to ignore eventlircd devices in xorg
|
||||||
|
template:
|
||||||
|
src: templates/xorg-ignore-eventlircd.conf.j2
|
||||||
|
dest: /etc/X11/xorg.conf.d/40-ignore-eventlircd.conf
|
||||||
|
|
||||||
- name: apt | install desktop programs
|
- name: apt | install desktop programs
|
||||||
apt:
|
apt:
|
||||||
name: '{{ item }}'
|
name: '{{ item }}'
|
||||||
@ -1945,141 +1971,6 @@ first_run: False
|
|||||||
- nvidia_detected
|
- nvidia_detected
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
**** desktop-session.yml
|
|
||||||
#+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/desktop-session.yml :mkdirp yes :padline no
|
|
||||||
---
|
|
||||||
# file: roles/yavdr-xorg/tasks/desktop-session.yml
|
|
||||||
|
|
||||||
- name: create folders for user configuration files
|
|
||||||
file:
|
|
||||||
state: directory
|
|
||||||
dest: '{{ item }}'
|
|
||||||
mode: '0775'
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
with_items:
|
|
||||||
- '{{ vdr.home }}/.config/systemd/user'
|
|
||||||
- '{{ vdr.home }}/.config/openbox'
|
|
||||||
- '{{ vdr.home }}/.config/pulse'
|
|
||||||
|
|
||||||
- name: expand template for .xinitrc for vdr user
|
|
||||||
template:
|
|
||||||
src: 'templates/.xinitrc.j2'
|
|
||||||
dest: '{{ vdr.home }}/.xinitrc'
|
|
||||||
mode: 0755
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
|
|
||||||
- name: "expand template for vdr's .Xresources"
|
|
||||||
template:
|
|
||||||
src: 'templates/.Xresources.j2'
|
|
||||||
dest: '{{ vdr.home }}/.Xresources'
|
|
||||||
mode: 0644
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
|
|
||||||
- name: expand template for openbox autostart
|
|
||||||
template:
|
|
||||||
src: 'templates/openbox/autostart.j2'
|
|
||||||
dest: '{{ vdr.home }}/.config/openbox/autostart'
|
|
||||||
mode: 0755
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
|
|
||||||
- name: expand rc.xml for openbox
|
|
||||||
template:
|
|
||||||
src: 'templates/openbox/rc.xml.j2'
|
|
||||||
dest: '{{ vdr.home }}/.config/openbox/rc.xml'
|
|
||||||
mode: 0644
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
|
|
||||||
- name: create yavdr-desktop.target for the user session
|
|
||||||
template:
|
|
||||||
src: 'templates/systemd/user/yavdr-desktop.target.j2'
|
|
||||||
dest: '{{ vdr.home }}/.config/systemd/user/yavdr-desktop.target'
|
|
||||||
mode: 0644
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
|
|
||||||
- name: disable pulseaudio autospawning
|
|
||||||
lineinfile:
|
|
||||||
path: '{{ vdr.home }}/.config/pulse/client.conf'
|
|
||||||
line: 'autospawn = yes'
|
|
||||||
create: yes
|
|
||||||
state: present
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
|
|
||||||
- name: create tmux.service for the session
|
|
||||||
template:
|
|
||||||
src: roles/yavdr-xorg/templates/systemd/user/tmux.service.j2
|
|
||||||
dest: '{{ vdr.home }}/.config/systemd/user/tmux.service'
|
|
||||||
mode: 0644
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
|
|
||||||
- name: create wm-exit.service for the session
|
|
||||||
template:
|
|
||||||
src: roles/yavdr-xorg/templates/systemd/user/wm-exit.service.j2
|
|
||||||
dest: '{{ vdr.home }}/.config/systemd/user/wm-exit.service'
|
|
||||||
mode: 0644
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
|
|
||||||
- name: create detect-second-display.service for the session
|
|
||||||
template:
|
|
||||||
src: templates/systemd/user/detect-second-display.service.j2
|
|
||||||
dest: '{{ vdr.home }}/.config/systemd/user/detect-second-display.service'
|
|
||||||
mode: 0644
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
|
|
||||||
- name: create openbox-second.service for the session
|
|
||||||
template:
|
|
||||||
src: templates/systemd/user/openbox-second.service.j2
|
|
||||||
dest: '{{ vdr.home }}/.config/systemd/user/openbox-second.service'
|
|
||||||
mode: 0644
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
|
|
||||||
- name: create osd2web.service for the session
|
|
||||||
template:
|
|
||||||
src: templates/systemd/user/osd2web.service.j2
|
|
||||||
dest: '{{ vdr.home }}/.config/systemd/user/osd2web.service'
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
|
|
||||||
- name: create irexec configuration for the session
|
|
||||||
block:
|
|
||||||
- template:
|
|
||||||
src: templates/systemd/user/irexec.service.j2
|
|
||||||
dest: '{{ vdr.home }}/.config/systemd/user/irexec.service'
|
|
||||||
mode: 0644
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
- template:
|
|
||||||
src: templates/.lircrc.j2
|
|
||||||
dest: '{{ vdr.home }}/.lircrc'
|
|
||||||
mode: 0644
|
|
||||||
owner: '{{ vdr.user }}'
|
|
||||||
group: '{{ vdr.group }}'
|
|
||||||
|
|
||||||
- name: link /usr/bin/start-desktop to /var/lib/vdr/plugins/desktop/starter
|
|
||||||
file:
|
|
||||||
src: /usr/bin/start-desktop
|
|
||||||
dest: /var/lib/vdr/plugins/desktop/starter
|
|
||||||
state: link
|
|
||||||
|
|
||||||
- name: enable and start xlogin for the vdr user
|
|
||||||
systemd:
|
|
||||||
daemon_reload: yes
|
|
||||||
name: 'xlogin@{{ vdr.user }}'
|
|
||||||
enabled: yes
|
|
||||||
state: started
|
|
||||||
#+END_SRC
|
|
||||||
*** templates
|
*** templates
|
||||||
**** xorg
|
**** xorg
|
||||||
***** x-verbose@.service
|
***** x-verbose@.service
|
||||||
@ -2095,6 +1986,10 @@ Type=forking
|
|||||||
ExecStart=/usr/bin/x-daemon -logverbose 6 -noreset %I -config /etc/X11/xorg-verbose.conf
|
ExecStart=/usr/bin/x-daemon -logverbose 6 -noreset %I -config /etc/X11/xorg-verbose.conf
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
***** Drop-in snippet for x@.service
|
***** Drop-in snippet for x@.service
|
||||||
|
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/x@service.d/plymouth.conf.j2 :mkdirp yes :padline no
|
||||||
|
[Unit]
|
||||||
|
After=plymouth.service
|
||||||
|
#+END_SRC
|
||||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/x@service.d/xlogin.conf.j2 :mkdirp yes :padline no
|
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/x@service.d/xlogin.conf.j2 :mkdirp yes :padline no
|
||||||
[Unit]
|
[Unit]
|
||||||
Before=xlogin@{{ vdr.user }}.service
|
Before=xlogin@{{ vdr.user }}.service
|
||||||
@ -2118,34 +2013,29 @@ After=x@vt7.service
|
|||||||
Wants=x@vt7.service
|
Wants=x@vt7.service
|
||||||
#BindsTo=x@vt7.service
|
#BindsTo=x@vt7.service
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
***** .xinitrc
|
***** xorg.conf snippets
|
||||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/.xinitrc.j2 :mkdirp yes :padline no
|
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/xorg-ignore-eventlircd.conf.j2
|
||||||
#!/bin/bash
|
|
||||||
{{ ansible_managed | comment }}
|
{{ ansible_managed | comment }}
|
||||||
exec openbox-session
|
|
||||||
|
Section "InputClass"
|
||||||
|
Identifier "exclude eventlircd devices"
|
||||||
|
MatchTag "eventlircd"
|
||||||
|
Option "Ignore" "True"
|
||||||
|
EndSection
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
***** xorg.conf
|
***** xorg.conf
|
||||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/xorg-verbose.conf.j2
|
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/xorg-verbose.conf.j2
|
||||||
Section "Device"
|
Section "Device"
|
||||||
Identifier "nvidia"
|
Identifier "nvidia"
|
||||||
Driver "nvidia"
|
Driver "nvidia"
|
||||||
Option "NoLogo" "true"
|
|
||||||
Option "DynamicTwinView" "true"
|
Option "DynamicTwinView" "true"
|
||||||
Option "NoFlip" "false"
|
Option "NoFlip" "false"
|
||||||
# Option "FlatPanelProperties" "Scaling = Native"
|
|
||||||
# Option "ModeValidation" "NoVesaModes, NoXServerModes"
|
|
||||||
# Option "ModeDebug" "true"
|
|
||||||
# Option "HWCursor" "false"
|
|
||||||
EndSection
|
EndSection
|
||||||
|
|
||||||
Section "Screen"
|
Section "Screen"
|
||||||
Identifier "screen"
|
Identifier "screen"
|
||||||
Device "nvidia"
|
Device "nvidia"
|
||||||
EndSection
|
EndSection
|
||||||
|
|
||||||
Section "Extensions"
|
|
||||||
Option "Composite" "false"
|
|
||||||
EndSection
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/xorg.conf.j2
|
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/xorg.conf.j2
|
||||||
{{ ansible_managed | comment }}
|
{{ ansible_managed | comment }}
|
||||||
@ -2187,6 +2077,8 @@ Section "Device"
|
|||||||
BoardName "Unknown"
|
BoardName "Unknown"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
Screen 0
|
Screen 0
|
||||||
|
Option "ConnectedMonitor" "{{ xorg.primary.connector }}{% if xorg.secondary is defined %}, {{ xorg.secondary.connector }}{% endif %}"
|
||||||
|
Option "CustomEDID" "{{ xorg.primary.connector }}:/etc/X11/edid.{{ xorg.primary.connector }}.bin{% if xorg.secondary is defined %};{{ xorg.secondary.connector }}:/etc/X11/edid.{{ xorg.secondary.connector }}.bin{% endif %}"
|
||||||
EndSection
|
EndSection
|
||||||
|
|
||||||
Section "Screen"
|
Section "Screen"
|
||||||
@ -2195,9 +2087,7 @@ Section "Screen"
|
|||||||
Monitor "Monitor0"
|
Monitor "Monitor0"
|
||||||
DefaultDepth 24
|
DefaultDepth 24
|
||||||
Option "nvidiaXineramaInfoOrder" "{{ xorg.primary.connector }}"
|
Option "nvidiaXineramaInfoOrder" "{{ xorg.primary.connector }}"
|
||||||
Option "ConnectedMonitor" "{{ xorg.primary.connector }}{% if xorg.secondary is defined %}, {{ xorg.secondary.connector }}{% endif %}"
|
|
||||||
Option "UseDisplayDevice" "{{ xorg.primary.connector }}"
|
Option "UseDisplayDevice" "{{ xorg.primary.connector }}"
|
||||||
Option "CustomEDID" "{{ xorg.primary.connector }}:/etc/X11/edid.{{ xorg.primary.connector }}.bin"
|
|
||||||
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=On, ForceFullCompositionPipeline=On}"
|
||||||
Option "AllowIndirectGLXProtocol" "off"
|
Option "AllowIndirectGLXProtocol" "off"
|
||||||
Option "TripleBuffer" "on"
|
Option "TripleBuffer" "on"
|
||||||
@ -2236,9 +2126,9 @@ Section "Screen"
|
|||||||
Monitor "Monitor1"
|
Monitor "Monitor1"
|
||||||
DefaultDepth 24
|
DefaultDepth 24
|
||||||
Option "nvidiaXineramaInfoOrder" "{{ xorg.secondary.connector }}"
|
Option "nvidiaXineramaInfoOrder" "{{ xorg.secondary.connector }}"
|
||||||
Option "ConnectedMonitor" "{{ xorg.secondary.connector }}"
|
#Option "ConnectedMonitor" "{{ xorg.secondary.connector }}"
|
||||||
Option "UseDisplayDevice" "{{ xorg.secondary.connector }}"
|
Option "UseDisplayDevice" "{{ xorg.secondary.connector }}"
|
||||||
Option "CustomEDID" "{{ xorg.secondary.connector }}:/etc/X11/edid.{{ xorg.secondary.connector }}.bin"
|
#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=On, ForceFullCompositionPipeline=On}"
|
||||||
Option "AllowIndirectGLXProtocol" "off"
|
Option "AllowIndirectGLXProtocol" "off"
|
||||||
Option "TripleBuffer" "on"
|
Option "TripleBuffer" "on"
|
||||||
@ -2447,9 +2337,156 @@ Section "Screen"
|
|||||||
EndSection
|
EndSection
|
||||||
{% endif %}
|
{% endif %}
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
**** vdr
|
||||||
|
Set environment variables for user session on startup
|
||||||
|
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/systemd/vdr-environ.j2
|
||||||
|
[Service]
|
||||||
|
Environment=XDG_RUNTIME_DIR=/run/user/{{ vdr.uid }}/
|
||||||
|
EnvironmentFile=-/var/lib/vdr/.session-env
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** yavdr-desktop
|
||||||
|
*** Tasks
|
||||||
|
**** main.yml
|
||||||
|
#+BEGIN_SRC yaml :tangle roles/yavdr-desktop/tasks/main.yml :mkdirp yes :padline no
|
||||||
|
---
|
||||||
|
# file: roles/yavdr-desktop/tasks/main.yml
|
||||||
|
|
||||||
|
- name: create folders for user configuration files
|
||||||
|
file:
|
||||||
|
state: directory
|
||||||
|
dest: '{{ item }}'
|
||||||
|
mode: '0775'
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
with_items:
|
||||||
|
- '{{ vdr.home }}/.config/systemd/user'
|
||||||
|
- '{{ vdr.home }}/.config/openbox'
|
||||||
|
- '{{ vdr.home }}/.config/pulse'
|
||||||
|
|
||||||
|
- name: expand template for .xinitrc for vdr user
|
||||||
|
template:
|
||||||
|
src: 'templates/.xinitrc.j2'
|
||||||
|
dest: '{{ vdr.home }}/.xinitrc'
|
||||||
|
mode: 0755
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: "expand template for vdr's .Xresources"
|
||||||
|
template:
|
||||||
|
src: 'templates/.Xresources.j2'
|
||||||
|
dest: '{{ vdr.home }}/.Xresources'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: expand template for openbox autostart
|
||||||
|
template:
|
||||||
|
src: 'templates/openbox/autostart.j2'
|
||||||
|
dest: '{{ vdr.home }}/.config/openbox/autostart'
|
||||||
|
mode: 0755
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: expand rc.xml for openbox
|
||||||
|
template:
|
||||||
|
src: 'templates/openbox/rc.xml.j2'
|
||||||
|
dest: '{{ vdr.home }}/.config/openbox/rc.xml'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create yavdr-desktop.target for the user session
|
||||||
|
template:
|
||||||
|
src: 'templates/systemd/user/yavdr-desktop.target.j2'
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/yavdr-desktop.target'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: disable pulseaudio autospawning
|
||||||
|
lineinfile:
|
||||||
|
path: '{{ vdr.home }}/.config/pulse/client.conf'
|
||||||
|
line: 'autospawn = yes'
|
||||||
|
create: yes
|
||||||
|
state: present
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create tmux.service for the session
|
||||||
|
template:
|
||||||
|
src: 'templates/systemd/user/tmux.service.j2'
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/tmux.service'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create wm-exit.service for the session
|
||||||
|
template:
|
||||||
|
src: templates/systemd/user/wm-exit.service.j2
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/wm-exit.service'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create detect-second-display.service for the session
|
||||||
|
template:
|
||||||
|
src: templates/systemd/user/detect-second-display.service.j2
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/detect-second-display.service'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create openbox-second.service for the session
|
||||||
|
template:
|
||||||
|
src: templates/systemd/user/openbox-second.service.j2
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/openbox-second.service'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create osd2web.service for the session
|
||||||
|
template:
|
||||||
|
src: templates/systemd/user/osd2web.service.j2
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/osd2web.service'
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
|
||||||
|
- name: create irexec configuration for the session
|
||||||
|
block:
|
||||||
|
- template:
|
||||||
|
src: templates/systemd/user/irexec.service.j2
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/irexec.service'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
- template:
|
||||||
|
src: templates/.lircrc.j2
|
||||||
|
dest: '{{ vdr.home }}/.lircrc'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: link /usr/bin/start-desktop to /var/lib/vdr/plugins/desktop/starter
|
||||||
|
file:
|
||||||
|
src: /usr/bin/start-desktop
|
||||||
|
dest: /var/lib/vdr/plugins/desktop/starter
|
||||||
|
state: link
|
||||||
|
|
||||||
|
- name: enable and start xlogin for the vdr user
|
||||||
|
systemd:
|
||||||
|
daemon_reload: yes
|
||||||
|
name: 'xlogin@{{ vdr.user }}'
|
||||||
|
enabled: yes
|
||||||
|
state: started
|
||||||
|
#+END_SRC
|
||||||
|
*** Templates
|
||||||
|
**** xorg configuration
|
||||||
***** .Xresources
|
***** .Xresources
|
||||||
|
|
||||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/.Xresources.j2 :mkdirp yes :padline no
|
#+BEGIN_SRC shell :tangle roles/yavdr-desktop/templates/.Xresources.j2 :mkdirp yes :padline no
|
||||||
xterm*background: Black
|
xterm*background: Black
|
||||||
xterm*foreground: grey
|
xterm*foreground: grey
|
||||||
XTerm*locale: true
|
XTerm*locale: true
|
||||||
@ -2467,130 +2504,15 @@ xterm*renderFont: true
|
|||||||
XTerm.vt100.faceName: xft:DejaVu Sans Mono:size=12:antialias=false
|
XTerm.vt100.faceName: xft:DejaVu Sans Mono:size=12:antialias=false
|
||||||
XTerm.vt100.font: 7x13
|
XTerm.vt100.font: 7x13
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
**** vdr
|
***** .xinitrc
|
||||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/systemd/vdr-environ.j2
|
#+BEGIN_SRC shell :tangle roles/yavdr-desktop/templates/.xinitrc.j2 :mkdirp yes :padline no
|
||||||
[Service]
|
#!/bin/bash
|
||||||
Environment=XDG_RUNTIME_DIR=/run/user/{{ vdr.uid }}/
|
{{ ansible_managed | comment }}
|
||||||
EnvironmentFile=-/var/lib/vdr/.session-env
|
exec openbox-session
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/systemd/network-online.j2
|
|
||||||
[Unit]
|
|
||||||
After=network-online.target
|
|
||||||
#+END_SRC
|
|
||||||
**** Systemd User Session
|
|
||||||
***** yavdr-desktop.target
|
|
||||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/systemd/user/yavdr-desktop.target.j2 :mkdirp yes :padline no
|
|
||||||
[Unit]
|
|
||||||
Description=yaVDR Desktop
|
|
||||||
Requires=default.target
|
|
||||||
After=default.target pulseaudio.service
|
|
||||||
Wants=dbus.service pulseaudio.service
|
|
||||||
AllowIsolate=yes
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
***** detect-second-display
|
|
||||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/systemd/user/detect-second-display.service.j2 :mkdirp yes :padline no
|
|
||||||
[Unit]
|
|
||||||
Description=Detect second DISPLAY using xrandr
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
ExecStart=/bin/bash -c 'export DISPLAY=$DISPLAY.1; xrandr -q | grep "connected" && echo "DISPLAY=$DISPLAY" > ~/.second_display || rm -f ~/.second_display'
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=yavdr-desktop.target
|
|
||||||
#+END_SRC
|
|
||||||
***** openbox-second.service
|
|
||||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/systemd/user/openbox-second.service.j2 :mkdirp yes :padline no
|
|
||||||
[Unit]
|
|
||||||
Description=Start openbox on the second DISPLAY if it exists
|
|
||||||
After=detect-second-display.service
|
|
||||||
Wants=detect-second-display.service
|
|
||||||
Before=yavdr-frontend.service
|
|
||||||
ConditionFileNotEmpty=%h/.second_display
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
PassEnvironment=XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
|
||||||
EnvironmentFile=%h/.second_display
|
|
||||||
ExecStart=/usr/bin/openbox --config-file %h/.config/openbox/rc.xml
|
|
||||||
ExecStartPost=/bin/bash %h/.fehbg
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=yavdr-desktop.target
|
|
||||||
#+END_SRC
|
|
||||||
***** osd2web.service
|
|
||||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/systemd/user/osd2web.service.j2 :mkdirp yes :padline no
|
|
||||||
[Unit]
|
|
||||||
Description=Start a kiosk browser on the second DISPLAY if it exists
|
|
||||||
After=detect-second-display.service openbox-second.service
|
|
||||||
Wants=detect-second-display.service openbox-second.service
|
|
||||||
ConditionFileNotEmpty=%h/.second_display
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
PassEnvironment=XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
|
||||||
EnvironmentFile=%h/.second_display
|
|
||||||
Environment=url="http://localhost:4444/skins/horchiTft/index.html?theme=anthraize&onlyView=1"
|
|
||||||
EnvironmentFile=-%h/.config/osd2web/url
|
|
||||||
ExecStart=/usr/bin/on_vdr -o -c 'kiosk-browser "${url}"'
|
|
||||||
KillSignal=SIGINT
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=yavdr-desktop.target
|
|
||||||
#+END_SRC
|
|
||||||
***** tmux.service
|
|
||||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/systemd/user/tmux.service.j2 :mkdirp yes :padline no
|
|
||||||
[Unit]
|
|
||||||
Description=Start tmux in detached session
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
EnvironmentFile=-%h/.session-env
|
|
||||||
Type=forking
|
|
||||||
ExecStart=/usr/bin/tmux new-session -s use-session -d
|
|
||||||
ExecStop=/usr/bin/tmux kill-session -t %u
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=default.target
|
|
||||||
#+END_SRC
|
|
||||||
***** wm-exit.service
|
|
||||||
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/systemd/user/wm-exit.service.j2 :mkdirp yes :padline no
|
|
||||||
[Unit]
|
|
||||||
Description=exit window manager gracefully
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart=/bin/true
|
|
||||||
ExecStop=/usr/bin/openbox --exit
|
|
||||||
RemainAfterExit=True
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=default.target
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
**** irexec
|
|
||||||
irexec.service starts irexec for the user session
|
|
||||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/systemd/user/irexec.service.j2 :mkdirp yes :padline no
|
|
||||||
[Unit]
|
|
||||||
Description=LIRC command handler
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStart=/usr/bin/irexec %h/.lircrc
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=yavdr-desktop.target
|
|
||||||
#+END_SRC
|
|
||||||
~/.lircrc contains the irexec configuration
|
|
||||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/.lircrc.j2 :mkdirp yes :padline no
|
|
||||||
begin
|
|
||||||
prog = irexec
|
|
||||||
button = KEY_HOME
|
|
||||||
config = frontend-dbus-send switchbetween kodi vdr
|
|
||||||
end
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
**** openbox
|
**** openbox
|
||||||
***** autostart
|
***** autostart
|
||||||
#+BEGIN_SRC shell :tangle roles/yavdr-xorg/templates/openbox/autostart.j2 :mkdirp yes :shebang #!/bin/bash
|
#+BEGIN_SRC shell :tangle roles/yavdr-desktop/templates/openbox/autostart.j2 :mkdirp yes :shebang #!/bin/bash
|
||||||
# forward environment variables to an environment file and the systemd user session
|
# forward environment variables to an environment file and the systemd user session
|
||||||
env | grep "DISPLAY\|DBUS_SESSION_BUS_ADDRESS\|XDG_RUNTIME_DIR" > ~/.session-env
|
env | grep "DISPLAY\|DBUS_SESSION_BUS_ADDRESS\|XDG_RUNTIME_DIR" > ~/.session-env
|
||||||
systemctl --user import-environment DISPLAY XAUTHORITY XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
systemctl --user import-environment DISPLAY XAUTHORITY XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
||||||
@ -2622,7 +2544,7 @@ fi
|
|||||||
systemctl --user isolate yavdr-desktop.target
|
systemctl --user isolate yavdr-desktop.target
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
***** rc.xml
|
***** rc.xml
|
||||||
#+BEGIN_SRC xml :tangle roles/yavdr-xorg/templates/openbox/rc.xml.j2 :mkdirp yes :padline no
|
#+BEGIN_SRC xml :tangle roles/yavdr-desktop/templates/openbox/rc.xml.j2 :mkdirp yes :padline no
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<openbox_config xmlns="http://openbox.org/3.4/rc" xmlns:xi="http://www.w3.org/2001/XInclude">
|
<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.
|
<!-- Do not edit this file, it will be overwritten on install.
|
||||||
@ -3409,6 +3331,12 @@ systemctl --user isolate yavdr-desktop.target
|
|||||||
<!--<skip_pager>yes</skip_pager>-->
|
<!--<skip_pager>yes</skip_pager>-->
|
||||||
<skip_taskbar>no</skip_taskbar>
|
<skip_taskbar>no</skip_taskbar>
|
||||||
</application>
|
</application>
|
||||||
|
<application title="vaapidevice">
|
||||||
|
<decor>no</decor>
|
||||||
|
<maximized>yes</maximized>
|
||||||
|
<!--<skip_pager>yes</skip_pager>-->
|
||||||
|
<skip_taskbar>no</skip_taskbar>
|
||||||
|
</application>
|
||||||
<application class="VDR">
|
<application class="VDR">
|
||||||
<decor>no</decor>
|
<decor>no</decor>
|
||||||
<maximized>yes</maximized>
|
<maximized>yes</maximized>
|
||||||
@ -3432,6 +3360,114 @@ systemctl --user isolate yavdr-desktop.target
|
|||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
**** Systemd User Session
|
||||||
|
***** yavdr-desktop.target
|
||||||
|
#+BEGIN_SRC shell :tangle roles/yavdr-desktop/templates/systemd/user/yavdr-desktop.target.j2 :mkdirp yes :padline no
|
||||||
|
[Unit]
|
||||||
|
Description=yaVDR Desktop
|
||||||
|
Requires=default.target
|
||||||
|
After=default.target pulseaudio.service
|
||||||
|
Wants=dbus.service pulseaudio.service
|
||||||
|
AllowIsolate=yes
|
||||||
|
#+END_SRC
|
||||||
|
***** detect-second-display
|
||||||
|
#+BEGIN_SRC conf :tangle roles/yavdr-desktop/templates/systemd/user/detect-second-display.service.j2 :mkdirp yes :padline no
|
||||||
|
[Unit]
|
||||||
|
Description=Detect second DISPLAY using xrandr
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/bin/bash -c 'export DISPLAY=$DISPLAY.1; xrandr -q | grep "connected" && echo "DISPLAY=$DISPLAY" > ~/.second_display || rm -f ~/.second_display'
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=yavdr-desktop.target
|
||||||
|
#+END_SRC
|
||||||
|
***** openbox-second.service
|
||||||
|
#+BEGIN_SRC conf :tangle roles/yavdr-desktop/templates/systemd/user/openbox-second.service.j2 :mkdirp yes :padline no
|
||||||
|
[Unit]
|
||||||
|
Description=Start openbox on the second DISPLAY if it exists
|
||||||
|
After=detect-second-display.service
|
||||||
|
Wants=detect-second-display.service
|
||||||
|
Before=yavdr-frontend.service
|
||||||
|
ConditionFileNotEmpty=%h/.second_display
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
EnvironmentFile=%h/.second_display
|
||||||
|
ExecStart=/usr/bin/openbox --config-file %h/.config/openbox/rc.xml
|
||||||
|
ExecStartPost=/bin/bash %h/.fehbg
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=yavdr-desktop.target
|
||||||
|
#+END_SRC
|
||||||
|
***** osd2web.service
|
||||||
|
#+BEGIN_SRC conf :tangle roles/yavdr-desktop/templates/systemd/user/osd2web.service.j2 :mkdirp yes :padline no
|
||||||
|
[Unit]
|
||||||
|
Description=Start a kiosk browser on the second DISPLAY if it exists
|
||||||
|
After=detect-second-display.service openbox-second.service
|
||||||
|
Wants=detect-second-display.service openbox-second.service
|
||||||
|
ConditionFileNotEmpty=%h/.second_display
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
EnvironmentFile=%h/.second_display
|
||||||
|
Environment=url="http://localhost:4444/skins/horchiTft/index.html?theme=anthraize&onlyView=1"
|
||||||
|
Environment=browser="kiosk-browser"
|
||||||
|
EnvironmentFile=-%h/.config/osd2web/config
|
||||||
|
ExecStart=/usr/bin/on_vdr -o -c '${browser} "${url}"'
|
||||||
|
KillSignal=SIGINT
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=yavdr-desktop.target
|
||||||
|
#+END_SRC
|
||||||
|
***** tmux.service
|
||||||
|
#+BEGIN_SRC conf :tangle roles/yavdr-desktop/templates/systemd/user/tmux.service.j2 :mkdirp yes :padline no
|
||||||
|
[Unit]
|
||||||
|
Description=Start tmux in detached session
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
EnvironmentFile=-%h/.session-env
|
||||||
|
Type=forking
|
||||||
|
ExecStart=/usr/bin/tmux new-session -s use-session -d
|
||||||
|
ExecStop=/usr/bin/tmux kill-session -t %u
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
#+END_SRC
|
||||||
|
***** wm-exit.service
|
||||||
|
#+BEGIN_SRC conf :tangle roles/yavdr-desktop/templates/systemd/user/wm-exit.service.j2 :mkdirp yes :padline no
|
||||||
|
[Unit]
|
||||||
|
Description=exit window manager gracefully
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/bin/true
|
||||||
|
ExecStop=/usr/bin/openbox --exit
|
||||||
|
RemainAfterExit=True
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
#+END_SRC
|
||||||
|
**** irexec
|
||||||
|
irexec.service starts irexec for the user session
|
||||||
|
#+BEGIN_SRC shell :tangle roles/yavdr-desktop/templates/systemd/user/irexec.service.j2 :mkdirp yes :padline no
|
||||||
|
[Unit]
|
||||||
|
Description=LIRC command handler
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/irexec %h/.lircrc
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=yavdr-desktop.target
|
||||||
|
#+END_SRC
|
||||||
|
~/.lircrc contains the irexec configuration
|
||||||
|
#+BEGIN_SRC shell :tangle roles/yavdr-desktop/templates/.lircrc.j2 :mkdirp yes :padline no
|
||||||
|
begin
|
||||||
|
prog = irexec
|
||||||
|
button = KEY_HOME
|
||||||
|
config = frontend-dbus-send switchbetween kodi vdr
|
||||||
|
end
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
** samba-install
|
** samba-install
|
||||||
*** tasks
|
*** tasks
|
||||||
#+BEGIN_SRC yaml :tangle roles/samba-install/tasks/main.yml :mkdirp yes :padline no
|
#+BEGIN_SRC yaml :tangle roles/samba-install/tasks/main.yml :mkdirp yes :padline no
|
||||||
@ -3634,6 +3670,26 @@ This role installs the guest additions for virtualbox guests on Ubuntu 16.04
|
|||||||
- ansible_virtualization_role == "guest"
|
- ansible_virtualization_role == "guest"
|
||||||
- ansible_distribution == "Ubuntu"
|
- ansible_distribution == "Ubuntu"
|
||||||
- ansible_distribution_version == "16.04"
|
- ansible_distribution_version == "16.04"
|
||||||
|
|
||||||
|
- name: set xineliboutput as frontend
|
||||||
|
block:
|
||||||
|
- apt:
|
||||||
|
name: '{{ item }}'
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- vdr-plugin-xineliboutput
|
||||||
|
- xineliboutput-sxfe
|
||||||
|
- command: '{{ item }}'
|
||||||
|
with_items:
|
||||||
|
- vdrctl disable softhddevice
|
||||||
|
- vdrctl disable vaapidevice
|
||||||
|
- vdrctl disable xine
|
||||||
|
- vdrctl disable pvr350
|
||||||
|
- vdrctl enable xineliboutput
|
||||||
|
ignore_errors: yes
|
||||||
|
when:
|
||||||
|
- ansible_virtualization_type == "virtualbox"
|
||||||
|
- ansible_virtualization_role == "guest"
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
** autoinstall-atric-usb
|
** autoinstall-atric-usb
|
||||||
*** dependencies
|
*** dependencies
|
||||||
@ -3959,9 +4015,6 @@ dependencies:
|
|||||||
state: present
|
state: present
|
||||||
when: '"1209:4444" in usb or "16c0:27d9" in usb'
|
when: '"1209:4444" in usb or "16c0:27d9" in usb'
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
**** TODO add other device ids if necessary
|
|
||||||
|
|
||||||
** kodi
|
** kodi
|
||||||
*** tasks
|
*** tasks
|
||||||
**** Install KODI
|
**** Install KODI
|
||||||
@ -3995,6 +4048,154 @@ This file maps the keys defined in Lircmap.xml to actions within kodi.
|
|||||||
:UNNUMBERED: t
|
:UNNUMBERED: t
|
||||||
:END:
|
:END:
|
||||||
#+INCLUDE: "roles/dvd/tasks/main.yml" src yaml
|
#+INCLUDE: "roles/dvd/tasks/main.yml" src yaml
|
||||||
|
** install-sundtek
|
||||||
|
*** variables
|
||||||
|
*** tasks
|
||||||
|
#+BEGIN_SRC yaml :tangle roles/install-sundtek/tasks/main.yml :padline no
|
||||||
|
---
|
||||||
|
# file roles/install-sundtek/tasks/main.yml
|
||||||
|
|
||||||
|
- name: apt | install yavdr-hardware-sundtek
|
||||||
|
apt:
|
||||||
|
name: yavdr-hardware-sundtek
|
||||||
|
|
||||||
|
# TODO: include LD_PRELOAD in yavdr-hardware-sundtek!
|
||||||
|
#- name: set LD_PRELOAD for sundtek driver to VDR's environment
|
||||||
|
# file:
|
||||||
|
# src: files/sundtek_LD_PRELOAD.conf
|
||||||
|
# dest: /etc/systemd/system/vdr.service.d/sundtek_LD_PRELOAD.conf
|
||||||
|
|
||||||
|
- name: systemd | start sundtek.service
|
||||||
|
systemd:
|
||||||
|
name: sundtek.service
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
||||||
|
masked: no
|
||||||
|
daemon-reload: yes
|
||||||
|
|
||||||
|
- name: detect local and remote sundtek devices
|
||||||
|
command: scansundtek
|
||||||
|
register: sundtek_scan
|
||||||
|
|
||||||
|
- name: set variable sundtek_scan
|
||||||
|
set_fact:
|
||||||
|
sundtek_devices: "{{ sundtek_scan.stdout | from_json }}"
|
||||||
|
|
||||||
|
- name: create /etc/sundtek.conf
|
||||||
|
template:
|
||||||
|
src: templates/sundtek.conf.j2
|
||||||
|
dest: /etc/sundtek.conf
|
||||||
|
notify: Restart sundtek.service
|
||||||
|
|
||||||
|
- name: systemd | start sundtek-avahi-mounter.service
|
||||||
|
systemd:
|
||||||
|
name: sundtek-avahi-mounter.service
|
||||||
|
state: started
|
||||||
|
masked: no
|
||||||
|
enabled: yes
|
||||||
|
daemon-reload: yes
|
||||||
|
#+END_SRC
|
||||||
|
*** templates
|
||||||
|
#+BEGIN_SRC conf
|
||||||
|
# ----- 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
|
||||||
|
#pluginpath=/path/to/drivers #set path to drivers
|
||||||
|
#dvb_api_version=x.y #default API version will be parsed from
|
||||||
|
#/usr/include/linux/dvb/version.h, if no such file is
|
||||||
|
#available the latest internally supported API version will be
|
||||||
|
#used (which will be quite new)
|
||||||
|
#audio_skip_bytes=N #when changing analogTV channels,
|
||||||
|
#skip N bytes to suppress audio noise
|
||||||
|
#bulk_notification[on|off] #default off, bulk_notification will only trigger device_attach once
|
||||||
|
#after the the first device scan when the driver is started up
|
||||||
|
#after this first scan, the notification will be triggered
|
||||||
|
#normally again for each device.
|
||||||
|
#
|
||||||
|
#for example when 2 devices are attached to the system only one
|
||||||
|
#notification will be triggered initially, any at a later time
|
||||||
|
#attached device will generate another device_attach notification
|
||||||
|
#by default each device will call the script which is set up with
|
||||||
|
#device_attach
|
||||||
|
#use_tvvideo=[on|off] #use /dev/tvvideoN instead of /dev/video
|
||||||
|
#this works around a new Adobe Flash bug in 2012, where flash crashes
|
||||||
|
#if files (/dev/videoN) other than /dev/video0 are available
|
||||||
|
|
||||||
|
#use_hwpidfilter=[on|off] #For DVB-C, DVB-T, DVB-S/S2
|
||||||
|
#enable PID filter, please be careful with that, there are only 15 HW Pid filters available
|
||||||
|
#when more than 15 pids are set up the pid filter will be disabled automatically
|
||||||
|
|
||||||
|
#dmhwpidfilter=[on|off] #default on, in some cases off might be useful to disable hw pid filter for settopboxes
|
||||||
|
#if you get a black image when capturing a TV channel and watching another channel on the
|
||||||
|
#same transponder - try this option and reboot
|
||||||
|
|
||||||
|
#usb_transaction_delay=[0-20] #throttle the USB setup transactions, this can solve problems with weak USB stacks for
|
||||||
|
#example for embedded boards, unit is milliseconds
|
||||||
|
|
||||||
|
#usb_timeout=[0 - N] #USB timeout for each transaction in milliseconds, 0 default infinite
|
||||||
|
#voltage_tone_off=[1 or 0] #0 .. default, normal behaviour
|
||||||
|
#1 .. force DVB-S/S2 to not use any Voltage or Tone (ignore any user parameters)
|
||||||
|
|
||||||
|
#ir_disabled=[1 or 0] #0 .. enable remote control polling, the driver will permanently check for remote control keys
|
||||||
|
#1 .. disable remote control polling, might fix bugs with weak USB stacks on embedded boards
|
||||||
|
|
||||||
|
#
|
||||||
|
#Enable listening on network
|
||||||
|
#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=/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=/usr/bin/sundtek_detach
|
||||||
|
|
||||||
|
|
||||||
|
{% for device in sundtek_devices.local %}
|
||||||
|
{% if device.serial is defined %}
|
||||||
|
[{{ device.serial }}]
|
||||||
|
|
||||||
|
#Infrared protocol to use
|
||||||
|
#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
|
||||||
|
{% if device.rcmap|default("") %}
|
||||||
|
rcmap={{ device.rcmap }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
#Choose initial DVB mode for hybrid DVB-T/DVB-C devices only
|
||||||
|
#initial_dvb_mode=[DVBC|DVBT]
|
||||||
|
{% if device.initial_dvb_mode|default("") %}
|
||||||
|
initial_dvb_mode={{ device.dvb_mode }}
|
||||||
|
{% 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=/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=/usr/bin/sundtek_detach
|
||||||
|
|
||||||
|
{% if device.capabilites.analog_tv %}
|
||||||
|
disable_analogtv=1 #disable initialization of analogTV Frontend
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
#+END_SRC
|
||||||
** template-test
|
** template-test
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:EXPORT: nil
|
:EXPORT: nil
|
||||||
@ -4933,6 +5134,13 @@ if __name__ == '__main__':
|
|||||||
#masked: no
|
#masked: no
|
||||||
register: nfs_reload
|
register: nfs_reload
|
||||||
|
|
||||||
|
- name: Restart sundtek.service
|
||||||
|
systemd:
|
||||||
|
name: sundtek.service
|
||||||
|
state: restarted
|
||||||
|
enabled: yes
|
||||||
|
masked: no
|
||||||
|
|
||||||
- name: Restart VDR
|
- name: Restart VDR
|
||||||
systemd:
|
systemd:
|
||||||
name: vdr.service
|
name: vdr.service
|
||||||
|
@ -9,5 +9,5 @@ sudo apt-get install git
|
|||||||
git clone https://github.com/yavdr/yavdr-ansible
|
git clone https://github.com/yavdr/yavdr-ansible
|
||||||
cd yavdr-ansible
|
cd yavdr-ansible
|
||||||
git checkout bionic
|
git checkout bionic
|
||||||
sudo ./install-yavdr.sh
|
sudo -H ./install-yavdr.sh
|
||||||
```
|
```
|
||||||
|
@ -10,6 +10,7 @@ repositories:
|
|||||||
#- '{{ ppa_owner }}/{{branch}}-yavdr'
|
#- '{{ ppa_owner }}/{{branch}}-yavdr'
|
||||||
#- '{{ ppa_owner }}/{{branch}}-kodi'
|
#- '{{ ppa_owner }}/{{branch}}-kodi'
|
||||||
# properties of the user vdr and vdr-related options
|
# properties of the user vdr and vdr-related options
|
||||||
|
# NOTE: user name, uid and confdir must match the values set by the vdr package
|
||||||
vdr:
|
vdr:
|
||||||
user: vdr
|
user: vdr
|
||||||
group: vdr
|
group: vdr
|
||||||
|
@ -20,6 +20,13 @@
|
|||||||
#masked: no
|
#masked: no
|
||||||
register: nfs_reload
|
register: nfs_reload
|
||||||
|
|
||||||
|
- name: Restart sundtek.service
|
||||||
|
systemd:
|
||||||
|
name: sundtek.service
|
||||||
|
state: restarted
|
||||||
|
enabled: yes
|
||||||
|
masked: no
|
||||||
|
|
||||||
- name: Restart VDR
|
- name: Restart VDR
|
||||||
systemd:
|
systemd:
|
||||||
name: vdr.service
|
name: vdr.service
|
||||||
|
@ -18,3 +18,23 @@
|
|||||||
- ansible_virtualization_role == "guest"
|
- ansible_virtualization_role == "guest"
|
||||||
- ansible_distribution == "Ubuntu"
|
- ansible_distribution == "Ubuntu"
|
||||||
- ansible_distribution_version == "16.04"
|
- ansible_distribution_version == "16.04"
|
||||||
|
|
||||||
|
- name: set xineliboutput as frontend
|
||||||
|
block:
|
||||||
|
- apt:
|
||||||
|
name: '{{ item }}'
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- vdr-plugin-xineliboutput
|
||||||
|
- xineliboutput-sxfe
|
||||||
|
- command: '{{ item }}'
|
||||||
|
with_items:
|
||||||
|
- vdrctl disable softhddevice
|
||||||
|
- vdrctl disable vaapidevice
|
||||||
|
- vdrctl disable xine
|
||||||
|
- vdrctl disable pvr350
|
||||||
|
- vdrctl enable xineliboutput
|
||||||
|
ignore_errors: yes
|
||||||
|
when:
|
||||||
|
- ansible_virtualization_type == "virtualbox"
|
||||||
|
- ansible_virtualization_role == "guest"
|
||||||
|
@ -77,3 +77,14 @@
|
|||||||
group: '{{ vdr.group }}'
|
group: '{{ vdr.group }}'
|
||||||
mode: 0644
|
mode: 0644
|
||||||
force: no
|
force: no
|
||||||
|
- name: create directory for vdr.service systemd drop-in files
|
||||||
|
file:
|
||||||
|
dest: '{{ item }}'
|
||||||
|
state: directory
|
||||||
|
with_items:
|
||||||
|
- "/etc/systemd/system/vdr.service.d/"
|
||||||
|
|
||||||
|
- name: systemd-drop-in | start vdr.service after network-online.target
|
||||||
|
template:
|
||||||
|
src: templates/systemd/network-online.j2
|
||||||
|
dest: /etc/systemd/system/vdr.service.d/network-online.conf
|
||||||
|
132
roles/yavdr-desktop/tasks/main.yml
Normal file
132
roles/yavdr-desktop/tasks/main.yml
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
---
|
||||||
|
# file: roles/yavdr-desktop/tasks/main.yml
|
||||||
|
|
||||||
|
- name: create folders for user configuration files
|
||||||
|
file:
|
||||||
|
state: directory
|
||||||
|
dest: '{{ item }}'
|
||||||
|
mode: '0775'
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
with_items:
|
||||||
|
- '{{ vdr.home }}/.config/systemd/user'
|
||||||
|
- '{{ vdr.home }}/.config/openbox'
|
||||||
|
- '{{ vdr.home }}/.config/pulse'
|
||||||
|
|
||||||
|
- name: expand template for .xinitrc for vdr user
|
||||||
|
template:
|
||||||
|
src: 'templates/.xinitrc.j2'
|
||||||
|
dest: '{{ vdr.home }}/.xinitrc'
|
||||||
|
mode: 0755
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: "expand template for vdr's .Xresources"
|
||||||
|
template:
|
||||||
|
src: 'templates/.Xresources.j2'
|
||||||
|
dest: '{{ vdr.home }}/.Xresources'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: expand template for openbox autostart
|
||||||
|
template:
|
||||||
|
src: 'templates/openbox/autostart.j2'
|
||||||
|
dest: '{{ vdr.home }}/.config/openbox/autostart'
|
||||||
|
mode: 0755
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: expand rc.xml for openbox
|
||||||
|
template:
|
||||||
|
src: 'templates/openbox/rc.xml.j2'
|
||||||
|
dest: '{{ vdr.home }}/.config/openbox/rc.xml'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create yavdr-desktop.target for the user session
|
||||||
|
template:
|
||||||
|
src: 'templates/systemd/user/yavdr-desktop.target.j2'
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/yavdr-desktop.target'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: disable pulseaudio autospawning
|
||||||
|
lineinfile:
|
||||||
|
path: '{{ vdr.home }}/.config/pulse/client.conf'
|
||||||
|
line: 'autospawn = yes'
|
||||||
|
create: yes
|
||||||
|
state: present
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create tmux.service for the session
|
||||||
|
template:
|
||||||
|
src: 'templates/systemd/user/tmux.service.j2'
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/tmux.service'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create wm-exit.service for the session
|
||||||
|
template:
|
||||||
|
src: templates/systemd/user/wm-exit.service.j2
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/wm-exit.service'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create detect-second-display.service for the session
|
||||||
|
template:
|
||||||
|
src: templates/systemd/user/detect-second-display.service.j2
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/detect-second-display.service'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create openbox-second.service for the session
|
||||||
|
template:
|
||||||
|
src: templates/systemd/user/openbox-second.service.j2
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/openbox-second.service'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: create osd2web.service for the session
|
||||||
|
template:
|
||||||
|
src: templates/systemd/user/osd2web.service.j2
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/osd2web.service'
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
|
||||||
|
- name: create irexec configuration for the session
|
||||||
|
block:
|
||||||
|
- template:
|
||||||
|
src: templates/systemd/user/irexec.service.j2
|
||||||
|
dest: '{{ vdr.home }}/.config/systemd/user/irexec.service'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
- template:
|
||||||
|
src: templates/.lircrc.j2
|
||||||
|
dest: '{{ vdr.home }}/.lircrc'
|
||||||
|
mode: 0644
|
||||||
|
owner: '{{ vdr.user }}'
|
||||||
|
group: '{{ vdr.group }}'
|
||||||
|
|
||||||
|
- name: link /usr/bin/start-desktop to /var/lib/vdr/plugins/desktop/starter
|
||||||
|
file:
|
||||||
|
src: /usr/bin/start-desktop
|
||||||
|
dest: /var/lib/vdr/plugins/desktop/starter
|
||||||
|
state: link
|
||||||
|
|
||||||
|
- name: enable and start xlogin for the vdr user
|
||||||
|
systemd:
|
||||||
|
daemon_reload: yes
|
||||||
|
name: 'xlogin@{{ vdr.user }}'
|
||||||
|
enabled: yes
|
||||||
|
state: started
|
@ -784,6 +784,12 @@
|
|||||||
<!--<skip_pager>yes</skip_pager>-->
|
<!--<skip_pager>yes</skip_pager>-->
|
||||||
<skip_taskbar>no</skip_taskbar>
|
<skip_taskbar>no</skip_taskbar>
|
||||||
</application>
|
</application>
|
||||||
|
<application title="vaapidevice">
|
||||||
|
<decor>no</decor>
|
||||||
|
<maximized>yes</maximized>
|
||||||
|
<!--<skip_pager>yes</skip_pager>-->
|
||||||
|
<skip_taskbar>no</skip_taskbar>
|
||||||
|
</application>
|
||||||
<application class="VDR">
|
<application class="VDR">
|
||||||
<decor>no</decor>
|
<decor>no</decor>
|
||||||
<maximized>yes</maximized>
|
<maximized>yes</maximized>
|
@ -6,7 +6,6 @@ Before=yavdr-frontend.service
|
|||||||
ConditionFileNotEmpty=%h/.second_display
|
ConditionFileNotEmpty=%h/.second_display
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
PassEnvironment=XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
|
||||||
EnvironmentFile=%h/.second_display
|
EnvironmentFile=%h/.second_display
|
||||||
ExecStart=/usr/bin/openbox --config-file %h/.config/openbox/rc.xml
|
ExecStart=/usr/bin/openbox --config-file %h/.config/openbox/rc.xml
|
||||||
ExecStartPost=/bin/bash %h/.fehbg
|
ExecStartPost=/bin/bash %h/.fehbg
|
@ -5,11 +5,11 @@ Wants=detect-second-display.service openbox-second.service
|
|||||||
ConditionFileNotEmpty=%h/.second_display
|
ConditionFileNotEmpty=%h/.second_display
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
PassEnvironment=XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
|
|
||||||
EnvironmentFile=%h/.second_display
|
EnvironmentFile=%h/.second_display
|
||||||
Environment=url="http://localhost:4444/skins/horchiTft/index.html?theme=anthraize&onlyView=1"
|
Environment=url="http://localhost:4444/skins/horchiTft/index.html?theme=anthraize&onlyView=1"
|
||||||
EnvironmentFile=-%h/.config/osd2web/url
|
Environment=browser="kiosk-browser"
|
||||||
ExecStart=/usr/bin/on_vdr -o -c 'kiosk-browser "${url}"'
|
EnvironmentFile=-%h/.config/osd2web/config
|
||||||
|
ExecStart=/usr/bin/on_vdr -o -c '${browser} "${url}"'
|
||||||
KillSignal=SIGINT
|
KillSignal=SIGINT
|
||||||
|
|
||||||
[Install]
|
[Install]
|
@ -4,5 +4,3 @@
|
|||||||
tags: [install,update]
|
tags: [install,update]
|
||||||
- import_tasks: detect-xorg.yml
|
- import_tasks: detect-xorg.yml
|
||||||
tags: [xorg.detect,install]
|
tags: [xorg.detect,install]
|
||||||
- import_tasks: desktop-session.yml
|
|
||||||
tags: [install,update]
|
|
||||||
|
@ -15,6 +15,11 @@
|
|||||||
src: templates/vdr-xorg.conf
|
src: templates/vdr-xorg.conf
|
||||||
dest: /etc/systemd/system/vdr.service.d/vdr-xorg.conf
|
dest: /etc/systemd/system/vdr.service.d/vdr-xorg.conf
|
||||||
|
|
||||||
|
- name: systemd-drop-in | start x@.service after plymouth.service
|
||||||
|
template:
|
||||||
|
src: templates/x@service.d/plymouth.conf.j2
|
||||||
|
dest: /etc/systemd/system/x@.service.d/plymouth.conf
|
||||||
|
|
||||||
- name: systemd-drop-in | start x@.service before xlogin@.service
|
- name: systemd-drop-in | start x@.service before xlogin@.service
|
||||||
template:
|
template:
|
||||||
src: templates/x@service.d/xlogin.conf.j2
|
src: templates/x@service.d/xlogin.conf.j2
|
||||||
@ -25,11 +30,6 @@
|
|||||||
src: templates/systemd/vdr-environ.j2
|
src: templates/systemd/vdr-environ.j2
|
||||||
dest: /etc/systemd/system/vdr.service.d/load-environ.conf
|
dest: /etc/systemd/system/vdr.service.d/load-environ.conf
|
||||||
|
|
||||||
- name: systemd-drop-in | start vdr.service after network-online.target
|
|
||||||
template:
|
|
||||||
src: templates/systemd/network-online.j2
|
|
||||||
dest: /etc/systemd/system/vdr.service.d/network-online.conf
|
|
||||||
|
|
||||||
- name: systemd-drop-in | user@{{ vdr.uid }}.service depends on x@vt7.service
|
- name: systemd-drop-in | user@{{ vdr.uid }}.service depends on x@vt7.service
|
||||||
template:
|
template:
|
||||||
src: templates/user@666.service.d/x-dependency.conf.j2
|
src: templates/user@666.service.d/x-dependency.conf.j2
|
||||||
@ -41,6 +41,7 @@
|
|||||||
line: '{{ item }}'
|
line: '{{ item }}'
|
||||||
with_items:
|
with_items:
|
||||||
- '-D'
|
- '-D'
|
||||||
|
- '-w alsa-driver-broken'
|
||||||
# - '-a pulse' # do we need this with our existing asound.conf?
|
# - '-a pulse' # do we need this with our existing asound.conf?
|
||||||
|
|
||||||
- name: add a login shell for the user vdr
|
- name: add a login shell for the user vdr
|
||||||
@ -88,6 +89,11 @@
|
|||||||
# NOTE: write-x11-keyboard-config is in the xlogin package
|
# NOTE: write-x11-keyboard-config is in the xlogin package
|
||||||
# Ubuntu's systemd is patched, so it does not create the file automatically
|
# Ubuntu's systemd is patched, so it does not create the file automatically
|
||||||
|
|
||||||
|
- name: add snippet to ignore eventlircd devices in xorg
|
||||||
|
template:
|
||||||
|
src: templates/xorg-ignore-eventlircd.conf.j2
|
||||||
|
dest: /etc/X11/xorg.conf.d/40-ignore-eventlircd.conf
|
||||||
|
|
||||||
- name: apt | install desktop programs
|
- name: apt | install desktop programs
|
||||||
apt:
|
apt:
|
||||||
name: '{{ item }}'
|
name: '{{ item }}'
|
||||||
|
@ -1,816 +0,0 @@
|
|||||||
<?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 -->
|
|
||||||
<followMouse>no</followMouse>
|
|
||||||
<!-- 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 -->
|
|
||||||
<underMouse>no</underMouse>
|
|
||||||
<!-- 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 -->
|
|
||||||
<raiseOnFocus>no</raiseOnFocus>
|
|
||||||
<!-- 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' -->
|
|
||||||
<center>yes</center>
|
|
||||||
<!-- 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 -->
|
|
||||||
<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 -->
|
|
||||||
</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).
|
|
||||||
-->
|
|
||||||
<keepBorder>yes</keepBorder>
|
|
||||||
<animateIconify>yes</animateIconify>
|
|
||||||
<font place="ActiveWindow">
|
|
||||||
<name>sans</name>
|
|
||||||
<size>8</size>
|
|
||||||
<!-- font size in points -->
|
|
||||||
<weight>bold</weight>
|
|
||||||
<!-- 'bold' or 'normal' -->
|
|
||||||
<slant>normal</slant>
|
|
||||||
<!-- 'italic' or 'normal' -->
|
|
||||||
</font>
|
|
||||||
<font place="InactiveWindow">
|
|
||||||
<name>sans</name>
|
|
||||||
<size>8</size>
|
|
||||||
<!-- font size in points -->
|
|
||||||
<weight>bold</weight>
|
|
||||||
<!-- 'bold' or 'normal' -->
|
|
||||||
<slant>normal</slant>
|
|
||||||
<!-- 'italic' or 'normal' -->
|
|
||||||
</font>
|
|
||||||
<font place="MenuHeader">
|
|
||||||
<name>sans</name>
|
|
||||||
<size>9</size>
|
|
||||||
<!-- font size in points -->
|
|
||||||
<weight>normal</weight>
|
|
||||||
<!-- 'bold' or 'normal' -->
|
|
||||||
<slant>normal</slant>
|
|
||||||
<!-- 'italic' or 'normal' -->
|
|
||||||
</font>
|
|
||||||
<font place="MenuItem">
|
|
||||||
<name>sans</name>
|
|
||||||
<size>9</size>
|
|
||||||
<!-- font size in points -->
|
|
||||||
<weight>normal</weight>
|
|
||||||
<!-- 'bold' or 'normal' -->
|
|
||||||
<slant>normal</slant>
|
|
||||||
<!-- 'italic' or 'normal' -->
|
|
||||||
</font>
|
|
||||||
<font place="ActiveOnScreenDisplay">
|
|
||||||
<name>sans</name>
|
|
||||||
<size>9</size>
|
|
||||||
<!-- font size in points -->
|
|
||||||
<weight>bold</weight>
|
|
||||||
<!-- 'bold' or 'normal' -->
|
|
||||||
<slant>normal</slant>
|
|
||||||
<!-- 'italic' or 'normal' -->
|
|
||||||
</font>
|
|
||||||
<font place="InactiveOnScreenDisplay">
|
|
||||||
<name>sans</name>
|
|
||||||
<size>9</size>
|
|
||||||
<!-- font size in points -->
|
|
||||||
<weight>bold</weight>
|
|
||||||
<!-- 'bold' or 'normal' -->
|
|
||||||
<slant>normal</slant>
|
|
||||||
<!-- 'italic' or 'normal' -->
|
|
||||||
</font>
|
|
||||||
</theme>
|
|
||||||
<desktops>
|
|
||||||
<!-- 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
|
|
||||||
|
|
||||||
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>
|
|
||||||
-->
|
|
||||||
</names>
|
|
||||||
<popupTime>875</popupTime>
|
|
||||||
<!-- 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) -->
|
|
||||||
<popupPosition>Center</popupPosition>
|
|
||||||
<!-- 'Center', 'Top', or 'Fixed' -->
|
|
||||||
<popupFixedPosition>
|
|
||||||
<!-- 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' -->
|
|
||||||
<y>10</y>
|
|
||||||
<!-- 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. -->
|
|
||||||
<margins>
|
|
||||||
<top>0</top>
|
|
||||||
<bottom>0</bottom>
|
|
||||||
<left>0</left>
|
|
||||||
<right>0</right>
|
|
||||||
</margins>
|
|
||||||
<dock>
|
|
||||||
<position>TopLeft</position>
|
|
||||||
<!-- (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' -->
|
|
||||||
<direction>Vertical</direction>
|
|
||||||
<!-- 'Vertical' or 'Horizontal' -->
|
|
||||||
<autoHide>no</autoHide>
|
|
||||||
<hideDelay>300</hideDelay>
|
|
||||||
<!-- in milliseconds (1000 = 1 second) -->
|
|
||||||
<showDelay>300</showDelay>
|
|
||||||
<!-- in milliseconds (1000 = 1 second) -->
|
|
||||||
<moveButton>Middle</moveButton>
|
|
||||||
<!-- 'Left', 'Middle', 'Right' -->
|
|
||||||
</dock>
|
|
||||||
<keyboard>
|
|
||||||
<chainQuitKey>C-g</chainQuitKey>
|
|
||||||
<!-- 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">
|
|
||||||
<to>right</to>
|
|
||||||
<wrap>no</wrap>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="C-A-Up">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>up</to>
|
|
||||||
<wrap>no</wrap>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="C-A-Down">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>down</to>
|
|
||||||
<wrap>no</wrap>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="S-A-Left">
|
|
||||||
<action name="SendToDesktop">
|
|
||||||
<to>left</to>
|
|
||||||
<wrap>no</wrap>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="S-A-Right">
|
|
||||||
<action name="SendToDesktop">
|
|
||||||
<to>right</to>
|
|
||||||
<wrap>no</wrap>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="S-A-Up">
|
|
||||||
<action name="SendToDesktop">
|
|
||||||
<to>up</to>
|
|
||||||
<wrap>no</wrap>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="S-A-Down">
|
|
||||||
<action name="SendToDesktop">
|
|
||||||
<to>down</to>
|
|
||||||
<wrap>no</wrap>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="W-F1">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>1</to>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="W-F2">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>2</to>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="W-F3">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>3</to>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="W-F4">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>4</to>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="W-d">
|
|
||||||
<action name="ToggleShowDesktop"/>
|
|
||||||
</keybind>
|
|
||||||
<!-- 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>
|
|
||||||
<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">
|
|
||||||
<command>scrot -s</command>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<!-- Keybindings for window switching -->
|
|
||||||
<keybind key="A-Tab">
|
|
||||||
<action name="NextWindow">
|
|
||||||
<finalactions>
|
|
||||||
<action name="Focus"/>
|
|
||||||
<action name="Raise"/>
|
|
||||||
<action name="Unshade"/>
|
|
||||||
</finalactions>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="A-S-Tab">
|
|
||||||
<action name="PreviousWindow">
|
|
||||||
<finalactions>
|
|
||||||
<action name="Focus"/>
|
|
||||||
<action name="Raise"/>
|
|
||||||
<action name="Unshade"/>
|
|
||||||
</finalactions>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="C-A-Tab">
|
|
||||||
<action name="NextWindow">
|
|
||||||
<panels>yes</panels>
|
|
||||||
<desktop>yes</desktop>
|
|
||||||
<finalactions>
|
|
||||||
<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">
|
|
||||||
<direction>right</direction>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="W-S-Left">
|
|
||||||
<action name="DirectionalCycleWindows">
|
|
||||||
<direction>left</direction>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="W-S-Up">
|
|
||||||
<action name="DirectionalCycleWindows">
|
|
||||||
<direction>up</direction>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<keybind key="W-S-Down">
|
|
||||||
<action name="DirectionalCycleWindows">
|
|
||||||
<direction>down</direction>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<!-- Keybindings for running applications -->
|
|
||||||
<keybind key="W-e">
|
|
||||||
<action name="Execute">
|
|
||||||
<startupnotify>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
<name>Konqueror</name>
|
|
||||||
</startupnotify>
|
|
||||||
<command>kfmclient openProfile filemanagement</command>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
<!-- Launch scrot when Print is pressed -->
|
|
||||||
<keybind key="Print">
|
|
||||||
<action name="Execute">
|
|
||||||
<command>scrot</command>
|
|
||||||
</action>
|
|
||||||
</keybind>
|
|
||||||
</keyboard>
|
|
||||||
<mouse>
|
|
||||||
<dragThreshold>1</dragThreshold>
|
|
||||||
<!-- number of pixels the mouse must move before a drag begins -->
|
|
||||||
<doubleClickTime>500</doubleClickTime>
|
|
||||||
<!-- 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 -->
|
|
||||||
<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"/>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="A-Left" action="Click">
|
|
||||||
<action name="Unshade"/>
|
|
||||||
</mousebind>
|
|
||||||
<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>
|
|
||||||
<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>
|
|
||||||
<mousebind button="A-Up" action="Click">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>previous</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="A-Down" action="Click">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>next</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<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">
|
|
||||||
<to>next</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<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">
|
|
||||||
<to>next</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
</context>
|
|
||||||
<context name="Titlebar">
|
|
||||||
<mousebind button="Left" action="Drag">
|
|
||||||
<action name="Move"/>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="Left" action="DoubleClick">
|
|
||||||
<action name="ToggleMaximize"/>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="Up" action="Click">
|
|
||||||
<action name="if">
|
|
||||||
<shaded>no</shaded>
|
|
||||||
<then>
|
|
||||||
<action name="Shade"/>
|
|
||||||
<action name="FocusToBottom"/>
|
|
||||||
<action name="Unfocus"/>
|
|
||||||
<action name="Lower"/>
|
|
||||||
</then>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="Down" action="Click">
|
|
||||||
<action name="if">
|
|
||||||
<shaded>yes</shaded>
|
|
||||||
<then>
|
|
||||||
<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"/>
|
|
||||||
</mousebind>
|
|
||||||
<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">
|
|
||||||
<menu>client-menu</menu>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
</context>
|
|
||||||
<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">
|
|
||||||
<edge>left</edge>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
</context>
|
|
||||||
<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">
|
|
||||||
<edge>bottom</edge>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<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"/>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="Left" action="Drag">
|
|
||||||
<action name="Resize"/>
|
|
||||||
</mousebind>
|
|
||||||
</context>
|
|
||||||
<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>
|
|
||||||
<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">
|
|
||||||
<menu>client-menu</menu>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<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"/>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="Left" action="Click">
|
|
||||||
<action name="ToggleOmnipresent"/>
|
|
||||||
</mousebind>
|
|
||||||
</context>
|
|
||||||
<context name="Shade">
|
|
||||||
<mousebind button="Left" action="Press">
|
|
||||||
<action name="Focus"/>
|
|
||||||
<action name="Raise"/>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="Left" action="Click">
|
|
||||||
<action name="ToggleShade"/>
|
|
||||||
</mousebind>
|
|
||||||
</context>
|
|
||||||
<context name="Iconify">
|
|
||||||
<mousebind button="Left" action="Press">
|
|
||||||
<action name="Focus"/>
|
|
||||||
<action name="Raise"/>
|
|
||||||
</mousebind>
|
|
||||||
<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"/>
|
|
||||||
</mousebind>
|
|
||||||
<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>
|
|
||||||
<mousebind button="Left" action="Click">
|
|
||||||
<action name="ToggleMaximize"/>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="Middle" action="Click">
|
|
||||||
<action name="ToggleMaximize">
|
|
||||||
<direction>vertical</direction>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<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"/>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="Left" action="Click">
|
|
||||||
<action name="Close"/>
|
|
||||||
</mousebind>
|
|
||||||
</context>
|
|
||||||
<context name="Desktop">
|
|
||||||
<mousebind button="Up" action="Click">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>previous</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="Down" action="Click">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>next</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="A-Up" action="Click">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>previous</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="A-Down" action="Click">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>next</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<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">
|
|
||||||
<to>next</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="Left" action="Press">
|
|
||||||
<action name="Focus"/>
|
|
||||||
<action name="Raise"/>
|
|
||||||
</mousebind>
|
|
||||||
<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">
|
|
||||||
<menu>client-list-combined-menu</menu>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<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">
|
|
||||||
<to>previous</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="Down" action="Click">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>next</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<mousebind button="A-Up" action="Click">
|
|
||||||
<action name="GoToDesktop">
|
|
||||||
<to>previous</to>
|
|
||||||
</action>
|
|
||||||
</mousebind>
|
|
||||||
<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 -->
|
|
||||||
<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 -->
|
|
||||||
<middle>no</middle>
|
|
||||||
<!-- 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 -->
|
|
||||||
<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 -->
|
|
||||||
<showIcons>yes</showIcons>
|
|
||||||
<!-- controls if icons appear in the client-list-(combined-)menu -->
|
|
||||||
<manageDesktops>yes</manageDesktops>
|
|
||||||
<!-- 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
|
|
||||||
|
|
||||||
<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 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
|
|
||||||
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<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
|
|
||||||
|
|
||||||
<desktop>1</desktop>
|
|
||||||
# 1 is the first desktop, 'all' for all desktops
|
|
||||||
|
|
||||||
<layer>normal</layer>
|
|
||||||
# 'above', 'normal', or 'below'
|
|
||||||
|
|
||||||
<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_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
|
|
||||||
|
|
||||||
<maximized>true</maximized>
|
|
||||||
# 'Horizontal', 'Vertical' or boolean (yes/no)
|
|
||||||
</application>
|
|
||||||
|
|
||||||
# end of the example
|
|
||||||
-->
|
|
||||||
<applications>
|
|
||||||
<application title="softhddevice">
|
|
||||||
<decor>no</decor>
|
|
||||||
<maximized>true</maximized>
|
|
||||||
<!--<skip_pager>yes</skip_pager>-->
|
|
||||||
<skip_taskbar>yes</skip_taskbar>
|
|
||||||
</application>
|
|
||||||
<application title="browser">
|
|
||||||
<decor>no</decor>
|
|
||||||
<maximized>true</maximized>
|
|
||||||
<!--<skip_pager>yes</skip_pager>-->
|
|
||||||
<skip_taskbar>yes</skip_taskbar>
|
|
||||||
</application>
|
|
||||||
<application title="osd2Web">
|
|
||||||
<decor>no</decor>
|
|
||||||
<maximized>true</maximized>
|
|
||||||
<!--<skip_pager>yes</skip_pager>-->
|
|
||||||
<skip_taskbar>yes</skip_taskbar>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
</openbox_config>
|
|
2
roles/yavdr-xorg/templates/x@service.d/plymouth.conf.j2
Normal file
2
roles/yavdr-xorg/templates/x@service.d/plymouth.conf.j2
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[Unit]
|
||||||
|
After=plymouth.service
|
@ -0,0 +1,7 @@
|
|||||||
|
{{ ansible_managed | comment }}
|
||||||
|
|
||||||
|
Section "InputClass"
|
||||||
|
Identifier "exclude eventlircd devices"
|
||||||
|
MatchTag "eventlircd"
|
||||||
|
Option "Ignore" "True"
|
||||||
|
EndSection
|
@ -1,20 +1,11 @@
|
|||||||
Section "Device"
|
Section "Device"
|
||||||
Identifier "nvidia"
|
Identifier "nvidia"
|
||||||
Driver "nvidia"
|
Driver "nvidia"
|
||||||
Option "NoLogo" "true"
|
|
||||||
Option "DynamicTwinView" "true"
|
Option "DynamicTwinView" "true"
|
||||||
Option "NoFlip" "false"
|
Option "NoFlip" "false"
|
||||||
# Option "FlatPanelProperties" "Scaling = Native"
|
|
||||||
# Option "ModeValidation" "NoVesaModes, NoXServerModes"
|
|
||||||
# Option "ModeDebug" "true"
|
|
||||||
# Option "HWCursor" "false"
|
|
||||||
EndSection
|
EndSection
|
||||||
|
|
||||||
Section "Screen"
|
Section "Screen"
|
||||||
Identifier "screen"
|
Identifier "screen"
|
||||||
Device "nvidia"
|
Device "nvidia"
|
||||||
EndSection
|
EndSection
|
||||||
|
|
||||||
Section "Extensions"
|
|
||||||
Option "Composite" "false"
|
|
||||||
EndSection
|
|
||||||
|
@ -37,6 +37,8 @@ Section "Device"
|
|||||||
BoardName "Unknown"
|
BoardName "Unknown"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
Screen 0
|
Screen 0
|
||||||
|
Option "ConnectedMonitor" "{{ xorg.primary.connector }}{% if xorg.secondary is defined %}, {{ xorg.secondary.connector }}{% endif %}"
|
||||||
|
Option "CustomEDID" "{{ xorg.primary.connector }}:/etc/X11/edid.{{ xorg.primary.connector }}.bin{% if xorg.secondary is defined %};{{ xorg.secondary.connector }}:/etc/X11/edid.{{ xorg.secondary.connector }}.bin{% endif %}"
|
||||||
EndSection
|
EndSection
|
||||||
|
|
||||||
Section "Screen"
|
Section "Screen"
|
||||||
@ -45,9 +47,7 @@ Section "Screen"
|
|||||||
Monitor "Monitor0"
|
Monitor "Monitor0"
|
||||||
DefaultDepth 24
|
DefaultDepth 24
|
||||||
Option "nvidiaXineramaInfoOrder" "{{ xorg.primary.connector }}"
|
Option "nvidiaXineramaInfoOrder" "{{ xorg.primary.connector }}"
|
||||||
Option "ConnectedMonitor" "{{ xorg.primary.connector }}{% if xorg.secondary is defined %}, {{ xorg.secondary.connector }}{% endif %}"
|
|
||||||
Option "UseDisplayDevice" "{{ xorg.primary.connector }}"
|
Option "UseDisplayDevice" "{{ xorg.primary.connector }}"
|
||||||
Option "CustomEDID" "{{ xorg.primary.connector }}:/etc/X11/edid.{{ xorg.primary.connector }}.bin"
|
|
||||||
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=On, ForceFullCompositionPipeline=On}"
|
||||||
Option "AllowIndirectGLXProtocol" "off"
|
Option "AllowIndirectGLXProtocol" "off"
|
||||||
Option "TripleBuffer" "on"
|
Option "TripleBuffer" "on"
|
||||||
@ -86,9 +86,9 @@ Section "Screen"
|
|||||||
Monitor "Monitor1"
|
Monitor "Monitor1"
|
||||||
DefaultDepth 24
|
DefaultDepth 24
|
||||||
Option "nvidiaXineramaInfoOrder" "{{ xorg.secondary.connector }}"
|
Option "nvidiaXineramaInfoOrder" "{{ xorg.secondary.connector }}"
|
||||||
Option "ConnectedMonitor" "{{ xorg.secondary.connector }}"
|
#Option "ConnectedMonitor" "{{ xorg.secondary.connector }}"
|
||||||
Option "UseDisplayDevice" "{{ xorg.secondary.connector }}"
|
Option "UseDisplayDevice" "{{ xorg.secondary.connector }}"
|
||||||
Option "CustomEDID" "{{ xorg.secondary.connector }}:/etc/X11/edid.{{ xorg.secondary.connector }}.bin"
|
#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=On, ForceFullCompositionPipeline=On}"
|
||||||
Option "AllowIndirectGLXProtocol" "off"
|
Option "AllowIndirectGLXProtocol" "off"
|
||||||
Option "TripleBuffer" "on"
|
Option "TripleBuffer" "on"
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
- collect-facts # query system facts
|
- collect-facts # query system facts
|
||||||
- vdr
|
- vdr
|
||||||
- yavdr-network
|
- yavdr-network
|
||||||
- samba-server
|
- samba-install
|
||||||
- samba-config
|
- samba-config
|
||||||
- nfs-server
|
- nfs-server
|
||||||
- grub-config
|
- grub-config
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
- pulseaudio # install pulseaudio
|
- pulseaudio # install pulseaudio
|
||||||
- yavdr-xorg # graphical session
|
- yavdr-xorg # graphical session
|
||||||
- yavdr-remote # remote configuration files, services and scripts
|
- yavdr-remote # remote configuration files, services and scripts
|
||||||
|
- yavdr-desktop # openbox session with yavdr frontend script
|
||||||
- autoinstall-satip # install vdr-plugin-satip if a Sat>IP server has been found
|
- autoinstall-satip # install vdr-plugin-satip if a Sat>IP server has been found
|
||||||
- autoinstall-targavfd # install vdr-plugin-targavfd if display is connected
|
- autoinstall-targavfd # install vdr-plugin-targavfd if display is connected
|
||||||
- autoinstall-imonlcd # install vdr-plugin-imonlcd if a matchind display is connected
|
- autoinstall-imonlcd # install vdr-plugin-imonlcd if a matchind display is connected
|
||||||
|
Loading…
Reference in New Issue
Block a user