Ich hätte gerne den Mauszeiger im Bild ausgeblendet und auch die Textmeldung in Deutsch.
[0.7] Frontend detached. Mauszeiger und Text in Englisch
-
-
Die Bildchen, die yavdr-frontend anzeigt, kann man konfigurieren:
Code: /etc/yavdr-frontend/config.yml
Alles anzeigenbackgrounds: detached: path: "/usr/share/yavdr/images/yaVDR_background_detached.jpg" Fill: True normal: path: "/usr/share/yavdr/images/yavdr_logo.png" fill: False prepare_shutdown: path: "/usr/share/yavdr/images/yaVDR_background_prepare_shutdown.png" Fill: True shutdown: path: "/usr/share/yavdr/images/yaVDR_background_shutdown.png" Fill: True
Den Cursor könnte man mit unclutter-xfixes verstecken (das war bei früheren yaVDR-Versionen mit der originalen Version von unclutter gelöst, die sich nicht immer optimal verhalten hat) - das könnte man z.B. in der /var/lib/vdr/.config/openbox/autostart nach feh starten lassen.
-
Den Text dynamisch ins Bild zu packen ginge auch (könnte man z.B. vom Playbook mit erledigen lassen), aber dann handelt man sich u.U. die ganzen Probleme mit der Textformatierung ein, wenn die Übersetzung zu lang wird usw. - aber wenn jemand da eine Lösung hat, die das zuverlässig handeln kann, habe ich nichts dagegen.
Mit https://pillow.readthedocs.io/…geDraw.ImageDraw.textsize könnte man zumindest schon mal an die Bounding-Box für den Text kommen und dann schauen, dass man einen String möglichst gleichmäßig auf mehrere Zeilen verteilt, wenn er von der Breite her nicht passt. Ich schau mir das mal bei Gelegenheit an, wenn ich die verbleibenden Probleme mit den DBus-Signalen in dasbus2vdr gelöst habe.
-
Das mit der Maus will auch nicht:
Code
Alles anzeigenJun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:yaVDRFrontend:stop current_frontend: VDR-Frontend Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:yaVDRFrontend:called stop(extern=True) Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:yaVDRFrontend:set_background with options path: /usr/share/yavdr/images/yaVDR_background_prepare_s> Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:yaVDRFrontend:stop: current frontend is VDR-Frontend Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:softhddevice:check_state(): got status code: 910 Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:softhddevice:status: softhddevice is attached Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:softhddevice:is_running: True Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:yaVDRFrontend:self.frontends[0].is_running: True Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:yaVDRFrontend:stop(): current frontend is running Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:softhddevice:check_state(): got status code: 910 Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:softhddevice:check_state(): got status code: 910 Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:softhddevice:status: softhddevice is attached Jun 08 17:10:27 vdr01 vdr[1470]: [5011] [softhddev]stopping Ogl Thread svdrp DETA Jun 08 17:10:27 vdr01 vdr[1470]: [5011] [softhddev]stopping OpenGL Worker Thread Jun 08 17:10:27 vdr01 vdr[1470]: [4964] [softhddev]Cleaning up OpenGL stuff Jun 08 17:10:27 vdr01 vdr[1470]: [4964] [softhddev]OpenGL Worker Thread Ended Jun 08 17:10:27 vdr01 vdr[1470]: [4964] oglThread thread ended (pid=1470, tid=4964) Jun 08 17:10:27 vdr01 vdr[1470]: [5011] [softhddev]OpenGL Worker Thread stopped Jun 08 17:10:27 vdr01 vdr[1470]: audio/alsa: using device 'pulse' Jun 08 17:10:27 vdr01 vdr[1470]: audio/alsa: start delay 336ms Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:softhddevice:change_state with command deta and options "" to detached Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:softhddevice:check_state(): got status code: 912 Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:softhddevice:softhddevice successfully detached Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:yaVDRFrontend:caller VDR-Frontend has been stopped Jun 08 17:10:27 vdr01 yavdr-frontend[1543]: DEBUG:yaVDRFrontend:stop() got result (True, 'OK')
Autostart hab ich folgendes eingetragen:
Paket ist natürlich installiert.
Auf der Kommandozeile geht es auch nicht
Coderoot@vdr01:~# /usr/bin/unclutter-xfixes --fork --timeout=1 [src/util.c:5] ERROR: Received error: Failed to connect to the X server. unclutter-xfixes: Failed to connect to the X server.
Naja... -
Mit dem Bild würde ich einfach für jede Sprache eines erstellen und entsprechend eintragen. Das müsste dann doch auch über das Playbook zu lösen sein
-
/usr/bin/unclutter-xfixes --fork --timeout=1
Da darf kein = drin sein - so klappt es bei mir: unclutter --timeout 1 --fork
Auf der Kommandozeile geht es auch nicht
Da muss man zuvor das DISPLAY passend setzen, also z.B. export DISPLAY=:0
-
-
Zum Zeichnen eines Hintergrunds mit beliebigem Text kannst du mal folgendes probieren (benötigt das Paket python3-pil) :
Python: /usr/local/bin/create_bg_with_message
Alles anzeigen#!/usr/bin/env python3 import argparse import sys import textwrap from collections import namedtuple from PIL import Image, ImageDraw, ImageFont Size = namedtuple("Size", "width, height") parser = argparse.ArgumentParser() parser.add_argument("-s", "--size", default="1920x1080", help="size of the background (default: 1920x1080)") parser.add_argument("-l", "--logo", default="/usr/share/yavdr/images/yavdr_logo.png", help="logo to draw centered (default: /usr/share/yavdr/images/yavdr_logo.png)") parser.add_argument("-o", "--output", default="background_detached.png", help="path of the created image (default: backgroud_detached.png)") parser.add_argument("text", default="Frontend detached. Press any key on your remote to continue...", help="text to write at the bottom of the image") args = parser.parse_args() bg_size = Size(*(int(x) for x in args.size.split("x"))) font_size = bg_size.width // 30 spacing = 4 img = Image.new("RGB", bg_size, color=(0, 0, 0)) text = args.text # paste the logo in the center of the image with Image.open(args.logo) as logo: logo_size = Size(*logo.size) img.paste(logo, ((bg_size.width - logo_size.width) // 2, (bg_size.height - logo_size.height) // 2)) # add the text centered and multi-line if necessary draw = ImageDraw.Draw(img) para = textwrap.wrap(text, font_size) longest_line = max(para, key=lambda x: len(x)) text = "\n".join(para) font = ImageFont.truetype("Ubuntu-R.ttf", 64) txt_size = Size(*font.getsize(longest_line)) x_offset = (bg_size.width - txt_size.width) // 2 y_offset = bg_size.height - (spacing + txt_size.height) * len(para) draw.multiline_text((x_offset, y_offset), text, fill=(220, 220, 220), font=font, anchor='ms', align="center") img.save(args.output)
Dann kann man sich z.B. so ein Bild mit dem gewünschten Text erstellen lassen:
create_bg_with_message -o /tmp/background_detached.png -s 1920x1080 "Frontend abgeschaltet. Bitte drücken Sie eine Taste auf der Fernbedienung, um es wieder anzuschalten..."
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!