Merge branch 'LinusDierheimer:master' into master

This commit is contained in:
DarN
2021-06-26 16:07:32 +02:00
committed by GitHub
11 changed files with 169 additions and 55 deletions
+6 -1
View File
@@ -57,12 +57,17 @@ static void printBattery(FFinstance* instance, FFstrbuf* dir, uint32_t index)
putchar('%');
if(showStatus)
fputs("; ", stdout);
fputs(" [", stdout);
}
if(showStatus)
{
ffStrbufWriteTo(&status, stdout);
if(capacity.length > 0)
putchar(']');
}
putchar('\n');
}
else
+100 -4
View File
@@ -8,11 +8,11 @@ static void printCursor(FFinstance* instance, const FFstrbuf* cursorTheme, const
ffPrintLogoAndKey(instance, FF_CURSOR_MODULE_NAME, 0, &instance->config.cursorKey);
ffStrbufWriteTo(cursorTheme, stdout);
if(cursorSize->length > 0)
if(cursorSize != NULL && cursorSize->length > 0)
{
fputs(" (", stdout);
ffStrbufWriteTo(cursorSize, stdout);
fputs("pt)", stdout);
fputs("px)", stdout);
}
putchar('\n');
@@ -91,14 +91,110 @@ static void printCursorXFCE(FFinstance* instance)
ffStrbufDestroy(&cursorSize);
}
static bool printCursorFromXResources(FFinstance* instance)
{
FFstrbuf theme;
ffStrbufInit(&theme);
FFstrbuf size;
ffStrbufInit(&size);
ffParsePropFileHomeValues(instance, ".Xresources", 2, (FFpropquery[]) {
{"Xcursor.theme :", &theme},
{"Xcursor.size :", &size}
});
if(theme.length == 0)
{
ffStrbufDestroy(&size);
ffStrbufDestroy(&theme);
return false;
}
printCursor(instance, &theme, &size);
ffStrbufDestroy(&size);
ffStrbufDestroy(&theme);
return true;
}
static bool printCursorFromXDG(FFinstance* instance, bool user)
{
FFstrbuf theme;
ffStrbufInit(&theme);
if(user)
ffParsePropFileHome(instance, ".icons/default/index.theme", "Inherits =", &theme);
else
ffParsePropFile("/usr/share/icons/default/index.theme", "Inherits =", &theme);
if(theme.length == 0)
{
ffStrbufDestroy(&theme);
return false;
}
printCursor(instance, &theme, NULL);
ffStrbufDestroy(&theme);
return true;
}
static bool printCursorFromEnv(FFinstance* instance)
{
const char* xcursor_theme = getenv("XCURSOR_THEME");
if(xcursor_theme == NULL || *xcursor_theme == '\0')
return false;
FFstrbuf theme;
ffStrbufInit(&theme);
ffStrbufAppendS(&theme, xcursor_theme);
FFstrbuf size;
ffStrbufInit(&size);
ffStrbufAppendS(&size, getenv("XCURSOR_SIZE"));
printCursor(instance, &theme, &size);
ffStrbufDestroy(&size);
ffStrbufDestroy(&theme);
return true;
}
void ffPrintCursor(FFinstance* instance)
{
if(printCursorFromEnv(instance))
return;
const FFWMDEResult* wmde = ffDetectWMDE(instance);
if(ffStrbufIgnCaseCompS(&wmde->dePrettyName, "KDE Plasma") == 0)
{
printCursorPlasma(instance);
else if(ffStrbufStartsWithIgnCaseS(&wmde->dePrettyName, "XFCE"))
return;
}
if(ffStrbufStartsWithIgnCaseS(&wmde->dePrettyName, "XFCE"))
{
printCursorXFCE(instance);
else
return;
}
if(ffStrbufIgnCaseCompS(&wmde->dePrettyName, "Gnome") == 0 || ffStrbufIgnCaseCompS(&wmde->dePrettyName, "Cinnamon") == 0 || ffStrbufIgnCaseCompS(&wmde->dePrettyName, "Mate") == 0)
{
printCursorGTK(instance);
return;
}
//User config
if(printCursorFromXDG(instance, true))
return;
if(printCursorFromXResources(instance))
return;
//System config
if(printCursorFromXDG(instance, false))
return;
printCursorGTK(instance);
}
+5 -5
View File
@@ -114,15 +114,15 @@ void ffPrintDisk(FFinstance* instance)
return;
}
uint32_t lastIndex = 0;
while (lastIndex < instance->config.diskFolders.length)
uint32_t startIndex = 0;
while (startIndex < instance->config.diskFolders.length)
{
uint32_t colonIndex = ffStrbufFirstIndexAfterC(&instance->config.diskFolders, lastIndex, ':');
uint32_t colonIndex = ffStrbufNextIndexC(&instance->config.diskFolders, startIndex, ':');
instance->config.diskFolders.chars[colonIndex] = '\0';
printFolder(instance, instance->config.diskFolders.chars + lastIndex);
printFolder(instance, instance->config.diskFolders.chars + startIndex);
lastIndex = colonIndex + 1;
startIndex = colonIndex + 1;
}
}
}