A GTK-based color palette manager application for managing and organizing color palettes. Built with .NET 8.0 and GTK# 3.
ColorManager is a desktop application that allows users to:
- Create and manage color palettes
- Store color palettes in XML format
- Select, edit, and delete color palettes
- View and interact with multiple colors per palette (up to 10 colors per palette)
- Display color codes in hex format
- Palette Management: Create new color palettes with custom names
- Color Selection: Support for up to 10 colors per palette
- Persistent Storage: Color palettes are stored in
colors.xmlfor persistence - Edit & Delete: Easily modify or remove existing palettes
- Color Display: Visual color buttons and hex color code input/display
- .NET 8.0 Runtime or SDK
- GTK+ 3.0 or later (for GTK# bindings)
- Linux, Windows, or macOS with .NET 8.0 support
ColorManager/
├── Main.cs # Application entry point
├── MainWindow.cs # Main window UI (legacy)
├── MyForm.cs # Primary application UI
├── MyColor.cs # Color model class
├── PaletteManager.cs # Palette management logic
├── AssemblyInfo.cs # Assembly metadata
├── colors.xml # Palette storage file
├── ColorManager.csproj # Project configuration
└── gtk-gui/ # GTK UI designer files
├── gui.stetic # Stetic UI definition
├── generated.cs # Auto-generated UI code
└── MainWindow.cs # Auto-generated window code
Install the .NET SDK 8.0 and required dependencies:
# On Debian/Ubuntu
sudo apt-get install dotnet-sdk-8.0 libgtk-3-dev
# On Fedora
sudo dnf install dotnet-sdk-8.0 gtk3-devel
# On macOS with Homebrew
brew install dotnet gtk+3# Navigate to the project directory
cd /workspaces/ColorManager
# Restore dependencies
dotnet restore
# Build the project
dotnet build
# Build in Release mode
dotnet build --configuration Release# Run the application
dotnet run
# Or run the compiled executable directly
./ColorManager/bin/Debug/net8.0/ColorManager- Language: C#
- Framework: .NET 8.0
- GUI Framework: GTK# 3 (GtkSharp 3.24.24.117-develop)
- Data Format: XML (colors.xml)
- MyForm: Main application window and UI logic
- PaletteManager: Manages palette CRUD operations and XML storage
- MyColor: Color data model
The project follows C# naming conventions with PascalCase for methods and properties.
- Updated to .NET 8.0
- Updated GTK# to latest develop version (3.24.24.117-develop)
- Modernized project file format (SDK-style .csproj)
- Fixed deprecated GTK# API calls (e.g.,
RemoveText→Remove,ComboBoxEntry→ComboBoxText) - Removed
Mono.Unix.Cataloglocalization calls in favor of direct strings - Fixed icon loading for better compatibility
If you encounter GTK initialization errors, ensure GTK+ 3.0 is properly installed:
# Check GTK installation
pkg-config --modversion gtk+-3.0The application will use the embedded colors.xml file. Ensure it exists in the output directory:
# File should be copied during build to:
./ColorManager/bin/Debug/net8.0/colors.xmlWhen making changes to the project:
- Update the version in
AssemblyInfo.csif necessary - Follow C# naming conventions
- Test on both Debug and Release configurations
- Update this README if adding new features
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
Original project by Sharique Ahmed Farooqui
For issues and questions, please refer to the project repository.