Skip to content

Commit 8e66abe

Browse files
committed
chore(web): replace Sunshine branding with Vibeshine
The web frontend still contains visible legacy brand text in both component templates and locale bundles, which makes renamed packaging inconsistent across UI surfaces. This change applies a broad text replacement of the exact `Sunshine` token to `Vibeshine` in the staged `.vue` and locale JSON files under the web frontend tree, keeping structure, keys, and behavior unchanged while aligning visible strings with the new product name. - Update staged Vue components and views to render `Vibeshine` consistently. - Update staged locale bundles so translated content matches the renamed product string. - Preserve existing formatting and translation keys to avoid functional side effects. Generated with [Codex](https://openai.com/index/introducing-gpt-5-3-codex/) Model: GPT-5.3-Codex Medium
1 parent def3182 commit 8e66abe

34 files changed

+1182
-1182
lines changed

src_assets/common/assets/web/App.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
class="sticky top-0 z-30 h-14 flex items-center gap-4 px-4 border-b border-dark/10 dark:border-light/10 bg-light/70 dark:bg-dark/60 backdrop-blur supports-[backdrop-filter]:bg-light/40 supports-[backdrop-filter]:dark:bg-dark/40"
1010
>
1111
<div class="flex items-center gap-3 min-w-0">
12-
<img src="/images/logo-sunshine-45.png" alt="Sunshine" class="h-8 w-8" />
12+
<img src="/images/logo-sunshine-45.png" alt="Vibeshine" class="h-8 w-8" />
1313
<h1 class="text-base md:text-lg font-semibold tracking-tight truncate">
1414
{{
1515
displayTitle && displayTitle.includes('.') ? $t(displayTitle) : displayTitle
@@ -93,7 +93,7 @@
9393
<div class="w-full max-w-md mx-auto text-center space-y-6">
9494
<img
9595
src="/images/logo-sunshine-45.png"
96-
alt="Sunshine"
96+
alt="Vibeshine"
9797
class="h-24 w-24 opacity-80 mx-auto select-none"
9898
/>
9999
<div class="space-y-2">
@@ -111,7 +111,7 @@
111111
</n-button>
112112
</div>
113113
<p class="mt-8 text-[10px] tracking-wider uppercase opacity-60 select-none">
114-
Sunshine
114+
Vibeshine
115115
</p>
116116
</div>
117117
</div>
@@ -186,7 +186,7 @@ watch(
186186
'/clients': 'clients.nav',
187187
'/webrtc': 'webrtc.nav',
188188
};
189-
const v = map[p] || 'Sunshine';
189+
const v = map[p] || 'Vibeshine';
190190
pageTitle.value = v;
191191
},
192192
{ immediate: true },

src_assets/common/assets/web/Login.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<n-card class="w-full max-w-md" :bordered="false">
66
<n-space vertical size="large" class="w-full">
77
<n-space vertical align="center" size="small">
8-
<n-image src="/images/logo-sunshine-45.png" width="45" preview-disabled alt="Sunshine" />
8+
<n-image src="/images/logo-sunshine-45.png" width="45" preview-disabled alt="Vibeshine" />
99
<n-h2>{{ $t('auth.login_title') }}</n-h2>
1010
</n-space>
1111

@@ -111,7 +111,7 @@ function redirectNowIfAuthenticated() {
111111
}
112112
113113
onMounted(() => {
114-
document.title = `Sunshine - ${t('auth.login_title')}`;
114+
document.title = `Vibeshine - ${t('auth.login_title')}`;
115115
const urlParams = new URLSearchParams(window.location.search);
116116
const redirectParam = urlParams.get('redirect');
117117
if (redirectParam) {

src_assets/common/assets/web/Troubleshooting.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
<p class="text-xs opacity-70 leading-snug">
5656
{{
5757
$t('troubleshooting.collect_playnite_logs_desc') ||
58-
'Export Sunshine, Playnite, plugin, and display-helper logs.'
58+
'Export Vibeshine, Playnite, plugin, and display-helper logs.'
5959
}}
6060
</p>
6161
</div>
@@ -74,7 +74,7 @@
7474
<p class="text-xs opacity-70 leading-snug">
7575
{{
7676
$t('troubleshooting.export_crash_bundle_desc') ||
77-
'Download logs and the most recent Sunshine crash dump for issue reports.'
77+
'Download logs and the most recent Vibeshine crash dump for issue reports.'
7878
}}
7979
</p>
8080
</div>
@@ -337,7 +337,7 @@ const tCount = (key: string, fallback: string, count: number) => {
337337
338338
const logSourceOptions = computed(() => {
339339
const options = [
340-
{ label: translate('troubleshooting.logs_source_sunshine', 'Sunshine'), value: 'sunshine' },
340+
{ label: translate('troubleshooting.logs_source_sunshine', 'Vibeshine'), value: 'sunshine' },
341341
];
342342
if (platform.value === 'windows') {
343343
options.push(

src_assets/common/assets/web/components/AppEditModal.vue

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1864,11 +1864,11 @@ async function refreshFrameGenHealth(options: FrameGenHealthOptions = {}): Promi
18641864
rtssRunning = !!data?.process_running;
18651865
if (rtssInstalled && rtssHooks) {
18661866
rtssStatus = 'pass';
1867-
rtssMessage = 'RTSS hooks detected. Sunshine can control the frame limiter.';
1867+
rtssMessage = 'RTSS hooks detected. Vibeshine can control the frame limiter.';
18681868
} else if (rtssInstalled) {
18691869
rtssStatus = 'warn';
18701870
rtssMessage =
1871-
'RTSS is installed but hooks were not detected. Launch RTSS and ensure the Sunshine profile is active.';
1871+
'RTSS is installed but hooks were not detected. Launch RTSS and ensure the Vibeshine profile is active.';
18721872
} else {
18731873
rtssStatus = 'fail';
18741874
rtssMessage = 'Install RTSS to avoid microstutter when frame generation is enabled.';
@@ -1887,7 +1887,7 @@ async function refreshFrameGenHealth(options: FrameGenHealthOptions = {}): Promi
18871887
const tolerance = 0.5;
18881888
let displayStatus: FrameGenHealth['display']['status'] = 'unknown';
18891889
let displayMessage = 'Unable to determine display refresh capabilities.';
1890-
let displayLabel = usingVirtual ? 'Sunshine Virtual Screen' : 'Active display';
1890+
let displayLabel = usingVirtual ? 'Vibeshine Virtual Screen' : 'Active display';
18911891
let displayId = usingVirtual ? VIRTUAL_DISPLAY_SELECTION : '';
18921892
let displayHz: number | null = null;
18931893
let displayError: string | null = null;
@@ -2048,55 +2048,55 @@ async function refreshFrameGenHealth(options: FrameGenHealthOptions = {}): Promi
20482048
displayStatus = 'pass';
20492049
if (only144Fails) {
20502050
const baseHz = hasActive ? (activeRefresh ?? evaluationHz) : evaluationHz;
2051-
displayMessage = `Current refresh is ${Math.round(baseHz)} Hz. Streams up to 120 FPS are covered. Only 144 FPS streams require the Sunshine virtual screen or a higher-refresh display.`;
2051+
displayMessage = `Current refresh is ${Math.round(baseHz)} Hz. Streams up to 120 FPS are covered. Only 144 FPS streams require the Vibeshine virtual screen or a higher-refresh display.`;
20522052
if (!hasActive && highestSupported !== null) {
2053-
displayMessage = `Display supports up to ${Math.round(highestSupported)} Hz. Streams up to 120 FPS are covered. Only 144 FPS streams require the Sunshine virtual screen or a higher-refresh display.`;
2053+
displayMessage = `Display supports up to ${Math.round(highestSupported)} Hz. Streams up to 120 FPS are covered. Only 144 FPS streams require the Vibeshine virtual screen or a higher-refresh display.`;
20542054
} else if (deltaSupported && highestSupported !== null) {
2055-
displayMessage += ` Sunshine can switch to ${Math.round(highestSupported)} Hz when a stream starts if Display Device Step 1 keeps that monitor active.`;
2055+
displayMessage += ` Vibeshine can switch to ${Math.round(highestSupported)} Hz when a stream starts if Display Device Step 1 keeps that monitor active.`;
20562056
}
20572057
} else if (!hasActive && highestSupported !== null) {
2058-
displayMessage = `Display supports up to ${Math.round(highestSupported)} Hz. Sunshine can double 120 FPS streams.`;
2058+
displayMessage = `Display supports up to ${Math.round(highestSupported)} Hz. Vibeshine can double 120 FPS streams.`;
20592059
} else if (deltaSupported && highestSupported !== null) {
2060-
displayMessage = `Current refresh is ${Math.round(activeRefresh ?? evaluationHz)} Hz. Sunshine can switch to ${Math.round(highestSupported)} Hz during streams to keep frame generation smooth.`;
2060+
displayMessage = `Current refresh is ${Math.round(activeRefresh ?? evaluationHz)} Hz. Vibeshine can switch to ${Math.round(highestSupported)} Hz during streams to keep frame generation smooth.`;
20612061
} else {
20622062
displayMessage = 'Display refresh is high enough to double 120 FPS streams.';
20632063
}
20642064
} else if (evaluationHz >= 180 - tolerance) {
20652065
displayStatus = 'warn';
20662066
if (!hasActive && highestSupported !== null) {
2067-
displayMessage = `Display supports up to ${Math.round(evaluationHz)} Hz. Configure Display Device Step 1 to enforce the higher refresh or use the display override below to switch to the Sunshine virtual display.`;
2067+
displayMessage = `Display supports up to ${Math.round(evaluationHz)} Hz. Configure Display Device Step 1 to enforce the higher refresh or use the display override below to switch to the Vibeshine virtual display.`;
20682068
} else if (hasActive) {
20692069
if (highestFailUnder144 !== null) {
2070-
displayMessage = `Current refresh is ${Math.round(activeRefresh ?? evaluationHz)} Hz. Streams targeting up to ${highestFailUnder144} FPS need the Sunshine virtual screen or a higher-refresh display.`;
2070+
displayMessage = `Current refresh is ${Math.round(activeRefresh ?? evaluationHz)} Hz. Streams targeting up to ${highestFailUnder144} FPS need the Vibeshine virtual screen or a higher-refresh display.`;
20712071
} else {
2072-
displayMessage = `Current refresh is ${Math.round(activeRefresh ?? evaluationHz)} Hz. 120 FPS frame generation may stutter without a higher refresh display. Use the display override below to switch to the Sunshine virtual display or move the stream to a higher-refresh monitor.`;
2072+
displayMessage = `Current refresh is ${Math.round(activeRefresh ?? evaluationHz)} Hz. 120 FPS frame generation may stutter without a higher refresh display. Use the display override below to switch to the Vibeshine virtual display or move the stream to a higher-refresh monitor.`;
20732073
}
20742074
if (deltaSupported && highestSupported !== null) {
2075-
displayMessage += ` Sunshine can switch up to ${Math.round(highestSupported)} Hz if Display Device Step 1 keeps only that monitor active.`;
2075+
displayMessage += ` Vibeshine can switch up to ${Math.round(highestSupported)} Hz if Display Device Step 1 keeps only that monitor active.`;
20762076
}
20772077
} else {
20782078
displayMessage =
2079-
'Unable to read the current refresh rate, but the display may not reach the required 240 Hz. Use the display override below to switch to the Sunshine virtual display or move the stream to a higher-refresh monitor.';
2079+
'Unable to read the current refresh rate, but the display may not reach the required 240 Hz. Use the display override below to switch to the Vibeshine virtual display or move the stream to a higher-refresh monitor.';
20802080
}
20812081
} else {
20822082
displayStatus = 'fail';
20832083
if (!hasActive && highestSupported !== null) {
2084-
displayMessage = `Display tops out at ${Math.round(evaluationHz)} Hz. Use the display override below to switch to the Sunshine virtual display or switch to a 240 Hz display for frame generation.`;
2084+
displayMessage = `Display tops out at ${Math.round(evaluationHz)} Hz. Use the display override below to switch to the Vibeshine virtual display or switch to a 240 Hz display for frame generation.`;
20852085
} else if (hasActive) {
20862086
const mention = highestFailUnder144 ?? 120;
2087-
displayMessage = `Current refresh is ${Math.round(activeRefresh ?? evaluationHz)} Hz. Streams targeting up to ${mention} FPS need the Sunshine virtual screen or a higher-refresh display.`;
2087+
displayMessage = `Current refresh is ${Math.round(activeRefresh ?? evaluationHz)} Hz. Streams targeting up to ${mention} FPS need the Vibeshine virtual screen or a higher-refresh display.`;
20882088
if (deltaSupported && highestSupported !== null) {
2089-
displayMessage += ` Sunshine can switch up to ${Math.round(highestSupported)} Hz if configured in Display Device Step 1.`;
2089+
displayMessage += ` Vibeshine can switch up to ${Math.round(highestSupported)} Hz if configured in Display Device Step 1.`;
20902090
}
20912091
} else {
20922092
displayMessage =
2093-
'Display refresh information was unavailable. Use the display override below to switch to the Sunshine virtual display or switch to a 240 Hz display for frame generation.';
2093+
'Display refresh information was unavailable. Use the display override below to switch to the Vibeshine virtual display or switch to a 240 Hz display for frame generation.';
20942094
}
20952095
}
20962096
} else {
20972097
displayStatus = 'unknown';
20982098
displayMessage =
2099-
'No display devices were returned by Sunshine’s helper. Frame generation may not be able to enforce refresh changes.';
2099+
'No display devices were returned by Vibeshine’s helper. Frame generation may not be able to enforce refresh changes.';
21002100
displayError = 'Display helper returned no devices.';
21012101
}
21022102
} else {
@@ -2112,7 +2112,7 @@ async function refreshFrameGenHealth(options: FrameGenHealthOptions = {}): Promi
21122112
} else {
21132113
displayStatus = 'pass';
21142114
displayMessage =
2115-
'Sunshine virtual screen guarantees a high refresh surface for frame generation.';
2115+
'Vibeshine virtual screen guarantees a high refresh surface for frame generation.';
21162116
}
21172117
21182118
if (usingVirtual) {
@@ -2152,7 +2152,7 @@ async function refreshFrameGenHealth(options: FrameGenHealthOptions = {}): Promi
21522152
21532153
if (highestFailUnder144 !== null) {
21542154
health.suggestion = {
2155-
message: `Use the display override above to switch to the Sunshine virtual display or configure Display Device Step 1 to target the virtual display so ${highestFailUnder144} FPS streams stay smooth.`,
2155+
message: `Use the display override above to switch to the Vibeshine virtual display or configure Display Device Step 1 to target the virtual display so ${highestFailUnder144} FPS streams stay smooth.`,
21562156
emphasis: 'warning',
21572157
};
21582158
} else if (captureStatus === 'warn' || captureStatus === 'fail') {
@@ -2223,7 +2223,7 @@ function warnIfHealthIssues(reason: FrameGenHealthReason) {
22232223
);
22242224
if (requiresHigh) {
22252225
message.warning(
2226-
'Use the display override to switch to the Sunshine virtual display or adjust Display Device Step 1 to keep only the high-refresh monitor active.',
2226+
'Use the display override to switch to the Vibeshine virtual display or adjust Display Device Step 1 to keep only the high-refresh monitor active.',
22272227
{ duration: 8000 },
22282228
);
22292229
}
@@ -2318,18 +2318,18 @@ watch(
23182318
return;
23192319
}
23202320
message?.info(
2321-
"1st Gen Frame Generation Capture Fix requires Windows Graphics Capture (WGC), RTSS, and a display capable of 240 Hz or higher. Sunshine's virtual screen or any display that satisfies the doubled refresh requirement will work.",
2321+
"1st Gen Frame Generation Capture Fix requires Windows Graphics Capture (WGC), RTSS, and a display capable of 240 Hz or higher. Vibeshine's virtual screen or any display that satisfies the doubled refresh requirement will work.",
23222322
{ duration: 8000 },
23232323
);
23242324
if (!skipDisplayWarnings.value) {
23252325
if (!ddConfigOption.value || ddConfigOption.value === 'disabled') {
23262326
message?.warning(
2327-
'Configure Step 1 for Sunshine\'s virtual screen or enable Display Device and set it to "Deactivate all other displays" so the doubled refresh requirement is met during the stream.',
2327+
'Configure Step 1 for Vibeshine\'s virtual screen or enable Display Device and set it to "Deactivate all other displays" so the doubled refresh requirement is met during the stream.',
23282328
{ duration: 8000 },
23292329
);
23302330
} else if (ddConfigOption.value !== 'ensure_only_display') {
23312331
message?.warning(
2332-
'Set Step 1 to use Sunshine\'s virtual screen or adjust Display Device to "Deactivate all other displays" so only the high-refresh monitor stays active.',
2332+
'Set Step 1 to use Vibeshine\'s virtual screen or adjust Display Device to "Deactivate all other displays" so only the high-refresh monitor stays active.',
23332333
{ duration: 8000 },
23342334
);
23352335
}
@@ -2350,18 +2350,18 @@ watch(
23502350
form.value.gen1FramegenFix = false;
23512351
}
23522352
message?.info(
2353-
"2nd Gen Frame Generation Capture Fix (for DLSS 4) forces the NVIDIA Control Panel frame limiter and needs Windows Graphics Capture (WGC) plus an NVIDIA GPU. Sunshine's virtual screen guarantees support, but any display that satisfies the doubled refresh requirement also works.",
2353+
"2nd Gen Frame Generation Capture Fix (for DLSS 4) forces the NVIDIA Control Panel frame limiter and needs Windows Graphics Capture (WGC) plus an NVIDIA GPU. Vibeshine's virtual screen guarantees support, but any display that satisfies the doubled refresh requirement also works.",
23542354
{ duration: 8000 },
23552355
);
23562356
if (!skipDisplayWarnings.value) {
23572357
if (!ddConfigOption.value || ddConfigOption.value === 'disabled') {
23582358
message?.warning(
2359-
'Configure Step 1 for Sunshine\'s virtual screen or enable Display Device and set it to "Deactivate all other displays" so the doubled refresh requirement is met during the stream.',
2359+
'Configure Step 1 for Vibeshine\'s virtual screen or enable Display Device and set it to "Deactivate all other displays" so the doubled refresh requirement is met during the stream.',
23602360
{ duration: 8000 },
23612361
);
23622362
} else if (ddConfigOption.value !== 'ensure_only_display') {
23632363
message?.warning(
2364-
'Set Step 1 to use Sunshine\'s virtual screen or adjust Display Device to "Deactivate all other displays" so only the high-refresh monitor stays active.',
2364+
'Set Step 1 to use Vibeshine\'s virtual screen or adjust Display Device to "Deactivate all other displays" so only the high-refresh monitor stays active.',
23652365
{ duration: 8000 },
23662366
);
23672367
}
@@ -2539,7 +2539,7 @@ function onNamePicked(val: string | null) {
25392539
}
25402540
}
25412541
2542-
// Cover preview logic removed; Sunshine no longer fetches or proxies images
2542+
// Cover preview logic removed; Vibeshine no longer fetches or proxies images
25432543
async function save() {
25442544
saving.value = true;
25452545
try {

src_assets/common/assets/web/components/PlayniteReinstallButton.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ const icon = props.icon ?? 'fas fa-plug';
6868
const confirmTitle = props.confirmTitle ?? 'Install/Update Playnite Extension';
6969
const confirmMessage =
7070
props.confirmMessage ??
71-
'This will (re)install the Sunshine Playnite extension and restart Playnite if needed. Continue?';
71+
'This will (re)install the Vibeshine Playnite extension and restart Playnite if needed. Continue?';
7272
const cancelText = props.cancelText ?? 'Cancel';
7373
const continueText = props.continueText ?? 'Continue';
7474
const size = props.size ?? 'small';

src_assets/common/assets/web/components/app-edit/AppEditBasicsSection.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
/>
6565
</div>
6666
<p class="text-[11px] opacity-60">
67-
Sunshine waits for this process. When it closes, the stream ends.
67+
Vibeshine waits for this process. When it closes, the stream ends.
6868
</p>
6969
</section>
7070

@@ -115,7 +115,7 @@
115115
placeholder="Command to execute before the stream"
116116
/>
117117
<p class="text-[11px] opacity-60">
118-
Runs before the primary command. Sunshine continues even if this command exits.
118+
Runs before the primary command. Vibeshine continues even if this command exits.
119119
</p>
120120
</div>
121121
</div>
@@ -150,7 +150,7 @@
150150
<i class="fas fa-image" /> Find Cover
151151
</n-button>
152152
</div>
153-
<p class="text-[11px] opacity-60">Optional; stored only and not fetched by Sunshine.</p>
153+
<p class="text-[11px] opacity-60">Optional; stored only and not fetched by Vibeshine.</p>
154154
</div>
155155
</div>
156156
</template>

0 commit comments

Comments
 (0)