Skip to content

Instantly share code, notes, and snippets.

@smiler
Created May 24, 2012 09:34
Show Gist options
  • Save smiler/2780465 to your computer and use it in GitHub Desktop.
Save smiler/2780465 to your computer and use it in GitHub Desktop.
< bjarni> det här pluginet kommer att bli kungen av alla plugins
< smiler> plugin till vad?
< bjarni> kombinationen av gimp och emacs är super effective! :D
< bjarni> smiler: plugin till gimp
< smiler> aha
< jeppe> smiler: det kör emacs
< smiler> :|
...
< bjarni> holy shit, det funkar!
< bjarni> ska försöka förklara...
< bjarni> pluginet skapar ett menyalternativ som skapar en dialogruta med en drawing_area i, och hookar map-eventen för drawing_arean till en fin callback...
< bjarni> callbacken börjar med att köra system() för att starta en emacsclient i no-wait-mode för att skicka ett filnamn till en körande instans av emacs
< bjarni> om det lyckas är emacs redan igång, annars behöver vi starta det...
< bjarni> då tar vi och öppnar en fifo på ett förutbestämt ställe i hemkatalogen och sätter den till nonblocking mode och läser från den tills vi får eof (bara för att tömma den om det ligger skräp i den)
< vol> Gnhhhhhhhhh
< bjarni> sen kör vi system() igen för att starta en rxvt i embed-mode med drawing_areans fönster
* vol vrider sig i dödsplågor
< bjarni> rxvt:n startar en screen som startar en emacs som laddar en elisp-fil som startar en emacs-server :D
< bjarni> sen anropar vi fcntl() för att slå av nonblocking mode på fifo:n
< vol> Riktigt jävla.. Gnhhhhhh.. Helvete..
< bjarni> sen selectar vi på fifon tills den blir läslig
< bjarni> samtidigt i en annan process kör emacs lisp-skript ett shell som ekar till fifon :D
< bjarni> så när vi kan läsa från fifon vet vi att emacs har startat
< bjarni> då kan vi köra emacsclient igen för att få emacs att öppna filen vi ska redigera :D
< bjarni> TADA!!! :D :D
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment