forked from akanyan/STARTLINER
feat: borderless fullscreen
This commit is contained in:
11
README.md
11
README.md
@ -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
|
||||||
|
|
||||||
|
@ -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()?;
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
Reference in New Issue
Block a user