sudo rm - rf

@TimApple

Linux Geek and grumpy old guy. Working on a migrating the career to Coding

3,196 words

https://github.com/tdapple @oldvetcodes Thank Guestbook
You'll only receive email when sudo rm - rf publishes a new post

My Top Five FrontEnd VSCode Plugins

I have been using Microsofts Visusal Studio Code everyday for the past few months. I have installed it multiple times on Linux and Windows. There are five plugins I always install immediately. I thought I would share them here.

  • Remote-WSL - extension lets you use the Windows Subsystem for Linux (WSL) as your full-time development environment right from VS Code. If you haven't set up the subsystem, here are some instructions.
  • Front-end extension pack - This is actually a cluster of stuff in one bundle makes life much easier than searching each one out.
    • Preview Live Server
    • Browser Preview
    • IntelliSense for CSS class names in HTML
    • HTML CSS Support
    • Auto Rename Tag
    • Auto Close Tag
    • npm Intellisense
    • Path Intellisense
    • JavaScript (ES6) code snippets
    • Turbo Console Log
    • stylelint
    • ESLint
    • Prettier - JavaScript formatter
    • Beautify
    • EditorConfig for VS Code
    • Import Cost
    • Code Spell Checker
    • Debugger for Chrome
    • TypeScript Extension Package
    • Bracket Pair Colorizer
    • Git History (git log)
    • snippet-creator
  • Live Share Extension Pack* - This extension pack includes everything you need to start collaboratively editing and debugging in real time.
    • Live Share
    • Live Share Audio
    • Live Share Chat
    • Peacock
  • Gitlens - Supercharges the Git capabilities built into Visual Studio Code.
  • CSS Flexbox Cheatsheet - VS Code extension that lets you open a flexbox cheatsheet directly in the editor.

I haven't found a need to install anything else besides these and maybe I have tried a few themes.

Also note, you have to install them twice if your using WSL (Windows Subsystem for Linux).

Enjoy

Curating vs Consuming

We had a discussion in my cohort the other day. So what is the difference between someone who curates versus one who consumes?

First of all, the consumer. The consumer sucks everything in, reads about all the new tools, learns the newest tricks, and plays on the coolest new toys. They accomplish little, though they may learn quite a bit. There is a good chance not many people even know who they are beyond a twitter handle or a stripe account.

On the other hand, we have the curator. Like the consumer, they are learning and taking stuff in. But there is a difference. The curator stops consuming and shares what they have consumed with others. This could be simply by blogging about it or building something new with the acquired knowledge. There is a good chance we even know who they are, seen them around the web, or maybe heard others mention their name.

So why does this matter? It may not. But if you are looking to build a career, find that new gig, maybe you just want to be well known. Then be a curator. Get your name out there and let people understand you don't only know things, but you know how to put them in action and make use of them. This can go a long way when it comes interview time and the prospective employer has already stalked you on the internet. Let them know who you are before you tell them who you are.

Setting up a Linux Javascript Dev Environment on Windows

By default I am usually a Linux user. But recently I have started a cohort with Vets Who Code and we have some Windows users in there. Windows does a lot of things well, setting up development environments isn't always one of them. So I thought I would install Windows and see how close I can get to making it Linuxy and a little easier to manage for the average JavaScript dev. These are the steps I took, a lot of it came from this post from Burke Holland. And then some comes from me.

Getting Linux going on Windows.

You will need to be a Windows insider on the Fast ring for now to make all this happen. Just a note, the insider channels are beta software so do this at your own risk. You can read more about the Insider Program here.

After you are on your Insider build and all updated we have to get the Linux Subsystem for Windows (WSL) To turn on the Subsystem, press your Win key and start typing "features". You should see an option for "Turn Windows Features on or Off", select that and make sure "Windows Subsystem for Linux" and "Windows Virtual Machine Platform" are selected as shown.

Picture of Selection Window

Your going to have to reboot after this.

Next you can install your Linux distro if you haven't already. I recommend just going with "Ubuntu-18.04".

