cdepillabout / cdepillabout/termonad
Dynamically Toggle Between Colour Schemes in Existing Tabs and Windows Without Recompiling
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 418
- Forks
- 51
- PR merge metrics
- No merged PRs in 30d
Description
I've been wondering about how to load the Solarized themes and switch between light and dark with a key stroke toggle.
This should be possible, but will require changing a few things.
You'll have to send a PR to add a hook that gets called right as Termonad is about to launch. Probably around here:
In your own config, you'll have to override that hook to define a new key binding for each existing terminal.
Here's an example of defining a key binding (this code defines the Alt-1, Alt-2, etc bindings for switching tabs):
Your key binding will have to call a function that loops through all the open tabs and sets the colors for the terminal.
Here's where that is currently being done:
This is only setting colors for a single terminal, so you'll have to change it so it loops through all tabs.
Here's a function that loops through all tabs (although this is changing the font size):
Originally posted by @cdepillabout in https://github.com/cdepillabout/termonad/issues/94#issuecomment-450806022
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read the hook in src/Termonad/Types.hs and its launch point in src/Termonad/App.hs first, then inspect key bindings in src/Termonad/Keys.hs and src/Termonad/Term.hs. Compare the single-terminal color update in src/Termonad/Config/Colour.hs with the tab loop in src/Termonad/App.hs; done means a configurable key binding can switch colors across all open tabs and windows without recompiling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 38/100