{"id":19336746,"url":"https://github.com/samrocketman/libgimp.js","last_synced_at":"2026-03-01T02:04:05.962Z","repository":{"id":145442273,"uuid":"42616758","full_name":"samrocketman/libgimp.js","owner":"samrocketman","description":"Goals: write plugins in JavaScript for GIMP.","archived":false,"fork":false,"pushed_at":"2020-10-18T07:13:33.000Z","size":376,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-24T08:13:34.359Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Groff","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samrocketman.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-16T22:28:42.000Z","updated_at":"2016-03-11T00:46:31.000Z","dependencies_parsed_at":"2023-07-07T21:31:38.903Z","dependency_job_id":null,"html_url":"https://github.com/samrocketman/libgimp.js","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/samrocketman/libgimp.js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrocketman%2Flibgimp.js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrocketman%2Flibgimp.js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrocketman%2Flibgimp.js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrocketman%2Flibgimp.js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samrocketman","download_url":"https://codeload.github.com/samrocketman/libgimp.js/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrocketman%2Flibgimp.js/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284807785,"owners_count":27066464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-17T02:00:06.431Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T03:12:20.290Z","updated_at":"2025-11-17T02:03:12.343Z","avatar_url":"https://github.com/samrocketman.png","language":"Groff","funding_links":[],"categories":[],"sub_categories":[],"readme":"CIS 399: Libgimp\nJavascript engine for GIMP\n===================================================================\n\nThis repository contains our (Scott Freeman \u0026 Pratyusha Gupta) attempt at establishing a basic format for the Javascript plug-in development environment suggested by the GIMP community for the 2011 Google Summer of Code (http://wiki.gimp.org/wiki/Hacking:GSoC/2011/Ideas#Support_writing_JavaScript_plug-ins).\n\nThe vast majority of our files are in order to allow autobuild to occur. The actual terminal code is located in src/main.c. We had difficulty allowing automake to work due to issues with internationalizing using the tools provided. After reaching out to the community via IRC and attempting to contact the original authors (the template code is 11 years old), we were unable to resolve the issue. Thus, to build the code, please type ./configure and then make \u0026\u0026 make install as seperate commands.\n\nMain.c has the following functionality:\n\nstatic void query (void);\nstatic void run   (const gchar      *name,\n                   gint              nparams,\n                   const GimpParam  *param,\n                   gint             *nreturn_vals,\n                   GimpParam       **return_vals);\nstatic void js_fu_submit (GtkWidget *widget,\n                          GtkTextBuffer *buffer);\n\nQuery is the initalization function that sets up the basic parameters for the plugin. This includes, but is not limited to, the title, authors, add-on name, add-on type, parameters, etc.\n\nThe run function is called when the plug-in is loaded. This sets up our Gtk Widget. Specifically, our Gtk is set up as follows:\n- A new dialog is created\n- A box is packed into the dialog\n- A scrolled window is backed into the box\n- A text buffer and textbox are backed into the box\n- A button is packed into the box\n- There is a signal redirection from the button into js_fu_submit\n\nThe js_fu_submit command is called when the submit button is pressed. This method does the following:\n- Creates a new file called main.js\n- Execs a new instance of bash to run a script called script.js (described below), which executes our GObject Introspection\n\t- The script first makes the js-greeter.c files, which contains the code for generating a simple GObject namespace.\n\t- The namespace has an instance variable greetee and one one greet() method, which prints out \"Hello, \" + greetee.\n\t- Then, Gjs takes our namespace and generates a JavaScript library that can be used\n\t- The program also outputs a .gir file, which contains an XML representation of the Js namespace we created\n\t- The script then takes in our generated JS file and generates a greeter binary, which will print out the message when run\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamrocketman%2Flibgimp.js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamrocketman%2Flibgimp.js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamrocketman%2Flibgimp.js/lists"}