Merge pull request #52 from meowarex/dev

Renamed oled-theme to obsidian
This commit is contained in:
Meow Meow
2025-09-09 21:39:28 +10:00
committed by GitHub
7 changed files with 30 additions and 20 deletions
+15 -5
View File
@@ -4,14 +4,13 @@ A collection of Luna plugins for Tidal, ported from Neptune framework.
## Plugins
### 🎨 OLED Theme
**Location:** `plugins/oled-theme-luna/`
### 🎨 Obsidian
**Location:** `plugins/obsidian-theme-luna/`
A dark OLED-friendly theme plugin that transforms Tidal Luna's appearance.
A dark OLED-friendly theme that transforms Tidal Luna's appearance.
**Features:**
- Applies a dark, OLED-optimized theme
- Fetches the latest theme CSS from the GitHub repository
- Reduces battery consumption on OLED displays.. i guess <3
- Modern, sleek dark interface
@@ -34,6 +33,16 @@ Allows users to copy song lyrics by selecting them directly in the interface.
- Automatic clipboard copying of selected lyrics
- Smart lyric span detection
### 🧽 Element Hider
**Location:** `plugins/element-hider-luna/`
Allows users to hide/remove UI elements by right clicking on them.
**Features:**
- Remove/Hide ANY UI element
- Automagically saves hidden elements
- Allows for elements to be restored
### 🎶 Audio Visualizer
**Location:** `plugins/audio-visualizer-luna/`
@@ -50,6 +59,7 @@ Allows users to copy song lyrics by selecting them directly in the interface.
## Installation
### Installing from URL
### (They are in the store by default now)
1. Open TidalLuna after Building & Serving
2. Navigate to Luna Settings (Top right of Tidal)
3. Click "Plugin Store" Tab
@@ -63,7 +73,7 @@ Allows users to copy song lyrics by selecting them directly in the interface.
git clone https://github.com/meowarex/tidalluna-plugins
# Change Folder to the Repo
cd neptune-projects-fork
cd tidalluna-plugins
# Install dependencies
pnpm install
@@ -1,6 +1,6 @@
{
"name": "@meowarex/oled-theme",
"description": "A dark OLED-friendly theme plugin that transforms Tidal Luna's appearance.",
"name": "@meowarex/obsidian",
"description": "A dark OLED-friendly theme for Tidal Luna.",
"author": {
"name": "meowarex",
"url": "https://github.com/meowarex",
@@ -2,7 +2,7 @@ import { ReactiveStore } from "@luna/core";
import { LunaSettings, LunaSwitchSetting } from "@luna/ui";
import React from "react";
export const settings = await ReactiveStore.getPluginStorage("OLEDTheme", {
export const settings = await ReactiveStore.getPluginStorage("Obsidian", {
qualityColorMatchedSeekBar: true,
oledFriendlyButtons: true,
lightMode: false,
@@ -31,14 +31,14 @@ export const Settings = () => {
(settings.qualityColorMatchedSeekBar = checked),
);
// Update styles immediately when setting changes
if ((window as any).updateOLEDThemeStyles) {
(window as any).updateOLEDThemeStyles();
if ((window as any).updateObsidianStyles) {
(window as any).updateObsidianStyles();
}
}}
/>
<LunaSwitchSetting
title="OLED Friendly Buttons"
desc="Remove button styling from OLED theme to keep buttons with original Tidal appearance"
desc="Adjusts the buttons to be more OLED friendly"
checked={oledFriendlyButtons}
onChange={(_, checked) => {
console.log(
@@ -47,8 +47,8 @@ export const Settings = () => {
);
setOledFriendlyButtons((settings.oledFriendlyButtons = checked));
// Update styles immediately when setting changes
if ((window as any).updateOLEDThemeStyles) {
(window as any).updateOLEDThemeStyles();
if ((window as any).updateObsidianStyles) {
(window as any).updateObsidianStyles();
}
}}
/>
@@ -60,8 +60,8 @@ export const Settings = () => {
console.log("Light Mode:", checked ? "enabled" : "disabled");
setLightMode((settings.lightMode = checked));
// Update styles immediately when setting changes
if ((window as any).updateOLEDThemeStyles) {
(window as any).updateOLEDThemeStyles();
if ((window as any).updateObsidianStyles) {
(window as any).updateObsidianStyles();
}
}}
/>
@@ -7,7 +7,7 @@ import darkTheme from "file://dark-theme.css?minify";
import oledFriendlyTheme from "file://oled-friendly.css?minify";
import lightTheme from "file://light-theme.css?minify";
export const { trace } = Tracer("[OLED Theme]");
export const { trace } = Tracer("[Obsidian]");
export { Settings };
// called when plugin is unloaded.
@@ -15,7 +15,7 @@ export { Settings };
export const unloads = new Set<LunaUnload>();
// StyleTag instance for theme management
const themeStyleTag = new StyleTag("OLED-Theme", unloads);
const themeStyleTag = new StyleTag("Obsidian", unloads);
// Quality color mapping
const QUALITY_COLORS = {
@@ -150,13 +150,13 @@ const applyThemeStyles = (): void => {
// Make this function available globally so Settings can call it
declare global {
interface Window {
updateOLEDThemeStyles?: () => void;
updateObsidianStyles?: () => void;
}
}
window.updateOLEDThemeStyles = applyThemeStyles;
window.updateObsidianStyles = applyThemeStyles;
// Apply the OLED theme initially
// Apply the Obsidian theme initially
applyThemeStyles();
// Ensure interval is cleared on unload