You can see a list of distros you have installed already by typing the following command.

wsl -l
You should see something like this ..

PS C:\Users\timap> wsl -l
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)
kali-linux
openSUSE-Leap-15-1

Next we need to convert our existing installs to WLS 2. There are big performance differences between 1 and 2 so we want to be on 2, this we do with the following. I will use my Kali install as the example.

wsl --set-version kali-linux 2

Do this for each distro installed.

To avoid doing this every time we can set WSL 2 as our default using the command. This will make sure every distro install hereafter uses WSL 2 by default.

wsl --set-default-version 2

Finally if you want to verify your all set up you can run the following.

wsl -l -v

This will get you somthing similiar to this showing distros and the wsl version.

PS C:\Users\timap> wsl -l -v
  NAME                  STATE           VERSION
* Ubuntu-18.04          Stopped         2
  kali-linux            Running         2
  openSUSE-Leap-15-1    Stopped         2

Ok, Lets get a decent terminal!

This part is actually easy. Windows has made a pretty nice new Terminal, it's in beta, but as an insider it's in the store and you can install it. Just search "Windows Terminal" in the store.

Alt Text

We need to edit a few things to set our environment up. First we want our default profile when opening the terminal to be Linux. Open Terminal's settings by pressing the down arrow and selecting settings. This will open your config file.

Alt Text

To set the main profile to Linux we need to find our chosen profiles GUID and copy it into the default profile entry. Profiles will be found below the keyboard shortcuts and the default is all the way at the top.

Alt Text
Alt Text

