Browse Source

config: add hidden border set

ayn2op 9 months ago
parent
commit
8dc7bb3e35
5 changed files with 24 additions and 20 deletions
  1. 1 1
      go.mod
  2. 2 9
      go.sum
  3. 7 3
      internal/config/border.go
  4. 3 1
      internal/config/config.toml
  5. 11 6
      internal/ui/util.go

+ 1 - 1
go.mod

@@ -5,7 +5,7 @@ go 1.24.4
 require (
 	github.com/BurntSushi/toml v1.5.0
 	github.com/atotto/clipboard v0.1.4
-	github.com/ayn2op/tview v0.0.0-20250618224732-91a1a2f06994
+	github.com/ayn2op/tview v0.0.0-20250712230729-d9ce783318a5
 	github.com/deckarep/gosx-notifier v0.0.0-20180201035817-e127226297fb
 	github.com/diamondburned/arikawa/v3 v3.5.1-0.20250703053218-19d9c3f2e011
 	github.com/diamondburned/ningen/v3 v3.0.1-0.20250703054403-e5dc4cf15e84

+ 2 - 9
go.sum

@@ -27,8 +27,8 @@ github.com/akavel/rsrc v0.10.2 h1:Zxm8V5eI1hW4gGaYsJQUhxpjkENuG91ki8B4zCrvEsw=
 github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
 github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
 github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
-github.com/ayn2op/tview v0.0.0-20250618224732-91a1a2f06994 h1:heK43Ba0uvQPH2BgJVFiB2G8vIJk1XocvFYCPfOSNhU=
-github.com/ayn2op/tview v0.0.0-20250618224732-91a1a2f06994/go.mod h1:PuMMP3J7SfW0jgAc1fdABOHJkoGbQIw3jejRAkl0API=
+github.com/ayn2op/tview v0.0.0-20250712230729-d9ce783318a5 h1:Ce7uvVsXLhi1gWFoIvCbRCPCj6IIXsj2PAEWxG5NH2k=
+github.com/ayn2op/tview v0.0.0-20250712230729-d9ce783318a5/go.mod h1:PuMMP3J7SfW0jgAc1fdABOHJkoGbQIw3jejRAkl0API=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
@@ -40,8 +40,6 @@ github.com/danieljoos/wincred v1.2.2/go.mod h1:w7w4Utbrz8lqeMbDAK0lkNJUv5sAOkFi7
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dchest/jsmin v0.0.0-20220218165748-59f39799265f h1:OGqDDftRTwrvUoL6pOG7rYTmWsTCvyEWFsMjg+HcOaA=
-github.com/dchest/jsmin v0.0.0-20220218165748-59f39799265f/go.mod h1:Dv9D0NUlAsaQcGQZa5kc5mqR9ua72SmA8VXi4cd+cBw=
 github.com/dchest/jsmin v1.0.0 h1:Y2hWXmGZiRxtl+VcTksyucgTlYxnhPzTozCwx9gy9zI=
 github.com/dchest/jsmin v1.0.0/go.mod h1:AVBIund7Mr7lKXT70hKT2YgL3XEXUaUk5iw9DZ8b0Uc=
 github.com/deckarep/gosx-notifier v0.0.0-20180201035817-e127226297fb h1:6S+TKObz6+Io2c8IOkcbK4Sz7nj6RpEVU7TkvmsZZcw=
@@ -105,8 +103,6 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2
 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 github.com/jackmordaunt/icns/v3 v3.0.1 h1:xxot6aNuGrU+lNgxz5I5H0qSeCjNKp8uTXB1j8D4S3o=
 github.com/jackmordaunt/icns/v3 v3.0.1/go.mod h1:5sHL59nqTd2ynTnowxB/MDQFhKNqkK8X687uKNygaSQ=
-github.com/josephspurrier/goversioninfo v1.4.1 h1:5LvrkP+n0tg91J9yTkoVnt/QgNnrI1t4uSsWjIonrqY=
-github.com/josephspurrier/goversioninfo v1.4.1/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY=
 github.com/josephspurrier/goversioninfo v1.5.0 h1:9TJtORoyf4YMoWSOo/cXFN9A/lB3PniJ91OxIH6e7Zg=
 github.com/josephspurrier/goversioninfo v1.5.0/go.mod h1:6MoTvFZ6GKJkzcdLnU5T/RGYUbHQbKpYeNP0AgQLd2o=
 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
@@ -157,7 +153,6 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE
 github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
 github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
@@ -198,8 +193,6 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/image v0.20.0 h1:7cVCUjQwfL18gyBJOmYvptfSHS8Fb3YUDtfLIZ7Nbpw=
-golang.org/x/image v0.20.0/go.mod h1:0a88To4CYVBAHp5FXJm8o7QbUl37Vd85ply1vyD8auM=
 golang.org/x/image v0.29.0 h1:HcdsyR4Gsuys/Axh0rDEmlBmB68rW1U9BUdB3UVHsas=
 golang.org/x/image v0.29.0/go.mod h1:RVJROnf3SLK8d26OW91j4FrIHGbsJ8QnbEocVTOWQDA=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=

+ 7 - 3
internal/config/border.go

@@ -10,9 +10,11 @@ type (
 
 	BorderTheme struct {
 		ThemeStyle
-		Enabled bool             `toml:"enabled"`
-		Padding [4]int           `toml:"padding"`
-		Set     BorderSetWrapper `toml:"set"`
+		Enabled bool   `toml:"enabled"`
+		Padding [4]int `toml:"padding"`
+
+		NormalSet BorderSetWrapper `toml:"normal_set"`
+		ActiveSet BorderSetWrapper `toml:"active_set"`
 	}
 )
 
@@ -25,6 +27,8 @@ func (bw *BorderSetWrapper) UnmarshalTOML(val any) error {
 	}
 
 	switch s {
+	case "hidden":
+		bw.BorderSet = tview.BorderSetHidden()
 	case "plain":
 		bw.BorderSet = tview.BorderSetPlain()
 	case "round":

+ 3 - 1
internal/config/config.toml

@@ -112,9 +112,11 @@ active_style = { attributes = "bold" }
 [theme.border]
 enabled = true
 padding = [0, 0, 1, 1]                 # [top, bottom, left, right]
-set = "plain"                          # `"plain"`, `"round"`, `"thick"`, or `"double"`.
 normal_style = { attributes = "dim" }
 active_style = { attributes = "bold" }
+# `"hidden"`, `"plain"`, `"round"`, `"thick"`, or `"double"`.
+normal_set = "hidden"
+active_set = "round"
 
 [theme.guilds_tree]
 auto_expand_folders = true

+ 11 - 6
internal/ui/util.go

@@ -10,21 +10,26 @@ func ConfigureBox(box *tview.Box, cfg *config.Theme) *tview.Box {
 	border := cfg.Border
 	title := cfg.Title
 	normalBorderStyle, activeBorderStyle := border.NormalStyle.Style, border.ActiveStyle.Style
+	normalBorderSet, activeBorderSet := border.NormalSet.BorderSet, border.ActiveSet.BorderSet
 	normalTitleStyle, activeTitleStyle := title.NormalStyle.Style, title.ActiveStyle.Style
 	p := border.Padding
 	box.
 		SetBorderStyle(normalBorderStyle).
-		SetBorderSet(border.Set.BorderSet).
+		SetBorderSet(normalBorderSet).
 		SetBorderPadding(p[0], p[1], p[2], p[3]).
 		SetTitleStyle(normalTitleStyle).
 		SetTitleAlignment(title.Alignment.Alignment).
-		SetFocusFunc(func() {
-			box.SetBorderStyle(activeBorderStyle)
-			box.SetTitleStyle(activeTitleStyle)
-		}).
 		SetBlurFunc(func() {
-			box.SetBorderStyle(normalBorderStyle)
+			box.
+				SetBorderStyle(normalBorderStyle).
+				SetBorderSet(normalBorderSet)
 			box.SetTitleStyle(normalTitleStyle)
+		}).
+		SetFocusFunc(func() {
+			box.
+				SetBorderStyle(activeBorderStyle).
+				SetBorderSet(activeBorderSet)
+			box.SetTitleStyle(activeTitleStyle)
 		})
 
 	if border.Enabled {