Add website links to Windows 10 Start Menu

The web is used more then ever before. This probably comes at no surprise. Cloud-based web applications are very much here to stay and will probably continue to grow. The ability for a company to develop a product on multiple platforms whilst (at the same time) keeping great cross-platform compatibility is a major benefit to this.
Removing the need to maintain new versions of the same software between different operating systems nativley gives users a better overall experience.

I like to use Google Keep; a web-app that allows you to jot down notes. I could use OneNote, however since I am deep in the GSuite eco-system, it makes sense to keep everything in one place. There isn’t a local application available that is native to Windows 10 and using bookmarks within the browser is a bit clunky (if you have many, like me).

I embarked on a mission to answer the following question:

How can I launch a web-app from the Start menu, whilst taking advantages of the UI experience (search and menu items) that comes with native Windows 10 apps?

The answer isn’t as conventional as I first thought.

Please note: Anything specified in this guide is followed at your own risk. I am not responsible should your computer break by any of these steps. If you are unsure about something, use your favourate Search engine and do some research!

General info that I have realised through experimentation:

  1. Windows 10 Start Menu does not play nice with Windows’ Internet Shortcuts . (This applies to shortcuts with the .URL extension). If you add an Internet Shortcut (.URL) to the Start Menu – Programs folder, you can expect nothing for your efforts. Yes that’s right, nothing!
  2. Choose your browser wisely! The methods for Edge and Chrome browsers are application specific and will only open the URL in the original browser.

Chrome

Limitations:
Will only open in Chrome
You can use Windows Search to get the item. You can also pin the item to your start menu as a tile.

  1. Open Chrome and go to the website
  2. In Chrome, click the Menu (elipses) > More Tools > Create Shortcut
  3. Name the shortcut accordingly and then click Create
  4. You can safely delete the shortcut from your Desktop (if you wish)
  5. The shortcut will be placed in your start menu automatically : Start > Chrome Apps.
    You can also: Rightclick > Pin To Start (if you wish)

Edge

Limitations:
Inability to search using Windows Search tool
Will only open in Edge

  1. Open Edge and navigate to your web page
  2. In edge, click the Menu (elipsis) > More Tools > Pin this page to Start

Firefox and Other

Limitations:
This is more complicated and involved
You will not get icons (without downloading and setting custom Icons)

  1. In Desktop, Rightclick > Create New Shortcut. Type “cmd” as the location. Click Next
  2. Name the shortcut “Google” (for this example) and click Finish
  3. Go to the properties for the link (Rightclick > Properties)
    Under the Shortcut tab, change the Run dropdown menu to select “Minimised
  4. Under Shortcut tab, append the following to Target (after C:\Windows\System32\cmd.exe):
    /c START https://www.google.com
    Target should now look like this:
    C:\Windows\System32\cmd.exe /c START https://www.google.com
    Breakdown:
    /c – runs the following string as a command.
    START – runs the following command
    <URL> – the url to run
  5. Next, you will need to move the shortcut to your Start Menu – Programs folder
    Navigate to C:\Users\<YOUR_USER>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
    You can also get to it by Start > Run > shell:programs
  6. Move the new shortcut to the Start Menu – Programs folder. You can now search for the site and Rightclick > Pin To Start if you wish.

Conclusion

All in all, there are noticable differences between the 3 browsers and how they integrate with Windows. For me, Chrome gives the most seamless experience to get the desired result. Being able to quickly search for a web-app and open it up from the Windows UI will allow you to be more productive.
I am surprised at how limited Edge is, since it is Microsoft’s own flagship browser afterall.

Add a “New file” to the Windows 10 Context Menu

Have you ever thought that life would be made easier and more productive if you had a quick way of creating a file at your fingertips?

Windows has always been very picky about file extensions, and non-standard Microsoft file types can be a pain to create quickly, but there’s a neat trick to add these to the “New” menu.

First you need to open up the Windows Registry Editor application and expand HKEY_CLASSES_ROOT

