Как вы получаете эти изящные прозрачные дисплеи журнала?

Итак, я видел множество отображений прозрачных журналов или запущенных журналов или экземпляров htop на том, что кажется фиксированными областями рабочего стола. Я думаю, что это что-то вроде root-tail, но я не могу заставить root-tail работать. Это заставляет меня подозревать, что либо это делается по-другому, либо проблема тривиальна, если вы знаете, как это исправить. Либо может быть так.

Итак, я попробовал несколько примеров:

sudo root-tail -g 800x250+100+50 /var/log/syslog,green

В приведенном выше примере нет ошибок, но также нет отображения.

user@machine:/home/user/scripts# sudo root-tail -g 800x250+100+50 -font fixed /var/log/syslog,green /var/log/auth.log,red,'ALERT'
Missing charsets in String to FontSet conversion (ISO8859-2)
Missing charsets in String to FontSet conversion (ISO8859-2)

Нету. Вычеркнул снова.

Улики?

3 ответа

Решение

root-tail делает именно то, что вы хотите, но есть другое окно на пути. Это кратко обсуждается в разделе ошибок root-tailСтраница человека.

В настоящее время большинство рабочих столов управляют "корневым окном" с наложенным окном. В LXDE это делается с pcmanfmв GNOME это было nautilusи у Unity есть своя вещь. То, что вы хотите сделать, это иметь вывод root-tail к этому оверлею.

  1. Откройте терминал (xterm, rxvt, gnome-терминал и т. Д.)
  2. Бежать xwininfo
  3. Ваш курсор теперь изменился на перекрестие. Нажмите на свой фон.
  4. В выводе обратите внимание на строку, которая начинается с xwininfo: Window id:, Вы хотите следующий шестнадцатеричный номер.
  5. Запустите root-tail, как и раньше, но добавьте -id флаг с шестнадцатеричным числом из предыдущего шага. то есть: root-tail -g 800x250+100+50 -id 0x1000003 /var/log/syslog,green

Вот что xwininfo выглядит для меня (как пользователь LXDE):

❯ xwininfo 

xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.

xwininfo: Window id: 0x1000003 "pcmanfm"

  Absolute upper-left X:  0
  Absolute upper-left Y:  0
  Relative upper-left X:  0 
  Relative upper-left Y:  0
  Width: 1680
  Height: 1050
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+0  -0+0  -0-0  +0-0
  -geometry 1680x1050+0+0

Если я killpcmanfm (и ограничьте вывод) вы можете увидеть, что на самом деле является корневым окном. Это то, где вы пишете, когда вы не используете root-tail"s -id флаг:

❯ ps xa |grep pcmanfm
13123 ?        Sl     0:00 pcmanfm --desktop --profile lubuntu
14496 pts/0    S+     0:00 grep pcmanfm

❯ kill 13123

❯ xwininfo |grep id: 
xwininfo: Window id: 0x29a (the root window) (has no name)

Примечание: идентификатор окна вашего "управляемого фона", скорее всего, будет меняться при каждом сеансе.

Вы можете использовать Conky для отображения журналов с прозрачным окном, может быть что-то вроде этого:

conky.config = {
-- — SETTINGS —
    background = false,
    update_interval = 1,
    cpu_avg_samples = 2,
    net_avg_samples = 2,
    double_buffer = true,
    no_buffers = true,
    text_buffer_size = 2048,
    imlib_cache_size = 0,

-- — WINDOW —
    --own_window_class = 'Conky',
    own_window_argb_visual = true,
    own_window_argb_value=0,
    --own_window_type='dock',
    own_window=true,
    own_window_transparent=true,
    own_window_hints='undecorated,below,sticky,skip_taskbar,skip_pager',

-- — BORDER —
    border_inner_margin = 1,
    border_outer_margin = 1,
    border_width = 1,

-- — SIZE — #
    minimum_width = 1800,
    maximum_width = 1800,
--  default_bar_width = 50, default_bar_height = 15,

-- — ALIGNMENT —
    gap_x = 75,
    gap_y = 450,

-- — GRAPHIC —
    draw_shades = false,
    draw_outline = false,
    draw_borders = false,
    draw_graph_borders = true,
--default_shade_color 
--default_outline_color 909090
--own_window_colour 808080

-- — TEXT —
    use_xft = true,
    font = 'Dejavu Sans:size=10',
    xftalpha = 1.0,
    uppercase = false,
    override_utf8_locale = true,
    default_color = 'white',

-- — LUA —
--lua_load ~/Conky/bgcolor/bg.lua
--lua_draw_hook_pre conky_draw_bg

-- — Colors —
    color1 = '#C18C24',

};

conky.text = [[
${color1}${font Dejavu Sans:size=12:condensed:bold}DD-WRT Router Log${font}
#${exec curl ipinfo.io}
----------------------------------${font}${color}
${exec watch -nd | tail -n 15 /var/log/ddwrt/ddwrt.log | sort -r}
]];

Будет отображаться что-то вроде этого:

Программа наподобие htop - это специальная программа, разработанная на языке Си. Он использует библиотеку ncurses, которая позволяет программе управлять выводом в терминале, своего рода псевдо GUI. Чтобы получить тот же эффект, программа должна быть написана с использованием ncurses.

Другие вопросы по тегам