Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
8740c41a63 | |||
f057283998 | |||
52359bfeeb | |||
8c19ed0208 | |||
dd2d5a58b1 | |||
b3a6fda4fb | |||
|
bf8fee18b0 | ||
|
748b99f884 |
32
.gitea/workflows/rust.yml
Normal file
32
.gitea/workflows/rust.yml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
name: Rust
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: ["master"]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Install rust
|
||||||
|
uses: dtolnay/rust-toolchain@stable
|
||||||
|
with:
|
||||||
|
targets: "x86_64-pc-windows-gnu"
|
||||||
|
|
||||||
|
- name: Install cross compilation tools
|
||||||
|
run: sudo apt-get update && sudo apt-get install mingw-w64 -y
|
||||||
|
|
||||||
|
- name: Setup Cache
|
||||||
|
uses: Swatinem/rust-cache@v2
|
||||||
|
|
||||||
|
- name: Build release
|
||||||
|
run: cargo build --verbose --locked --release --target x86_64-pc-windows-gnu
|
||||||
|
|
||||||
|
- name: Archive build
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: alt_enter_fix
|
||||||
|
path: target/x86_64-pc-windows-gnu/release/alt_enter_fix.exe
|
22
.github/workflows/rust.yml
vendored
22
.github/workflows/rust.yml
vendored
@ -1,22 +0,0 @@
|
|||||||
name: Rust
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ "master" ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ "master" ]
|
|
||||||
|
|
||||||
env:
|
|
||||||
CARGO_TERM_COLOR: always
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
|
|
||||||
runs-on: windows-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Build
|
|
||||||
run: cargo build --verbose
|
|
||||||
- name: Run tests
|
|
||||||
run: cargo test --verbose
|
|
@ -5,4 +5,5 @@ edition = "2021"
|
|||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[target.x86_64-pc-windows-gnu]
|
||||||
|
linker = "x86_64-w64-mingw32-gcc"
|
@ -1,5 +1,5 @@
|
|||||||
# alt_enter_fix
|
# alt_enter_fix
|
||||||
|
|
||||||
[![Rust](https://github.com/dowoge/alt_enter_fix/actions/workflows/rust.yml/badge.svg)](https://github.com/dowoge/alt_enter_fix/actions/workflows/rust.yml)
|
[![Rust](https://git.tommyy.dev/tommy/alt_enter_fix/actions/workflows/rust.yml/badge.svg)](https://git.tommyy.dev/tommy/alt_enter_fix/actions/workflows/rust.yml)
|
||||||
|
|
||||||
fire program
|
fire program
|
||||||
|
49
src/main.rs
49
src/main.rs
@ -1,46 +1,57 @@
|
|||||||
use std::io::Read;
|
use std::{env, fs, io::{self, stdin, Read, Write}, path::Path};
|
||||||
use std::{env, io};
|
|
||||||
use std::path::Path;
|
|
||||||
use std::fs;
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut rblxpath = String::new();
|
let mut rblxpath = String::new();
|
||||||
if let Some(lad) = env::var("LOCALAPPDATA").ok() {
|
if let Some(lad) = env::var("LOCALAPPDATA").ok() {
|
||||||
let temprbx_lad = format!("{}\\Roblox",lad);
|
let temprbx_lad = format!("{}\\Roblox", lad);
|
||||||
if Path::new(&temprbx_lad).is_dir() {
|
if Path::new(&temprbx_lad).is_dir() {
|
||||||
rblxpath = temprbx_lad;
|
rblxpath = temprbx_lad;
|
||||||
}
|
}
|
||||||
} else if let Some(pfx86) = env::var("ProgramFiles(x86)").ok() {
|
} else if let Some(pfx86) = env::var("ProgramFiles(x86)").ok() {
|
||||||
let temprbx_pfx86 = format!("{}\\Roblox",pfx86);
|
let temprbx_pfx86 = format!("{}\\Roblox", pfx86);
|
||||||
if Path::new(&temprbx_pfx86).is_dir() {
|
if Path::new(&temprbx_pfx86).is_dir() {
|
||||||
rblxpath = temprbx_pfx86;
|
rblxpath = temprbx_pfx86;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if rblxpath != "" {
|
if rblxpath != "" {
|
||||||
println!("Found path: {}",rblxpath);
|
println!("Found path: {}", rblxpath);
|
||||||
} else {
|
} else {
|
||||||
println!("Roblox not found (Die)");
|
println!("Roblox not found (Die)");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let versions = format!("{}\\Versions\\",rblxpath);
|
println!("What FPS would you like to cap the fps to? (0 for no cap at all)");
|
||||||
|
let _ = io::stdout().flush();
|
||||||
|
let mut input = String::new();
|
||||||
|
stdin().read_line(&mut input).expect("invalid input, try again");
|
||||||
|
if let Some('\n')=input.chars().next_back() {
|
||||||
|
input.pop();
|
||||||
|
}
|
||||||
|
if let Some('\r')=input.chars().next_back() {
|
||||||
|
input.pop();
|
||||||
|
}
|
||||||
|
let fps = input.parse::<i32>().unwrap();
|
||||||
|
let desired_fps = match fps {
|
||||||
|
0 => 5588562,
|
||||||
|
_ => fps
|
||||||
|
};
|
||||||
|
println!("fps cap will be set to {desired_fps}");
|
||||||
|
let just_make_this_work = format!("{{\"FFlagHandleAltEnterFullscreenManually\":\"False\",\"DFIntTaskSchedulerTargetFps\":{desired_fps},\"FFlagEnableInGameMenuChromeABTest3\":\"False\",\"FFlagGameBasicSettingsFramerateCap5\":\"False\",\"FFlagTaskSchedulerLimitTargetFpsTo2402\":\"False\"}}");
|
||||||
|
let fflag_contents = just_make_this_work.as_str();
|
||||||
|
let versions = format!("{}\\Versions\\", rblxpath);
|
||||||
for folder in fs::read_dir(versions).unwrap() {
|
for folder in fs::read_dir(versions).unwrap() {
|
||||||
let cur_folder = folder.unwrap().path().display().to_string();
|
let cur_folder = folder.unwrap().path().display().to_string();
|
||||||
if cur_folder.to_lowercase().contains("version") {
|
if cur_folder.to_lowercase().contains("version") {
|
||||||
let executable = format!("{}\\RobloxPlayerBeta.exe",cur_folder);
|
let executable = format!("{}\\RobloxPlayerBeta.exe", cur_folder);
|
||||||
if Path::new(&executable).is_file() {
|
if Path::new(&executable).is_file() {
|
||||||
let cs_folder = format!("{}\\ClientSettings",cur_folder);
|
let cs_folder = format!("{}\\ClientSettings", cur_folder);
|
||||||
if !Path::new(&cs_folder).is_dir() {
|
if !Path::new(&cs_folder).is_dir() {
|
||||||
fs::create_dir(&cs_folder).ok();
|
fs::create_dir(&cs_folder).ok();
|
||||||
println!("Created ClientSettings folder in {}",cur_folder);
|
println!("Created ClientSettings folder in {}", cur_folder);
|
||||||
} else {
|
} else {
|
||||||
println!("ClientSettings folder already exists in {}",cur_folder);
|
println!("ClientSettings folder already exists in {}", cur_folder);
|
||||||
}
|
|
||||||
let cas_json = format!("{}\\ClientAppSettings.json",cs_folder);
|
|
||||||
if !Path::new(&cas_json).is_file() {
|
|
||||||
fs::write(cas_json, "{\"FFlagHandleAltEnterFullscreenManually\":\"False\",\"DFIntTaskSchedulerTargetFps\":5588562,\"FFlagEnableInGameMenuChromeABTest3\":\"False\"}").ok();
|
|
||||||
println!("Wrote ClientAppSettings.json to {}",cur_folder)
|
|
||||||
} else {
|
|
||||||
println!("ClientAppSettings.json already exists in {}",cur_folder)
|
|
||||||
}
|
}
|
||||||
|
let cas_json = format!("{}\\ClientAppSettings.json", cs_folder);
|
||||||
|
fs::write(cas_json, fflag_contents).ok();
|
||||||
|
println!("Wrote ClientAppSettings.json to {}", cur_folder)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user