Added option for forcing X11 on wayland.
Also added some more documentation.
This commit is contained in:
		
							parent
							
								
									836d044df8
								
							
						
					
					
						commit
						25e1d0c442
					
				
							
								
								
									
										3
									
								
								config.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								config.h
									
									
									
									
									
								
							| @ -48,6 +48,9 @@ struct settings defaults = { | ||||
| .notification_height = 0,    /* if notification height < font height and padding, it will be raised */ | ||||
| .corner_radius = 0, | ||||
| 
 | ||||
| .force_xinerama = false, | ||||
| .force_xwayland = false, | ||||
| 
 | ||||
| .separator_height = 2,       /* height of the separator line between two notifications */ | ||||
| .padding = 0, | ||||
| .h_padding = 0,              /* horizontal padding */ | ||||
|  | ||||
| @ -82,6 +82,10 @@ starts at 0. See the B<follow> setting. | ||||
| Defines where the notifications should be placed in a multi-monitor setup. All | ||||
| values except I<none> override the B<monitor> setting. | ||||
| 
 | ||||
| On Wayland there is no difference between mouse and keyboard focus. When either | ||||
| of the is used, the compositor will choose an output. This will generally be | ||||
| the output last interacted with. | ||||
| 
 | ||||
| =over 4 | ||||
| 
 | ||||
| =item B<none> | ||||
| @ -278,7 +282,7 @@ The bottom layer is below all windows and above the background. | ||||
| 
 | ||||
| Default: top | ||||
| 
 | ||||
| =item B<use_xwayland> (values: [true/false], default: false) (Wayland only) | ||||
| =item B<force_xwayland> (values: [true/false], default: false) (Wayland only) | ||||
| 
 | ||||
| Force the use of X11 output, even on a wayland compositor. This setting | ||||
| has no effect when not using a Wayland compositor. | ||||
| @ -569,7 +573,7 @@ the notification sent before the user defined timeout. | ||||
| 
 | ||||
| =back | ||||
| 
 | ||||
| =head2 Shortcut section B<DEPRECATED SEE DUNSTCTL> | ||||
| =head2 Shortcut section B<DEPRECATED SEE DUNSTCTL> (X11 only) | ||||
| 
 | ||||
| Keyboard shortcuts are defined in the following format: "Modifier+key" where the | ||||
| modifier is one of ctrl,mod1,mod2,mod3,mod4 and key is any keyboard key. | ||||
| @ -679,6 +683,29 @@ Past notifications are redisplayed in a first-in-last-out order, meaning that | ||||
| pressing the history key once will bring up the most recent notification that | ||||
| had been closed/timed out. | ||||
| 
 | ||||
| =head1 WAYLAND | ||||
| 
 | ||||
| Dunst has Wayland support since version 1.6.0. Because the Wayland protocol | ||||
| is more focused on security, some things that are possible in X11 are not | ||||
| possible in Wayland. Those differences are reflected in the configuration. | ||||
| The main things that change are that dunst on Wayland cannot use global | ||||
| hotkeys (they are deprecated anyways, use dunstctl) and it cannot detect | ||||
| if an application is fullscreen. If you want to see notifications when in | ||||
| fullscreen, set B<layer = overlay> in the global options. | ||||
| 
 | ||||
| Note that the same limitations exist when using xwayland. | ||||
| If something doesn't quite work in Wayland, please file a bug report. In the | ||||
| mean time, you can try if the X11 output does work on wayland. Use | ||||
| B<force_xwayland = true> for that. | ||||
| 
 | ||||
| If you have your dunst notifications on the same side of your display as your | ||||
| status bar, you might notice that your notifications appear a bit higher or | ||||
| lower than on X11. This is because the notification cannot be placed on top of | ||||
| your status bar. The notifications are placed relative to your status bar, | ||||
| making them appear higher or lower by the height of your status bar. We cannot | ||||
| do anything about that behavior, so you will need to change your B<geometry> | ||||
| variable accordingly. | ||||
| 
 | ||||
| =head1 RULES | ||||
| 
 | ||||
| Rules allow the conditional modification of notifications. They are defined by | ||||
|  | ||||
| @ -48,7 +48,7 @@ PangoFontDescription *pango_fdesc; | ||||
| 
 | ||||
| void draw_setup(void) | ||||
| { | ||||
|         const struct output *out = output_create(); | ||||
|         const struct output *out = output_create(settings.force_xwayland); | ||||
|         output = out; | ||||
| 
 | ||||
|         out->init(); | ||||
|  | ||||
| @ -55,9 +55,9 @@ const struct output output_wl = { | ||||
|         wl_have_fullscreen_window | ||||
| }; | ||||
| 
 | ||||
| const struct output* output_create(void) | ||||
| const struct output* output_create(bool force_xwayland) | ||||
| { | ||||
|         if (is_running_wayland()) { | ||||
|         if (!force_xwayland && is_running_wayland()) { | ||||
|                 LOG_I("Using Wayland output"); | ||||
|                 return &output_wl; | ||||
|         } else { | ||||
|  | ||||
| @ -47,7 +47,7 @@ struct output { | ||||
|         bool (*have_fullscreen_window)(void); | ||||
| }; | ||||
| 
 | ||||
| const struct output* output_create(void); | ||||
| const struct output* output_create(bool force_xwayland); | ||||
| 
 | ||||
| const bool is_running_wayland(void); | ||||
| 
 | ||||
|  | ||||
| @ -118,6 +118,12 @@ void load_settings(char *cmdline_config_path) | ||||
|                 "Force the use of the Xinerama extension" | ||||
|         ); | ||||
| 
 | ||||
|         settings.force_xwayland = option_get_bool( | ||||
|                 "global", | ||||
|                 "force_xwayland", "-force_xwayland", false, | ||||
|                 "Force the use of the xwayland output" | ||||
|         ); | ||||
| 
 | ||||
|         settings.font = option_get_string( | ||||
|                 "global", | ||||
|                 "font", "-font/-fn", defaults.font, | ||||
|  | ||||
| @ -90,6 +90,7 @@ struct settings { | ||||
|         struct keyboard_shortcut history_ks; | ||||
|         struct keyboard_shortcut context_ks; | ||||
|         bool force_xinerama; | ||||
|         bool force_xwayland; | ||||
|         int corner_radius; | ||||
|         enum mouse_action *mouse_left_click; | ||||
|         enum mouse_action *mouse_middle_click; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 fwsmit
						fwsmit