115 Commits

Author SHA1 Message Date
Alexander Grothe
fbb6003cf9 Use correct syntax for tag-controlled imports
now it is possible to run just the tasks with the xorg.detect tag:
sudo -H ansible-playbook -i "localhost," --tags="xorg.detect" --connection=local yavdr07.yml
2018-01-07 17:46:55 +01:00
Alexander Grothe
c36056561f Add block for repeated start of xorg-verbose@vt7.service 2018-01-07 17:40:29 +01:00
Alexander Grothe
af3ef457b6 Update Manual.org and Manual.html 2018-01-07 17:35:32 +01:00
Alexander Grothe
98729f7cbd Change order of eventlircd.socket and eventlircd.service start and activation 2018-01-07 17:26:46 +01:00
Alexander Grothe
ffc4707fdc Fix indentation 2018-01-07 14:53:19 +01:00
Alexander Grothe
886fff4f09 First try to improve automatic xorg configuration
in order to prevent wrong screen connection names
2018-01-07 12:56:46 +01:00
Alexander Grothe
c6207490b8 Fix typo 2018-01-05 11:00:21 +01:00
Alexander Grothe
3006830cc1 configure systemd properties for all needed service- and socket-Units
also add more tags to the role
2018-01-05 10:57:31 +01:00
Alexander Grothe
9f42da23f6 ForceFullCompositionPipeline for nvidia cards
to prevent screen tearing when playing video with xineliboutput-sxfe
or other video players which use opengl components
2018-01-03 13:19:59 +01:00
Alexander Grothe
4b8ff236b5 call lircd2uinput-add after lircd has been started 2018-01-01 23:41:03 +01:00
Alexander Grothe
2e8bd59576 Fix systemd drop-in ExecStopCommand 2018-01-01 23:27:47 +01:00
Alexander Grothe
ec0234f938 add missing section header 2018-01-01 23:09:10 +01:00
Alexander Grothe
d09df785b6 add automatic tagging for roles 2018-01-01 23:05:40 +01:00
Alexander Grothe
1d108dc61f Fix name and destination for lirc options file 2018-01-01 23:02:40 +01:00
Alexander Grothe
d8c3b9c5bd Fix indentation 2018-01-01 22:55:59 +01:00
Alexander Grothe
ce941ce722 Fix apt task 2018-01-01 22:54:47 +01:00
Alexander Grothe
2c08b97090 Add dependency to yavdr-remote role for autoinstall-atric-usb 2018-01-01 22:53:47 +01:00
Alexander Grothe
4c96c0a128 Add role for automatic configuration of Atric IR-WakeupUSB to playbook 2018-01-01 22:51:57 +01:00
Alexander Grothe
13209045b8 Add missing template file 2018-01-01 22:46:19 +01:00
Alexander Grothe
27278862a5 Fix syntax error 2018-01-01 22:42:58 +01:00
Alexander Grothe
88254f8e79 add tags to yavdr-remote, add autoinstall-atric-usb role 2018-01-01 22:39:10 +01:00
Alexander Grothe
41e44b67a4 use ansible_managed_file as comment 2018-01-01 22:38:13 +01:00
Alexander Grothe
467c960bf3 Change ansible_managed_file variable 2018-01-01 22:37:42 +01:00
Alexander Grothe
6468b5d432 decrease sleep time 2018-01-01 17:39:00 +01:00
Alexander Grothe
7476635066 remove unnecessary sleep after kodi has been stopped 2018-01-01 17:36:51 +01:00
Alexander Grothe
34a0a0e36c Merge branch 'bionic' of https://github.com/yavdr/yavdr-ansible into bionic 2018-01-01 15:33:11 +01:00
Alexander Grothe
b9c56955b4 Improve KODI stop detection in kodi.service.j2 template 2018-01-01 15:32:30 +01:00
Alexander Grothe
4682af7c3a Add some tags for ppa related tasks 2017-12-28 17:28:43 +01:00
Alexander Grothe
14d05a742b Merge branch 'bionic' of https://github.com/yavdr/yavdr-ansible into bionic 2017-12-28 15:53:21 +01:00
Alexander Grothe
c54313c6e7 Add window rule in rc.xml for vdr-sxfe 2017-12-28 15:52:35 +01:00
seahawk1986
f42fc8f144 Update install-yavdr.sh 2017-12-28 12:21:56 +01:00
seahawk1986
02a1d94108 Update README.md 2017-12-28 09:54:42 +01:00
Alexander Grothe
9440928891 Change rc.xml for openbox to be less restrictive 2017-12-26 20:47:38 +01:00
Alexander Grothe
1689195d42 Add yavdr bootsplash (adds up to 2-3 seconds to boot time)
choose nosplash instead of splash to disable plymouth
2017-12-26 12:58:29 +01:00
Alexander Grothe
8d201c2e62 Remove always tag from playbook 2017-12-22 14:25:54 +01:00
Alexander Grothe
98674ffc4f Set background with feh 2017-12-20 13:31:36 +01:00
Alexander Grothe
2f02f49aa1 Fix action name 2017-12-20 13:25:21 +01:00
Alexander Grothe
07b9f18659 Add missing quote 2017-12-20 13:22:44 +01:00
Alexander Grothe
fb4483c01f fix indentation 2017-12-20 13:22:01 +01:00
Alexander Grothe
4f95b57a9d Download yaVDR Logo, install feh 2017-12-20 13:18:30 +01:00
Alexander Grothe
4b9332b277 Automatically start irexec.service 2017-12-20 11:00:15 +01:00
Alexander Grothe
1befca797e Fix syntax and indentation 2017-12-20 10:52:22 +01:00
Alexander Grothe
fd1d7744fb Add missing quotes at end of string 2017-12-20 10:48:49 +01:00
Alexander Grothe
784ea1d0b2 Fix example list in module documentation 2017-12-20 10:44:05 +01:00
Alexander Grothe
3aadc14dbb Add irexec.service for the user session 2017-12-20 10:43:15 +01:00
Alexander Grothe
ea39de7a21 Merge branch 'bionic' of https://github.com/yavdr/yavdr-ansible into bionic 2017-12-19 20:13:50 +01:00
Alexander Grothe
4c4705e49f Fix condition 2017-12-19 20:10:39 +01:00
seahawk1986
87969286f2 delete block in file if vdr.hide_first_recordinglevel is not set 2017-12-19 20:02:06 +01:00
Alexander Grothe
a84b9b1742 Increase timeout after stopping xlogin@vdr 2017-12-19 15:27:36 +01:00
Alexander Grothe
bde3106c47 Fix order of xlogin package installation and calling write-x11-keyboard-config 2017-12-19 14:43:55 +01:00
Alexander Grothe
0c1f52d986 Merge branch 'bionic' of https://github.com/yavdr/yavdr-ansible into bionic 2017-12-19 12:33:24 +01:00
Alexander Grothe
04662f2b83 Add template for /etc/rc_maps.cfg 2017-12-19 12:32:37 +01:00
seahawk1986
4cf30fabd0 Fix typo 2017-12-19 09:36:32 +01:00
Alexander Grothe
3051e04c53 Add inital i18n translation support
The filter_plugin translate allows to translate strings using yavdr.mo
files from the package yavdr-i18n.

