Programming environment : Managing windows and monitors on a Mac - macos

What is a good way to "snap" windows into position into multiple monitors? I used to use ultramon on windows. These days, it is pain to manage windows individually, especially with the fact that resizing can only happen on the bottom left.
Curious to know what programs and tips everyone has. Thanks!

Sounds like you want a tiling window manager: https://stackoverflow.com/questions/276760/tiling-window-manager-for-mac-os-x

Related

How can I make ONE big desktop icon on windows?

I would like to make one desktop icon extra big, without affecting all the others. Why? Because I am trying to help out someone with a visual impairment. The reason is that I would like to make it do something special, like enabling/disabling Bluetooth or VPN. A natural alternative would be to have something with a small window, already running, but I was hoping to avoid having to program a new UI.
Is it possible to make a single desktop icon larger so that it would extend (lets say) 4 others?
(If not, what would be the better alternative solution?)
Windows doesn’t support this natively. You can make desktop icons larger or smaller - all of them, not just one, as you already know.
There might be a third-party program which does this, but I haven't discovered one.

Options for deploying an interface for a museum exhibit?

We are building an companion presentation that will be displayed on computer screens next to a museum exhibit. I believe the machines are going to be running OSX (no touchscreens) and the users will need a mouse at minimum.
Does anyone have an recommendations for what environment to build in (flash, air, web, cocoa, etc) that will allow us to restrict access to the computer itself? Our main concern is with people alt-tabbing, command-q'ing, command-option-escape'ing, etc etc etc. Anything that will let them exit the presentation and access the main system is a major issue.
Thanks.
OS X has support for various kiosk modes which you can trigger from pretty much any programming environment. Something Web-based seems like a good strategy since it doesn't limit you much. Opera has kiosk support (which I haven't used) as does iCab. There are also some purpose-designed kiosk browsers such as Plainview and wKiosk.
I think what you are looking for is called "Kiosk mode":
http://www.mactech.com/articles/mactech/Vol.19/19.12/KioskModeFeatures/index.html
Also, I would avoid giving the users a mouse. Mice will get destroyed in such exhibits over time. A better option might be a touchpad. I don't know for sure, but I would imagine they will have a longer lifespan in a display. I know trackballs used to be very popular for kiosks but the ones I've seen look like specially purchased devices, not the standard Kensington ones you get at the shop around the corner...

