Автор Тема: Вывести надписи на рабочий стол  (Прочитано 692 раз)

Оффлайн zrpg

  • Давно тут
  • **
  • Сообщений: 72
Здравствуйте.

Подскажите пожалуйста программку, которая может вывести скажем просмотр HTML-файла (или других раскрашенных надписей) поверх рабочего стола?
PS: То есть что-то типа conky, но у него другое применение.
Simply Linux 10.1 x86_64. Версии программ из p10. Ядро 5.10.152-std-def-alt1

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: Вывести надписи на рабочий стол
« Ответ #1 : 26.12.2022 20:38:35 »
aosd-cat?

Оффлайн zrpg

  • Давно тут
  • **
  • Сообщений: 72
Re: Вывести надписи на рабочий стол
« Ответ #2 : 26.12.2022 20:59:57 »
Спасибо. Но это не то.
Нужно чтобы текст всегда был на рабочем столе, то есть под всеми окнами.
Simply Linux 10.1 x86_64. Версии программ из p10. Ядро 5.10.152-std-def-alt1

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: Вывести надписи на рабочий стол
« Ответ #3 : 26.12.2022 22:27:50 »
Нужно чтобы текст всегда был на рабочем столе, то есть под всеми окнами.

дак напишите его прямо на обоях

например, на входе обои wall-in.jpeg

convert -size 640x480 xc:none  -font "FreeMono" -pointsize 45 -fill red -annotate +30+30 "Привед, медвед!" image.png; composite -gravity center image.png wall-in.jpeg wall-out.jpeg

превращаются в wall-out.jpeg с нужной надписью :)

Оффлайн zrpg

  • Давно тут
  • **
  • Сообщений: 72
Re: Вывести надписи на рабочий стол
« Ответ #4 : 27.12.2022 18:50:14 »
Спасибо.
Тогда это внесёт изменения в авторское изображение. Поэтому хотелось именно поверх, то есть что-то типа conky.

Может можно как-нибудь HTML-страницу вставить как рабочий стол? Как в Windows.
« Последнее редактирование: 27.12.2022 19:04:41 от zrpg »
Simply Linux 10.1 x86_64. Версии программ из p10. Ядро 5.10.152-std-def-alt1

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: Вывести надписи на рабочий стол
« Ответ #5 : 27.12.2022 20:05:58 »
если кеды, то пробуйте https://store.kde.org/p/1324580/


Оффлайн zrpg

  • Давно тут
  • **
  • Сообщений: 72
Re: Вывести надписи на рабочий стол
« Ответ #6 : 27.12.2022 20:24:14 »
Xfce. Гуглил, похоже для него такого нет.
Simply Linux 10.1 x86_64. Версии программ из p10. Ядро 5.10.152-std-def-alt1

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: Вывести надписи на рабочий стол
« Ответ #7 : 27.12.2022 20:29:20 »
Xfce. Гуглил, похоже для него такого нет.

переезжайте на кеды :)

Оффлайн zrpg

  • Давно тут
  • **
  • Сообщений: 72
Re: Вывести надписи на рабочий стол
« Ответ #8 : 27.12.2022 21:09:44 »
Ну да, из-за одной надписи, сразу на кеды ;-D

Ладно, значит попробуем conky.

Попробовал, не загружается ни один шрифт.
Спойлер
conky.config = {
own_window_transparent = true,
own_window_argb_visual = true,
}

