mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-11-01 00:12:42 +01:00 
			
		
		
		
	added backend and hyprland/window
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; | ||||
| }; | ||||
|  | ||||
							
								
								
									
										29
									
								
								include/modules/hyprland/window.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								include/modules/hyprland/window.hpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| #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; | ||||
|  | ||||
| private: | ||||
|   void onEvent(const std::string&); | ||||
|  | ||||
|   const Bar& bar_; | ||||
|   IPC ipc; | ||||
|   unsigned app_icon_size_{24}; | ||||
|   bool update_app_icon_{true}; | ||||
|   std::string app_icon_name_; | ||||
|   util::JsonParser parser_; | ||||
|   std::string lastView; | ||||
| }; | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 vaxerski
					vaxerski