{"id":38360586,"url":"https://github.com/mdirkse/i3ipc-go","last_synced_at":"2026-01-17T03:19:31.851Z","repository":{"id":45269714,"uuid":"89929486","full_name":"mdirkse/i3ipc-go","owner":"mdirkse","description":"Golang library for using the i3 windows manager IPC interface","archived":false,"fork":false,"pushed_at":"2021-04-11T00:43:43.000Z","size":51,"stargazers_count":25,"open_issues_count":4,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-19T23:24:45.551Z","etag":null,"topics":["api-client","golang","i3wm","ipc","tiling-window-manager","window-manager"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdirkse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-01T14:11:51.000Z","updated_at":"2024-05-26T15:04:22.000Z","dependencies_parsed_at":"2022-09-02T20:22:32.840Z","dependency_job_id":null,"html_url":"https://github.com/mdirkse/i3ipc-go","commit_stats":null,"previous_names":["mdirkse/i3ipc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mdirkse/i3ipc-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdirkse%2Fi3ipc-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdirkse%2Fi3ipc-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdirkse%2Fi3ipc-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdirkse%2Fi3ipc-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdirkse","download_url":"https://codeload.github.com/mdirkse/i3ipc-go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdirkse%2Fi3ipc-go/sbom","scorecard":{"id":633156,"data":{"date":"2025-08-11","repo":{"name":"github.com/mdirkse/i3ipc-go","commit":"ac599a8723751557e166ad0c43ae126d37223e30"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 1/25 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 9 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T08:26:09.191Z","repository_id":45269714,"created_at":"2025-08-21T08:26:09.191Z","updated_at":"2025-08-21T08:26:09.191Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28492644,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T02:39:23.645Z","status":"ssl_error","status_checked_at":"2026-01-17T02:34:19.649Z","response_time":85,"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":["api-client","golang","i3wm","ipc","tiling-window-manager","window-manager"],"created_at":"2026-01-17T03:19:31.147Z","updated_at":"2026-01-17T03:19:31.830Z","avatar_url":"https://github.com/mdirkse.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GoDoc](https://godoc.org/github.com/mdirkse/i3ipc-go?status.svg)](http://godoc.org/github.com/mdirkse/i3ipc-go/)\n[![Build Status](https://travis-ci.org/mdirkse/i3ipc-go.svg?branch=master)](https://travis-ci.org/mdirkse/i3ipc-go)\n[![Go Report Card](https://goreportcard.com/badge/github.com/mdirkse/i3ipc-go)](https://goreportcard.com/report/github.com/mdirkse/i3ipc-go)\n[![codecov](https://codecov.io/gh/mdirkse/i3ipc-go/branch/master/graph/badge.svg)](https://codecov.io/gh/mdirkse/i3ipc-go)\n[![BCH compliance](https://bettercodehub.com/edge/badge/mdirkse/i3ipc-go?branch=master)](https://bettercodehub.com/)\n\ni3ipc\n=====\n\nOverview\n--------\ni3ipc is a golang library for convenient access to the IPC API of the [i3 window manager](http://i3wm.org). If you want to take a look at the documentation then head to [http://godoc.org/github.com/mdirkse/i3ipc-go/][doc].\n\nCompatibility\n-------------\nThis library can be used with the i3 IPC as it is as of at least version [4.13](https://github.com/i3/i3/releases/tag/4.13). However, according to the i3 maintainers:\n\u003e The IPC isn't versioned. It can change with every release and usually does in one way or another. We only try to avoid breaking changes to the documented values since we consider those stable, but with good enough reason even those can change.\n\nWe'll do our best to make this library track the i3 IPC as closely as possible, but if you find anything missing (or broken) please file an issue or (even better) submit a pull request.\n\nUsage\n-----\nThanks to Go's built-in git support, you can start using i3ipc with a simple\n\n    import \"github.com/mdirkse/i3ipc\"\n\nFor everything except subscriptions, you will want to create an IPCSocket over which the communication will take place. This object has methods for all message types that i3 will accept, though some might be split into multiple methods (eg. *Get_Bar_Config*). You can create such a socket quite easily:\n\n    ipcsocket, err := i3ipc.GetIPCSocket()\n\nAs a simple example of what you could do next, let's get the version of i3 over our new socket:\n\n    version, err := ipcsocket.GetVersion()\n\nFor further commands, refer to `go doc` or use the aforementioned [website][doc].\n\n### Subscriptions\ni3ipc handles subscriptions in a convenient way: you don't have to think about managing the socket or watch out for unordered replies. The appropriate method simply returns a channel from which you can read Event objects.\n\nHere's a simple example - we start the event listener, we subscribe to workspace events, then simple print all of them as we receive them:\n\n    i3ipc.StartEventListener()\n    ws_events, err := i3ipc.Subscribe(i3ipc.I3WorkspaceEvent)\n    for {\n        event := \u003c-ws_events\n        fmt.Printf(\"Received an event: %v\\n\", event)\n    }\n\ni3ipc currently has no way of subscribing to multiple event types over a single channel. If you want this, you can simply create multiple subscriptions, then demultiplex those channels yourself - `select` is your friend.\n\nCredits\n-------\nMany thanks to [proxypoke](https://github.com/proxypoke) for originally starting this project.\n\n[doc]: http://godoc.org/github.com/mdirkse/i3ipc-go/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdirkse%2Fi3ipc-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdirkse%2Fi3ipc-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdirkse%2Fi3ipc-go/lists"}