Skip to content

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

License

Notifications You must be signed in to change notification settings

rochacbruno/conffee-maker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages