mirror of
https://github.com/Alexays/Waybar.git
synced 2026-04-01 20:34:40 +00:00
These Nerdfonts codepoints were removed in [3.0.0](https://www.nerdfonts.com/releases#v3.0.0): > **Breaking 2: Material Design Icons Codepoints** > > The old Material Design Icon codepoints are finally dropped. Due to an historic mistake we placed them in between some asiatic glyphs, breaking that script. Since v2.3.0 the (updated and expanded) Material Design Icons have new codepoints in the 5 digit region. > > - Dropped codepoints `F500`… and class names `nf-mdi-*` > - New codepoints `F0001`… and class names `nf-md-*` > - The whole discussions are here: https://github.com/ryanoasis/nerd-fonts/issues/365 > - A translation table is available here: https://github.com/ryanoasis/nerd-fonts/issues/1059#issuecomment-1404891287 > - There are tools out there that probably can update your configuration. For the majority of the removed symbols, it was as easy as finding the replacement with the exact same name. For example, `f76b` (`nf-mdi-format_header_2`) became `f026c` (`nf-md-format_header_2`). There was one symbol that was completely removed (it was removed from Material Design): `f5fc` (`nf-mdi-camcorder_box`). I have substituted it with `f03d` (`nf-fa-video_camera`) which is not Material Design, but the closest icon I could find. Here's some example output from [nerdfix](https://github.com/loichyan/nerdfix) ``` ╭─(ignormies)(~/g/fork-waybar) removed-nerdfonts-codepoints ╰──▪ nix-shell -p nerdfix --run "nerdfix check resources/config.jsonc" INFO Check input from 'resources/config.jsonc' ☞ Found obsolete icon U+F76B ╭─[resources/config.jsonc:131:27] 130 │ "format": "{temperatureC}°C {icon}", 131 │ "format-icons": ["", "", ""] · ┬ · ╰── Icon 'mdi-format_header_2' is marked as obsolete 132 │ }, ╰──── help: You could replace it with: 1. U+F026C md-format_header_2 2. U+F026B md-format_header_1 3. U+F026D md-format_header_3 4. U+F026E md-format_header_4 ☞ Found obsolete icon U+F769 ╭─[resources/config.jsonc:131:41] 130 │ "format": "{temperatureC}°C {icon}", 131 │ "format-icons": ["", "", ""] · ┬ · ╰── Icon 'mdi-format_float_right' is marked as obsolete 132 │ }, ╰──── help: You could replace it with: 1. U+F026A md-format_float_right 2. U+F0268 md-format_float_left 3. U+F0269 md-format_float_none 4. U+F0263 md-format_align_right ☞ Found obsolete icon U+F5E7 ╭─[resources/config.jsonc:146:41] 145 │ "format-full": "{capacity}% {icon}", 146 │ "format-charging": "{capacity}% ", · ┬ · ╰── Icon 'mdi-cached' is marked as obsolete 147 │ "format-plugged": "{capacity}% ", ╰──── help: You could replace it with: 1. U+F00E8 md-cached ☞ Found obsolete icon U+F796 ╭─[resources/config.jsonc:170:45] 169 │ "format-wifi": "{essid} ({signalStrength}%) ", 170 │ "format-ethernet": "{ipaddr}/{cidr} ", · ┬ · ╰── Icon 'mdi-gamepad_variant' is marked as obsolete 171 │ "tooltip-format": "{ifname} via {gwaddr} ", ╰──── help: You could replace it with: 1. U+F0297 md-gamepad_variant 2. U+F0EB7 md-gamepad_variant_outline 3. U+F0462 md-road_variant 4. U+F025C md-food_variant ☞ Found obsolete icon U+F796 ╭─[resources/config.jsonc:171:50] 170 │ "format-ethernet": "{ipaddr}/{cidr} ", 171 │ "tooltip-format": "{ifname} via {gwaddr} ", · ┬ · ╰── Icon 'mdi-gamepad_variant' is marked as obsolete 172 │ "format-linked": "{ifname} (No IP) ", ╰──── help: You could replace it with: 1. U+F0297 md-gamepad_variant 2. U+F0EB7 md-gamepad_variant_outline 3. U+F0462 md-road_variant 4. U+F025C md-food_variant ☞ Found obsolete icon U+F796 ╭─[resources/config.jsonc:172:44] 171 │ "tooltip-format": "{ifname} via {gwaddr} ", 172 │ "format-linked": "{ifname} (No IP) ", · ┬ · ╰── Icon 'mdi-gamepad_variant' is marked as obsolete 173 │ "format-disconnected": "Disconnected ⚠", ╰──── help: You could replace it with: 1. U+F0297 md-gamepad_variant 2. U+F0EB7 md-gamepad_variant_outline 3. U+F0462 md-road_variant 4. U+F025C md-food_variant ☞ Found obsolete icon U+F6A9 ╭─[resources/config.jsonc:180:36] 179 │ "format-bluetooth": "{volume}% {icon} {format_source}", 180 │ "format-bluetooth-muted": " {icon} {format_source}", · ┬ · ╰── Icon 'mdi-cup' is marked as obsolete 181 │ "format-muted": " {format_source}", ╰──── help: You could replace it with: 1. U+F01AA md-cup ☞ Found obsolete icon U+F6A9 ╭─[resources/config.jsonc:181:26] 180 │ "format-bluetooth-muted": " {icon} {format_source}", 181 │ "format-muted": " {format_source}", · ┬ · ╰── Icon 'mdi-cup' is marked as obsolete 182 │ "format-source": "{volume}% ", ╰──── help: You could replace it with: 1. U+F01AA md-cup ☞ Found obsolete icon U+F590 ╭─[resources/config.jsonc:186:28] 185 │ "headphone": "", 186 │ "hands-free": "", · ┬ · ╰── Icon 'mdi-battery_unknown' is marked as obsolete 187 │ "headset": "", ╰──── help: You could replace it with: 1. U+F0091 md-battery_unknown 2. U+F094A md-battery_unknown_bluetooth 3. U+F17DE md-battery_arrow_down 4. U+F0750 md-microsoft_xbox_controller_battery_unknown ☞ Found obsolete icon U+F590 ╭─[resources/config.jsonc:187:25] 186 │ "hands-free": "", 187 │ "headset": "", · ┬ · ╰── Icon 'mdi-battery_unknown' is marked as obsolete 188 │ "phone": "", ╰──── help: You could replace it with: 1. U+F0091 md-battery_unknown 2. U+F094A md-battery_unknown_bluetooth 3. U+F17DE md-battery_arrow_down 4. U+F0750 md-microsoft_xbox_controller_battery_unknown ```
78 lines
2.5 KiB
C++
78 lines
2.5 KiB
C++
#pragma once
|
|
|
|
#include <iostream>
|
|
#include <map>
|
|
#include <string>
|
|
|
|
#include "ALabel.hpp"
|
|
#include "giomm/dbusconnection.h"
|
|
#include "giomm/dbusproxy.h"
|
|
#include "glibconfig.h"
|
|
#include "gtkmm/box.h"
|
|
#include "gtkmm/image.h"
|
|
#include "gtkmm/label.h"
|
|
#include "gtkmm/overlay.h"
|
|
|
|
namespace waybar::modules {
|
|
|
|
class Gamemode : public AModule {
|
|
public:
|
|
Gamemode(const std::string&, const Json::Value&);
|
|
virtual ~Gamemode();
|
|
auto update() -> void override;
|
|
|
|
private:
|
|
const std::string DEFAULT_ICON_NAME = "input-gaming-symbolic";
|
|
const std::string DEFAULT_FORMAT = "{glyph}";
|
|
const std::string DEFAULT_FORMAT_ALT = "{glyph} {count}";
|
|
const std::string DEFAULT_TOOLTIP_FORMAT = "Games running: {count}";
|
|
const std::string DEFAULT_GLYPH = "";
|
|
|
|
void appear(const Glib::RefPtr<Gio::DBus::Connection>& connection, const Glib::ustring& name,
|
|
const Glib::ustring& name_owner);
|
|
void disappear(const Glib::RefPtr<Gio::DBus::Connection>& connection, const Glib::ustring& name);
|
|
void prepareForSleep_cb(const Glib::RefPtr<Gio::DBus::Connection>& connection,
|
|
const Glib::ustring& sender_name, const Glib::ustring& object_path,
|
|
const Glib::ustring& interface_name, const Glib::ustring& signal_name,
|
|
const Glib::VariantContainerBase& parameters);
|
|
void notify_cb(const Glib::ustring& sender_name, const Glib::ustring& signal_name,
|
|
const Glib::VariantContainerBase& arguments);
|
|
|
|
void getData();
|
|
bool handleToggle(GdkEventButton* const&) override;
|
|
|
|
// Config
|
|
std::string format = DEFAULT_FORMAT;
|
|
std::string format_alt = DEFAULT_FORMAT_ALT;
|
|
std::string tooltip_format = DEFAULT_TOOLTIP_FORMAT;
|
|
std::string glyph = DEFAULT_GLYPH;
|
|
bool tooltip = true;
|
|
bool hideNotRunning = true;
|
|
bool useIcon = true;
|
|
uint iconSize = 20;
|
|
uint iconSpacing = 4;
|
|
std::string iconName = DEFAULT_ICON_NAME;
|
|
|
|
Gtk::Box box_;
|
|
Gtk::Image icon_;
|
|
Gtk::Label label_;
|
|
|
|
const std::string dbus_name = "com.feralinteractive.GameMode";
|
|
const std::string dbus_obj_path = "/com/feralinteractive/GameMode";
|
|
const std::string dbus_interface = "org.freedesktop.DBus.Properties";
|
|
const std::string dbus_get_interface = "com.feralinteractive.GameMode";
|
|
|
|
uint gameCount = 0;
|
|
|
|
std::string lastStatus;
|
|
bool showAltText = false;
|
|
|
|
guint login1_id;
|
|
Glib::RefPtr<Gio::DBus::Proxy> gamemode_proxy;
|
|
Glib::RefPtr<Gio::DBus::Connection> system_connection;
|
|
bool gamemodeRunning;
|
|
guint gamemodeWatcher_id;
|
|
};
|
|
|
|
} // namespace waybar::modules
|