[HN Gopher] Display-switch: Turn a $30 USB switch into a full-fe...
___________________________________________________________________
Display-switch: Turn a $30 USB switch into a full-featured multi-
monitor KVM
Author : dattl
Score : 404 points
Date : 2021-12-18 22:00 UTC (1 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| shadeless wrote:
| This looks fantastic, I was recently disappointed to learn that
| there don't seem to be any good KVMs under ~$200, that support
| anything higher than 4k@60Hz.
|
| Apparently Thunderbolt/DisplayPort are not really a thing yet for
| some reason, so I ended up getting a USB (KM) switch instead.
| With this project, it looks like I'll be able to have my cake and
| eat it too.
| VTimofeenko wrote:
| Make sure that the monitor you are using actually supports
| input management through DDC. I have seen some monitors that
| expose only the color management.
| vladvasiliu wrote:
| I've managed to find a cheap 2-port DP KVM that pretends it's
| able to do DP 1.4 / 8k @ 60 Hz. I can only confirm it works
| well at 4k@60 Hz, since that's the best my screen can do.
|
| One pro is that it's able to get power from any of the USB
| inputs, so no extra cable!
|
| One con is that for some reason it only does USB 2...
|
| Amazon FR link : https://www.amazon.fr/gp/product/B08Q7J3B82
| chx wrote:
| Check https://dancharblog.wordpress.com/2021/07/05/usb-c-
| gen2-bi-d... end of post links to DP and HDMI 2.1 switches
| lightbendover wrote:
| I found the same problem roughly a couple years ago. I ended up
| building a very specific solution (switch input mode based on
| specific USB changes) that is more or less a subset of of the
| functionality here. I am now having near daily issues with the
| KM (a ~$30 one that was the only one I could find that really
| meet my needs) box. There is tons of room on the market for a
| good prosumer solution to this problem.
| 123pie123 wrote:
| just incase (like me) you haven't heard of DCC/CI before
|
| https://appuals.com/what-is-ddc-ci-and-how-to-use-it/
| jarenmf wrote:
| I kind of feel disappointed of myself for not hearing of it
| before although I have searched for a way to script brightness
| control of my monitors and ended up using suboptimal xrandr for
| it
| anonymousiam wrote:
| Thanks for posting this! I did not know that I had control of my
| monitor features this way. My LG 27UK850-W reports the following
| capabilities when queried. (First I ran "ddcutil detect" to see
| what it said.)
|
| Invalid display I2C bus: /dev/i2c-15
| EDID synopsis: Mfg id: LGD
| Model: Serial number:
| Manufacture year: 2013 EDID version: 1.4
| DDC communication failed This is an eDP laptop
| display. Laptop displays do not support DDC/CI.
|
| Display 1 I2C bus: /dev/i2c-17
| EDID synopsis: Mfg id: GSM
| Model: LG HDR 4K Serial number:
| Manufacture year: 2018 EDID version: 1.3
| VCP version: 2.1
|
| So knowing that my LG monitor is display device #1, I then ran
| "ddcutil -d 1 capabilities"
|
| MCCS version: 2.1
|
| VCP Features: Feature: 02 (New control value)
| Feature: 04 (Restore factory defaults) Feature: 05
| (Restore factory brightness/contrast defaults)
| Feature: 08 (Restore color defaults) Feature: 10
| (Brightness) Feature: 12 (Contrast)
| Feature: 14 (Select color preset) Values:
| 05: 6500 K 08: 9300 K 0b:
| User 1 Feature: 16 (Video gain: Red)
| Feature: 18 (Video gain: Green) Feature: 1A (Video
| gain: Blue) Feature: 52 (Active control)
| Feature: 60 (Input Source) Values:
| 0f: DisplayPort-1 10: DisplayPort-2
| 11: HDMI-1 12: HDMI-2 Feature: AC
| (Horizontal frequency) Feature: AE (Vertical
| frequency) Feature: B2 (Flat panel sub-pixel layout)
| Feature: B6 (Display technology type) Feature: C0
| (Display usage time) Feature: C6 (Application enable
| key) Feature: C8 (Display controller type)
| Feature: C9 (Display firmware level) Feature: D6
| (Power mode) Values: 01: DPM:
| On, DPMS: Off 04: DPM: Off, DPMS: Off
| Feature: DF (VCP Version) Feature: 62 (Audio speaker
| volume) Feature: 8D (Audio Mute) Feature:
| F4 (manufacturer specific feature) Feature: F5
| (manufacturer specific feature) Values: 00 01 02
| (interpretation unavailable) Feature: F6
| (manufacturer specific feature) Values: 00 01 02
| (interpretation unavailable) Feature: 4D
| (unrecognized feature) Feature: 4E (unrecognized
| feature) Feature: 4F (unrecognized feature)
| Feature: 15 (unrecognized feature) Values: 01 06 09 10
| 11 13 14 28 29 32 44 48 (interpretation unavailable)
| Feature: F7 (manufacturer specific feature)
| Values: 00 01 02 03 (interpretation unavailable)
| Feature: F8 (manufacturer specific feature)
| Values: 00 01 (interpretation unavailable) Feature:
| F9 (manufacturer specific feature) Feature: E4
| (manufacturer specific feature) Feature: E5
| (manufacturer specific feature) Feature: E6
| (manufacturer specific feature) Feature: E7
| (manufacturer specific feature) Feature: E8
| (manufacturer specific feature) Feature: E9
| (manufacturer specific feature) Feature: EA
| (manufacturer specific feature) Feature: EB
| (manufacturer specific feature) Feature: EF
| (manufacturer specific feature) Feature: FD
| (manufacturer specific feature) Values: 00 01
| (interpretation unavailable) Feature: FE
| (manufacturer specific feature) Values: 00 01 02
| (interpretation unavailable) Feature: FF
| (manufacturer specific feature)quirred
|
| So I pretty much have control of all monitor features!
| jabl wrote:
| This is a fantastic project. I'm using it with a cheap usb switch
| to share screen, keyboard and mouse between my work laptop and
| home desktop.
|
| My only gripe is that when I press the USB switch to change
| inputs, I must follow with a press on the keyboard to wake up the
| other computer, otherwise the monitor sees that the new input has
| no signal and switches back to the previous input. In which case
| I must either manually change inputs on the screen, or press the
| usb switch a couple more things to try again. But I guess there's
| not much display-switch can do about that..
| bananasbandanas wrote:
| Couldn't display-switch send a keypress (something that doesn't
| do much otherwise, like F15) automatically?
|
| You could probably get that result at the moment using the
| external command feature and something like xdotool (on Linux)
| pm215 wrote:
| Yes, or send a fake mouse move. It does this already when
| running on Windows or OSX; there's an open issue for adding
| the Linux host support: https://github.com/haimgel/display-
| switch/issues/27
|
| I reckon it's probably 25 or 30 lines or Rust if you make it
| use the uinput crate to create a fake input device and send a
| mouse-move event that way.
| beastie29a wrote:
| Previous discussion:
| https://news.ycombinator.com/item?id=24357308
|
| Author's site: https://haim.dev/posts/2020-07-28-dual-monitor-
| kvm/
|
| BTW, for some reason I could never get this working on my
| Hackintosh, keeps crashing the system and never took the time to
| look into it.
| josteink wrote:
| While the readme tries its best to explain how this works, I'm
| still not sure I get it 100%.
|
| It would definitely help having a figure or diagram showing how
| things are meant to be wired up.
| hsbauauvhabzb wrote:
| Off topic, but how are kvms / sub switches when it comes to
| security?
|
| Could a compromised computer listen for keystrokes or send input
| to an adjacent node or similar?
| syntaxing wrote:
| Maybe I missed it (on mobile) but which switch does this use? Or
| does anyone have one they recommend?
| ranma42 wrote:
| My shell-script solution I've been using for the last year or
| two: #!/bin/bash src="pc" while true;
| do lsusb -d 04d9:a0d1 >/dev/null # Keyboard connected?
| ret=$? if [ $ret -eq 0 -a "$src" != "pc" ]; then
| src="pc" ddcutil --noverify setvcp 60 0x0f # Switch
| monitor input to DP elif [ $ret -eq 1 -a "$src" = "pc" ];
| then src="laptop" ddcutil --noverify setvcp
| 60 0x11 # Switch monitor input to HDMI fi sleep
| 1 done
| ur-whale wrote:
| > sleep 1
|
| One second latency ... not ideal.
|
| Is there any way to sleepwait on a USB config change instead?
|
| [EDIT]: this might help:
|
| https://stackoverflow.com/questions/469243/how-can-i-listen-...
| esjeon wrote:
| You can use `udevadm monitor` or venture into `dbus-monitor`
| to capture events from udev.
| drran wrote:
| Add udev rule, to launch script when an input is connected:
| ACTION=="add", DEVPATH=="*/input/*",
| RUN+="/usr/local/bin/script.sh $devnode"
| synergy20 wrote:
| I have a $250 TESmart HDMI/keyboard/mouse switch, after 6 months
| I have to power cycle it each time when I woke up the computer.
| Unreliable.
|
| Also bought Synergy that works fine but I need keep the software
| running(a wifi switch will lose the connection, so it's not the
| same as the hardware kvm switch).
|
| I now use usb-switch for keyboard/mouse only, and use my
| monitor's own button to switch displays, so far it is not
| convenient but "works".
| jpitz wrote:
| If you bought the switch from them, their support is pretty
| good. I would recommend reaching out to them. Otherwise I guess
| reach out to who you bought it from.
| sharken wrote:
| Exactly the same solution here using the Aten US224 device -
| https://www.amazon.com/Aten-Corp-User-Port-US224/dp/B00B1RX0...
|
| One of the computers is a work issued laptop and with this
| solution i won't have to install any software.
|
| The monitor is rather slow to switch inputs, but otherwise all
| is good.
|
| The only visible thing on the desk is the button for switching
| USB devices.
| superkuh wrote:
| It's cool but it only works if you have a rust compiler that can
| actual compile this (1.55.0) and no one does. That means you have
| to install a compiler from outside of your system repositories
| 100% of the time. Is suggesting everyone,
|
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
| ... really such a great idea? Even ignoring the curl | sh it's
| going to bork many systems now having two rusts. Rust projects
| you're supposed to compile are not ready for use by anyone but
| other bleeding edge Rust devs.
| edgan wrote:
| Sadly the standard these days is compile everything in a
| container. Avoid any conflict by taking the path of least
| resistance.
| superkuh wrote:
| I'd argue that that is a failure install and failure to
| compile. You don't have a binary that can run on your actual
| system. When I run MS Office in a Windows virtual machine I
| am running it but it is not cross-platform or running on
| Linux. I'm virtualizing it. The same applies here.
| vhodges wrote:
| Under actions, the project is being CI'd and the artifacts are
| kept there eg: https://github.com/haimgel/display-
| switch/actions/runs/15284... But yeah, actual releases would be
| nice.
| jonathanlydall wrote:
| Away from home at the moment, but this looks like it will
| "complete" my current set up very nicely.
|
| I have 2x Dell P2319H (1080p) monitors and have my work laptop
| connected via DP with my gaming desktop connected via HDMI. Then
| I have a dumb USB switch with a button on it to switch my USB
| devices between the two computers.
|
| If the other computer is off/sleeping the screens most of the
| time automatically switch to the correct inputs, but sometimes I
| need to use the screen controls to do it.
|
| This set up cost 10s of dollars as opposed to 100s for a proper
| KVM switch and it's worked pretty well for the last 2.5 years.
|
| I'll try this utility when I get home and it will hopefully make
| it so the USB switch's button is all I'll need to press and it
| will work, even if both the computers are turned on.
| milofeynman wrote:
| I've been using this since it was created and it works fantastic.
| The only problem is my bad monitor has like a 5 second timeout if
| no input is detected!
| esjeon wrote:
| Hmm, I believe someone should've already worked on a pure-
| software solution for this. I mean, when you say KVM, you gotta
| double tap Scroll Lock.
| nsonha wrote:
| What does this even mean, turn an already switch to... a switch?
| Isn't an "USB switch", whatever that means, that can connect to
| multiple monitors (type C?), already a KVM switch?
| mathfailure wrote:
| I've read the project's description and failed to figure what it
| does. What's a 'USB switch'? Where should this device be
| connected to? "press one button on your USB switch and all your
| monitors connect to a different input." - if the USB switch has
| buttons - why would I even disconnect/reconnect it? The project's
| description is shit.
| dang wrote:
| Asking sincere questions is fine but please don't call names or
| post putdowns.
|
| https://news.ycombinator.com/newsguidelines.html
| aerosoul wrote:
| A USB switch is a device that allows you to share USB devices
| among different computers. For instance, suppose you need to
| control 2 PCs. Rather than having 2 keyboards and 2 mice, a USB
| switch allows you to use a single keyboard and a single mouse
| to control both computers. You press a button on the switch to
| select which PC you want to control. But you still need 2
| monitors...
|
| If you only want a single monitor, there are switches that also
| switch between different video inputs. These are commonly
| referred to as "KVM switches" (KVM being Keyboard, Video,
| Mouse.) But KVM switches cost more money...
|
| My understanding is this project allows you to use a plain USB
| switch and the multiple video inputs on your monitor to
| simulate a full blown KVM switch.
| mathfailure wrote:
| Oh, so this software is for the case when your 'USB switch'
| can be connected to multiple PCs but lacks video input
| interfaces so you normally have to switch active video input
| on the monitor yourself, but since your monitor supports
| DDC/CI you could run the program to automatically send DDC/CI
| command when needed to the monitor to tell it to switch the
| active input to the one that is connected to the PC you told
| your 'USB switch' to make active?
|
| Now I got it, thanks!
| chromatin wrote:
| Came to make the same comment. Read it twice and am still in
| the dark.
| [deleted]
| VTimofeenko wrote:
| I presume USB switch refers to a USB hub with two "output" USB
| cables, one of which is active at a time. One can toggle the
| active by pressing a physical button on the switch. Use case:
| keyboard and mouse are plugged into the switch and you can
| quickly toggle them between two laptops without messing with
| the cables.
| kenny11 wrote:
| Yes, this is exactly what it is. Basically a KVM switch
| without the V. I've been using the display-switch software
| for months and it's fantastic. Using the inputs on the
| monitors to do the video switching instead of an external KVM
| switch means that you don't have to worry about finding a KVM
| switch that can handle the signal bandwidth required (in my
| case, three 4K60 HDR DisplayPort monitors, which is not a use
| case for which most KVM switches are designed).
|
| This is the USB switch I use with it:
| https://www.iogear.com/product/GUS402/
| nkrisc wrote:
| When you use a switching USB hub to switch your USB peripherals
| from one device to another, it detects the change and uses DDC
| to also change your monitor's input setting.
|
| It needs to run on each computer in the setup since it watches
| for the USB devices to connect.
|
| https://duckduckgo.com/?q=usb+switch
| artemisbot wrote:
| If you actually sat and read it, you'd see that it's a piece of
| software that sits on each device connected to the USB switch
| and detects the USB disconnect/reconnect events which trigger
| when the USB switch is triggered and uses them to detect that
| the device should try to take control of the display devices.
| numpad0 wrote:
| The "$30 switch" part lead me into thinking it'll be about
| controlling some specific hardware in undocumented ways.
|
| A project about cooperatively switching display inputs to get
| rid of a video switcher should say so in the title.
| R0b0t1 wrote:
| Not being able to figure out what it does is reasonable if
| they have no idea what KVM or a USB switch is.
| tdeck wrote:
| I sat and read it and I had the same confusion. I've used a
| KVM before, but never knew that was some version of a KVM
| without the "V" called a USB switch. It seems like that
| peripheral must be less common than both USB hubs and real
| KVMs.
| yesenadam wrote:
| > If you actually sat and read it, you'd see that
|
| Without this phrase, your comment would be far friendlier and
| also not break the HN guidelines.
| ctoth wrote:
| The first result for USB switch on amazon[0] is the
| descriptively-titled USB 3.0 Switcher Selector 2 Computers
| Sharing 4 USB Devices KVM Switch Hub Adapter for Keyboard Mouse
| Printer Scanner U-Disk, Hard Drives, Headsets, KVM Console Box
| Compatible with Mac/Windows/Linux.
|
| This device switches your keyboards and mice and so on between
| two computers. The software in OP reacts to these events and
| switches monitor inputs using some equivalent of HDMI CEC
| called DDC/CI.
|
| [0]: https://smile.amazon.com/Switcher-Selector-Computers-
| Keyboar...
| rektide wrote:
| > _The project 's description is shit._
|
| I dunno man, this worked pretty ok for me:
|
| > _This utility watches for USB device connect /disconnect
| events and switches monitor inputs via DDC/CI._
|
| And then a couple lines latter, a sample config that makes it
| pretty obvious how simple this goes:
|
| > _usb_device = "1050:0407" \ on_usb_connect = "Hdmi1" \
| on_usb_disconnect = "Hdmi2"_
|
| Plug in a device & switches to hdmi1. Unplug & it switches to
| hdmi2. A USB switch is optional, one could just move where they
| plug their mouse into by hand, for example. But you don't seem
| to be interested in helping fill yourself in on anything here,
| on learning, on using search engines to find anything out.
| Honestly filling in the neophyte knowledge like that is not
| what project descriptions are for, in my book.
|
| Generally, dude: relax, chill out. Most everything on this
| planet could use better description. But this seemed pretty
| clear & simple to me, at least. I think it'll work for a lot a
| lot of people as is. No need to be aggressively rude. Have you
| ever dealt with any kind of soft-kvm like technology before?
| Perhaps people would more self-select into this kind of
| project, versus rando's walking in on the street. I think
| that's ok.
| tambourine_man wrote:
| I didn't get it at first either. You need a DDC/CI enabled
| monitor, which means it can switch input via software. Plug one
| input on each computer.
|
| The USB switch button will send a connect/disconnect event to
| both computers and they will then react accordingly.
| BoorishBears wrote:
| The button doesn't actually send an event
|
| I wrote a similar program, you just listen for something
| connected to the hub disappearing if mouse no
| longer connected: tell monitor to switch output
| via DDC else if mouse now connected:
| tell monitor to switch back via DDC
| Cymen wrote:
| So here is how it works: The program runs on each computer. You
| plug your USB devices (presumably, a keyboard and a mouse) into
| a USB switch and then plug that into each computer. Then you
| plug each computer into each monitor (so you're limited by the
| minimum total number of inputs on the monitor(s) for how many
| computers you can switch).
|
| When you press the button on the USB switch to go to another
| PC, the software detects this and sends data commands over the
| monitor connection (using DDC standard) to trigger the monitors
| to switch inputs. You can use this same data communications
| standard to do things like adjust the brightness of your
| display. For example, I have these setup on my Mac to adjust
| the brightness of my two attached displays (complexity
| increased with multiple displays and desire for each to change
| at same time, simpler commands with a single display):
|
| alias day="seq 3 | xargs -n 1 -P 3 sh -c 'ddcctl -d \$1 -b 80'
| sh" alias evening="seq 3 | xargs -n 1 -P 3 sh -c 'ddcctl -d \$1
| -b 32' sh" alias night="seq 3 | xargs -n 1 -P 3 sh -c 'ddcctl
| -d \$1 -b 10' sh"
|
| Does that make sense? As mentioned earlier, you're limited by
| the minimum number of inputs on the monitor(s) and/or the
| minimum number of computers the USB switch can be connected to.
| The simplicity of this system is that the display connections
| do not go through any switching layer and are instead directly
| connected to the computers (which avoids a number of
| compatibility issues).
|
| I should be clear that I haven't used this yet but I'm going to
| try it. The Acer monitors I'm using have two HDMI ports and 1
| DisplayPort so I can in practice attach 3 computers assuming I
| buy a USB switch which can connect to 3 or more computers.
| useto075 wrote:
| Great description, thanks.
| intrepidhero wrote:
| Neat! Similarly, I've been using ddcutil on Linux and a stupid
| python script on Windows to switch video inputs. Janky as it is,
| it's more reliable than any KVM I've ever used, and I've tested
| quite a few.
|
| Now for my 2022 project I want to build one those promicro/QMK
| based custom keyboards with a direct I2c connection to my monitor
| and control it via hot keys. Eventually I'd add promicros for
| each computer all talking I2c and the keyboard is smart enough to
| forward keypresses to the active computer. That's my idea anyway.
| mfwit wrote:
| Very interested in your QMK approach!
| stutteringsteve wrote:
| Can anyone concisely explain how this hack works, as if one were
| to introduce it to a five year old?
|
| I'm having a hard time understanding how a USB switch can
| manipulate a monitor, directly or indirectly, to behave as an
| alternative to a KVM switch. The project README fails to provide
| practical examples and detail this hack in the simplest way
| possible. I'd love to have this solution working for a personal
| homelab, as prices for KVM switches are too high to financially
| bear.
|
| If I get this solution working, I will contribute back to the
| README to address this issue.
|
| UPDATE: Never mind! I found a relevant thread:
| https://news.ycombinator.com/item?id=29609573
| alanfranz wrote:
| PSA: if you look in many shops, you can find a number of cheap
| usb switches and a number of cheap HDMI switches. Buying those
| two pieces will save money if compared to an integrated kvm
| switch.
| Tempest1981 wrote:
| Any recommendations for a good 27" 4k display that supports DDC?
| ta988 wrote:
| I never had any ddc issue with DELL monitors (with my
| experience of 5 different models).
| quercusa wrote:
| I've got a P2715Q - great monitor and apparently full DDC
| support.
| JustSomeNobody wrote:
| Interesting. My current set up is a usb switch and an hdmi
| switch, so two buttons to push.
| Rebelgecko wrote:
| I have a similar setup, but unfortunately I'm stuck with it
| because my Acer monitor doesn't support the necessary DDC
| commands
| fiddyschmitt wrote:
| If you'd like to use a GUI, I wrote SimpleKVM:
|
| https://github.com/fiddyschmitt/SimpleKVM
|
| The GUI makes things (hopefully) a little easier to set up.
|
| It was inspired by Haimgel's project.
|
| It's nice to be able to run the monitor at native resolution and
| refresh rate, without paying hundreds for a KVM.
| ranger_danger wrote:
| Fair warning to others, this project has no license, is Windows
| only and also requires an external closed-source/proprietary
| binary that is included in the repo.
| mritun wrote:
| PSA: Many 4K Dell monitors (like my Dell UltraSharp U3219Q ) have
| a built-in KVM switch and they support full DDC commands for
| switching the input as well (over HDMI, DP and USBC). I can
| control them from Mac and Linux with hot keys that trigger the
| appropriate ddc commands.
| ranma42 wrote:
| I wish I could search for this feature in online shops
| parameterized search.
| runjake wrote:
| _record scratch_
|
| Whoah. How do I obtain these ddc commands on macOS?
| [deleted]
| Nextgrid wrote:
| https://github.com/MonitorControl/MonitorControl for example,
| though I'm sure there are others.
| blop wrote:
| Wow! Thanks for that comment, I have a Dell U3818DW with a KVM
| switch and I didn't know you could control it with DDC
| commands!
|
| So for linux (e.g. fedora): dnf install ddcutil
| ddcutil capabilities -d 1 # show the available commands
| ddcutil setvcp 60 0x11 # for example switch to HDMI 1
| # assign a global shortcut key to the `ddcutil setvcp` command
| you need
|
| And for windows: - download the "Dell Display
| Manager" software from their support site - assign a
| shortcut key in the Dell Display Manager: "Input Manager" tab
| => "Favourite Input Shortcut Key"
|
| I used the same shortcut (Ctrl-Alt-ScrollLock) for both
| linux(kde)/windows
| tjoff wrote:
| Well, 4K is not exactly a requirement. And while most older
| don't have the ability to swithc USB my U2415 displays
| (released in 2014) supports switching input over DDC. And
| honestly, I'd expect any half-decent display sold in the last
| decade to support it as well. But I could be very wrong. The
| samsung and AOC display I have connected at work also supports
| them and the samsung is quite old. For USB though I have to
| press a button. Or use the excellent virtualhere software for
| connecting USB over the network (that I could easily script to
| switch over usb as well).
|
| I have a short script that will allow me to change input on a
| specific display. Very handy. However please note, that while
| this does work for HDMI, DVI and Displayport only DVI/HDMI
| seems to have an active connection when another input has been
| selected.
|
| That means that while I can switch to another input I can not
| switch back from the same computer but must install something
| on the other machine to give it back. This is of course exactly
| what the linked article is doing, but with HDMI/DVI I don't
| have to have that requirement. And on top of that, operating
| systems in general seem to believe that, when using
| displayport, switching to another input is equivalent to
| disconnecting the display altogether and thus remove it and
| rearrange windows etc. Insanely frustrating.
|
| Again, no problem with HDMI/DVI. So although Displayport is a
| much better interface and I've been a strong advocate for it,
| these issues makes me hate it with passion.
|
| DDC can also be used to change display brightness, which in my
| opinion is way too cumbersome to do manually (especially if you
| have more than one display).
| jsymolon wrote:
| Sweet ! :~$ sudo ddcutil detect Invalid
| display I2C bus: /dev/i2c-1 EDID
| synopsis: Mfg id: AUO Model:
| Serial number: Manufacture year: 2009 EDID
| version: 1.3 DDC communication failed This
| appears to be a laptop display. Laptop displays do not support
| DDC/CI. Display 1 I2C bus: /dev/i2c-2
| EDID synopsis: Mfg id: DEL Model:
| DELL U2415 Serial number: CFV9N94S0Y2S
| Manufacture year: 2019 EDID version: 1.3
| VCP version: 2.1
| bmitc wrote:
| However, they're currently unobtanium. I've been wanting one to
| solve my working from home problem to allow me switch computers
| with the same setup.
| runjake wrote:
| Which is unobtanium? I just ordered a Dell 4K from Amazon
| about 5 days ago and it got here in 3 days.
| bmitc wrote:
| The one specifically mentioned...
|
| As well as Dell's 40" ultrawide, that also has the built-in
| KVM (there are not that many models that have the built-in
| KVM).
| mehrdada wrote:
| Lenovo T32p-20 is also pretty good and not only obtainable (I
| obtained three just a couple days ago), but currently
| available at a discount.
| bmitc wrote:
| I'm not sure why people are responding telling me that
| random monitors are available. Do they have built-in KVMs?
| If not, they aren't what I'm looking for.
| MegaDeKay wrote:
| I have a shortcut on my Linux desktop to switch my Dell U3818DW
| display to its HDMI input where a second graphics card passed
| through to Windows is running on as a KVM guest.
| #!/bin/bash ddcutil setvcp 60 0x11
|
| On my Windows guest desktop, I set up a shortcut for Dell
| Display manager to switch back to my Linux host and primary
| graphics card on my display's DisplayPort input
| "C:\Program Files (x86)\Dell\Dell Display Manager\ddm.exe"
| SetActiveInput DP
|
| Trivial to set up and works great.
| lardo wrote:
| I control my monitor from a pi zero hooked up to a cheap vga/usb
| switch. If your monitor supports ddc/ci, ddcutil makes
| communicating over hdmi dead simple. The button from the usb
| switch, as well as a wire from the switch's chopped off vga cable
| is fed into gpio, as is a 4x4 input pad I use to control it from.
| Pressing D on the pad toggles displays and triggers the USB
| switch, A50# sets the volume to 50%, B50# brightness to 50%.
|
| The big downside is that switching inputs on my monitor takes ~5
| seconds where a proper kvm would be instant.
| amelius wrote:
| > The big downside is that switching inputs on my monitor takes
| ~5 seconds where a proper kvm would be instant.
|
| This is something the industry should address. It's ridiculous.
| cowtongue wrote:
| An alternative approach that I've taken is to have the HDMIs from
| my work desktop plugged into a capture card on my main Windows
| desktop. I then use the preview from OBS to see the display and
| also hear the audio. Still need a separate keyboard + mouse, but
| I like being able to move/minimize my work OBS window off to the
| side when I'm not actively working.
|
| I also use this setup with gaming consoles so that I don't have
| to dedicate an entire monitor.
|
| https://github.com/obsproject/obs-studio
| bmurphy1976 wrote:
| How's the latency?
| cowtongue wrote:
| I don't notice it when using it for work. I barely notice it
| when using it for console games. Probably wouldn't want to
| use it for competitive shooters, but non-issue for most other
| games.
|
| Few more notes:
|
| - I use PCIE rather than USB for the capture card
|
| - Can be costly if you need 4k + multiple inputs (for
| multiple "monitors" as different OBS windows)
|
| - I had issues getting the capture card to recognize scaled
| HiDPI resolutions from my work Mac
| [deleted]
| crtasm wrote:
| You can do this without a capture card using
| https://ndi.tv/tools/ - other clients on your LAN can view
| in OBS or with the included program. I'm yet to try it with
| 4k.
|
| No help with consoles of course, and perhaps not an option
| for a work machine.
|
| edit: feature list also mentions "KVM remote control of any
| workstation running Scan Converter from NDI Studio Monitor"
| gbraad wrote:
| I use NDI a lot, but with a phone as webcam, or from obs
| to obs, scan converter, audio stream between devices like
| ipad/iphone/Android to desktop... But it is demanding to
| encode this way. HDMI capture does only use bandwidth
| over the USB or pcie bus, while ndi uses cpu or gpu.
| crtasm wrote:
| It's not at all demanding on my RTX2060 but I'm only
| doing 1080p 60fps - don't know how other
| cards/resolutions/framerates compare.
| tekknik wrote:
| HDMI capture cards can definitely use CPU, and this is
| the case for most USB capture cards as USB does not have
| enough bandwidth to send an entire raw stream in
| realtime.
| gsich wrote:
| Yes, it's MJPEG for the cheap ones.
| gbraad wrote:
| You have hardware devices for ndi, but they ain't cheap!
| gbraad wrote:
| I wrote a very simple html5 webapp which does this
| http://webcam.apps.gbraad.nl never got around to mute the audio
| or so, but patches welcome!
|
| I use two capture cards and them on th bottom monitors when
| needed (use 4 screens). This way I can also easily stream and
| records the screens when on a meeting that is on another
| machine.
| ranger_danger wrote:
| You could use synergy to keep the same keyboard and mouse.
| bob1122 wrote:
| I love this!
| nkrisc wrote:
| Speaking from experience, download a program that can show what
| DDC commands your monitor supports before you bother. Mine
| supports many except... switching inputs (0x60 if I recall).
|
| Documentation for most consumer monitors is pretty lacking in
| this regard, it seems to be a feature mostly on monitors targeted
| to the professional market.
| zeusk wrote:
| Do you know of any such programs? I've been wanting to
| experiment with DDC but like you said, monitor support is
| sporadic and tooling isn't well known
| nkrisc wrote:
| Another commenter mentioned ddcutil which had forgotten about
| but did use. In my case I used it in a MacBook (Computer #1)
| and used a different GUI program I can't remember the name of
| on my v windows machine (Computer #2).
| KMnO4 wrote:
| In my case (Samsung), only HDMI supports 0x60 to switch input.
| DisplayPort had DDC support for many things but strangely
| switching inputs does not work.
| rektide wrote:
| I was pretty shocked that most of the ddcutil & other similar
| programs on Linux weren't working for two of my monitors. The
| utils couldn't even detect the DDC display. But I told it what
| i2c bus to send to & what commands to issue, and it turns out
| my monitors had a pretty wide range of commands.
|
| Reminds me of an i2c motor controller I bought years ago, based
| off some avr microcontroller. I spent an afternoon trying to
| understand how I'd hooked things up wrong, trying to understand
| why I couldn't read the control values. Turns the soft i2c
| interface just didn't implement reading values off the
| controller at all, but served ok if I treated it as a write-
| only device. Frustrating tricky devices. Sometimes they lie.
|
| But yeah, also a >15% chance your monitor doesn't support
| switching inputs via DDC/CI. Would be so nice if review sites
| would cover this sort of thing. As it is, it's just a tech-
| secret, something invisible to the market, no push to include
| it, no points deducted for getting it wrong/bad. It leaves a
| lot of room for the situation to sit & not improve. Better
| reviewing would help move things along.
| nkrisc wrote:
| I couldn't even find any documentation for my monitor.
| ddcutil worked great for everything it _did_ support, just
| not the one thing I actually cared about.
| alufers wrote:
| Sometimes it also the availability of commands depends on the
| cable/adapter used. If I connect my monitor directly via HDMI
| to my laptop I can send all the DDC commands I want, but when
| I use an USB-C -> DisplayPort cable ddcutil couldn't event
| detect the monitor. Sadly I must use this cable, because it's
| the only way I can get 4K@60FPS.
| mschuster91 wrote:
| Probably that cable contains a set of EDID chips to fool
| your laptop and the monitor - and as EDID works over DDC,
| obviously no DDC commands will pass.
| ComputerGuru wrote:
| Is that USB-C or thunderbolt over USB-C? One is an entire
| graphics card and the other is just a muxer.
| alufers wrote:
| No idea really (that's the problem with usb-c stuff), it
| didn't say thunderbolt anywhere and it was cheap, so I
| suppose it's just usb-c.
| coryrc wrote:
| If you want to hack, you should be able to connect to the
| i2c directly on the monitor end.
| alufers wrote:
| I connected a Raspberry Pi I keep under the desk as a
| server via HDMI and I could easily issue commands. Wanted
| to write a deamon that translates MQTT -> DDC, but never
| got to that and I removed the cable last time i needed it
| for something else.
| zbrozek wrote:
| Before we get that deep down on monitor tech, I want review
| sites to tell me whether I can use the
| monitor/tablet/phone/laptop with sunglasses.
| nkrisc wrote:
| That's more about whether your sunglasses are polarized.
| octagons wrote:
| I have addressed this problem by using a 4x4 USB switcher from
| Rosewill and an HDMI matrix, such as those used by broadcasting
| or A/V signage industries. I started with an 8x8 matrix and now
| have a 16x16. It's dead simple to give each of the 4 or so
| computers I have hooked up to them 3 or so monitors, and I can
| swap any video source to any sink using a web interface. The
| matrix isn't cheap (approximately $1200) but after using it for
| around 4 years, I honestly couldn't think of using my workstation
| any other way.
| ur-whale wrote:
| >HDMI matrix
|
| Would you care to post the brand and serial for the matrix?
| adanto6840 wrote:
| Does it support 4k@60? Can you configure EDID handling, or any
| potential HDCP issues (and stuff like HDR, ethernet-over-HDMI,
| etc)? Would be curious what make/model of matrix you're using.
|
| There's plenty of different hardware out there but not a whole
| lot of reviews; and my experience with the HDMI interface has,
| on the whole, not been the best. HDMI is great for consumer
| stuff, and for plugging in a generic source to a screen
| (AppleTV, Firestick, Xbox, cable box, etc) -- but, as soon as
| you want to do anything even _slightly_ more advanced, you
| often run into hiccups quite rapidly (EDID &
| handshake/negotiation issues, cable & port quality, HDCP, etc).
|
| I have several 'screens' (TVs) and I wanted to be able to
| mirror my 'main' display to other screens on occasion, for
| instance. It's easy to do that with a cheap-ish "splitter"
| [though they are finnicky), but if you want to "scale" that at
| all then you rapidly run into proprietary and/or high-cost
| solutions or have to make substantial quality & capability
| concessions (and >=10G LAN connectivity is pre-existing).
|
| I was annoyed by the lack of good options & and the extreme
| prices and/or the limitations of the options that do exist --
| enough so that I'm working on (and already actively using) my
| own IP-based "video distribution" solution, heh.
| mmastrac wrote:
| I bought a fantastic curved Samsung monitor and it supports
| reading from the port that tells you the current input but not
| setting it. It also has the worst possible input switcher that
| cycles until it finds a valid input.
|
| I wish it were easier to hack on monitor firmware. I'd love to
| improve it.
| 3np wrote:
| The least-horrible (but still not great) monitor firmwares I
| had so far were Eizo, followed by Dell.
|
| I will never buy Samsung or LG again - the displays themselves
| were great but the UI/UX for switching inputs and brightness
| etc are simply too excruciating.
| causi wrote:
| It's quite infuriating when you have a display that changes
| input if it's not receiving and a source that switches off
| unless it's told the display is showing. You end up having to
| play a timing game to get both devices on at the same time
| before one of them turns off or changes.
| xcambar wrote:
| I cannot guarantee I'd react quietly nor patiently should I
| be confronted to this.
|
| I cannot guarantee that. At. All.
| freen wrote:
| I'll never buy anything from Samsung again. The software on
| their otherwise delightful hardware is absolute crap.
| Damogran6 wrote:
| Or their dryers...or their dishwashers...I hear their phones
| are okay...It sucks when a multinational conglomerate has a
| sketchy quality issue.
| 3np wrote:
| The phones are terrible too, these days. I bricked a phone
| and lost access to all data on it _by trying to back it
| up_. Every Galaxy generation has gotten worse and worse in
| terms of preinstalled malware that takes a lot of effort
| and care to disable (if possible at all).
|
| The only thing I would still buy from Samsung these days is
| storage devices.
| PeterisP wrote:
| Their phones are yet another example of good hardware
| crippled by stupid software - not even low quality, but
| with bad intentional choices.
| joombaga wrote:
| Their laser printers are great in my experience.
| alin23 wrote:
| Lunar (https://lunar.fyi) supports up to 3 hotkeys to switch
| input using DDC.
|
| Also the functionality is completely free, the Pro license isn't
| needed if you only switch inputs and occasionally adjust
| brightness or volume.
|
| This might be a more comfortable solution if your monitor allows
| input switching through DDC.
|
| https://static.lunar.fyi/img/input-key/1920_input-key.png
| yalok wrote:
| Lunar worked great for me on MacBook Pro 2020 (2 monitors, one
| connected over USB-C to USB-C cable, another one over USB-C to
| DisplayPort), but doesn't work on for the same monitors
| connected to MacPro via 2 HDMI cables...
|
| Any idea why?
| alin23 wrote:
| The HDMI port on most recent Mac devices uses a converter
| chip inside to convert the signal to DisplayPort internally.
| That chip has DDC/CI blocked in its firmware and there's no
| way to enable it.
| walrus01 wrote:
| from a purely software perspective and sort of the inverse of
| this, everyone should be aware of barrier, the fork/continuation
| of synergy
|
| https://github.com/debauchee/barrier
|
| the general concept is you could have 2, 3, 4 or more individual
| desktop PCs at one desk, each connected to their own displays,
| and one keyboard and one mouse. The keyboard and mouse are on the
| primary workstation, you can roll the mouse off the edge of one
| screen and onto another.
|
| The secondary and tertiary workstation PCs have no keyboard/mouse
| i/o plugged into them, just power, ethernet and display.
| nyanpasu64 wrote:
| I'm still waiting for
| https://github.com/debauchee/barrier/issues/567 to get fixed.
| Right now, Barrier (and possibly Synergy) creates zombie
| processes and leaks handles on Windows, causing the kernel to
| burn CPU trying to free up memory.
| walrus01 wrote:
| that's unfortunate, I can't say that I've ever tried it in a
| windows environment
| thanatos519 wrote:
| I still use x2x. Last time I used Synergy it was laggy and
| overcomplicated, but I might give barrier a try.
| pabs3 wrote:
| The active barrier maintainers have moved to working on a fork
| called input-leap:
|
| https://github.com/input-leap/input-leap/issues/1414
| johnwalkr wrote:
| I use this and it works very well. I also want to add that it
| shares the clipboard across all of the PCs. In fact I can even
| copy from my iPhone and paste into a windows PC, via my
| MacBook.
|
| I also have a few PCs and use the input selection on my monitor
| to achieve the KVM aspect. The only issue I found is that if no
| monitor is actively connected to a windows machine, barrier
| server doesn't work well, and also you can't Remote Desktop to
| it. I solved both of these by adding a dummy HDMI dongle, set
| to a low resolution so application windows can't get stuck
| there.
|
| Not a perfect solution but the best I've found since my goals
| were: to use a Bluetooth keyboard and mouse, and not worry
| about limitations to refresh rate, etc.
| ianjsikes wrote:
| Barrier is almost perfect for my use, with one big flaw. It has
| no concept of individual displays. For most setups, it probably
| isn't a big deal. For me, I am back to a hardware KVM.
| edgan wrote:
| Please explain. Individual displays doesn't tell me enough.
| firecall wrote:
| I can never get this to work!
|
| Installed on macOS 12.1 and Windows 10 or 11, and nothing
| happens!
|
| It sees the client and server just fine. But never moves over!
|
| Maybe I should the try the paid Synergy!
|
| The Logitech solution has the lag when you bang against the
| side of the screen, and thats no good! :-)
| stonewareslord wrote:
| You have to configure the server by adding the clients screen
| to the left/right of yours. Also, I always use IP Address of
| the server on the client.
| scruple wrote:
| I've been a happy synergy customer for about a decade now, I
| suppose but I didn't know about barrier. Thanks!
| kuon wrote:
| I use a similar setup with a hotkey, but the downside is that my
| monitors take about 5 seconds to switch, which in my case is a
| serious slow down.
|
| I do not know if other monitors would be faster. I looked at KVM
| that support high resolution, but they are insanely expensive and
| I am not even sure they would not introduce any latency.
| 55873445216111 wrote:
| display-switch has saved me so much time and has been so useful
| during work from home. thank you to the author.
| Waterluvian wrote:
| Won't this have a painfully long delay as the monitor negotiates
| the different input port?
|
| Not only does every monitor I've owned take seconds to do this,
| it often screws with the desktop layout and such when display
| devices seemingly come and go. Or am I misunderstanding this?
| gsich wrote:
| No, all monitors I have used are connected (as in the OS sees
| the monitor) even if not the current active input.
| amelius wrote:
| > the app only switches monitors "one way" and relies on itself
| running on the other computers to switch it "the other way" as
| needed.
|
| Too bad, I often need a KVM switch exactly when I'm installing a
| new OS on an embedded system (and from that point on I don't need
| the switch because I can just use the network to log in and
| install software).
|
| So this solution doesn't work for me at precisely the moment I
| need it.
| R0b0t1 wrote:
| Most have an autosetup that can get you to a shell via ssh,
| worth looking into.
|
| It also seems like you can switch from any computer currently
| connected. Have your normal computer switch to the other
| computer's input.
| carlhjerpe wrote:
| The protocol runs over the USB cable to your monitor, so
| whichever monitor has that cable plugged will be able to send
| the commands.
|
| I'm using this command
|
| sudo virsh start win10;sudo ddcutil -d 1 setvcp 0x60 0x03
|
| To start Windows and change display input to DVI, which is the
| GPU for my Windows VM.
|
| Changing back can be done either by powering the VM down or
| running the command
|
| sudo ddcutil -d 1 setvcp 0x60 0x0F
| 55873445216111 wrote:
| Not true. I run display-switch on only one of my two computers
| and the monitor switches back and forth with my USB switch.
___________________________________________________________________
(page generated 2021-12-19 23:02 UTC)