The Lone Geek Blog

One geek in a sea of nerds.


Redshiftin the Desktop

Using redshift to automatically change the monitor's temperature color

| Comments

Save your eyes, use RedShift on linux and windows’ builtin night mode.


Redshift adjusts the color temperature according to the position of the sun. A different color temperature is set during night and daytime. During twilight and early morning, the color temperature transitions smoothly from night to daytime temperature to allow your eyes to slowly adapt. At night the color temperature should be set to match the lamps in your room. This is typically a low temperature at around 3000K-4000K (default is 3700K). During the day, the color temperature should match the light from outside, typically around 5500K-6500K (default is 5500K). The light has a higher temperature on an overcast day.

Some tips

Use the config on the site if you encounter issues with the gtk applet. Or do if you don’t. :)

Set your location if redshift has issues retrieving it from the web with a 3 digit latitude and longitude value. I found mine by looking at the gtk applet’s info window when it did connect. OR you can use this url I found in the geoclue.conf file https://location.services.mozilla.com/v1/geolocate?key=geoclue.

If you want it to affect just one monitor; put this at the end of the config that site lists. Just omit the similar line listed on the site.

crtc=0 #this is the primary monitor

Tech Update: Bluetooth Transceiver and Battery

| Comments

Tech update:

Some time ago, I purchased a bluetooth audio transceiver that mostly went unused till I had the idea to use it for my phone and run ear buds off it since the headphone jack on my phone became iffy, the left audio channel would cut in and out if the plug moved ever so slightly. The device was sold by Anker on Amazon for I dunno, 28 bucks. A tiny thing, fits in the mini right pocket of my jeans. Battery lasts about 8 hours fully charged. Lets out a loud beep beep beep when something is playing from the phone. It’s loud and startling. I kinda wish I knew how to hack firmware but I don’t think the computer even knows it’s connected. Doesn’t show up in any sort of device list. I mean, why would it but still.

In comes a portable 10,000 mAh battery, also by Amazon that recently sold for about 36 bucks. I tuck it in my right pocket next to the phone and bluetooth device to charge up when the device gets low or just keep it topped off. I have no idea how many fully charges the big battery will cover, I haven’t done the math yet or can be bothered.

The device looks like this;

On top of that, I can top off my phone as needed for those long work days away from any power sockets. :)

I like to play podcasts and audio books while I work.

The product page is here but the main seller, Amazon, no longer carries it sadly.

Old Calculator for Windows 10

| Comments

Old Calculator for Windows 10

Here’s a little program I found on the net cause I liked the old calculator better. The Win10 calculator app just doesn’t do it for me. Frequently opens up all big and taking up 1/3 of my screen and feels slower to start. The old one is fast, light, and has a smaller UI. :)

Download Link (889KB)

Resizing Root Fs for Ubuntu

| Comments

I needed to resize one of my VMs. This will serve as some better notes than what I see online.

1. Shutdown VM and open the ESXI WEB UI to resize the virtual disk and check a box to force the bios to open on power up.

2. Attach gparted iso to VM then power it up and adjust boot order to boot iso.

3. Once booted, deactivate LVM root volume and resize both extended and logical partitions to max disk size or as desired.

You should see something like this, with different sizes and uuid.

# vgdisplay
  --- Volume group ---
  VG Name               system
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <15.52 GiB
  PE Size               4.00 MiB
  Total PE              3973
  Alloc PE / Size       2437 / <9.52 GiB
  Free  PE / Size       1536 / 6.00 GiB
  VG UUID               rVuKv3-0fim-f6CQ-4HJs-XqnE-Vaec-xc2jr9

4. Extend LVM Volume

# lvextend -l +1536 /dev/mapper/system-root

5. Extend filesystem.

# resize2fs /dev/mapper/system-root

6. End result. More space. :) Enjoy.

# df -h /
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/system-root   16G  8.3G  6.3G  57% /

VM Creation Script for ESXI 6.5 Hosts

| Comments

So I had an idea to make creating VMs a little easier for me instead of clicking a handful of buttons and powering up the VM then waiting for it to install. I found a blog post intended for Mac VMs that was inspired from a now deleted site’s blog post by a guy who needed to make a bunch of them quicker so I forked Tamas’s script (the original one I think) and modified it to create Ubuntu VMs. :) I also added a few scripts of my own that would tell me if a VM was ready and another to give me the IP. I may try to integrate those two at some point.

How does it work?

Glad you asked. wink Basically, you give the script some parameters and it does it’s thing, it mainly needs the name of the VM; the rest is optional. Details on that is in the readme file.

Extended version

The script has a list of defaults you can set so all you need is a name. From those defaults, there’s a list of loops that check for an input and do some error checks then if none is provided, it uses the defaults. It also checks if the datastore and vm name provided exists. If everything checks out, it proceeds to create the directory, VM Disk Image, and the VM file (.vmx) itself populated with a bunch of stuff the hypervisor needs. Once that is done, it then registers and powers on the VM and prints out the config details.

Following all that, I have two scripts to check if it’s ready and print the ip to the console. All the scripts need is the VM ID outputted from the create.sh script.

What I added to the create.sh script

I added support for multiple datastores and put the network name in a variable if one needed to change it for a single instance or something. I also changed the original RAM and VDISK values to suit my needs as well as the guestOS type for the vmx file it makes and set the location to my ISO file.

Feel free to read all the code and compare with the other guy’s repo. I think this script ought to do just nicely. :)

Bonus points

Moving the script from it’s home in the primary datastore to /usr/bin and run auto-backup.sh on the host itself.

Setup windows (via the win10 linux subsystem unless you can make it work with putty or powershell) to create VMs from a cmd or powershell prompt. All you’d need to do is add your public ssh key to /etc/ssh/keys-root/authorized_keys on the host and run the aforementioned backup script. If that backup script isn’t ran, any changes outside of the datastores and what is usually backed up will be lost upon reboot.


I think that’s all. It’s a cool script, props to the guy who made it. I just improved it some. ;) Cheers.

Moving VMDK Images Between ESXI and VBox

I did a thing that works but requires a little manual work to do...

| Comments

About 10 days ago, I decided to shutdown my server because my room was getting uncomfortably hot half way into the night but before I shut it down for the time being, I copied a couple virtual machines over to my continuously running file server that I wanted to remain up. The VM I do my webdev stuff on and a small ftp server for the networked printer to upload scans to.

The process is fairly straight forward. Just download the VMDK disk image to my file server and create a .vbox file for VirtualBox. I kept the virtual NIC’s MAC addresses so they’d get the same IP from my pfsense box but due to NIC driver changes from the differing hypervisors, I had to adjust the network config within the VMs. No biggie.

Gave the webdev vm 2vCPUs and the ftp server got just one and kept the ram allocation the same and it’s almost like nothing happened as far as the guests are concerned. :)

When I decide to start using the room heater / VM box, I can simply shutdown the guests before making minor networking changes again and copy the disk images back over to fire them up on it.

Side note

The space heater computer has got me thinking about a second cooler running machine to run ESXI on as well then it’d be a simple migration to and from as needed or desired. I’m thinking maybe single Xeon E5-something or i7 2nd or 3rd gen cpu with 32GB of ram and about 1TB of disk space ought to do.

Just making a public note. :) Cheers.

Installed an Amp in My Truck

because the factory deck just wasn't loud enough. ;)

| Comments

I installed an amp in my truck 🚚 because I got tired of having to crank it almost to max just to make out words playing in a podcast. The stock unit did ok with music, just lacked any decent power to jam with. Initial testing yielded pleasent results.

Install proceedure is typical. Radio outputs to Amp, Amp outputs to Speakers. Grabbed power from an old unused cigarette lighter and tucked all the wires and amp into the dash. Sounds pretty good for ~$92 on amazon. I have 4 3-way speakers in the truck that was installed a few years ago. I tuned the radio to put more power to the back and reduce the highs from the audio from the fronts.

It sounds good, has better bass now that I don’t need to turn the radio up so loud to hear it. It has me thinking about a subwoofer for that extra thump but I dunno where I’d put it exactly, maybe under the driver seat. ;)


DNS Over TLS Using PFsense

and why you need it.

| Comments

Before I begain, this guy talks a bit about it and does it the “old” way for systems with version 2.4.3 and older.

In version 2.4.4, pfsense was updated to offer support within the webui. Just 3 check boxes and your outgoing dns traffic is encrypted. You can do a packet capture on port 853 of you WAN interface to verify. I did a scan on my network and discovered there is still some plain DNS traffic but I’m unsure what to make of it. Some to microsoft and some to “akadns.org” (some sort of CDN for something). Maybe I need to do some checking at some point.



