]> git.sur5r.net Git - i3/i3/commitdiff
Implement i3 --get-socketpath, useful for IPC scripts
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 2 Oct 2011 15:12:10 +0000 (16:12 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 2 Oct 2011 15:12:10 +0000 (16:12 +0100)
In order to not depend on X11 just for getting the socket paths, scripts or
other programs can now use i3 --get-socketpath. Since i3 must be present on the
computer anyways, this saves one dependency :).

include/all.h
src/main.c

index 9c08ebef8e8067c241dfb5f087b45374a5c64cbf..38cda89c53824285c521329893e9312998917755 100644 (file)
@@ -65,5 +65,6 @@
 #include "ewmh.h"
 #include "assignments.h"
 #include "regex.h"
+#include "libi3.h"
 
 #endif
index d51c8c6597d27175dd663c06f0fb188695c2c5e7..19c4568183384f6e9bf6d429d28209094f2d19f4 100644 (file)
@@ -189,6 +189,7 @@ int main(int argc, char *argv[]) {
         {"restart", required_argument, 0, 0},
         {"force-xinerama", no_argument, 0, 0},
         {"disable-signalhandler", no_argument, 0, 0},
+        {"get-socketpath", no_argument, 0, 0},
         {0, 0, 0, 0}
     };
     int option_index = 0, opt;
@@ -247,6 +248,14 @@ int main(int argc, char *argv[]) {
                 } else if (strcmp(long_options[option_index].name, "disable-signalhandler") == 0) {
                     disable_signalhandler = true;
                     break;
+                } else if (strcmp(long_options[option_index].name, "get-socketpath") == 0) {
+                    char *socket_path = socket_path_from_x11();
+                    if (socket_path) {
+                        printf("%s\n", socket_path);
+                        return 0;
+                    }
+
+                    return 1;
                 } else if (strcmp(long_options[option_index].name, "restart") == 0) {
                     FREE(layout_path);
                     layout_path = sstrdup(optarg);