First patch in almost 2 years!

I removed the install script as it is outdated and honestly its easier to just manually install it.
added some patches to the scss files to make it compatible with the latest gitea version.

Later i hope to add more themes to this one file, and change it to a theme pack.

updated the app.ini, make sure for this commit to change your app.ini to match the new one.
This commit is contained in:
2026-01-17 09:05:28 -08:00
parent 4c6bd79742
commit 77f5258f02
7 changed files with 194 additions and 234 deletions

View File

@@ -1,4 +1,3 @@
# Gitea Blurple
## We have made a nice little script for you to install this.
## `wget -O gitea-blurple.sh https://sop.wtf/tpkauf && bash gitea-blurple.sh`
It's a blurple theme for Gitea.

View File

@@ -1,83 +0,0 @@
#!/bin/bash
log_message() {
local level=$1
local message=$2
local timestamp=$(date +"%Y-%m-%d %H:%M:%S")
echo "[$timestamp] [$level] $message" >> /var/log/gitea_blurple.log
}
handle_error() {
local message=$1
local level=${2:-"ERROR"}
log_message "$level" "$message"
echo "Error: $message" >&2
exit 1
}
clone_repository() {
local retries=3
local attempt=1
until git clone https://git.oldgate.org/OGS/Gitea-Blurple.git; do
((attempt++))
if [ $attempt -gt $retries ]; then
handle_error "Failed to clone repository after $retries attempts"
fi
log_message "WARNING" "Failed to clone repository, retrying... (Attempt $attempt)"
sleep 5
done
}
backup_file() {
local file=$1
if [ -e "$file" ]; then
cp "$file" "$file.bak" || handle_error "Failed to backup $file"
log_message "INFO" "Backup created for $file"
else
log_message "WARNING" "File $file does not exist, skipping backup"
fi
}
append_to_file() {
local content=$1
local file=$2
echo "$content" >> "$file" || handle_error "Failed to append content to $file"
}
main() {
local repository_dir="Gitea-Blurple"
local gitea_service="gitea"
local gitea_config="/etc/gitea/app.ini"
local custom_dir="/var/lib/gitea/custom"
local custom_public_dir="$custom_dir/public"
cd /tmp || handle_error "Failed to change directory to /tmp"
clone_repository || handle_error "Failed to clone repository"
sudo systemctl stop "$gitea_service" || handle_error "Failed to stop Gitea service"
backup_file "$custom_public_dir"
sudo cp -r "$repository_dir/public/" "$custom_public_dir" || handle_error "Failed to copy new custom/public directory"
sudo chown -R git:git "$custom_dir" || handle_error "Failed to set ownership"
sudo chmod -R 750 "$custom_dir" || handle_error "Failed to set permissions"
if grep -q "\[ui\]" "$gitea_config"; then
sudo systemctl restart "$gitea_service" || handle_error "Failed to restart Gitea service"
else
backup_file "$gitea_config"
append_to_file "$(cat "$repository_dir/templates/app.ini")" "$gitea_config"
sudo chown root:git "$gitea_config" || handle_error "Failed to set ownership for app.ini"
sudo chmod 770 "$gitea_config" || handle_error "Failed to set permissions for app.ini"
sudo systemctl restart "$gitea_service" || handle_error "Failed to restart Gitea service"
fi
echo -e "=================================================================="
echo "Clear your cache for the changes to appear"
echo -e "=================================================================="
log_message "INFO" "Script execution completed successfully"
}
main

View File

