{"body":" std::string session_id = test_mode_ ? \"id0\" : glib::gchar_to_string(g_getenv(\"XDG_SESSION_ID\"));\n\n    if (!session_id.empty())\n    {\n      CallLogindMethod(\"GetSession\", g_variant_new(\"(s)\", session_id), [this, session_id] (GVariant* variant, glib::Error const& err) {\n        std::string session_path;\n\n        if (!err && variant)\n          session_path = glib::Variant(variant).GetString();\n\n        if (session_path.empty())\n          session_path = \"/org/freedesktop/login1/session/\" + session_id;\n\n        SetupLogin1Proxy(session_path);\n      });\n    }\n    else\n    {\n      auto proxy = std::make_shared<glib::DBusProxy>(\"org.freedesktop.login1\",\n                                                     \"/org/freedesktop/login1/user/self\",\n                                                     \"org.freedesktop.login1.User\",\n                                                     G_BUS_TYPE_SYSTEM);\n\n      proxy->GetProperty(\"Display\", [this, proxy] (GVariant *variant) {\n        if (!variant || g_variant_n_children(variant) < 2)\n          return;\n\n        glib::Variant tmp(g_variant_get_child_value(variant, 1), glib::StealRef());\n        SetupLogin1Proxy(tmp.GetString());\n      });\n    }","name":"","extension":"txt","url":"https://www.irccloud.com/pastebin/1oiH3TZr","modified":1478103291,"id":"1oiH3TZr","size":1195,"lines":31,"own_paste":false,"theme":"","date":1478103291}