Control multiple PCs with single Mouse and Keyboard [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 3 years ago.
Improve this question
As a programmer I found it very hard to use my laptop and workstation with two different input devices, Can anyone suggest a good solution to use single mouse and keyboard to control my two machines
I am not looking for a Virtual Machine or RDP solution to see my machines in a single monitor,
Synergy.
Synergy lets you easily share a single mouse and keyboard between
multiple computers with different
operating systems, each with its own
display, without special hardware.
It's intended for users with multiple
computers on their desk since each
system uses its own monitor(s).
Redirecting the mouse and keyboard is
as simple as moving the mouse off the
edge of your screen. Synergy also
merges the clipboards of all the
systems into one, allowing
cut-and-paste between systems.
Furthermore, it synchronizes screen
savers so they all start and stop
together and, if screen locking is
enabled, only one screen requires a
password to unlock them all.
P. S.
See also how to fix Synergy problems on Vista.
What you want is a small gadget called a KVM switch (keyboard, video and mouse switch). Googling for that term will hook you up with plenty of suppliers.
There is also a neat software solution called Synergy that lets you use your cursor and keyboard input over multiple computers connected by a network.
Yet another vote for Synergy for a software KVM solution. I'm not sure about the others, but it's unique if your computers are running different operating systems. It worked very well when I had a W2k/Linux setup across 3 computers.
Synergy is great, but also give something like VNC a try: it consolidates not only the keyboard and mouse but also the screen. In my case my desktop monitor is much larger than my laptops, and I'm more comfortable facing forward anyway (not looking off to the side where the laptop is.)
There is a lag compared to using a KVM switch, but no loss in video quality.
In my experience Synergy is the best way to merge multiple monitors.
Others include:
- x2vnc
- x2x
- win2vnc
- osx2x
- win2x
... pretty much just take what OS/platform you're on, which one you want to connect to, and put a '2' in the middle. Type that into google and you're good2go.
For my linux machine I use QuickSynergy since it provides a gui for easier configuration. It also has a Mac OS version.
The best...
Synergy
I'll put in another vote for Synergy, but with a caveat - setup can be a little tricky. The first time I tried it, I could move my cursor over to another PC but I couldn't move it back. Spend some time with the documentation before you proceed.
InputDirector is better than Synergy. Here's why...
It has built-in AES encryption functionality (without requiring you to install OpenSSH) for secure transfer of input between machines.
It allows cut & paste of text and files between machines (by automatically translating to C$ and D$ shares)
Based on extensive use with a laptop, it is far more reliable and stable than Synergy when reconnecting after undocking & docking. Synergy would frequently just stop working after docking and undocking, requiring me to kill it, restart it, and reconnect. InputDirector rarely has any issues.
The configuration UI is easier to use, and has more options, than Synergy.
Lots of little things, like matching of cursor location between machines during screen-edge transitions, and overriding mouse settings of "Slave" machines with those of the "Master" machine.
Beyond that, as far as I can tell, it does everything Synergy does. There's only a Windows version, but apparently it's also Vista compliant as well.
I've used both tools extensively, first Synergy, and then InputDirector. InputDirector is just a more robust application. It has all the features of Synergy and then some, plus the key ones listed above. It's website isn't as attractive, and while it isn't GNU GPL'd like Synergy, it free nonetheless, and an oustandingly well-functioning tool.
I used to use a KVM switch, but lately I've started running all my computers as virtual machines on a single hardware platform. Each "system" is a window on my desktop!
I have a triple monitor display, and I just remote desktop into my other machines. I have 2-3 laptops on my desk at any given time, and 3 servers to administer. Over a 1 gbps connection, I have very little latency to worry about, and I can be working on three computers at once without much trouble. This may or may not help you, but I thought I would throw it in there for you.
If you mean: two machines on your desktop, a lot of places use KVM-style switches.
They come in legacy PC-style and also USB. The USB version works with Macs and PCs.
My experience is that the small desktop switches are a bargain, and if you learn the keyboard shortcuts, you'll jump back and forth without much problem.
The machine room, 3-level tree KVM's are also pretty useful. They flake out more often, but when you have 60 machines, you simply can't have 60 pairs on input devices.
I'll second Zarkonnens comment about KVM Switches as I use one for this purpose all the time. However I might share some rather frustrating experiences with them:
I have found that PS/2 interfaces tend to be somewhat more reliable on KVM switches than USB - I have had very bad experiences with some supposedly upmarket DVI-USB KVM kit from Gefen and Avocent. Due to a quirk of my Viewsonic monitor where it would drop back to analog most of the time these were exacerbated to the point of the system being nearly unusable.
DVI and USB are finicky. DVI monitors will often time out and sleep if they get no signal. The KVM switch will assume that there is no monitor if it is not active, which will then be passed back to the video card. USB interfaces will also get put to sleep randomly.
The net effect of this was that it was very difficult to get two machines to boot up and work on the KVM switch and the switch would lose keyboard or mouse input on one or both machines every few days. This was followed by an hour or more of trying to get all of the hardware to come up and play nicely. I got the same issue with the Avocent and Gefen switches on several different machines.
My older Belkin VGA/PS2 kit worked fine with the Viewsonic monitors on VGA but I spent nearly £1000 on switches and cabling to try and get a working DVI-USB KVM setup.
In the end I got two HP LP2065 screens that didn't have the bug that the Viewsonics exhibited. These have two DVI inputs and I used one of my older Belkin PS/2 switches to switch the keyboard and mouse. The computers are plugged directly into the monitor and the monitor's input selector is used to pick the computer. The keyboard and mouse are switched off the KVM switch. This is the setup that I'm using today.
The monitors and KVM have to be switched individually but it's much more reliable than the DVI-USB KVM switches that really did not work at all. Caveat emptor.
You should also check out Multiplicity from Stardock.

Lightweight X window manager/environment

My machine is seriously underpowered, and I think I need to start conserving every spare cycle. I know that my Gnome environment seems to underperform compared to my coworkers' KDE setups. But if I'm going to make that big of a switch, I might as well consider running something even lighter.
Is it possible to survive on a lightweight window manager and still run modern apps (Firefox, Eclipse, OpenOffice)? What's a good candidate window manager for me to try, and what do I need to know?
The window managers listed below all subscribe to the lightweight and fast approach.
They are faster than fully fledged window managers like KDE or Gnome and trim down on most visual distractions. Which one you pick will be mostly determined by your own taste and what you can get to run.
There's a subfamily of these window managers, notably those which attempt to let you do everything by keyboard and let you tile your applications with minimal screen real estate waste. These can feel funny if you come from mouse-oriented window managers. XMonad and ratpoison are members of this family.
xfce
ratpoison
fluxbox
awesome -1, cannot handle minimize to tray
XMonad
dwm
fvwm (codebase for another WMs)
icewm
Englightenment
wmii
openbox
pekwm
I like XMonad. It's very stable, has very low overheads, and has an active user/developer community.
XMonad is almost as minimal as ratpoison, but it displays multiple windows by tiling them, and even allows floating windows if you really need them (e.g. for modal dialogues or GIMP). It's certainly given my underpowered Ubuntu box a new lease of life!
Edit: I forgot to mention: XMonad is keyboard-based rather than point'n'grunt, so there's a bit of a learning curve, but once I got the hang of it I found that I was much more productive.
Fluxbox is a good alternative and very lightweight.
http://www.fluxbox.org/
Icewm is quite nice and lean (used it for a while on an underpowered box but moved to KDE when the box was upgraded).
The first thing you should would be to build your own kernel, with just the things you need. That will save tons of resources.
Then, choose a lightweight WM. Ive found Enlightenment very light and awesome, give it a try.
Later, you should look for lightweight replacements of the apps you use.
You can replace OpenOffice with Abiword, Gnumeric.
Just google, and you will find very nice alternatives to those ram-eater software.
The thing I would recommend will be to avoid Java software, they'll run VERY slow on a low resources PC.
Also, check for the services that are currently running on your PC, and disable the ones you don't use.
Consider changing your current distro for a low resources distro. I found Debian very customizable and lightweight.
Good Luck!
I use FVWM for 7 years. Most of WM based on FVWM, but strip any flexibility of FVWM.
FVWM is just "interface" to Xlib so it bring to you all what in Xlib.
If you want currently popular tiling - just: FvwmPiazza::Tiler
Google for ~/.fvwm/config as get own from scratch is too difficult, this good one from which I started: http://zensites.net/fvwm/guide/
Also look to:
https://wiki.archlinux.org/index.php/FVWM
http://wiki.gentoo.org/wiki/FVWM
https://wiki.debian.org/Fvwm
I'll second xfce, it's probably the most popular of the lightweight WM's out there (perhaps due to its inclusion in Xubuntu). I've also had good experiences with Fluxbox (it came with Damn Small Linux when I used that as a lightweight Linux VM (back when VMs were slow :-) ).
There is definitely an ease-of-use learning curve to reckon with when migrating to these more lightweight WMs, but the performance benefits aren't hard to see on older hardware (menus appear instantly, navigation is pretty snappy).
I used Fluxbox for a long time, which is great for people used to having windows floating around like in KDE, Gnome etc. It's pretty small, pretty fast and highly configurable, plus it doesn't look as ugly as some other "minimalist" window managers. ;)
A few weeks ago I switched to awesome because I like how efficiently it places and resizes my windows. It's perfect for me since I almost always have just a full screen terminal on one screen and a browser on another screen. It also supports mixed window styles, so you can have windows managed by awesome and floating windows on one screen (e.g. I have almost always a managed full screen urxvt open and a small floating mplayer window in one of the corners). It's as lightweight as fluxbox, if not even faster, but doesn't offer as many options for customizing the look and feel.
I am using fluxbox too. Compared to a desktop envionment, using only a window manager is not as convenient. You choose every component yourself which is both a strength and a weakness. ROX file manager and usbmount are great companions to fluxbox. Also take your time to find some dockapps that may be useful.
Enlightenment (v16) is actually very lightweight compared to gnome/kde these days, and it is very configurable (although, nothing seems to be as configurable as fvwm) Florian's suggestions are all good, but if you're used to gnome/kde, then you probably won't like ratpoison / xmonad.
icewm has done me good for several years. I don't need most of the crap that the big-time desktops offer, but i do like a clock and CPU usage monitor running in the bar along the bottom - icewm does have these. It is noticeably lighter in feel than the popular desktops. No weirdness such as tiled windows or anti-mouse attitude. Customizing the root menu is also easy, much easier than doing so in KDE or Gnome, which i never did figure out adequately. At one place i worked, the sysadmin saw my screen and decided to give it a try. AFIK, he's still using it.
I'd recommend openbox. Its lightweight, very configurable, and works great without getting in the way. Very functional, and can do pretty much anything you want. I love it.
I tried PekWM for some time. I really liked it. It allowed me to group programs of the same type, for example: Terminals.
I myself have used 'lwm' or lightweight window manager for quite a while now and have been very happy with it. I use it with xfce4-panel which I use for a clock and better window manipulation. Lwm is truly light weight even more than xfce, icewm, pekwm and others.
I've used everything at one time or another, but I keep coming back to WindowMaker. I like the concept of the clip, the multiple workspaces (I keep one for each type of task) and the fact that it looks good with theming that is ridiculously easy.
Docker is an essential app to add to the desktop to keep nm-applet and other applets in the WindowMaker dock.
Don't judge it by the default theme. Use the Wprefs tool to customize it to your liking.
Cheers
KG
Over the years, I've downgraded the WMs of my machines. Since the more mainstream WMs, like Gnome or KDE become more and more resource hungry, it wasn't long, before I replaced Gnome with XFCE on laptops and desktop computers.
In fact, I've been using XFCE longer than any other WM. It seems to me, as if the niceties of things like Gnome and KDE are great when seeing them for the first time, but after using them for a few weeks and months, the novelty wears off, and it makes more sense to go back to a more streamlined environment.
The problem with XFCE is, that it's not as lightweitght as it needs to be for some of the older laptops I still have. I decided to use LXDE on those, and to be honest, I kinda have a love/hate relationship with that. It works fine, in the sense that it's quite resource friendly, and it's quick to log in, etc. But certain things don't seem to work that well. One of which is the task bar. It seems some of the icons don't fit, because they were designed for things like Gnome or XFCE. The icons still do work, but it's next to impossible to make the whole LXDE experience look the part.
Blackbox (+ bbkeys) is a little bit weird, but pretty nice thing. Also you can check the comparison table of window managers.

Developing for multiple monitors [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
We are currently working on a new version of our main application. one thing that I really wish to work on is providing support for multiple monitors. Increasingly, our target users are adding second screens to their desktops and I think our product could leverage this extra space to improve user performance.
Our application is a financial package that supports leasing and fleet companies - a very specialised market. That being said, I am sure that many people with multiple monitors have a favourite bit of software that they think would be improved if it supported those extra screens better.
I'm looking for some opinions on those niggles that you have with current software, and how you think they could be improved to support multi-monitor setups. My aim is to then review these and decide how I can implement them and, hopefully, provide an even better environment for my users.
Your help is appreciated.
Thankyou.
Few random tips:
If multiple windows can be open at one time, allow users to have them on separate screens. Seems obvious, but some very popular apps (e.g. Visual Studio) fail miserably at this.
Remember the position of the last opened window, and open new windows on the same screen as before. However, sometimes users switch between multiple and single-display (e.g. docking a laptop with an external CRT), so watch cover this case as well.
Consider how your particular users work, and how having two maximized windows simultaneously might help. Often, there is a (fairly passive) window for reference (e.g. a web browser/help) and an active window for data entry (e.g. editor/database) that users switch between.
Do not put toolboxes/toolbars on a different window than objects they operate on (it's inconvenient to move the mouse so far).
Apple's Human Interface Guidelines for the Mac have covered window management on multiple displays since 1987, when the Mac II was introduced with six slots that could all contain a graphics card. The guidelines offer a few good guidelines that you might not think of at first when implementing multiple window support. For example, if a window spans multiple displays, which display should new windows be opened on? There's an answer around Figure 14-33 in the chapter dealing with Window behavior.
Microsoft may have something similar now for Windows developers to follow; if that's the case, check it out and follow their guidelines since you don't want to behave differently than the other apps on the system (or that your users are used to) for no good reason. However, if there are no guidelines, follow Apple's as they're fairly well thought-through and were originally developed through experimentation and research.
Please Please Please. If you remember window positions for multiple monitors. Please detect if the second monitor is connected. I have a laptop that is sometimes docked. It is very annoying when I try to open a window and it opens off screen.
It's annoying when I drag a window to another monitor, and then if the application generates a popup dialog, or spawns another window, if that popup/dialog gets displayed back on the primary monitor.
I haven't developed for multi-monitors, but I think this can be better handled if you position child windows/dialogs centered on their parent window, rather than on the desktop center (which I'm guessing is what happens in the case I describe above).
I'm going to have to a give a nod in dbkk's direction as they captured a couple of the major points that you need to remember.
Also, I would suggestion paying attention to how you use dual monitors and try to keep that in mind as you are developing. Generally you should try to avoid doing the things that applications you work do that annoy you. Also, don't assume that just because the user has dual monitors that they are going to want to work with your application on dual monitors.
The biggest thing that I would stress is keeping track of where the focus is in the application and making sure that any pop-ups occur within that region, one of the things that people seem to dislike the most is having a window pop-up in a different window then the one they are working on.
Definitely keep dialogs near where you clicked to bring them up. Remember what monitor the window is on between sessions. Be aware that if they have less monitors than the last time your app was run that you need to bring the windows back to a visible area. Provide an icon or button to switch monitors. Depending on the type of app it may be useful to be able to easily tile your app's windows on a monitor or on all.
One thing to keep in mind is that the user may have more than two monitors. My main system has six monitors, and I've run 4+ monitors on Linux, Windows, and Mac OS. Many applications--even multi-monitor utilities--will support 2 monitors but freak out over more than 2.
Applications work best when they know about where their windows are and relate to the locations of those windows. And as someone else mentioned, if you're going to remember where a window was, make sure that geometry still makes sense when the user comes back.
If the OS/window system dispatches an event related to the change of screen geometry, handle it if you're doing anything funky.
I think most applications that are well coded generally work these days.

Resources