Implement raw icon support for dunstify
Add the ability to send raw icons with dunstify -I <file path>.
This commit is contained in:
		
							parent
							
								
									ec7905f50f
								
							
						
					
					
						commit
						86c917fc95
					
				
							
								
								
									
										7
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								Makefile
									
									
									
									
									
								
							| @ -37,15 +37,13 @@ dunst: options ${OBJ} main.o | |||||||
| 	@echo "${CC} ${CFLAGS} -o $@ ${OBJ} ${LDFLAGS}" | 	@echo "${CC} ${CFLAGS} -o $@ ${OBJ} ${LDFLAGS}" | ||||||
| 	@${CC} ${CFLAGS} -o $@ ${OBJ} main.o ${LDFLAGS} | 	@${CC} ${CFLAGS} -o $@ ${OBJ} main.o ${LDFLAGS} | ||||||
| 
 | 
 | ||||||
| dunstify: |  | ||||||
| 	@${CC} ${CFLAGS} -o $@ dunstify.c -std=c99 $(shell pkg-config --libs --cflags glib-2.0 libnotify) |  | ||||||
| 
 |  | ||||||
| clean-dunst: | clean-dunst: | ||||||
| 	rm -f dunst ${OBJ} main.o | 	rm -f dunst ${OBJ} main.o | ||||||
| 	rm -f org.knopwob.dunst.service | 	rm -f org.knopwob.dunst.service | ||||||
| 	rm -f dunst.systemd.service | 	rm -f dunst.systemd.service | ||||||
| 
 | 
 | ||||||
| clean-dunstify: | clean-dunstify: | ||||||
|  | 	rm -f dunstify.o | ||||||
| 	rm -f dunstify | 	rm -f dunstify | ||||||
| 
 | 
 | ||||||
| clean-doc: | clean-doc: | ||||||
| @ -104,4 +102,7 @@ test/test: ${OBJ} ${TEST_OBJ} | |||||||
| test-clean: | test-clean: | ||||||
| 	rm -f test/test test/*.o | 	rm -f test/test test/*.o | ||||||
| 
 | 
 | ||||||
|  | dunstify: dunstify.o | ||||||
|  | 	${CC} ${CFLAGS} -o $@ dunstify.o $(shell pkg-config --libs --cflags glib-2.0 libnotify gdk-2.0) | ||||||
|  | 
 | ||||||
| .PHONY: all options clean dist install uninstall | .PHONY: all options clean dist install uninstall | ||||||
|  | |||||||
							
								
								
									
										11
									
								
								dunstify.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								dunstify.c
									
									
									
									
									
								
							| @ -3,6 +3,7 @@ | |||||||
| #include <stdbool.h> | #include <stdbool.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  | #include <gdk-pixbuf/gdk-pixbuf.h> | ||||||
| 
 | 
 | ||||||
| static gchar *appname = "dunstify"; | static gchar *appname = "dunstify"; | ||||||
| static gchar *summary = NULL; | static gchar *summary = NULL; | ||||||
| @ -13,6 +14,7 @@ static gchar **hint_strs = NULL; | |||||||
| static gchar **action_strs = NULL; | static gchar **action_strs = NULL; | ||||||
| static gint timeout = NOTIFY_EXPIRES_DEFAULT; | static gint timeout = NOTIFY_EXPIRES_DEFAULT; | ||||||
| static gchar *icon = NULL; | static gchar *icon = NULL; | ||||||
|  | static gchar *raw_icon_path = NULL; | ||||||
| static gboolean capabilities = false; | static gboolean capabilities = false; | ||||||
| static gboolean serverinfo = false; | static gboolean serverinfo = false; | ||||||
| static gboolean printid = false; | static gboolean printid = false; | ||||||
| @ -28,6 +30,7 @@ static GOptionEntry entries[] = | |||||||
|     { "action", 'A', 0, G_OPTION_ARG_STRING_ARRAY, &action_strs, "Actions the user can invoke", "ACTION" }, |     { "action", 'A', 0, G_OPTION_ARG_STRING_ARRAY, &action_strs, "Actions the user can invoke", "ACTION" }, | ||||||
|     { "timeout", 't', 0, G_OPTION_ARG_INT, &timeout, "The time until the notification expires", "TIMEOUT" }, |     { "timeout", 't', 0, G_OPTION_ARG_INT, &timeout, "The time until the notification expires", "TIMEOUT" }, | ||||||
|     { "icon",    'i', 0, G_OPTION_ARG_STRING, &icon, "An Icon that should be displayed with the notification", "ICON" }, |     { "icon",    'i', 0, G_OPTION_ARG_STRING, &icon, "An Icon that should be displayed with the notification", "ICON" }, | ||||||
|  |     { "raw_icon", 'I', 0, G_OPTION_ARG_STRING, &raw_icon_path, "Path to the icon to be sent as raw image data", "RAW_ICON"}, | ||||||
|     { "capabilities",   'c', 0, G_OPTION_ARG_NONE, &capabilities, "Print the server capabilities and exit", NULL}, |     { "capabilities",   'c', 0, G_OPTION_ARG_NONE, &capabilities, "Print the server capabilities and exit", NULL}, | ||||||
|     { "serverinfo", 's', 0, G_OPTION_ARG_NONE, &serverinfo, "Print server information and exit", NULL}, |     { "serverinfo", 's', 0, G_OPTION_ARG_NONE, &serverinfo, "Print server information and exit", NULL}, | ||||||
|     { "printid", 'p', 0, G_OPTION_ARG_NONE, &printid, "Print id, which can be used to update/replace this notification", NULL}, |     { "printid", 'p', 0, G_OPTION_ARG_NONE, &printid, "Print id, which can be used to update/replace this notification", NULL}, | ||||||
| @ -266,6 +269,14 @@ int main(int argc, char *argv[]) | |||||||
| 
 | 
 | ||||||
|     GError *err = NULL; |     GError *err = NULL; | ||||||
| 
 | 
 | ||||||
|  |     if (raw_icon_path) { | ||||||
|  |             notify_notification_set_image_from_pixbuf(n, gdk_pixbuf_new_from_file(raw_icon_path, &err)); | ||||||
|  |             if(err) { | ||||||
|  |                 g_printerr("Unable to close notification: %s\n", err->message); | ||||||
|  |                 die(1); | ||||||
|  |             } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     if (close_id > 0) { |     if (close_id > 0) { | ||||||
|         put_id(n, close_id); |         put_id(n, close_id); | ||||||
|         notify_notification_close(n, &err); |         notify_notification_close(n, &err); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Nikos Tsipinakis
						Nikos Tsipinakis