ZeehanSharif / DesktopLayoutSaver

This is a small windows app in C# that allows users to save the placement of their windows to profiles and be able to restore those profiles based on which workstation they are on currently.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DesktopLayoutSaver

Table of Contents

  1. Introduction
  2. Features
  3. Target Audience
  4. Technologies Used
  5. Installation and Setup
  6. Usage
  7. Project Structure

Introduction

DesktopLayoutSaver is a Windows WPF application designed to save and restore the positions and sizes of all open windows on your desktop. This tool is especially useful for users who work with multiple monitor setups in different environments (RDP to some other machine, multiple setups, etc...) and want to quickly switch between different window layouts saved as profiles.

Features

  • Save Window Profiles: Capture the positions and sizes of all open windows and save them as a named profile.
  • Restore Window Profiles: Restore previously saved window profiles, positioning and resizing windows to their saved states.
  • Delete Window Profiles: Remove unwanted window profiles from the application.
  • Simple and Clean UI: User-friendly interface for easy management of window profiles.
  • Lightweight: Designed to use minimal system resources while running in the background, and the profiles save as JSON files on this disk.

Target Audience

This application is intended for:

  • People who frequently switch between different multi-monitor setups and need their application windows to be arranged in a specific way.
  • Remote workers who use Remote Desktop Protocol (RDP) and want to maintain consistent window layouts between their home and office environments.
  • Anyone looking for a simple solution to manage window positions and sizes on their desktop.

Technologies Used

  • .NET Core: The application is built using the .NET Core framework.
  • WPF (Windows Presentation Foundation): Utilized for creating the graphical user interface.
  • C#: The primary programming language used to develop the application.
  • Newtonsoft.Json: A popular JSON framework for .NET used to handle the serialization and deserialization of window profiles.

Installation and Setup

Prerequisites

  • Windows operating system (Windows 7 or later)
  • .NET Core SDK installed on your machine

Steps (download release or setup locally)

  1. Download the latest release, which is v1.0

  2. Otherwise, Clone the Repository

    git clone https://github.com/yourusername/DesktopLayoutSaver.git
    cd DesktopLayoutSaver
  3. Install Dependencies

    Open the project in Visual Studio and restore NuGet packages.

  4. Build the Project

    Build the solution in Visual Studio to ensure all dependencies are correctly configured.

  5. Run the Application

    Start the application by running the DesktopLayoutSaver project in Visual Studio.

Usage

  1. Save a Profile

    • Enter a profile name in the text box.
    • Click the "Save Profile" button.
    • The current window layout will be saved under the specified profile name.
  2. Restore a Profile

    • Select a profile from the list of saved profiles.
    • Click the "Restore Profile" button.
    • The windows will be arranged to match the saved layout of the selected profile.
  3. Delete a Profile

    • Select a profile from the list of saved profiles.
    • Click the "Delete Profile" button.
    • The selected profile will be removed from the list.

Project Structure

DesktopLayoutSaver/
├── DesktopLayoutSaver.sln         # Solution file
├── App.xaml                       # Application definition file
├── App.xaml.cs                    # Application definition code-behind
├── MainWindow.xaml                # Main window UI definition
├── MainWindow.xaml.cs             # Main window code-behind
├── ProfileManager.cs              # Profile manager logic
├── Profile.cs                     # Profile data structure
├── WindowInfo.cs                  # Window information and manipulation
└── Profiles.json                  # JSON file storing the profiles (generated at runtime)

All contributions are welcome! If you have suggestions for improvements or new features, please create an issue or submit a pull request. This project is licensed under the MIT License. See the LICENSE file for more details.

About

This is a small windows app in C# that allows users to save the placement of their windows to profiles and be able to restore those profiles based on which workstation they are on currently.

License:MIT License


Languages

Language:C# 100.0%