Merge pull request #1 from yavdr/master

Test to pull to master from origin
This commit is contained in:
LuigiDC 2017-11-12 21:21:11 +01:00 committed by GitHub
commit c05b98cdf1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 97 additions and 5883 deletions

File diff suppressed because it is too large Load Diff

View File

@ -58,9 +58,9 @@ Several roles are used to tie everything together:
*** Using vdr, pulseaudio and xorg together
* Notes
* Notes :noexport:
:PROPERTIES:
:export nil
:noexport: nil
:END:
** TODO [#A] optimize and document data structure for xorg parsing script
** TODO [#A] xorg.conf templates for intel, nvidia, noveau and radeon drivers
@ -168,6 +168,7 @@ The ~yavdr07.yml~ playbook sets up a fully-featured yaVDR installation:
- yavdr-common # install and configure the basic system
- autoinstall-ubuntu-drivers # use ubuntu-drivers to install proprietary dirvers
# (e.g. nvidia, virtualbox)
# - nvidia-387 # install very recent nvidia-387 from ppa:graphics-drivers/ppa
- vdr # install vdr and related packages
- yavdr-network # enable network client capabilities
- samba-install # install samba server
@ -190,7 +191,7 @@ The ~yavdr07.yml~ playbook sets up a fully-featured yaVDR installation:
- always
handlers:
- include: handlers/main.yml
- import_tasks: handlers/main.yml
#+END_SRC
** yavdr07-headless.yml
For a headless server installation ~yavdr07-headless.yml~ is a good choice
@ -214,13 +215,13 @@ For a headless server installation ~yavdr07-headless.yml~ is a good choice
tags:
- always
handlers:
- include: handlers/main.yml
- import_tasks: handlers/main.yml
#+END_SRC
* Hosts
This playbook can either be used to run the installation on the localhost or any other PC in the network that can be accessed via ssh. Simply add the host names or IP addresses to the hosts file in the respective section:
#+BEGIN_SRC conf :tangle localhost_inventory :mkdirp yes :padline no
[localhost]
[local]
localhost connection=local
#+END_SRC
@ -294,12 +295,13 @@ samba:
#+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes
# additional packages you want to install
extra_packages:
- vim
- htop
- tree
- w-scan
- bpython
- bpython3
- htop
- tree
- vdr-addon-acpiwakeup
- vim
- w-scan
#+END_SRC
** System pre-configuration
#+BEGIN_SRC yaml :tangle group_vars/all :mkdirp yes
@ -326,11 +328,11 @@ grub:
'{{ packages }}'
#+END_SRC
** nvidia-381 drivers
install nvidia-381 from ppa:graphics-drivers/ppa
** nvidia-387 drivers
install nvidia-387 from ppa:graphics-drivers/ppa
*** tasks
**** main.yml
#+BEGIN_SRC yaml :tangle roles/nvidia-381/tasks/main.yml :mkdirp yes :padline no
#+BEGIN_SRC yaml :tangle roles/nvidia-387/tasks/main.yml :mkdirp yes :padline no
---
- name: add ppa:graphics-drivers/ppa
@ -339,13 +341,13 @@ install nvidia-381 from ppa:graphics-drivers/ppa
state: present
update_cache: yes
- name: install nvidia-381 and other required packages
- name: install nvidia-387 and other required packages
apt:
name: '{{ item }}'
state: present
install_recommends: no
with_items:
- nvidia-381
- nvidia-387
- nvidia-settings
#+END_SRC
** yavdr-common
@ -480,6 +482,7 @@ yavdr-common executes the following tasks:
install_recommends: no
with_items:
- anacron
- acl
- at
- bash-completion
#- biosdevname # caution: may change device names after a minimal installation!
@ -1102,7 +1105,7 @@ Section "Monitor"
EndSection
#+END_SRC
**** DONE Start X-server with debug-output
**** DONE Start X-server with debug-output :noexport:
#+BEGIN_SRC conf
# /etc/systemd/system/x-debug@.service
[Unit]
@ -1411,9 +1414,9 @@ b'\xde\xad\xbe\xef'
#+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/main.yml :mkdirp yes :padline no
---
# file: roles/yavdr-xorg/tasks/main.yml
- include: setup-xorg.yml tags=install,update
- include: detect-xorg.yml tags=xorg:detect,install
- include: 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
#+END_SRC
#+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/setup-xorg.yml :mkdirp yes :padline no
@ -1465,24 +1468,31 @@ b'\xde\xad\xbe\xef'
groups: '{{ vdr.group }}'
append: yes
- name: install packages for xorg
- name: apt | install packages for xorg
apt:
name: '{{ item }}'
state: present
with_items:
- xorg
- xserver-xorg-video-all
- xserver-xorg-input-all
- xlogin
- xterm
- xorg
- xserver-xorg-input-all
- xserver-xorg-video-all
- openbox
- tmux
- kiosk-browser
- read-edid
- python3-dbus2vdr
- python3-yavdrfrontend
- read-edid
- tmux
- vdr-plugin-desktop
#- yavdr-xorg
- name: apt | install desktop programs
apt:
name: '{{ item }}'
state: present
with_items:
- xterm
- firefox
- kiosk-browser
#+END_SRC
#+BEGIN_SRC yaml :tangle roles/yavdr-xorg/tasks/detect-xorg.yml :mkdirp yes :padline no
@ -1654,7 +1664,6 @@ b'\xde\xad\xbe\xef'
**** xorg
***** x-verbose@.service
#+BEGIN_SRC conf :tangle "roles/yavdr-xorg/templates/systemd/system/x-verbose@.service.j2" :padline no
---
# file: roles/yavdr-xorg/templates/systemd/system/x-verbose@.service.j2
[Unit]
Description=X with verbose logging on %I
@ -1663,12 +1672,12 @@ Before=graphical.target
[Service]
Type=forking
ExecStart=/usr/bin/x-daemon -logverbose 6 -noreset %I -config /etc/X11/xorg-debug.conf
ExecStart=/usr/bin/x-daemon -logverbose 6 -noreset %I -config /etc/X11/xorg-verbose.conf
#+END_SRC
***** Drop-in snippet for x@.service
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/x@service.d/xlogin.conf.j2 :mkdirp yes :padline no
[Unit]
Before=xlogin@{{ vdr.user }}
Before=xlogin@{{ vdr.user }}.service
#+END_SRC
#+BEGIN_SRC conf :tangle roles/yavdr-xorg/templates/user@666.service.d/x-dependency.conf.j2 :mkdirp yes :padline no
@ -3244,712 +3253,40 @@ Problem: woher kommt der Treiber (AFAIK noch nicht im Kernel)? Die Firmware soll
** kodi
*** tasks
**** Install KODI
#+BEGIN_SRC yaml :tangle roles/kodi/tasks/main.yml :mkdirp yes :padline no
- include: install-kodi.yml tags=install,update,kodi:install
- include: configure-kodi.yml tags=install,update,kodi:configure
#+END_SRC
#+BEGIN_SRC yaml :tangle roles/kodi/tasks/install-kodi.yml :mkdirp yes :padline no
---
- name: apt | install kodi packages
apt:
name: '{{ item }}'
state: present
install_recommends: no
with_items:
- kodi
- kodi-pvr-vdr-vnsi
- kodi-eventclients-xbmc-send
#+END_SRC
#+BEGIN_SRC yaml :tangle roles/kodi/tasks/configure-kodi.yml :mkdirp yes :padline no
- name: create kodi.service for the user session
template:
src: 'templates/kodi.service.j2'
dest: '{{ vdr.home }}/.config/systemd/user/kodi.service'
mode: 0644
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
- name: create kodi user directory
file:
dest: '{{ vdr.home }}/{{ item }}'
state: directory
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
mode: "0775"
with_items:
- .kodi
- .kodi/userdata
- .kodi/userdata/keymaps
- name: copy Lircmap.xml if it does not exist yet
copy:
dest: '{{ vdr.home }}/.kodi/userdata/Lircmap.xml'
src: 'files/userdata/Lircmap.xml'
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
mode: "0664"
force: no
- name: copy remote.xml if it does not exist yes
copy:
dest: '{{ vdr.home }}/.kodi/userdata/keymaps/remote.xml'
src: 'files/userdata/keymaps/remote.xml'
owner: '{{ vdr.user }}'
group: '{{ vdr.group }}'
mode: "0664"
force: no
# TODO: Add configuration files
#+END_SRC
***** main.yml
:PROPERTIES:
:UNNUMBERED: t
:END:
#+INCLUDE: "roles/kodi/tasks/main.yml" src yaml
***** install-kodi.yml
#+INCLUDE: "roles/kodi/tasks/install-kodi.yml" src yaml
***** configure-kodi.yml
#+INCLUDE: "roles/kodi/tasks/configure-kodi.yml" src yaml
*** templates
**** kodi.service
#+BEGIN_SRC conf :tangle roles/kodi/templates/kodi.service.j2 :mkdirp yes :padline no
[Unit]
Description=Start kodi in user session
This systemd unit for the user session starts (and stops) kodi.
#+INCLUDE: "roles/kodi/templates/kodi.service.j2" src conf
[Service]
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"
TimeoutStopSec=10
SuccessExitStatus=0 127
Restart=on-failure
#+END_SRC
*** files
Those configuration files provide a preconfiguration for kodi which overrides the system wide configuration
**** Lircmap.xml
#+BEGIN_SRC xml :tangle roles/kodi/files/userdata/Lircmap.xml :padline no :mkdirp yes
<lircmap>
<remote device="linux-input-layer">
<altname>cx23885_remote</altname>
<altname>devinput</altname>
<up>KEY_UP</up>
<down>KEY_DOWN</down>
<menu>KEY_MENU</menu>
<select>KEY_OK</select>
<back>KEY_ESC</back>
<left>KEY_LEFT</left>
<right>KEY_RIGHT</right>
<red>KEY_RED</red>
<green>KEY_GREEN</green>
<yellow>KEY_YELLOW</yellow>
<blue>KEY_BLUE</blue>
<zero>KEY_0</zero>
<one>KEY_1</one>
<two>KEY_2</two>
<three>KEY_3</three>
<four>KEY_4</four>
<five>KEY_5</five>
<six>KEY_6</six>
<seven>KEY_7</seven>
<eight>KEY_8</eight>
<nine>KEY_9</nine>
<info>KEY_INFO</info>
<play>KEY_PLAY</play>
<play>KEY_PLAYPAUSE</play>
<pause>KEY_PAUSE</pause>
<stop>KEY_STOP</stop>
<record>KEY_RECORD</record>
<forward>KEY_FASTFORWARD</forward>
<reverse>KEY_REWIND</reverse>
<skipplus>KEY_NEXT</skipplus>
<skipminus>KEY_BACK</skipminus>
<power>KEY_POWER2</power>
<channelplus>KEY_CHANNELUP</channelplus>
<channelminus>KEY_CHANNELDOWN</channelminus>
<title>KEY_PROG3</title>
<volumeplus>KEY_VOLUMEUP</volumeplus>
<volumeminus>KEY_VOLUMEDOWN</volumeminus>
<teletext>KEY_TEXT</teletext>
<mute>KEY_MUTE</mute>
<start>KEY_SELECT</start>
<subtitle>KEY_SUBTITLE</subtitle>
<audio>KEY_MODE</audio>
<mute>KEY_MUTE</mute>
<myvideo>KEY_VIDEO</myvideo>
<mymusic>KEY_AUDIO</mymusic>
<mypictures>KEY_IMAGES</mypictures>
<recordedtv>KEY_PVR</recordedtv>
<guide>KEY_EPG</guide>
<display>KEY_SCREEN</display>
<enter>KEY_PROG4</enter>
<playlist>KEY_ZOOM</playlist>
<livetv>KEY_CHANNEL</livetv>
<mytv>KEY_TV</mytv>
<liveradio>KEY_FN</liveradio>
</remote>
</lircmap>
#+END_SRC
This file allows to map keys sent by remotes via eventlircd (which uses the name ~devinput~) to kodi key names.
#+INCLUDE: "roles/kodi/files/userdata/Lircmap.xml" src nxml
**** keymaps
This file maps the keys defined in Lircmap.xml to actions within kodi.
***** remote.xml
#+BEGIN_SRC xml :tangle roles/kodi/files/userdata/keymaps/remote.xml :padline no :mkdirp yes
<!-- This file contains the mapping of keys (gamepad, remote, and keyboard) to actions within XBMC -->
<!-- The <global> section is a fall through - they will only be used if the button is not -->
<!-- used in the current window's section. Note that there is only handling -->
<!-- for a single action per button at this stage. -->
<!-- For joystick/gamepad configuration under linux/win32, see below as it differs from xbox -->
<!-- gamepads. -->
<!-- The format is: -->
<!-- <device> -->
<!-- <button>action</button> -->
<!-- </device> -->
<!-- To map keys from other remotes using the RCA protocol, you may add <universalremote> blocks -->
<!-- In this case, the tags used are <obc#> where # is the original button code (OBC) of the key -->
<!-- You set it up by adding a <universalremote> block to the window or <global> section: -->
<!-- <universalremote> -->
<!-- <obc45>Stop</obc45> -->
<!-- </universalremote> -->
<!-- To find out the OBC's of your remote, try enabling the <displayremotecodes> tag in AdvancedSettings.xml -->
<!-- Note that the action can be a built-in function. -->
<!-- eg <B>XBMC.ActivateWindow(MyMusic)</B> -->
<!-- would automatically go to My Music on the press of the B button. -->
<!-- Joysticks / Gamepads: -->
<!-- See the sample PS3 controller configuration below for the format. -->
<!-- -->
<!-- Joystick Name: -->
<!-- Do 'cat /proc/bus/input/devices' or see your xbmc log file to find the names of -->
<!-- detected joysticks. The name used in the configuration should match the detected name. -->
<!-- -->
<!-- Button Ids: -->
<!-- 'id' is the button ID used by SDL. Joystick button ids of connected joysticks appear -->
<!-- in xbmc.log when they are pressed. Use your log to map custom buttons to actions. -->
<!-- -->
<!-- Axis Ids / Analog Controls -->
<!-- Coming soon. -->
<keymap>
<global>
<universalremote>
<obc150>XBMC.ejecttray()</obc150>
<obc151>Playlist</obc151>
</universalremote>
<remote>
<play>PlayPause</play>
<pause>Pause</pause>
<stop>Stop</stop>
<forward>FastForward</forward>
<reverse>Rewind</reverse>
<left>Left</left>
<right>Right</right>
<up>Up</up>
<down>Down</down>
<select>Select</select>
<pageplus>PageUp</pageplus>
<pageminus>PageDown</pageminus>
<back>ParentDir</back>
<menu>PreviousMenu</menu>
<title>ContextMenu</title>
<info>Info</info>
<skipplus>SkipNext</skipplus>
<skipminus>SkipPrevious</skipminus>
<display>FullScreen</display>
<start>PreviousMenu</start>
<record>Screenshot</record>
<volumeplus>VolumeUp</volumeplus>
<volumeminus>VolumeDown</volumeminus>
<mute>Mute</mute>
<power>XBMC.Quit()</power>
<myvideo>XBMC.ActivateWindow(MyVideos)</myvideo>
<mymusic>XBMC.ActivateWindow(MyMusic)</mymusic>
<mypictures>XBMC.ActivateWindow(MyPictures)</mypictures>
<!--- <mytv>XBMC.ActivateWindow(Home)</mytv> -->
<recordedtv>XBMC.ActivateWindowAndFocus(MyPVR, 34,0, 13,0)</recordedtv>
<!-- PVR: EPG -->
<guide>XBMC.ActivateWindowAndFocus(MyPVR, 31,0, 10,0)</guide>
<!-- PVR: Channellist -->
<livetv>XBMC.ActivateWindowAndFocus(MyPVR, 32,0, 11,0)</livetv>
<!-- PVR: Radio -->
<liveradio>XBMC.ActivateWindowAndFocus(MyPVR, 33,0, 12,0)</liveradio>
<red>XBMC.ActivateWindow(Home)</red>
<yellow>XBMC.ActivateWindow(MyVideos)</yellow>
<green>XBMC.ActivateWindow(MyMusic)</green>
<!-- <blue>XBMC.ActivateWindow(MyPictures)</blue> -->
<zero>Number0</zero>
<one>Number1</one>
<two>JumpSMS2</two>
<three>JumpSMS3</three>
<four>JumpSMS4</four>
<five>JumpSMS5</five>
<six>JumpSMS6</six>
<seven>JumpSMS7</seven>
<eight>JumpSMS8</eight>
<nine>JumpSMS9</nine>
<audio>AudioNextLanguage</audio>
<subtitle>ShowSubtitles</subtitle>
<enter>FullScreen</enter>
<blue>ContextMenu</blue>
<playlist>XBMC.ActivateWindow(MyMusicPlaylist)</playlist>
</remote>
</global>
<Home>
<remote>
<menu>XBMC.Skin.ToggleSetting(HomeViewToggle)</menu>
<info>XBMC.ActivateWindow(SystemInfo)</info>
<clear>XBMC.ActivateWindow(Weather)</clear>
<blue>XBMC.ActivateWindow(Settings)</blue>
<red>FullScreen</red>
<back>FullScreen</back>
</remote>
</Home>
<MyFiles>
<remote>
<clear>Delete</clear>
</remote>
</MyFiles>
<MyMusicPlaylist>
<remote>
<back>Playlist</back> <!-- Close playlist -->
<clear>Delete</clear>
</remote>
</MyMusicPlaylist>
<MyMusicPlaylistEditor>
<remote>
<zero>Queue</zero>
</remote>
</MyMusicPlaylistEditor>
<MyMusicFiles>
<remote>
<zero>Queue</zero>
<star>Queue</star>
<start>ContextMenu</start>
</remote>
</MyMusicFiles>
<MyMusicLibrary>
<remote>
<zero>Queue</zero>
<star>Queue</star>
</remote>
</MyMusicLibrary>
<FullscreenVideo>
<remote>
<back>FullScreen</back>
<zero>Number0</zero>
<one>Number1</one>
<two>Number2</two>
<three>Number3</three>
<four>Number4</four>
<five>Number5</five>
<six>Number6</six>
<seven>Number7</seven>
<eight>Number8</eight>
<nine>Number9</nine>
<left>Rewind</left>
<right>FastForward</right>
<up>Play</up>
<down>Pause</down>
<yellow>StepForward</yellow>
<green>StepBack</green>
<blue>CodecInfo</blue>
<menu>OSD</menu>
<start>OSD</start>
<info>XBMC.ActivateWindow(PVROSDChannels)</info>
<title>XBMC.ActivateWindow(PVROSDChannels)</title>
<display>AspectRatio</display>
<select>Info</select>
<teletext>XBMC.ActivateWindow(Teletext)</teletext>
<channelplus>SkipNext</channelplus>
<channelminus>SkipPrevious</channelminus>
<record>XBMC.PlayerControl(Record)</record>
</remote>
</FullscreenVideo>
<FullscreenInfo>
<remote>
<back>FullScreen</back>
<left>Rewind</left>
<right>FastForward</right>
<up>Play</up>
<down>Pause</down>
<yellow>StepForward</yellow>
<green>StepBack</green>
<display>AspectRatio</display>
<info>CodecInfo</info>
<select>Close</select>
<menu>OSD</menu>
</remote>
</FullscreenInfo>
<PlayerControls>
<remote>
<back>Close</back>
<menu>Close</menu>
</remote>
</PlayerControls>
<Visualisation>
<universalremote>
<obc151>XBMC.ActivateWindow(MyMusicPlaylist)</obc151>
</universalremote>
<remote>
<red>FullScreen</red>
<yellow>AnalogSeekForward</yellow>
<green>AnalogSeekBack</green>
<blue>CodecInfo</blue>
<left>Rewind</left>
<right>FastForward</right>
<pageplus>SkipNext</pageplus>
<pageminus>SkipPrevious</pageminus>
<up>Play</up>
<down>Pause</down>
<info>XBMC.ActivateWindow(PVROSDChannels)</info>
<back>XBMC.ActivateWindow(MyMusicPlaylist)</back>
<select>Info</select>
<menu>XBMC.ActivateWindow(MusicOSD)</menu>
<start>XBMC.ActivateWindow(MusicOSD)</start>
</remote>
</Visualisation>
<MusicOSD>
<remote>
<back>Close</back>
<menu>Close</menu>
<start>Close</start>
<info>CodecInfo</info>
</remote>
</MusicOSD>
<VisualisationSettings>
<remote>
<back>Close</back>
<menu>Close</menu>
</remote>
</VisualisationSettings>
<VisualisationPresetList>
<remote>
<back>Close</back>
<menu>Close</menu>
</remote>
</VisualisationPresetList>
<SlideShow>
<remote>
<zero>ZoomNormal</zero>
<one>ZoomLevel1</one>
<two>ZoomLevel2</two>
<three>ZoomLevel3</three>
<four>ZoomLevel4</four>
<five>ZoomLevel5</five>
<six>ZoomLevel6</six>
<seven>ZoomLevel7</seven>
<eight>ZoomLevel8</eight>
<nine>ZoomLevel9</nine>
<info>CodecInfo</info>
<pageplus>ZoomIn</pageplus>
<pageminus>ZoomOut</pageminus>
<select>Rotate</select>
<up>Pause</up>
<down>Play</down>
<back>PreviousMenu</back>
</remote>
</SlideShow>
<ScreenCalibration>
<remote>
<select>NextCalibration</select>
<enter>NextCalibration</enter>
<zero>ResetCalibration</zero>
<display>NextResolution</display>
<xbox>NextResolution</xbox>
</remote>
</ScreenCalibration>
<GUICalibration>
<remote>
<select>NextCalibration</select>
<enter>NextCalibration</enter>
<zero>ResetCalibration</zero>
</remote>
</GUICalibration>
<SelectDialog>
<remote>
<back>Close</back>
</remote>
</SelectDialog>
<VideoOSD>
<remote>
<back>PreviousMenu</back>
<menu>Close</menu>
<start>Close</start>
</remote>
</VideoOSD>
<VideoMenu>
<remote>
<menu>OSD</menu>
<back>PreviousMenu</back>
<info>Info</info>
<title>CodecInfo</title>
<zero>Number0</zero>
<one>Number1</one>
<two>Number2</two>
<three>Number3</three>
<four>Number4</four>
<five>Number5</five>
<six>Number6</six>
<seven>Number7</seven>
<eight>Number8</eight>
<nine>Number9</nine>
</remote>
</VideoMenu>
<OSDVideoSettings>
<remote>
<back>Close</back>
<menu>Close</menu>
<start>Close</start>
</remote>
</OSDVideoSettings>
<OSDAudioSettings>
<remote>
<back>Close</back>
<menu>Close</menu>
<start>Close</start>
</remote>
</OSDAudioSettings>
<VideoBookmarks>
<remote>
<back>Close</back>
<menu>Close</menu>
<start>Close</start>
<zero>Delete</zero>
</remote>
</VideoBookmarks>
<MyVideoLibrary>
<remote>
<zero>Queue</zero>
<clear>Delete</clear>
<green>ToggleWatched</green>
<yellow>Queue</yellow>
</remote>
</MyVideoLibrary>
<MyVideoFiles>
<remote>
<zero>Queue</zero>
<star>Queue</star>
<blue>ContextMenu</blue>
<green>ToggleWatched</green>
<yellow>Queue</yellow>
</remote>
</MyVideoFiles>
<MyPictures>
<remote>
<zero>Queue</zero>
<star>Queue</star>
<start>ContextMenu</start>
</remote>
</MyPictures>
<MyVideoPlaylist>
<remote>
<back>Playlist</back> <!-- Close playlist -->
<clear>Delete</clear>
<zero>Delete</zero>
</remote>
</MyVideoPlaylist>
<VirtualKeyboard>
<remote>
<back>BackSpace</back>
<star>Shift</star>
<hash>Symbols</hash>
<zero>Number0</zero>
<one>Number1</one>
<two>Number2</two>
<three>Number3</three>
<four>Number4</four>
<five>Number5</five>
<six>Number6</six>
<seven>Number7</seven>
<eight>Number8</eight>
<nine>Number9</nine>
<pageminus>CursorLeft</pageminus>
<pageplus>CursorRight</pageplus>
</remote>
</VirtualKeyboard>
<ContextMenu>
<remote>
<blue>Close</blue>
<back>Close</back>
</remote>
</ContextMenu>
<FileStackingDialog>
<remote>
<back>Close</back>
</remote>
</FileStackingDialog>
<Scripts>
<remote>
<info>XBMC.ActivateWindow(ScriptsDebugInfo)</info>
</remote>
</Scripts>
<ScriptsDebugInfo>
<remote>
<info>Info</info> <!-- clears debug python info -->
</remote>
</ScriptsDebugInfo>
<NumericInput>
<remote>
<zero>Number0</zero>
<one>Number1</one>
<two>Number2</two>
<three>Number3</three>
<four>Number4</four>
<five>Number5</five>
<six>Number6</six>
<seven>Number7</seven>
<eight>Number8</eight>
<nine>Number9</nine>
<back>BackSpace</back>
</remote>
</NumericInput>
<Weather>
<remote>
<back>PreviousMenu</back>
</remote>
</Weather>
<Settings>
<remote>
<back>PreviousMenu</back>
</remote>
</Settings>
<MyPicturesSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</MyPicturesSettings>
<MyProgramsSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</MyProgramsSettings>
<MyWeatherSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</MyWeatherSettings>
<MyMusicSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</MyMusicSettings>
<SystemSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</SystemSettings>
<MyVideosSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</MyVideosSettings>
<NetworkSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</NetworkSettings>
<AppearanceSettings>
<remote>
<back>PreviousMenu</back>
</remote>
</AppearanceSettings>
<Profiles>
<remote>
<back>PreviousMenu</back>
</remote>
</Profiles>
<systeminfo>
<remote>
<back>PreviousMenu</back>
</remote>
</systeminfo>
<shutdownmenu>
<remote>
<back>PreviousMenu</back>
</remote>
</shutdownmenu>
<submenu>
<remote>
<back>PreviousMenu</back>
</remote>
</submenu>
<MusicInformation>
<remote>
<back>Close</back>
</remote>
</MusicInformation>
<MovieInformation>
<remote>
<back>Close</back>
</remote>
</MovieInformation>
<LockSettings>
<remote>
<menu>Close</menu>
<back>PreviousMenu</back>
</remote>
</LockSettings>
<ProfileSettings>
<remote>
<menu>Close</menu>
<back>PreviousMenu</back>
</remote>
</ProfileSettings>
<PictureInfo>
<remote>
<skipplus>NextPicture</skipplus>
<skipminus>PreviousPicture</skipminus>
<info>Close</info>
<back>Close</back>
</remote>
</PictureInfo>
<Teletext>
<remote>
<zero>number0</zero>
<one>number1</one>
<two>number2</two>
<three>number3</three>
<four>number4</four>
<five>number5</five>
<six>number6</six>
<seven>number7</seven>
<eight>number8</eight>
<nine>number9</nine>
<red>Red</red>
<green>Green</green>
<yellow>Yellow</yellow>
<blue>Blue</blue>
<info>Info</info>
<back>Close</back>
<menu>Close</menu>
<start>Close</start>
<teletext>Close</teletext>
</remote>
</Teletext>
<Favourites>
<remote>
<back>Close</back>
</remote>
</Favourites>
</keymap>
#+END_SRC
#+INCLUDE: "roles/kodi/files/userdata/keymaps/remote.xml" src xml
** dvd
*** tasks
**** install libdvd-pkg, allow programs to eject optical media
#+BEGIN_SRC yaml :tangle roles/dvd/tasks/main.yml :mkdirp yes :padline no
---
# file: roles/dvd/tasks/main.yml
- name: preconfigure libdvd-pkg
shell: |
echo 'libdvd-pkg libdvd-pkg/post-invoke_hook-install boolean true' | debconf-set-selections
echo 'libdvd-pkg libdvd-pkg/build boolean true' | debconf-set-selections
- name: apt | install libdvd-pkg
apt:
name: '{{ item }}'
state: present
install_recommends: no
with_items:
- libdvd-pkg
- name: change udev rule to allow KODI to eject optical disks
shell: sed 's/--lock-media //' /lib/udev/rules.d/60-cdrom_id.rules > /etc/udev/rules.d/60-cdrom_id.rules
args:
creates: /etc/udev/rules.d/60-cdrom_id.rules
#+END_SRC
:PROPERTIES:
:UNNUMBERED: t
:END:
#+INCLUDE: "roles/dvd/tasks/main.yml" src yaml
** template-test
:PROPERTIES:
:EXPORT: nil
:END:
#+BEGIN_SRC yaml :tangle roles/template-test/tasks/main.yml :padline no
---

View File

@ -46,12 +46,13 @@ samba:
windows_compatible: '{{ vdr.safe_dirnames }}' # set to true to disable unix extensions, enable follow symlinks and wide links
# additional packages you want to install
extra_packages:
- vim
- htop
- tree
- w-scan
- bpython
- bpython3
- htop
- tree
- vdr-addon-acpiwakeup
- vim
- w-scan
frontend: vdr
#system:
# shutdown: poweroff

View File

@ -1,2 +1,2 @@
[localhost]
[local]
localhost connection=local

View File

@ -27,7 +27,7 @@
mode: "0664"
force: no
- name: copy remote.xml if it does not exist yes
- name: copy remote.xml if it does not exist yet
copy:
dest: '{{ vdr.home }}/.kodi/userdata/keymaps/remote.xml'
src: 'files/userdata/keymaps/remote.xml'

View File

@ -6,11 +6,11 @@
state: present
update_cache: yes
- name: install nvidia-381 and other required packages
- name: install nvidia-387 and other required packages
apt:
name: '{{ item }}'
state: present
install_recommends: no
with_items:
- nvidia-381
- nvidia-387
- nvidia-settings

View File

@ -48,6 +48,7 @@
install_recommends: no
with_items:
- anacron
- acl
- at
- bash-completion
#- biosdevname # caution: may change device names after a minimal installation!

View File

@ -1,5 +1,5 @@
---
# file: roles/yavdr-xorg/tasks/main.yml
- include: setup-xorg.yml tags=install,update
- include: detect-xorg.yml tags=xorg:detect,install
- include: 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

@ -46,21 +46,28 @@
groups: '{{ vdr.group }}'
append: yes
- name: install packages for xorg
- name: apt | install packages for xorg
apt:
name: '{{ item }}'
state: present
with_items:
- xorg
- xserver-xorg-video-all
- xserver-xorg-input-all
- xlogin
- xterm
- xorg
- xserver-xorg-input-all
- xserver-xorg-video-all
- openbox
- tmux
- kiosk-browser
- read-edid
- python3-dbus2vdr
- python3-yavdrfrontend
- read-edid
- tmux
- vdr-plugin-desktop
#- yavdr-xorg
- name: apt | install desktop programs
apt:
name: '{{ item }}'
state: present
with_items:
- xterm
- firefox
- kiosk-browser

View File

@ -1,4 +1,3 @@
---
# file: roles/yavdr-xorg/templates/systemd/system/x-verbose@.service.j2
[Unit]
Description=X with verbose logging on %I
@ -7,4 +6,4 @@ Before=graphical.target
[Service]
Type=forking
ExecStart=/usr/bin/x-daemon -logverbose 6 -noreset %I -config /etc/X11/xorg-debug.conf
ExecStart=/usr/bin/x-daemon -logverbose 6 -noreset %I -config /etc/X11/xorg-verbose.conf

View File

@ -1,2 +1,2 @@
[Unit]
Before=xlogin@{{ vdr.user }}
Before=xlogin@{{ vdr.user }}.service

View File

@ -17,4 +17,4 @@
tags:
- always
handlers:
- include: handlers/main.yml
- import_tasks: handlers/main.yml

View File

@ -9,6 +9,7 @@
- yavdr-common # install and configure the basic system
- autoinstall-ubuntu-drivers # use ubuntu-drivers to install proprietary dirvers
# (e.g. nvidia, virtualbox)
# - nvidia-387 # install very recent nvidia-387 from ppa:graphics-drivers/ppa
- vdr # install vdr and related packages
- yavdr-network # enable network client capabilities
- samba-install # install samba server
@ -31,4 +32,4 @@
- always
handlers:
- include: handlers/main.yml
- import_tasks: handlers/main.yml