conky.text = [[
${font Monospace Regular}Font
${font :size=7}Font
${font Droid Sans}${time %H:%M:%S}
Спойлер
conky: '/home/evg/.config/conky.conf' modified, reloading...
conky: desktop window (1200007) is subwindow of root window (264)
conky: drawing to desktop window
conky: can't load font 'Monospace Regular'
conky: can't load font 'Monospace Regular'
conky: can't load font ':size=7'
conky: can't load font ':size=7'
conky: can't load font 'Droid Sans'
conky: can't load font 'Droid Sans'

Может кто-нибудь работал с conky. Подскажите пожалуйста что ему надо?
Simply Linux 10.1 x86_64. Версии программ из p10. Ядро 5.10.152-std-def-alt1

Оффлайн reiss

  • Давно тут
  • **
  • Сообщений: 205
Re: Вывести надписи на рабочий стол
« Ответ #9 : 28.12.2022 06:43:13 »
Может кто-нибудь работал с conky
Я работал. Но шрифтами не заморачивались. Конфиг:
%
#disable_auto_reload
alignment top_right
background no
border_width 1
#cpu_avg_samples 10
default_color grey
default_outline_color black
default_shade_color black
draw_borders yes
draw_graph_borders yes
draw_outline no
draw_shades no
use_xft yes
xftfont Arial:size=14
gap_x 20
gap_y 20
double_buffer yes
#net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no
own_window yes
own_window_transparent false
own_window_color '171717'
own_window_argb_value 50
own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
stippled_borders 0
update_interval 1
uppercase no
use_spacer none
show_graph_scale no
show_graph_range no
minimum_size 150 100
own_window_argb_visual yes
short_units yes
update_interval 300

TEXT
${color green} Имя ПК: ${color orange} ${nodename_short}
${color green} Aдрес ПК: ${color orange}${exec ifconfig | grep 10.174 | cut -c28-33}
${hr}
${color green} Телефон ИТ отдела:
${color orange} 354-64-20 ${color green}  внутренний ${color orange}333


Оффлайн zrpg

  • Давно тут
  • **
  • Сообщений: 72
Re: Вывести надписи на рабочий стол
« Ответ #10 : 28.12.2022 11:55:04 »
Конфиг:
Похоже это уже старый конфиг.
Теперь конфиг выглядит вот-так
Спойлер
conky.config = {
    background = false, --не запускать как духа :) (daemon)

    own_window = true, --собственное окно
    own_window_type = 'desktop', --тип окна
    own_window_transparent = true, --прозрачность 1
    own_window_argb_visual = true, --прозрачность 2
    update_interval = 1.0, --интервал обновления
    double_buffer = true, --чтобы не мелькало при обновлении

    maximum_width = 1000, --максимальная ширина окна
    gap_x = 60, --смещение окна по горизонтали
    gap_y = 60, --смещение окна по вертикали

    use_xft = true, --использовать сглаженные шрифты
    font = 'DejaVu Sans Mono:size=20', --шрифт и размер шрифта по умолчанию
    default_color = 'white', --по умолчанию цвет текста белый
    draw_shades = false, --не рисовать тени
}

conky.text = [[
#заданный шрифт и размер шрифта
${font Monospace:size=16}Однажды в студённую зимнюю пору,
#задан только размер шрифта, conky не ругается
${font :size=24}Я из лесу вышел, был сильный мороз.
${color #ff0000}Гляжу поднимается медленно в гору,$color
#так тоже можно задавать
${font Monospace Regular:size=12}Лошадка везущая хворосту воз.
$hr
${font Droid Sans:size=12}${time %H:%M:%S}
]]
Разобрался, всё заработало. И обои остались целыми.
Всем спасибо!

Добавлено: рано обрадовался. Шрифты всё равно не работают. Скачал шрифт, положил его в папку ~/.fonts. Кешировал. Другие программы его видят, а conky нет.
И ни на что не ругается.
« Последнее редактирование: 28.12.2022 12:37:47 от zrpg »
Simply Linux 10.1 x86_64. Версии программ из p10. Ядро 5.10.152-std-def-alt1

Оффлайн zrpg

  • Давно тут
  • **
  • Сообщений: 72
Re: Вывести надписи на рабочий стол
« Ответ #11 : 28.12.2022 12:59:09 »
Сам шрифт работает и размер тоже, не работает его написание. То есть не получается сделать полужирным или наклонным.
Пробовал так:
${font Droid Serif,bold:size=20}
${font Droid Serif Bold:size=20}

Разобрался методом тыка. Вот так надо
${font Droid Serif:size=20:bold}
Точно также и italic. А вот как сделать bold italic одновременно я не понял.
« Последнее редактирование: 28.12.2022 13:10:33 от zrpg »
Simply Linux 10.1 x86_64. Версии программ из p10. Ядро 5.10.152-std-def-alt1

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 486
  • ненужная строка
    • Найдётся всё
Re: Вывести надписи на рабочий стол
« Ответ #12 : 28.12.2022 16:17:30 »
Подскажите пожалуйста программку, которая может вывести скажем просмотр HTML-файла (или других раскрашенных надписей) поверх рабочего стола?
https://packages.altlinux.org/ru/sisyphus/srpms/activate-linux/ , но он не собран для p10.
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн zrpg

  • Давно тут
  • **
  • Сообщений: 72
Re: Вывести надписи на рабочий стол
« Ответ #13 : 28.12.2022 18:31:49 »
но он не собран для p10.
Это водяной знак, думаю не то, или опять вносит изменения в картинку рабочего стола (обои)

В предыдущем варианте, conky пропадает с экрана при щелчке мышью по рабочему столу.
Лучше использовать вот так
  own_window = true, --собственное окно
  own_window_type = 'normal', --тип окна
  own_window_hints = 'undecorated,sticky,skip_taskbar,skip_pager,below',
  own_window_transparent = true, --прозрачность 1
  own_window_argb_visual = true, --прозрачность 2


Заметил что в пакете conky из p10, man для старого синтекса.
Пробую собрать вот отсюда:
https://github.com/brndnmtthws/conky/tree/main/doc

По инструкции на этой же странице. Не собирается.
$ ./render.py man.md.j2 > man.md
Traceback (most recent call last):
  File "/home/evg/tmp/06/conky-main/doc/./render.py", line 5, in <module>
    import yaml
ModuleNotFoundError: No module named 'yaml'

Никогда ещё не собирал man'ы. Подскажите что ему нужно?
Simply Linux 10.1 x86_64. Версии программ из p10. Ядро 5.10.152-std-def-alt1

Оффлайн N0rbert

  • alt linux team
  • ***
  • Сообщений: 231
  • snk@
Re: Вывести надписи на рабочий стол
« Ответ #14 : 28.12.2022 21:20:00 »
Читал эту тему и вспомнил про свое решение для Ubuntu MATE.
Оно оказывается отлично работает и в ALT p10 - проверил на MATE и Xfce.

Создаем файл Python-скрипта с содержимым

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('WebKit2', '4.0')
from gi.repository import WebKit2, Gtk, Gdk, Gio, GLib
import signal, os

document="/usr/share/javascript/mathjax/test/sample.html"

class MainWin(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, skip_pager_hint=True, skip_taskbar_hint=True)
        self.set_wmclass("sildesktopwidget","sildesktopwidget")
        self.set_type_hint(Gdk.WindowTypeHint.DOCK)
        self.set_size_request(600,400)
        self.set_keep_below(True)

        #Set transparency
        screen = self.get_screen()
        rgba = screen.get_rgba_visual()
        self.set_visual(rgba)
        self.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0,0,0,0))

        #Add all the parts
        self.view = WebKit2.WebView()
        #self.view.set_transparent(True)
        self.view.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0,0,0,0))
        #self.view.props.settings.props.enable_default_context_menu = False
        # configure transparency as in https://github.com/LTSchmiddy/dungeon-commander/blob/8d5c58ca321a05519c8cb1c5afdebba4954cbfca/src/webview/platforms/gtk.py#L132
        configure_transparency(self)
        configure_transparency(self.view)
        wvbg = self.view.get_background_color()
        wvbg.alpha = 0.0
        self.view.set_background_color(wvbg)

        self.view.load_uri("file://"+document)

        box = Gtk.Box()
        self.add(box)
        box.pack_start(self.view, True, True, 0)
        self.set_decorated(False)
        self.connect("destroy", lambda q: Gtk.main_quit())

        #Show all the parts
        self.show_all()
        self.move(100,100)

