gimp but for windows: a wayland compositor
git clone https://github.com/m-col/wimp
Files | Refs | Readme

Commit bd719e46da3325a43e514432438dbd781e2194c1
Parent: d4ee960e9e832376b1e1879cb291c315a1b5b2ac
Author: mcol <mcol@posteo.net>
Date: 2021-02-12 23:45:02 +0000
Committer: mcol <mcol@posteo.net>
Committed: 2021-02-12 23:45:02 +0000

add general corner colours even without mods, to bind to actions

wimp.conf Modified

@@ -19,16 +19,18 @@
 #auto_start ${XDG_CONFIG_HOME:-$HOME}/.config/wimp/autostart
 
 #desks 2
-#desk 1 background #5D479D
+#desk 1 background #31475c
 #desk 1 borders normal #3e3e73
-#desk 1 borders focus #998dd1
-#desk 1 borders width 4
-#desk 1 corners resize #406794
+#desk 1 corners normal #31315c
+#desk 1 borders focus #47315c
+#desk 1 corners focus #7e5992
+#desk 1 borders width 6
 #desk 2 background #3e3e73
-#desk 2 borders normal #5D479D
-#desk 2 borders focus #998dd1
+#desk 2 borders normal #31475c
+#desk 1 corners normal #3e5973
+#desk 2 borders focus #47315c
+#desk 1 corners focus #7e5992
 #desk 2 borders width 6
-#desk 2 corners resize #3e3e73
 desk 1 background ~/path/to/tiling-image.png
 
 # Magnification bounds

src/types.h Modified

@@ -88,7 +88,6 @@
     struct wl_listener request_set_selection_listener;
     struct wl_list keyboards;
     enum wlr_keyboard_modifier mod;
-    bool mod_on;
     struct wl_list key_bindings;
     struct wl_list mouse_bindings;
 
@@ -173,7 +172,8 @@
     float background[4];
     float border_normal[4];
     float border_focus[4];
-    float corner_resize[4];
+    float corner_normal[4];
+    float corner_focus[4];
     int border_width;
     struct wallpaper *wallpaper;
     double panned_x, panned_y;

src/output.c Modified

@@ -58,29 +58,21 @@
 		rdata->is_focussed ? wimp.current_desk->border_focus : wimp.current_desk->border_normal,
 		output->transform_matrix
 	    );
-	    if (wimp.mod_on) {
-		struct wlr_box corners = {
-		    .x = borders.x,
-		    .y = borders.y,
-		    .width = 24,
-		    .height = 24,
-		};
-		wlr_render_rect(
-		    rdata->renderer, &corners, wimp.current_desk->corner_resize, output->transform_matrix
-		);
-		corners.x = borders.x + borders.width - 24;
-		wlr_render_rect(
-		    rdata->renderer, &corners, wimp.current_desk->corner_resize, output->transform_matrix
-		);
-		corners.y = borders.y + borders.height - 24;
-		wlr_render_rect(
-		    rdata->renderer, &corners, wimp.current_desk->corner_resize, output->transform_matrix
-		);
-		corners.x = borders.x;
-		wlr_render_rect(
-		    rdata->renderer, &corners, wimp.current_desk->corner_resize, output->transform_matrix
-		);
-	    }
+	    struct wlr_box corners = {
+		.x = borders.x,
+		.y = borders.y,
+		.width = 24,
+		.height = 24,
+	    };
+	    float *corner = rdata->is_focussed ?
+		wimp.current_desk->corner_focus : wimp.current_desk->corner_normal;
+	    wlr_render_rect(rdata->renderer, &corners, corner, output->transform_matrix);
+	    corners.x = borders.x + borders.width - 24;
+	    wlr_render_rect(rdata->renderer, &corners, corner, output->transform_matrix);
+	    corners.y = borders.y + borders.height - 24;
+	    wlr_render_rect(rdata->renderer, &corners, corner, output->transform_matrix);
+	    corners.x = borders.x;
+	    wlr_render_rect(rdata->renderer, &corners, corner, output->transform_matrix);
 	}
     }
 

src/main.c Modified

@@ -29,14 +29,13 @@
     .on_drag3 = NULL,
     .on_pinch = NULL,
     .desk_count = 0,
-    .mod_on = false,
     .mark_waiting = false,
     .mark_indicator.box.width = 25,
     .mark_indicator.box.height = 25,
     .mark_indicator.box.x = 0,
     .mark_indicator.box.y = 0,
     .scratchpad_waiting = false,
-    .auto_focus = false,
+    .auto_focus = true,
 };
 
 

src/input.c Modified

@@ -52,15 +52,6 @@
 		handled = true;
 	    }
 	}
-	if (!wimp.mod_on) {
-	    wimp.mod_on = true;
-	    damage_all_views();
-	}
-    } else {
-	if (wimp.mod_on) {
-	    wimp.mod_on = false;
-	    damage_all_views();
-	}
     }
 
     if (!handled){

src/desk.c Modified

@@ -10,11 +10,12 @@
     struct desk *desk = calloc(1, sizeof(struct desk));
     wl_list_insert(wimp.desks.prev, &desk->link);
     wl_list_init(&desk->views);
-    assign_colour("#5D479D", desk->background);
+    assign_colour("#31475c", desk->background);
     assign_colour("#3e3e73", desk->border_normal);
-    assign_colour("#998dd1", desk->border_focus);
-    assign_colour("#406794", desk->corner_resize);
-    desk->border_width = 4;
+    assign_colour("#31315c", desk->corner_normal);
+    assign_colour("#47315c", desk->border_focus);
+    assign_colour("#7e5992", desk->corner_focus);
+    desk->border_width = 6;
     desk->wallpaper = NULL;
     desk->index = wimp.desk_count;
     desk->zoom = 1;

src/config.c Modified

@@ -22,23 +22,15 @@
 
 static const char *DEFAULT_CONFIG =  "\n\
 desks 2\n\
-desk 1 background #5D479D\n\
-desk 1 borders normal #3e3e73\n\
-desk 1 borders focus #998dd1\n\
-desk 1 borders width 4\n\
-desk 1 corners resize #406794\n\
 desk 2 background #3e3e73\n\
-desk 2 borders normal #5D479D\n\
-desk 2 borders focus #998dd1\n\
-desk 2 borders width 6\n\
-desk 2 corners resize #3e3e73\n\
+desk 2 borders normal #31475c\n\
+desk 2 corners normal #3e5973\n\
 zoom_min 0.2\n\
 zoom_max 5\n\
-mark_indicator #000000\n\
+mark_indicator #47315c\n\
 vt_switching on\n\
 scroll_direction natural\n\
 set_modifier Logo\n\
-auto_focus on\n\
 bind Ctrl Escape shutdown\n\
 ";
 
@@ -591,11 +583,14 @@
 		    }
 		}
 
-		// desk <index> corners resize <#rrggbb>
+		// desk <index> corners [focus|normal] <#rrggbb>
 		else if (!strcasecmp(s, "corners")) {
 		    s = strtok(NULL, " \t\n\r");
-		    if (!strcasecmp(s, "resize")) {
-			assign_colour(strtok(NULL, " \t\n\r"), desk->corner_resize);
+		    if (!strcasecmp(s, "normal")) {
+			assign_colour(strtok(NULL, " \t\n\r"), desk->corner_normal);
+		    }
+		    else if (!strcasecmp(s, "focus")) {
+			assign_colour(strtok(NULL, " \t\n\r"), desk->corner_focus);
 		    }
 		}
 	    }