mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-12-26 12:27:52 +00:00
Add top_name_verbose option
Since commit 749083a
, the output of ${top name <num>} contains the full
command line of each process, including arguments. While this feature can
be very useful, it changes the default behavior of Conky.
The present commit adds a new top_name_verbose option that allows the user
to toggle between basenames with no arguments (the old behavior) and full
command lines with arguments. To remain consistent with past versions of
Conky, the default value of top_name_verbose is false.
Fixes #113 (https://github.com/brndnmtthws/conky/issues/113).
This commit is contained in:
parent
9ac60dcc15
commit
06722e4a2a
@ -959,6 +959,17 @@
|
||||
of all processors' power combined.
|
||||
<para /></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>
|
||||
<option>top_name_verbose</option>
|
||||
</command>
|
||||
</term>
|
||||
<listitem>If true, top name shows the full command line of each
|
||||
process, including arguments (whenever possible). Otherwise,
|
||||
only the basename is displayed. Default value is false.
|
||||
<para /></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "prioqueue.h"
|
||||
#include "top.h"
|
||||
#include "logging.h"
|
||||
#include <string>
|
||||
|
||||
/* hash table size - always a power of 2 */
|
||||
#define HTABSIZE 256
|
||||
@ -480,6 +481,7 @@ struct top_data {
|
||||
|
||||
static conky::range_config_setting<unsigned int> top_name_width("top_name_width", 0,
|
||||
std::numeric_limits<unsigned int>::max(), 15, true);
|
||||
static conky::simple_config_setting<bool> top_name_verbose("top_name_verbose", false, false);
|
||||
|
||||
static void print_top_name(struct text_object *obj, char *p, int p_max_size)
|
||||
{
|
||||
@ -489,8 +491,13 @@ static void print_top_name(struct text_object *obj, char *p, int p_max_size)
|
||||
if (!td || !td->list || !td->list[td->num])
|
||||
return;
|
||||
|
||||
std::string top_name = td->list[td->num]->name;
|
||||
if (!top_name_verbose.get(*state)) {
|
||||
top_name = top_name.substr(0, top_name.find_first_of(' '));
|
||||
}
|
||||
|
||||
width = MIN(p_max_size, (int)top_name_width.get(*state) + 1);
|
||||
snprintf(p, width + 1, "%-*s", width, td->list[td->num]->name);
|
||||
snprintf(p, width + 1, "%-*s", width, top_name.c_str());
|
||||
}
|
||||
|
||||
static void print_top_mem(struct text_object *obj, char *p, int p_max_size)
|
||||
|
Loading…
Reference in New Issue
Block a user