Ecosyste.ms: Funds
An open API service for providing issue and pull request metadata for open source projects.
https://github.com/BurntSushi/xgb
Last synced: about 4 hours ago
Repository metadata:
The X Go Binding is a low-level API to communicate with the X server. It is modeled on XCB and supports many X extensions.
- Host: GitHub
- URL: https://github.com/BurntSushi/xgb
- Owner: BurntSushi
- License: other
- Created: 2012-04-29T03:26:36.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2022-02-12T02:29:16.000Z (over 2 years ago)
- Last Synced: 2024-10-29T19:59:26.673Z (11 days ago)
- Language: Go
- Homepage:
- Size: 1.83 MB
- Stars: 487
- Watchers: 16
- Forks: 75
- Open Issues: 24
-
Metadata Files:
- Readme: README
- License: LICENSE
Owner metadata:
- Name: Andrew Gallant
- Login: BurntSushi
- Email:
- Kind: user
- Description: I love to code.
- Website: https://burntsushi.net
- Location: Marlborough, MA
- Twitter:
- Company: @salesforce
- Icon url: https://avatars.githubusercontent.com/u/456674?v=4
- Repositories: 156
- Last Synced at: 2023-04-09T06:51:41.594Z
- Profile URL: https://github.com/BurntSushi
- Sponsor URL:
Committers metadata
Last synced: about 7 hours ago
Total Commits: 90
Total Committers: 11
Avg Commits per committer: 8.182
Development Distribution Score (DDS): 0.356
Commits in past year: 0
Committers in past year: 0
Avg Commits per committer in past year: 0.0
Development Distribution Score (DDS) in past year: 0.0
Name | Commits | |
---|---|---|
Andrew Gallant (Ocelot) | A****t@t****u | 58 |
Andrew Gallant | j****m@g****m | 19 |
aarzilli | a****i@g****m | 4 |
snyh | s****h@s****g | 2 |
Andy Williams | a****y@a****z | 1 |
Axel Wagner | m****l@m****e | 1 |
Bryan Matsuo | b****o@g****m | 1 |
Jvol Jvolizka | d****s@g****m | 1 |
Paul Sbarra | S****l@g****m | 1 |
Rabin Vincent | r****n@r****n | 1 |
fangyuanziti | t****g@g****m | 1 |
Issue and Pull Request metadata
Last synced: about 4 hours ago
Package metadata
- Total packages: 4
- Total downloads: unknown
- Total docker downloads: 14,549,024
- Total dependent packages: 498 (may contain duplicates)
- Total dependent repositories: 109,272 (may contain duplicates)
- Total versions: 5
go: github.com/BurntSushi/xgb
Package XGB provides the X Go Binding, which is a low-level API to communicate with the core X protocol and many of the X extensions. It is *very* closely modeled on XCB, so that experience with XCB (or xpyb) is easily translatable to XGB. That is, it uses the same cookie/reply model and is thread safe. There are otherwise no major differences (in the API). Most uses of XGB typically fall under the realm of window manager and GUI kit development, but other applications (like pagers, panels, tilers, etc.) may also require XGB. Moreover, it is a near certainty that if you need to work with X, xgbutil will be of great use to you as well: https://github.com/BurntSushi/xgbutil This is an extremely terse example that demonstrates how to connect to X, create a window, listen to StructureNotify events and Key{Press,Release} events, map the window, and print out all events received. An example with accompanying documentation can be found in examples/create-window. This is another small example that shows how to query Xinerama for geometry information of each active head. Accompanying documentation for this example can be found in examples/xinerama. XGB can benefit greatly from parallelism due to its concurrent design. For evidence of this claim, please see the benchmarks in xproto/xproto_test.go. xproto/xproto_test.go contains a number of contrived tests that stress particular corners of XGB that I presume could be problem areas. Namely: requests with no replies, requests with replies, checked errors, unchecked errors, sequence number wrapping, cookie buffer flushing (i.e., forcing a round trip every N requests made that don't have a reply), getting/setting properties and creating a window and listening to StructureNotify events. Both XCB and xpyb use the same Python module (xcbgen) for a code generator. XGB (before this fork) used the same code generator as well, but in my attempt to add support for more extensions, I found the code generator extremely difficult to work with. Therefore, I re-wrote the code generator in Go. It can be found in its own sub-package, xgbgen, of xgb. My design of xgbgen includes a rough consideration that it could be used for other languages. I am reasonably confident that the core X protocol is in full working form. I've also tested the Xinerama and RandR extensions sparingly. Many of the other existing extensions have Go source generated (and are compilable) and are included in this package, but I am currently unsure of their status. They *should* work. XKB is the only extension that intentionally does not work, although I suspect that GLX also does not work (however, there is Go source code for GLX that compiles, unlike XKB). I don't currently have any intention of getting XKB working, due to its complexity and my current mental incapacity to test it.
- Homepage: https://github.com/BurntSushi/xgb
- Documentation: https://pkg.go.dev/github.com/BurntSushi/xgb#section-documentation
- Licenses: BSD-3-Clause, GooglePatentClause
- Latest release: v0.0.0-20210121224620-deaf085860bc (published almost 4 years ago)
- Last Synced: 2024-11-09T00:07:28.792Z (1 day ago)
- Versions: 2
- Dependent Packages: 498
- Dependent Repositories: 109,272
- Docker Downloads: 72,607
-
Rankings:
- Dependent repos count: 0.008%
- Dependent packages count: 0.196%
- Docker downloads count: 0.99%
- Average: 1.365%
- Stargazers count: 2.668%
- Forks count: 2.961%
go: github.com/Burntsushi/xgb
Package XGB provides the X Go Binding, which is a low-level API to communicate with the core X protocol and many of the X extensions. It is *very* closely modeled on XCB, so that experience with XCB (or xpyb) is easily translatable to XGB. That is, it uses the same cookie/reply model and is thread safe. There are otherwise no major differences (in the API). Most uses of XGB typically fall under the realm of window manager and GUI kit development, but other applications (like pagers, panels, tilers, etc.) may also require XGB. Moreover, it is a near certainty that if you need to work with X, xgbutil will be of great use to you as well: https://github.com/BurntSushi/xgbutil This is an extremely terse example that demonstrates how to connect to X, create a window, listen to StructureNotify events and Key{Press,Release} events, map the window, and print out all events received. An example with accompanying documentation can be found in examples/create-window. This is another small example that shows how to query Xinerama for geometry information of each active head. Accompanying documentation for this example can be found in examples/xinerama. XGB can benefit greatly from parallelism due to its concurrent design. For evidence of this claim, please see the benchmarks in xproto/xproto_test.go. xproto/xproto_test.go contains a number of contrived tests that stress particular corners of XGB that I presume could be problem areas. Namely: requests with no replies, requests with replies, checked errors, unchecked errors, sequence number wrapping, cookie buffer flushing (i.e., forcing a round trip every N requests made that don't have a reply), getting/setting properties and creating a window and listening to StructureNotify events. Both XCB and xpyb use the same Python module (xcbgen) for a code generator. XGB (before this fork) used the same code generator as well, but in my attempt to add support for more extensions, I found the code generator extremely difficult to work with. Therefore, I re-wrote the code generator in Go. It can be found in its own sub-package, xgbgen, of xgb. My design of xgbgen includes a rough consideration that it could be used for other languages. I am reasonably confident that the core X protocol is in full working form. I've also tested the Xinerama and RandR extensions sparingly. Many of the other existing extensions have Go source generated (and are compilable) and are included in this package, but I am currently unsure of their status. They *should* work. XKB is the only extension that intentionally does not work, although I suspect that GLX also does not work (however, there is Go source code for GLX that compiles, unlike XKB). I don't currently have any intention of getting XKB working, due to its complexity and my current mental incapacity to test it.
- Homepage: https://github.com/Burntsushi/xgb
- Documentation: https://pkg.go.dev/github.com/Burntsushi/xgb#section-documentation
- Licenses: BSD-3-Clause, GooglePatentClause
- Latest release: v0.0.0-20210121224620-deaf085860bc (published almost 4 years ago)
- Last Synced: 2024-11-09T00:07:27.990Z (1 day ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Stargazers count: 1.658%
- Forks count: 1.829%
- Average: 4.958%
- Dependent packages count: 6.999%
- Dependent repos count: 9.346%
go: github.com/burntsushi/xgb
Package XGB provides the X Go Binding, which is a low-level API to communicate with the core X protocol and many of the X extensions. It is *very* closely modeled on XCB, so that experience with XCB (or xpyb) is easily translatable to XGB. That is, it uses the same cookie/reply model and is thread safe. There are otherwise no major differences (in the API). Most uses of XGB typically fall under the realm of window manager and GUI kit development, but other applications (like pagers, panels, tilers, etc.) may also require XGB. Moreover, it is a near certainty that if you need to work with X, xgbutil will be of great use to you as well: https://github.com/BurntSushi/xgbutil This is an extremely terse example that demonstrates how to connect to X, create a window, listen to StructureNotify events and Key{Press,Release} events, map the window, and print out all events received. An example with accompanying documentation can be found in examples/create-window. This is another small example that shows how to query Xinerama for geometry information of each active head. Accompanying documentation for this example can be found in examples/xinerama. XGB can benefit greatly from parallelism due to its concurrent design. For evidence of this claim, please see the benchmarks in xproto/xproto_test.go. xproto/xproto_test.go contains a number of contrived tests that stress particular corners of XGB that I presume could be problem areas. Namely: requests with no replies, requests with replies, checked errors, unchecked errors, sequence number wrapping, cookie buffer flushing (i.e., forcing a round trip every N requests made that don't have a reply), getting/setting properties and creating a window and listening to StructureNotify events. Both XCB and xpyb use the same Python module (xcbgen) for a code generator. XGB (before this fork) used the same code generator as well, but in my attempt to add support for more extensions, I found the code generator extremely difficult to work with. Therefore, I re-wrote the code generator in Go. It can be found in its own sub-package, xgbgen, of xgb. My design of xgbgen includes a rough consideration that it could be used for other languages. I am reasonably confident that the core X protocol is in full working form. I've also tested the Xinerama and RandR extensions sparingly. Many of the other existing extensions have Go source generated (and are compilable) and are included in this package, but I am currently unsure of their status. They *should* work. XKB is the only extension that intentionally does not work, although I suspect that GLX also does not work (however, there is Go source code for GLX that compiles, unlike XKB). I don't currently have any intention of getting XKB working, due to its complexity and my current mental incapacity to test it.
- Homepage: https://github.com/burntsushi/xgb
- Documentation: https://pkg.go.dev/github.com/burntsushi/xgb#section-documentation
- Licenses: BSD-3-Clause, GooglePatentClause
- Latest release: v0.0.0-20210121224620-deaf085860bc (published almost 4 years ago)
- Last Synced: 2024-11-09T00:07:28.026Z (1 day ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
- Docker Downloads: 14,476,417
-
Rankings:
- Stargazers count: 1.658%
- Forks count: 1.829%
- Average: 4.958%
- Dependent packages count: 6.999%
- Dependent repos count: 9.346%
go: github.com/burntSushi/xgb
Package XGB provides the X Go Binding, which is a low-level API to communicate with the core X protocol and many of the X extensions. It is *very* closely modeled on XCB, so that experience with XCB (or xpyb) is easily translatable to XGB. That is, it uses the same cookie/reply model and is thread safe. There are otherwise no major differences (in the API). Most uses of XGB typically fall under the realm of window manager and GUI kit development, but other applications (like pagers, panels, tilers, etc.) may also require XGB. Moreover, it is a near certainty that if you need to work with X, xgbutil will be of great use to you as well: https://github.com/BurntSushi/xgbutil This is an extremely terse example that demonstrates how to connect to X, create a window, listen to StructureNotify events and Key{Press,Release} events, map the window, and print out all events received. An example with accompanying documentation can be found in examples/create-window. This is another small example that shows how to query Xinerama for geometry information of each active head. Accompanying documentation for this example can be found in examples/xinerama. XGB can benefit greatly from parallelism due to its concurrent design. For evidence of this claim, please see the benchmarks in xproto/xproto_test.go. xproto/xproto_test.go contains a number of contrived tests that stress particular corners of XGB that I presume could be problem areas. Namely: requests with no replies, requests with replies, checked errors, unchecked errors, sequence number wrapping, cookie buffer flushing (i.e., forcing a round trip every N requests made that don't have a reply), getting/setting properties and creating a window and listening to StructureNotify events. Both XCB and xpyb use the same Python module (xcbgen) for a code generator. XGB (before this fork) used the same code generator as well, but in my attempt to add support for more extensions, I found the code generator extremely difficult to work with. Therefore, I re-wrote the code generator in Go. It can be found in its own sub-package, xgbgen, of xgb. My design of xgbgen includes a rough consideration that it could be used for other languages. I am reasonably confident that the core X protocol is in full working form. I've also tested the Xinerama and RandR extensions sparingly. Many of the other existing extensions have Go source generated (and are compilable) and are included in this package, but I am currently unsure of their status. They *should* work. XKB is the only extension that intentionally does not work, although I suspect that GLX also does not work (however, there is Go source code for GLX that compiles, unlike XKB). I don't currently have any intention of getting XKB working, due to its complexity and my current mental incapacity to test it.
- Homepage: https://github.com/burntSushi/xgb
- Documentation: https://pkg.go.dev/github.com/burntSushi/xgb#section-documentation
- Licenses: BSD-3-Clause, GooglePatentClause
- Latest release: v0.0.0-20210121224620-deaf085860bc (published almost 4 years ago)
- Last Synced: 2024-11-09T00:07:28.786Z (1 day ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Stargazers count: 1.658%
- Forks count: 1.829%
- Average: 4.958%
- Dependent packages count: 6.999%
- Dependent repos count: 9.346%