A few bug-fixes and maintenance tasks (#30)
- Fixed a bug which was not properly detecting whether MacOS was in light mode. - Fixed a bug which was breaking filtering with the table-selection mode. - Upgraded bubble-tea.
This commit is contained in:
		
							parent
							
								
									efdc7f9e25
								
							
						
					
					
						commit
						f373a3313a
					
				|  | @ -7,7 +7,6 @@ import ( | |||
| 	"github.com/aws/aws-sdk-go-v2/config" | ||||
| 	"github.com/aws/aws-sdk-go-v2/service/dynamodb" | ||||
| 	tea "github.com/charmbracelet/bubbletea" | ||||
| 	"github.com/charmbracelet/lipgloss" | ||||
| 	"github.com/lmika/audax/internal/common/ui/commandctrl" | ||||
| 	"github.com/lmika/audax/internal/common/ui/logging" | ||||
| 	"github.com/lmika/audax/internal/common/ui/osstyle" | ||||
|  | @ -115,27 +114,10 @@ func main() { | |||
| 	) | ||||
| 
 | ||||
| 	// Pre-determine if layout has dark background.  This prevents calls for creating a list to hang.
 | ||||
| 	lipgloss.HasDarkBackground() | ||||
| 
 | ||||
| 	osstyle.DetectCurrentScheme() | ||||
| 	 | ||||
| 	p := tea.NewProgram(model, tea.WithAltScreen()) | ||||
| 
 | ||||
| 	// Pre-determine if layout has dark background.  This prevents calls for creating a list to hang.
 | ||||
| 	if lipgloss.HasDarkBackground() { | ||||
| 		if colorScheme := osstyle.CurrentColorScheme(); colorScheme == osstyle.ColorSchemeLightMode { | ||||
| 			log.Printf("terminal reads dark but really in light mode") | ||||
| 			lipgloss.SetHasDarkBackground(true) | ||||
| 		} else { | ||||
| 			log.Printf("in dark background") | ||||
| 		} | ||||
| 	} else { | ||||
| 		if colorScheme := osstyle.CurrentColorScheme(); colorScheme == osstyle.ColorSchemeDarkMode { | ||||
| 			log.Printf("terminal reads light but really in dark mode") | ||||
| 			lipgloss.SetHasDarkBackground(true) | ||||
| 		} else { | ||||
| 			log.Printf("cannot detect system darkmode") | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	log.Println("launching") | ||||
| 	if err := p.Start(); err != nil { | ||||
| 		fmt.Printf("Alas, there's been an error: %v", err) | ||||
|  |  | |||
							
								
								
									
										24
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								go.mod
									
									
									
									
									
								
							|  | @ -15,9 +15,9 @@ require ( | |||
| 	github.com/aws/aws-sdk-go-v2/service/ssm v1.24.0 | ||||
| 	github.com/brianvoe/gofakeit/v6 v6.15.0 | ||||
| 	github.com/calyptia/go-bubble-table v0.2.1 | ||||
| 	github.com/charmbracelet/bubbles v0.11.0 | ||||
| 	github.com/charmbracelet/bubbletea v0.21.0 | ||||
| 	github.com/charmbracelet/lipgloss v0.5.0 | ||||
| 	github.com/charmbracelet/bubbles v0.14.0 | ||||
| 	github.com/charmbracelet/bubbletea v0.22.1 | ||||
| 	github.com/charmbracelet/lipgloss v0.6.0 | ||||
| 	github.com/google/uuid v1.3.0 | ||||
| 	github.com/lmika/events v0.0.0-20200906102219-a2269cd4394e | ||||
| 	github.com/lmika/go-bubble-table v0.2.2-0.20220616114432-6bbb2995e538 | ||||
|  | @ -43,6 +43,7 @@ require ( | |||
| 	github.com/aws/aws-sdk-go-v2/service/sso v1.9.0 // indirect | ||||
| 	github.com/aws/aws-sdk-go-v2/service/sts v1.14.0 // indirect | ||||
| 	github.com/aws/smithy-go v1.11.3 // indirect | ||||
| 	github.com/aymanbagabas/go-osc52 v1.0.3 // indirect | ||||
| 	github.com/containerd/console v1.0.3 // indirect | ||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||
| 	github.com/golang/protobuf v1.5.2 // indirect | ||||
|  | @ -51,23 +52,24 @@ require ( | |||
| 	github.com/juju/ansiterm v0.0.0-20210929141451-8b71cc96ebdc // indirect | ||||
| 	github.com/lucasb-eyer/go-colorful v1.2.0 // indirect | ||||
| 	github.com/lunixbochs/vtclean v1.0.0 // indirect | ||||
| 	github.com/mattn/go-isatty v0.0.14 // indirect | ||||
| 	github.com/mattn/go-runewidth v0.0.13 // indirect | ||||
| 	github.com/mattn/go-isatty v0.0.16 // indirect | ||||
| 	github.com/mattn/go-localereader v0.0.1 // indirect | ||||
| 	github.com/mattn/go-runewidth v0.0.14 // indirect | ||||
| 	github.com/muesli/ansi v0.0.0-20211031195517-c9f0611b6c70 // indirect | ||||
| 	github.com/muesli/cancelreader v0.2.0 // indirect | ||||
| 	github.com/muesli/cancelreader v0.2.2 // indirect | ||||
| 	github.com/muesli/reflow v0.3.0 // indirect | ||||
| 	github.com/muesli/termenv v0.12.0 // indirect | ||||
| 	github.com/muesli/termenv v0.13.0 // indirect | ||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||
| 	github.com/rivo/uniseg v0.2.0 // indirect | ||||
| 	github.com/rivo/uniseg v0.4.2 // indirect | ||||
| 	github.com/sahilm/fuzzy v0.1.0 // indirect | ||||
| 	github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect | ||||
| 	go.etcd.io/bbolt v1.3.6 // indirect | ||||
| 	golang.design/x/clipboard v0.6.2 // indirect | ||||
| 	golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect | ||||
| 	golang.org/x/image v0.0.0-20211028202545-6944b10bf410 // indirect | ||||
| 	golang.org/x/mobile v0.0.0-20210716004757-34ab1303b554 // indirect | ||||
| 	golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect | ||||
| 	golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 // indirect | ||||
| 	golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec // indirect | ||||
| 	golang.org/x/term v0.0.0-20220919170432-7a66f970e087 // indirect | ||||
| 	golang.org/x/text v0.3.7 // indirect | ||||
| 	google.golang.org/appengine v1.6.7 // indirect | ||||
| 	gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect | ||||
| ) | ||||
|  |  | |||
							
								
								
									
										27
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								go.sum
									
									
									
									
									
								
							|  | @ -57,17 +57,25 @@ github.com/aws/smithy-go v1.10.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiA | |||
| github.com/aws/smithy-go v1.11.2/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM= | ||||
| github.com/aws/smithy-go v1.11.3 h1:DQixirEFM9IaKxX1olZ3ke3nvxRS2xMDteKIDWxozW8= | ||||
| github.com/aws/smithy-go v1.11.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= | ||||
| github.com/aymanbagabas/go-osc52 v1.0.3 h1:DTwqENW7X9arYimJrPeGZcV0ln14sGMt3pHZspWD+Mg= | ||||
| github.com/aymanbagabas/go-osc52 v1.0.3/go.mod h1:zT8H+Rk4VSabYN90pWyugflM3ZhpTZNC7cASDfUCdT4= | ||||
| github.com/brianvoe/gofakeit/v6 v6.15.0 h1:lJPGJZ2/07TRGDazyTzD5b18N3y4tmmJpdhCUw18FlI= | ||||
| github.com/brianvoe/gofakeit/v6 v6.15.0/go.mod h1:Ow6qC71xtwm79anlwKRlWZW6zVq9D2XHE4QSSMP/rU8= | ||||
| github.com/calyptia/go-bubble-table v0.2.1 h1:NWcVRyGCLuP7QIA29uUFSY+IjmWcmUWHjy5J/CPb0Rk= | ||||
| github.com/calyptia/go-bubble-table v0.2.1/go.mod h1:gJvzUOUzfQeA9JmgLumyJYWJMtuRQ7WxxTwc9tjEiGw= | ||||
| github.com/charmbracelet/bubbles v0.11.0 h1:fBLyY0PvJnd56Vlu5L84JJH6f4axhgIJ9P3NET78f0Q= | ||||
| github.com/charmbracelet/bubbles v0.11.0/go.mod h1:bbeTiXwPww4M031aGi8UK2HT9RDWoiNibae+1yCMtcc= | ||||
| github.com/charmbracelet/bubbles v0.14.0 h1:DJfCwnARfWjZLvMglhSQzo76UZ2gucuHPy9jLWX45Og= | ||||
| github.com/charmbracelet/bubbles v0.14.0/go.mod h1:bbeTiXwPww4M031aGi8UK2HT9RDWoiNibae+1yCMtcc= | ||||
| github.com/charmbracelet/bubbletea v0.21.0 h1:f3y+kanzgev5PA916qxmDybSHU3N804uOnKnhRPXTcI= | ||||
| github.com/charmbracelet/bubbletea v0.21.0/go.mod h1:GgmJMec61d08zXsOhqRC/AiOx4K4pmz+VIcRIm1FKr4= | ||||
| github.com/charmbracelet/bubbletea v0.22.1 h1:z66q0LWdJNOWEH9zadiAIXp2GN1AWrwNXU8obVY9X24= | ||||
| github.com/charmbracelet/bubbletea v0.22.1/go.mod h1:8/7hVvbPN6ZZPkczLiB8YpLkLJ0n7DMho5Wvfd2X1C0= | ||||
| github.com/charmbracelet/harmonica v0.2.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao= | ||||
| github.com/charmbracelet/lipgloss v0.5.0 h1:lulQHuVeodSgDez+3rGiuxlPVXSnhth442DATR2/8t8= | ||||
| github.com/charmbracelet/lipgloss v0.5.0/go.mod h1:EZLha/HbzEt7cYqdFPovlqy5FZPj0xFhg5SaqxScmgs= | ||||
| github.com/charmbracelet/lipgloss v0.6.0 h1:1StyZB9vBSOyuZxQUcUwGr17JmojPNm87inij9N3wJY= | ||||
| github.com/charmbracelet/lipgloss v0.6.0/go.mod h1:tHh2wr34xcHjC2HCXIlGSG1jaDF0S0atAUvBMP6Ppuk= | ||||
| github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= | ||||
| github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= | ||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
|  | @ -116,15 +124,23 @@ github.com/mattn/go-colorable v0.1.10/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMop | |||
| github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= | ||||
| github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= | ||||
| github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= | ||||
| github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= | ||||
| github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= | ||||
| github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= | ||||
| github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= | ||||
| github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= | ||||
| github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= | ||||
| github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= | ||||
| github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= | ||||
| github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= | ||||
| github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= | ||||
| github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho= | ||||
| github.com/muesli/ansi v0.0.0-20211031195517-c9f0611b6c70 h1:kMlmsLSbjkikxQJ1IPwaM+7LJ9ltFu/fi8CRzvSnQmA= | ||||
| github.com/muesli/ansi v0.0.0-20211031195517-c9f0611b6c70/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho= | ||||
| github.com/muesli/cancelreader v0.2.0 h1:SOpr+CfyVNce341kKqvbhhzQhBPyJRXQaCtn03Pae1Q= | ||||
| github.com/muesli/cancelreader v0.2.0/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= | ||||
| github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= | ||||
| github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= | ||||
| github.com/muesli/reflow v0.2.1-0.20210115123740-9e1d0d53df68/go.mod h1:Xk+z4oIWdQqJzsxyjgl3P22oYZnHdZ8FFTHAQQt5BMQ= | ||||
| github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= | ||||
| github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= | ||||
|  | @ -132,6 +148,8 @@ github.com/muesli/termenv v0.11.1-0.20220204035834-5ac8409525e0/go.mod h1:Bd5NYQ | |||
| github.com/muesli/termenv v0.11.1-0.20220212125758-44cd13922739/go.mod h1:Bd5NYQ7pd+SrtBSrSNoBBmXlcY8+Xj4BMJgh8qcZrvs= | ||||
| github.com/muesli/termenv v0.12.0 h1:KuQRUE3PgxRFWhq4gHvZtPSLCGDqM5q/cYr1pZ39ytc= | ||||
| github.com/muesli/termenv v0.12.0/go.mod h1:WCCv32tusQ/EEZ5S8oUIIrC/nIuBcxCVqlN4Xfkv+7A= | ||||
| github.com/muesli/termenv v0.13.0 h1:wK20DRpJdDX8b7Ek2QfhvqhRQFZ237RGRO0RQ/Iqdy0= | ||||
| github.com/muesli/termenv v0.13.0/go.mod h1:sP1+uffeLaEYpyOTb8pLCUctGcGLnoFjSn4YJK5e2bc= | ||||
| github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= | ||||
| github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||
|  | @ -139,6 +157,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN | |||
| github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= | ||||
| github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= | ||||
| github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= | ||||
| github.com/rivo/uniseg v0.4.2 h1:YwD0ulJSJytLpiaWua0sBDusfsCZohxjxzVTYjwxfV8= | ||||
| github.com/rivo/uniseg v0.4.2/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= | ||||
| github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= | ||||
| github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= | ||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||
|  | @ -189,14 +209,21 @@ golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a/go.mod h1:oPkhp1MJrh7nUepCBc | |||
| golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= | ||||
| golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec h1:BkDtF2Ih9xZ7le9ndzTA7KJow28VbQW3odyk/8drmuI= | ||||
| golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||
| golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||
| golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 h1:CBpWXWQpIRjzmkkA+M7q9Fqnwd2mZr3AFqexg8YTfoM= | ||||
| golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||
| golang.org/x/term v0.0.0-20220919170432-7a66f970e087 h1:tPwmk4vmvVCMdr98VgL4JH+qZxPL8fqlUOHnyOM8N3w= | ||||
| golang.org/x/term v0.0.0-20220919170432-7a66f970e087/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
| golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | ||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||
| golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= | ||||
| golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= | ||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
| golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||
|  |  | |||
							
								
								
									
										24
									
								
								internal/common/ui/osstyle/detect.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								internal/common/ui/osstyle/detect.go
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| package osstyle | ||||
| 
 | ||||
| import ( | ||||
| 	"github.com/charmbracelet/lipgloss" | ||||
| 	"log" | ||||
| ) | ||||
| 
 | ||||
| func DetectCurrentScheme() { | ||||
| 	if lipgloss.HasDarkBackground() { | ||||
| 		if colorScheme := CurrentColorScheme(); colorScheme == ColorSchemeLightMode { | ||||
| 			log.Printf("terminal reads dark but really in light mode") | ||||
| 			lipgloss.SetHasDarkBackground(true) | ||||
| 		} else { | ||||
| 			log.Printf("in dark background") | ||||
| 		} | ||||
| 	} else { | ||||
| 		if colorScheme := CurrentColorScheme(); colorScheme == ColorSchemeDarkMode { | ||||
| 			log.Printf("terminal reads light but really in dark mode") | ||||
| 			lipgloss.SetHasDarkBackground(true) | ||||
| 		} else { | ||||
| 			log.Printf("cannot detect system darkmode") | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | @ -1,15 +1,34 @@ | |||
| package osstyle | ||||
| 
 | ||||
| import ( | ||||
| 	"github.com/pkg/errors" | ||||
| 	"log" | ||||
| 	"os/exec" | ||||
| 	"strings" | ||||
| ) | ||||
| 
 | ||||
| const ( | ||||
| 	errorMessageIndicatingInLightMode = `The domain/default pair of (kCFPreferencesAnyApplication, AppleInterfaceStyle) does not exist` | ||||
| ) | ||||
| 
 | ||||
| // Usage: https://stefan.sofa-rockers.org/2018/10/23/macos-dark-mode-terminal-vim/
 | ||||
| func darwinGetOSColorScheme() ColorScheme { | ||||
| 	d, err := exec.Command("defaults", "read", "-g", "AppleInterfaceStyle").Output() | ||||
| 	if err != nil { | ||||
| 		log.Printf("cannot get current OS color scheme: %v", err) | ||||
| 		var exitErr *exec.ExitError | ||||
| 		if errors.As(err, &exitErr) { | ||||
| 			stdErr := string(exitErr.Stderr) | ||||
| 
 | ||||
| 			if strings.Contains(stdErr, errorMessageIndicatingInLightMode) { | ||||
| 				log.Printf("error message indicates that macOS is in light mode") | ||||
| 				return ColorSchemeLightMode | ||||
| 			} | ||||
| 
 | ||||
| 			log.Printf("cannot get current OS color scheme: %v - stderr: [%v]", err, stdErr) | ||||
| 		} else { | ||||
| 			log.Printf("cannot get current OS color scheme: %v", err) | ||||
| 		} | ||||
| 
 | ||||
| 		return ColorSchemeUnknown | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ type tableItem struct { | |||
| } | ||||
| 
 | ||||
| func (ti tableItem) FilterValue() string { | ||||
| 	return "" | ||||
| 	return ti.name | ||||
| } | ||||
| 
 | ||||
| func (ti tableItem) Title() string { | ||||
|  |  | |||
|  | @ -64,6 +64,9 @@ func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if m.pendingSelection != nil { | ||||
| 		m.listController = cc.Collect(m.listController.Update(msg)).(listController) | ||||
| 	} | ||||
| 	m.submodel = cc.Collect(m.submodel.Update(msg)) | ||||
| 	return m, cc.Cmd() | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue