mlvwmrc/CONTRIBUTING.md

3.6 KiB
Raw Blame History

Contributing to mlvwmrc

We welcome feedback, bug fixes, and feature request. Ultimately, what gets accepted and merged into the project is up to the current project maintainer (Morgan Aldridge) and what they feel is appropriate for all users of the project, but you are encouraged to submit any suggestions.

Please submit bugs and feature requests for the mlvwmrc configuration files via the projects issue tracker. Note:: If the bug or feature request is actually related to the MLVWM window manager, please report in that project's issue tracker.

What You Need

You will need the following to contribute:

  • A GitHub account for submitting pull requests
  • X11
  • MLVWM

Making Changes

Follow these steps when making changes. That way, they will most likely be accepted with few headaches and very little back and forth.

  1. Fork the mlvwmrc project on GitHub.
  2. Create a topic branch from the master branch. Name your branch appropriately, reflecting the intended changes (e.g. “new-application-styles” or “documentation-improvements”)
  3. Make your edits (please try to conform to our style guide).
  4. Make commits in logical units and with concise but explanatory commit messages. Please reference any appropriate issue numbers, e.g. "Issue #16".
  5. Ensure your changes build without additional warnings or errors. We suggest testing in Xephyr.

Submitting Changes

When youve completed your changes and are ready to merge them into the main project, follow these steps to submit them for review.

  1. Push the changes to your fork of the mlvwmrc project on GitHub
  2. Submit a pull request to the mlvwmrc project

Thats all there is to it.

If you followed the making changes guidelines and the changes are aligned with the vision of the project, it should be a smooth process to merge them.

Style Guide

Please see the README for the overall structure of the configuration files. Below are guidelines for specific MLVWM configuration file commands:

MenuBar & Menu

You'll primarily find MenuBar and Menu built-in commands used in .mlvwm/MenuBar, .mlvwm/MenuExtras/*, and .mlvwm/apps/*.

Important: When creating MenuBar and Menu labels for new applications and Menu Extras, the labels must be unique across the entirety of the MLVWM/mlvwmrc configuration files. Please search the repository for conflicting labels.

That said, MLVWM currently will only find the last definition of a MenuBar or Menu, so this can be taken advantage of to override previous definitions in some cases. It's preferable to avoid such hacks as much as possible as, especially with the heavy use of Read commands in the mlvwmrc configurations which can make determining exactly when a configuration command is used more difficult.

MenuBar

MenuBar labels should be that of the application or MenuExtra name in CamelCase, e.g. (Chrome or HandBrake).

Menu

Menu labels should start with the same application or MenuExtra name as the MenuBar label followed by a dash and the name of the menu in CamelCase (e.g. Chrome-File or Chrome-Bookmarks.)

Labels for sub menus should start with the full label of the parent Menu followed by a dash and the name of the sub menu in CamelCase (e.g. Default-Special-WindowManager.)