Comments (12)
Hi @frontoge, thanks for opening a feature request!
Multiple display support is definitely something that is on my radar and being worked on. Progress is slow, because I do not own a second monitor.
Most of the groundwork is laid already, but questions remain about the UX and possible configuration options - I might follow up with that here.
The display configuration will likely be the one set in Windows Display Settings - that is what the backend (WinMan) supports.
I am planning to focus more on this for the release after the next one, so stay tuned.
from fancywm.
@sim590 @llinfeng
Moving windows between monitors is supported but the keybindings are not configurable in the UI in the latest version.
v2.8.0 Changelog
settings.json
from fancywm.
I came here to add the same issue, thanks for reporting it @frontoge. I'm ready to test once this is available in a build.
from fancywm.
FancyWM v1.5.7 includes some very basic multi-display support. The feature is experimental and needs to be enabled from Settings > Displays. FancyWM needs to be restarted after this setting is changed.
The only thing that is supported at this point is moving windows between displays with the mouse. Keybindings will be added later. The windows should attach to the layout of the display they are on when moved.
What doesn't work:
- Connecting, disconnecting and changing "projection" settings (duplicate, extend, etc.) causes crashes
- Moving floating windows between displays causes them to lose the floating mode setting
If FancyWM fails to start properly after enabling the experimental multi-display support, the setting will need to be reverted manually by changing the value of ExperimentalMultiMonitorSupport
in %appdata%\FancyWM\settings.json
to false
.
from fancywm.
Multi-display support is much more stable as of v1.11.0 and is now enabled by default.
from fancywm.
@veselink1 Please advise if I missed it - for App version 2.6.6.0, how to move one window to the next monitor with a keyboard shortcut?
Assuming it is not implemented for now, I find DisplayFusion doing the trick. As specified in the following screenshot, I use:
Ctrl+Win+L
to move the window to the monitor on the right, andCtrl+Win+H
to move the window to the monitor on the left
When moved, depending on whether there are existing windows in the destination monitor, the window moved through DisplayFusion shall snap right in, or take up the full display by occupying the "invisible top-level panel" (language borrowed from the Help tab in FancyWM Settings).
Caveat: only non-maximized windows moved through the shortcut are "managed" by FancyWM in the destination monitor. If a window has been maximized previously, restoring it and moving it through DisplayFusion won't necessarily get it to join the "panel" in the destination display. In this case, forcing the window to float will join it to the panel in the destination display. Afterwards, moving the same window with DisplayFusion shortcuts gets the job done as expected.
For more context, I use AutoHotKey to toggle the Maximize/Windowed mode for the active window using Win + Enter
key.
; Source: www.autohotkey.com/board/topic/16755-help-toggle-maximizerestore-with-same-hotkey/?p=108614
#Enter::
WinGet MX, MinMax, A
If MX
WinRestore A
Else WinMaximize A
return
from fancywm.
One follow-up question - across multiple monitors, may there be a mode to quickly select a window by some visual cue? @veselink1 I read from your previous post that you are interested in comments about UX implementations. Here is an example:
In Vim, vim-choosewin implements a "pane-selector" interface. Upon summoning such "pane-selector", letters are drawn specifically for each visible pane as below. Typing the letter brings the cursor to the corresponding "pane". (In Vim, a "pane" is similar to a Window managed by FancyWM.)
from fancywm.
As @llinfeng seems to point out, moving windows to other displays with the keyboard is not feasible? May be there should be an issue opened to track this. It seems to me that using the keybinds to focus a window to the right when the focus is on the rightmost window and that there is a window on a display on the right, the focus should go on the other window on the right, but it doesn't. I really have to "focus the other display" first. Since displays are always either left, right up or down wards, I would expect the keybinds I'm talking about to work accross displays.
from fancywm.
As @llinfeng seems to point out, moving windows to other displays with the keyboard is not feasible?
In its current state, FancyWM does not support multiple-monitor setups. Within itself, it cannot move one window from one monitor to the next using shortcuts (or key-combinations). DisplayFusion is useful when it comes to moving windows around.
from fancywm.
Fantastic! Thanks for implementing both the features to move focus to another display and to move a window to a destination display.
@veselink1 One question: does the enumeration of the monitors strictly follow the numbers assigned to the displays under System>Display (or the Display settings window)? At times, the monitor enumeration won't be stable should I fumble with the display connections, by: accessing the machine through Remote Desktop Connection, reusing a laptop across multiple docking stations and rebooting the machine once it "settles" at one location - the enumeration of the monitors will, very frequently, change, over those maneuvers.
Here is what I see under System>Display on a Win 11 machine:
And, thanks to your pointer to the settings.json
file - I found the new CLI parameters to use.
Sample AHK script
For fellow AHK users - here are a few mappings that worked form me. The spelling of the CLI flags are taken from this file.
^1::
Run fancywm.exe --action MoveToDisplay1
return
^2::
Run fancywm.exe --action MoveToDisplay2
return
^3::
Run fancywm.exe --action MoveToDisplay3
return
^+1::
Run fancywm.exe --action SwitchToDisplay1
return
^+2::
Run fancywm.exe --action SwitchToDisplay2
return
^+3::
Run fancywm.exe --action SwitchToDisplay3
return
from fancywm.
The enumeration of monitors is based on the internal device names assigned by Windows and should be consistent with the output of mstsc /l
, but is different from what is shown in Settings.
from fancywm.
Great, then, when mstsc /l
returns the following list, does it mean MoveToDisplay1
will stop working, and I need to use MoveToDisplay4
instead?
from fancywm.
Related Issues (20)
- Ability to disable "Your version of windows is not supported" notifications HOT 5
- How to install the latest release 2.11.3 HOT 3
- Negative window gaps. HOT 2
- VMWare full screen topbar functionality is impacted HOT 2
- FancyWM crashes when switching from RDP connection to local login HOT 2
- Move window to display crashes app HOT 2
- Please add intecraftion with altdrag HOT 3
- is this project dead? HOT 1
- 2.11.4-rc release still reports 2.11.0.0 & does not persist window configuration HOT 2
- Defender is affraid of the last build HOT 4
- panel is obscured by the windows taskbar when taskbar is `docked on top` of the screen HOT 1
- Crash while splitting windows on vertical monitor
- Donation Link seems to be broken HOT 2
- `fancywm` command not recognized HOT 1
- Crash when waking up from sleep HOT 1
- Rearranged windows & forgotten layout after wake from sleep HOT 3
- Installaion via Windows package managers like winget HOT 2
- Autofocus on mouse over HOT 3
- Multiple hotkeys triggered at the same time HOT 1
- Not possible to move a Windows between two stacks panals HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fancywm.