On my Laptop the names of my graphical outputs change depending on what chip is activated in the BIOS. This leads to problems in some scripts where outputs such as VGA-0 or LVDS-0 are specified. So I want to rename the graphical outputs, similar to how you can specify persistent names for network devices with udev.

But I can't find anything that would explain how or if this is even possible at all.

In /sys I could find kernel names such as as:


while xrandr reports the names as DVI1 and VGA1. So they have to be renamed somewhere(?) When I call udevadm info on one of those devices I get a lot of information but not the names used by xrandr and other X tools.

So is it possible to create a udev rule to rename the outputs and if so how? Are the names even set by udev?

  • Wouldn't be easier to use xrandr in the first place? I mean parse it's output to get the names you need rather than hard coding them into your scripts. This sounds like an XY problem. What do your scripts do? – terdon Oct 5 '13 at 23:26
  • Maybe I should have elaborated some more (or less). The outputs are not actually specified inside a script but in a config file for my window manager (i3). There might be some other way, I'm actually pretty sure there is. But I still want to know if the outputs can be renamed or not. – ifschleife Oct 6 '13 at 17:04
  • Have you found a clean way to solve this yet? – Marcin Kaminski Mar 15 '16 at 23:36

The name of the output is set by the graphics card driver. This is then passed through X to xrandr. I believe they base it on the kernel device name but there is no standard scheme that is used.

thinkwiki documents some of the variations.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.