Thank you for your interest in contributing to Aether Command! This document provides guidelines and instructions for contributing to the project.
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Coding Standards
- Commit Guidelines
- Pull Request Process
- Reporting Bugs
- Suggesting Features
Be respectful and professional in all interactions. We aim to create a welcoming environment for all contributors.
- Fork the repository on GitHub
- Clone your fork locally
- Set up the development environment
- Create a new branch for your changes
- Make your changes
- Test your changes
- Submit a pull request
Make sure you have all dependencies installed. See README.md for distribution-specific instructions.
git clone https://github.com/NurOS-Linux/command.git
cd command
meson setup builddir
ninja -C builddirninja -C builddir test./builddir/aether-command- Browse the Issues page
- Comment on an issue you'd like to work on
- Wait for approval from maintainers
- Fork and create a branch
- Work on the issue
- Submit a pull request
- Check the ROADMAP.md to see if it's already planned
- Open a new issue describing the feature
- Discuss the implementation with maintainers
- Once approved, follow the standard contribution workflow
- Use 4 spaces for indentation (no tabs)
- Use snake_case for methods and variables
- Use PascalCase for classes and namespaces
- Maximum line length: 120 characters
- Always use explicit access modifiers (public, private, protected)
namespace AetherCommand {
public class ExampleClass : Gtk.Box {
private string example_variable;
public ExampleClass () {
Object (
orientation: Gtk.Orientation.VERTICAL,
spacing: 0
);
setup_example ();
}
private void setup_example () {
// Implementation
}
}
}All source files must include the GPL-3.0 license header:
/*
* Aether Command - Modern Terminal Emulator
* Copyright (C) 2026 NurOS
* Developer: AnmiTaliDev
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/- Code must compile without warnings
- Follow existing code patterns in the project
- Add comments for complex logic
- Keep methods focused and concise
- Avoid deep nesting (max 3-4 levels)
<type>: <subject>
<body>
<footer>
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, no code change)refactor: Code refactoringtest: Adding or updating testschore: Build process or auxiliary tool changes
feat: add color scheme customization
Implemented color scheme selection in preferences dialog.
Users can now choose from predefined themes or create custom ones.
Closes #42
fix: correct window title update on directory change
The window title now properly updates when changing directories
in the terminal.
Fixes #38
- Write clear, descriptive commit messages
- Keep commits focused on a single change
- Reference issues in commit messages
- Use present tense ("add feature" not "added feature")
- Keep subject line under 50 characters
- Wrap body at 72 characters
- Ensure code compiles without warnings
- Test your changes thoroughly
- Update documentation if needed
- Add yourself to contributors list if it exists
Include in your pull request:
- Summary of changes
- Related issue numbers
- Testing performed
- Screenshots (for UI changes)
- Breaking changes (if any)
## Description
Brief description of changes
## Related Issue
Closes #(issue number)
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
Describe testing performed
## Screenshots
(if applicable)
## Checklist
- [ ] Code compiles without warnings
- [ ] Code follows project style guidelines
- [ ] License header included in new files
- [ ] Documentation updated
- [ ] Tested on my system- Maintainers will review your PR
- Address any feedback or requested changes
- Once approved, maintainers will merge your PR
- Your contribution will be included in the next release
- Check if the bug is already reported
- Try to reproduce with latest version
- Gather relevant information
**Description**
Clear description of the bug
**Steps to Reproduce**
1. Step one
2. Step two
3. Step three
**Expected Behavior**
What should happen
**Actual Behavior**
What actually happens
**Environment**
- OS: [e.g., Arch Linux]
- Aether Command version: [e.g., 0.0.1]
- GTK version: [run `pkg-config --modversion gtk4`]
- VTE version: [run `pkg-config --modversion vte-2.91-gtk4`]
**Additional Context**
Any other relevant information**Feature Description**
Clear description of the feature
**Use Case**
Why this feature would be useful
**Proposed Implementation**
(Optional) Ideas for implementation
**Alternatives Considered**
(Optional) Other solutions you've considered
**Additional Context**
Any mockups, examples, or references- Open an issue for questions
- Check existing documentation
- Review closed issues for similar problems
- Contact: anmitali198@gmail.com
By contributing to Aether Command, you agree that your contributions will be licensed under the GNU General Public License v3.0.
Thank you for contributing to Aether Command!