mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-10-31 16:02:43 +01:00 
			
		
		
		
	Merge branch 'Alexays:master' into ISSUE#1545
This commit is contained in:
		
							
								
								
									
										30
									
								
								include/modules/hyprland/backend.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								include/modules/hyprland/backend.hpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| #pragma once | ||||
| #include <string> | ||||
| #include <memory> | ||||
| #include <mutex> | ||||
| #include <deque> | ||||
| #include <functional> | ||||
| #include <thread> | ||||
|  | ||||
| namespace waybar::modules::hyprland { | ||||
| class IPC { | ||||
| public: | ||||
|   IPC() { startIPC(); } | ||||
|  | ||||
|   void registerForIPC(const std::string&, std::function<void(const std::string&)>); | ||||
|  | ||||
|   std::string getSocket1Reply(const std::string& rq); | ||||
|  | ||||
| private: | ||||
|  | ||||
|  void startIPC(); | ||||
|  void parseIPC(const std::string&); | ||||
|  | ||||
|  std::mutex callbackMutex; | ||||
|  std::deque<std::pair<std::string, std::function<void(const std::string&)>>> callbacks; | ||||
| }; | ||||
|  | ||||
| inline std::unique_ptr<IPC> gIPC; | ||||
| inline bool modulesReady = false; | ||||
| }; | ||||
|  | ||||
							
								
								
									
										28
									
								
								include/modules/hyprland/window.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								include/modules/hyprland/window.hpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| #include <fmt/format.h> | ||||
|  | ||||
| #include <tuple> | ||||
|  | ||||
| #include "ALabel.hpp" | ||||
| #include "bar.hpp" | ||||
| #include "modules/hyprland/backend.hpp" | ||||
| #include "util/json.hpp" | ||||
|  | ||||
| namespace waybar::modules::hyprland { | ||||
|  | ||||
| class Window : public waybar::ALabel { | ||||
| public: | ||||
|   Window(const std::string&, const waybar::Bar&, const Json::Value&); | ||||
|   ~Window() = default; | ||||
|  | ||||
|   auto update() -> void; | ||||
|  | ||||
| private: | ||||
|   void onEvent(const std::string&); | ||||
|  | ||||
|   std::mutex mutex_; | ||||
|   const Bar& bar_; | ||||
|   util::JsonParser parser_; | ||||
|   std::string lastView; | ||||
| }; | ||||
|  | ||||
| } | ||||
| @@ -21,7 +21,7 @@ class Window : public AIconLabel, public sigc::trackable { | ||||
|  private: | ||||
|   void onEvent(const struct Ipc::ipc_response&); | ||||
|   void onCmd(const struct Ipc::ipc_response&); | ||||
|   std::tuple<std::size_t, int, std::string, std::string, std::string> getFocusedNode( | ||||
|   std::tuple<std::size_t, int, std::string, std::string, std::string, std::string> getFocusedNode( | ||||
|       const Json::Value& nodes, std::string& output); | ||||
|   void getTree(); | ||||
|   std::string rewriteTitle(const std::string& title); | ||||
| @@ -35,6 +35,7 @@ class Window : public AIconLabel, public sigc::trackable { | ||||
|   std::string app_class_; | ||||
|   std::string old_app_id_; | ||||
|   std::size_t app_nb_; | ||||
|   std::string shell_; | ||||
|   unsigned app_icon_size_{24}; | ||||
|   bool update_app_icon_{true}; | ||||
|   std::string app_icon_name_; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 ViktarL
					ViktarL