feat: borderless fullscreen

This commit is contained in:
2025-03-03 21:29:45 +00:00
parent 9669fc3905
commit 443467c3ab
3 changed files with 26 additions and 10 deletions

View File

@ -1,18 +1,14 @@
## STARTLINER ## STARTLINER
wipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwipwip A simple and easy to use launcher and mod manager for [many games](https://silentblue.remywiki.com/ONGEKI:bright_MEMORY) (more to come) using [Rainycolor Watercolor](https://rainy.patafour.zip).
A simple (_not yet_) and easy to use (_not yet_) mod manager for [many games](https://silentblue.remywiki.com/ONGEKI:bright_MEMORY) (_more to come_) using [Rainycolor Watercolor](https://rainy.patafour.zip).
Intended for those who just want a glorified `start.bat` clicker, without VHDs, keychips etc. Intended for those who just want a glorified `start.bat` clicker, without VHDs, keychips etc.
(for an all-in-one solution, check out the [BlueSteel launcher](https://yozora.bluesteel.737.jp.net/HarmonyPublic/SOS-Kongou)). (for an all-in-one solution, check out the [BlueSteel launcher](https://yozora.bluesteel.737.jp.net/HarmonyPublic/SOS-Kongou)).
Made with Rust (Tauri) and Vue. Contributions welcome. Made with Rust (Tauri) and Vue. Technically multiplatform. Contributions welcome.
### Usage ### Usage
wipwipwipwipwipwipwipwipwipwipwipwip
```sh ```sh
bun install bun install
bun run tauri dev bun run tauri dev
@ -43,7 +39,8 @@ Arbitrary scripts are not supported by design and that will probably never chang
### Features ### Features
- Clean data modding - Clean data modding
- Technically multi-platform - Monitor selection
- Etc
### Architecture details ### Architecture details

View File

@ -55,6 +55,13 @@ pub async fn prepare_display(p: &Profile) -> Result<Option<DisplayInfo>> {
} }
} }
if p.get_str("display-mode", "borderless") == "borderless" && p.get_bool("borderless-fullscreen", false) {
settings.borrow_mut().resolution = Resolution::new(
p.get_int("rez-w", 1080).try_into().expect("Negative resolution"),
p.get_int("rez-h", 1920).try_into().expect("Negative resolution")
);
}
display_set.apply()?; display_set.apply()?;
displayz::refresh()?; displayz::refresh()?;
@ -65,7 +72,7 @@ pub async fn prepare_display(p: &Profile) -> Result<Option<DisplayInfo>> {
#[cfg(target_os = "windows")] #[cfg(target_os = "windows")]
pub async fn undo_display(info: DisplayInfo) -> Result<()> { pub async fn undo_display(info: DisplayInfo) -> Result<()> {
use displayz::{query_displays, Resolution}; use displayz::query_displays;
let display_set = query_displays()?; let display_set = query_displays()?;

View File

@ -39,6 +39,7 @@ const displayRotationList = [
{ title: 'Portrait', value: 90 }, { title: 'Portrait', value: 90 },
{ title: 'Portrait (flipped)', value: 270 }, { title: 'Portrait (flipped)', value: 270 },
]; ];
const cfgBorderlessFullscreen = _cfg('borderless-fullscreen', false);
const cfgAime = _cfg('aime', false); const cfgAime = _cfg('aime', false);
const aimeCode = ref(''); const aimeCode = ref('');
@ -112,7 +113,7 @@ const aimeCodeModel = computed({
option-value="value" option-value="value"
></Select> ></Select>
</OptionRow> </OptionRow>
<OptionRow id="resolution" title="Resolution"> <OptionRow id="resolution" title="Game resolution">
<InputNumber <InputNumber
class="shrink" class="shrink"
size="small" size="small"
@ -151,13 +152,24 @@ const aimeCodeModel = computed({
:disabled="cfgDisplay === 'default'" :disabled="cfgDisplay === 'default'"
/> />
</OptionRow> </OptionRow>
<OptionRow
title="Match display resolution with the game"
v-if="capabilities.includes('display')"
>
<Toggle
:disabled="
cfgDisplay === 'default' || cfgDisplayMode != 'borderless'
"
v-model="cfgBorderlessFullscreen"
/>
</OptionRow>
</OptionCategory> </OptionCategory>
<OptionCategory title="Misc"> <OptionCategory title="Misc">
<OptionRow title="OpenSSL bug workaround for Intel ≥10th gen"> <OptionRow title="OpenSSL bug workaround for Intel ≥10th gen">
<Toggle v-model="cfgIntel" /> <Toggle v-model="cfgIntel" />
</OptionRow> </OptionRow>
<OptionRow title="Aime emulation"> <OptionRow title="Aime emulation">
<Toggle inputId="switch2" v-model="cfgAime" /> <Toggle v-model="cfgAime" />
</OptionRow> </OptionRow>
<OptionRow title="Aime code"> <OptionRow title="Aime code">
<InputText <InputText