mirror of
https://github.com/scorpion-26/gBar.git
synced 2024-11-21 18:52:49 +00:00
Add support for custom icons
Not *everything* is implemented, two icons from the BluetoothDevices widgets are still missing. Implements https://github.com/scorpion-26/gBar/issues/56
This commit is contained in:
parent
7d8a792d60
commit
964b12ed36
7 changed files with 91 additions and 27 deletions
21
data/config
21
data/config
|
@ -49,6 +49,27 @@ DiskPartition: /
|
|||
# The default symbol for the workspaces
|
||||
DefaultWorkspaceSymbol:
|
||||
|
||||
# All of the icons that can be modified.
|
||||
# Please note that some icons require a space ("\s") (e.g. default ShutdownIcon)
|
||||
ShutdownIcon: \s
|
||||
RebootIcon:
|
||||
SleepIcon:
|
||||
LockIcon:
|
||||
ExitIcon:
|
||||
BTOffIcon:
|
||||
BTOnIcon:
|
||||
BTConnectedIcon:
|
||||
DevKeyboardIcon: \s
|
||||
DevMouseIcon: \s
|
||||
DevHeadsetIcon: \s
|
||||
DevControllerIcon: \s
|
||||
DevUnknownIcon: \s
|
||||
SpeakerMutedIcon:
|
||||
SpeakerHighIcon:
|
||||
MicMutedIcon:
|
||||
MicHighIcon:
|
||||
PackageOutOfDateIcon: \s
|
||||
|
||||
# Scroll through the workspaces of the current monitor instead of all workspaces
|
||||
WorkspaceScrollOnMonitor: true
|
||||
|
||||
|
|
|
@ -47,11 +47,11 @@ namespace AudioFlyin
|
|||
muted = info.sinkMuted;
|
||||
if (info.sinkMuted)
|
||||
{
|
||||
icon->SetText("");
|
||||
icon->SetText(Config::Get().speakerMutedIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
icon->SetText("");
|
||||
icon->SetText(Config::Get().speakerHighIcon);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -68,11 +68,11 @@ namespace AudioFlyin
|
|||
muted = info.sourceMuted;
|
||||
if (info.sourceMuted)
|
||||
{
|
||||
icon->SetText("");
|
||||
icon->SetText(Config::Get().micMutedIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
icon->SetText("");
|
||||
icon->SetText(Config::Get().micHighIcon);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -116,12 +116,12 @@ namespace AudioFlyin
|
|||
if (DynCtx::type == Type::Speaker)
|
||||
{
|
||||
icon->SetClass("audio-icon");
|
||||
icon->SetText(" ");
|
||||
icon->SetText(Config::Get().speakerHighIcon);
|
||||
}
|
||||
else if (DynCtx::type == Type::Microphone)
|
||||
{
|
||||
icon->SetClass("mic-icon");
|
||||
icon->SetText("");
|
||||
icon->SetText(Config::Get().speakerMutedIcon);
|
||||
}
|
||||
|
||||
DynCtx::icon = icon.get();
|
||||
|
|
30
src/Bar.cpp
30
src/Bar.cpp
|
@ -198,19 +198,19 @@ namespace Bar
|
|||
if (info.defaultController.empty())
|
||||
{
|
||||
btIconText->SetClass("bt-label-off");
|
||||
btIconText->SetText("");
|
||||
btIconText->SetText(Config::Get().btOffIcon);
|
||||
btDevText->SetText("");
|
||||
}
|
||||
else if (info.devices.empty())
|
||||
{
|
||||
btIconText->SetClass("bt-label-on");
|
||||
btIconText->SetText("");
|
||||
btIconText->SetText(Config::Get().btOnIcon);
|
||||
btDevText->SetText("");
|
||||
}
|
||||
else
|
||||
{
|
||||
btIconText->SetClass("bt-label-connected");
|
||||
btIconText->SetText("");
|
||||
btIconText->SetText(Config::Get().btConnectedIcon);
|
||||
std::string btDev;
|
||||
std::string tooltip;
|
||||
for (auto& dev : info.devices)
|
||||
|
@ -253,7 +253,7 @@ namespace Bar
|
|||
packageTextLock.lock();
|
||||
if (numOutdatedPackages)
|
||||
{
|
||||
text.SetText(" ");
|
||||
text.SetText(Config::Get().packageOutOfDateIcon);
|
||||
text.SetVisible(true);
|
||||
text.SetClass("package-outofdate");
|
||||
text.SetTooltip("Updates available! (" + std::to_string(numOutdatedPackages) + " packages)");
|
||||
|
@ -315,11 +315,11 @@ namespace Bar
|
|||
}
|
||||
if (info.sinkMuted)
|
||||
{
|
||||
audioIcon->SetText("");
|
||||
audioIcon->SetText(Config::Get().speakerMutedIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
audioIcon->SetText("");
|
||||
audioIcon->SetText(Config::Get().speakerHighIcon);
|
||||
}
|
||||
if (Config::Get().audioInput)
|
||||
{
|
||||
|
@ -334,11 +334,11 @@ namespace Bar
|
|||
}
|
||||
if (info.sourceMuted)
|
||||
{
|
||||
micIcon->SetText("");
|
||||
micIcon->SetText(Config::Get().micMutedIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
micIcon->SetText("");
|
||||
micIcon->SetText(Config::Get().micHighIcon);
|
||||
}
|
||||
}
|
||||
return TimerResult::Ok;
|
||||
|
@ -571,12 +571,12 @@ namespace Bar
|
|||
{
|
||||
case AudioType::Input:
|
||||
icon->SetClass("mic-icon");
|
||||
icon->SetText("");
|
||||
icon->SetText(Config::Get().speakerHighIcon);
|
||||
DynCtx::micIcon = icon.get();
|
||||
break;
|
||||
case AudioType::Output:
|
||||
icon->SetClass("audio-icon");
|
||||
icon->SetText(" ");
|
||||
icon->SetText(Config::Get().micHighIcon);
|
||||
if (!RotatedIcons())
|
||||
Utils::SetTransform(*icon, {-1, true, Alignment::Fill, 0, 6});
|
||||
DynCtx::audioIcon = icon.get();
|
||||
|
@ -852,7 +852,7 @@ namespace Bar
|
|||
{
|
||||
auto exitButton = Widget::Create<Button>();
|
||||
exitButton->SetClass("exit-button");
|
||||
exitButton->SetText("");
|
||||
exitButton->SetText(Config::Get().exitIcon);
|
||||
exitButton->SetAngle(Utils::GetAngle());
|
||||
if (RotatedIcons())
|
||||
{
|
||||
|
@ -875,7 +875,7 @@ namespace Bar
|
|||
|
||||
auto lockButton = Widget::Create<Button>();
|
||||
lockButton->SetClass("sleep-button");
|
||||
lockButton->SetText("");
|
||||
lockButton->SetText(Config::Get().lockIcon);
|
||||
lockButton->SetAngle(Utils::GetAngle());
|
||||
if (RotatedIcons())
|
||||
{
|
||||
|
@ -898,7 +898,7 @@ namespace Bar
|
|||
|
||||
auto sleepButton = Widget::Create<Button>();
|
||||
sleepButton->SetClass("sleep-button");
|
||||
sleepButton->SetText("");
|
||||
sleepButton->SetText(Config::Get().sleepIcon);
|
||||
sleepButton->SetAngle(Utils::GetAngle());
|
||||
if (RotatedIcons())
|
||||
{
|
||||
|
@ -921,7 +921,7 @@ namespace Bar
|
|||
|
||||
auto rebootButton = Widget::Create<Button>();
|
||||
rebootButton->SetClass("reboot-button");
|
||||
rebootButton->SetText("");
|
||||
rebootButton->SetText(Config::Get().rebootIcon);
|
||||
rebootButton->SetAngle(Utils::GetAngle());
|
||||
|
||||
if (!RotatedIcons())
|
||||
|
@ -959,7 +959,7 @@ namespace Bar
|
|||
|
||||
auto powerButton = Widget::Create<Button>();
|
||||
powerButton->SetClass("power-button");
|
||||
powerButton->SetText(" ");
|
||||
powerButton->SetText(Config::Get().shutdownIcon);
|
||||
powerButton->SetAngle(Utils::GetAngle());
|
||||
|
||||
Utils::SetTransform(*powerButton, {24, false, Alignment::Fill}, RotatedIcons() ? 10 : 0, 0);
|
||||
|
|
|
@ -258,7 +258,7 @@ namespace BluetoothDevices
|
|||
headerBox->SetClass("bt-header-box");
|
||||
{
|
||||
auto headerText = Widget::Create<Text>();
|
||||
headerText->SetText(" Bluetooth");
|
||||
headerText->SetText(Config::Get().btOnIcon + " Bluetooth");
|
||||
headerBox->AddChild(std::move(headerText));
|
||||
|
||||
auto headerRefresh = Widget::Create<Button>();
|
||||
|
|
|
@ -244,6 +244,26 @@ void Config::Load()
|
|||
AddConfigVar("CheckPackagesCommand", config.checkPackagesCommand, lineView, foundProperty);
|
||||
AddConfigVar("DiskPartition", config.diskPartition, lineView, foundProperty);
|
||||
|
||||
|
||||
AddConfigVar("ShutdownIcon", config.shutdownIcon, lineView, foundProperty);
|
||||
AddConfigVar("RebootIcon", config.rebootIcon, lineView, foundProperty);
|
||||
AddConfigVar("sleepIcon", config.sleepIcon, lineView, foundProperty);
|
||||
AddConfigVar("LockIcon", config.lockIcon, lineView, foundProperty);
|
||||
AddConfigVar("ExitIcon", config.exitIcon, lineView, foundProperty);
|
||||
AddConfigVar("BTOffIcon", config.btOffIcon, lineView, foundProperty);
|
||||
AddConfigVar("BTOnIcon", config.btOnIcon, lineView, foundProperty);
|
||||
AddConfigVar("BTConnectedIcon", config.btConnectedIcon, lineView, foundProperty);
|
||||
AddConfigVar("DevKeyboardIcon", config.devKeyboardIcon, lineView, foundProperty);
|
||||
AddConfigVar("DevMouseIcon", config.devMouseIcon, lineView, foundProperty);
|
||||
AddConfigVar("DevHeadsetIcon", config.devHeadsetIcon, lineView, foundProperty);
|
||||
AddConfigVar("DevControllerIcon", config.devControllerIcon, lineView, foundProperty);
|
||||
AddConfigVar("DevUnknownIcon", config.devUnknownIcon, lineView, foundProperty);
|
||||
AddConfigVar("SpeakerMutedIcon", config.speakerMutedIcon, lineView, foundProperty);
|
||||
AddConfigVar("SpeakerHighIcon", config.speakerHighIcon, lineView, foundProperty);
|
||||
AddConfigVar("MicMutedIcon", config.micMutedIcon, lineView, foundProperty);
|
||||
AddConfigVar("MicHighIcon", config.micHighIcon, lineView, foundProperty);
|
||||
AddConfigVar("PackageOutOfDateIcon", config.packageOutOfDateIcon, lineView, foundProperty);
|
||||
|
||||
AddConfigVar("CenterTime", config.centerTime, lineView, foundProperty);
|
||||
AddConfigVar("AudioInput", config.audioInput, lineView, foundProperty);
|
||||
AddConfigVar("AudioRevealer", config.audioRevealer, lineView, foundProperty);
|
||||
|
|
23
src/Config.h
23
src/Config.h
|
@ -26,6 +26,29 @@ public:
|
|||
std::string dateTimeLocale = ""; // use system locale
|
||||
std::string diskPartition = "/"; // should be expectable on every linux system
|
||||
|
||||
// Icons
|
||||
std::string shutdownIcon = " ";
|
||||
std::string rebootIcon = "";
|
||||
std::string sleepIcon = "";
|
||||
std::string lockIcon = "";
|
||||
std::string exitIcon = "";
|
||||
std::string btOffIcon = "";
|
||||
std::string btOnIcon = "";
|
||||
std::string btConnectedIcon = "";
|
||||
std::string devKeyboardIcon = " ";
|
||||
std::string devMouseIcon = " ";
|
||||
std::string devHeadsetIcon = " ";
|
||||
std::string devControllerIcon = " ";
|
||||
std::string devUnknownIcon = " ";
|
||||
std::string speakerMutedIcon = "";
|
||||
std::string speakerHighIcon = "";
|
||||
std::string micMutedIcon = "";
|
||||
std::string micHighIcon = "";
|
||||
std::string packageOutOfDateIcon = " ";
|
||||
// WS is handled by workspaceSymbols
|
||||
// TODO: Deprecate workspaceSymbols in favor of e.g. workspaceIcon-x
|
||||
// TODO: BluetoothDevices Refresh and close icons
|
||||
|
||||
// Script that returns how many packages are out-of-date. The script should only print a number!
|
||||
// See data/update.sh for a human-readable version
|
||||
std::string checkPackagesCommand =
|
||||
|
|
|
@ -449,21 +449,21 @@ namespace System
|
|||
{
|
||||
if (dev.type == "input-keyboard")
|
||||
{
|
||||
return " ";
|
||||
return Config::Get().devKeyboardIcon;
|
||||
}
|
||||
else if (dev.type == "input-mouse")
|
||||
{
|
||||
return " ";
|
||||
return Config::Get().devMouseIcon;
|
||||
}
|
||||
else if (dev.type == "audio-headset")
|
||||
{
|
||||
return " ";
|
||||
return Config::Get().devHeadsetIcon;
|
||||
}
|
||||
else if (dev.type == "input-gaming")
|
||||
{
|
||||
return " ";
|
||||
return Config::Get().devControllerIcon;
|
||||
}
|
||||
return " ";
|
||||
return Config::Get().devUnknownIcon;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue