Compare commits
115 Commits
autoinstal
...
xorg-detec
Author | SHA1 | Date | |
---|---|---|---|
|
fbb6003cf9 | ||
|
c36056561f | ||
|
af3ef457b6 | ||
|
98729f7cbd | ||
|
ffc4707fdc | ||
|
886fff4f09 | ||
|
c6207490b8 | ||
|
3006830cc1 | ||
|
9f42da23f6 | ||
|
4b8ff236b5 | ||
|
2e8bd59576 | ||
|
ec0234f938 | ||
|
d09df785b6 | ||
|
1d108dc61f | ||
|
d8c3b9c5bd | ||
|
ce941ce722 | ||
|
2c08b97090 | ||
|
4c96c0a128 | ||
|
13209045b8 | ||
|
27278862a5 | ||
|
88254f8e79 | ||
|
41e44b67a4 | ||
|
467c960bf3 | ||
|
6468b5d432 | ||
|
7476635066 | ||
|
34a0a0e36c | ||
|
b9c56955b4 | ||
|
4682af7c3a | ||
|
14d05a742b | ||
|
c54313c6e7 | ||
|
f42fc8f144 | ||
|
02a1d94108 | ||
|
9440928891 | ||
|
1689195d42 | ||
|
8d201c2e62 | ||
|
98674ffc4f | ||
|
2f02f49aa1 | ||
|
07b9f18659 | ||
|
fb4483c01f | ||
|
4f95b57a9d | ||
|
4b9332b277 | ||
|
1befca797e | ||
|
fd1d7744fb | ||
|
784ea1d0b2 | ||
|
3aadc14dbb | ||
|
ea39de7a21 | ||
|
4c4705e49f | ||
|
87969286f2 | ||
|
a84b9b1742 | ||
|
bde3106c47 | ||
|
0c1f52d986 | ||
|
04662f2b83 | ||
|
4cf30fabd0 | ||
|
3051e04c53 | ||
|
767807e3e4 | ||
|
89963fa35b | ||
|
b9e4f1bc33 | ||
|
7726ce1399 | ||
|
345e373a52 | ||
|
63bc6828aa | ||
|
5d6ffd6f4c | ||
|
dd0cd703fe | ||
|
4097b01602 | ||
|
b1532f7a7a | ||
|
f94dd32250 | ||
|
7b685ebe98 | ||
|
1405c73c87 | ||
|
59685f9a99 | ||
|
dabc057ed7 | ||
|
036fd26287 | ||
|
2b749ba457 | ||
|
a7bc7a4386 | ||
|
3708289de7 | ||
|
048ae4e5d4 | ||
|
295a99c622 | ||
|
1f2a51dd37 | ||
|
6b130a3df3 | ||
|
9860f607a0 | ||
|
f302e4e06c | ||
|
f8553943ab | ||
|
c5d0277610 | ||
|
19a1f98d74 | ||
|
748df6954e | ||
|
49bcecb027 | ||
|
68396b3797 | ||
|
c70d6f97c6 | ||
|
f6ec12448a | ||
|
4ed8729282 | ||
|
885b5bd893 | ||
|
d08d060439 | ||
|
0cd621b6a6 | ||
|
6ae45c65ce | ||
|
11eb950977 | ||
|
23e09863dc | ||
|
b93b0e7ec6 | ||
|
cfb28e88cc | ||
|
440032137b | ||
|
3372fcec4c | ||
|
0d01ee282b | ||
|
75cd1eb560 | ||
|
d9eb820ea0 | ||
|
115bfe66c9 | ||
|
74159df8ac | ||
|
c6837bde93 | ||
|
69e6b90885 | ||
|
fbad7b65aa | ||
|
7c2b1ce55d | ||
|
c985a33229 | ||
|
0358403073 | ||
|
11a7f5478c | ||
|
9d1eb3a6e3 | ||
|
ca0bc806ca | ||
|
9794d7b9ef | ||
|
36d189e31c | ||
|
896516242b |
1658
Manual.html
1658
Manual.html
File diff suppressed because it is too large
Load Diff
730
Manual.org
730
Manual.org
File diff suppressed because it is too large
Load Diff
@@ -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
3
ansible.cfg
Normal file
@@ -0,0 +1,3 @@
|
||||
[defaults]
|
||||
callback_plugins = plugins/callbacks
|
||||
callback_whitelist = auto_tags
|
34
filter_plugins/translate_yavdr.py
Normal file
34
filter_plugins/translate_yavdr.py
Normal 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
|
||||
}
|
@@ -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
|
||||
|
@@ -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"
|
||||
|
@@ -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)
|
||||
|
||||
|
||||
|
@@ -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']
|
||||
|
48
plugins/callbacks/auto_tags.py
Normal file
48
plugins/callbacks/auto_tags.py
Normal 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]
|
3
roles/autoinstall-atric-usb/meta/main.yml
Normal file
3
roles/autoinstall-atric-usb/meta/main.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
dependencies:
|
||||
- { role: yavdr-remote }
|
36
roles/autoinstall-atric-usb/tasks/main.yml
Normal file
36
roles/autoinstall-atric-usb/tasks/main.yml
Normal 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'
|
21
roles/autoinstall-atric-usb/templates/lirc_options.conf.j2
Normal file
21
roles/autoinstall-atric-usb/templates/lirc_options.conf.j2
Normal 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
|
@@ -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
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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 :(
|
||||
|
20
roles/autoinstall-virtualbox-guest/tasks/main.yml
Normal file
20
roles/autoinstall-virtualbox-guest/tasks/main.yml
Normal 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"
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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
|
||||
|
16
roles/wakeup/templates/vdr-addon-acpiwakeup.conf.j2
Normal file
16
roles/wakeup/templates/vdr-addon-acpiwakeup.conf.j2
Normal 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
|
@@ -10,6 +10,8 @@
|
||||
state: present
|
||||
update_cache: yes
|
||||
with_items: '{{ repositories }}'
|
||||
tags:
|
||||
- ppa
|
||||
|
||||
- name: run apt-get dist-upgrade
|
||||
apt:
|
||||
|
@@ -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 }}'
|
||||
|
@@ -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 }}'
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -0,0 +1,3 @@
|
||||
[Service]
|
||||
ExecStartPost=/usr/bin/lircd2uinput-add /var/run/lirc/lircd0
|
||||
ExecStopPost=/usr/bin/lircd2uinput-remove /var/run/lirc/lircd0
|
182
roles/yavdr-remote/templates/rc_maps.cfg.j2
Normal file
182
roles/yavdr-remote/templates/rc_maps.cfg.j2
Normal 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
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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]
|
||||
|
@@ -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 }}'
|
||||
|
16
roles/yavdr-xorg/templates/.Xresources.j2
Normal file
16
roles/yavdr-xorg/templates/.Xresources.j2
Normal 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
|
5
roles/yavdr-xorg/templates/.lircrc.j2
Normal file
5
roles/yavdr-xorg/templates/.lircrc.j2
Normal file
@@ -0,0 +1,5 @@
|
||||
begin
|
||||
prog = irexec
|
||||
button = KEY_HOME
|
||||
config = frontend-dbus-send switchbetween kodi vdr
|
||||
end
|
@@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed_file }}
|
||||
{{ ansible_managed_file | comment }}
|
||||
exec openbox-session
|
||||
|
@@ -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
|
||||
|
@@ -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>
|
||||
|
2
roles/yavdr-xorg/templates/systemd/network-online.j2
Normal file
2
roles/yavdr-xorg/templates/systemd/network-online.j2
Normal file
@@ -0,0 +1,2 @@
|
||||
[Unit]
|
||||
After=network-online.target
|
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=LIRC command handler
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/irexec %h/.lircrc
|
||||
|
||||
[Install]
|
||||
WantedBy=yavdr-desktop.target
|
@@ -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
|
||||
|
@@ -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]
|
||||
|
@@ -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
|
||||
|
@@ -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"
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user