@@ -158,16 +158,18 @@
--color-grey: #505665;
--color-grey-light: #8d919b;
--color-gold: #b1983b;
--color-white: #fff;
--color-diff-removed-word-bg: #6f3333;
--color-diff-added-word-bg: #3c653c;
--color-diff-removed-row-bg: #3c2626;
--color-diff-moved-row-bg: #818044;
--color-diff-added-row-bg: #283e2d;
--color-diff-removed-row-border: #634343;
--color-diff-moved-row-border: #bcca6f;
--color-white: #ffffff;
--color-diff-added-linenum-bg: #274227;
--color-diff-added-row-bg: #203224;
--color-diff-added-row-border: #314a37;
--color-diff-inactive: #353846;
--color-diff-added-word-bg: #3c653c;
--color-diff-moved-row-bg: #818044;
--color-diff-moved-row-border: #bcca6f;
--color-diff-removed-linenum-bg: #482121;
--color-diff-removed-row-bg: #301e1e;
--color-diff-removed-row-border: #634343;
--color-diff-removed-word-bg: #6f3333;
--color-diff-inactive: #22282d;
--color-error-border: #a04141;
--color-error-bg: #522;
--color-error-bg-active: #744;
@@ -212,44 +214,53 @@
--color-input-toggle-background: #454a57;
--color-input-border: var(--color-secondary);
--color-input-border-hover: var(--color-secondary-dark-1);
--color-header-wrapper: #202430;
--color-light: #00000028;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40/255*222/255/var(--opacity-disabled)));
--color-light-border: #ffffff28;
--color-hover: #ffffff10;
--color-active: #ffffff16;
--color-menu: #2e323e;
--color-card: #2e323e;
--color-markup-table-row: #ffffff06;
--color-markup-code-block: #ffffff0d;
--color-button: #353846;
--color-code-bg: #2a2e3a;
--color-code-sidebar-bg: #2e323e;
--color-shadow: #00000060;
--color-secondary-bg: #2a2e3a;
--color-text-focus: #fff;
--color-expand-button: #3c404d;
--color-placeholder-text: #6a737d;
--color-light: #00001728;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
--color-light-border: #e8f3ff28;
--color-hover: #e8f3ff19;
--color-hover-opaque: #21252a;
--color-active: #e8f3ff24;
--color-menu: #2E323E;
--color-card: #2E323E;
--color-markup-table-row: #e8f3ff0f;
--color-markup-code-block: #e8f3ff12;
--color-markup-code-inline: #e8f3ff28;
--color-button: #2E323E;
--color-code-bg: #14171a;
--color-shadow: #00001758;
--color-shadow-opaque: #000017;
--color-secondary-bg: #2a3137;
--color-expand-button: #2f363d;
--color-placeholder-text: var(--color-text-light-3);
--color-editor-line-highlight: var(--color-primary-light-5);
--color-project-board-bg: var(--color-secondary-light-2);
--color-project-column-bg: var(--color-secondary-light-2);
--color-caret: var(--color-text);
--color-reaction-bg: #ffffff12;
--color-reaction-bg: #e8f3ff12;
--color-reaction-hover-bg: var(--color-primary-light-4);
--color-reaction-active-bg: var(--color-primary-light-5);
--color-tooltip-text: #fff;
--color-tooltip-bg: #000000f0;
--color-tooltip-text: #f9fafb;
--color-tooltip-bg: #000b17f0;
--color-nav-bg: #232834;
--color-nav-hover-bg: #383c47;
--color-label-text: #dfe3ec;
--color-label-bg: #7c84974b;
--color-label-hover-bg: #7c8497a0;
--color-label-active-bg: #7c8497ff;
--color-nav-hover-bg: var(--color-secondary-light-1);
--color-nav-text: var(--color-text);
--color-secondary-nav-bg: #383C4A;
--color-label-text: var(--color-text);
--color-label-bg: #7282924b;
--color-label-hover-bg: #728292a0;
--color-label-active-bg: #728292ff;
--color-accent: var(--color-primary-light-1);
--color-small-accent: var(--color-primary-light-5);
--color-active-line: #534d1b;
--color-highlight-fg: #87651e;
--color-highlight-bg: #352c1c;
--color-overlay-backdrop: #080808c0;
accent-color: var(--color-accent);
color-scheme: dark;
--color-diff-added-linenum-bg: #1979fd46;
--color-diff-added-row-bg: #1979fd20;
--color-diff-added-word-bg: #1979fd66;
--color-diff-removed-linenum-bg: #c8622146;
--color-diff-removed-row-bg: #c8622120;
--color-diff-removed-word-bg: #c8622166 ;
}
}
/**
@@ -517,26 +528,29 @@ DO NOT INCLUEDE ANY :root(s) IN THIS FILE!!!
.CodeMirror.cm-s-paper .cm-error {
color: #dbdbeb;
}
.emoji[aria-label=check\ mark],
.emoji[aria-label=currency\ exchange],
.emoji[aria-label=TOP\ arrow],
.emoji[aria-label=END\ arrow],
gitea-theme-meta-info {
--theme-display-name: "Dark" ;
}
.emoji[aria-label="check mark"],
.emoji[aria-label="currency exchange"],
.emoji[aria-label="TOP arrow"],
.emoji[aria-label="END arrow"],
.emoji[aria-label="ON! arrow"],
.emoji[aria-label=SOON\ arrow],
.emoji[aria-label="SOON arrow"],
.emoji[aria-label="heavy dollar sign"],
.emoji[aria-label=copyright],
.emoji[aria-label=registered],
.emoji[aria-label=trade\ mark],
.emoji[aria-label="trade mark"],
.emoji[aria-label=multiply],
.emoji[aria-label=plus],
.emoji[aria-label=minus],
.emoji[aria-label=divide],
.emoji[aria-label=curly\ loop],
.emoji[aria-label="curly loop"],
.emoji[aria-label="double curly loop"],
.emoji[aria-label=wavy\ dash],
.emoji[aria-label=paw\ prints],
.emoji[aria-label=musical\ note],
.emoji[aria-label=musical\ notes] {
.emoji[aria-label="wavy dash"],
.emoji[aria-label="paw prints"],
.emoji[aria-label="musical note"],
.emoji[aria-label="musical notes"] {
filter: invert(100%) hue-rotate(180deg);
}
}

View File

@@ -133,16 +133,18 @@
--color-grey: #505665;
--color-grey-light: #8d919b;
--color-gold: #b1983b;
--color-white: #fff;
--color-diff-removed-word-bg: #6f3333;
--color-diff-added-word-bg: #3c653c;
--color-diff-removed-row-bg: #3c2626;
--color-diff-moved-row-bg: #818044;
--color-diff-added-row-bg: #283e2d;
--color-diff-removed-row-border: #634343;
--color-diff-moved-row-border: #bcca6f;
--color-white: #ffffff;
--color-diff-added-linenum-bg: #274227;
--color-diff-added-row-bg: #203224;
--color-diff-added-row-border: #314a37;
--color-diff-inactive: #353846;
--color-diff-added-word-bg: #3c653c;
--color-diff-moved-row-bg: #818044;
--color-diff-moved-row-border: #bcca6f;
--color-diff-removed-linenum-bg: #482121;
--color-diff-removed-row-bg: #301e1e;
--color-diff-removed-row-border: #634343;
--color-diff-removed-word-bg: #6f3333;
--color-diff-inactive: #22282d;
--color-error-border: #a04141;
--color-error-bg: #522;
--color-error-bg-active: #744;
@@ -187,44 +189,53 @@
--color-input-toggle-background: #454a57;
--color-input-border: var(--color-secondary);
--color-input-border-hover: var(--color-secondary-dark-1);
--color-header-wrapper: #202430;
--color-light: #00000028;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40/255*222/255/var(--opacity-disabled)));
--color-light-border: #ffffff28;
--color-hover: #ffffff10;
--color-active: #ffffff16;
--color-menu: #2e323e;
--color-card: #2e323e;
--color-markup-table-row: #ffffff06;
--color-markup-code-block: #ffffff0d;
--color-button: #353846;
--color-code-bg: #2a2e3a;
--color-code-sidebar-bg: #2e323e;
--color-shadow: #00000060;
--color-secondary-bg: #2a2e3a;
--color-text-focus: #fff;
--color-expand-button: #3c404d;
--color-placeholder-text: #6a737d;
--color-light: #00001728;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
--color-light-border: #e8f3ff28;
--color-hover: #e8f3ff19;
--color-hover-opaque: #21252a;
--color-active: #e8f3ff24;
--color-menu: #2E323E;
--color-card: #2E323E;
--color-markup-table-row: #e8f3ff0f;
--color-markup-code-block: #e8f3ff12;
--color-markup-code-inline: #e8f3ff28;
--color-button: #2E323E;
--color-code-bg: #14171a;
--color-shadow: #00001758;
--color-shadow-opaque: #000017;
--color-secondary-bg: #2a3137;
--color-expand-button: #2f363d;
--color-placeholder-text: var(--color-text-light-3);
--color-editor-line-highlight: var(--color-primary-light-5);
--color-project-board-bg: var(--color-secondary-light-2);
--color-project-column-bg: var(--color-secondary-light-2);
--color-caret: var(--color-text);
--color-reaction-bg: #ffffff12;
--color-reaction-bg: #e8f3ff12;
--color-reaction-hover-bg: var(--color-primary-light-4);
--color-reaction-active-bg: var(--color-primary-light-5);
--color-tooltip-text: #fff;
--color-tooltip-bg: #000000f0;
--color-tooltip-text: #f9fafb;
--color-tooltip-bg: #000b17f0;
--color-nav-bg: #232834;
--color-nav-hover-bg: #383c47;
--color-label-text: #dfe3ec;
--color-label-bg: #7c84974b;
--color-label-hover-bg: #7c8497a0;
--color-label-active-bg: #7c8497ff;
--color-nav-hover-bg: var(--color-secondary-light-1);
--color-nav-text: var(--color-text);
--color-secondary-nav-bg: #383C4A;
--color-label-text: var(--color-text);
--color-label-bg: #7282924b;
--color-label-hover-bg: #728292a0;
--color-label-active-bg: #728292ff;
--color-accent: var(--color-primary-light-1);
--color-small-accent: var(--color-primary-light-5);
--color-active-line: #534d1b;
--color-highlight-fg: #87651e;
--color-highlight-bg: #352c1c;
--color-overlay-backdrop: #080808c0;
accent-color: var(--color-accent);
color-scheme: dark;
--color-diff-added-linenum-bg: #1979fd46;
--color-diff-added-row-bg: #1979fd20;
--color-diff-added-word-bg: #1979fd66;
--color-diff-removed-linenum-bg: #c8622146;
--color-diff-removed-row-bg: #c8622120;
--color-diff-removed-word-bg: #c8622166 ;
}
}
/**
@@ -492,26 +503,29 @@ DO NOT INCLUEDE ANY :root(s) IN THIS FILE!!!
.CodeMirror.cm-s-paper .cm-error {
color: #dbdbeb;
}
.emoji[aria-label=check\ mark],
.emoji[aria-label=currency\ exchange],
.emoji[aria-label=TOP\ arrow],
.emoji[aria-label=END\ arrow],
gitea-theme-meta-info {
--theme-display-name: "Dark" ;
}
.emoji[aria-label="check mark"],
.emoji[aria-label="currency exchange"],
.emoji[aria-label="TOP arrow"],
.emoji[aria-label="END arrow"],
.emoji[aria-label="ON! arrow"],
.emoji[aria-label=SOON\ arrow],
.emoji[aria-label="SOON arrow"],
.emoji[aria-label="heavy dollar sign"],
.emoji[aria-label=copyright],
.emoji[aria-label=registered],
.emoji[aria-label=trade\ mark],
.emoji[aria-label="trade mark"],
.emoji[aria-label=multiply],
.emoji[aria-label=plus],
.emoji[aria-label=minus],
.emoji[aria-label=divide],
.emoji[aria-label=curly\ loop],
.emoji[aria-label="curly loop"],
.emoji[aria-label="double curly loop"],
.emoji[aria-label=wavy\ dash],
.emoji[aria-label=paw\ prints],
.emoji[aria-label=musical\ note],
.emoji[aria-label=musical\ notes] {
.emoji[aria-label="wavy dash"],
.emoji[aria-label="paw prints"],
.emoji[aria-label="musical note"],
.emoji[aria-label="musical notes"] {
filter: invert(100%) hue-rotate(180deg);
}
}

View File

@@ -1,3 +1,4 @@
[ui]
DEFAULT_THEME = blurple
THEMES = blurple,blurple-dyslexia,gitea,arc-green
THEME_COLOR_META_TAG = "#7289DA"
DEFAULT_THEME = blurple
THEMES = blurple,blurple-dyslexia,gitea-auto-protanopia-deuteranopia,gitea-dark-protanopia-deuteranopia,gitea-light,gitea-light-protanopia-deuteranopia

View File

@@ -133,16 +133,18 @@
--color-grey: #505665;
--color-grey-light: #8d919b;
--color-gold: #b1983b;
--color-white: #fff;
--color-diff-removed-word-bg: #6f3333;
--color-diff-added-word-bg: #3c653c;
--color-diff-removed-row-bg: #3c2626;
--color-diff-moved-row-bg: #818044;
--color-diff-added-row-bg: #283e2d;
--color-diff-removed-row-border: #634343;
--color-diff-moved-row-border: #bcca6f;
--color-white: #ffffff;
--color-diff-added-linenum-bg: #274227;
--color-diff-added-row-bg: #203224;
--color-diff-added-row-border: #314a37;
--color-diff-inactive: #353846;
--color-diff-added-word-bg: #3c653c;
--color-diff-moved-row-bg: #818044;
--color-diff-moved-row-border: #bcca6f;
--color-diff-removed-linenum-bg: #482121;
--color-diff-removed-row-bg: #301e1e;
--color-diff-removed-row-border: #634343;
--color-diff-removed-word-bg: #6f3333;
--color-diff-inactive: #22282d;
--color-error-border: #a04141;
--color-error-bg: #522;
--color-error-bg-active: #744;
@@ -187,43 +189,52 @@
--color-input-toggle-background: #454a57;
--color-input-border: var(--color-secondary);
--color-input-border-hover: var(--color-secondary-dark-1);
--color-header-wrapper: #202430;
--color-light: #00000028;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40/255*222/255/var(--opacity-disabled)));
--color-light-border: #ffffff28;
--color-hover: #ffffff10;
--color-active: #ffffff16;
--color-menu: #2e323e;
--color-card: #2e323e;
--color-markup-table-row: #ffffff06;
--color-markup-code-block: #ffffff0d;
--color-button: #353846;
--color-code-bg: #2a2e3a;
--color-code-sidebar-bg: #2e323e;
--color-shadow: #00000060;
--color-secondary-bg: #2a2e3a;
--color-text-focus: #fff;
--color-expand-button: #3c404d;
--color-placeholder-text: #6a737d;
--color-light: #00001728;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
--color-light-border: #e8f3ff28;
--color-hover: #e8f3ff19;
--color-hover-opaque: #21252a;
--color-active: #e8f3ff24;
--color-menu: #2E323E;
--color-card: #2E323E;
--color-markup-table-row: #e8f3ff0f;
--color-markup-code-block: #e8f3ff12;
--color-markup-code-inline: #e8f3ff28;
--color-button: #2E323E;
--color-code-bg: #14171a;
--color-shadow: #00001758;
--color-shadow-opaque: #000017;
--color-secondary-bg: #2a3137;
--color-expand-button: #2f363d;
--color-placeholder-text: var(--color-text-light-3);
--color-editor-line-highlight: var(--color-primary-light-5);
--color-project-board-bg: var(--color-secondary-light-2);
--color-project-column-bg: var(--color-secondary-light-2);
--color-caret: var(--color-text);
--color-reaction-bg: #ffffff12;
--color-reaction-bg: #e8f3ff12;
--color-reaction-hover-bg: var(--color-primary-light-4);
--color-reaction-active-bg: var(--color-primary-light-5);
--color-tooltip-text: #fff;
--color-tooltip-bg: #000000f0;
--color-tooltip-text: #f9fafb;
--color-tooltip-bg: #000b17f0;
--color-nav-bg: #232834;
--color-nav-hover-bg: #383c47;
--color-label-text: #dfe3ec;
--color-label-bg: #7c84974b;
--color-label-hover-bg: #7c8497a0;
--color-label-active-bg: #7c8497ff;
--color-nav-hover-bg: var(--color-secondary-light-1);
--color-nav-text: var(--color-text);
--color-secondary-nav-bg: #383C4A;
--color-label-text: var(--color-text);
--color-label-bg: #7282924b;
--color-label-hover-bg: #728292a0;
--color-label-active-bg: #728292ff;
--color-accent: var(--color-primary-light-1);
--color-small-accent: var(--color-primary-light-5);
--color-active-line: #534d1b;
--color-highlight-fg: #87651e;
--color-highlight-bg: #352c1c;
--color-overlay-backdrop: #080808c0;
accent-color: var(--color-accent);
color-scheme: dark
color-scheme: dark;
--color-diff-added-linenum-bg: #1979fd46;
--color-diff-added-row-bg: #1979fd20;
--color-diff-added-word-bg: #1979fd66;
--color-diff-removed-linenum-bg: #c8622146;
--color-diff-removed-row-bg: #c8622120;
--color-diff-removed-word-bg: #c8622166
}
}

View File

@@ -337,26 +337,30 @@ DO NOT INCLUEDE ANY :root(s) IN THIS FILE!!!
color: #dbdbeb
}
.emoji[aria-label=check\ mark],
.emoji[aria-label=currency\ exchange],
.emoji[aria-label=TOP\ arrow],
.emoji[aria-label=END\ arrow],
gitea-theme-meta-info {
--theme-display-name: "Dark"
}
.emoji[aria-label="check mark"],
.emoji[aria-label="currency exchange"],
.emoji[aria-label="TOP arrow"],
.emoji[aria-label="END arrow"],
.emoji[aria-label="ON! arrow"],
.emoji[aria-label=SOON\ arrow],
.emoji[aria-label="SOON arrow"],
.emoji[aria-label="heavy dollar sign"],
.emoji[aria-label=copyright],
.emoji[aria-label=registered],
.emoji[aria-label=trade\ mark],
.emoji[aria-label="trade mark"],
.emoji[aria-label=multiply],
.emoji[aria-label=plus],
.emoji[aria-label=minus],
.emoji[aria-label=divide],
.emoji[aria-label=curly\ loop],
.emoji[aria-label="curly loop"],
.emoji[aria-label="double curly loop"],
.emoji[aria-label=wavy\ dash],
.emoji[aria-label=paw\ prints],
.emoji[aria-label=musical\ note],
.emoji[aria-label=musical\ notes] {
filter: invert(100%)hue-rotate(180deg)
}
.emoji[aria-label="wavy dash"],
.emoji[aria-label="paw prints"],
.emoji[aria-label="musical note"],
.emoji[aria-label="musical notes"] {
filter: invert(100%) hue-rotate(180deg)
}
}