mirror of
https://github.com/meowarex/TidaLuna-Plugins.git
synced 2026-06-18 03:43:10 +10:00
Updated README <3
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user