Giter Site home page Giter Site logo

enginkirmaci / snapit Goto Github PK

View Code? Open in Web Editor NEW
13.0 4.0 2.0 32.15 MB

Snap It! is a window manager for Windows 10/11 that organizes your windows to improve productivity when working with wide and multiple screens. It's designed to be quick and simple.

Home Page: https://getsnapit.com/

License: GNU General Public License v3.0

C# 91.84% Batchfile 0.04% Inno Setup 8.00% PowerShell 0.12%
desktop-application window-manager wpf-application

snapit's Introduction

SnapIt

Snap It! is a window manager for Windows 10/11 that organizes your windows to improve productivity when working with wide and multiple screens. It's designed to be quick and simple.

Screenshots

Usage

Layouts

Designer

Features

  • Divide screens into snapping areas
  • Move windows between snapping areas by dragging
  • Run applications and move to a specified area with one click
  • Snap windows using keyboard and mouse
  • Choose different layouts for each screen
  • Create custom layouts using the design tool
  • Set your theme for overlay and highlighting of areas
  • Customizable options for dragging windows
  • Predefined layouts for different use cases (vertical or horizontal screens)
  • Supports different DPI and taskbar positions for each screen
  • Dark and Light theme

Build Status

SnapIt CI SnapIt Release

Usage

To use SnapIt, follow these steps:

  1. Download and install the latest version of SnapIt from the releases page.
  2. Run SnapIt from the Start menu or by double-clicking the desktop shortcut.
  3. Choose a layout for each screen in the layout window.
  4. Drag windows to snap them to the snapping areas on your screen.
  5. Use the designer to create/edit custom layouts in the layout window.

For more detailed instructions, please refer to the user manual. *UNDERCONSTRUCTION

Contributing

We welcome contributions to SnapIt! If you would like to contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your changes.
  3. Make your changes and commit them to your branch.
  4. Open a pull request to merge your changes into the main branch.

Please make sure to follow the code style and conventions used in the project. If you have any questions or need help, feel free to open an issue.

Thank you for considering contributing to SnapIt!

License

SnapIt is licensed under the GNU GPLv3.

snapit's People

Contributors

enginkirmaci avatar

Stargazers

Nikolay M avatar illuminati avatar heisenshark avatar  avatar  avatar Fabian Rieder avatar Sugar King avatar  avatar  avatar Matthias Jakobs avatar Kira avatar  avatar Twiggy avatar

Watchers

 avatar James Cloos avatar  avatar  avatar

Forkers

porfirioh hugodu

snapit's Issues

Excluding Apps not working

Describe the bug
when you need any app to be excluded from snapping, you can add this app in the options menu. The problem is, you cant add any app there

To Reproduce
open settings

  1. Go to menu Window
  2. see Excluded Applications and press New
  3. choose app from list of existing or enter title into the Keyword field
  4. when you pick the app, the list of excluded apps just gest a new line with empty fiend, no title of the app, no any information, and the app that you think you added still reacts to tiling

Expected behavior
when you select the app from the list, it becomes listed in the menu, abd becomes unresponsible to snapping
instead, nothing happens

Screenshots
If applicable, add screenshots to help explain your problem.
Screenshot (841)

Lag after long runtime