ansible-playbook must be called with an UTF-8 locale (e.g. de_DE.UTF-8), LANG=C or
LANG=POSIX are not allowed.

Usage of the new filter:

"{{ "my string" | translate }}"
2017-12-18 17:55:53 +01:00
Alexander Grothe
767807e3e4 add translation filter 2017-12-18 11:40:33 +01:00
Alexander Grothe
89963fa35b Add .Xresources for user vdr 2017-12-17 15:06:45 +01:00
Alexander Grothe
b9e4f1bc33 Add space 2017-12-17 14:37:03 +01:00
Alexander Grothe
7726ce1399 fix list creation (ansible ignores multiple dictionary definitions) 2017-12-17 13:38:45 +01:00
Alexander Grothe
345e373a52 Add more DVBSky firmware files to list 2017-12-17 12:23:01 +01:00
Alexander Grothe
63bc6828aa Add missing template file 2017-12-17 11:40:39 +01:00
Alexander Grothe
5d6ffd6f4c Fix plugin name and typo 2017-12-17 11:37:28 +01:00
Alexander Grothe
dd0cd703fe Fix syntax error caused by typo 2017-12-17 11:31:53 +01:00
Alexander Grothe
4097b01602 Add comment to write-x11-keyboard-config 2017-12-17 11:28:47 +01:00
Alexander Grothe
b1532f7a7a Move creation of X11 keyboard configuration to external script
heredocs with indentations don't work properly in Ansible shell commands
2017-12-17 11:07:40 +01:00
Alexander Grothe
f94dd32250 remove empty line (which breaks syntax) 2017-12-17 10:41:41 +01:00
Alexander Grothe
7b685ebe98 Set X11 keyboard configuration according to /etc/default/keyboard values 2017-12-17 10:38:12 +01:00
Alexander Grothe
1405c73c87 Install vdr-plugin-pulsectrl and vdr-plugin-osd2web
use the bluecd instead of blue
2017-12-17 10:02:09 +01:00
Alexander Grothe
59685f9a99 Fix video directory path 2017-12-17 09:16:50 +01:00
Alexander Grothe
dabc057ed7 Fix package name 2017-12-16 19:57:02 +01:00
Alexander Grothe
036fd26287 Revert "Use ansible 2.4.1 from ubuntu repositories"
the needed package is still in staging...

