Add cure font
This commit is contained in:
parent
939d16d45c
commit
449b00905c
93
blocks.go
93
blocks.go
@ -2,7 +2,6 @@ package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
"time"
|
||||
@ -37,7 +36,7 @@ func (bar *Bar) clockFun() {
|
||||
}
|
||||
|
||||
func (bar *Bar) musicFun() {
|
||||
block := bar.initBlock("music", "?", 660, 'r', -13, "#3C4F5B", "#CCCCCC")
|
||||
block := bar.initBlock("music", "?", 660, 'r', -12, "#3C4F5B", "#CCCCCC")
|
||||
|
||||
/*block.actions["button1"] = func() {
|
||||
if block.popup == nil {
|
||||
@ -56,45 +55,45 @@ func (bar *Bar) musicFun() {
|
||||
block.actions["button3"] = func() {
|
||||
conn, err := mpd.Dial("tcp", ":6600")
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
panic(err)
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
status, err := conn.Status()
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if err := conn.Pause(status["state"] != "pause"); err != nil {
|
||||
log.Print(err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
block.actions["button4"] = func() {
|
||||
conn, err := mpd.Dial("tcp", ":6600")
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
panic(err)
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
if err := conn.Previous(); err != nil {
|
||||
log.Print(err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
block.actions["button5"] = func() {
|
||||
conn, err := mpd.Dial("tcp", ":6600")
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
panic(err)
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
if err := conn.Next(); err != nil {
|
||||
log.Print(err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
watcher, err := mpd.NewWatcher("tcp", ":6600", "", "player")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
panic(err)
|
||||
}
|
||||
var conn *mpd.Client
|
||||
init := true
|
||||
@ -108,20 +107,17 @@ func (bar *Bar) musicFun() {
|
||||
// TODO: Is it maybe possible to not create a new connection each loop?
|
||||
conn, err = mpd.Dial("tcp", ":6600")
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
continue
|
||||
panic(err)
|
||||
}
|
||||
|
||||
cur, err := conn.CurrentSong()
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
continue
|
||||
panic(err)
|
||||
}
|
||||
|
||||
status, err := conn.Status()
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
continue
|
||||
panic(err)
|
||||
}
|
||||
|
||||
var state string
|
||||
@ -129,7 +125,7 @@ func (bar *Bar) musicFun() {
|
||||
state = "[paused] "
|
||||
}
|
||||
|
||||
txt := state + cur["Artist"] + " - " + cur["Title"]
|
||||
txt := "» " + state + cur["Artist"] + " - " + cur["Title"]
|
||||
if block.txt == txt {
|
||||
continue
|
||||
}
|
||||
@ -144,14 +140,14 @@ func (bar *Bar) todoFun() {
|
||||
|
||||
watcher, err := fsnotify.NewWatcher()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
panic(err)
|
||||
}
|
||||
if err := watcher.Add("/home/onodera/.todo"); err != nil {
|
||||
log.Fatal(err)
|
||||
panic(err)
|
||||
}
|
||||
file, err := os.Open("/home/onodera/.todo")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
panic(err)
|
||||
}
|
||||
init := true
|
||||
for {
|
||||
@ -170,11 +166,10 @@ func (bar *Bar) todoFun() {
|
||||
c++
|
||||
}
|
||||
if _, err := file.Seek(0, 0); err != nil {
|
||||
log.Print(err)
|
||||
continue
|
||||
panic(err)
|
||||
}
|
||||
|
||||
txt := strconv.Itoa(c)
|
||||
txt := "¢ " + strconv.Itoa(c)
|
||||
if block.txt == txt {
|
||||
continue
|
||||
}
|
||||
@ -235,23 +230,26 @@ func (bar *Bar) weatherFun() {
|
||||
*/
|
||||
|
||||
func (bar *Bar) windowFun() {
|
||||
block := bar.initBlock("window", "?", 220, 'c', 0, "#37BF8D", "#FFFFFF")
|
||||
blockIcon := bar.initBlock("window", "º", 21, 'l', 12, "#37BF8D", "#FFFFFF")
|
||||
block := bar.initBlock("window", "?", 200, 'c', 0, "#37BF8D", "#FFFFFF")
|
||||
|
||||
// TODO: I'm not sure how I can use init (to prevent a black bar) here?
|
||||
// TODO: This doesn't check for window title changes.
|
||||
xevent.PropertyNotifyFun(func(_ *xgbutil.XUtil, ev xevent.
|
||||
PropertyNotifyEvent) {
|
||||
atom, err := xprop.Atm(bar.xu, "_NET_ACTIVE_WINDOW")
|
||||
if ev.Atom != atom {
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
panic(err)
|
||||
}
|
||||
if ev.Atom != atom {
|
||||
return
|
||||
}
|
||||
|
||||
id, err := ewmh.ActiveWindowGet(bar.xu)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
panic(err)
|
||||
}
|
||||
if id == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
@ -262,11 +260,9 @@ func (bar *Bar) windowFun() {
|
||||
txt = "?"
|
||||
}
|
||||
}
|
||||
|
||||
if len(txt) > 30 {
|
||||
txt = txt[0:30] + "..."
|
||||
if len(txt) > 38 {
|
||||
txt = txt[0:38] + "..."
|
||||
}
|
||||
|
||||
if block.txt == txt {
|
||||
return
|
||||
}
|
||||
@ -274,27 +270,32 @@ func (bar *Bar) windowFun() {
|
||||
block.txt = txt
|
||||
bar.redraw <- block
|
||||
}).Connect(bar.xu, bar.xu.RootWin())
|
||||
|
||||
bar.redraw <- blockIcon
|
||||
}
|
||||
|
||||
func (bar *Bar) workspaceFun() {
|
||||
blockWWW := bar.initBlock("www", "www", 74, 'c', 0, "#5394C9", "#FFFFFF")
|
||||
blockWWW := bar.initBlock("www", "¼ www", 74, 'l', 10, "#5394C9",
|
||||
"#FFFFFF")
|
||||
blockWWW.actions["button1"] = func() {
|
||||
if err := ewmh.CurrentDesktopReq(bar.xu, 0); err != nil {
|
||||
log.Println(err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
blockIRC := bar.initBlock("irc", "irc", 67, 'c', 0, "#5394C9", "#FFFFFF")
|
||||
blockIRC := bar.initBlock("irc", "½ irc", 67, 'l', 10, "#5394C9",
|
||||
"#FFFFFF")
|
||||
blockIRC.actions["button1"] = func() {
|
||||
if err := ewmh.CurrentDesktopReq(bar.xu, 1); err != nil {
|
||||
log.Println(err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
blockSRC := bar.initBlock("src", "src", 70, 'c', 0, "#5394C9", "#FFFFFF")
|
||||
blockSRC := bar.initBlock("src", "¾ src", 70, 'l', 10, "#5394C9",
|
||||
"#FFFFFF")
|
||||
blockSRC.actions["button1"] = func() {
|
||||
if err := ewmh.CurrentDesktopReq(bar.xu, 2); err != nil {
|
||||
log.Println(err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
@ -304,18 +305,16 @@ func (bar *Bar) workspaceFun() {
|
||||
xevent.PropertyNotifyFun(func(_ *xgbutil.XUtil, ev xevent.
|
||||
PropertyNotifyEvent) {
|
||||
atom, err := xprop.Atm(bar.xu, "_NET_CURRENT_DESKTOP")
|
||||
if ev.Atom != atom {
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
panic(err)
|
||||
}
|
||||
if ev.Atom != atom {
|
||||
return
|
||||
}
|
||||
|
||||
wsp, err := ewmh.CurrentDesktopGet(bar.xu)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
return
|
||||
panic(err)
|
||||
}
|
||||
|
||||
switch wsp {
|
||||
@ -354,12 +353,12 @@ func (bar *Bar) workspaceFun() {
|
||||
|
||||
prevFun := func() {
|
||||
if err := ewmh.CurrentDesktopReq(bar.xu, pwsp); err != nil {
|
||||
log.Println(err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
nextFun := func() {
|
||||
if err := ewmh.CurrentDesktopReq(bar.xu, nwsp); err != nil {
|
||||
log.Println(err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
|
2
main.go
2
main.go
@ -6,7 +6,7 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
bar, err := initBar(0, 0, 1920, 29, "./vendor/font/proggytiny.font")
|
||||
bar, err := initBar(0, 0, 1920, 29, "./vendor/font/cure.font")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
BIN
vendor/font/cure.0020-007E
vendored
Executable file
BIN
vendor/font/cure.0020-007E
vendored
Executable file
Binary file not shown.
BIN
vendor/font/cure.0021-007E
vendored
Executable file
BIN
vendor/font/cure.0021-007E
vendored
Executable file
Binary file not shown.
BIN
vendor/font/cure.00A1-00AC
vendored
Executable file
BIN
vendor/font/cure.00A1-00AC
vendored
Executable file
Binary file not shown.
BIN
vendor/font/cure.00AE-00FE
vendored
Executable file
BIN
vendor/font/cure.00AE-00FE
vendored
Executable file
Binary file not shown.
BIN
vendor/font/cure.00FF-00FF
vendored
Executable file
BIN
vendor/font/cure.00FF-00FF
vendored
Executable file
Binary file not shown.
2677
vendor/font/cure.bdf
vendored
Normal file
2677
vendor/font/cure.bdf
vendored
Normal file
File diff suppressed because it is too large
Load Diff
69
vendor/font/cure.font
vendored
Normal file
69
vendor/font/cure.font
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
11 9
|
||||
0xA2 0xA2 icon/icon.00A2-00A2
|
||||
0xBA 0xBD icon/icon.00BA-00BD
|
||||
0xBE 0xBE icon/icon.00BE-00BE
|
||||
0x20 0x7E cure.0020-007E
|
||||
0xA1 0xAC cure.00A1-00AC
|
||||
0xAE 0xFE cure.00AE-00FE
|
||||
0xFF 0xFF cure.00FF-00FF
|
||||
0x0000 0x001F fixed/6x10.2400
|
||||
0x0100 0x01FF fixed/6x10.0100
|
||||
0x0200 0x02FF fixed/6x10.0200
|
||||
0x0300 0x03FF fixed/6x10.0300
|
||||
0x0400 0x04FF fixed/6x10.0400
|
||||
0x0500 0x05FF fixed/6x10.0500
|
||||
0x1600 0x16FF fixed/6x10.1600
|
||||
0x1E00 0x1EFF fixed/6x10.1E00
|
||||
0x1F00 0x1FFF fixed/6x10.1F00
|
||||
0x2000 0x20FF fixed/6x10.2000
|
||||
0x2100 0x21FF fixed/6x10.2100
|
||||
0x2200 0x22FF fixed/6x10.2200
|
||||
0x2300 0x23FF fixed/6x10.2300
|
||||
0x2400 0x24FF fixed/6x10.2400
|
||||
0x2500 0x25FF fixed/6x10.2500
|
||||
0x2600 0x26FF fixed/6x10.2600
|
||||
0x2800 0x28FF fixed/6x10.2800
|
||||
0x3000 0x30fe naga10/knj10.3000
|
||||
0x4e00 0x4ffe naga10/knj10.4e00
|
||||
0x5005 0x51fe naga10/knj10.5005
|
||||
0x5200 0x53fa naga10/knj10.5200
|
||||
0x5401 0x55fe naga10/knj10.5401
|
||||
0x5606 0x57fc naga10/knj10.5606
|
||||
0x5800 0x59ff naga10/knj10.5800
|
||||
0x5a01 0x5bff naga10/knj10.5a01
|
||||
0x5c01 0x5dfe naga10/knj10.5c01
|
||||
0x5e02 0x5fff naga10/knj10.5e02
|
||||
0x600e 0x61ff naga10/knj10.600e
|
||||
0x6200 0x63fa naga10/knj10.6200
|
||||
0x6406 0x65fb naga10/knj10.6406
|
||||
0x6602 0x67ff naga10/knj10.6602
|
||||
0x6802 0x69ff naga10/knj10.6802
|
||||
0x6a02 0x6bf3 naga10/knj10.6a02
|
||||
0x6c08 0x6dfb naga10/knj10.6c08
|
||||
0x6e05 0x6ffe naga10/knj10.6e05
|
||||
0x7001 0x71ff naga10/knj10.7001
|
||||
0x7206 0x73fe naga10/knj10.7206
|
||||
0x7403 0x75ff naga10/knj10.7403
|
||||
0x7601 0x77fc naga10/knj10.7601
|
||||
0x7802 0x79fb naga10/knj10.7802
|
||||
0x7a00 0x7bf7 naga10/knj10.7a00
|
||||
0x7c00 0x7dfb naga10/knj10.7c00
|
||||
0x7e01 0x7ffc naga10/knj10.7e01
|
||||
0x8000 0x81fe naga10/knj10.8000
|
||||
0x8201 0x83fd naga10/knj10.8201
|
||||
0x8403 0x85fe naga10/knj10.8403
|
||||
0x8602 0x87fe naga10/knj10.8602
|
||||
0x8805 0x89f8 naga10/knj10.8805
|
||||
0x8a00 0x8b9a naga10/knj10.8a00
|
||||
0x8c37 0x8dff naga10/knj10.8c37
|
||||
0x8e08 0x8ffd naga10/knj10.8e08
|
||||
0x9000 0x91ff naga10/knj10.9000
|
||||
0x920d 0x93e8 naga10/knj10.920d
|
||||
0x9403 0x95e5 naga10/knj10.9403
|
||||
0x961c 0x97ff naga10/knj10.961c
|
||||
0x9801 0x99ff naga10/knj10.9801
|
||||
0x9a01 0x9bf5 naga10/knj10.9a01
|
||||
0x9c04 0x9dfd naga10/knj10.9c04
|
||||
0x9e1a 0x9fa0 naga10/knj10.9e1a
|
||||
0xFB00 0xFBFF fixed/6x10.FB00
|
||||
0xFF00 0xFFFF fixed/6x10.FF00
|
BIN
vendor/font/icon/icon.00A2-00A2
vendored
Executable file
BIN
vendor/font/icon/icon.00A2-00A2
vendored
Executable file
Binary file not shown.
BIN
vendor/font/icon/icon.00BA-00BD
vendored
Executable file
BIN
vendor/font/icon/icon.00BA-00BD
vendored
Executable file
Binary file not shown.
BIN
vendor/font/icon/icon.00BB-00BD
vendored
Executable file
BIN
vendor/font/icon/icon.00BB-00BD
vendored
Executable file
Binary file not shown.
BIN
vendor/font/icon/icon.00BE-00BE
vendored
Executable file
BIN
vendor/font/icon/icon.00BE-00BE
vendored
Executable file
Binary file not shown.
95
vendor/font/icon/icon.bdf
vendored
Normal file
95
vendor/font/icon/icon.bdf
vendored
Normal file
@ -0,0 +1,95 @@
|
||||
STARTFONT 2.1
|
||||
FONT -artwiz-cure-medium-r-normal--11-110-75-75-p-90-ISO8859-1
|
||||
SIZE 11 75 75
|
||||
FONTBOUNDINGBOX 9 11 0 -2
|
||||
STARTPROPERTIES 3
|
||||
DEFAULT_CHAR 63
|
||||
FONT_ASCENT 9
|
||||
FONT_DESCENT 2
|
||||
ENDPROPERTIES
|
||||
CHARS 6
|
||||
STARTCHAR 186
|
||||
ENCODING 186
|
||||
SWIDTH 872 0
|
||||
DWIDTH 10 0
|
||||
BBX 7 7 2 0
|
||||
BITMAP
|
||||
F8
|
||||
88
|
||||
8E
|
||||
8A
|
||||
FA
|
||||
22
|
||||
3E
|
||||
ENDCHAR
|
||||
STARTCHAR 188
|
||||
ENCODING 188
|
||||
SWIDTH 872 0
|
||||
DWIDTH 10 0
|
||||
BBX 7 7 2 0
|
||||
BITMAP
|
||||
38
|
||||
6C
|
||||
CE
|
||||
C6
|
||||
E2
|
||||
64
|
||||
38
|
||||
ENDCHAR
|
||||
STARTCHAR 189
|
||||
ENCODING 189
|
||||
SWIDTH 872 0
|
||||
DWIDTH 10 0
|
||||
BBX 7 7 2 0
|
||||
BITMAP
|
||||
FE
|
||||
FE
|
||||
BE
|
||||
DE
|
||||
B2
|
||||
FE
|
||||
FE
|
||||
ENDCHAR
|
||||
STARTCHAR 190
|
||||
ENCODING 190
|
||||
SWIDTH 872 0
|
||||
DWIDTH 10 0
|
||||
BBX 6 7 3 1
|
||||
BITMAP
|
||||
00
|
||||
00
|
||||
F8
|
||||
00
|
||||
3C
|
||||
00
|
||||
70
|
||||
ENDCHAR
|
||||
STARTCHAR 187
|
||||
ENCODING 187
|
||||
SWIDTH 872 0
|
||||
DWIDTH 10 0
|
||||
BBX 5 7 3 0
|
||||
BITMAP
|
||||
20
|
||||
30
|
||||
28
|
||||
20
|
||||
60
|
||||
E0
|
||||
40
|
||||
ENDCHAR
|
||||
STARTCHAR 162
|
||||
ENCODING 162
|
||||
SWIDTH 785 0
|
||||
DWIDTH 9 0
|
||||
BBX 7 7 1 0
|
||||
BITMAP
|
||||
38
|
||||
6C
|
||||
74
|
||||
7C
|
||||
7C
|
||||
FE
|
||||
10
|
||||
ENDCHAR
|
||||
ENDFONT
|
4
vendor/font/icon/icon.font
vendored
Normal file
4
vendor/font/icon/icon.font
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
11 9
|
||||
0xA2 0xA2 icon.00A2-00A2
|
||||
0xBA 0xBD icon.00BA-00BD
|
||||
0xBE 0xBE icon.00BE-00BE
|
BIN
vendor/font/proggytiny.0000-00FE
vendored
BIN
vendor/font/proggytiny.0000-00FE
vendored
Binary file not shown.
BIN
vendor/font/proggytiny.00FF-00FF
vendored
BIN
vendor/font/proggytiny.00FF-00FF
vendored
Binary file not shown.
64
vendor/font/proggytiny.font
vendored
64
vendor/font/proggytiny.font
vendored
@ -1,64 +0,0 @@
|
||||
10 8
|
||||
0x0000 0x001F fixed/6x10.2400
|
||||
0x0000 0x00FE proggytiny.0000-00FE
|
||||
0x00FF 0x00FF proggytiny.00FF-00FF
|
||||
0x0100 0x01FF fixed/6x10.0100
|
||||
0x0200 0x02FF fixed/6x10.0200
|
||||
0x0300 0x03FF fixed/6x10.0300
|
||||
0x0400 0x04FF fixed/6x10.0400
|
||||
0x0500 0x05FF fixed/6x10.0500
|
||||
0x1600 0x16FF fixed/6x10.1600
|
||||
0x1E00 0x1EFF fixed/6x10.1E00
|
||||
0x1F00 0x1FFF fixed/6x10.1F00
|
||||
0x2000 0x20FF fixed/6x10.2000
|
||||
0x2100 0x21FF fixed/6x10.2100
|
||||
0x2200 0x22FF fixed/6x10.2200
|
||||
0x2300 0x23FF fixed/6x10.2300
|
||||
0x2400 0x24FF fixed/6x10.2400
|
||||
0x2500 0x25FF fixed/6x10.2500
|
||||
0x2600 0x26FF fixed/6x10.2600
|
||||
0x2800 0x28FF fixed/6x10.2800
|
||||
0x3000 0x30fe naga10/knj10.3000
|
||||
0x4e00 0x4ffe naga10/knj10.4e00
|
||||
0x5005 0x51fe naga10/knj10.5005
|
||||
0x5200 0x53fa naga10/knj10.5200
|
||||
0x5401 0x55fe naga10/knj10.5401
|
||||
0x5606 0x57fc naga10/knj10.5606
|
||||
0x5800 0x59ff naga10/knj10.5800
|
||||
0x5a01 0x5bff naga10/knj10.5a01
|
||||
0x5c01 0x5dfe naga10/knj10.5c01
|
||||
0x5e02 0x5fff naga10/knj10.5e02
|
||||
0x600e 0x61ff naga10/knj10.600e
|
||||
0x6200 0x63fa naga10/knj10.6200
|
||||
0x6406 0x65fb naga10/knj10.6406
|
||||
0x6602 0x67ff naga10/knj10.6602
|
||||
0x6802 0x69ff naga10/knj10.6802
|
||||
0x6a02 0x6bf3 naga10/knj10.6a02
|
||||
0x6c08 0x6dfb naga10/knj10.6c08
|
||||
0x6e05 0x6ffe naga10/knj10.6e05
|
||||
0x7001 0x71ff naga10/knj10.7001
|
||||
0x7206 0x73fe naga10/knj10.7206
|
||||
0x7403 0x75ff naga10/knj10.7403
|
||||
0x7601 0x77fc naga10/knj10.7601
|
||||
0x7802 0x79fb naga10/knj10.7802
|
||||
0x7a00 0x7bf7 naga10/knj10.7a00
|
||||
0x7c00 0x7dfb naga10/knj10.7c00
|
||||
0x7e01 0x7ffc naga10/knj10.7e01
|
||||
0x8000 0x81fe naga10/knj10.8000
|
||||
0x8201 0x83fd naga10/knj10.8201
|
||||
0x8403 0x85fe naga10/knj10.8403
|
||||
0x8602 0x87fe naga10/knj10.8602
|
||||
0x8805 0x89f8 naga10/knj10.8805
|
||||
0x8a00 0x8b9a naga10/knj10.8a00
|
||||
0x8c37 0x8dff naga10/knj10.8c37
|
||||
0x8e08 0x8ffd naga10/knj10.8e08
|
||||
0x9000 0x91ff naga10/knj10.9000
|
||||
0x920d 0x93e8 naga10/knj10.920d
|
||||
0x9403 0x95e5 naga10/knj10.9403
|
||||
0x961c 0x97ff naga10/knj10.961c
|
||||
0x9801 0x99ff naga10/knj10.9801
|
||||
0x9a01 0x9bf5 naga10/knj10.9a01
|
||||
0x9c04 0x9dfd naga10/knj10.9c04
|
||||
0x9e1a 0x9fa0 naga10/knj10.9e1a
|
||||
0xFB00 0xFBFF fixed/6x10.FB00
|
||||
0xFF00 0xFFFF fixed/6x10.FF00
|
Loading…
Reference in New Issue
Block a user