For those who run unbound on other systems (or older pfsense boxes), you can try this bit of config code to see if it will work for you.

    name: "."
    forward-ssl-upstream: yes
    forward-addr: [email protected]
    forward-addr: [email protected]
    forward-addr: 2606:4700:4700::[email protected]
    forward-addr: 2606:4700:4700::[email protected]

Now to encrypt what little HTTP traffic I have without triggering Amazon and Netflix’s Anti-VPN/Tunneling block…


Creating a Home Based Cloud Service

A log about my home cloud adventure

| Comments

Idea of sorts

For the past few weeks I’ve been poking around on a git repository listing a bunch of self hosted software to get an idea on what to play with on my lab server and maybe keep around and that’s when I came across the “file sharing and synchronization” section. I found some software called Pydio


This one was or is a bit tricky imo. I started out with a simple ubuntu vm (4 vcpu, 4gb ram, 8gb system disk, 20gb data disk), getting that all setup and ready to go for the application; no biggie.

Attempt 1

I got the application running but ran into a tiny issue with fine tuning the datastores portion in order to store all my data in the data disk and not on the system disk. Well, what should have been a simple change of the paths, it kept saving data in the original locations and any attempts to remedy that seem to fail. I can’t seem to get it to cooperate. I’m probably going to wipe the install and mount the data disk to .config/pydio and not worry about changing the paths within the app itself. This seems to be an easier method in my mind.

Attempt 2

Mounted the bigger disk to .config/pydio and now it seems to work. :/ Technology eh?


Tried to change the url in which the application loaded from and well, that just flat out broke it and I can’t find a way to fix it without reinstalling it again. the mysql database is useless, the config still points to the server ip (I wanted to use a local dns name). Oh well. Time to look for another one.


Found an alternative to Pydio after a few google searches. I must say, it was far more easier to do and not so complicated to setup and configure. Just download and run a bash script on a minimal server install. I’ve got it in a VM with 4vCPUs, 1GB RAM, 20GB vDisk and seems far more responsive than Pydio. I’m not sure what to with it for now so I’m gonna shutdown the these two VMs for now to mess with at some point in the future.

I’ll probably finish the config with a reverse proxy and set to auto start with the OS.


I’m probably going to delete pydio and not even bother with it anymore. I don’t even understand where it defines the URLs to it’s various services. I checked the database and the only config file I found in .config/pydio.

I may use Seafile for something, not sure what. Resillo Sync and Dropbox has served me well for local and remote file synchronization respectively. I just want something I can link my parents to so they can upload things to me without bothering with archives or anything complicated.

The adventure continues!

Isolating Machines Within a LAN

Creating a isolated segment within a bigger LAN

| Comments

Today, I decided to try creating a single point to point connection from a host on my LAN to the Pfsense box while at the same time, preventing it from connecting to other devices on the LAN. This is not like a VLAN where you’d have multiple networks on the same wires but I think it similar to how ISPs and some businesses engineer their networks.

I did it by creating a Virtual IP Alias on Pfsense to serve has the gateway with the subnet mask of /22 then assigning the second ip on the client with the virtual ip as the gateway and pointing the dns to that virtual ip as well.

Windows IPv4 Settings Windows IPv4 DNS Settings

I then created aliases to point to the right things. Allow rules for the host to Pfsense and specific hosts on the larger lan. A general deny rule to prevent the isolated host from connecting to any private IP. Pretty basic stuff.

Firewall - Isolated IPs

The goal is to isolate a thing while giving it access to the internet and approved nodes on the LAN. This is one method I’ve thought of outside of replacing all the switches on the network with managed ones for doing VLANS to different physical devices on the network. I don’t believe this is a fool proof method as all it’d take is some program or privileged person with the knowledge to modify the host’s IP settings and bump it back on the main LAN. It should work just fine for what I intend to use it for.

I’m curious to see what kind of security risks this poses to the main LAN should a isolated device become infected with something. Some research is required in the matter.

I think for the first real world test is to assign a computer to the isolated IP for my niece and nephew to use for school work. Maybe I can utilize OpenDNS for content filtering :) and of course, grant them unprivileged permissions on the computer. Microsoft has some parental tools for reporting child activity that could be useful.

That’ll be it for now. Until next time, keep geeking out!