I know that I can boot into Windows and start a specific program instead of explorer.exe. What I'd like to do is optionally boot into Windows with a different shell based on a selection I make in grub. Is this possible?

I'm dual-booting Windows and Linux, and I'd like to have an additional menu item in Grub that lets me boot into Windows and automatically start Steam in Big Picture mode without preventing me to boot into windows with the standard explorer.exe shell. SteamOS is not an option since several of my games are Windows only.

Is this at all possible?

  • a Grub option would still require user intervention. If you default to auto-launch big picture mode (autorun via registry or via start menu), the amount of user intervention to close or minimize steam is about the same. This also prevents a whole cascade of potential problems: steam as a shell won't/may not load the user-mode portions of driver packages (hotkeys etc) , some bootcamp stuff, – Yorik Nov 22 '16 at 17:47
  • @Yorik Yeah, I understand this is might be a harebrained idea. I just have an HDMI port connected to my television in another room, and when friends are over I'd like to be able to load up Steam without having to mess around with a mouse and keyboard. I figure I can try to bootstrap anything with an intermediate batch script if necessary. – Ian Hunter Nov 25 '16 at 1:04
  • You would only need to close it if you are at your desk, otherwise it loads right to big picture mode. Make a steam shortcut in the startup folder ( superuser.com/questions/489777 ). Again, replacing the shell will make some things not work without manually loading them ( such as via HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon ) – Yorik Nov 29 '16 at 15:39
  • 1
    Before you change the shell, make a "non-steam game" entry for explorer.exe just so you can get to it easily. – Yorik Nov 29 '16 at 15:40
  • Thanks, @Yorik. Alternatively, I've noticed that CTRL-ALT-DELETE still functions as expected, so I can just spawn the task manager and start the explorer.exe process from there. Fortunately, 99% of the time I use Windows it's for Steam, so just changing the shell has ended up working perfectly for me. – Ian Hunter Nov 29 '16 at 16:05

I don't know if this qualifies as answer or not but userinit.exe checks Current User's Shell before turning to Shell value in HKLM. Thus, each user can have their own Shell. So, you can create a new user and go to this registry key (make sure you are logged in as that user):

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

(Note that the key is in HKCU not HKLM)

You most probably won't find a registry entry named Shell there, so just right click on Winlogon, go to New and click on String Value. Name this new entry Shell and enter value as cmd.exe (just an example, replace it with the application you want to start).

This will start the specified program instead of explorer.exe whenever you log in as that user. So, without having extra boot entry, you can have both Windows Explorer and Steam as your Shell in two different users.

| improve this answer | |
  • Excellent. I'll take a look at this. Thanks! Do you know if there is a way to auto-login to a specific user based on the presence or absence of hardware, like when a specific HDMI port is being used? – Ian Hunter Nov 25 '16 at 1:08
  • Sorry but I don't know any method to achieve this kind of autologon. I know simple autologons are possible, good utility for it is Autoruns, but conditional autoruns are not possible. – PrashantKumar96 Nov 25 '16 at 12:58

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.