Updated README <3

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