brndnmtthws / conky

Light-weight system monitor for X, Wayland (sort of), and other things, too
https://conky.cc
GNU General Public License v3.0
7.27k stars 620 forks source link

window_type desktop disappears when the desktop is clicked #399

Closed cristianc closed 7 months ago

cristianc commented 7 years ago

Hi, I've installed conky 1.10.4 on Fedora 25. Conky disappears from the desktop when the desktop is clicked, if 'window_type' property is set to 'desktop' (default value) in conky configuration file. This does not happen when 'window_type' property is set to 'panel'.

I was suggested to open here a bug report. Related bug reports have already been opened in ubuntu and debian bug trackers. I've found this bug on several previous versions of conky.

Thanks.

cristianc commented 6 years ago

After almost a year, I ask: do you need additional info? If you want, I can publish some more useful stuff, as output or logs, for example. Let me know which info you think it's important.

Regards.

lasers commented 6 years ago

Hi. Can you determine if you're still having this problem today on 1.10.8 or preferably 1.10.9_pre (git)? We probably want your conky config too just in case. If you have some useful stuffs such as output or logs, publish away.

If it disappear (i.e. crash), then please run it from the terminal this time.. gdb conky, then (gdb) run -c ~/path/to/your/conky.conf... then click again to make it disappear (or crash). When that happens, type (gdb) bt full to get a backtrace. We want that backtrace too. Thanks.

cristianc commented 6 years ago

I've tried both 1.10.8 and 1.11.0_pre conky versions.

Here's .conkyrc:

-- vim: ts=4 sw=4 noet ai cindent syntax=lua
--[[
Conky, a system monitor, based on torsmo

Any original torsmo code is licensed under the BSD license

All code written since the fork of torsmo is licensed under the GPL

Please see COPYING for details

Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
Copyright (c) 2005-2012 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)
All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
]]

conky.config = {
    alignment = 'top_left',
    background = false,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = 'white',
    default_outline_color = 'white',
    default_shade_color = 'white',
    draw_borders = false,
    draw_graph_borders = true,
    draw_outline = false,
    draw_shades = false,
    use_xft = true,
    font = 'DejaVu Sans Mono:size=12',
    gap_x = 5,
    gap_y = 60,
    minimum_height = 5,
    minimum_width = 5,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_stderr = false,
    extra_newline = false,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'desktop',
    stippled_borders = 0,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'none',
    show_graph_scale = false,
    show_graph_range = false
}

conky.text = [[
${scroll 16 $nodename - $sysname $kernel on $machine | }
$hr
${color grey}Uptime:$color $uptime
${color grey}Frequency (in MHz):$color $freq
${color grey}Frequency (in GHz):$color $freq_g
${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4}
${color grey}CPU Usage:$color $cpu% ${cpubar 4}
${color grey}Processes:$color $processes  ${color grey}Running:$color $running_processes
$hr
${color grey}File systems:
 / $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
${color grey}Networking:
Up:$color ${upspeed eth0} ${color grey} - Down:$color ${downspeed eth0}
$hr
${color grey}Name              PID   CPU%   MEM%
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
]]

And here's /etc/conky/conky.conf:

-- vim: ts=4 sw=4 noet ai cindent syntax=lua
--[[
Conky, a system monitor, based on torsmo

Any original torsmo code is licensed under the BSD license

All code written since the fork of torsmo is licensed under the GPL

Please see COPYING for details

Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
Copyright (c) 2005-2012 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)
All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
]]

conky.config = {
    alignment = 'top_left',
    background = false,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = 'white',
    default_outline_color = 'white',
    default_shade_color = 'white',
    draw_borders = false,
    draw_graph_borders = true,
    draw_outline = false,
    draw_shades = false,
    use_xft = true,
    font = 'DejaVu Sans Mono:size=12',
    gap_x = 5,
    gap_y = 60,
    minimum_height = 5,
    minimum_width = 5,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_stderr = false,
    extra_newline = false,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'desktop',
    stippled_borders = 0,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'none',
    show_graph_scale = false,
    show_graph_range = false
}

conky.text = [[
${scroll 16 $nodename - $sysname $kernel on $machine | }
$hr
${color grey}Uptime:$color $uptime
${color grey}Frequency (in MHz):$color $freq
${color grey}Frequency (in GHz):$color $freq_g
${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4}
${color grey}CPU Usage:$color $cpu% ${cpubar 4}
${color grey}Processes:$color $processes  ${color grey}Running:$color $running_processes
$hr
${color grey}File systems:
 / $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
${color grey}Networking:
Up:$color ${upspeed eth0} ${color grey} - Down:$color ${downspeed eth0}
$hr
${color grey}Name              PID   CPU%   MEM%
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
]]

Here's output from terminal when launching conky:

./conky
conky: desktop window (c00352) is subwindow of root window (e6)
conky: window type - desktop
conky: drawing to created window (0x3400001)

it doesn't crash, anyway. It just disappears from desktop.

If I run conky via gdb, I get:

gdb /home/fedora/conky/build/src/conky
GNU gdb (GDB) Fedora 8.0.1-36.fc27
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/fedora/conky/build/src/conky...(no debugging symbols found)...done.
(gdb) run -c /home/fedora/.conkyrc
Starting program: /home/fedora/conky/build/src/conky -c /home/fedora/.conkyrc
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.26-28.fc27.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
conky: desktop window (c00352) is subwindow of root window (e6)
conky: window type - desktop
conky: drawing to created window (0x3600001)
[New Thread 0x7fffe8902700 (LWP 20674)]
[New Thread 0x7fffe8101700 (LWP 20675)]
[New Thread 0x7fffe7900700 (LWP 20676)]
[New Thread 0x7fffe70ff700 (LWP 20677)]
[New Thread 0x7fffe68fe700 (LWP 20678)]
[New Thread 0x7fffe60fd700 (LWP 20679)]
[New Thread 0x7fffe58fc700 (LWP 20680)]

As expected, conky doesn't crash, but it just disappears from desktop. So, if I try to stop/kill conky process by task manager, gdb prints the following lines:

Thread 1 "conky" received signal SIGINT, Interrupt.
0x00007ffff4f94b23 in select () from /lib64/libc.so.6
Missing separate debuginfos, use: dnf debuginfo-install bzip2-libs-1.0.6-24.fc27.x86_64 cyrus-sasl-lib-2.1.26-34.fc27.x86_64 expat-2.2.5-1.fc27.x86_64 fontconfig-2.12.6-4.fc27.x86_64 freetype-2.8-8.fc27.x86_64 imlib2-1.4.9-4.fc27.x86_64 keyutils-libs-1.5.10-3.fc27.x86_64 krb5-libs-1.15.2-9.fc27.x86_64 libX11-1.6.5-4.fc27.x86_64 libXau-1.0.8-9.fc27.x86_64 libXdamage-1.1.4-11.fc27.x86_64 libXext-1.3.3-7.fc27.x86_64 libXfixes-5.0.3-4.fc27.x86_64 libXft-2.3.2-7.fc27.x86_64 libXinerama-1.1.3-9.fc27.x86_64 libXrender-0.9.10-4.fc27.x86_64 libcom_err-1.43.5-2.fc27.x86_64 libcrypt-nss-2.26-28.fc27.x86_64 libcurl-7.55.1-12.fc27.x86_64 libgcc-7.3.1-6.fc27.x86_64 libidn2-2.0.5-1.fc27.x86_64 libnghttp2-1.31.1-1.fc27.x86_64 libpng-1.6.31-1.fc27.x86_64 libpsl-0.18.0-3.fc27.x86_64 libselinux-2.7-3.fc27.x86_64 libssh2-1.8.0-5.fc27.x86_64 libstdc++-7.3.1-6.fc27.x86_64 libunistring-0.9.10-1.fc27.x86_64 libxcb-1.12-5.fc27.x86_64 libxml2-2.9.8-4.fc27.x86_64 lua-libs-5.3.4-7.fc27.x86_64 ncurses-libs-6.0-14.20170722.fc27.x86_64 nspr-4.19.0-1.fc27.x86_64 nss-3.38.0-1.0.fc27.x86_64 nss-softokn-freebl-3.38.0-1.0.fc27.x86_64 nss-util-3.38.0-1.0.fc27.x86_64 openldap-2.4.45-4.fc27.x86_64 openssl-libs-1.1.0h-3.fc27.x86_64 pcre2-10.31-7.fc27.x86_64 xz-libs-5.2.3-4.fc27.x86_64 zlib-1.2.11-4.fc27.x86_64

After that, I've tried to get a backtrace. So, here's output from gdb:

(gdb) bt full
#0  0x00007ffff4f94b23 in select () from /lib64/libc.so.6
No symbol table info available.
#1  0x000000000041a260 in main_loop() ()
No symbol table info available.
#2  0x000000000041c8c7 in main ()
No symbol table info available.
(gdb) 

I hope it can be useful in order to solve conky issue.

lasers commented 6 years ago

Few questions...

Conky disappears from the desktop when the desktop is clicked

1) What DE are you using? Does this happen on other DE too?

Related bug reports have already been opened in ubuntu and debian bug trackers.

2) Can you share them here?

I want to try and reproduce this bug. Many thanks.

cristianc commented 6 years ago

What DE are you using? Does this happen on other DE too?

LXDE. I can't remember if i've tried conky using other desktops.

Can you share them here?

https://bit.ly/2weJtOK https://bit.ly/2Mmr6T8

lasers commented 6 years ago

I saw a possible solution. Can you try https://github.com/brndnmtthws/conky/issues/298#issuecomment-234059188? Comment mentioned LXDE too.

cristianc commented 6 years ago

I've tested the workaround and it works on multiple machines. Btw, it doesn't solve the 'desktop' own_window_type bug.

ferdnyc commented 4 years ago

One thing I'll note about LXDE and own_window_type = dock: LXDE uses OpenBox as its window manager, which has its own dock placement configs that will override conky's config file. So, dock does work (actually, in my experience it works pretty well), but the placement has to be configured using either the "OpenBox Configuration Manager" or "OpenBox Settings" application, or directly in the config file.

For example, my $HOME/.config/openbox/lxde-rc.xml contains (as a child of the <openbox_config xmlns="http://openbox.org/3.4/rc"> tag):

  <dock>
    <position>TopLeft</position>
    <!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
    <floatingX>0</floatingX>
    <floatingY>0</floatingY>
    <noStrut>no</noStrut>
    <stacking>Below</stacking>
    <!-- 'Above', 'Normal', or 'Below' -->
    <direction>Vertical</direction>
    <!-- 'Vertical' or 'Horizontal' -->
    <autoHide>no</autoHide>
    <hideDelay>300</hideDelay>
    <!-- in milliseconds (1000 = 1 second) -->
    <showDelay>300</showDelay>
    <!-- in milliseconds (1000 = 1 second) -->
    <moveButton>Middle</moveButton>
    <!-- 'Left', 'Middle', 'Right' -->
  </dock>

Conky in own_window_type = dock mode will be placed according to those configs. (Most of them, anyway. I don't know if all of them work with Conky, in particular I've never tried the autoHide settings.)

github-actions[bot] commented 1 year ago

This issue is stale because it has been open 365 days with no activity. Remove stale label or comment, or this issue will be closed in 30 days.

cristianc commented 12 months ago

I've to test again to ensure this bug still exists

cristianc commented 9 months ago

This bug still appears using Alpine 3.19 with LXQt, exactly as described in past with the other GNU/Linux distros.

Caellian commented 7 months ago

Both LXDE and LXQt use desktop panels to show icons which will push conky into background when clicked on. This is expected behavior for stacking WMs and can't be changed from conky.

We could force conky to try to move up all the time (like Windows background apps do (only down)), but that would cause bad UX when you're trying to interact with the desktop panels provided by these DEs (flickering). There's also no need for that as 'normal' window type should work for cases like these.

See Window Configuration for more information.