spawn function
This commit is contained in:
		
							parent
							
								
									e17f9fd459
								
							
						
					
					
						commit
						06f344c8fb
					
				| @ -135,7 +135,6 @@ void Bar::render() | |||||||
|     renderText(layoutNames[_layout]); |     renderText(layoutNames[_layout]); | ||||||
|     _titleX = _x; |     _titleX = _x; | ||||||
|     renderText(_title); |     renderText(_title); | ||||||
|     _statusX = _x; |  | ||||||
|     renderStatus(); |     renderStatus(); | ||||||
|      |      | ||||||
|     _painter = nullptr; |     _painter = nullptr; | ||||||
| @ -184,8 +183,8 @@ void Bar::renderStatus() | |||||||
| { | { | ||||||
|     _painter->fillRect(_x, 0, _bufs->width-_x, _bufs->height, _painter->brush()); |     _painter->fillRect(_x, 0, _bufs->width-_x, _bufs->height, _painter->brush()); | ||||||
|     auto size = textWidth(_status) + paddingX; |     auto size = textWidth(_status) + paddingX; | ||||||
|     _x = _bufs->width - size; |     _statusX = _bufs->width - size; | ||||||
|     _painter->drawText(paddingX+_x, _textY, _status); |     _painter->drawText(paddingX+_statusX, _textY, _status); | ||||||
|     _x = _bufs->width; |     _x = _bufs->width; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -15,9 +15,7 @@ struct ColorScheme { | |||||||
|     QColor fg, bg; |     QColor fg, bg; | ||||||
| }; | }; | ||||||
| union Arg { | union Arg { | ||||||
| 	int i; |  | ||||||
| 	unsigned int ui; | 	unsigned int ui; | ||||||
| 	float f; |  | ||||||
| 	const void *v; | 	const void *v; | ||||||
| }; | }; | ||||||
| struct Monitor; | struct Monitor; | ||||||
| @ -42,6 +40,7 @@ void toggleview(Monitor &m, const Arg &arg); | |||||||
| void setlayout(Monitor &m, const Arg &arg); | void setlayout(Monitor &m, const Arg &arg); | ||||||
| void tag(Monitor &m, const Arg &arg); | void tag(Monitor &m, const Arg &arg); | ||||||
| void toggletag(Monitor &m, const Arg &arg); | void toggletag(Monitor &m, const Arg &arg); | ||||||
|  | void spawn(Monitor&, const Arg &arg); | ||||||
| 
 | 
 | ||||||
| // wayland smart pointers
 | // wayland smart pointers
 | ||||||
| template<typename T> | template<typename T> | ||||||
|  | |||||||
| @ -15,6 +15,7 @@ constexpr bool fontBold = false; | |||||||
| 
 | 
 | ||||||
| constexpr ColorScheme colorInactive = {QColor(0xbb, 0xbb, 0xbb), QColor(0x22, 0x22, 0x22)}; | constexpr ColorScheme colorInactive = {QColor(0xbb, 0xbb, 0xbb), QColor(0x22, 0x22, 0x22)}; | ||||||
| constexpr ColorScheme colorActive = {QColor(0xee, 0xee, 0xee), QColor(0x00, 0x55, 0x77)}; | constexpr ColorScheme colorActive = {QColor(0xee, 0xee, 0xee), QColor(0x00, 0x55, 0x77)}; | ||||||
|  | constexpr const char *termcmd[] = {"foot", nullptr}; | ||||||
| 
 | 
 | ||||||
| constexpr Button buttons[] = { | constexpr Button buttons[] = { | ||||||
|     { ClkTagBar,       BTN_LEFT,   toggleview, {0} }, |     { ClkTagBar,       BTN_LEFT,   toggleview, {0} }, | ||||||
| @ -23,4 +24,5 @@ constexpr Button buttons[] = { | |||||||
|     { ClkTagBar,       BTN_MIDDLE, toggletag,  {0} }, |     { ClkTagBar,       BTN_MIDDLE, toggletag,  {0} }, | ||||||
|     { ClkLayoutSymbol, BTN_LEFT,   setlayout,  {.ui = 0} }, |     { ClkLayoutSymbol, BTN_LEFT,   setlayout,  {.ui = 0} }, | ||||||
|     { ClkLayoutSymbol, BTN_RIGHT,  setlayout,  {.ui = 2} }, |     { ClkLayoutSymbol, BTN_RIGHT,  setlayout,  {.ui = 2} }, | ||||||
|  |     { ClkWinTitle,     BTN_RIGHT,  spawn,      {.v = termcmd} }, | ||||||
| }; | }; | ||||||
|  | |||||||
							
								
								
									
										11
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/main.cpp
									
									
									
									
									
								
							| @ -90,6 +90,17 @@ void toggletag(Monitor &m, const Arg &arg) | |||||||
| { | { | ||||||
|     znet_tapesoftware_dwl_wm_monitor_v1_set_client_tags(m.dwlMonitor.get(), 0xffffff, arg.ui); |     znet_tapesoftware_dwl_wm_monitor_v1_set_client_tags(m.dwlMonitor.get(), 0xffffff, arg.ui); | ||||||
| } | } | ||||||
|  | void spawn(Monitor&, const Arg &arg) | ||||||
|  | { | ||||||
|  |     if (fork()) { | ||||||
|  |         auto argv = static_cast<char* const*>(arg.v); | ||||||
|  |         setsid(); | ||||||
|  |         execvp(argv[0], argv); | ||||||
|  |         fprintf(stderr, "somebar: execvp %s ", argv[0]); | ||||||
|  |         perror(" failed"); | ||||||
|  |         exit(1); | ||||||
|  |     } | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| static const struct xdg_wm_base_listener xdgWmBaseListener = { | static const struct xdg_wm_base_listener xdgWmBaseListener = { | ||||||
|     [](void*, xdg_wm_base *sender, uint32_t serial) { |     [](void*, xdg_wm_base *sender, uint32_t serial) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user