{"id":29130644,"url":"https://github.com/elementary/contractor","last_synced_at":"2026-02-17T23:32:50.346Z","repository":{"id":48694281,"uuid":"87888559","full_name":"elementary/contractor","owner":"elementary","description":"A desktop-wide extension service used by elementary OS","archived":false,"fork":false,"pushed_at":"2025-08-11T23:52:16.000Z","size":774,"stargazers_count":33,"open_issues_count":11,"forks_count":11,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-10-26T11:21:39.926Z","etag":null,"topics":["pantheon"],"latest_commit_sha":null,"homepage":"https://elementary.io","language":"Vala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elementary.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"elementary","patreon":"elementary","liberapay":"elementary","custom":"https://elementary.io/get-involved#funding"}},"created_at":"2017-04-11T04:33:09.000Z","updated_at":"2025-09-22T15:06:16.000Z","dependencies_parsed_at":"2025-06-30T04:08:25.528Z","dependency_job_id":"dc73303b-baec-4e56-8b8f-511c0b360e21","html_url":"https://github.com/elementary/contractor","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/elementary/contractor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elementary%2Fcontractor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elementary%2Fcontractor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elementary%2Fcontractor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elementary%2Fcontractor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elementary","download_url":"https://codeload.github.com/elementary/contractor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elementary%2Fcontractor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29562227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T21:50:49.831Z","status":"ssl_error","status_checked_at":"2026-02-17T21:46:15.313Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["pantheon"],"created_at":"2025-06-30T04:08:08.395Z","updated_at":"2026-02-17T23:32:45.333Z","avatar_url":"https://github.com/elementary.png","language":"Vala","readme":"# Contractor\n\n## Building, Testing, and Installation\n\nYou'll need the following dependencies:\n* libdbus-1-dev\n* libgee-0.8-dev\n* libglib2.0-dev\n* meson\n* valac\n\nRun `meson` to configure the build environment and then `ninja` to build\n\n    meson build --prefix=/usr\n    cd build\n    ninja\n\nTo install, use `ninja install`\n\n    sudo ninja install\n\n## Writing Contract Files\nelementary Files, Photos and other apps support adding options to the context menu by the way of Contract files. \n\nThese Contract files can be made system wide available by adding them to:\n`/usr/share/contractor`\nor for specific users by adding them to:\n`~/.local/share/contractor`\n\nSimple .contract file example:\n```\n[Contractor Entry]\nName=Mount\nMimeType=application/x-cd-image;application/x-raw-disk-image\nExec=gnome-disk-image-mounter %f\n```\n\n- `Name`: Text displayed in the right click context menu.\n- `MimeType`: Mimetype(s) of files it should be shown for.\n- `Exec`: Command to execute. [More info](https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#exec-variables).\n\nTips:\n- Use `pkexec` to ask for root permissions. Example: `Exec=pkexec chmod +x %U`\n\n## Examples\n- [Send by Email](https://github.com/elementary/mail/blob/master/data/mail-attach.contract)\n- [Print](https://github.com/elementary/pantheon-print/blob/master/data/print.contract)\n- [Send files via Bluetooth](https://github.com/codygarver/os-patch-gnome-bluetooth-xenial/blob/master/debian/gnome-bluetooth.contract)\n- [Compress](https://github.com/codygarver/os-patch-file-roller-xenial/blob/master/data/file-roller-compress.contract)\n- [Extract Here](https://github.com/codygarver/os-patch-file-roller-xenial/blob/master/data/file-roller-extract-here.contract)\n- [Write onto removable device](https://github.com/artemanufrij/imageburner/blob/master/data/com.github.artemanufrij.imageburner.contract)\n- [QR Share](https://github.com/mubitosh/qrshare/blob/master/data/com.github.mubitosh.qrshare.contract)\n- [Wallpaperize](https://github.com/Philip-Scott/wallpaperize/blob/master/data/com.github.philip-scott.wallpaperize.contract)\n- [Show checksum](https://github.com/artemanufrij/hashit/blob/1d295b2a340d840898999059dd808439294aa89a/data/com.github.artemanufrij.hashit.contract)\n- [GPG Encrypt/Decrypt](https://github.com/phocean/contracts-gpg)\n","funding_links":["https://github.com/sponsors/elementary","https://patreon.com/elementary","https://liberapay.com/elementary","https://elementary.io/get-involved#funding"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felementary%2Fcontractor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felementary%2Fcontractor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felementary%2Fcontractor/lists"}