(Close your terminal no if it isn't and open again. Make sure the Linux instance is running.)

Now we are going to install "Zsh". So, we can operate just fine in bash if you really want, but zsh has a plugin system and themeing which we make pretty good use of through the rest of the tutorial. With the following command in the Linux terminal we will get zsh installed.

sudo apt install zsh

After that we add oh-my-zsh which allows for some nice preset tweaks to the shell and makes some configuration easier. Install oh-my-zsh with the command below.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

And now we need to edit our zsh config. I will use nano for this from the command line. Open the config from the terminal with the command...

nano ~/.zshrc

First I change my theme to "cloud" you can explore more themes in the future with oh-my-zsh.

Alt Text

Now we will add the following two lines to the very bottom of the .zshrc

  • One is and alias that says, when I type "whome" it will goto my Windows home directory. You just have to change the "timap" part to whatever your user is.
  • Second is "cd" which makes it open it my Linux home directory by default every time the terminal session is open.

Alt Text

Press ctrl-o to save your changes in nano.
Press ctrl+x to exit nano.

Then for this and any other change you make in the future to .zshrc you can reload your config in the terminal with the command..
source ~/.zshrc

Next we are going to set up auto suggestions. This allows zsh to recommend commands and such by using your past history. It's very handy. Just type the following command within the terminal. Remember, every time we open the terminal it should be Linux by default now.

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

Then we add the plugin to our zshrc file, nano ~/.zshrc and add the plugin name zsh-autosuggestions.

Alt Text

Press ctrl-o to save your changes in nano.
Press ctrl+x to exit nano.

That's it for the terminal now, it's pretty efficient now and all Linuxy.

Install Node.js

So if you are familiar with Linux, you would traditionally sudo apt install node to get node. But this is an LTS version of Ubuntu so the version most likely is a tad behind. We are going to use NVM to keep things current.

First we clone the zsh-nvm plugin repo into our zsh plugins folder. Remember, we're doing this from the terminal on the Linux side.

git clone https://github.com/lukechilds/zsh-nvm ~/.oh-my-zsh/custom/plugins/zsh-nvm

Next we go into our zsh config one more time to add the plugin..
nano ~/.zshrc

Alt Text

Now remember to ..
source ~/.zshrc
to reload your config.

We can install node with the following command in the terminal.
nvm install --lts

In the future we can upgrade it with..
nvm upgrade

Finally, VSCode

So I am assuming you have VSCode installed and have used it a little. First lets install the plugin "Remote WSL"

Alt Text

Now we can open a Remote WSL session. Mind you, it's not remote in the out on the web sense. It's the fact that WSL is a VM in all reality and your remoting into it, even though it's on your machine. There is a lot to learn about WSL itself, to much for this post.

Next we can press ctrl-shift-p from within VSCode and select "Remote-WSL: New Window" and it will open up vscode within the subsystem. If you open the terminal within the session you will get your shiny new zsh prompt and all it's goodness.

Alt Text

If in your within the working directory of one of your projects in Terminal you can type code . and it will open up VScode in that location.

Here is a picture of my setup now...

Alt Text

After this...

There is a ton of tweaking at this point if you want. Many rabbit holes to follow. But they would all need to be separate posts in the future. Hope this helps, feel free to hit me up on Twitter with questions.

Changing dock theme on elementary OS

So I have come to realize that you can still manipulate plank settings in elementary OS. For some reason I had always assumed this had been disabled. So now it's time to get rid of that white panel.

  • For those who did not know, if you hold ctrl + right click(the mouse) while hovering the dock, it opens a settings window for plank.

Screenshot-from-2019-09-04-19.01.55.png

  • Now you can see the preferences window and it is set to GTK+ by default.

Screenshot-from-2019-09-04-18-59-22.png

  • I would like my dock to be Transparent. So I just select the Transparent theme.

Screenshot-from-2019-09-04-18-59-28.png

  • And wa-lah! Just how I like it.

Screenshot-from-2019-09-04-19-13-17.png


Hopefully this never gets disabled. I find the white dock about the only unattractive thing in elementary. Otherwise I'm finding it perfect.

Right after elementary install

So there are a few things I do when I install elementary OS for the first time. Mind you, this is all stuff I found elsewhere but wanted to consolidate it. I'm going to go over them one at a time now. Please forgive me Dan and Cassidy.
They are:

  1. Enable PPAs
  2. Enable Indicator Icons.
  3. Fix indicator spacing.

Enabling PPAs
This is pretty easy.

First
sudo apt update

Second
sudo apt upgrade

Finally
sudo apt install software-properties-common
At this point you should have no issue adding new repos.

Enable Indicator Icons
Seeing how you did an update and upgrade above, we shouldn't need to do it again here. Of course if this is where your starting, go ahead and do one.

First
sudo add-apt-repository ppa:yunnxx/elementary

Second
sudo apt update

Third
sudo apt install indicator-application wingpanel-indicator-ayatana

Fourth
sudo nano /etc/xdg/autostart/indicator-application.desktop

Fith
Find the line that says..
OnlyShowIn=Unity;GNOME;

Add Pantheon so it looks like so..
OnlyShowIn=Unity;GNOME;Pantheon;

Restart your X session and you should be good to go.

Fix Indicator Spacing
By default the indicator spacing is huge. This is how you fix it.
sudo nano /usr/share/themes/elementary/gtk-3.0/apps.css

Find the compositied-indicator class.
It will look like
.composited-indicator {
padding: 0 0px;
}

Change it to.
.composited-indicator {
padding: 0 2px;
}

After all this your bar should look similar to mine depending on the apps your running.

Thoughts on Arch

So I have been using Arch Linux in the form of Archlabs Linux on and of for some time. I have also played with Antegros, Endevour and Manjaro. I tend to linger with Archlabs though. And when on Arch I use i3 as my window manager.

I tend to find Arch with a minimalist WM/DE to remind me of days of yore when I was compiling my own kernel on Slackware and running WindowMaker as my DE. It just seems more tinkery, if thats a word. Low and behold I like to tinker. I like changing themes, modifying config files to tweak appearance and functionality, or just breaking things sometimes and figuring out how to fix them again.

Arch seems to give me the most freedom in all of this. And the Arch Wiki is like having the Encyclopedia Britannica of Linux at your finger tips.

If you have never tried an Arch environment, I do recommend it. I'm not saying do the full Arch install in the masochistic sense. Grab an Arch based distro and give it a go. Again I am partial to Archlabs Linux. Cli installers make me feel superior...lol

Cheers,
Tim

Using Windows Subsytem for Linux 2

So I wanted to start playing around with the Windows Subsystem for Linux 2. In the process there are just a couple things you have to do to get going and I thought I would cover them here for easy reference.

First off, you have to be using one of the insider builds to get access. It's not in the current Windows 10 release yet.

I am also assuming you currently have WSL installed. I am typing all the commands in Powershell.

Next you have to enable the Windows Virtual Machine Platform

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

You can see a list of distros you have installed already by typing the following command.

wsl --list

You should see somthing like this ..

PS C:\Users\timap> wsl --list
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)
kali-linux
openSUSE-Leap-15-1

So, first we need to convert our existing installs to WLS 2, this we do with the following. I will use my Kali install as the example.

wsl --set-version kali-linux 2

Do this for each distro installed.

Next, to avoid doing this every time we can set WSL 2 as our defualt using the command. This will make sure every distro install hereafter uses WSL 2 by default.

wsl --set-default-version 2

Finally if you want to verify yout all set up you can run the following.

wsl --list --verbose

This will get you somthing similiar to this showing distros and the wsl version.

PS C:\Users\timap> wsl --list --verbose
  NAME                  STATE           VERSION
* Ubuntu-18.04          Stopped         2
  kali-linux            Running         2
  openSUSE-Leap-15-1    Stopped         2

I hope you find this useful.
Cheers

Thinking about coding

So I have been thinking a lot, well actually planning on changing careers. My current job, though my employer is outstanding, provides me with feeling of, well, just blah.

I really would love to move towards programming or engineering. Maybe even a hybrid. I've bought myself a year of Codecademy and also have a subscription at Linux Academy which is at a pretty good discount due to my veteran status. I hope both of these will provide me with what I need to get started.

At this point everything is about choosing a path. In Codecademy they have a more generic computer science path, a web development path, and a data science path. I started the Web Development path first, I find HTML remarkably boring. I don't know if everyone does, or if it's just me. This made me look closer at the Data Science path. But in all reality I'm still unsure. Sometimes having choices is not good. I am thinking of doing the beginning of each path to see which one I seem to want to continue the most.

On the Linux Academy side I have started their Scripting Automation For SysAdmins path. I like this since it starts by teaching Vim. On a side note, I am using the Vim editor in Standardnotes to write this post.

So I will publish this post to Twitter and Mastodon, maybe even Linkedin. I hope others will read it and offer me some input or share the path they took. Any guidance would be great. I think the thing I may be missing is a mentor. I know no one else that is either a Linux geek like me starting to code or who can help guide and motivate me.

Cheers
Tim

Pop!_OS go around

So I have decided to give Pop!_OS a go this week. Those people who know me understand it's that I am no fan of Gnome. It's just never made to much sense for me. But I must say that I am liking it quite a bit.

Things that are making it stand out more than usuall to me follow

  1. The theme is outstanding!
  2. The ability to turn on Slim Mode (i'm getting old, looks matter these days)
  3. I love CS:GO and it runs smoother on this install than any other i've had.
  4. Dual monitor setup is easy and super reliable.

I'm actually enjoying my stay here. I really can't get over the look though. It's the nicest visual experience I've had on a distro other than elementary. Here is what I have going at this time, as you can see i'm composing this mid screenshot.

So I think I may hang out here for awhile and see how long I last here. I will append to this as I find more good or bad. Right know I don't have a negative.

Update

So I said it's a super close tie between Pop and elementary. This has changed since elementary doesn't really do stacked monitors. You can work around it, but it's not ideal. So I don't think I will be going back there anytime soon. At least with a multiple monitor setup.

Starting on listed

I jump around within many services. I am a really big fan of write.as. But I currently use StandardNotes as my main note taking application and a lot more. So I thought since I am already paying for it, I may as well try their offering.

Listed is built right into StandardNotes and is their publishing platform. We'll see how it goes.