mirror of
https://codeberg.org/scip/swayipc.git
synced 2025-12-16 20:20:56 +01:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9cd6e4a6b9 | |||
|
|
61ff94f09c | ||
| 47c55fae5c | |||
|
|
1cde07a07b |
47
.github/workflows/ci.yaml
vendored
47
.github/workflows/ci.yaml
vendored
@@ -1,47 +0,0 @@
|
|||||||
name: build-and-test
|
|
||||||
on: [push, pull_request]
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
version: ['1.22']
|
|
||||||
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
||||||
name: Build
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- name: Set up Go
|
|
||||||
uses: actions/setup-go@v3
|
|
||||||
with:
|
|
||||||
go-version: '${{ matrix.version }}'
|
|
||||||
id: go
|
|
||||||
|
|
||||||
- name: checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: build
|
|
||||||
run: go build
|
|
||||||
|
|
||||||
# - name: test
|
|
||||||
# run: make test
|
|
||||||
|
|
||||||
# - name: Update coverage report
|
|
||||||
# uses: ncruces/go-coverage-report@main
|
|
||||||
# with:
|
|
||||||
# report: true
|
|
||||||
# chart: true
|
|
||||||
# amend: true
|
|
||||||
# if: |
|
|
||||||
# matrix.os == 'ubuntu-latest' &&
|
|
||||||
# github.event_name == 'push'
|
|
||||||
# continue-on-error: true
|
|
||||||
|
|
||||||
golangci:
|
|
||||||
name: lint
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/setup-go@v3
|
|
||||||
with:
|
|
||||||
go-version: 1.22
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: golangci-lint
|
|
||||||
uses: golangci/golangci-lint-action@v3
|
|
||||||
27
.woodpecker/build.yaml
Normal file
27
.woodpecker/build.yaml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
matrix:
|
||||||
|
platform:
|
||||||
|
- linux/amd64
|
||||||
|
goversion:
|
||||||
|
- 1.24
|
||||||
|
|
||||||
|
labels:
|
||||||
|
platform: ${platform}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
build:
|
||||||
|
when:
|
||||||
|
event: [push]
|
||||||
|
image: golang:${goversion}
|
||||||
|
commands:
|
||||||
|
- go get
|
||||||
|
- go build
|
||||||
|
|
||||||
|
linter:
|
||||||
|
when:
|
||||||
|
event: [push]
|
||||||
|
image: golang:${goversion}
|
||||||
|
commands:
|
||||||
|
- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.5.0
|
||||||
|
- golangci-lint --version
|
||||||
|
- golangci-lint run ./...
|
||||||
|
depends_on: [build]
|
||||||
22
README.md
22
README.md
@@ -1,7 +1,7 @@
|
|||||||
[](https://goreportcard.com/report/github.com/tlinden/swayipc)
|
[](https://ci.codeberg.org/repos/15565)
|
||||||
[](https://github.com/tlinden/swayipc/actions)
|
[](https://goreportcard.com/report/codeberg.org/scip/swayipc)
|
||||||

|
[](https://codeberg.org/scip/swayipc/raw/branch/main/LICENSE)
|
||||||
[](https://godoc.org/github.com/tlinden/swayipc)
|
[](https://godoc.org/codeberg.org/scip/swayipc)
|
||||||
|
|
||||||
# swayipc - go bindings to control sway and swayfx
|
# swayipc - go bindings to control sway and swayfx
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ haven't tested it on i3wm.
|
|||||||
The module uses the i3-IPC proctocol as outlined in sway-ipc(7).
|
The module uses the i3-IPC proctocol as outlined in sway-ipc(7).
|
||||||
|
|
||||||
For details on how to use the library, see the
|
For details on how to use the library, see the
|
||||||
[reference documentation](https://godoc.org/github.com/tlinden/swayipc).
|
[reference documentation](https://godoc.org/codeberg.org/scip/swayipc).
|
||||||
|
|
||||||
## Example usage
|
## Example usage
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@@ -69,17 +69,17 @@ func main() {
|
|||||||
Also take a look into the **_examples** folder for more examples.
|
Also take a look into the **_examples** folder for more examples.
|
||||||
|
|
||||||
For a more comprehensive and practical example look at the
|
For a more comprehensive and practical example look at the
|
||||||
[descratch](https://github.com/TLINDEN/sway-descratch) program which
|
[descratch](https://codeberg.org/scip/sway-descratch) program which
|
||||||
you can use to selectively retrieve a window from the scratchpad.
|
you can use to selectively retrieve a window from the scratchpad.
|
||||||
|
|
||||||
You may also take a look at the [tool swaycycle](https://github.com/tlinden/swaycycle)
|
You may also take a look at the [tool swaycycle](https://codeberg.org/scip/swaycycle)
|
||||||
which is using this module.
|
which is using this module.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Execute this to add the module to your project:
|
Execute this to add the module to your project:
|
||||||
```sh
|
```sh
|
||||||
go get github.com/tlinden/swayipc
|
go get codeberg.org/scip/swayipc/v2
|
||||||
```
|
```
|
||||||
|
|
||||||
## Acknowledgements
|
## Acknowledgements
|
||||||
@@ -95,7 +95,7 @@ best way for me to forget to do something.
|
|||||||
|
|
||||||
In order to report a bug, unexpected behavior, feature requests or to
|
In order to report a bug, unexpected behavior, feature requests or to
|
||||||
submit a patch, please open an issue on github:
|
submit a patch, please open an issue on github:
|
||||||
https://github.com/TLINDEN/swayipc/issues.
|
https://codeberg.org/scip/swayipc/issues.
|
||||||
|
|
||||||
## Copyright and license
|
## Copyright and license
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ T.v.Dein <tom AT vondein DOT org>
|
|||||||
|
|
||||||
## Project homepage
|
## Project homepage
|
||||||
|
|
||||||
https://github.com/TLINDEN/swayipc
|
https://codeberg.org/scip/swayipc
|
||||||
|
|
||||||
## Copyright and License
|
## Copyright and License
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/alecthomas/repr"
|
"github.com/alecthomas/repr"
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Event callback function, needs to implement each subscribed events,
|
// Event callback function, needs to implement each subscribed events,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/alecthomas/repr"
|
"github.com/alecthomas/repr"
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/alecthomas/repr"
|
"github.com/alecthomas/repr"
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/alecthomas/repr"
|
"github.com/alecthomas/repr"
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/alecthomas/repr"
|
"github.com/alecthomas/repr"
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/alecthomas/repr"
|
"github.com/alecthomas/repr"
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/alecthomas/repr"
|
"github.com/alecthomas/repr"
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/alecthomas/repr"
|
"github.com/alecthomas/repr"
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/alecthomas/repr"
|
"github.com/alecthomas/repr"
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/alecthomas/repr"
|
"github.com/alecthomas/repr"
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/alecthomas/repr"
|
"github.com/alecthomas/repr"
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/tlinden/swayipc"
|
"codeberg.org/scip/swayipc/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -1,4 +1,4 @@
|
|||||||
module github.com/tlinden/swayipc
|
module codeberg.org/scip/swayipc/v2
|
||||||
|
|
||||||
go 1.23
|
go 1.23
|
||||||
|
|
||||||
|
|||||||
4
net.go
4
net.go
@@ -34,8 +34,8 @@ func (ipc *SwayIPC) Connect() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Close the socket.
|
// Close the socket.
|
||||||
func (ipc *SwayIPC) Close() {
|
func (ipc *SwayIPC) Close() error {
|
||||||
ipc.socket.Close()
|
return ipc.socket.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ipc *SwayIPC) sendHeader(messageType uint32, len uint32) error {
|
func (ipc *SwayIPC) sendHeader(messageType uint32, len uint32) error {
|
||||||
|
|||||||
2
node.go
2
node.go
@@ -11,9 +11,11 @@ type Node struct {
|
|||||||
Id int `json:"id"`
|
Id int `json:"id"`
|
||||||
Type string `json:"type"` // output, workspace or container
|
Type string `json:"type"` // output, workspace or container
|
||||||
Name string `json:"name"` // workspace number or app name
|
Name string `json:"name"` // workspace number or app name
|
||||||
|
Output string `json:"output"`
|
||||||
Nodes []*Node `json:"nodes"`
|
Nodes []*Node `json:"nodes"`
|
||||||
FloatingNodes []*Node `json:"floating_nodes"`
|
FloatingNodes []*Node `json:"floating_nodes"`
|
||||||
Focused bool `json:"focused"`
|
Focused bool `json:"focused"`
|
||||||
|
Visible bool `json:"visible"`
|
||||||
Urgent bool `json:"urgent"`
|
Urgent bool `json:"urgent"`
|
||||||
Sticky bool `json:"sticky"`
|
Sticky bool `json:"sticky"`
|
||||||
Border string `json:"border"`
|
Border string `json:"border"`
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
VERSION = "v0.3.0"
|
VERSION = "v1.0.0"
|
||||||
|
|
||||||
IPC_HEADER_SIZE = 14
|
IPC_HEADER_SIZE = 14
|
||||||
IPC_MAGIC = "i3-ipc"
|
IPC_MAGIC = "i3-ipc"
|
||||||
|
|||||||
Reference in New Issue
Block a user