Within this list, you will need to search for your desired file extension.

In my case, I want to add Python files to the Context Menu. I will need to find a folder in this list named .py as this is the file extension used for python files.

Similarly, if you wanted to quickly create a new html file, you would look for .html

You will need to add a new Key named : ShellNew.
Right click on your desired file extension and click New -> Key.
Name it : ShellNew

You should now see a new “Folder” called ShellNew:

The last step will be to add a new String Value to the ShellNew key, named NullFile.
Right Click on ShellNew : New -> String Value

Name this : NullFile.
Your Registry Editor should now look something like this:

You can now check your Context Menu to see if your changes worked!

Enjoy your productivity!

Linux vs Windows: Python Virtualenv

Although Virtualenv is available on both Linux and Windows, there are some differences that you may find useful to understand.

Is there a difference to creating virtualenvs?

No, creating virtualenvs in Windows and Linux is exactly the same.

Can I use the same venv folder on both systems?

No. You will need to create 2 separate virtual environments. I suggest creating folders named winvenv and linvenv to tell them apart. You will have access to the same packages through pip, although you will need to use pip freeze if you wanted to replicate the packages exactly.

Do I activate the venvs in the same way?

No, but you CAN activate, and the differences are subtle. After creating the virtualenv, follow these steps:

Windows

\winvenv\Scripts> activate

Navigate to Scripts within the venv root. Type activate to use your venv in the current prompt

Linux

$ source linvenv/bin/activate

In the terminal, type source followed by the path to /bin/activate within the viretualenv folder

Windows, VS Code, Git and SSH Authentication with passphrases

Have you spent the past several hours frantically searching the web for a solution of integrating Git with VSCode? Are you tempted to remove passphrases from your SSH Key just to get around Permission denied (publickey) errors every time you try and clone a repo?

Yes, it is disappointing that there is no clear documentation for this.
Hopefully, this will fill the gap.

Pre-requisites

Windows 10
Git installed
VSCode installed
Created an SSH key using the Git terminal and is passphrase protected.
Added your SSH public key to your chosen Git Service.

Solution

Before starting VSCode, open up a new Windows CMD window.
Enter the command: start-ssh-agent and you will be prompted to provide the passphrase to your SSH Key.

cmd start-ssh-agent
start-ssh-agent

Now you will be able to open VSCode and clone into your repository.

Automation

If you wanted to automate start-ssh-agent and open VSCode at the same time, I have built a batch script that will do just this.

Open text editor and paste in the code below. Save file as VSCode_ssh-agent.bat

I decided to place this file in my Windows home directory. On the Desktop, I created a shortcut to the .bat file and set the icon to point to:

C:\Users\[USER]\AppData\Local\Programs\Microsoft VS Code\Code.exe

The final result:

  1. Check if SSH-AGENT is running.
    If not, start SSH-AGENT and ask for the passphrase for your key.
  2. Start VSCode

Slow/Laggy/Poor graphics performance: Linux Guest VirtualBox 6.0

I have spent many an hour trying to figure out why VirtualBox 6 has given me terrible graphical performance on Linux Guests. I’m going to give you a no-mess solution that just might save your sanity.

Within the Settings for Your Virtual Machine, navigate to the Display > Screen tab.
Under the Graphics Controller dropdown, select VMSVGA for your Linux guest.

Next, you will need to boot into the virtual machine and reinstall the VBOX Guest Additions for this to work (and cement it in with the obligatory reboot)

So you may be wondering why or when you might need to use this guide?
You may have upgraded to VB6 from VB5 or earlier and trying to use a pre-existing VM.
You may have installed VB6 for the first time, created and installed a new Linux guest VM and experienced graphical slowness.
You may have tried (mostly) every setting within VBOX and viewed every forum post on the internet regarding VB performance issues and have got no further.

Admittedly, I was incredibly close to giving up altogether with VBOX 6 and going back to VBOX 5 as I have been struggling with this since VBOX 6 release. Finally, I have my VM back =)