#guide #maker #tmux #tui #dotfiles #terminal

app conffee-maker

Conffee can guide your to make your config files

1 unstable release

0.1.0 Aug 25, 2020

#507 in Configuration

MIT license

5KB

Conffee-maker

$cm or Confee Maker is a command terminal interface TUI to generate configuration files for different applications based on templates.

Have you ever tried to configure nvim, tmux, alacritty or any other dotfiles based application config?

What if you can tell cm to guide throught the process?

$ cargo install cm

IMPORTANT: cm doesn't simply generate the config file for you it will instead guide you step by step allowing the selection of each option one by one, including an explanation of each config it will never allow you to set some config value without agreeing with its purpose.

Example:

$ cm --update-templates

[1%..... downloading community templates ..... 100%]

Updated Global templates:

- nvim
- tmux
- alacritty
...

Pass the template name to use global or pass the location for a custom template.

e.g:

$ cm nvim

or

$ cm github.com/foo/bar:nvim

With any of above the cm TUI will open and guide you on the process


Welcome to Conffee Maker press [enter] to start
brewing your conffeeguration files for `nvim`
     ______________________
    (___________           |
      [XXXXX]   |          |
 __  /~~~~~~~\  |          |
/  \|@@@@@@@@@\ |   nvim   |
\   |@@@@@@@@@@||          |
    \@@@@@@@@@@||  ______  |
     \@@@@@@@@/ | |on|off| |
    __\@@@@@@/__|  ~~~~~~  |
   (____________|__________|
   |_______________________|


Then in the next steps each screen will guide you

each screen is a guide for a line or a section of the config file.

###########################################################
#
#        Cursor Line and Column
#
#   set cursorline    [x]    - use space bar to select
#   set cursorcolumn  [x]
#
#  Please choose which cursor lines you want to be ren-
#  derred.
#
#  Cursor lines are special markers on screen as shown
#  in ....
#                                 [enter or -> for next]
#
#  Stats:
#    - 56% of users set this options to `true`
#    - This option is popular among Python developers
#    - This is useful for selections in Visual Column Mode
#
###########################################################

cm is going to show a screen for each section of the config file and at the end will generate the file and ask the user if wants to change its save location.

cm will always backup existing file if found.

Templates

Templates are YAML files containing global variables and templates for each option also called drops.

nvim.yaml

---
cm: 0.1.0
defaults:
  output_path: "$XDG_HOME/.config/nvim/init.vim"
drops:
  - name: Cursor Line and Column
    spaced: true
    options:
      - "set cursorline   {flag}"
      - "set cursorcolumn {flag}"
    outputs:
      - "set cursorline"
      - "set cursorcolumn"
    help: Cursor lines are special markers on screen as shown in ...

  - name: Allow hidden buffers
    spaced: false
    options:
      - "set hidden {flag}"
    outputs:
      - "set hidden"
    help: Enables the closing of buffers without saving it.

Multiple templates can be merged and composed.

No runtime deps