warpdotdev / Warp

Warp is a modern, Rust-based terminal with AI built in so you and your team can build great software, faster.
https://warp.dev
Other
20.98k stars 359 forks source link

Discussion: Config / Configuration spec #175

Closed elviskahoro closed 2 years ago

elviskahoro commented 3 years ago

Describe the solution you'd like?

The Warp team is likely already thinking about this, but the two approaches I'm familiar with are Iterm's GUI with nested hierarchies and alacritty's config file. My intuition is that a config file will be easier to port across devices but may not be as accessible to new terminal users.

Options:
A: GUI (similar to Iterm)
B: Config File
C: Maybe a GUI that syncs directly to a config file. Any updates made directly to the config file will be updated in the GUI Preferences Pane.

Some ideas for each
A1. Syncing can likely be handled with our warp credentials, particularly for the enterprise version.
B1. The config file is lightweight, and you'd likely be serializing point A1 into some json or config file for syncing anyway. An explicit config file would help for offline interoperability. 

Would love some comments and suggestions on how the team and current beta users are thinking about this. Especially the arrangement of all the configurable settings in the case of a config file.

Is your feature request related to a problem? Please describe.

More so a design / product architecture question.
Relates to these issues

Tab Completion Settings: https://github.com/warpdotdev/warp/issues/39 Custom Completion Spec: https://github.com/warpdotdev/warp/issues/131 Keybinding Settings: https://github.com/warpdotdev/warp/issues/30 Prompt Settings: https://github.com/warpdotdev/warp/issues/96

Additional context

Github Features and Issues that imply having an accompanying configurable setting. Checked up to issue #174

Custom Triggers:

Mac Native + UI + Appearance:

Visual Indicator upon some action:

Copy:

Shell

Keybindings: https://github.com/warpdotdev/warp/issues/30

Both: Config and Key Bindings

Running List (no associated issue)

elviskahoro commented 3 years ago

A link to alacritty's default config.

Iterm GUI

Screen Shot 2021-09-08 at 7 09 20 PM

Option C, where the GUI and config file sync back and forth, would likely need a multitiered structure similar to the alacrity config as opposed to sublime for example (flat / one level).

Advait-M commented 1 year ago

Hey folks πŸ‘‹ ! For anyone tracking this discussion - with respect to the point around syntax highlighting (Visual Indicator upon some action):

Super excited to let everyone know that we just launched Syntax Highlighting and Error Underlining on Warp yesterday πŸŽ‰ ! By default, Warp will highlight each part of a command in a different color denoting arguments, options/flags, variables, etc. and underline invalid commands with a dashed red line. You can toggle these features on/off via the Command Palette or Settings > Features.

Please download the latest release (v0.2022.10.11.08.13.stable_01) to get access to these features! The screenshot below shows the features in action:

Syntax Highlighting and Error Underlining Demo

Check out our user documentation for more details!

Let us know if you have any comments/feedback on these features!