diff --git a/AUR/PKGBUILD b/AUR/PKGBUILD index 9d1afd9..27fb161 100644 --- a/AUR/PKGBUILD +++ b/AUR/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: Daniel Dada pkgname=clrsync -pkgver=1.0.0 +pkgver=1.0.1 pkgrel=1 pkgdesc="Color scheme manager" arch=('x86_64') diff --git a/CMakeLists.txt b/CMakeLists.txt index cc42de3..59c3e79 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.25) -project(clrsync VERSION 1.0.0 LANGUAGES CXX) +project(clrsync VERSION 1.0.1 LANGUAGES CXX) include(GNUInstallDirs) diff --git a/README.md b/README.md index d772466..b7da9b1 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ A theme management tool for synchronizing color schemes across multiple applicat - [Usage](#usage) - [CLI](#cli) - [GUI](#gui) +- [Extras](#extras) - [Acknowledgments](#acknowledgments) ## Features @@ -463,6 +464,10 @@ The GUI provides: - **Template Editor**: Edit template files - **Live Preview**: See changes in real-time +## Extras + +You may find some pre-configured color schemes and templates in [extra](extra) directory of this repository. + ## Acknowledgments - **[matugen](https://github.com/InioX/matugen)** - A material you color generation tool @@ -471,4 +476,3 @@ The GUI provides: - **[toml++](https://github.com/marzer/tomlplusplus)** - Header-only TOML config file parser and serializer for C++17 - **[argparse](https://github.com/p-ranav/argparse)** - Argument Parser for Modern C++ - **[ImGuiColorTextEdit](https://github.com/BalazsJako/ImGuiColorTextEdit)** - Syntax highlighting text editor for ImGui -- **cursed** by **[pyratebeard](https://pyratebeard.net)** - Color scheme diff --git a/VERSION b/VERSION index 3eefcb9..7dea76e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.0 +1.0.1 diff --git a/extra/README.md b/extra/README.md new file mode 100644 index 0000000..a68b4ec --- /dev/null +++ b/extra/README.md @@ -0,0 +1,105 @@ +# Extras + +## Palettes + +### Cursed + +A dark color scheme, which tries to be like `cursed` theme by **[pyratebeard](https://pyratebeard.net)** + +![cursed](img/cursed.png) + +### Cursed-light + +Same as `cursed`, but it also tries to be light as well + +![cursed-light](img/cursed-light.png) + +### Nord + +Color scheme based on `Nord` + +![nord](img/nord.png) + +## Pre-configured templates + +### Kitty + +**1. Download [template file](templates/kitty.conf)** + +**2. Configure template in `~/.config/clrsync/config.toml`** + +```toml +[templates.kitty] +enabled = true +input_path = '~/.config/clrsync/templates/kitty.conf' +output_path = '~/.config/kitty/clrsync.conf' +reload_cmd = 'pkill -SIGUSR1 kitty' +``` + +**3. Import generated color scheme in `~/.config/kitty/kitty.conf** + +```conf +include clrsync.conf +``` + +### Neovim + +**1. Download [template file](templates/nvim.lua)** + +**2. Configure template in `~/.config/clrsync/config.toml`** + +```toml +[templates.nvim] +enabled = true +input_path = '~/.config/clrsync/templates/nvim.lua' +output_path = '~/.config/nvim/colors/clrsync.lua' +reload_cmd = '' +``` + +**3. Set colorscheme in neovim config** + +```lua +vim.cmd.colorscheme 'clrsync' +``` + +### Alacritty + +**1. Download [template file](templates/alacritty.toml)** + +**2. Configure template in `~/.config/clrsync/config.toml`** + +```toml +[templates.alacritty] +enabled = true +input_path = '~/.config/clrsync/templates/alacritty.toml' +output_path = '~/.config/alacritty/clrsync.toml' +reload_cmd = '' +``` + +**3. Import generated color scheme in `~/.config/alacritty/alacritty.toml** + +```toml +[general] +import = ["clrsync.toml"] +``` + + +### Ghostty + +**1. Download [template file](templates/ghostty)** + +**2. Configure template in `~/.config/clrsync/config.toml`** + +```toml +[templates.ghostty] +enabled = true +input_path = '~/.config/clrsync/templates/ghostty' +output_path = '~/.config/ghostty/themes/clrsync' +reload_cmd = 'pkill -SIGUSR2 ghostty' +``` + +**3. Set generated color scheme in `~/.config/ghostty/config** + +```toml +theme = "clrsync" +``` \ No newline at end of file diff --git a/extra/img/cursed-light.png b/extra/img/cursed-light.png new file mode 100644 index 0000000..bbc4744 Binary files /dev/null and b/extra/img/cursed-light.png differ diff --git a/extra/img/cursed.png b/extra/img/cursed.png new file mode 100644 index 0000000..85f2d68 Binary files /dev/null and b/extra/img/cursed.png differ diff --git a/extra/img/nord.png b/extra/img/nord.png new file mode 100644 index 0000000..978923b Binary files /dev/null and b/extra/img/nord.png differ diff --git a/extra/palettes/nord.toml b/extra/palettes/nord.toml index cbc5262..dcb4251 100644 --- a/extra/palettes/nord.toml +++ b/extra/palettes/nord.toml @@ -1,5 +1,5 @@ [colors] -accent = '#5E81ACFF' +accent = '#A1CDFAFF' background = '#2E3440FF' base00 = '#2E3440FF' base01 = '#BF616AFF' diff --git a/extra/templates/alacritty.toml b/extra/templates/alacritty.toml new file mode 100644 index 0000000..a7cd982 --- /dev/null +++ b/extra/templates/alacritty.toml @@ -0,0 +1,69 @@ +[colors.primary] +background = '{background}' +foreground = '{foreground}' + +[colors.cursor] +text = '{background}' +cursor = '{cursor}' + +[colors.vi_mode_cursor] +text = '{background}' +cursor = '{cursor}' + +[colors.selection] +text = 'CellForeground' +background = '{editor_selected}' + +[colors.search.matches] +foreground = '{background}' +background = '{base0A}' + +[colors.search.focused_match] +foreground = '{background}' +background = '{accent}' + +[colors.footer_bar] +foreground = '{foreground}' +background = '{surface}' + +[colors.hints.start] +foreground = '{background}' +background = '{warning}' + +[colors.hints.end] +foreground = '{background}' +background = '{surface_variant}' + +[colors.line_indicator] +foreground = 'None' +background = 'None' + +[colors.normal] +black = '{base00}' +red = '{base08}' +green = '{base01}' +yellow = '{base02}' +blue = '{base06}' +magenta = '{base05}' +cyan = '{base0E}' +white = '{base07}' + +[colors.bright] +black = '{border_focused}' +red = '{editor_error}' +green = '{editor_success}' +yellow = '{base0A}' +blue = '{editor_link}' +magenta = '{base0D}' +cyan = '{editor_comment}' +white = '{base0F}' + +[colors.dim] +black = '{border}' +red = '{base0C}' +green = '{base01}' +yellow = '{editor_string}' +blue = '{base06}' +magenta = '{base05}' +cyan = '{base0E}' +white = '{base07}' \ No newline at end of file diff --git a/extra/templates/ghostty b/extra/templates/ghostty new file mode 100644 index 0000000..97d212b --- /dev/null +++ b/extra/templates/ghostty @@ -0,0 +1,26 @@ +background = {background} +foreground = {foreground} + +cursor-color = {cursor} +cursor-text = {foreground} + +selection-background = {editor_selected} +selection-foreground = {foreground} + +palette = 0={base00} +palette = 1={base08} +palette = 2={base01} +palette = 3={base02} +palette = 4={base06} +palette = 5={base05} +palette = 6={base0E} +palette = 7={base07} + +palette = 8={border_focused} +palette = 9={editor_error} +palette = 10={editor_success} +palette = 11={base0A} +palette = 12={editor_link} +palette = 13={base0D} +palette = 14={editor_comment} +palette = 15={base0F} \ No newline at end of file diff --git a/extra/templates/kitty.conf b/extra/templates/kitty.conf new file mode 100644 index 0000000..4bee4b1 --- /dev/null +++ b/extra/templates/kitty.conf @@ -0,0 +1,32 @@ +cursor {cursor} +cursor_text_color {background} + +foreground {foreground} +background {background} +selection_foreground {on_surface} +selection_background {surface} +url_color {accent} + +color0 {base00} +color8 {base08} + +color1 {base01} +color9 {base09} + +color2 {base02} +color10 {base0A} + +color3 {base03} +color11 {base0B} + +color4 {base04} +color12 {base0C} + +color5 {base05} +color13 {base0D} + +color6 {base06} +color14 {base0E} + +color7 {base07} +color15 {base0F} \ No newline at end of file diff --git a/extra/templates/nvim.lua b/extra/templates/nvim.lua new file mode 100644 index 0000000..18fc91c --- /dev/null +++ b/extra/templates/nvim.lua @@ -0,0 +1,93 @@ +vim.cmd("highlight clear") +vim.cmd("syntax reset") +vim.g.colors_name = "clrsync" + +local palette = { + -- Editor colors + Default = "{editor_main.hex}", + Keyword = "{editor_command.hex}", + Number = "{editor_warning.hex}", + String = "{editor_string.hex}", + CharLiteral = "{editor_string.hex}", + Punctuation = "{editor_main.hex}", + Preprocessor = "{editor_emphasis.hex}", + Identifier = "{editor_main.hex}", + KnownIdentifier = "{editor_link.hex}", + PreprocIdentifier = "{editor_link.hex}", + + Comment = "{editor_comment.hex}", + MultiLineComment = "{editor_comment.hex}", + + Background = "{editor_background.hex}", + Cursor = "{cursor.hex}", + + Selection = "{editor_selected.hex}", + ErrorMarker = "{editor_error.hex}", + Breakpoint = "{editor_error.hex}", + + LineNumber = "{editor_line_number.hex}", + CurrentLineFill = "{surface_variant.hex}", + CurrentLineFillInactive = "{surface.hex}", + + CurrentLineEdge = "{border_focused.hex}", + + -- Semantic colors + Success = "{success.hex}", + Warning = "{warning.hex}", + Error = "{error.hex}", + Info = "{info.hex}", +} + +-- Helper function to set highlights in Neovim +local function set_hl(group, opts) + vim.api.nvim_set_hl(0, group, opts) +end + +vim.o.winborder = "rounded" + +-- Basic editor highlights using the mapped palette +set_hl("Normal", { fg = palette.Default, bg = palette.Background }) +set_hl("CursorLine", { bg = palette.CurrentLineFill }) +set_hl("Visual", { bg = palette.Selection }) +set_hl("LineNr", { fg = palette.LineNumber }) +set_hl("CursorLineNr", { fg = palette.Keyword }) + +-- Syntax highlights +set_hl("Comment", { fg = palette.Comment, italic = true }) +set_hl("Constant", { fg = palette.Number }) +set_hl("String", { fg = palette.String }) +set_hl("Character", { fg = palette.CharLiteral }) +set_hl("Identifier", { fg = palette.Identifier }) +set_hl("Function", { fg = palette.Keyword }) +set_hl("Statement", { fg = palette.Keyword }) +set_hl("PreProc", { fg = palette.Preprocessor }) +set_hl("Type", { fg = palette.Keyword }) +set_hl("Special", { fg = palette.PreprocIdentifier }) +set_hl("Underlined", { fg = palette.KnownIdentifier }) +set_hl("Error", { fg = palette.ErrorMarker, bg = palette.Background }) +set_hl("Todo", { fg = palette.Default, bg = palette.Keyword }) + +-- Floating windows +set_hl("NormalFloat", { bg = palette.Background }) +set_hl("FloatBorder", { fg = palette.CurrentLineEdge, bg = palette.Background }) + +-- Completion menu +set_hl("Pmenu", { bg = palette.Background }) +set_hl("PmenuSel", { bg = palette.Keyword, fg = palette.Background }) + +-- Git and diagnostic highlights +set_hl("DiffAdd", { fg = palette.Success, bg = palette.Background }) +set_hl("DiffChange", { fg = palette.Keyword, bg = palette.Background }) +set_hl("DiffDelete", { fg = palette.ErrorMarker, bg = palette.Background }) +set_hl("DiagnosticError", { fg = palette.Error }) +set_hl("DiagnosticWarn", { fg = palette.Warning }) +set_hl("DiagnosticInfo", { fg = palette.Info }) +set_hl("DiagnosticHint", { fg = palette.PreprocIdentifier }) + +-- Treesitter links +set_hl("@comment", { link = "Comment" }) +set_hl("@string", { fg = palette.String }) +set_hl("@function", { fg = palette.Keyword }) +set_hl("@variable", { fg = palette.Identifier }) +set_hl("@keyword", { fg = palette.Keyword }) +set_hl("@type", { fg = palette.Preprocessor }) \ No newline at end of file diff --git a/src/core/common/version.hpp b/src/core/common/version.hpp index d1b4c54..4bc0086 100644 --- a/src/core/common/version.hpp +++ b/src/core/common/version.hpp @@ -6,7 +6,7 @@ namespace clrsync::core { -const std::string GIT_SEMVER = "0.1.7+git.gd17776b"; +const std::string GIT_SEMVER = "1.0.0+git.g5b0599a"; const std::string version_string(); } // namespace clrsync::core