This reverts commit 2b749ba457.
2017-12-16 19:34:33 +01:00
Alexander Grothe
2b749ba457 Use ansible 2.4.1 from ubuntu repositories 2017-12-16 19:32:38 +01:00
Alexander Grothe
a7bc7a4386 Fix condition to ubuntu-drivers autoinstall 2017-12-16 18:58:57 +01:00
Alexander Grothe
3708289de7 Recommend sudo -H 2017-12-16 18:02:33 +01:00
Alexander Grothe
048ae4e5d4 We need to use an ansible build from a yavdr PPA (for now) 2017-12-16 17:47:16 +01:00
Alexander Grothe
295a99c622 Change PPAs for experimental bionic packages 2017-12-16 16:33:55 +01:00
Alexander Grothe
1f2a51dd37 Merge branch 'irmp' 2017-11-22 12:44:36 +01:00
Alexander Grothe
6b130a3df3 Merge branch 'refactoring' 2017-11-22 12:04:13 +01:00
Alexander Grothe
9860f607a0 don't fail in xrandr_facts.py if nvidia-smi is not available 2017-11-22 11:47:44 +01:00
Alexander Grothe
f302e4e06c Revert "add xrandr package to setup-xorg.yml"
This reverts commit f8553943ab.
2017-11-22 11:46:02 +01:00
Alexander Grothe
f8553943ab add xrandr package to setup-xorg.yml 2017-11-22 11:42:42 +01:00
Alexander Grothe
c5d0277610 cleanup whitespace 2017-11-22 11:40:17 +01:00
Alexander Grothe
19a1f98d74 run task only if file exists 2017-11-22 11:37:20 +01:00
Alexander Grothe
748df6954e set --no-install-recommands for ansible installation 2017-11-22 11:36:21 +01:00
Alexander Grothe
49bcecb027 allow action to fail if file does not exist 2017-11-22 10:56:21 +01:00
Alexander Grothe
68396b3797 fix string comparisons 2017-11-22 10:16:56 +01:00
Alexander Grothe
c70d6f97c6 Fix indentation 2017-11-22 10:15:16 +01:00
Alexander Grothe
f6ec12448a add autoinstall-virtualbox-guest role to yavdr07.yml playbook 2017-11-22 10:13:35 +01:00
Alexander Grothe
4ed8729282 Add additional files 2017-11-22 10:09:51 +01:00
Alexander Grothe
885b5bd893 add role for virtualbox guest utilities installation
workaround for Ubuntu 16.04
2017-11-22 10:06:47 +01:00
Alexander Grothe
d08d060439 Fix iteration over list 2017-11-22 09:26:32 +01:00
Alexander Grothe
0cd621b6a6 extend hardware_facts.py with bool variables for detected graphic card manufacturers 2017-11-22 09:24:33 +01:00
Alexander Grothe
6ae45c65ce Merge branch 'refactoring' of https://github.com/yavdr/yavdr-ansible into refactoring 2017-11-22 09:10:24 +01:00
Alexander Grothe
11eb950977 return a bool instead of a list 2017-11-22 09:07:44 +01:00
Alexander Grothe
23e09863dc return a bool instead of a list 2017-11-22 09:04:44 +01:00
Alexander Grothe
b93b0e7ec6 Fix string comparison 2017-11-22 08:50:51 +01:00
Alexander Grothe
cfb28e88cc Merge branch 'refactoring' of https://github.com/yavdr/yavdr-ansible into refactoring 2017-11-22 08:19:29 +01:00
Alexander Grothe
440032137b remove colon from name variables, fix org syntax error 2017-11-22 08:17:16 +01:00
Alexander Grothe
3372fcec4c remove colon from name variables 2017-11-22 08:11:56 +01:00
Alexander Grothe
0d01ee282b Fix quoting 2017-11-22 08:07:29 +01:00
Alexander Grothe
75cd1eb560 improve syntax, add new variables for detected gpus 2017-11-21 11:31:02 +01:00
Alexander Grothe
d9eb820ea0 fix template path 2017-11-20 12:01:02 +01:00
Alexander Grothe
115bfe66c9 Add template for vdr-addon-acpiwakeup.conf 2017-11-20 11:54:11 +01:00
Alexander Grothe
74159df8ac Fix value 2017-11-20 11:09:48 +01:00
Alexander Grothe
c6837bde93 Add TODO for autoinstall-dvbsddevice 2017-11-18 09:06:20 +01:00
Alexander Grothe
69e6b90885 fix role name 2017-11-15 08:22:35 +01:00
Alexander Grothe
fbad7b65aa remove whitespace 2017-11-13 09:44:42 +01:00
Alexander Grothe
7c2b1ce55d update handlers 2017-11-13 09:30:42 +01:00
Alexander Grothe
c985a33229 run dpkg-reconfigure if necessary 2017-11-13 09:27:02 +01:00
Alexander Grothe
0358403073 fix indentation and quoting 2017-11-13 09:24:13 +01:00
Alexander Grothe
11a7f5478c Merge branch 'irmp' of https://github.com/yavdr/yavdr-ansible into irmp 2017-11-13 09:21:59 +01:00
Alexander Grothe
9d1eb3a6e3 use debconf module instead of shell command 2017-11-13 09:20:04 +01:00
Alexander Grothe
ca0bc806ca use debconf module instead of shell command 2017-11-13 09:14:11 +01:00
Alexander Grothe
9794d7b9ef Update Manual.conf 2017-11-13 09:03:02 +01:00
Alexander Grothe
36d189e31c Update Manual.org, fix file permissions for role 2017-11-13 09:00:53 +01:00
Luigi Di Carmino
896516242b yavdr-hardware-irmp added 2017-11-12 21:59:44 +01:00
48 changed files with 2428 additions and 775 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -3,10 +3,11 @@ ansible playbooks for yaVDR
## Usage:
On a Ubuntu Server 16.04.x Installation run the following commands:
On a Ubuntu Server 18.04.x (or minimal) Installation run the following commands:
```
sudo apt-get install git
git clone https://github.com/yavdr/yavdr-ansible
cd yavdr-ansible
git checkout bionic
sudo ./install-yavdr.sh
```

3
ansible.cfg Normal file
View File

@@ -0,0 +1,3 @@
[defaults]
callback_plugins = plugins/callbacks
callback_whitelist = auto_tags

View File

@@ -0,0 +1,34 @@
# Copyright (c) 2017 Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
'status': ['preview'],
'supported_by': 'yavdr'
}
import gettext
from ansible.errors import AnsibleFilterError
from ansible.utils import helpers
def translate_yavdr(text):
gettext.textdomain('yavdr')
try:
return gettext.gettext(text)
except:
return text
# ---- Ansible filters ----
class FilterModule(object):
''' URI filter '''
def filters(self):
return {
'translate': translate_yavdr
}

View File

