Advertisement
Guest User

start-dark.vala

a guest
Jun 24th, 2013
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Vala 0.98 KB | None | 0 0
  1. // compile with: valac --pkg libwnck-3.0 -X -DWNCK_I_KNOW_THIS_IS_UNSTABLE --pkg x11 start-dark.vala
  2.  
  3. int main(string[] args)
  4. {
  5.     Gtk.init(ref args);
  6.  
  7.     if (args.length < 2)
  8.         error("Please define a program");
  9.    
  10.     Pid pid = -1;
  11.     try {
  12.     Process.spawn_async(null, args[1:args.length - 1], Environ.get(), SpawnFlags.DO_NOT_REAP_CHILD, null, out pid);
  13.     } catch (Error e) { error(e.message); }
  14.    
  15.     var screen = Wnck.Screen.get_default();
  16.     screen.force_update();
  17.  
  18.     var dpy = new X.Display(null);
  19.     var theme_variant = dpy.intern_atom("_GTK_THEME_VARIANT", false);
  20.     var utf8_string = dpy.intern_atom("UTF8_STRING", false);
  21.  
  22.     Idle.add(() => {
  23.         unowned List<Wnck.Window> windows = screen.get_windows();
  24.         foreach (var window in windows) {
  25.             if (window.get_pid() == pid) {
  26.                 dpy.change_property(window.get_xid(), theme_variant, utf8_string, 8, X.PropMode.Replace, (uchar[])"dark", 4);
  27.                 Gtk.main_quit();
  28.                 return false;
  29.             }
  30.         }
  31.         return true;
  32.     });
  33.  
  34.     Gtk.main();
  35.     return 0;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement