Welcome

This site is automatically generated from a selection of my Joplin Notes using a Python script that can be found on my Gitea instance. The pages here are a living document of guides, tools and configurations that I use and expand on as my knowledge and workflows change. The majority of notes here are focused on SysAdmin, Self-Hosting, and IT systems, and their configuration and automation workflows.

If you have any comments, questions or are looking to hire a new IT Manager, you can contact me at: blog@zinchuk.xyz

~Yuriy

Quick Links


Last updated on September 01, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Resume

Summary

10 years working in a variety of technology related positions; including research, budgeting, purchasing, implementation of new technology services, complete IT infrastructure overhaul,software development, and assisting staff with their day to day IT needs.

Git Links

Technologies Worked With

  • Python, Autohotkey, Powershell, Bash, Excel VBA, Selenium
  • Ubuntu, Arch Linux, pfsense, TrueNAS, Ubiquiti Unifi
  • Windows Server, Windows 2000, Windows XP, Windows 10/11, Office365
  • Proxmox, VMWare, Hyper-V
  • Git Version Control, Docker, NGINX
  • Zabbix, Prometheus, Grafana

Professional Achievements

  • Completed Full IT Infrastructure Modernization & Overhaul for Paper Manufacturing Plant
    • Led the comprehensive overhaul and upgrade of the organization’s entire IT infrastructure, including servers, switches and workstations, transitioning from ~12 year old legacy equipment
    • Set up and Managed a 6-Node Proxmox Cluster with ~50 virtual machines running a mix of Windows and Linux-based systems, connected to ~20 VLANs
    • Migrated Existing Legacy Infrastructure of Physical and Virtual (Hyper-V 2008/2012 and VMware ESXi 5/6), Windows 2000, 2003, XP, and Windows 7 systems to Proxmox
    • Replaced undocumented flat network infrastructure with a VLAN-segregated architecture across entire site
    • Set up Device Monitoring and Alerting for all Networked IT Equipment using Zabbix
    • Documented the entire IT infrastructure from the ground up and successfully handed it over to the incoming IT Manager

Work History

Freelance Programmer

May 2024 - Present

  • Working as part of a small self-managed team writing web automation software utilizing Git, Selenium, Autohotkey, Python, Powershell and modern AI tools.

IT Manager @ REDACTED (Paper Mill Manufacturing Plant)

2022 - May 2024

  • Researched, Purchased and Setup servers, switches, workstations, virtual machines, and VOIP system
  • Setup and Managed multi-node Proxmox Hypervisor Cluster, Proxmox Backup Server systems, and interconnecting 10Gb VLAN’d networking
  • Managed Firewalls and Security rules for multiple segregated networks on the production floor
  • Wrote Automation software in multiple scripting languages to automate IT processes and Production Floor workflows
  • Provided on-call tech support to Business and Production Floor Teams

IT Manager @ REDACTED (Manufacturing + Retail Store Chain)

2021 - 2022

  • Managed IT Infrastructure for 5 retail locations and 1 Manufacturing Plant
  • Migrated entire infrastructure from Windows 7 to Windows 10
  • Migrated company from Windows Server 2008 to Fedora Linux
  • Wrote Automation Software to streamline POS processes
  • Migrated company to modern ERP and website system, saving company ~$100K/year in legacy licensing costs

Multiple Positions @ REDACTED (Non-Profit)

2013 - 2021

  • Managed employee interviewing, hiring, training, scheduling and day to day management,
  • Managed Accounts Payable + Monthly reconciliation of accounts through the use of Sage Business Accounting Software
  • Created and Managed an automated online time card system for out of office employees using Excel VBA + Google Sheets
  • Managed Company Website, Social Media Pages, and monthly email/facebook newsletters
  • Migrated Company Website to to new Management Framework
  • Automated Inventory Ordering Processes using Autohotkey, Selenium and Excel VBA
  • Assisted IT Manager with setting up workstations, printer configurations, and handling help desk tickets

Last updated on August 27, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Contents

Click on a link in the list below to go to that page:

  1. Dell Wyse 5070 as Proxmox Node
  2. Home Automation with Zigbee and Node Red
  3. Homelab Topology Map
  4. Installing LineageOS on Google Pixel Tablet
  5. MeshCentral - Free, Open Source RDM
  6. Resume
  7. The Cost of Running a Home Lab
  8. Welcome

Dell Wyse 5070 as Proxmox Node

I got one of these little thin clients on ebay last year to use as a low power home media PC, but with the low specs it would struggle to play 1080p vidoes on Youtube/Plex/Jellyfin, and even at 720p would drop frames on a regular basis. I installed Proxmox on it to see how well it would handle being a hypervisor and it performs quite nicely for VMs that don’t need much resources. I set the Adguard Home and a couple other smaller virtual machines to Boot Linux into CLI by Default and it’s been chugging along for the last year or so without any issues.

Hardware

e61defae7d2197481ea103b509dc4fe1.png

General

  • Costs ~$60 on Ebay + $20 for a M.2 SSD
  • 4 Core J4105 CPU @ 1.5Ghz
  • Passively Cooled, No fan at all
  • Supports up to 16GB RAM (2x8GB DDR4-2400)
  • Supports 1xSATA M.2 SSD Drive as storage
  • Runs at ~10 Watts
  • Client can be configured to “Power On” on Power Restore through BIOS Options
    • BIOS Password: Fireport
    • 9d7556f5900fddc448dbe1c907b9af74.png

Pictures

a0ccdcf3e38bbda9910575ae7e7939c4.png


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Home Automation with Zigbee and Node Red

There’s something incredibly futuristic feeling about opening your front door and having the lights turn on automatically, or walking out of the house and all the lights in the house turn off behind you. It reminds me of the science fiction books that i used to read as a kid that would talk about automatic houses that would do your chores for you and turn on/off as you walked into different rooms. Sadly there are no robots that will make my bed, unload the dishes from the dishwasher, or fold my laundry like in those science fiction books, so for now i have to be content with just automated lights and sensors.

Setup

My Home Automation deployment has gone through a couple iterations over the last 5-6 years. I originally started out with a Raspberry Pi 3B running Home Assistant OS with the Phoscon Conbee II ZigBee USB Gateway plugged into the USB port, with the Deconz and NodeRed addons installed. As my homelab grew and I setup a home server and started playing around with virtualization I decided to virtualize and migrate Home Assistant to a Docker container within my physical Unraid Server. That worked without issue as well for a couple of years until I virtualized my Unraid Server a few months back and brought my configuration to what it is now.

My current setup looks like this: My Phoscon Conbee II ZigBee USB is plugged into one of my Proxmox nodes and the USB device is passed through to my Unraid virtual machine. The USB device then gets passed through again to the deCONZ docker container which exposes an API for NodeRed and Home Assistant to connect to for device triggers/controls.

HomeAutomationDiagram.drawio.svg

HomeAutomationDiagram.drawio

Automation Ideas

Some of my favorite automations:

Turn All Lights off When Leaving House

  • Trigger: When Front Door Opened > Delay 15 Minutes > Ping Phone IP Address > If Ping is greater than 1000 (Node Red Ping Failed) > Turn All Lights Off

2024-07-09_00-06.png

Dimming Lights in the Evening

  • I have dimable + temperature adjustable zigbee bulbs and in the evening i have them automatically dim / change to a warmer temperature to help with maintaining a natural circadian rhythm. 59888a3b601f57ebb3097ee05bab9239.png

Fingerbot for Pressing Physical Buttons

I bought one of these Zigbee Fingerbots Amazon Link a few months to control my AC Unit. It stores an internal ON/OFF variable within itself which makes it easy to check the status of my AC Unit and toggle it on/off based on that.

  • Add Picture of node flow

NTFY Notifications

  • Setup Directions: https://docs.ntfy.sh/examples/#node-red

Last updated on August 27, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Homelab Topology Map

I’m a huge fan of self hosting. I love having full control of my data, privacy, and not being at the mercy of large provider’s whims/mistakes for my account and data’s continued existance.

Over the last 5 years I’ve slowly grown my home lab environment to host almost 2 dozen services that I use on a regular basis as a replacement for mainstream, often privacy invading services like Gmail, Google Photos, OneDrive, Spotify, Netflix and a handful of others.

All the services below are running as docker compose containers on Linux Based VMs, within a 3 node Proxmox Cluster, with the majority of services routed through NGINX Proxy Manager reverse proxy for SSL Certificates + Encryption. The services that I regularly use while i’m out and about are whitelisted to be reachable through WAN and everything else is LAN only, but reachable through a Wireguard VPN tunnel if needed.

Network Topology Map:

SelfHostedServicesTopologyMap.drawio.svg (Might take a few seconds to load depending on your connection speed) Draw.io File:SelfHostedServicesTopologyMap.drawio

Hardware

The Cost of Running a Home Lab#equipment

Services

ServiceDescription
pfSenseFirewall
WireguardVPN Tunnel
Adguard HomeDNS Level Adblocker + Internal DNS Resolver
Adguard Home SyncSynchronizes Adguard Home instances’ configurations
NGINX Proxy ManagerReverse Proxy + SSL Encryption for Services
ntfy.shPush notification service
HeimdallWeb Dashboard for quick links
RadicaleCalDAV/CardDAV server
Node-Redflow editor for home automation
DeconzZigbee Controller for Home Automation
SyncthingContinuous File Synchronization
urBackupOpen Source Client/Server Backup Service
Paperless-NGXDocument Management System
Proxmox Backup ServerDeduplicating Proxmox VM Backups
File BrowserGraphical File Browser for NAS
AudiobookshelfAudiobook & Podcast Server
JellyfinMedia Server
PlexMedia Server
NavidromeMusic Streaming Server
KavitaEbook Server
ImmichSelf Hosted Google Photos Alternative

To Do List

  • Migrate from NGINX Proxy Manager to Caddy for Automatic SSL setup for new Docker services
  • Setup Unifi + Prometheus + Unifi Poller for Visual Monitoring
  • setup Crowdsec for crowd sourced host blacklisting

Last updated on August 27, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Installing LineageOS on Google Pixel Tablet

The Google Pixel Tablet has to be one of the best tablets that i’ve owned to date. It is the best option out there if you’re looking for an inexpensive yet high quality 11“ tablet with official LineageOS support, fingerprint scanner, and great looking screen.

The other options in the market:

  • Apple iPad: Running iPad OS, completely locked down and is a walled garden. No go for me
  • Samsung Galaxy Tab: Limited Custom ROM support, and custom ROMs are usually unofficial from random people and hard to trust. I’ve owned the Galaxy Tab s4 (No LineageOS support at all), and Tab S6 Lite (ONE LineageOS based ROM from a community member, no fingerprint scanner, subpar screen)
  • Generic Chinese Android Tablets: Limited custom ROM support if any, and the default system is most likely sending analytics about all your usage off to China

Unlocking the Bootloader

  • The LineageOS device directions do a great job of giving the step by step directions for the unlocking process
  • I usually do the adb process while booted into my Linux system. I’ve had much less issues with that than through Windows, which will sometimes recognize a device while the device is booted, but will not see it when it’s in fastboot or recovery mode
    • To install ADB on Arch Linux: sudo pacman -S android-tools

Flashing LineageOS with MicroG

  • Builds: https://download.lineage.microg.org/tangorpro/
    • Download all the files for the build date that you’re going to be installing, they will all be used as part of the flashing process 6bfaca4d61746ff7fb1a5df5bd71a003.png
  • Flash the LineageOS recovery and ROM step by step Instructions
  • After flashing, select Reboot Device to boot into LineageOS

Rooting with Magisk

  • Download the latest magisk.apk file from GitHub
  • Rename magisk.apk to magisk.zip
  • Boot into LineageOS Recovery on the Pixel Tab using: adb reboot recovery
  • Navigate down to Advanced Options > Enable ADP to enable ADB within LOS Recovery, then go back to the main screen
  • Select Install Update option and then push the magisk.zip file through adb using adb sideload magisk.zip
  • Magisk will automatically patch your boot image and install the magisk manager app on the device. Once the patching peocess is complete, reboot your device and open up the Magisk app. You should see the Magisk version number on the main screen. fb93135f7ebd3c2cfa0714a3d4a3a02f.png

Last updated on August 26, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

MeshCentral - Free, Open Source RDM

I discovered MeshCentral (a free open source Remote Device Management software) about a year and a half ago. After setting it up and playing around with it for a few weeks, I quickly replaced all my NoMachine and AnyDesk Remote Control installations at work & at home with it. It has became my de-facto way of interacting with remote systems for remote assistance, system setups and server patching.

Desktop ViewMobile View
41a2807bf2959b508f5658da68067489.png87fd46e2b9b6d04da7c06dc1dd5a42b8.png

Server Installation

Client Installation

Any 64 bit Linux system with systemd (Arch, Debian, RedHat, etc)

  • CD into downloads directory, download the meshagent linux installer and ignore the fact that the server has a self signed certificate. (Not needed if you’re using a reverse proxy)
cd ~/Downloads/ ; wget --no-check-certificate -O meshagent "https://10.0.0.201/meshagents?id=40pZPmGfuvJGQHgbHBwrkuwB&installflags=0&meshinstall=6" ; chmod +x ./meshagent ; sudo ./meshagent -install

64-BIT ARM (Raspberry Pi)

cd ~/Downloads/ ; wget --no-check-certificate -O meshagent "https://10.0.0.201/meshagents?id=OIXF2bCytM26I9MBLPSNsRI22d7k3HkcWfuzAJHAhp84ie51XIOxI6FV&installflags=0&meshinstall=26" ; chmod +x ./meshagent ; sudo ./meshagent -install

32-BIT ARM (Raspberry Pi)

wget --no-check-certificate -O meshagent "https://10.0.0.201/meshagents?id=40pZPmGfuvJGQHgbHBwrkuwB&installflags=0&meshinstall=25" ; chmod +x ./meshagent ; sudo ./meshagent -install

meshagents?id=#### sets the group that the My Devices Group the device get’s placed into.

meshinstall=# sets the binary type. You can find the binary number by selecting the appropriate OS in the Add Agent screen

2024-07-09_15-15.png

Cloning VMs - [Reference]

The MeshAgent has a "anti-cloning" system. When it runs, it will store the list of MAC addresses of all network interfaces into meshagent.db. Each time it starts, it looks to see if at least one network interface is the same as one in the list and updates the list. If none match, it will reset it's certificate and show up as a new device (with a new device identifier)
  • By default when a Proxmox VM gets cloned, it receives a new MAC address for each of it’s network interfaces, witch means that MeshCentral can safely be installed on Template VMs for management/updates without issues.
    • We can also force a device to reset it’s certificate and show up as a new device by deleting meshagent.db
  • Enable Hostname Sync in Group Settings screen > Features to have the Device Name automatically update whenever the hostname changes. I set this for my TMPLT group that all devices go into by default. I then move the device out of this group after i set it up and configure it’s permanant hostname on the host.
    • 4ed3090dae4993b308fbe6b7d42a3744.png

Check MeshCentral Agent Process Status

Linux

systemctl status meshagent

Windows w/Powershell

Get-Service -Name "Mesh Agent"

Multiple Networks / VLANS

At my previous jon we had a couple of VLANS that were for the Production floor and had no WAN access nor LAN access to any other networks. To install MeshCentral agents on these machines I had to do the following:

  1. Setup Firewall Allow Rule to allow one way traffic from the Firewalled Production LANs to the IP address of the MeshCentral server
  • Option 1:
    • Add a DNS entry to the server’s hosts file that pointed to the IP address of the MeshCentral server. (MeshCentral agents use DNS to find the Server) Linux: edit /etc/hosts and add your server’s DNS name, eg: meshcentral.zinchuk.xyz 10.0.0.240 Windows: Edit C:\Windows\System32\Drivers\etc\hosts and add your server’s DNS name, eg: 10.0.0.240 meshcentral.zinchuk.xyz
  • Option 2:
    • Setup a MeshCentral relay server on the firewalled LAN. This would have been my goto if we had more servers on the production LAN.

Sending Commands

With MeshCentral you can send commands to individual/groups of devices. Super handy if you need to push out an urgent patch to systems, do a bulk reboot of devices, or push out a program to multiple devices.

Steps: 2024-07-09_15-46.png

Example Commands

Update EndeavourOS Arch Linux System + Reboot

  • Update keyring, Update system packages, clear out package cache when done, and then reboot
sudo pacman -Sy archlinux-keyring endeavouros-keyring --noconfirm  --needed ; paru -Syu --noconfirm --needed && echo $(sudo ls /var/cache/pacman/pkg/ | wc -l) packages in cache ; sudo reboot

Update Proxmox Server + Reboot

apt-get update && apt-get dist-upgrade -y && reboot

Update Windows Packages with Chocolatey

choco upgrade all -y

Misc Usage

Using PowerShell in Terminal:

Right click when selecting terminal and select powershell OR type in powershell.exe to switch to Powershell from CMD

2024-07-09_15-52.png

Bugs/Workarounds/Extra info

Arch Linux Remote Desktop Bug

  • Remote Desktop view doesn’t work by default
  • Problem + Fix: https://github.com/Ylianst/MeshCentral/issues/602\
  • Workaround is automatically installed when setting up MeshCentral with my linux-setup-script

Windows

  • In order to be able to type into Powershell/CMD when remoted in through meshCentral, the “Touch Keyboard and Handwriting Panel” service must be enabled through services.msc on the remote device. Otherwise you will not be able to type into the CMD/Powershell window directly. The terminal connection tab works just fine though.
    • https://github.com/microsoft/terminal/issues/9890

Last updated on August 26, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

The Cost of Running a Home Lab

One of the things that is often brought on /r/selfhosted and /r/homelab when people ask for advice about buying a server is the cost of powering that device over a year and over it’s lifetime. You can get a Dell Poweredge R710 with 16 cores and 64GB of ram for less than $100 on ebay, but the cost of powering that dinosaur 24/7, 365 days a year will quickly outgrow your initial investment.

I was reading through one of these discussions recently and it made me wonder how much my homelab was costing me. I’ve slowly accumulated all my equipment over the last 5 years or so, one piece/upgrade at a time, but have never stopped to calculate the totals or how much it cost to keep that equipment running 24/7. I went through my old receipts and bought one of these Watt Power Meters on Amazon to calculate the power usage of each of my home lab devices. Here are the totals:

Equipment + Power Cost

DeviceDevice Purchase
Cost
Average Power UsageAnnual Cost of Running
24/7/365 @$0.12582/kWh
Netgate 4100 Firewall$40013 Watts$14.33
Dell Wyse 5070$805.0 Watts$5.51
Beelink SER5$30910 Watts11.02
i7-5820K Desktop
5x12tb HDD Drives
2x1TB NVME
2x1TB SATA
$1,700122 watts$134.47
Unifi 8 Port Gigabit Switch$1094.5 Watts$4.96
Unifi WiFi Access Point$1598 Watts$8.82
TOTAL$2,757162 Watts$179.11

Overall i’m surprised that the total power cost is not higher. The biggest cost by far would be the amount of time and energy I put into home lab doing research, system upgrades, creating automation scripts and playing around with new projects. Luckily those skills are carried over to my professional work environments.


Last updated on September 01, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Contents

Click on a link in the list below to go to that page:

  1. Arch Linux - Keyring Corrupted
  2. Expanding Linux VM Partitions within ProxMox
  3. Grub Customization
  4. Install virtio Guest Agent on Ubuntu Proxmox VM
  5. Installing EndeavourOS on Surface Pro 6
  6. Installing VirtIO Drivers on ProxMox VMs
  7. Migrating Virtual Machines to ProxMox using Macrium Reflect
  8. Office365 Office Suite - Installation & Configuration
  9. Running Unraid as a Proxmox VM
  10. Testing Read/Write Speed Linux using dd
  11. Trust Relationship Failed on AD Windows 11
  12. UniFi L2TP VPN - Setup & Config
  13. Windows XP - Disable Prompt to install new Hardware Wizard

Arch Linux - Keyring Corrupted

  • https://www.reddit.com/r/archlinux/comments/wbroq8/archinstall_error_on_updating_keyring/

Every so often EndevourOS/Arch Linux keyrings will expire/corrupt? and need to be reinitialized. When trying to do an upgrade with paru/pacman you will get a ...archlinux-keyring-20220727-1-any.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)) are you sure you want to remove it? Y/n error when this happens.

This is the solution that worked to fix that:

sudo killall gpg-agent

sudo rm -rf /etc/pacman.d/gnupg

sudo pacman-key --init

sudo pacman-key --populate archlinux
sudo pacman-key --populate endeavouros
# IF using chaotic-aur
sudo pacman-key --populate chaotic

Simple,

  • Update all the keyrings (arch, endeavour, chaotic-aur) and then install pacman updates through paru
sudo pacman -Sy --noconfirm ; sudo pacman -Sy archlinux-keyring --noconfirm ; sudo pacman -Sy endeavouros-keyring --noconfirm; sudo pacman -Sy chaotic-keyring --noconfirm; paru -Syu --noconfirm

Longer Process:

  • 1 liner WITH Chaotic-AUR and EndeavourOS
sudo pacman -Sy --noconfirm ; paru -Sy archlinux-keyring --noconfirm ; sudo pacman -Sy endeavouros-keyring --noconfirm; sudo pacman -Sy chaotic-keyring;  sudo killall gpg-agent ; paru -Sc --noconfirm ; sudo rm -rf /etc/pacman.d/gnupg ; sudo pacman-key --init ; sudo pacman-key --populate archlinux ; sudo pacman-key --populate endeavouros ; sudo pacman-key --populate chaotic ; sudo pacman-key --refresh-keys ; reboot

1 liner without chaotic-AUR

sudo killall gpg-agent ; sudo rm -rf /etc/pacman.d/gnupg ; sudo pacman-key --init ; sudo pacman-key --populate archlinux ; sudo pacman-key --populate endeavouros ; sudo pacman-key --refresh-keys

If you were using Chaotic-AUR, you will need to reinstall it most likely:https://aur.chaotic.cx/


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Expanding Linux VM Partitions within ProxMox

EndeavourOS/Arch Linux

GUI

  • Shut down the VM and within Proxmox go to Hardware > Hard Disk > Resize
    • Expand the Main disk, and secondary disk (linuxswap) as needed
  • Boot up the VM again, log into a user account and open up KDE Parition Manager paru -S partitionmanager
  • If Expanded the main disk, select it, right click on the main partition and click resize and then expand it to use up all the new disk space alloted to it.
    • Sometimes the extra disk space doens’t appear, a reboot of the VM usually fixes this.
  • If expanding the linux swap partition, you will need to delete the old partition and recreate it as a new linuxswap partition
    • right click on the partition, “deactivate swap”
    • Right click and click “delete partition”
    • Apply the changes
    • Right click on the empty partition and create new primary partition of the type linuxswap
    • Apply the changes
    • Right click on the newly created partition and select activate swap
    • Right click on the newly created partition and view it’s properties.
    • Copy the UUID to your clipboard. NOT the partition UUID.
    • open up your fstab file with sudo nano /etc/fstab and copy the new linux partition UUID and overwrite the old swap partition ID.
    • reboot the VM to make sure that the swap partition gets auto mounted.
    • easy way to check is open up htop in the terminal and see if the swap has a disk size to it.

Terminal

Ubuntu/Kubuntu

  • Run the following commands on the expanded drive:
    • https://unix.stackexchange.com/a/743682
  • Open up KDE Partition manager and expand the partition to use the full size

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Grub Customization

Fix Windows Missing in Dual Boot

  • https://forum.manjaro.org/t/warning-os-prober-will-not-be-executed-to-detect-other-bootable-partitions/57849
  • https://bbs.archlinux.org/viewtopic.php?id=279936
sudo nano /etc/default/grub

GRUB_DISABLE_OS_PROBER=false

and then run: 
grub-mkconfig -o /boot/grub/grub.cfg

Change Grub Timeout

sudo nano /etc/default/grub

- Change timeout to: 0
- Then Update grub config with:

grub-mkconfig -o /boot/grub/grub.cfg

Edit Grub Config to set default selected option

  • Change timeout, default option, hide grub menu unless shift pressed
  • https://www.maketecheasier.com/set-grub-remember-last-selection/
# - Save grub selection between reboots 
GRUB_DEFAULT=saved  
GRUB_SAVEDEFAULT=true 

GRUB_TIMEOUT=3 
GRUB_DISTRIBUTOR="EndevourOS"
GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 nowatchdog"
GRUB_CMDLINE_LINUX=""
GRUB_FORCE_HIDDEN_MENU="true"


# Update grub config
# https://linuxhint.com/update_grub_arch_linux/
sudo grub-mkconfig -o /boot/grub/grub.cfg

Change Grub Background Image

  • https://forum.endeavouros.com/t/how-i-changed-grub-screen/29171
sudo cp IMAGEFILEPATHPNG /boot/grub/themes/EndeavourOS/IMAGEPNG

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Install virtio Guest Agent on Ubuntu Proxmox VM

To install the virtio Guest agent on Ubuntu, follow these steps:

Open a terminal on your Ubuntu system.

Update the package list by running the following command:

sudo apt update

Install the virtio Guest agent package by running the following command:

sudo apt install qemu-guest-agent

During the installation, you may be prompted to configure some settings. You can choose the default options by pressing Enter or select any specific settings based on your requirements.

Once the installation is complete, start the virtio Guest agent service by running the following command:

sudo systemctl start qemu-guest-agent

Enable the virtio Guest agent service to start automatically on system boot by running the following command:

sudo systemctl enable qemu-guest-agent

Verify that the virtio Guest agent is running by checking the service status using the following command:

sudo systemctl status qemu-guest-agent

If the service is running, you should see a “active (running)” message. That’s it! The virtio Guest agent is now installed and running on your Ubuntu system.


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Installing EndeavourOS on Surface Pro 6

I kept running into an error when trying to do an online install of EndeavourOS, so I ended up doing an offline install with xfce (at this moment, the EndeavourOS ISO comes with the xfce Desktop Environment preinstalled), booted into it and installed plasma packages using https://wiki.archlinux.org/title/KDE#Plasma

  • Then uninstall all XFCE packages with:
    • sudo pacman -Rns xfce4 xfce4-goodies
  • Then install Surface Pro kernel and packages to get the touchscreen working:
    • https://github.com/linux-surface/linux-surface/wiki/Installation-and-Setup#Arch

Last updated on August 13, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Installing VirtIO Drivers on ProxMox VMs

The following steps should work the same on any ProxMox Windows installation, including: - Windows 2000 - Windows 2003 - Windows XP - Windows 7 - Windows 10

  1. Mount the virtio-drivers.iso file as a CD Drive

  2. Open Up Device Manager by going to “My Computer” > right click on any white space and select “Properties” > Go to the Hardware Tab > click on “Device Manager” ba0d3114a6f3f21b2add7188e01f85f7.png

Right click on the device that has not been properly installed and select “install driver” or “re-install driver” 231e1b19d1939edfba02ac07d53e1089.png

Select “Search for suitable driver for my device” and scan the CD-ROM drives for the drivers. 4eccd309c1878b1a9ea17809e02e4953.png

Windows will either find the virtio driver and install it, or it will fail to find a comptaible driver which usually means the VM Windows Version is too old for that virtio driver and it can be uninstalled so that users won’t get nagged about installing a driver each time the VM reboots. 0cebd6f67431fb8bcbab3abf9c2dbf09.png


Error: Windows cannot load the device driver for this hardware. The driver may be corrupted or missing (Code 39) 37c928ff984a78d16e27b395ca8c1414.png


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Migrating Virtual Machines to ProxMox using Macrium Reflect

Macrium Reflect has been my default go to for the past 2-3 yearsfor desktop backups, and Virtual Machine migrations between Hypervisor Systems. Macrium takes care of all the registry changes that need to be made to older virtual machines 7,XP, Windows 2000 to prevent the virtual machine from blue screening and failing to boot after restores. Using Macrium i migrated ~20 virtual machines hosted on Windows Server 2008, 2012, and VMWare ESXI 5 and 6 to a modern Proxmox Cluster without too much difficulty.

Backing Up

  1. Install Macrium Restore on a desktop/server and create a custom Macrium Recovery Boot Image that will be mounted on the virtual machine and booted from to create the image backup.

Macrium Custom Boot Base WIM Breakdowns: 7f5963382b03c98041066638ddce946e.png

  • Install Macrium WorkStation or Macrium Server inside the Virtual machine you want to migrate
  • create a macrium backup of the machine to either a network drive, or if possible an external SSD drive.
    • ProxMox makes it very easy to pass through a USB device or USB port to a virtual machine, and SSDs are much faster to restore from than a network drive.
  • if a restore is happening a little while after a backup, do an incremental backup as well, and when doing a restore select the incremental backup file

Restoring/Migrating

  • create a new Windows Virtual Machine within ProxMox (https://pve.proxmox.com/wiki/Windows_10_guest_best_practices)
    • Use IDE as the drive type to start with, and Intel100 as the network device to start with
  • If Windows XP VM, Follow https://pve.proxmox.com/wiki/Windows_XP_Guest_Notes
  • mount Macrium Recovery Media (MRESCUE_) and VirtIO ISO as CD drives.
    • Choose Mrescue Version based on Windows System you’re restoring based image at the top of page
  • You can either pass through a USB external drive to the VM to restore the image form, or have the image on a network drive, eg TrueNas-01 - NAS Server (network drive is easier, but might be slightly slower)
  • Mount TrueNas-01 - NAS Server’s Macrium folder as a network drive
  • Restore the macrium image. Once restore is complete, click “other tools” menu at the top and select “Restore to dissimilar hardware”. Click through the options, the default ones work just fine.
  • Once restore is complete, select ReDeploy to New Hardware menu option and the “Fix windows boot problems” options and go through their menus as below:

20240308_130936_thorium.png

20240308_130939_thorium.png

20240308_130941_thorium.png

20240308_130944_thorium.png

20240308_130951_thorium.png

20240308_130958_thorium.png

20240308_131005_thorium.png

20240308_131008_thorium.png

20240308_131014_thorium.png

20240308_131022_thorium.png

20240308_131025_thorium.png

20240308_131031_thorium.png

20240308_131039_thorium.png

  • Once done, reboot to your cloned virtual machine.
  • Once booted into the virtual machine, open up device manager, find any devices with missing drivers, right click on them and select “Update Driver Software”, and select check the “Search removable media” option. Windows will look through the folders and usually find the appropriate driver.
  • For windows 2000/xp you might need to mount an older version of virtio drivers to find compatible drivers.

20240308_132230_thorium.jpg

20240308_132239_thorium.png

20240308_132244_thorium.png

20240308_132254_thorium.png

20240308_132258_thorium.png

20240308_132302_thorium.png

20240308_132308_thorium.png

20240308_132407_thorium.png

Notes

MRescue_WRE10_v2004_VirtIO.iso will not show virtIO SCSI hard drive when in rescue environment MRescue_WPE4.iso will not show virtio SCSI hard drive when in rescue environment

Tips/Tricks/Extas

Windows Server 2008 R2 refused to recognize virtIO SCSI drive, so you have to pass hard disk as SATA. 1f4b685679d4c3a1b82228ebc06fbdd8.png

  • To Disable the “Found New Hardware” popups for drivers that you no longer have access to, add the following registry item:
    • https://web.archive.org/web/20201021110316/https://www.computertechblog.com/how-to-disable-the-found-new-hardware-wizard-in-windows-xp/
      • Not: Different Parameters if x86 or x64 system
    • 035c311d1c9d1a965660724778835b5b.png

Windows Server 2000 Migration

Migrating Windows Server 2000 to ProxMox

  • Booted Macrium rescue iso from the VmWare Plum VM, and made a system image back to \Teak\Macrium, then created a VM on ProxMox with all the normal settings, booted into Macrium Rescue SERVER edition, WPE 4.0, 32 bit, restored the image file, then while still within the backup media, clicked through the “redeploy to new hardware” options.
    • Without the “redeploy to new hardware” through Macrium, the VM gives a bluescreen and boot loops
      • ProxMox Drive Settings:
        • SCSI Controller: VirtIO SCSI
        • Main Drive: BUS/DEVICE: IDE, Cache: Write back d2f48d3497f4856f6951d7f195c54004.png
      • After booting into Windows 2003, go to COmputer > right click on white part and Properties > Hardware > Device Manager > Right click on each missing driver and install the driver from virtIO CD. Use the “Search CD/DVD automatically” option PCIE Device = virtIO Balloon Driver fcc64df70b42a7e527e47594d46bffba.png
  • More infor: https://pve.proxmox.com/wiki/Windows_2003_guest_best_practices

Last updated on July 19, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Office365 Office Suite - Installation & Configuration

an ODT Config file is used for deploying Office365 installations through Windows Toolbox - Windows Setup Script

ODT (Office Deployment Tool)

Basic Usage: - https://support.microsoft.com/en-us/office/use-the-office-offline-installer-f0a85fe7-118f-41cb-a791-d59cef96ad1c#OfficePlans=signinorgid

Exclude Applications: - https://answers.microsoft.com/en-us/msoffice/forum/all/installing-only-particular-office-365-programs/9ebb27d4-1084-42e7-b84a-c5dd76e9232c

Sharepoint Excel Desktop Shortcut

“C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE” “sharepointURLHERE”

Microsoft Projects

  • Microsoft projects has it’s own standalone installer that downloads and installas the latest version of the application when it’s run
    • Local version can be found at: \\smb\Toolbox\Installs\Projects\MicrosoftOfficeProjectSetup.exe
    • Since the application doesn’t have any options that you need to select, you can install it remotely through powershell or CMD through MeshCentral by just running the full filepath through Terminal. It wiill silently download and install projects with no user intervention required.

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Running Unraid as a Proxmox VM

  • Unraid is meant to be run on bare metal.
    • It is installed to a USB Flash drive and the license key is tied to the USB device ID. is installed. The system is then booted from that flash drive into RAM.
  • It turns out it’s not difficult at all to run it as a VM though, all you have to do is pass through the Unraid USB drive to a Proxmox VM (Setup as Linux VM), and use a passed through LSI card if you want to have Unraid manage your drives
    • Passing through motherboard connected drives directly to the VM does not work. Reason
    • You CAN pass through a SATA controller to the VM to directly pass through the drives, but unless your motherboard has multiple SATA controllers, this isn’t an option because Proxmox is most likely utilizing the controller already for your boot/system drive.
    • Next option is a PCIE HBA Card, eg: LSI 9207-8i 8 Port 6Gb/s SATA/SAS PCIe 3.0 x8 HBA
      • Bought in 2023 and has been working without issues so far
      • Motherboard needs to support IOMMU for this to work. GUIDE

VM Setup Options

  • After creating the VM, make sure to remove the Hard Disk drive as it’s not needed for Unraid. 6b9b68f1d2f8c5fb607b3c5291ad789e.png

Options

3c1ed58da8f5c69b1d1d1fa1ba4117be.png

HBA Card

81b0a07289279ce103100e71563e0ecb.png

Passthrough Unraid USB

9d15aed4c1cf7ad8853b33ab0899aa76.png

Passthrough HBA Card with Drives Attached

c3b1f2c8f4e31f2a7be3f5144b642681.png


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Testing Read/Write Speed Linux using dd

  • https://www.baeldung.com/linux/disk-performance-test

Testing Sequential Write Speed

dd if=/dev/zero of=/DIRECTORYTOTEST/ bs=1M count=1024 conv=fdatasync

Preview: c94b8b7e0653c018834f76bd112ac808.png

Testing Read Speed

# clear buffer cache
sudo sh -c "/usr/bin/echo 3 > /proc/sys/vm/drop_caches"


dd if=/DIRECTORYTOTEST/ of=/dev/null bs=1M count=1024

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Trust Relationship Failed on AD Windows 11

Problem:

After restoring a Proxmox VM snapshot, or restoring a desktop from a Macrium backup, the Active Directory integration gets broken and user gets a The trust relationship between this workstation and the primary domain failed error when trying to log in.

Fix

Logon to the VM using a local admin account and run powershell and execute

  • https://stackoverflow.com/questions/24775796/hyper-v-rollback-with-login-error-the-trust-relationship-between-this-workstati
Reset-ComputerMachinePassword -Server WSERVER -Credential yuriy@zinchuk.home ; shutdown /r /t 0 /f
Reset-ComputerMachinePassword -Server [MyDomainController] -Credential [MyDomain\administrator]

Fix 2

Instead of removing and readding, try this. Might save some time. This can be pushed out through a RDM like MeshCentral RDM

Test-ComputerSecureChannel -Verbose -Repair -Credential yuriy@zinchuk.home

Then Reboot

https://www.reddit.com/r/sysadmin/comments/11922e5/the_trust_relationship_between_the_workstation/j9kc08k/


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

UniFi L2TP VPN - Setup & Config

Windows 11 BUG - VERY SLOW Internet Speed while VPN is Connected

  • Ran into this issue recently after a user called me on their work from home day using their newly setup laptop complaining of unusable internet speed while their VPN was connected.
    • 8af02edff2d46abcb336e0472b1b394b.png
  • After doing a bit of research it seems like this is a recent but also a slightly recurring Windows 11 bug
  • Individual Device Fix: services.msc -> Routing and remote access -> change “start type” to Automatic (Delayed start) and click “Start” while in the user’s account SOURCE
  • Group Policy Fix(I ended up pushing this policy to all laptop devices without any issues): - Enable Routing and Remote Access to start automatically through System Services:
    • bf4f58f1d925c2f4ae218c6b4e8bf293.png
  • Possible other solution: Delete MiniWAN driver for L2TP VPN in device manager: - https://old.reddit.com/r/Windows11/comments/patot6/vpn_and_slow_speeds/hepti4t/

How to Setup UniFi VPN on UDM Pro

  • https://lazyadmin.nl/network/unifi-vpn/

Disable VPN Credentials For Network Resources

By default L2TP/IPSEC VPNs will try to use the VPN credentials for network resources like network shares. If you are not using Radius authentication with AD, you will need to disable this in the user’s VPN config file so the user’s login AD credentials get used instead of the VPN credentials.

  • https://serverfault.com/questions/322235/do-not-use-vpn-credentials-to-connect-to-network-resources
  1. Open Windows Run and open the following folder: %userprofile%\AppData\Roaming\Microsoft\Network\Connections\PBK
  2. Edit rasphone.pbk and change UseRasCredentials=1 to UseRasCredentials=0
    • If you do not do this, Windows will keep using the VPN credentials to connect to any network shares the user has mounted and will lock out the user’s AD account.
    • b4ed500d124f69d6226d557514d31110.png

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Windows XP - Disable Prompt to install new Hardware Wizard

Here is a “quick & dirty” way to get rid of the “Found New Hardware Wizard” if it’s popping up at every re-boot. I stumbled into this solution, even though when I searched a good bit for help, I never saw it.

Next time the Wizard pops up, go through the motions AS IF you were going to install the drivers.

At the first screen, pick “No, not this time” (as in don’t check with Microsoft for the drivers).

At the second screen, pick “Install from a specific location (as in don’t start searching the computer for the driver).

At the third screen, DE-select “Search removable media” and just below that, specify a folder on the computer that is EMPTY. This will cause the installation to immediately FAIL.

The fourth/failure screen – titled “Cannot Install This Software” – is the payoff. At the bottom of that screen, check off the box that says “Don’t prompt me again to install this software.” Click the Finish button.

  • https://superuser.com/questions/323391/how-can-i-disable-the-new-hardware-found-message-on-windows

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Contents

Click on a link in the list below to go to that page:

  1. Android & ADB
  2. Arch Linux Configurations
  3. Autohotkey - Configuration
  4. Bitwarden Password Manager
  5. Blue Iris & Reolink Security Cameras
  6. Boot Linux into CLI or GUI by Default
  7. Chocolatey Package Manager
  8. CopyQ
  9. Flameshot
  10. Jumpapp
  11. KDE Dolphin
  12. KDE Plasma Configuration
  13. Keymapper - Linux
  14. Librewolf & Firefox
  15. LineageOS on OnePlus 7 Pro
  16. Local Pacman Mirror Cache
  17. Pacman & Paru Commands Reference
  18. ProxMox Notes, Settings & Solutions to Issues
  19. ShareX
  20. Sublime Text
  21. Voidtools Everything
  22. XYplorer File Manager
  23. irFanView

Android & ADB

ADB Commands

  • Install an APK file
adb install APKFILENAME
  • Reinstall/update app
adb install -r APKFILENAME
  • Uninstall an app
adb uninstall PACKAGENAME
  • Disable an APP
pm disable NAMEOFPACKAGE
  • List all enabled apps, filter by “calculator”:
pm list packages -e | grep 'calculator'
  • List all disabled apps
pm list packages -d
  • Get information about device and settings through ADB
    • https://technastic.com/adb-shell-commands-list/

Android Intents

  • https://android.stackexchange.com/questions/23687/finding-out-the-intents-an-app-uses-internally
You can use adb to check what intents an app uses. The steps to do this are:

Enable developer options
Under developer options turn on adb debugging
Connect phone to computer
Get adb logs and grep out intents: adb logcat | fgrep -i intent
Trigger the intent on your phone
Inspect logs to find the details of the intent

disable IPV6

  • https://github.com/ukanth/afwall/wiki/CustomScripts#important-notes-about-ipv4-and-ipv6-differences
If you do not need IPv6 or your provider does not support it (native) you can just disable it via net.ipv6.conf.all.disable_ipv6=1 in your build.prop or better in your sysctl.conf file which will be applied right after the boot.

Last updated on July 15, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Arch Linux Configurations

Software Configurations

Keymapper - Linux

Fixing Mouse Cursor

  • https://forum.endeavouros.com/t/why-is-mouse-scroll-wheel-sensitivity-speed-so-exotic-in-linux/32885/10

FSearch

  • Enable background index update
    • https://github.com/cboxdoerfer/fsearch/wiki/Database-update

Set Default Grub Selection

  • https://wiki.archlinux.org/title/GRUB#Dual-booting
sudo nano /etc/default/grub ; sudo grub-mkconfig -o /boot/grub/grub.cfg

Change Sudo Timeout

sudo visudo

# Add underneath header comments
# change sudo timeout for yuriy user
Defaults:yuriy timestamp_timeout=30


  • Create a soft link to the .bashrc file in the syncthing config folder so it can easily be synced to other clients
    • https://stackoverflow.com/questions/1951742/how-can-i-symlink-a-file-in-linux
d $USER/Syncthing/Configurations/bashrc/.bashrc /home/yuriy/.bashrc

Install Chaotic AUR

  • https://aur.chaotic.cx/

Enable SSH

  • https://tuxfixer.com/configure-ssh-service-in-manjaro-linux/
sudo systemctl enable sshd.service ; sudo systemctl start sshd.service

Cron

  • https://www.simplified.guide/linux/automatically-run-program-on-startup

Re-Insert Windows 10 into Grub after Arch Install

  • https://forum.manjaro.org/t/windows-10-has-disappeared-from-grub-menu/57450/7
  • https://unix.stackexchange.com/questions/111889/how-do-i-update-grub-in-arch-linux
nano /etc/default/grub
# set: 
GRUB_DISABLE_OS_PROBER=false
# update grub config
grub-mkconfig -o /boot/grub/grub.cfg

Run Script on Sleep/Wake from Sleep

  • https://wiki.archlinux.org/title/Power_management#Hooks_in_.2Fusr.2Flib.2Fsystemd.2Fsystem-sleep

Disable TLP

sudo nano /etc/tlp.conf
# change TLP_ENABLE to 0

Misc Configurations

  • Make sudo timeout longer in terminal
    • https://www.tecmint.com/set-sudo-password-timeout-session-longer-linux/
  • Change Default Display/Login Manager
    • https://fostips.com/change-login-manager-ubuntu-debian-fedora-arch-linux/

Install and Enable Bluetooth

  • https://forum.endeavouros.com/t/so-why-doesnt-bluedevil-install-with-kde-plasma/26787/4
- Install bluedevil, set to auto start on boot, edit config file and enable autoenable and then restart the service

sudo pacman -Syu bluedevil ; sudo systemctl enable bluetooth ; sudo nano /etc/bluetooth/main.conf ; sudo systemctl restart bluetooth 

# Uncomment #AutoEnable=true to: AutoEnable=true

Last updated on August 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Autohotkey - Configuration

  • I use syncthing to sync all my files between my devices, including all the misc autohotkey libraries i use.
mklink /D C:\Users\yuriy\Documents\Autohotkey C:\Users\ity\Syncthing\Scripts\AutoHotKey

This way autohotkey scripts check my syncthing Authotkey lib folder for libraries instead of \Documents\Autohotkey\Lib, and i don’t have to constantly sync the two folders with each other.

Dark Theme for autohotkey.chm

  • Changing the autohotkey Documentation theme to a dark theme does not save it to the settings file, only sets the theme for the current instance.
  • When trying to save it you will receive an ActiveX Error, and then a failure due to chm not being run as administrator.
  • Fix: Copy chm_config.js to the following location:

e016f7b393e278698e99ae7322e79f0c.png


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Bitwarden Password Manager

Bitwarden is a fantastic password manager for personal and business environements; the ability to share passwords with other employees/groups, and also send self destructing notes is so much more secure than sticky notes / printouts / sharing credentials over chat platforms.

Disabling Auto Updates Nag:

  • On Startup, Bitwarden will show a popup prompting users to install an update if there is one available, but to actually install the update the user needs admin privilages.
  • This is a useless nag that cannot be disabled any doesn’t provide any benefit at all when Bitwarden is installed/automatically pushed out through Chocolatey.
  • The below workaround disables the ability for Bitwarden to auto download updates itself, which will also ensure the “install update” popup will not appear anymore.
  • This workaround is automatically put into place whenever Bitwarden is installed through the Windows Toolbox Setup Script

Windows [Source]

Delete (if exists) the following folder
C:\Users\%username%\AppData\Local\bitwarden-updater

Then re-create it as a write-protected empty file instead.
Now Bitwarden won't be able to update itself.

Automatically using powershell:

# Get the current user's username
$username = [Environment]::UserName

# Define the folder path to delete/recreate
$folderPath = "C:\Users\$username\AppData\Local\bitwarden-updater"

# Check if the folder exists
if (Test-Path -Path $folderPath) {
    # Delete the folder if it exists
    Remove-Item -Path $folderPath -Recurse -Force
}

# Create the folder as a write-protected empty file
New-Item -Path $folderPath -ItemType File -Force
Set-ItemProperty -Path $folderPath -Name IsReadOnly -Value $true

Last updated on August 16, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Blue Iris & Reolink Security Cameras

Blue Iris NVR Configuration

  • Network Settings > Port Number: 808 -Change this from the default 80 so there is no web UI reachable by default if someone visits the IP address. This forces all the traffic through NGINX Reverse Proxy with SSL Encryption.
  • Remote WAN access set to 0.0.0.0 as there is no need for cameras to be accessed through WAN
  • Blue Iris background service has to be registered with windows local admin account, domain admin doens’t work. Source

Blue Iris Web Interface

URL Parameters Several URL parameters can change UI3’s startup behavior.

ParameterEffectExample
maximize=1UI3 loads with the left and top control bars hidden.ui3.htm?maximize=1
tab=liveThe “Live” tab is loaded.ui3.htm?tab=live
tab=alertsThe “Alerts” tab is loaded.ui3.htm?tab=alerts
tab=clipsThe “Clips” tab is loaded.ui3.htm?tab=clips
group=groupnameThe group with the specified name is loaded.ui3.htm?group=index
cam=shortNameThe camera with the specified “Short name” is loaded.ui3.htm?cam=porch

eg: http://cameras.wmpco.biz/ui3.htm?t=live&maximize=1

Networking

  • For Maximum compatability and best performenace on the Blue Iris server, set the following settings:
  • Camera > Display > Watermark > OFF
  • Camera > Display > Date & Time > Show
  • Camera > Display > Camera Name > Hide (Optional)
  • Camera > Stream > Fixed Frame Rate > On, Fluency First
  • Camera > Stream > Frame Rate (FPS) > 15
  • Camera > Stream > Max Bitrate (Kbps) > 4096
  • Camera > Fluent > Frame Rate (FPS) > 10
  • Camera > Stream > Max Bitrate (Kbps) > 1024
  • Camera > Info > Camera Name > RSC-## (Optional)
  • Network Settings > Avanced > Enable UID > OFF (Reolink Mobile App Access)
  • Network Settings > Avanced > Port Settings >
    • RTSP > ON > (Port 554)
    • ONVIF > ON > (Port 8000)
  • System > User Management > Change Password > Set custom Password

RLC-811A

Adding Reolink to Blue Iris: https://www.youtube.com/watch?v=cuLpDo-TVK8

Substreams 6d2b7592fc25f207cc61967d0aca7830.png

Ultra Wide Angle Camera

https://www.amazon.com/REOLINK-Security-Ultra-Wide-Detection-Duo/dp/B0B2P9RL53/144-4656760-4503224 e99791619ce33232ace8027fcaf00177.png b6197bc7af72b74374b2cf46f08ea8f9.png


Last updated on July 09, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Boot Linux into CLI or GUI by Default

  • Boot systemd based Linux into CLI instead of GUI to minimize CPU/RAM usage, but also have the option of booting up the Desktop Environment if you need it.
  • https://unix.stackexchange.com/questions/90554/how-to-boot-linux-to-command-line-mode-instead-of-gui

Switch The Current Session

# Switch current session to tty (virtual console)
sudo systemctl isolate multi-user.target

# Switch current session to GUI
sudo systemctl isolate graphical.target

Set Default Session Type For Boot

# Set tty as default boot (virtual console)
sudo systemctl set-default multi-user.target

# Set GUI as default boot
sudo systemctl set-default graphical.target

NOTE: Secondary Networks will not work by default in KDE Plasma in multi-user.target until you log in, need to change the following:

  • You need to set the “All users may connect to this network” option in Network Settings for that network.
  • https://superuser.com/questions/16090/how-to-force-networkmanager-to-make-a-connection-before-login 532dce313fc9f1a95dfad7af1956be7d.png

Resource Usage Comparison

  • Using Plasma KDE desktop evironment 03162e1a4fdb03be7137bc534e69c1e1.png

Last updated on July 09, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Chocolatey Package Manager

General

  • Chocolatey is a command line Windows software management tool (similiar to Debian’s ‘’’apt’’’ and Arch Linux’ ‘’’pacman’’’)
  • https://community.chocolatey.org/courses/getting-started/how-to-use

Installation

  • https://chocolatey.org/install

Usage

  • Search for available packages:
    • https://community.chocolatey.org/packages
choco search PROGRAMNAME
  • to install a program
choco install PROGRAMNAME

To uninstall:

choco uninstall PROGRAMNAME

To update all installed software without confirmations

choco upgrade all -y

Chocolatey Auto Updates

choco install choco-upgrade-all-at --params "'/WEEKLY:yes /DAY:SUN /TIME:01:00 /ABORTTIME:05:00'"

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

CopyQ

Sending image to Clipboard

  • https://copyq.readthedocs.io/en/latest/writing-raw-data.html#writing-raw-data
cat /home/yuriy/Syncthing/DCIM-Personal/2024-08-31-17-39-07-217.jpg | copyq tab clipboard write image/png -

General

  • Disable items I don’t use from tray menu
    • 120abcaf2b94a2eb1093a7a16abb8786.png
  • Set Tray Menu Hotkey
    • 6a71ed7e4afa47de42871301fb9bc462.png
  • Set History Length to 9999
    • e39ee59b554e9becd868d95e82dd8139.png

Sync Clipboard between devices

  • https://github.com/hluk/CopyQ/issues/618 3ab1a67c68336b649d13adc9b7b821b6.png

Sync Config Between Devices

  • Soft Link the copyQ config so it can be synced between devices with Syncthing

Windows

# delete original folder
rd /S /Q "C:\Users\yuriy\AppData\Roaming\copyq"

# create junction to Syncthing configurations
mklink /J "C:\Users\yuriy\AppData\Roaming\copyq" "C:\Users\yuriy\Syncthing\Configurations\CopyQ"

Linux

rm ~/.config/copyq/copyq.conf && ln -s ~/Syncthing/Configurations/CopyQ/Linux-Config/copyq.conf ~/.config/copyq/copyq.conf


Last updated on September 12, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Flameshot

Automatic Accept on Region Selection

  • https://github.com/flameshot-org/flameshot/issues/1920
--accept-on-select

Syncing Flameshot Configuration between Devices

Linux

  • Remove current flameshot config and soft link the Syncthing’d flameshot config to the .config folder
rm ~/.config/flameshot/flameshot.ini && ln -s ~/Syncthing/Configurations/flameshot/flameshot.ini ~/.config/flameshot/flameshot.ini

Adding Window Title to Screenshot Filename

  • Flameshot does not and will not support this natively: https://github.com/flameshot-org/flameshot/issues/100
  • Workaround: use xdotool getwindowfocus getwindowname to get window name and then pass that in as an argument when activating flameshot through Keymapper - Linux

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

irFanView

Super snappy and lightweight image viewer for Windows. Faster than any other image viewer i’ve tested.

Scripting with Autohotkey

  • Command Line Scripting: https://www.etcwiki.org/wiki/IrfanView_Command_Line_Options
  • Utilizing the filepath of the image in the title of the window, we can run different actions on the currently open photo, for example, opening up the current photo in GIMP.
#IfWinActive, ahk_exe i_view64.exe
!E:: ; Alt + E
!O:: ; Alt + O
^P:: ; Control + P

WinGetTitle, ActiveWindowTitle, A
FileFilepath := StrSplit(ActiveWindowTitle, " - IrfanView")[1]

if(A_ThisHotkey = "!e"){ ; open file in GIMP
	run, "C:\Program Files\GIMP 2\bin\gimp-2.10.exe" "%FileFilepath%"
	Return
}

if(A_ThisHotkey = "^p"){ ; copy image filepath to clipboard
	Clipboard := FileFilePath
	Return
}

if(A_ThisHotkey = "~!O"){ ; Activate file in XyPlorer
	run, "C:\Program Files (x86)\XYplorer\XYplorer.exe" "%FileFilePath%"
	Return
}

#If

Settings

  • Enable Full Filepath in title bar so it can be used for scripting with autohotkey

    • 46601a4075c9e33ba91dedabec677a0b.png
  • Usability Settings:

  • irFanView_1.png

  • irFanView_2.png

  • irFanView_3.png

  • f9af64c9a8e0009399c8ae1c2ff26bf3.png

Configuration File Location

  • C:\Users\me\AppData\Roaming\IrfanView\i_view64.ini

Sync Settings between Computers

mklink "C:\Users\yuriy\AppData\Roaming\IrfanView\i_view64.ini" "C:\Users\yuriy\Syncthing\Configurations\irFanView\i_view64.ini"

Plugins

PlugIns are installed into IrfanView "PlugIns" directory 
 	C:\Program Files\IrfanView\Plugins

Last updated on July 20, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Jumpapp

The primary tool used for Run Or Raise Applications with Keyboard Shortcuts #linux

jumapp with Flatpak

  • https://github.com/mkropat/jumpapp/issues/55

Create a bash script in your path file:

sudo touch /usr/bin/discord
sudo chmod 777 /usr/bin/discord
sudo nano /usr/bin/discord
  • Place the following in the file:
#!/bin/bash
nohup flatpak run com.discordapp.Discord </dev/null >/dev/null 2>&1 &

jumpapp discord should now work

Non-Installed Apps

  • Since jumpapp is a wrapper for wmctrl, you can activate applications using wmctrl -a "WINDOW TITLE" if you can’t get jumpapp to work.

  • Check if Application open, and run it if not with wmctrl, and maximize it after launching

#!/bin/bash

# Set the application name 
app="Firefox"

# Check if window with that name exists
if wmctrl -l | grep -q "$app"; then
  # If yes, activate it 
  wmctrl -a "$app"
else
  # If no, launch the app
  /usr/bin/firefox &
  wmctrl -r "firefox" -b add,maximized
fi

  • One Liner to use with keymapper
wmctrl -a "APPNAME" 2>/dev/null || { PATHTOEXECUTABLE &>/dev/null & }; wmctrl -r "APPNAME" -b add,maximized

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

KDE Dolphin

Dolphin Config Files Location

  • https://stackoverflow.com/questions/71307393/dolphin-kde-sidebar-config-file-location-for-backup-and-export
KDE-Dolphin main configuration:

~/.config/dolphinrc (stowed)

~/.local/share/kxmlgui5/dolphin

~/.local/share/dolphin/view_properties

~/.local/share/kxmlgui5/dolphin/dolphinui.rc.

KDE-Dolphin sidebar and bookmark configuration:

~/.local/share/user-places.xbel (stowed)

KDE-Dolphin keyboard shortcuts configuration:

~/.config/kdeglobals

~/.config/kglobalshortcutsrc

~/.config/khotkeysrc

Remember Display Style for Each Folder

20240912_121146.png

Adjust the Default Settings:

92f1c93c665c008474ac57bc29cf3607.png

KDE DBUS

I jumped down the KDE dbus rabbit hole recently, trying to figure out how to replicate some of my XYplorer File Manager automation flows in Linux with the Dolphin file manager.

paru -S qt6-tools-desktop to install QT6 QDBUSViewer

Get All instances of dolphin

pgrep dolphin or qdbus6 org.kde.dolphin-* to view all dbus connectable instances of dolphin or qdbus6 | grep 'dolphin' to view all dbus connectable instances of dolphin

Get Objects

qdbus6 org.kde.dolphin-##### to list the object paths available on Dolphin

The dolphin process number changes each time: org.kde.dolphin-####, i need to get a list of dolphin processes and then use that process ID for the below commands instead of #####

  • Toggle Focus the terminal panel, if terminal is focused main window will be refocused qdbus6 org.kde.dolphin-##### /dolphin/Dolphin_1/actions/focus_terminal_panel org.qtproject.Qt.QAction.trigger

  • Copy Location of selected file: qdbus6 org.kde.dolphin-##### /dolphin/Dolphin_1/actions/copy_location org.qtproject.Qt.QAction.trigger

  • Trigger split view: qdbus6 org.kde.dolphin-##### /dolphin/Dolphin_1/actions/split_view org.qtproject.Qt.QAction.trigger

  • Open terminal HERE (cd current folder)

  • qdbus6 org.kde.dolphin-##### /dolphin/Dolphin_1/actions/open_terminal_here org.qtproject.Qt.QAction.trigger

  • View details mode:

  • qdbus6 org.kde.dolphin-##### /dolphin/Dolphin_1/actions/details org.qtproject.Qt.QAction.trigger

  • View ICONS mode:

  • qdbus6 org.kde.dolphin-##### /dolphin/Dolphin_1/actions/icons org.qtproject.Qt.QAction.trigger

  • Sort by name (text)

  • qdbus6 org.kde.dolphin-##### /dolphin/Dolphin_1/actions/sort_by_text org.qtproject.Qt.QAction.trigger

  • sort by modification time qdbus6 org.kde.dolphin-##### /dolphin/Dolphin_1/actions/sort_by_modificationtime org.qtproject.Qt.QAction.trigger

  • change the ascending/descending option for current column

  • qdbus6 org.kde.dolphin-##### /dolphin/Dolphin_1/actions/ascending org.qtproject.Qt.QAction.trigger

  • qdbus6 org.kde.dolphin-##### /dolphin/Dolphin_1/actions/descending org.qtproject.Qt.QAction.trigger

  • Undo closed tab

    • qdbus6 org.kde.dolphin-##### /dolphin/Dolphin_1/actions/undo_close_tab org.qtproject.Qt.QAction.trigger

https://freeaptitude.altervista.org/articles/playing-with-dbus-and-kde-applications-part-2.html

Available object paths:

 qdbus6 org.kde.dolphin-46051
/
/FileUndoManager
/MainApplication
/Sessions
/Sessions/1
/Windows
/Windows/1
/dolphin
/dolphin/Dolphin_1
/dolphin/Dolphin_1/actions
/dolphin/Dolphin_1/actions/open_kcommand_bar
/dolphin/Dolphin_1/actions/hamburger_menu
/dolphin/Dolphin_1/actions/file_new
/dolphin/Dolphin_1/actions/new_tab
/dolphin/Dolphin_1/actions/add_to_places
/dolphin/Dolphin_1/actions/file_close
/dolphin/Dolphin_1/actions/file_quit
/dolphin/Dolphin_1/actions/edit_undo
/dolphin/Dolphin_1/actions/edit_cut
/dolphin/Dolphin_1/actions/edit_copy
/dolphin/Dolphin_1/actions/edit_paste
/dolphin/Dolphin_1/actions/copy_to_inactive_split_view
/dolphin/Dolphin_1/actions/move_to_inactive_split_view
/dolphin/Dolphin_1/actions/show_filter_bar
/dolphin/Dolphin_1/actions/toggle_filter
/dolphin/Dolphin_1/actions/edit_find
/dolphin/Dolphin_1/actions/toggle_search
/dolphin/Dolphin_1/actions/toggle_selection_mode
/dolphin/Dolphin_1/actions/toggle_selection_mode_tool_bar
/dolphin/Dolphin_1/actions/edit_select_all
/dolphin/Dolphin_1/actions/invert_selection
/dolphin/Dolphin_1/actions/split_view
/dolphin/Dolphin_1/actions/split_view_menu
/dolphin/Dolphin_1/actions/popout_split_view
/dolphin/Dolphin_1/actions/split_stash
/dolphin/Dolphin_1/actions/view_redisplay
/dolphin/Dolphin_1/actions/stop
/dolphin/Dolphin_1/actions/editable_location
/dolphin/Dolphin_1/actions/replace_location
/dolphin/Dolphin_1/actions/go_back
/dolphin/Dolphin_1/actions/undo_close_tab
/dolphin/Dolphin_1/actions/go_forward
/dolphin/Dolphin_1/actions/go_up
/dolphin/Dolphin_1/actions/go_home
/dolphin/Dolphin_1/actions/compare_files
/dolphin/Dolphin_1/actions/open_preferred_search_tool
/dolphin/Dolphin_1/actions/open_terminal
/dolphin/Dolphin_1/actions/open_terminal_here
/dolphin/Dolphin_1/actions/focus_terminal_panel
/dolphin/Dolphin_1/actions/options_show_menubar
/dolphin/Dolphin_1/actions/options_show_statusbar
/dolphin/Dolphin_1/actions/options_configure_keybinding
/dolphin/Dolphin_1/actions/options_configure
/dolphin/Dolphin_1/actions/activate_tab_0
/dolphin/Dolphin_1/actions/activate_tab_1
/dolphin/Dolphin_1/actions/activate_tab_2
/dolphin/Dolphin_1/actions/activate_tab_3
/dolphin/Dolphin_1/actions/activate_tab_4
/dolphin/Dolphin_1/actions/activate_tab_5
/dolphin/Dolphin_1/actions/activate_tab_6
/dolphin/Dolphin_1/actions/activate_tab_7
/dolphin/Dolphin_1/actions/activate_tab_8
/dolphin/Dolphin_1/actions/activate_last_tab
/dolphin/Dolphin_1/actions/activate_next_tab
/dolphin/Dolphin_1/actions/activate_prev_tab
/dolphin/Dolphin_1/actions/show_target
/dolphin/Dolphin_1/actions/open_in_new_tab
/dolphin/Dolphin_1/actions/open_in_new_tabs
/dolphin/Dolphin_1/actions/open_in_new_window
/dolphin/Dolphin_1/actions/open_in_split_view
/dolphin/Dolphin_1/actions/create_dir
/dolphin/Dolphin_1/actions/renamefile
/dolphin/Dolphin_1/actions/movetotrash
/dolphin/Dolphin_1/actions/deletefile
/dolphin/Dolphin_1/actions/delete_shortcut
/dolphin/Dolphin_1/actions/duplicate
/dolphin/Dolphin_1/actions/properties
/dolphin/Dolphin_1/actions/copy_location
/dolphin/Dolphin_1/actions/basic_actions
/dolphin/Dolphin_1/actions/icons
/dolphin/Dolphin_1/actions/compact
/dolphin/Dolphin_1/actions/details
/dolphin/Dolphin_1/actions/view_mode
/dolphin/Dolphin_1/actions/view_zoom_in
/dolphin/Dolphin_1/actions/view_zoom_reset
/dolphin/Dolphin_1/actions/view_zoom_out
/dolphin/Dolphin_1/actions/zoom
/dolphin/Dolphin_1/actions/show_preview
/dolphin/Dolphin_1/actions/folders_first
/dolphin/Dolphin_1/actions/hidden_last
/dolphin/Dolphin_1/actions/sort_by_text
/dolphin/Dolphin_1/actions/sort_by_size
/dolphin/Dolphin_1/actions/sort_by_modificationtime
/dolphin/Dolphin_1/actions/sort_by_creationtime
/dolphin/Dolphin_1/actions/sort_by_accesstime
/dolphin/Dolphin_1/actions/sort_by_type
/dolphin/Dolphin_1/actions/sort_by_rating
/dolphin/Dolphin_1/actions/sort_by_tags
/dolphin/Dolphin_1/actions/sort_by_comment
/dolphin/Dolphin_1/actions/Document
/dolphin/Dolphin_1/actions/Image
/dolphin/Dolphin_1/actions/Audio
/dolphin/Dolphin_1/actions/Video
/dolphin/Dolphin_1/actions/Other
/dolphin/Dolphin_1/actions/sort
/dolphin/Dolphin_1/actions/ascending
/dolphin/Dolphin_1/actions/descending
/dolphin/Dolphin_1/actions/show_size
/dolphin/Dolphin_1/actions/show_modificationtime
/dolphin/Dolphin_1/actions/show_creationtime
/dolphin/Dolphin_1/actions/show_accesstime
/dolphin/Dolphin_1/actions/show_type
/dolphin/Dolphin_1/actions/show_rating
/dolphin/Dolphin_1/actions/show_tags
/dolphin/Dolphin_1/actions/show_comment
/dolphin/Dolphin_1/actions/Document
/dolphin/Dolphin_1/actions/Image
/dolphin/Dolphin_1/actions/Audio
/dolphin/Dolphin_1/actions/Video
/dolphin/Dolphin_1/actions/Other
/dolphin/Dolphin_1/actions/additional_info
/dolphin/Dolphin_1/actions/show_in_groups
/dolphin/Dolphin_1/actions/show_hidden_files
/dolphin/Dolphin_1/actions/view_properties
/dolphin/Dolphin_1/actions/lock_panels
/dolphin/Dolphin_1/actions/options_configure_toolbars
/org
/org/freedesktop
/org/freedesktop/FileManager1
/org/kde
/org/kde/dolphin
[yuriy@ELatitude14 Downloads]$ 


Last updated on September 12, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

KDE Plasma Configuration

Change screen timeout

Settings > Workspace Behavior > General Behavior > Screen Locking dd40f0dd7cc9ac8c7fb0ed4b40e0ee1a.png

Settings > Power Management > Energy Saving > Screen Energy Saving > Off be06b859742e97fa558c8f0297bcb3a1.png

Disable Previous Session Restore

Settings > Startup and Shutdown > Desktop Session > Start with an empty session

Disable Baloo File Indexing

System Settings > Search > FIle Search > Enable File Search (Disable)

Disable system sounds:

  • https://manurevah.com/blah/en/blog/Debian-KDE-Plasma—disable-system-sounds sudo mv /usr/share/sounds/ /usr/share/no_sounds/

Enable Wifi Networking on Login Screen

  • Allows fstab SMB mounts to be mounted automatically. WIll fail otherwise

20240715_091944.png

KDE Shortcuts Location

  • https://forum.kde.org/viewtopic.php?t=151477
~/.config/kglobalshortcutsrc

Synchronize KDE Global Shortcuts

rm "$HOME/.config/kglobalshortcutsrc"  ; ln -s "$HOME/Syncthing/Configurations/KDE/kglobalshortcutsrc" "$HOME/.config/kglobalshortcutsrc" 

Disable Titlebars in KDE Plasma

  • https://medium.com/@CodyReichert/how-to-hide-title-bars-in-kde-plasma-5-348e0df4087f
    • Go to System Settings > Window Management > Window Rules > New..
    • Under Window class (application) choose Regular Expression from the drop down and enter .* in the input.
      • As of 2024/09/12, using ^(?!.*\bJoplin\b).* instead. Joplin bugs out when not in full screen mode with no titlebar.
    • Click the “Add Property” Button. Enable the No titlebar and frame option.
    • Select Force from the drop down click the Yes radio option. 10334df32274f18f03ad5b835be9efb2.png

Kwallet Configuration

Install kwalletmanager and setup classic blowfish encryption

https://docs.kde.org/trunk5/en/kwalletmanager/kwallet5/introduction.html

  • Create a Kwallet named kdewallet, with blowfish encryption and same password as your login, and install pacman -S kwallet-pam to auto unlock on login
  • Another solution: One solution is to install kdewallet, and the reset the password to no password.

OR

Disable KWallet Popup

  • KWallet pops up when opening Chrome or Brave asking for authentication. (Used for encrypted password storage)
    • Don’t care about using this as i’m not saving passwords within either of the applications
  • Disable by: https://askubuntu.com/questions/47216/how-to-disable-kde-wallet
  • edit kwalletrc:nano ~/.config/kwalletrc and then add:
[Wallet]
Enabled=false

Then Kill process with: pkill kdewallet5

Note that the passwords and other data stored in kwallet are completely unencrypted if you do this and that any malicious application with read access to your home folder can read everything that it wants. There is no workaround for that, the encryption key is derived from the password and with no password there is no encryption.

There are only three real options here:

Disable auto-login and set your kwallet password to the same as your user password so that SDDM can pass your password to kwallet when you login in order to unlock it. (MOST SECURE OPTION)

Leave auto-login disabled and have a kwallet password so that your secrets are at least encrypted. (Less secure option).

Leave auto-login disabled and disable the kwallet password leaving everything stored in kwallet completely exposed and unencrypted. (INSECURE OPTION)

Note that kwallet implements the SecretService API which means that a lot of applications use it to store various secrets and keys, including all Chromium browsers for example which use it to store the encryption key for their own secrets (so if you're using Chrome/Vivaldi/whatever's built in password manager that's now exposed too).

On KDE Plasma based system to make sure that wifi passwords get saved on reboot, make the following changes:

  • https://askubuntu.com/questions/284770/how-to-disable-kde-wallet-and-have-remember-password-working
Go to the wifi settings in the network manager and change "Save password for this user only" > save password for all users
and input the network password above

Last updated on September 12, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Keymapper - Linux

Keymapper is a context-aware key remapper that can be used for system wide or per application shortcuts, it gives me a somewhat close experience to that of autohotkey’s system wide and context aware hotkeys.

  • https://github.com/houmain/keymapper

  • Symlink Keymapper config to Syncthing Folder

# Create symbolic link to configuration file in Syncthing Configs folder
ln -s /home/yuriy/Syncthing/Configurations/keymapper/keymapper.conf /home/yuriy/.config/keymapper.conf

# Enable & Start the keymapper daemon service
systemctl enable keymapperd ; systemctl start keymapperd
  • Configuration Backup
#

# add mappings in context which is active when boss key is not pressed
#[modifier="!Boss"]
# map Capslock to Control
CapsLock{Control} >> CapsLock
CapsLock          >> Control

[system="Linux" class="fsearch"]
Control{P} >> $(/home/yuriy/Syncthing/Configurations/keymapper/Shortcuts_Fsearch.sh "fullfilepath")
AltLeft{O} >> $(/home/yuriy/Syncthing/Configurations/keymapper/Shortcuts_Fsearch.sh "opendir")
AltLeft{E} >> $(/home/yuriy/Syncthing/Configurations/keymapper/Shortcuts_Fsearch.sh "edit")


#####################################
# Dolphin
[system="Linux" title="Dolphin"]
(Control){P} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Dolphin.sh "getfilepath")
Control {Shift P} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Dolphin.sh "getdir")
AltLeft{E} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Dolphin.sh "edit")
# AltLeft{C} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Dolphin.sh "chmod")
AltLeft{S} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Dolphin.sh "save")
#AltLeft{Z} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Dolphin.sh "zip")
#AltLeft{3} >> $(xdotool keydown ctrl key 1 keyup ctrl)
#AltLeft{1} >> $(xdotool keydown ctrl key 3 keyup ctrl)
#AltLeft{n} >> $(xdotool keydown alt key n keyup ctrl)


#####################################
# Sublime
# [system="Linux" title="Sublime Text"]
[title="Subl"]
#AltLeft{B} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Sublime.sh "newbashscript")
# (Control AltLeft){B} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Sublime.sh "newbashscriptnamed")
#AltLeft{P} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Sublime.sh "newpythonscript")
# (Control AltLeft){P} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Sublime.sh "newpythonscriptnamed")
AltLeft{O} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Sublime.sh "opendir")
#AltLeft{I} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Sublime.sh "reindent")
#AltLeft{O} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Sublime.sh "opendir")
Meta{Z} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Sublime.sh "kosole-dir")


#####################################
# Kate
[system="Linux" title="Kate"]
(Control Shift){N} >> $(kate -n --start General &)
AltLeft{B} >> $(/home/yuriy/Syncthing/Scripts/Bash/Tools/Shortcuts_Kate.sh "newbashscript")
(AltLeft Shift){B} >> $(/home/yuriy/Syncthing/Scripts/Bash/Tools/Shortcuts_Kate.sh "backup")
AltLeft{P} >> $(/home/yuriy/Syncthing/Scripts/Bash/Tools/Shortcuts_Kate.sh "newpythonscript")
(Control Shift){P} >> $(/home/yuriy/Syncthing/Scripts/Bash/Tools/Shortcuts_Kate.sh "copyfilename")





#####################################
# Browsers
[system="Linux" title=/Librewolf|Chromium|Brave|FiredDragon/i]
(AltLeft){A} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "archiveorg")
AltLeft{B} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "brave")
AltLeft{Z} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "braveincognito")
AltLeft{W} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "librewolf")
(AltLeft Shift){C} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "chromium")
AltLeft{C} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "chromiumincognito")
#AltLeft{X} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "clipboardurl")
#AltLeft{M} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "mpv720")
#AltLeft{O} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "KDEConnectDeviceOne")
AltLeft{O} >> $(/home/yuriy/Syncthing/Python/Tools/Shortcuts_Browser.py "OP7")
(AltLeft Shift){O} >> $(/home/yuriy/Syncthing/Python/Tools/Shortcuts_Browser.py "S4")
#(AltLeft Shift){O} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "KDEConnectDeviceTwo")
AltLeft{Q} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "BrowserShortcutsMessage")
#AltLeft{W} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "closeothertabs")
AltLeft{Y} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "ytdlp_video")
AltLeft(Shift){Y} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "ytdlp_videokeepconsole")
AltLeft{U} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "ytdlp_audio")
AltLeft(Shift){U} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "ytdlp_audiokeepconsole")
AltLeft{ArrowRight} >> BrowserForward
AltLeft{ArrowLeft} >> BrowserBack
Control{D} >> (AltLeft Shift){L} # for bookmarking with linkding
AltLeft{D} >> (AltLeft Shift){L} # for bookmarking with linkding
AltLeft{7} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "OpenURL7Pro")
AltLeft{4} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "OpenURLS4")
AltLeft{T} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "telegram")
AltLeft{P} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "wallabag")
AltLeft{Digit9} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "ntfy-OP9")
AltLeft{Digit6} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_Browser.sh "ntfy-S6")
(Control Shift){W} >> (AltLeft Shift){W} # Close Other Tabs

#####################################
# General
[system="Linux"]
F3 >> $(jumpapp fsearch; wmctrl -r "fsearch" -b add,maximized)
#F4 >> $(konsole --hold -e everything; sleep .25 ; xdotool type "fo" ; xdotool key enter)

Meta{B} >> $(jumpapp -f brave)
Meta{C} >> $(jumpapp -f chromium)
(Meta AltLeft){C} >> $(chromium --incognito)
Meta{E} >> $(wmctrl -a "discord" 2>/dev/null || { 'com.discordapp.Discord' &>/dev/null & }; wmctrl -r "discord" -b add,maximized)
# Meta{E} >> $(flatpak run com.discordapp.Discord)
#Meta{G} >> $(wmctrl -a "OpenPlayground")
Meta{G} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_wmctrl.sh "Poe")
Meta Shift{G} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_wmctrl.sh "gitea-freedomain")
Meta{A} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_wmctrl.sh "AdguardHome")
(Meta AltLeft){G} >> $(jumpapp -f gimp)
Meta{J} >> $(wmctrl -a "Joplin" 2>/dev/null || { "joplin-desktop" &>/dev/null & };)
Meta AltLeft{J} >> $(/home/yuriy/Executables/Joplin_Journal/Joplin-2.3.5.AppImage)
Meta{K} >> $(jumpapp -f keepassxc)
Meta AltLeft{L} >> $(systemctl suspend)
Meta Shift{T} >> $(jumpapp -f telegram-desktop)
(Meta AltLeft){N} >> $(jumpapp kate)
Meta{M} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_wmctrl.sh "MeshCentral")
Meta{N} >> $(jumpapp -f  subl)
Meta Shift{N} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_wmctrl.sh "ntfy")
Meta{I} >> $(jumpapp -f  kate)
(Meta AltLeft){I} >> $(~/Syncthing/Configurations/keymapper/Close_Windows.sh)
Meta{Q} >> $(jumpapp -f thunderbird)
(Meta AltLeft){S} >> $(/home/yuriy/Syncthing/Scripts/Bash/Tools/GetActiveWindowTitle.sh)
(Meta Control){S} >> $(/home/yuriy/Syncthing/Scripts/Bash/Tools/SetPermissionForBashAndPythonFiles.sh)
#Meta{S} >> $(jumpapp -f elisa)
Meta{S} >> $(jumpapp -f sonixd)
#Meta{S} >> $(jumpapp -f deadbeef)
Meta{T} >> $(wmctrl -a "sleek" 2>/dev/null || { "/home/yuriy/Executables/sleek-1.3.2-rc.1.AppImage" &>/dev/null & }; wmctrl -r "sleek" -b add,maximized)
Meta{P} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_wmctrl.sh "proxmox")
Meta Shift{P} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_wmctrl.sh "Unraid")
Meta{H} >> $(~/Syncthing/Configurations/keymapper/Shortcuts_wmctrl.sh "home")
Meta{W} >> $(jumpapp -f librewolf)
Meta{X} >> $(jumpapp -f dolphin)
Meta{Z} >> $(jumpapp -f konsole)
#(AltLeft {1}) >> $(sh /home/yuriy/Syncthing/Bash/Testing/gscan_clickScanButton.sh)
#(AltLeft {2}) >> $(sh /home/yuriy/Syncthing/Bash/Testing/gscan_clearScans.sh)
#(AltLeft {S}) >> $(sh /home/yuriy/Syncthing/Bash/Testing/gscan_clicksave.sh)


AltLeft{X} >> $(dbus-send --type=method_call --dest=com.georgefb.quickaccess /QuickAccess com.georgefb.QuickAccess.showMenu)

(CapsLock){D} >> $(/home/yuriy/Syncthing/Scripts/Bash/Tools/Rofi/FolderLauncher/FolderLauncher.sh)

AltLeft{Home} >> $(python "/home/yuriy/Syncthing/Freedomtn/RandomPodcast/PodcastOfTheDay.py")

# PrintScreen >> $(ksnip -r)
F11 >> $(flameshot gui -p /home/yuriy/Syncthing/Pictures/Screenshots/ --pin)
PrintScreen >> $(flameshot gui -c --accept-on-select -p /home/yuriy/Syncthing/Pictures/Screenshots/)
Insert >> $(flameshot gui -c --accept-on-select -p /home/yuriy/Syncthing/Pictures/Screenshots/)
F10 >> $(flameshot gui -c --accept-on-select -p /home/yuriy/Syncthing/Pictures/Screenshots/)
LaunchApp2 >> $(flameshot gui -c --accept-on-select -p /home/yuriy/Syncthing/Pictures/Screenshots/)
# F10 >> $(flameshot -pin --accept-on-select -p /home/yuriy/Syncthing/Pictures/Screenshots/)
#148 >> $(flameshot gui -c -p /home/yuriy/Syncthing/Pictures/Screenshots/)

AltLeft{ArrowUp} >> $(qdbus org.kde.kglobalaccel /component/kmix invokeShortcut "increase_volume")
AltRight{ArrowUp} >> $(qdbus org.kde.kglobalaccel /component/kmix invokeShortcut "increase_volume")
AltLeft{ArrowDown} >> $(qdbus org.kde.kglobalaccel /component/kmix invokeShortcut "decrease_volume")
AltRight{ArrowDown} >> $(qdbus org.kde.kglobalaccel /component/kmix invokeShortcut "decrease_volume")
MediaTrackNext >> $(qdbus org.kde.kglobalaccel /component/mediacontrol invokeShortcut "nextmedia")
MediaTrackPrevious >> $(qdbus org.kde.kglobalaccel /component/mediacontrol invokeShortcut "previousmedia")
MediaPlayPause >> $(qdbus org.kde.kglobalaccel /component/mediacontrol invokeShortcut "playpausemedia")

AltLeft{ArrowUp} >> AudioVolumeUp
AltLeft{ArrowDown} >> AudioVolumeDown
AltLeft{ArrowRight} >> MediaTrackNext
AltLeft{ArrowLeft} >> MediaTrackPrevious
NumpadAdd  >> AudioVolumeDown
NumpadSubtract  >> AudioVolumeUp

# https://unix.stackexchange.com/questions/21089/how-to-use-command-line-to-change-volume
#AltLeft{ArrowUp} >> $(amixer set Master 5%+)
#AltLeft{ArrowDown} >> $(amixer set Master 5%-)






Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Librewolf & Firefox

Userchrome

Finding Selectors for userchrome customization

  • https://gist.github.com/gmolveau/a802ded1320a7591a289fb7abd0d6c45

Fix White Flash with userchrome

  • No longer necessary on latest firefox versions
    • https://gist.github.com/gmolveau/a802ded1320a7591a289fb7abd0d6c45
    • make sure to enable toolkit.legacyUserProfileCustomizations.stylesheets

Misc

KeePassXC Connection Fix

  • https://gitlab.com/librewolf-community/browser/linux/-/issues/242
# soft link the mozilla folder to librewolf to fix keepass
ln -s ~/.mozilla/native-messaging-hosts ~/.librewolf/native-messaging-hosts

Enable Firefox Sync on Librewolf

  • Enable firefox account through policies.json:
    • /usr/lib/firedragon/distribution/policies.json and set disablefirefoxaccounts to false.
    • https://www.reddit.com/r/LibreWolf/comments/nzsi8n/enabling_mozilla_sync/
    • Edit /usr/lib/firedragon/firedragon.cfg
    // change this for syncing to work
    lockPref("identity.sync.tokenserver.uri", "https://token.services.mozilla.com/1.0/sync/1.5");
    
    // uncomment this to be able to isntall addons: defaultPref("privacy.resistFingerprinting.block_mozAddonManager", true);
    
    // change from true to false to fix youtube bars
    defaultPref("privacy.resistFingerprinting", false);
    
    // Set custom DNS server for DOH 
    pref("network.trr.uri", "https://day2dayautomation.com");
    
    

if issue with session restore, see here:

  • https://www.reddit.com/r/LibreWolf/comments/qooi6v/restore_previous_session_is_not_working/hju9gje/

Current Open Tabs Firefox File

  • https://stackoverflow.com/questions/28995733/where-does-firefox-save-currently-open-tabs-on-disk

Addons Configuration

Temporary Containers

  • General Settings:
    • bcf65502fe6275d527d0df55e6c945d6.png
  • Advanced Settings:
    • f4412bfa48243c302b01402dbaa4a425.png
    • https://gitlab.com/librewolf-community/browser/linux/-/issues/229
      • 20240731_010644.png

Tree Style Tabs

  • Disable Trees

  • https://github.com/piroor/treestyletab bba5dc76d4eb2185ed6c6e15f3002b2c.png

  • Make New Tabs Open at Top of Tree next to parent 0704cb2c10370b40976aa5d732b519c8.png

  • Set shortcut for closing other tabs in about:addons

    • 6cc43280d8d656c1de730fcb5d3b29e9.png

Ublock Origin

  • Disable block request count in icon, enable cloud storage, enable advanced user ca4b706a98e975d1d268ae121402dc5f.png
  • Enable Annoyances Blocklists: 5b76fc5ab1ad3c6c8602ebe19ebfde04.png

Multi-Account Containers

e3f2533a770c57150a20950111eacbdc.png

Reference

  • https://support.mozilla.org/en-US/kb/address-bar-autocomplete-firefox?redirectlocale=en-US&redirectslug=awesome-bar-search-firefox-bookmarks-history-tabs#w_changing-results-on-the-fly

Changing results on the fly

If you are looking for a specific type of result, like a bookmark or tag, you can speed up the process of finding it by typing in special characters after each search term in the address bar separated by spaces:

Add ^ to search for matches in your browsing history.
Add * to search for matches in your bookmarks.
Add + to search for matches in pages you've tagged.
Add % to search for matches in your currently open tabs.
Add # to search for matches in page titles.
Add $ to search for matches in web addresses (URLs).
Add ? to search for matches in suggestions. 

For example, if you’re looking for a page you bookmarked called Mozilla Firefox Support, you might type mozilla. The autocomplete results appear, but might not show the page you want.


Last updated on July 31, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

LineageOS on OnePlus 7 Pro

Background

  • Analytics about Everything you do: https://www.chrisdcmoore.co.uk/post/oneplus-analytics/

General

  • Device Model: guacamole (guacamoleB is OP7)

Custom Roms

  • https://wiki.lineageos.org/devices/guacamole/
  • https://xdaforums.com/t/rom-14-0-0_r35-unofficial-evolution-x-9-0-05-28-2024.4673786/
  • https://download.lineage.microg.org/guacamole/

Install ADB and fastboot software on arch linux: sudo pacman -S android-tools

  • boot into bootloader
adb reboot bootloader
  • boot twrp image from bootloader
fastboot boot twrp.img
  • Install a zip file through adb while in recovery:
adb sideload filename.zip
  • Install a custom Android 12 ROM

    • https://forum.xda-developers.com/t/rom-12-official-arrowos-12-0-for-oneplus-7-pro.4355029/page-10#post-85935617
  • Magisk Installation:

    • https://topjohnwu.github.io/Magisk/install.html#patching-images
  • Payload Dumper: https://github.com/vm03/payload_dumper

    • Tool for getting the boot.img for patching with magisk
  • BlissROM Android 10 ROM: https://forum.xda-developers.com/t/rom-official-q-r41-blissroms-v12-11-7pro-08-21-20.3957341/

remove software Navigation Bar

Edit: /system/build.prop and append to the end of the file:

qemu.hw.mainkeys=1 

Last updated on September 13, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Local Pacman Mirror Cache

I use Arch Linux as the underlying OS for most of my self hosting services, and with it being a rolling release distro I pull down updates for those servers on a very regular basis. Instead of downloading from the internet for each server, I host a local Pacman cache on one of the servers that all the others use as a repository mirror.

  • https://github.com/nroi/flexo
  • caching proxy for pacman, the package manager of Arch Linux.

Installation

Adding to Mirrorlist

echo 'Server = http://10.0.0.101:7878/$repo/os/$arch' | sudo tee -a /etc/pacman.d/mirrorlist
  • Add server to mirror list manually:
sudo nano /etc/pacman.d/mirrorlist

# Add somewhere on the list:
Server = http://10.0.0.101:7878/$repo/os/$arch

Testing

  • Edit mirrorlist and remove all mirrors except the local flexo IP, and then do a system upgrade with Pacman
sudo nano /etc/pacman.d/mirrorlist

Last updated on July 14, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Pacman & Paru Commands Reference

Full System Update and Upgrade

# Update the system package lists and re-install keyrings only if needed
sudo pacman -Sy archlinux-keyring chaotic-keyring endeavouros-keyring --noconfirm  --needed

# Update the system package lists and install all package updates without confirmation
paru -Syu --noconfirm --needed

# echo out number of packages stored in the cache:
echo $(sudo ls /var/cache/pacman/pkg/ | wc -l) packages in cache

# clear out paru/pacman caches for ALL installed/uninstalled packages
( echo "y"; echo "y" ) | sudo pacman -Scc

Update pacman packages with no confirmation

paru -Syu --noconfirm

--needed is used to upgrade packages only if newer versions are available or if they are not already installed. This flag ensures that the system only downloads and installs necessary updates, saving time and bandwidth.

pacman -Sy synchronizes the package database once a day pacman -Syy forces a complet synchronization regardless of the package database’s age. This is unnecessary most of the time.

pacman -Syy: This command updates the package lists on the system. It synchronizes the local package database with the remote package repositories to ensure you have the latest version information. The extra “y” forces a refresh, even if the database is already up to date.

pacman -Syu: This command updates the system packages to their latest versions. It synchronizes the package database as in the previous command, but it also upgrades all installed packages on the system to the latest available versions. The “-u” option is used to update all packages that are out-of-date.

pacman -Syu updates the system packages along with the package lists.

Clean Paru/Pacman cache

  • https://discovery.endeavouros.com/articles/root-partition-full-dont-panic-clear-pacmans-cache-first/2020/03/
    • Same as Pacman command,but this also cleans out AUR packages
# Clear cache for uninstalled packages
paru -Sc

# Clean Paru/Pacman Cache for EVERY package
paru -Scc

# Clean cache without confirmation
# https://bbs.archlinux.org/viewtopic.php?id=236186
( echo "y"; echo "y" ) | sudo paru -Scc

Export packages to file / Install packages from file

# put all explicitly installed packages (minus AUR) into a file
# can be run as user
pacman -Qqe | grep -Fvx "$(pacman -Qqm)" > FILE

# get all installed packages including AUR
pacman -Qqe > /home/yuriy/Syncthing/Configurations/Pacman+Paru/$(hostname)_pacmanpkglist.txt

# Add to autostart script to automatically export whenever computer boots
/home/yuriy/Syncthing/Scripts/Bash/Tools/ExportPacmanpkglist.sh

# reinstall from said file (deps will be pulled in automatically)
# must run as root
sudo xargs paru -S --needed --noconfirm < FILE

Pacman is currently in use, please wait

  • Pacman is locked, usually due to a reboot in the middle of updating
sudo rm /var/lib/pacman/db.lck

Use pacman to find which package provides a file

# Update Database
pacman -Fy 

# Lookup package for file
pacman -F /usr/bin/qdbus 

Results: e0d24a0f0e4193b83bc743c068b810d2.png


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

ProxMox Notes, Settings & Solutions to Issues

Proxmox CLI Quick Reference

Backup VM through CLI to a Proxmox Backup Server Storage

vzdump VMIDNUM -storage PBS-UNRAID

Force Shut Down Non-Responsive VM

# Option 1:
qm shutdown VMIDNUM --forceStop --skiplock

## Option 2: Really FORCE it
qm list
# And then: 
kill -9 PROCESSIDFROMQMLIST

Unlock VM

  • Happens if backup fails or gets cancelled ungracefully
  • https://community.spiceworks.com/how_to/17877-proxmox-vm-locked
qm unlock VMNUMBER

Start Windows VM in safe mode

  • F8 key while system is booting up
    • If not working: possible workaround: https://forum.proxmox.com/threads/how-to-enter-safe-mode-in-windows-2003-f8-does-not-work.20031/

Best Practices and Performance Tweaks

Arch Linux (EndevourOS):

  • No DE:
    • EOS-Installer needs at least 2 GB ram to install, 10 GB of Storage for easy Swap creation (No Hibernate) (Arch will use up 5GB)
      • When installing, set static IP through XFCE to save work later
  • https://forum.proxmox.com/threads/cpu-type-host-vs-kvm64.111165/
    • use HOST as CPU for better performance. (Keep in mind, VM will most likely CRASH after doing live migration due to hardware differences)

Windows:

Install qemu-guest-agent on Ubuntu

  • https://www.snel.com/support/nstall-qemu-guest-agent-for-debian-ubuntu/
sudo apt update && apt -y sudo install qemu-guest-agent

Expanding VM Storage

  • Depending on the VM OS, the extra disk space can show up after the next reboot, or you will have to manually expand the partitions
    • Windows and EndevourOS automatically recognize the extra disk space. You just have to expand it within Disk Management/gparted
  • https://kb.vander.host/disk-management/how-to-enlarge-an-ext4-disk-on-an-ubuntu-proxmox-vm/

Changing VM IDs

  • https://samuel.kadolph.com/2020/11/change-proxmox-vm-id-with-zfs-root-storage/
    • Need to test if this works

VMWare ESXI Migration

  • From VmWare ESXI, shutdown Virtual Machine, export is as a .ova template file to location ProxMox can access it, Extract the .ova file with 7zip to get contents and then import the .vmdk file to ProxMox virtual machine using steps:
  • https://www.itsfullofstars.de/2019/07/import-ova-as-proxmox-vm/
  • qm importdisk VMIDNUM VMDKFILENAME.vmdk local-lvm -format qcow2

Disable “No Valid Subscription” pop-up on login on Testing Nodes

    • https://www.reddit.com/r/Proxmox/comments/i4ogy2/comment/i1v7rin/?utm_source=share&utm_medium=web2x&context=3
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

Unable to Login to WebUI after changing node’s IP address

  • Ran into this issue when i changed one of the node’s IP addresses. once the node rebooted, no longer able to login through WebUI. SSH worked fine though.
  • https://forum.proxmox.com/threads/proxmox-ve-login-failed-please-try-again.55488/page-2
systemctl stop pve-cluster corosync
pmxcfs -l
rm /etc/corosync/*
rm /etc/pve/corosync.conf
killall pmxcfs
systemctl start pve-cluster

Get Sensor Info

  • https://forum.proxmox.com/threads/temperature.67755/
apt install xsensors ; sensors

ZFS storage on root disk

Migrating Virtual Disks Between VMs

  • https://dae.me/blog/2340/how-to-add-an-existing-virtual-disk-to-proxmox/

SMB/CIFS/SAMBA Share Mount Location

/mnt/pve/<STORAGE_ID>/
  • https://pve.proxmox.com/wiki/Storage:_CIFS

ProxMox Networking

  • View list of network cards and Status
ip -c a

permission denied - invalid PVE ticket (401) error

  • Usually due to system time mismatches between nodes.
  • https://forum.proxmox.com/threads/3-node-cluster-permission-denied-invalid-pve-ticket-401.56038/
  • SSH into nodes having issue and restart following services:
systemctl restart pvedaemon pveproxy

Changing VM IDs

  • https://samuel.kadolph.com/2020/11/change-proxmox-vm-id-with-zfs-root-storage/
    • Need to test if this works

Replacing Failing/Failed Drive in ZFS Array

  • https://blog.fahadusman.com/proxmox-replacing-failed-drive-in-zfs-pool/

Config Locations

80948ec922b3f43aacfeaf7a9f0c4536.png

Unknown option “Affinity” error when trying to increase Core/Socket count for VM

Parameter verification failed. (400)
delete: unknown option 'affinity'

d5f1acc6d94e529915bfab43db92724c.png

Solution: Update all nodes in cluser and do a restart

- This is from a package version incompatability between nodes
- https://forum.proxmox.com/threads/unknown-option-affinity.119038/

Cannot Change Display Resolution for Windows VM in ProxMox

  • If needing the ability to change display resolutions for Windows Virtual Machine, set Display to virtIO-GPU under Hardware
    • 0a520d8606d5b3142c1fe4092da1a3f8.png
  • Then install the virtio Display drivers through device manager. (Add virtio drivers as CD in VM hardware)
    • 3c87eaf90a06c121be445b88d2f22143.png

ProxMox Hard Disk Speed Comparisons (IDE/SATA/VIRTIO/VIRTIO SCSI)

5c4502d6f07f20d58c2cf3a0be16c882.png

Removing Proxmox Node From Cluster

  • https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_remove_a_cluster_node
  • https://forum.proxmox.com/threads/deleted-cluster-node-still-shows-up-in-my-gui.11614/ Sometimes the node will still appear in the GUI after it’s been deleted. To fix, delete it’s directory in /etc/pve/nodes/

Last updated on July 09, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

ShareX

ShareX Deployment

https://github.com/ShareX/ShareX/issues/4460

  • C:\Users\ity\Documents\ShareX\ApplicationConfig.json
  "CustomScreenshotsPath": "%UserProfile%\\Pictures\\Screenshots",
  
  "DisableUpload": true,

Installing Silently

  • https://silentinstallhq.com/sharex-silent-install-how-to-guide/

Personal Settings

  • Export Config : Application Settings > Settings > Export/Import

  • Configuration File Location:

    • C:\Users\yuriy\Documents\ShareX\ApplicationConfig.json
    • Maybe sync with other devices through backuptool.ahk?
  • Application Settings > Integration >

    • Show “Upload with ShareX” > YES
    • Show “Edit with ShareX” > YES
  • Application Settings > Paths >

    • Use Custom Screenshot Folder > C:\Software\Syncthing\Screenshots
    • Sub Folder Pattern > BLANK
  • Application Settings > Advanced > AutoCheck Update > False

  • Task Settings > General > Play Sounds > NO

  • Task Settings > General > After Task Completed > Show Nothing

  • Task Settings > File Naming >

    • Naming Pattern:
      • %y%mo%d_%h%mi%s_%pn
    • Use window name pattern for region capture > YES
  • After Capture Tasks > Copy Image to Clipboard, Save Image to file

  • Capture > Show Cursor > NO

  • Fix Cursor issue when doing screen recording:

    • https://github.com/rdp/screen-capture-recorder-to-video-windows-free/issues/56#issuecomment-306921671
  • Hotkeys:

49c3f2f7d2053fb0360e6aef4edfbd54.png

Video Recording

Task Settings > Screen Recording > Install Recorder Devices 307da76eb933b0bf1273d5140a7a6667.png


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Sublime Text

Syncing Sublime Keyboard Shortcuts between Devices

  • I use syncthing to synchronize my keyboard configuration between devices so as my workflow changes and grows I don’t have to repeat the same configuration procedures on multiple devices.

Linux

ln -s "/home/yuriy/Syncthing/Configurations/Sublime/Keymap/Default (Windows).sublime-keymap" "/home/yuriy/.config/sublime-text/Packages/User/Default (Linux).sublime-keymap"

Windows

mklink "C:\Users\yuriy\AppData\Roaming\Sublime Text\Packages\User\Default (Windows).sublime-keymap" "C:\Users\yuriy\Syncthing\Configurations\Sublime\Keymap\Default (Windows).sublime-keymap"

Syncing Sublime Session

Session data is saved in: C:\Users\yuriy.zinchuk\AppData\Roaming\Sublime Text\Local Can move it to Syncthing folder by creating a symlink:

# remove folder with: 
rd /S /Q "C:\Users\yuriy.zinchuk\AppData\Roaming\Sublime Text\Local"
# create symlink junction (Preferred)
mklink /J "C:\Users\yuriy.zinchuk\AppData\Roaming\Sublime Text\Local" "C:\Users\yuriy.zinchuk\Syncthing\Configurations\Sublime\Sublime_Local"
# create folder symbolic link (Less used, but works with network locations)
mklink /d "C:\Users\yuriy.zinchuk\AppData\Roaming\Sublime Text\Local" "C:\Users\yuriy.zinchuk\Syncthing\Configurations\Sublime\Sublime_Local"

Packages

  • Autohotkey
  • Sublime-path-tools
    • https://github.com/pjdietz/sublime-path-tools/blob/master/Context.sublime-menu
  • PowerShell

Useful Features

  • Control + D while word is selected, will highlight the next instance of the same word.
  • Copy/Paste while multiple individual items are selected, will paste the multiple items.

Customized Hotkeys

mklink "C:\Users\ity\AppData\Roaming\Sublime Text\Packages\User\Default (Windows).sublime-keymap" "C:\Users\ity\Syncthing\Configurations\Sublime\Keymap\Default (Windows).sublime-keymap"
[
    { "keys": ["ctrl+shift+w"], "command": "close_all" },
    { "keys": ["alt+r"], "command": "build" },
    { "keys": ["alt+1"], "command": "toggle_comment", "args": { "block": false } },
    { "keys": ["alt+c"], "command": "toggle_comment", "args": { "block": false } },
    { "keys": ["alt+2"], "command": "toggle_comment", "args": { "block": true } },
    { "keys": ["alt+d"], "command": "duplicate_line" },
    { "keys": ["ctrl+shift+s"], "command": "prompt_save_as" },
    { "keys": ["alt+shift+s"], "command": "toggle_side_bar" },
    { "keys": ["ctrl+s"], "command": "save" },
    { "keys": ["alt+t"], "command": "save" },
    { "keys": ["f13"], "command": "save" },
    { "keys": ["alt+q"], "command": "wrap_lines" },
    { "keys": ["ctrl+alt+w"], "command": "close" },
    { "keys": ["ctrl+p"], "command": "copy_path" },
    { "keys": ["ctrl+shift+p"], "command": "copy_file_name" },
    { "keys": ["ctrl+alt+p"], "command": "copy_file_directory" },
    { "keys": ["ctrl+alt+shift+p"], "command": "show_overlay", "args": {"overlay": "command_palette"}},
]


Useful Packages

  • https://www.tomordonez.com/sublime-text-typewriter-auto-scroll/
    • Scrolls the page down automatically for you
  • https://www.youtube.com/watch?v=xFciV6Ew5r4
  • SidebarEnhancements
  • BracketHighliter
  • https://github.com/ahkscript/SublimeAutoHotkey
    • More customizable than the one installed directly through package manager

Useful Hotkeys

  • Open Package Palette (Control + Shift + P)

Hotkey Configuration File

C:\Users\me\AppData\Roaming\Sublime Text 3\Packages\User\Default (Windows).sublime-keymap

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Voidtools Everything

A lightning fast Windows file search tool.

1.5 Alpha Version with Native Dark Theme

  • https://www.voidtools.com/forum/viewtopic.php?f=12&t=9787

Scripting with Autohotkey

Uising the UI ID’s we can send commands to voidtools from autohotkey using SendMessage

Autohotkey Based Hotkeys Examples

#IfWinActive ahk_class EVERYTHING_(1.5a)

; close window
Escape::SendMessage, 0x111, 40011,,, ahk_class EVERYTHING_(1.5a)

; Focus search edit box
^f::SendMessage, 0x111, 42000,,, ahk_class EVERYTHING_(1.5a)

; Show details view 
!1::SendMessage, 0x111, 40051,,, ahk_class EVERYTHING_(1.5a)

; Show large icon 
!3::SendMessage, 0x111, 40053,,, ahk_class EVERYTHING_(1.5a)


!E:: ; edit file
!O:: ; open file's directory
^P:: ; Copy Filepath to Clipboard
^+P:: ; Copy File's Directory Filepath to Clipboard
^+c:: ; Copy Image to clipboard using XyPlorer action

; Grab the Window Text from voidtools Everything
; Gives us filepath, file size, file directory and date modified
WinGetText, WindowText , ahk_class EVERYTHING_(1.5a)
Filepath := StrSplit(WindowText, "`r")[1] ; pull out filepath from first line
SplitPath, FileFilePath, OutFileName, OutDir, OutExtension, OutNameNoExt, OutDrive


If (A_ThisHotkey = "!O" OR A_ThisHotkey = "~!O" OR A_ThisHotkey = "^+c" )
{
	run, "C:\Program Files (x86)\XYplorer\XYplorer.exe" "%FileFilePath%"

	if(A_ThisHotkey = "^+c"){
		sleep, 500
		FunctionMessagetoXYplorer(115) ; copy image to clipboard
		sleep, 250
		FunctionMessagetoXYplorer(351) ; Close active tab in xyplorer

		WinActivate, ahk_exe Everything64.exe
	}
	return 
}

; Control + E - Edit Selected File
if(A_ThisHotkey = "!E" OR A_ThisHotkey = "~!E")
{
	EditAFile(FileFilePath)
}

; Copy filepath to clipboard
if(A_ThisHotkey = "^P" OR A_ThisHotkey = "~^P")
{
	Clipboard := FileFilePath
	return
}

; Copy File Directory to Clipboard
if(A_ThisHotkey = "^+P" OR A_ThisHotkey = "~^+P")
{
	Clipboard := OutFileName
	return
}

return

#IfWinActive

Settings

Misc Settings

  • Options > Indexes > NTFS > Automatically include new fixed volumes (OFF)
  • Options > Indexes > NTFS > Automatically include new removable volumes (OFF)
  • Options > Indexes > Network Drives > Automatically Include new mapped network drives (ON)
  • Options > Indexes > Network Drives > Automatically remove offline mapped network drives (OFF)

Excludes

  • These folders are never actually useful in the results. Always ignore them. Tools > Options > Indexes > Exclude
C:\Users\USERNAMEHERE\AppData\Roaming\Microsoft\Windows\Recent
C:\Windows\
C:\Windows\Prefetch
C:\Windows\WinSxS\
C:\Users\USERNAMEHERE\AppData\Local\Microsoft\
C:\$Recycle.Bin

Program settings are saved to:

 C:\Users\yuriy\AppData\Roaming\Everything\Everything.ini
  • Best way to sync settings between computers is to copy this file and then copy and paste line 464: exclude_folders from the previous version. Tried making an AHK script to constantly copy/paste the file between devices but was too buggy to work well.

Deployment

  • Can be easily deployed with chocolatey install using choco install -y everything
  • By default Everything will index your C: drive, BUT nothing else, so if you want to index mounted network drives you will have to set up the settings on a test device and then copy the everything.ini configuration file to to all users using the following Powershell Script:
# Kill everything process before copying config file
Stop-Process -Name "Everything" -Force

$EverythingConfigDir = "C:\Users\" + ${env:USERNAME} + "\AppData\Roaming\Everything"

# copy config file to current user
Copy-Item "Everything.ini" -Destination "${EverythingConfigDir}\Everything.ini"

# copy to DEFAULT user so all future created profiles receive config
New-Item -Path "C:\Users\Default\AppData\Roaming\Everything\" -ItemType Directory
Copy-Item "${ParentFolder}\Everything\Everything.ini" -Destination "C:\Users\Default\AppData\Roaming\Everything\Everything.ini"

# Start up Everything, rescan all folders, insstall for all users and install the autostart service, and add everything to windows context menu
; Everything arguments: https://www.voidtools.com/support/everything/command_line_options/
& "C:\Program Files\Everything\Everything.exe" -rescan-all -install-all-users-start-menu-shortcuts -install-service -install-run-on-system-startup -install-folder-context-menu


Last updated on July 28, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

XYplorer File Manager

The BEST Windows File Manager.

  • Split Window
  • Tabs Support
  • Scripting support natively, and from external libraries like Autohotkey
  • User Customizable Toolbar with Scripts/Shortcuts

Syncing Configuration Between Computers

  • XYplorer makes it super easy to set a custom directory where your configuration is stored, which you can then sync to your other devices using a file syncing tool like Syncthing. This way any changes you make to your bookmarks, settings, scripts, etc get synced to your other systems.

Setting up a Synced Configuration

  • Edit startup.ini
C:\Program Files (x86)\XYplorer\Startup.ini
  • Change the Path variable to the location of the folder you want to keep your portable configuration inside of.
[Appdata]
Path=C:\Path\To\Your\Custom\Folder
  • Sync this folder to your other computers using Syncthing.

Send Command from Autohotkey

XYPlorer is scriptable in a way that I have not seen in any other file manager. Just about any action that you can run using your mouse, keyboard can also be run by executing the matching command #, either from within XYplorer’s scripting interface or from an outside application like AutoHotkey. Combined with Autohotkey’s System wide keyboard/hotstrings shortcuts, you get a super powerful combo.

List of Command ID Numbers Can be found by going to Help > List all Commands within XYPlorer 7b4ed0000f68ad5ef33d33894801869d.png

Example:

FunctionMessagetoXYplorer(101) ; Copy Filepath to Clipboard of Selected Item
FunctionMessagetoXYplorer(115) ; Copy image to clipboard for pasting into photo editor
; 
FunctionMessagetoXYplorer(FunctionNumber) {        ; Send message to XYplorer
  ; https://www.xyplorer.com/xyfc/viewtopic.php?f=7&t=9233#p82412

  if(!InStr(MessagetoXYplorer, "::#"))
  MessagetoXYplorer = ::#%FunctionNumber%

  SetTitleMatchMode, 2
  HWND := WinExist("XYplorer ahk_class ThunderRT6FormDC")
  Size := StrLen(MessagetoXYplorer)
  If !(A_IsUnicode)
  {
    VarSetCapacity(Data, Size * 2, 0)
    StrPut(MessagetoXYplorer, &Data, Size, "UTF-16")
  }
  Else
  Data := MessagetoXYplorer

  VarSetCapacity(COPYDATA, A_PtrSize * 3, 0)
  NumPut(4194305, COPYDATA, 0, "Ptr")
  NumPut(Size * 2, COPYDATA, A_PtrSize, "UInt")
  NumPut(&Data, COPYDATA, A_PtrSize * 2, "Ptr")
  SendMessage, 0x4a, 0, &COPYDATA, , ahk_id %HWND%  ; This is the original funciton
  ; SendMessage, 0x4a, 0, &COPYDATA, , ahk_id %HWND%,,,,1   ; my modified version. Added a time out and it seems to work just fine
}

XYPlorer Scripting

  • if code goes for multiple lines, indent every line after the first one

  • Display a msgbox with each filepath that is selected

// selected list items
 foreach($token, <get selecteditemspathnames |>) {
   echo $token;
 }	
  • Save all selected filepaths to 1 variable and display it
set $filepaths, <get selecteditemspathnames>;
    msg $filepaths;
  • Get all filepaths and send as 1 parameter to an ahk script
 set $filepaths, <get selecteditemspathnames>;
    run "C:\Software\Syncthing\AutoHotKey\Testing\Testing_ReceiveVariable.ahk $filepaths";

  • Append multiple variables to same variable and display a msgbox with the var
$a = "1"."2"; msg $a;

Configuration

  • Configuration File Locaiton
    • C:\Users\yuriy.zinchuk\AppData\Roaming\XYplorer\XYplorer.ini
    • Easy way to open up config file: Tools > Open Configuration File
  • Catalog File Location
    • C:\Users\yuriy.zinchuk\AppData\Roaming\XYplorer\Catalogs\catalog.dat

Synchronize XYPlorer Config Files between devices

  • Edit startup.ini
C:\Program Files (x86)\XYplorer\Startup.ini
  • Change the Path to configuration Location:
[Appdata]
Path=C:\Users\ity\Syncthing\Configurations\XYPlorer\WMTPaper
  • https://www.xyplorer.com/xyfc/viewtopic.php?f=3&t=23517&p=191130&hilit=sync#p191130

Custom Keybaord Shortcuts

  • Alt + 1 > Detailed View

  • Alt + 3 > Thumbnail #3

  • Control + E > Copy Filepath (Used with AHK to extract .zip files)

  • Scripting Tutorial : https://www.xyplorer.com/tour.php?page=scripting


Startup Speedup

To Get Startup Speed, place the following in the address bar:

text <get loadtimes>, 800, 680;
  • Disable Mini Tree Caching
    • https://www.xyplorer.com/xyfc/viewtopic.php?f=5&t=21833&p=178823&hilit=disable+tree#p178823
    • f96766d692d735768e876167879b9b1d.png
    • f1e2c36d42ecc6da284f0b7d006060b9.png
  • Check your startup times
    • https://www.xyplorer.com/xyfc/viewtopic.php?f=2&t=16983&p=145942&hilit=disable+tree+startup+time#p145942

cea97c4a66f6d3ff9c78447bfe2e2829.png

61838ca1b45d811a77434ac29be02b1c.png

69c618b62601651e4511c77159c92570.png

5422c354388678d201dda28e2b433d48.png

Custom Settings

  • Speed up network drive access:

    • 8a03c29c6c48a6e71e1c7155c3cfc289.png
    • https://www.xyplorer.com/xyfc/viewtopic.php?p=173942
  • Enable Folder size caching

    • 4345e8025fb04dae33762de435644c85.png
    • https://www.xyplorer.com/xyfc/viewtopic.php?t=19263

Settings that May Affect Speed

  • Open Up “Various Information” Box by control + Click on “Various Information” under XyPlorer help dropdown.
    • 41e358802595054376cd29f0bc5efd99.png

f9897ee47386994f824576955231b9f3.pnge


Teracopy Custom Copy Handler

  • https://www.xyplorer.com/xyfc/viewtopic.php?t=2596&start=225 You need to tell it where TeraCopy (path to exectuable) is and how you want to use it (switches).
  • Configuration > File Operations > External Copy Handlers > Configure
    TeraCopy|C:\Program files\TeraCopy\TeraCopy.exe|/Close /open_window
    
  • Select Copy Handler > TeraCopy

Xyplorer Keyboard Shortcuts Reference

Ref_XYPlorerKeyboardShortcuts.pdf

Synchronize Configuration Between Machines

  • https://www.xyplorer.com/xyfc/viewtopic.php?f=3&t=23517&p=191130&hilit=sync#p191130

2022/06/22

  • Made following changes to xyplorer ocnfig to try to make network folder browsing faster: https://www.xyplorer.com/xyfc/viewtopic.php?t=8020

XY Scripting

XyPlorer Program Variables

Can by found by clicking Help > Environmental Variables


Last updated on July 19, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Contents

Click on a link in the list below to go to that page:

Contents

Click on a link in the list below to go to that page:

  1. IP Lookup API - ip-api.com
  2. Proxmox QM and PVESH CLI Reference
  3. linkding - API

Proxmox QM and PVESH CLI Reference

Clone a VM

qm clone VMIDTOCLONE NEWVMIDNUMBER --name "VMNAME" --full true
  • Set the macaddress for VM’s primary NIC
qm set 1001 --net0 virtio,macaddr=BC:24:11:6B:7D:2B,,bridge=vmbr0,firewall=1
  • Migrate a VM to a different node and specify the storage
qm migrate 1004 sandalwood --targetstorage NVME-01

Controlling VMs on different Nodes using pvesh

For controlling VMs on different nodes than the one you’re accessing the terminal from you have to use pvesh CLI tool

  • https://pve.proxmox.com/pve-docs/pvesh.1.html

  • Start a VM on different node

pvesh create /nodes/NODENAME/qemu/VMIDNUMBER/status/start
  • Reboot a VM on different node
pvesh create /nodes/sandalwood/qemu/1005/status/reboot
  • Forcefully reset a VM on different node (similiar to forcefully unplugging pc from power)
pvesh create /nodes/sandalwood/qemu/1005/status/reset
  • Shutdown a VM on a different node
pvesh create /nodes/sandalwood/qemu/1005/status/shutdown
  • Delete a VM on a different node.
  • Have to use the pvesh CLI to control the VMs on the different nodes
    • https://forum.proxmox.com/threads/issue-qm-shutdown-from-one-node-to-another.44150/
    • https://pve.proxmox.com/pve-docs/pvesh.1.html
pvesh delete /nodes/NODENAME/qemu/VMIDNUMBER ; 
  • Script to query the Proxmox API for VM name and set hostname of the VM accordingly
    • https://github.com/badsmoke/proxmox-auto-hostname

Last updated on July 31, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Contents

Click on a link in the list below to go to that page:

Gym Workout Routine

Back Day                          Weight
Barbell Rows5x5
Deadlift5x5225
Dumbell Rows3x8
Seated Rows3x8
Lat Pulldowns3x10
Shrugs3x1045
Pull Ups3x10

Shoulders + Triceps       Weight
Overhead Press5x5110
Seated Dumbbell Press4x645
Lateral Raises3x815
Bent Over Raises3x840
Skull Crushers3x1050
Rope Pressdowns3x1075
Face Pulls3x1090
Landmine Chest Press5x5

Legs                                 Weight
Squats5x5225
or Bulgarian Split Squat6x590
Front Squats5x5135
Deadlift5x5225
Leg Press4x12225
Leg Extension3x1270
Leg Curls3x12
Stiff Leg Deadlifts3x12
Calf Raises3x2090

Chest & Biceps               Weight
Bench Press5x5185
Incline Bench Press4x6185
Dumbell Press3x8
Incline Dumbell Fly3x8
EZ Bar Curls3x1060
Dumbell Hammer Curls3x10


Back Day

Pull Ups

3ae2c4bc73f9b190e2e03810fab77f0f.png

Shoulder Shrugs

6e003dfdefdb2b552be3c9b3c810d8d4.png

Barbell Rows

706280414.jpg

Lat Pulldowns

th(3).jpg

Dumbell Rows

th(4).jpg

Seated Rows

cf40969251dade5126db45bf82d13d5f.png

Chest and Biceps

Bench Press

5338aeb13829936d3f74a22d1dafead2.png

Incline Bench Press

5dbc38629bf98e9c81e9b1798ae52bf3.png

Landmine Chest Press

landmine-press-a-b.jpg

Dumbell Press

th(5).jpg

Incline Dumbell Fly

incline-dumbbell-flyes.jpg

EZ Bar Curls

5fc6893e420184b6dbc0eda7882ab1db.png

Dumbell Hammer Curl

e25a7d3e0c01a33f33fd0ca673c4a0bb.png

Legs

Squats

high-bar-squat-1536x893.png

Deadlift

deadlift-form-300x234.jpg

Front Squats

Screenshot_20230618-155453_Firefox Nightly_1.png

Leg Press

f364476bf10a5df6c1043867e5e4d83a.png

Leg Extension

588fca12edb1e94febdc50798e2c0f30.png

Leg Curl

588fca12edb1e94febdc50798e2c0f30.png

Stiff Leg Deadlifts

45d262ced9168709fc0c9414a2559205.png

Bulgarian Split Squats

f68abc137bea4b7c079c232c00b6c2e0.png

Calf Raises

standing-and-seated-calf-raises.jpg

Glute Extensions

a63aeb65d77baf35863c3606313afacb.png

Shoulder and Triceps

Face Pulls

ade4b08d118f9d8db052daddee46e92e.png

Overhead Press

OverheadPress.png

Lateral Raises

Lateral Raises

Bent over Raises

th(1).jpg

Skull Crushers

172314c5b3292257af3e16f1cae7feae.png

Rope Pressdowns

1879930e27a3e4252b9e1e37c980c0bd.png

Seated dumbbell press

th(2).jpg

Tricep Dips

triceps-dip-main_0.jpg

Bonuses

Alternate Sprinter’s Lunge

  • Glute Strenghtening (Anterior Pelvic Tilt Fix)

6aaa21f30e82a3a97092b4a6c2ba17a1.png

Kneeling Band Raises

  • Glute Strenghtening / Low Back Pain Prevention

7908aea90a250ce01f494b29566493d0.png

Russian Twists

c6ac6f0b0a396b050c3f689e0fabfeb6.png

Links

Add to workout:

https://www.youtube.com/watch?v=K-CrEi0ymMg&t=365

https://www.youtube.com/watch?v=gIhCuqtC0r0


Last updated on August 14, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.