@@ -2,16 +2,15 @@
# file: group_vars/all
# this is the standard text to put in templates
ansible_managed_file: "*** YAVDR: ANSIBLE MANAGED FILE ***"
branch: unstable
ansible_managed_file: "*** YAVDR: ANSIBLE MANAGED FILE ***\norigin: {file}"
branch: experimental
ppa_owner: 'ppa:yavdr'
# add the following PPAs
repositories:
- '{{ ppa_owner }}/main'
- '{{ ppa_owner }}/unstable-main'
- '{{ ppa_owner }}/{{branch}}-main'
- '{{ ppa_owner }}/{{branch}}-vdr'
- '{{ ppa_owner }}/{{branch}}-yavdr'
- '{{ ppa_owner }}/{{branch}}-kodi'
#- '{{ ppa_owner }}/{{branch}}-yavdr'
#- '{{ ppa_owner }}/{{branch}}-kodi'
# properties of the user vdr and vdr-related options
vdr:
user: vdr
@@ -34,7 +33,7 @@ vdr_plugins:
# dictionary of directories for (shared) files. Automatically exported via NFS and Samba if those roles are enabled
media_dirs:
audio: /srv/audio
video: /srv/audio
video: /srv/video
pictures: /srv/picture
files: /srv/files
backups: /srv/backups
@@ -52,10 +51,11 @@ extra_packages:
- tree
- vim
- w-scan
- plymouth-theme-yavdr-logo
frontend: vdr
#system:
# shutdown: poweroff
wakeup_method: acpiwakeup
grub:
timeout: 0
boot_options: quiet nosplash
boot_options: quiet splash

View File

@@ -1,16 +1,16 @@
#!/bin/bash
if (( $EUID != 0 )); then
echo "This script must be run using sudo or as root"
echo "This script must be run using sudo -H or as root"
exit
fi
apt-get -y install software-properties-common
# Add repository for ansible
add-apt-repository -y ppa:ansible/ansible
add-apt-repository -y ppa:yavdr/experimental-main
# update packages
apt-get update
# install required packages
apt-get -y install ansible
apt-get -y install --no-install-recommends ansible
# TODO: run ansible on local host
ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags=install
ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags="all"

View File

@@ -52,11 +52,11 @@ EXAMPLES = '''
acpi_power_modes: True
- debug:
var: usb
- debug
- debug:
var: pci
- debug
- debug:
var: modules
- debug
- debug:
var: gpus
'''
@@ -134,6 +134,10 @@ def main():
pci_devices = []
modules = []
gpus = []
nvidia_detected = False
intel_detected = False
amd_detected = False
virtualbox_detected = False
acpi_power_modes = []
if collect_usb:
@@ -148,12 +152,18 @@ def main():
if collect_gpus:
gpus = format_gpu_device_list(get_pci_devices())
nvidia_detected = any((True for gpu in gpus if gpu['VendorName'] == 'nvidia'))
intel_detected = any((True for gpu in gpus if gpu['VendorName'] == 'intel'))
amd_detected = any((True for gpu in gpus if gpu['VendorName'] == 'amd'))
virtualbox_detected = any((True for gpu in gpus if gpu['VendorName'] == 'virtualbox'))
if collect_acpi_power_modes:
acpi_power_modes = list_acpi_power_modes()
data = {'usb': usb_devices, 'pci': pci_devices, 'modules': modules, 'gpus': gpus,
'acpi_power_modes': acpi_power_modes}
'acpi_power_modes': acpi_power_modes, 'nvidia_detected': nvidia_detected,
'intel_detected': intel_detected, 'amd_detected': amd_detected,
'virtualbox_detected': virtualbox_detected}
module.exit_json(changed=False, ansible_facts=data, msg=data)

View File

@@ -23,9 +23,9 @@ options:
default: ":0"
description:
- the DISPLAY variable to use when calling xrandr
preferred_outpus:
preferred_outputs:
required: False
default: ["HDMI", "DP", "DVI", "VGA", "TV": 0]
default: ["HDMI", "DP", "DVI", "VGA", "TV"]
description:
- ranking of the preferred display connectors
preferred_refreshrates:
@@ -197,6 +197,9 @@ def collect_nvidia_data():
universal_newlines=True)
except subprocess.CalledProcessError:
pass
except OSError:
# nvidia-smi is not installed
pass
else:
for row in csv.DictReader(data.splitlines(), delimiter=',', skipinitialspace=True):
name = row['name']

View File

@@ -0,0 +1,48 @@
"""
This module implements an Ansible plugin that is triggered at the start of a playbook.
The plugin dynamically generates a tag for each role. Each tag has the same name as its role.
The advantage of this is that it saves you some boilerplate, because you don't have to wrap
all tasks of a role in an additional block and assign a tag to that.
Additionally, it works automatically when you add new roles to your playbook.
Usage is exactly the same as without this plugin:
ansible-playbook --tags=some_tag provision.yml
Here, the "some_tag" tag was generated dynamically (assuming there is a "some_tag" role).
Installation:
1. Place this file in `plugins/callbacks/auto_tags.py` (relative to your playbook root)
2. Add the following two lines to your `ansible.cfg` file:
callback_plugins = plugins/callbacks
callback_whitelist = auto_tags
"""
from __future__ import print_function
from ansible.plugins.callback import CallbackBase
class CallbackModule(CallbackBase):
"""
Ansible supports several types of plugins. We are using the *callback* type here, since
it seemed the best choice for our use case, because it allows you to hook into the start
of a playbook.
"""
def v2_playbook_on_start(self, playbook):
"""
Dynamically add a tag of the same name to each role.
Note: Plays, roles, task_blocks and tasks can have tags.
"""
plays = playbook.get_plays()
# Note: Although identical roles are shared between plays we cannot deduplicate them,
# since Ansible treats them as different objects internally
roles = [role for play in plays for role in play.get_roles()]
# Note: Tags for roles are set dynamically in `_load_role_data` instead of in __init__
# I don't know why they do that.
for role in roles:
role_name = role._role_name
if role_name not in role.tags:
role.tags += [role_name]

View File

@@ -0,0 +1,3 @@
---
dependencies:
- { role: yavdr-remote }

View File

@@ -0,0 +1,36 @@
---
# file roles/autoinstall-atric-usb/tasks/main.yml
- name: install and configure Atric IR-WakeupUSB
block:
- name: apt | install lirc-drv-irman
apt:
name: lirc-drv-irman
state: present
tags:
- packages
- name: write lirc configuration
template:
src: templates/lirc_options.conf.j2
dest: /etc/lirc/lirc_options.conf
tags:
- config
- systemd
- name: enable lircd, eventlircd, lircd2uinput
systemd:
name: '{{ item }}'
enabled: yes
state: started
masked: no
daemon_reload: yes
with_items:
- eventlircd.socket
- eventlircd.service
- lircd2uinput.service
- lircd.service
tags:
- systemd
when: '"04d8:f844" in usb'

View File

@@ -0,0 +1,21 @@
{{ ansible_managed_file | comment }}
[lircd]
nodaemon = False
driver = irman
device = /dev/irman
output = /var/run/lirc/lircd0
pidfile = /var/run/lirc/lircd0.pid
plugindir = /usr/lib/x86_64-linux-gnu/lirc/plugins
permission = 666
allow-simulate = No
repeat-max = 600
#loglevel = 6
#release = true
#release_suffix = _EVUP
#logfile = ...
#driver-options = ...
[lircmd]
uinput = False
nodaemon = False

View File

@@ -1,6 +1,8 @@
---
# file roles/autoinstall-dvbsddevice/tasks/main.yml
# TODO: install firmware
- name: apt | install vdr-plugin-dvbsddevice if module is loaded
apt:
name: vdr-plugin-dvbsddevice

View File

@@ -3,12 +3,11 @@
- name: determine needed firmware files by device ids
block:
- name: add firmware for DVBSky S952 V3 to variable dvbsky_firmware_files if a card has been detected
- name: add firmware files for DVBSky if a card has been detected
set_fact:
dvbsky_firmware_files: "{{dvbsky_firmware_files}} + ['dvb-demod-m88rs6000.fw']"
dvbsky_firmware_files: ['dvb-demod-m88ds3103.fw', 'dvb-demod-m88rs6000.fw', 'dvb-tuner-si2158-a20-01.fw', 'dvb-demod-si2168-a20-01.fw', 'dvb-demod-si2168-a30-01.fw', 'dvb-demod-si2168-b40-01.fw', 'dvb-fe-ds300x.fw', 'dvb-fe-ds3103.fw', 'dvb-fe-rs6000.fw']
when:
- '"1ade:3038" in pci'
- ansible_distribution_version >= '15.04' #driver only included since Kernel 3.19
when:
- not dvbsky_firmware_files

View File

@@ -1,15 +1,16 @@
---
# file roles/autoinstall-ubuntu-drivers/tasks/main.yml
- name: apt | install ubuntu-drivers-common
- name: autoinstall ubuntu-drivers-common
block:
- name: apt | install ubuntu-drivers-common
apt:
name: ubuntu-drivers-common
state: present
- name: ensure /etc/yavdr exists
file:
path: /etc/yavdr
state: directory
mode: 0755
- name: let ubuntu-drivers automatically install additional drivers
- name: use ubuntu-drivers to install additional drivers automatically
command: ubuntu-drivers --package-list /etc/yavdr/autoinstalled autoinstall
when: (ansible_virtualization_type != "virtualbox" and ansible_virtualization_role != "guest") or
ansible_distribution_version != "16.04"
# ubuntu-drivers-common tries to autoinstall
# conflicting packages for virtualbox in Ubuntu 16.04 :(

View File

@@ -0,0 +1,20 @@
---
# file roles/autoinstall-virtualbox-guest/tasks/main.yml
- name: install virtualbox guest additions
block:
- name: install packages
apt:
state: present
name: '{{ item }}'
with_items:
- virtualbox-guest-dkms
- virtualbox-guest-x11
- dkms
# TODO: set xineliboutput as frontend
when:
- ansible_virtualization_type == "virtualbox"
- ansible_virtualization_role == "guest"
- ansible_distribution == "Ubuntu"
- ansible_distribution_version == "16.04"

View File

@@ -5,6 +5,8 @@
modules: True
gpus: True
acpi_power_modes: True
tags:
- always
- debug:
var: '{{ item }}'
@@ -15,3 +17,14 @@
- gpus
- modules
- acpi_power_modes
- nvidia_detected
- intel_detected
- amd_detected
- virtualbox_detected
- name: known vdr output plugins
set_fact:
vdr_output_plugins:
- softhddevice
- xineliboutput
- xine

View File

@@ -8,4 +8,4 @@
with_items:
- kodi
- kodi-pvr-vdr-vnsi
- kodi-eventclients-xbmc-send
- kodi-eventclients-kodi-send # for ubuntu packages, team-xbmc uses "kodi-eventclients-xbmc-send for some reason

View File

@@ -6,7 +6,7 @@ Type=simple
PassEnvironment=DISPLAY XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
ExecStartPre=-/usr/bin/set-kodi-display
ExecStart=/usr/bin/kodi -l /run/lirc/lircd
ExecStop=/bin/bash -c "/usr/bin/kodi-send --action=QUIT; while /usr/bin/pgrep kodi; do sleep 1; done; sleep 1"
ExecStop=/bin/bash -c "/usr/bin/kodi-send --action=QUIT; while ps -p $MAINPID -o comm=; do sleep .25; done"
TimeoutStopSec=10
SuccessExitStatus=0 127
Restart=on-failure

View File

@@ -5,6 +5,8 @@
repo: 'ppa:graphics-drivers/ppa'
state: present
update_cache: yes
tags:
- ppa
- name: install nvidia-387 and other required packages
apt:
@@ -14,3 +16,5 @@
with_items:
- nvidia-387
- nvidia-settings
tags:
- packages

