Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Simple Borderless Gaming

Minimal Windows Forms borderless window utility for Windows, built with C#, .NET 9, and direct Win32 API calls.

Credit: icutmyhair

Features

  • Lists visible running windows with process names and titles.
  • Makes a selected window borderless and resizes it to the nearest monitor.
  • Restores selected windows or all modified windows back to their saved state.
  • Resolves stale selections and favorites to a current live window when possible.
  • Verifies process identity before restoring a saved window state.
  • Supports case-insensitive favorites by process name for fast repeat use.
  • Optionally auto-applies favorites on launch.
  • Supports an ignore list to hide noisy/system processes from the window list.
  • Includes search for filtering running windows.
  • Can minimize to the system tray with tray menu actions.
  • Can restart itself as administrator for elevated games or apps.
  • Restores modified windows before exiting.
  • Prevents duplicate application instances.

Requirements

  • 64-bit Windows for the published win-x64 executable
  • .NET 9 SDK for building from source

The published executable is self-contained and does not require a separate .NET runtime installation.

Usage

  1. Start borderless-gaming.exe.
  2. Select a running window and choose Make Borderless.
  3. Use Restore for the selected window or Restore All for every window changed during the current app session.
  4. Add a process to Favorites for repeat use, or enable Auto apply favorites to apply matching windows at startup.
  5. Use Restart as Admin when an elevated game rejects window changes.

Project Structure

.
|-- Infrastructure/             # Settings, startup cleanup, and admin restart
|   |-- AdminHelper.cs
|   |-- AppSettings.cs
|   `-- StartupRegistrationCleanup.cs
|-- Models/                     # Window identity, saved state, app exceptions
|   |-- WindowAccessException.cs
|   |-- WindowInfo.cs
|   `-- WindowState.cs
|-- Native/
|   `-- Win32.cs                # Win32 constants, structs, and P/Invoke calls
|-- Services/
|   `-- BorderlessService.cs    # Discovery, live resolution, apply, safe restore
|-- UI/
|   |-- MainForm.cs             # WinForms UI, actions, tray integration
|   `-- Prompt.cs               # Small prompt dialog for manual ignore entries
|-- Program.cs                  # Application entry point
|-- app.ico                     # Application icon
|-- app.manifest                # Windows application manifest
|-- borderless-gaming.csproj    # .NET 9 Windows Forms project
|-- borderless-gaming.sln       # Visual Studio solution
`-- README.md

Generated folders such as bin/, obj/, and publish/ are intentionally ignored by git.

Settings

Settings are stored per user at:

%APPDATA%\SimpleBorderlessGaming\settings.json

The settings file contains:

  • AutoApplyFavorites
  • MinimizeToTray
  • Favorites
  • IgnoredProcesses

Default ignored processes include common Windows shell/search processes and the app itself. Process names are stored without .exe, sorted, deduplicated, and matched case-insensitively. Existing settings are normalized when loaded.

Build

dotnet build .\borderless-gaming.csproj -c Release

Run

dotnet run --project .\borderless-gaming.csproj -c Release

Some elevated games cannot be modified from a non-elevated app. Use Restart as Admin inside the app when Windows permission boundaries block a window change.

Publish Single File

dotnet publish .\borderless-gaming.csproj -c Release -r win-x64 --self-contained true -o .\publish\win-x64 /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true /p:EnableCompressionInSingleFile=true /p:DebugType=none /p:DebugSymbols=false

Output:

publish\win-x64\borderless-gaming.exe

Notes

  • Window styles and positions are saved only for the current app session.
  • Saved state includes the process ID; restore is skipped if Windows reuses the same window handle for a different process.
  • Legacy Start with Windows registry entries from older versions are removed on launch.
  • Only one app instance can run per Windows user session.
  • When MinimizeToTray is enabled, closing the main window hides the app in the system tray. Use the tray menu's Exit action to close the app.
  • Exiting the app attempts to restore every window it modified during that session.

License

This project is licensed under the MIT License. See LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages