acaloiaro / di-tui

A simple terminal UI player for di.fm
BSD 2-Clause "Simplified" License
41 stars 4 forks source link

Support for color themes #13

Closed ryanmusante closed 11 months ago

ryanmusante commented 1 year ago

Is there a way to change the color theme within config.yml for the interface?

acaloiaro commented 1 year ago

Not currently. I'd be happy to entertain the idea.

Feel free to share what you think would be a reasonable amount of configuration in config.yml.

If I recall correctly, I used a single hard-coded color across the whole app, defaulting to your terminal colors for all other text.

That would mean something like this in config.yml

primary_color: #HEXCODE
secondary_color: #HEXCODE
ryanmusante commented 1 year ago

Yes, if I could change foreground text and background color, that would be fantastic. I want to match my github theme with kitty term. For example

background            #f4f4f4
foreground            #3e3e3e
acaloiaro commented 1 year ago

Do you mind sharing what it looks like in kitty right now?

It's been a while since I've worked on the views for this application. I believe it was somewhere around 2018 when I implemented all that, so I'll need to refresh myself.

With that said, I'm fairly confident I'm only changing text colors, and not the background. So, I believe your terminal background color is what you'll see. So I'd love to see an image of your terminal running di-tui, and perhaps a screenshot of it not running di-tui, with something innocuous on the screen.

With that said. I'd like to mull over more comprehensive "theme" support. Its current color scheme is Tomorrow-Night inspired (very loosely). But I think it would be nice for people to bring their own theme by editing config.yaml, or perhaps creating some theme yamls that get merged into config.yaml so they can be edited without mucking up the config.

ryanmusante commented 1 year ago

So, when I switch manually to the darker config through the kitten, I can get closer to what I want, but I would like the ability to modify separate from it.

kitty +kitten themes    

di-tui screeen interface

di-tui

kitty config interface

kitty-config

terminal output

output

acaloiaro commented 1 year ago

Ok thanks a lot, that's interesting. di-tui is clearly setting a background, although perhaps not directly.

acaloiaro commented 12 months ago

I've got a themeable build ready, but I want to fiddle with the default colors some more before triggering a release.

acaloiaro commented 12 months ago

@ryanmusante If you're comfortable checking out a branch and running the app with go run main.go, you can try out the branch associated with this PR to see if you can achieve what you'd hoped to achieve style-wise.

Have a look at its README.md for a starter theme to start making your changes from.

Pull request: https://github.com/acaloiaro/di-tui/pull/14

This is my "tomorrow night" inspired theme that you can add to config.yml:

theme:
  primary_color: "#81a2be"
  background_color: "#2a1f1a"
  primary_text_color: "#969896"
  secondary_text_color: "#81a2be"
ryanmusante commented 12 months ago

Sure, to confirm, the branch is? git clone https://github.com/acaloiaro/di-tui/tree/add-color-theme-support

acaloiaro commented 12 months ago

Yep that's the one.

ryanmusante commented 12 months ago

I installed with go, but for some reason, it won't launch the binary

~ > ps -ef | grep di-tui

────────────────────────────────────────────────────────────────────────────────
     STDIN
 413 root        5703       2  0 10:44 ?        00:00:00 [kworker/u32:5-events_u
     nbound]
 414 root        5704       2  0 10:44 ?        00:00:00 [kworker/u32:6]
 415 ryan        5712    2174  0 10:45 pts/2    00:00:00 /home/ryan/go/bin/di-tu

~ > locate di-tui

/home/ryan/.config/di-tui
/home/ryan/.config/di-tui/config.yml
/home/ryan/go/bin/di-tui
/home/ryan/go/pkg/mod/cache/download/github.com/acaloiaro/di-tui
/home/ryan/go/pkg/mod/cache/download/github.com/acaloiaro/di-tui/@v
/home/ryan/go/pkg/mod/cache/download/github.com/acaloiaro/di-tui/@v/list
/home/ryan/go/pkg/mod/cache/download/github.com/acaloiaro/di-tui/@v/v1.3.15.info
/home/ryan/go/pkg/mod/cache/download/github.com/acaloiaro/di-tui/@v/v1.3.15.lock
/home/ryan/go/pkg/mod/cache/download/github.com/acaloiaro/di-tui/@v/v1.3.15.mod
/home/ryan/go/pkg/mod/cache/download/github.com/acaloiaro/di-tui/@v/v1.3.15.zip
/home/ryan/go/pkg/mod/cache/download/github.com/acaloiaro/di-tui/@v/v1.3.15.ziphash
/home/ryan/go/pkg/mod/cache/download/sumdb/sum.golang.org/lookup/github.com/acaloiaro/di-tui@v1.3.15
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/.github
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/.gitignore
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/.goreleaser.yml
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/CHANGELOG.md
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/LICENSE
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/README.md
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/app
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/components
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/config
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/context
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/difm
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/go.mod
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/go.sum
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/main.go
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/player
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/views
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/.github/workflows
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/.github/workflows/goreleaser.yml
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/app/app.go
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/components/components.go
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/config/config.go
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/context/context.go
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/difm/difm.go
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/player/player.go
/home/ryan/go/pkg/mod/github.com/acaloiaro/di-tui@v1.3.15/views/views.go
acaloiaro commented 12 months ago

Unfortunately this isn't related to the theme branch. Believe it or not, di.fm is suffering an outage https://maintenance-di.pages.dev/

In the mean time, you can go install github.com/acaloiaro/di-tui@add-color-theme-support to get this proposed theme build installed locally.

Once di.fm is back online and I get your test results back, I can cut a release, assuming there are no issues.

ryanmusante commented 12 months ago

Digitally Imported has been a life giving apparatus to be honest. Electronica in rare form. There is no other streaming service that even compares. Thanks to all your work with this app!

acaloiaro commented 11 months ago

np! This multi-day di.fm outage is painful.

ryanmusante commented 11 months ago

Is it another DDOS? What purpose do hackers have in breaking up a music service? That's dumb

acaloiaro commented 11 months ago

Their data center suffered a fire, resulting in a power outage.

acaloiaro commented 11 months ago

DI is back in biz: go install github.com/acaloiaro/di-tui@add-color-theme-support and give it a whirl

acaloiaro commented 11 months ago

Fixed by #14

ryanmusante commented 11 months ago

Looks great with default!

ditui-colors

acaloiaro commented 11 months ago

Awesome, thanks for testing and requesting!