View File

@@ -1,6 +1,6 @@
---
- name: apt | install pulseaudio and pavucontrol
- name: apt | install pulseaudio, pavucontrol and vdr-plugin-pulsecontrol
apt:
name: '{{ item }}'
state: present
@@ -8,6 +8,7 @@
with_items:
- pulseaudio
- pavucontrol
- vdr-plugin-pulsecontrol
- name: create /etc/asound.conf with pulseaudio as default device
template:

View File

@@ -30,11 +30,10 @@
blockinfile:
dest: /etc/vdr/conf.d/04-vdr-hide-first-recordinglevel.conf
create: true
state: "{{ 'present' if vdr.hide_first_recording_level else 'absent' }}"
block: |
[vdr]
--hide-first-recording-level
when:
vdr.hide_first_recording_level
- name: create local dir in recdir
file:

View File

@@ -2,14 +2,12 @@
# file roles/wakeup/tasks/main.yml
- name: install and configure vdr-addon-acpiwakeup
block:
- apt:
apt:
name: vdr-addon-acpiwakeup
state: present
- lineinfile:
path: /etc/vdr/vdr-addon-acpiwakeup.conf
regexp: '^ACPI_ENABLED='
line: 'ACPI_ENABLED=true'
when: wakeup_method == "acpiwakeup"
- name: expand template for /etc/vdr/vdr-addon-acpiwakeup.conf
template:
src: templates/vdr-addon-acpiwakeup.conf.j2
dest: /etc/vdr/vdr-addon-acpiwakeup.conf

View File

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

View File

@@ -10,6 +10,8 @@
state: present
update_cache: yes
with_items: '{{ repositories }}'
tags:
- ppa
- name: run apt-get dist-upgrade
apt:

View File

@@ -24,6 +24,11 @@
state: present
regexp: '^(Prompt=).*$'
line: '\1never'
ignore_errors: yes
with_first_found:
- files:
- /etc/update-manager/release-upgrades
skip: true
- name: apt | install basic packages
apt:
name: '{{ item }}'

View File

@@ -1,3 +1,9 @@
- name: ensure /etc/yavdr exists
file:
path: /etc/yavdr
state: directory
mode: 0755
- name: create media directories
file:
dest: '{{ item.value }}'

View File

@@ -1,7 +1,7 @@
---
# this playbook sets up network services for a yaVDR installation
- name: apt |install packages for network services
- name: apt | install packages for network services
apt:
name: '{{ item }}'
state: present

View File

@@ -1,20 +1,30 @@
---
# This role is used to set up the yaVDR remote control configuration.
- name: apt | install yavdr-remote
- name: apt | install packages for remote support
apt:
name: yavdr-remote
name: '{{ item }}'
state: present
with_items:
- yavdr-remote
- lirc
- eventlircd
- lircd2uinput
tags:
- packages
- name: apt | install eventlircd
apt:
name: eventlircd
state: present
- name: apt | install lirc
apt:
name: lirc
state: present
- name: add systemd drop-in for lircd to use lircd2uinput
block:
- name: create directory /etc/systemd/system/lircd.service.d/
file:
path: /etc/systemd/system/lircd.service.d/
state: directory
- name: expand template for /etc/systemd/system/lircd.service.d/lircd2uinput.conf
template:
src: templates/lircd.service.d/lircd2uinput.conf.j2
dest: /etc/systemd/system/lircd.service.d/lircd2uinput.conf
tags:
- config
- name: stop, mask and disable lircd.socket, lircd.service and lircd-uinput.service # (the default lirc configuration conflicts with eventlircd)
systemd:
@@ -27,18 +37,21 @@
- lircd.socket
- lircd-uinput.service
ignore_errors: yes
tags:
- systemd
- name: configure vdr to read from a lircd-compatible socket
template:
src: templates/03-vdr-lirc.conf.j2
dest: /etc/vdr/conf.d/03-vdr-lirc.conf
notify: ['Restart VDR']
tags:
- config
# TODO: upload lircd2uinput package to PPA
#- name: install lircd2uinput
# tag: install
# apt:
# name: lircd2uinput
# state: present
# when:
# install_eventlircd is defined and install_eventlircd
- name: expand template for /etc/rc_maps.cfg
template:
src: templates/rc_maps.cfg.j2
dest: /etc/rc_maps.cfg
notify: ['Trigger Udev']
tags:
- config

View File

@@ -0,0 +1,3 @@
[Service]
ExecStartPost=/usr/bin/lircd2uinput-add /var/run/lirc/lircd0
ExecStopPost=/usr/bin/lircd2uinput-remove /var/run/lirc/lircd0

View File

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

View File

@@ -21,6 +21,14 @@
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'
@@ -79,6 +87,15 @@
src: templates/systemd/user/osd2web.service.j2
dest: '{{ vdr.home }}/.config/systemd/user/osd2web.service'
- name: create irexec configuration for the session
block:
- template:
src: templates/systemd/user/irexec.service.j2
dest: '{{ vdr.home }}/.config/systemd/user/irexec.service'
- template:
src: templates/.lircrc.j2
dest: '{{ vdr.home }}/.lircrc'
- name: link /usr/bin/start-desktop to /var/lib/vdr/plugins/desktop/starter
file:
src: /usr/bin/start-desktop

View File

