Compare commits

...

7 commits

Author SHA1 Message Date
7e03a1b364 update readme
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-08-21 20:18:51 +02:00
1f1b6e3772
apply linter
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-08-07 23:26:39 +02:00
23cacd940f
upgrade to golang 1.22 2024-08-07 23:26:30 +02:00
23f5b32d2c
upgrade to golang 1.22 2024-08-07 23:25:19 +02:00
ba7f37dbb6
fix spotify block
Some checks failed
ci/woodpecker/tag/woodpecker Pipeline failed
ci/woodpecker/push/woodpecker Pipeline was successful
2024-08-07 23:21:42 +02:00
e9df618c59
apply linter 2024-08-07 23:21:28 +02:00
3345c46837
volume: replace amixer with pamixer
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
volume: use sink instead of channel
2024-08-04 17:46:47 +02:00
18 changed files with 89 additions and 57 deletions

View file

@ -1,11 +1,11 @@
steps:
vendor:
image: golang:1.18
image: golang:1.22
commands:
- go mod vendor
build:
image: golang:1.18
image: golang:1.22
commands:
- make
- mkdir release

View file

@ -14,3 +14,9 @@ linux-arm64:
clean:
rm -fr build/* 2>/dev/null || true
tool-gofumpt:
which golangci-lint > /dev/null 2>&1 || go install mvdan.cc/gofumpt@latest
fmt: tool-gofumpt
gofumpt -w --extra .

View file

@ -10,6 +10,7 @@ Blocks compatible with [i3blocks](https://github.com/vivien/i3blocks).
* `df` for `du` block
* `xdg-open` for `du` block
* `playerctl` for `spotify` block
* `pamixer` for `volume` block
## Installation
@ -101,7 +102,7 @@ markup=pango
interval=3
[ip_eth0_ip6]
command=/path/to/ip -iface=eth0 -version=ip4 -name=Bar
command=/path/to/ip -iface=eth0 -version=ip6 -name=Bar
format=json
markup=pango
interval=3
@ -179,9 +180,11 @@ interval=3
Show volume.
Note: use `pamixer --list-sinks`
```
[volume]
command=/path/to/volume -channel=Master
command=/path/to/volume -sinks="Default:alsa_output.pci-0000_00_1f.3.analog-stereo;Headset:bluez_output.00_1B_66_B6_87_05"
format=json
markup=pango
interval=1

View file

@ -2,6 +2,7 @@ package main
import (
"fmt"
"github.com/enescakir/emoji"
"github.com/xellio/tools/acpi"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
@ -13,7 +14,6 @@ import (
func main() {
datas, err := acpi.Battery()
if err != nil {
return
}

View file

@ -3,10 +3,11 @@ package main
import (
"flag"
"fmt"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
"os"
"os/exec"
"sync"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
)
func runCmd(wg *sync.WaitGroup, value string) {

View file

@ -3,10 +3,11 @@ package main
import (
"flag"
"fmt"
"time"
"github.com/enescakir/emoji"
"github.com/itchyny/timefmt-go"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
"time"
)
func main() {

View file

@ -3,12 +3,13 @@ package main
import (
"flag"
"fmt"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
"os"
"os/exec"
"strconv"
"strings"
"sync"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
)
func DiskUsage(path string) int {

View file

@ -3,12 +3,13 @@ package main
import (
"flag"
"fmt"
"github.com/atotto/clipboard"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
"net"
"os"
"regexp"
"strings"
"github.com/atotto/clipboard"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
)
func main() {
@ -24,7 +25,6 @@ func main() {
)
iface, err := net.InterfaceByName(*argIface)
if err != nil {
return
}

View file

@ -2,16 +2,16 @@ package main
import (
"fmt"
"github.com/atotto/clipboard"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
"io"
"net/http"
"os"
"github.com/atotto/clipboard"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
)
func main() {
resp, err := http.Get("https://api.ipify.org/")
if err != nil {
return
}

View file

@ -4,12 +4,13 @@ import (
"encoding/json"
"flag"
"fmt"
"github.com/itchyny/timefmt-go"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
"io"
"net/http"
"strconv"
"time"
"github.com/itchyny/timefmt-go"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
)
type Telemetry struct {
@ -24,7 +25,6 @@ func main() {
flag.Parse()
resp, err := http.Get(*argApi)
if err != nil {
return
}

View file

@ -3,9 +3,10 @@ package main
import (
"flag"
"fmt"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
"os/exec"
"strings"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
)
func ProcessExists(process string) bool {

View file

@ -3,13 +3,14 @@ package main
import (
"flag"
"fmt"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
"io"
"net/http"
"os"
"os/exec"
"strings"
"sync"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
)
type Telemetry struct {
@ -41,7 +42,6 @@ func main() {
}
resp, err := http.Get(*argFeed)
if err != nil {
return
}

View file

@ -2,15 +2,10 @@ package main
import (
"fmt"
sos"
"os/"
"os"
"os/exec"
"strings"
r "gitnet.fr/deblan/i3-blocks-gsrrindg
r "gitnet.fr/deblan/i3-blocks-gsrrindg
r "gitnet.fr/deblan/i3-blocks-gsrrindg
r "gitnet.fr/deblan/i3-blocks-gsrrindg
r "gitnet.fr/deblan/i3-blocks-gsrrindg
r "gitnet.fr/deblan/i3-blocks-go/rendering"
)

View file

@ -3,46 +3,68 @@ package main
import (
"flag"
"fmt"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
"os/exec"
"regexp"
"strconv"
"strings"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
)
func Volume(channel string) int {
output, _ := exec.Command("amixer", "get", channel).Output()
func Volume(id string) int {
output, _ := exec.Command("pamixer", "--sink", id, "--get-volume").Output()
regex, _ := regexp.Compile(`\[(\d+)%\]`)
data := regex.FindStringSubmatch(string(output))
volume, _ := strconv.Atoi(data[1])
volume, _ := strconv.Atoi(strings.TrimSpace(string(output)))
return volume
}
func main() {
argChannel := flag.String("channel", "Master", "the channel")
argSinks := flag.String("sinks", "", "list of sinks, eg: CUSTOM_NAME:SINK_VALUE;CUSTOM_NAME2:SINK_VALUE2")
flag.Parse()
volume := Volume(*argChannel)
sinks := strings.Split(*argSinks, ";")
var symbole string
var items []string
if volume == 0 {
symbole = "\uf026"
} else if volume < 50 {
symbole = "\uf027"
} else {
symbole = "\uf028"
for _, sink := range sinks {
info := strings.Split(sink, ":")
if len(info) != 2 {
continue
}
name := info[0]
id := info[1]
volume := Volume(id)
var symbole string
if volume == 0 {
symbole = "\uf026"
} else if volume < 50 {
symbole = "\uf027"
} else {
symbole = "\uf028"
}
label := r.TextWithPadding(
name,
r.FB{
Foreground: r.Color("grey1"),
Background: r.Color("black2"),
},
)
value := r.TextWithPadding(fmt.Sprintf("%d%% %s", volume, r.FontAwesome(symbole)), r.FB{
Foreground: r.Color("grey1"),
Background: r.Color("black1"),
})
items = append(items, fmt.Sprintf("%s%s", label, value))
}
value := r.TextWithPadding(fmt.Sprintf("%d%% %s", volume, r.FontAwesome(symbole)), r.FB{
Foreground: r.Color("grey1"),
Background: r.Color("black1"),
})
options := r.NewBlockOptions()
options.FullText = value
options.FullText = strings.Join(items, "")
block := r.Block("volume", options)
fmt.Println(block)

View file

@ -3,13 +3,14 @@ package main
import (
"flag"
"fmt"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
"io"
"net/http"
"os"
"os/exec"
"strings"
"sync"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
)
func openBrowser(wg *sync.WaitGroup, url string) {
@ -34,7 +35,6 @@ func main() {
}
resp, err := http.Get(url)
if err != nil {
return
}

View file

@ -3,11 +3,12 @@ package main
import (
"flag"
"fmt"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
"net"
"os"
"os/exec"
"strings"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
)
func main() {

View file

@ -2,13 +2,14 @@ package main
import (
"encoding/json"
"fmt"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
// "os"
"flag"
"fmt"
"os/exec"
"strconv"
"strings"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
// "os"
)
type WindowProperty struct {

2
go.mod
View file

@ -1,6 +1,6 @@
module gitnet.fr/deblan/i3-blocks-go
go 1.18
go 1.22
require (
github.com/enescakir/emoji v1.0.0