Hello I get this lag from having SnapIt run for a long period.
I would have it start on boot and few hours in ,selecting a region is super slow and lagging.
I recorded a video showing this.
First I have the start time and I start Snap it manually.
Then after several hours I show the lag I experience(Note* the lag in the video is probably the least I've experienced. There were cases where the lag was so big that the system was unusable for a minute or two, while the mouse was dragging across the screen).
Then I shut down SnapIt and restart it, to show that a fresh restart will return SnapIt to it's regular speed.

Untitled2.mp4

Layout Editing optimization

If I want to split a window into 3 equal parts, I need to export layout and then open Sublime text for editing, which is a terrible experience for me.
For now, instead of modifying the Json file, why not just edit the XAML file, XAML is better for layout.

First, I think we can add object-limited functionality to the layout editor.
Second, then the positioning of the object is based on the center, not the corners.
Third, add the object magnet function, which will facilitate the alignment of areas.
Fourth, the overlay area can be replaced by the icon, which will be more eye-catching.

Shuts down frequently for no reason

Describe the bug
A clear and concise description of what the bug is.
I have to start this app several times a day. Some days it's a few times, most days it's many times.
To Reproduce
Steps to reproduce the behavior:

  1. Start the app.
  2. Start the app.
  3. Start the app.

Expected behavior
I expected the app to stay working unless I shut it down.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10 64 bit
  • Browser Chrome
  • Version ??

Additional context
Add any other context about the problem here.

Disable keyboard shortcuts completely or shortcut customization

Is your feature request related to a problem? Please describe.
I have an ANSI-US keyboard but need to write an "รŸ" (used in Germany). I set it to [Control][Alt][S], as I don't have a dedicated key for that in the US layout.
[Control][Alt][S] is also the fixed shortcut to start/stop SnapIt. That way whenever I want to input an "รŸ", SnapIt gets disabled and the next time enabled again.

There is an option called "Use keyboard to snap window", that enables/disables keyboard shortcuts only for window moving.
This option has no effect on the shortcuts "Start/Stop SnapIt" and "Cycle through layouts for active screen". There is actually no way to disable keyboard shortcuts completely or to set custom bindings.

Describe the solution you'd like
For the beginning there should be an option to enable/disable keyboard shortcuts completely ("Use keyboard shortcuts"). That way I could actually use this program.

The next step would be to allow to customize the key binding for each action. Setting no binding for an individual action should be allowed.
Therefore "Use keyboard to snap window" and "Use [Win] shortcuts to snap window" could be removed, as you would be able to set the keys you want for the actions you want.

App freezes

Describe the bug
My app freezes, so I can't use it. Not possible to access "layout" in menu. Not possible to exit the app without hitting ctr+alt+delete.

Whats wronmg?

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Layout is not working

I installed the program on an HP EliteBook x360 1030 G2 x64 (Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz 2.71 GHz). Unfortunately, the machine can only run the Windows 10 Pro 22H2 19045.3803 operating system, the 11 is not compatible with the device. I installed this application to be able to properly position windows exposed to an ultra-wide screen. Unfortunately, I find that this feature is completely inactive. I cannot even open the Layout tab.

Issue resizing remotapp

Describe the bug
Some remoteapp cannot be moved in a panel.
Other remoteapp are movable to a panel but the window is not resized correctly.

To Reproduce
Open a remoteapp with snapit enabled and move a remote app to a panel.

Desktop (please complete the following information):

  • OS: Windows 11

Automatically switch Layout by screen dimension/ratio

Is your feature request related to a problem? Please describe.
Scenario 1:
A monitor with 5120x1440px resolution (32:9) and the option to use Picture-by-Picture (PBP), that splits the screen to display two separate input sources, 2560x1440px (16:9) each.
PBP changes the screen dimension, therefore the SnapIt-Layout used at 5120x1440px might not be suitable at 2560x1440px.
As a user you can set up different Layouts and switch them on your own, whenever you enable/disable PBP.

Scenario 2:
A monitor that is used horizontally and sometimes vertically (width/height swap).
Switching the orientation changes the screen dimension, therefore the Layout used horizontally might not be suitable vertically.
As a user you can set up different Layouts and switch them on your own, whenever you change the orientation.

Describe the solution you'd like
Layouts should be saved per aspect ratio. That way you can also reuse Layouts on screens with the same aspect ratio, regardless of actual resolution.
When the aspect ratio changes (e.g. by PBP or orientation change), another Layout based on the new ratio gets automatically loaded.
It should remember which Layout was used on which screen per ratio and prefer that one, when resolving the Layout to be loaded.
A new action toggles through all Layouts configured for the current aspect ratio, that can be triggered in different ways.

  • Layouts are not bound per screen, but per aspect ratio (16:9, 9:16, 32:9, ...)
  • When creating Layouts, it may recognize your current ratio, but you can also input another (e.g. creating a 9:16 Layout while using the screen at 16:9)
  • Areas / Overlays are saved as percentages, instead of pixels
  • Show two input fields per value, one for percentage and one for pixel and recalculate vice versa on change (for fine-tuning of Areas)
  • Action to toggle through all Layouts based on the current aspect ratio of the screen (Layouts for other ratios are skipped); e.g. by context menu, tray menu, keyboard shortcut
  • SnapIt saves the last Layout used per screen and ratio
  • SnapIt recognizes changes in screen dimension / orientation (maybe changing orientation already triggers a dimension change?) and automatically loads the last Layout used for this combination of screen and ratio

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.