@@ -28,6 +28,43 @@
name: x@vt7.service
state: stopped
- name: Workaround for wrong connector names on first run
block:
- name: "wait a little bit before starting x-verbose@vt7.service (needed?)"
wait_for:
timeout: 10
- name: "start x-verbose@.service"
systemd:
name: "x-verbose@vt7.service"
state: started
enabled: false
masked: false
daemon_reload: true
- name: "wait a little bit, so X has some time to start up (needed?)"
wait_for:
timeout: 3
- name: "stop x-verbose@vt7.service"
systemd:
name: "x-verbose@vt7.service"
state: stopped
enabled: false
masked: true
tags: first_run
- name: "wait a little bit, so X has some time to shut down (needed?)"
wait_for:
timeout: 3
- name: "trigger udevadm reload"
command: 'udevadm trigger '
- name: "wait a little bit, so udev has some time to reapply rules (needed?)"
wait_for:
timeout: 3
- name: "start x-verbose@.service"
systemd:
name: "x-verbose@vt7.service"
@@ -57,11 +94,20 @@
enabled: false
masked: true
- name: "wait a little bit, so X has some time to shut down (needed?)"
wait_for:
timeout: 3
# TODO: expand template for xorg.conf (or snippets)
# with respect for the available graphics card driver
# nvidia, noveau, intel, radeon
- name: create xorg.conf (for nvidia driver)
- name: nvidia related config
block:
- name: create xorg.conf (for nvidia driver)
template:
src: templates/xorg.conf.j2
dest: /etc/X11/xorg.conf
backup: yes
when:
- nvidia_detected

View File

@@ -1,5 +1,8 @@
---
# file: roles/yavdr-xorg/tasks/main.yml
- import_tasks: setup-xorg.yml tags=install,update
- import_tasks: detect-xorg.yml tags=xorg:detect,install
- import_tasks: desktop-session.yml tags=install,update
- import_tasks: setup-xorg.yml
tags: [install,update]
- import_tasks: detect-xorg.yml
tags: [xorg.detect,install]
- import_tasks: desktop-session.yml
tags: [install,update]

View File

@@ -5,31 +5,37 @@
dest: '{{ item }}'
state: directory
with_items:
- /etc/systemd/system/x@.service.d/
- /etc/systemd/system/vdr.service.d/
- '/etc/systemd/system/user@{{ vdr.uid }}.service.d/'
- "/etc/systemd/system/x@.service.d/"
- "/etc/systemd/system/vdr.service.d/"
- "/etc/systemd/system/user@{{ vdr.uid }}.service.d/"
- "/etc/X11/xorg.conf.d/"
- name: add dependency to X-server for vdr.service using a drop-in
- name: systemd-drop-in | add dependency to X-server for vdr.service
template:
src: templates/vdr-xorg.conf
dest: /etc/systemd/system/vdr.service.d/vdr-xorg.conf
- name: start x@.service before xlogin@.service
- name: systemd-drop-in | start x@.service before xlogin@.service
template:
src: templates/x@service.d/xlogin.conf.j2
dest: /etc/systemd/system/x@.service.d/xlogin.conf
- name: load environment file for vdr.service
- name: systemd-drop-in | load environment file for vdr.service
template:
src: templates/systemd/vdr-environ.j2
dest: /etc/systemd/system/vdr.service.d/load-environ.conf
- name: user@{{ vdr.uid }}.service depends on x@vt7.service
- 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
template:
src: templates/user@666.service.d/x-dependency.conf.j2
dest: '/etc/systemd/system/user@{{ vdr.uid }}.service.d/x-dependency.conf'
- name: start softhddevice detached and set audio to pulseaudio
- name: vdr-config | start softhddevice detached and set audio to pulseaudio
lineinfile:
path: /etc/vdr/conf.avail/softhddevice.conf
line: '{{ item }}'
@@ -37,7 +43,7 @@
- '-D'
# - '-a pulse' # do we need this with our existing asound.conf?
- name: set a login shell for the user vdr
- name: add a login shell for the user vdr
user:
name: '{{ vdr.user }}'
shell: '/bin/bash'
@@ -61,8 +67,26 @@
- read-edid
- tmux
- vdr-plugin-desktop
- vdr-plugin-osd2web
- feh
#- yavdr-xorg
- name: download yavdr logo
block:
- file:
dest: '/usr/share/yavdr/images'
state: directory
- get_url:
url: 'https://github.com/yavdr/yavdr-base/raw/master/images/yavdr_logo.png'
dest: '/usr/share/yavdr/images/yavdr_logo.png'
- name: command | write keyboard configuration to /etc/X11/xorg.conf.d/00-keyboard.conf
command: write-x11-keyboard-config
creates: /etc/X11/xorg.conf.d/00-keyboard.conf
# NOTE: write-x11-keyboard-config is in the xlogin package
# Ubuntu's systemd is patched, so it does not create the file automatically
- name: apt | install desktop programs
apt:
name: '{{ item }}'

View File

@@ -0,0 +1,16 @@
xterm*background: Black
xterm*foreground: grey
XTerm*locale: true
XTerm*metaSendsEscape: true
XTerm*eightBitInput: false
XTerm*backarrowKey: false
XTerm*ttyModes: erase ^?
Xterm*saveLines: 4096
XTerm.vt100.metaSendsEscape: true
XTerm.vt100.geometry: 80x32
XTerm.vt100.renderFont: true
xterm*faceName: xft:DejaVu Sans Mono
xterm*faceSize: 14
xterm*renderFont: true
XTerm.vt100.faceName: xft:DejaVu Sans Mono:size=12:antialias=false
XTerm.vt100.font: 7x13

View File

@@ -0,0 +1,5 @@
begin
prog = irexec
button = KEY_HOME
config = frontend-dbus-send switchbetween kodi vdr
end

View File

@@ -1,3 +1,3 @@
#!/bin/bash
# {{ ansible_managed_file }}
{{ ansible_managed_file | comment }}
exec openbox-session

View File

@@ -3,11 +3,13 @@
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
feh --bg-center "/usr/share/yavdr/images/yavdr_logo.png"
enabled_services=(
"tmux.service" "detect-second-display.service"
"openbox-second.service" "osd2web.service"
"yavdr-frontend.service" "pulseaudio.socket"
"pulseaudio.service" "wm-exit.service")
"pulseaudio.service" "wm-exit.service" "irexec.service")
disabled_services=()
# enable configured services for the user session

View File

@@ -54,7 +54,7 @@
S: shade (roll up/down)
D: omnipresent (on all desktops).
-->
<keepBorder>yes</keepBorder>
<keepBorder>no</keepBorder>
<animateIconify>yes</animateIconify>
<font place="ActiveWindow">
<name>sans</name>
@@ -321,22 +321,6 @@
<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>
@@ -796,21 +780,27 @@
<applications>
<application title="softhddevice">
<decor>no</decor>
<maximized>true</maximized>
<maximized>yes</maximized>
<!--<skip_pager>yes</skip_pager>-->
<skip_taskbar>no</skip_taskbar>
</application>
<application class="VDR">
<decor>no</decor>
<maximized>yes</maximized>
<!--<skip_pager>yes</skip_pager>-->
<skip_taskbar>no</skip_taskbar>
</application>
<application title="browser">
<decor>no</decor>
<maximized>true</maximized>
<maximized>yes</maximized>
<!--<skip_pager>yes</skip_pager>-->
<skip_taskbar>yes</skip_taskbar>
<skip_taskbar>no</skip_taskbar>
</application>
<application title="osd2Web">
<decor>no</decor>
<maximized>true</maximized>
<maximized>yes</maximized>
<!--<skip_pager>yes</skip_pager>-->
<skip_taskbar>yes</skip_taskbar>
<skip_taskbar>no</skip_taskbar>
</application>
</applications>
</openbox_config>

View File

@@ -0,0 +1,2 @@
[Unit]
After=network-online.target

View File

@@ -0,0 +1,9 @@
[Unit]
Description=LIRC command handler
[Service]
Type=simple
ExecStart=/usr/bin/irexec %h/.lircrc
[Install]
WantedBy=yavdr-desktop.target

View File

@@ -9,6 +9,7 @@ ConditionFileNotEmpty=%h/.second_display
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

View File

@@ -7,7 +7,7 @@ ConditionFileNotEmpty=%h/.second_display
[Service]
EnvironmentFile=%h/.second_display
PassEnvironment=XDG_RUNTIME_DIR DBUS_SESSION_BUS_ADDRESS
ExecStart=/usr/bin/on_vdr -o -c 'kiosk-browser "http://localhost:4444/skins/horchiTft/index.html?theme=blue&onlyView=1"'
ExecStart=/usr/bin/on_vdr -o -c 'kiosk-browser "http://localhost:4444/skins/horchiTft/index.html?theme=bluecd&onlyView=1"'
KillSignal=SIGINT
[Install]

View File

@@ -1,5 +1,4 @@
# file: roles/yavdr-xorg/templates/vdr-xorg.conf
# {{ ansible_managed_file }}
{{ ansible_managed_file | comment }}
[Unit]
After=x@vt7.service
Wants=x@vt7.service

View File

@@ -48,7 +48,9 @@ Section "Screen"
Option "ConnectedMonitor" "{{ xorg.primary.connector }}{% if xorg.secondary is defined %}, {{ xorg.secondary.connector }}{% endif %}"
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"
Option "metamodes" "{{ xorg.primary.connector }}: {{ xorg.primary.mode }} +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
Option "AllowIndirectGLXProtocol" "off"
Option "TripleBuffer" "on"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
@@ -87,7 +89,9 @@ Section "Screen"
Option "ConnectedMonitor" "{{ xorg.secondary.connector }}"
Option "UseDisplayDevice" "{{ xorg.secondary.connector }}"
Option "CustomEDID" "{{ xorg.secondary.connector }}:/etc/X11/edid.{{ xorg.secondary.connector }}.bin"
Option "metamodes" "{{ xorg.secondary.connector }}: {{ xorg.secondary.mode }} +0+0"
Option "metamodes" "{{ xorg.secondary.connector }}: {{ xorg.secondary.mode }} +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
Option "AllowIndirectGLXProtocol" "off"
Option "TripleBuffer" "on"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"

View File

@@ -10,6 +10,7 @@
- collect-facts # query system facts
- autoinstall-ubuntu-drivers # use ubuntu-drivers to install proprietary dirvers
# (e.g. nvidia, virtualbox)
- autoinstall-virtualbox-guest
# - nvidia-387 # install very recent nvidia-387 from ppa:graphics-drivers/ppa
- vdr # install vdr and related packages
- yavdr-network # enable network client capabilities
@@ -26,14 +27,13 @@
- autoinstall-hauppauge-pvr # install vdr-plugin-pvrinput if a matching card is found
- autoinstall-dvbsddevice # install vdr-plugin-dvbsddevice if a matching card is detected
- autoinstall-hardware-irmp # install yavdr-hardware-irmp if a matching usb device is detected
- autoinstall-atric-usb # preconfigure lircd for Atric IR-WakeupUSB receiver
- autoinstall-dvbsky-firmware # download an install required firmware files for dvbsky cards
- kodi
- dvd # set up packages and a udev rule to allow kodi and other players
# to play and eject optical media
- wakeup # set up wakeup methods for rtc etc.
- grub-config # configure grub
tags:
- always
handlers:
- import_tasks: handlers/main.yml