Re: mc Digest, Vol 116, Issue 6



On Thu, 19 Dec 2013 04:00:03 -0800, <mc-request gnome org> wrote:

Message: 1
Date: Thu, 19 Dec 2013 00:02:38 +0100
From: Konrad Vrba <konrad vrba gmail com>
To: mc gnome org
Subject: disk usage status in right bottom corner
Message-ID:
        <CAF2Nc0zH_Ew_tbEm44ZS9mJiUiqL0A=iYeV1MaJ6krTtYQuefA mail gmail com>
Content-Type: text/plain; charset="iso-8859-1"

hello,

I would like to ask whether it is possible to change the disk status/usage
information, which is displayed in the botom right corner in midnight
commander (sorry if I am not using the correct terminology).

The information displayed in my MC is free/total free%

I would prefer to have % of used space, rather than % of free space. It
might seem trivial, but I canot get used to the idea and it still confuses me. It seems to me logical to see what *is*on my disk, rather than what *is
not*.

Is there some way to adjust this, so that I can for example see just the
%usage ?

thanks,
Konrad

You know, that confused me too. It shows free space instead of used space.
df shows size used avail and use%, but mc shows avail/size (free%).

Once again, src/filemanager/panels.c being hacked, around line 1111:
[code]
static void
show_free_space (WPanel * panel)
{
    /* Used to figure out how many free space we have */
    static struct my_statfs myfs_stats;
    /* Old current working directory for displaying free space */
    static char *old_cwd = NULL;

    /* Don't try to stat non-local fs */
    if (!vfs_file_is_local (panel->cwd_vpath) || !free_space)
        return;

if (old_cwd == NULL || strcmp (old_cwd, vfs_path_as_str (panel->cwd_vpath)) != 0)
    {
        char rpath[PATH_MAX];

        init_my_statfs ();
        g_free (old_cwd);
        old_cwd = g_strdup (vfs_path_as_str (panel->cwd_vpath));

        if (mc_realpath (old_cwd, rpath) == NULL)
            return;

        my_statfs (&myfs_stats, rpath);
    }

    if (myfs_stats.avail != 0 || myfs_stats.total != 0)
    {
        Widget *w = WIDGET (panel);
        char buffer1[6], buffer2[6], tmp[BUF_SMALL];

        size_trunc_len (buffer1, sizeof (buffer1) - 1, myfs_stats.avail, 1,
                        panels_options.kilobyte_si);
        size_trunc_len (buffer2, sizeof (buffer2) - 1, myfs_stats.total, 1,
                        panels_options.kilobyte_si);
        g_snprintf (tmp, sizeof (tmp), " %s/%s (%d%%) ", buffer1, buffer2,
                    myfs_stats.total == 0 ? 0 :
(int) (100 * (long double) myfs_stats.avail / myfs_stats.total));
        widget_move (w, w->lines - 1, w->cols - 2 - (int) strlen (tmp));
        tty_setcolor (NORMAL_COLOR);
        tty_print_string (tmp);
    }
}
[/code]
First, I'd rename the func to panel_show_disk_usage(). Then a bool whether
to show free space or used space. Then mod those size_trunc_len()s on the
bool.

But, in the meantime, for a quick and usable hack, I'd just change that
last bit to:
[code]
    if (myfs_stats.avail != 0 || myfs_stats.total != 0)
    {
        Widget *w = WIDGET (panel);
        char buffer1[6], buffer2[6], tmp[BUF_SMALL];
        uintmax_t used = myfs_stats.total - myfs_stats.avail;

// size_trunc_len (buffer1, sizeof (buffer1) - 1, myfs_stats.avail, 1,
//                        panels_options.kilobyte_si);
        size_trunc_len (buffer1, sizeof (buffer1) - 1, used, 1,
                        panels_options.kilobyte_si);
        size_trunc_len (buffer2, sizeof (buffer2) - 1, myfs_stats.total, 1,
                        panels_options.kilobyte_si);
// g_snprintf (tmp, sizeof (tmp), " %s/%s (%d%%) ", buffer1, buffer2,
//                    myfs_stats.total == 0 ? 0 :
// (int) (100 * (long double) myfs_stats.avail / myfs_stats.total)); g_snprintf (tmp, sizeof (tmp), " Used %s/%s (%d%%) ", buffer1, buffer2,
                    myfs_stats.total == 0 ? 0 :
                    (int) (100 * (long double) used / myfs_stats.total));
        widget_move (w, w->lines - 1, w->cols - 2 - (int) strlen (tmp));
        tty_setcolor (NORMAL_COLOR);
        tty_print_string (tmp);
    }
[/code]

Works for me. I think I'll clean it up and keep it.


--
Peace and Cheer


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]