def refresh_file(*args):
    print args
    mainwin.view.reload()

def file_changed(monitor, file, unknown, event):
    # reload
    GLib.timeout_add_seconds(2, refresh_file)

# configure transparency as in https://github.com/LTSchmiddy/dungeon-commander/blob/8d5c58ca321a05519c8cb1c5afdebba4954cbfca/src/webview/platforms/gtk.py#L549
def configure_transparency(c):
    c.set_visual(c.get_screen().get_rgba_visual())
    c.override_background_color(Gtk.StateFlags.ACTIVE, Gdk.RGBA(0, 0, 0, 0))
    c.override_background_color(Gtk.StateFlags.BACKDROP, Gdk.RGBA(0, 0, 0, 0))
    c.override_background_color(Gtk.StateFlags.DIR_LTR, Gdk.RGBA(0, 0, 0, 0))
    c.override_background_color(Gtk.StateFlags.DIR_RTL, Gdk.RGBA(0, 0, 0, 0))
    c.override_background_color(Gtk.StateFlags.FOCUSED, Gdk.RGBA(0, 0, 0, 0))
    c.override_background_color(Gtk.StateFlags.INCONSISTENT, Gdk.RGBA(0, 0, 0, 0))
    c.override_background_color(Gtk.StateFlags.INSENSITIVE, Gdk.RGBA(0, 0, 0, 0))
    c.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0, 0, 0, 0))
    c.override_background_color(Gtk.StateFlags.PRELIGHT, Gdk.RGBA(0, 0, 0, 0))
    c.override_background_color(Gtk.StateFlags.SELECTED, Gdk.RGBA(0, 0, 0, 0))
    transparentWindowStyleProvider = Gtk.CssProvider()
    transparentWindowStyleProvider.load_from_data(b"""
        GtkWindow {
            background-color:rgba(0,0,0,0);
            background-image:none;
        }""")
    c.get_style_context().add_provider(transparentWindowStyleProvider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)


if __name__ == '__main__':
    gio_file = Gio.File.new_for_path(document)
    monitor = gio_file.monitor_file(Gio.FileMonitorFlags.NONE, None)
    monitor.connect("changed", file_changed)

    mainwin = MainWin()
    signal.signal(signal.SIGINT, signal.SIG_DFL) # make ^c work
    Gtk.main()

и сохраняем его в файле, например ~/desk.py.

Далее нужно поставить три пакета

# apt-get update
# apt-get install libwebkit2gtk-gir python-module-pygobject3 mathjax

последний для демонстрации отображения серьезного документа с формулами MathJax и Javascript.

Затем скрипт можно запустить командой

python2 ~/desk.py &

при этом он будет следить на изменением входного HTML-файла, объявленного в переменной document.
Размер фрейма задается в строке 14, положение в строке 45. Все остальное можете изменять внутри HTML файла.

« Последнее редактирование: 28.12.2022 21:31:59 от N0rbert »