From 8dc7bb3e356b8c5a2d82420410f80fd1216e499f Mon Sep 17 00:00:00 2001 From: ayn2op Date: Sat, 12 Jul 2025 19:11:40 -0400 Subject: [PATCH] config: add hidden border set --- go.mod | 2 +- go.sum | 11 ++--------- internal/config/border.go | 10 +++++++--- internal/config/config.toml | 4 +++- internal/ui/util.go | 17 +++++++++++------ 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/go.mod b/go.mod index 6a385d4..680d292 100644 --- a/go.mod +++ b/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 diff --git a/go.sum b/go.sum index c52c88c..27c1d74 100644 --- a/go.sum +++ b/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= diff --git a/internal/config/border.go b/internal/config/border.go index f4d7695..d6f842b 100644 --- a/internal/config/border.go +++ b/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": diff --git a/internal/config/config.toml b/internal/config/config.toml index 4668291..ea74849 100644 --- a/internal/config/config.toml +++ b/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 diff --git a/internal/ui/util.go b/internal/ui/util.go index 0e01656..561cc20 100644 --- a/internal/ui/util.go +++ b/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 {