I daily windows, so WSL, and am actively working to move to Linux (debian) for my daily driver (laptop).

Current list of issues stopping me from moving to Linux:

  • CAD Program Support (VM Solvable, but input latency issues which are suboptimal but acceptable)
  • OneDrive Files on Demand (soon to be phased out of my life)
  • AutoHotKey alternative (I utilise hotstrings extensively)
  • Notepad++ alternative
  • Logi Options+ alternative

Basic linux setup

# basic programs that I use
sudo apt install curl wget vim htop screen sysstat neofetch smartmontools gparted ffmpeg git unzip dnsutils 
# ctf tools
sudo apt install libimage-exiftool-perl binwalk basez qpdf nmap traceroute wireshark python-is-python3 python3-pip netcat-traditional ncat 


# install zsh
sudo apt install zsh
# install oh-my-zsh for customisation
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# install powerlevel10k and set as zsh theme
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
sed -i 's/ZSH_THEME=.*/ZSH_THEME=powerlevel10k\/powerlevel10k/' ~/.zshrc
# get zsh autosuggestions and add to .zshrc plugins
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
sed -i "s/^plugins=(/plugins=(\n    zsh-autosuggestions\n    /" ~/.zshrc
# install zsh-syntax-highlighting
sudo apt install zsh-syntax-highlighting
echo "source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
# set as default shell
chsh -s $(which zsh)


# set up vim to be default terminal editor
sudo update-alternatives --config editor
# vim default git editor
git config --global core.editor "vim"

Change Grub Timeout

Grub’s timeout. If >0, requires keyboard to be connected when booting. If =0, doesn’t

sudo sed -i 's/GRUB_TIMEOUT=.*/GRUB_TIMEOUT=0/' /etc/default/grub
sudo update-grub

Set up git

# install repo
# https://github.com/cli/cli/blob/trunk/docs/install_linux.md
`gh auth login`
`gh auth setup-git`
git init
git pull https://repo/address
git remote add origin https://repo/address
git push --set-upstream origin master

Change Around Mac’s God Awful Key Layout

This swaps fn with ctrl, and swaps alt with meta. It also changes function keys to default to F1-12 as opposed to brightness/etc.

sudo vim /etc/modprobe.d/hid_apple.conf

# append this to file
options hid_apple fnmode=2
options hid_apple swap_fn_leftctrl=1
options hid_apple swap_opt_cmd=1

# regenerate initramfs
# debian
#sudo update-initramfs -u
# arch
#sudo mkinitcpio -p linux

GRUB Timeout

timeout=0 removes the need to have a keyboard plugged in during boot.

sudo vim /etc/default/grub

# change
GRUB_TIMEOUT=0

Kali Install

When installing Kali Linux on a MacbookPro12,1 using Rufus, write in GPT, DD mode, not ISO

Samba Share Setup

sudo apt install samba
mkdir ~/share

sudo vim /etc/samba/smb.conf

## append
[share]
    comment = Samba Shared Folder
    path = /home/[username]/share
    read only = no
    browsable = yes
# write exit file

sudo service smbd restart
sudo ufw allow samba

sudo smbpasswd -a [user]

Static IP

sudo vim /etc/network/interfaces

## change your default ethernet interface (eno0 for this example)
auto eno0
iface eno0 inet static
    address 192.168.X.Y
    netmask 255.255.255.0
    gateway 192.168.X.X
# use whatever your network uses
# write exit

Python pip fix

sudo mv /usr/lib/python3.11/EXTERNALLY-MANAGED /usr/lib/python3.11/EXTERNALLY-MANAGED.old

LaTeX Installation

# add keyring
curl -fsSL https://miktex.org/download/key | sudo tee /usr/share/keyrings/miktex-keyring.asc > /dev/null
# add source
echo "deb [signed-by=/usr/share/keyrings/miktex-keyring.asc] https://miktex.org/download/debian bookworm universe" | sudo tee /etc/apt/sources.list.d/miktex.list
# install
sudo apt-get update
sudo apt-get install miktex
# finish install
miktexsetup finish 
# configure to download packages as needed
initexmf --set-config-value="[MPM]AutoInstall=1"
# install pdflatex
sudo apt install texlive-latex-base texlive-fonts-recommended texlive-fonts-extra texlive-latex-extra

Fix pygmentize

pip3 install pygments
# add to path if not already
#export PATH="$PATH:/home/[USERNAME]/.local/bin"
pygmentize -V

Misc Windows Commands

Delete Cortana (Win10 only)

Powershell

Get-AppxPackage -allusers Microsoft.549981C3F5F10 | Remove-AppxPackage

Delete Other Windows 10 Bloat

Powershell

Get-AppxPackage *phone* | Remove-AppxPackage
Get-AppxPackage *xbox* | Remove-AppxPackage
Get-AppxPackage *feedback* | Remove-AppxPackage
Get-AppxPackage *tv* | Remove-AppxPackage
Get-AppxPackage *film* | Remove-AppxPackage
Get-AppxPackage *calendar* | Remove-AppxPackage
Get-AppxPackage *camera* | Remove-AppxPackage
Get-AppxPackage *alarm* | Remove-AppxPackage
Get-AppxPackage *help* | Remove-AppxPackage
Get-AppxPackage *groove* | Remove-AppxPackage
Get-AppxPackage *maps* | Remove-AppxPackage
Get-AppxPackage *mixed* | Remove-AppxPackage
Get-AppxPackage *solit* | Remove-AppxPackage
Get-AppxPackage *people* | Remove-AppxPackage
Get-AppxPackage *3D* | Remove-AppxPackage
Get-AppxPackage *experience* | Remove-AppxPackage

Kill WSL

Powershell

taskkill /F /im wslservice.exe

wslconfig

C:/Users/USER/.wslconfig

# Settings apply across all Linux distros running on WSL 2
[wsl2]

# Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB
memory=4GB 

# Sets the VM to use two virtual processors
processors=2

Delete 3D Objects

Open Registry Edit.

Go to

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\

Delete 0DB7E....

Go to

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\

Delete 0DB7E....

Then, Task Manager, restart File Explorer.

Arch (legacy)

Before installing, refresh pacman keys cause the ones in the iso were out of date.

pacman-key --refresh-keys

I used archinstall, couldn’t get bootloaders to work on my Mac (I personally blame the mac).

archinstall

Once installed chroot in and install the following before exiting out of the install environment.

  • Display Server: Xorg
    • sudo pacman -Ss xf86-video-intel (for Macbook Pro 12,1)
  • DE: KDE Plasma (with Konsole as terminal window, and of course vim)
    • sudo pacman -S sddm plasma-desktop konsole vim
  • Display Scaling
    • sudo pacman -S kscreen
  • Wifi
    • sudo pacman -S plasma-nm
  • Audio
    • sudo pacman -S plasma-pa
  • Shell: zsh

Reboot

Start DE:

sudo systemctl enable sddm
sudo systemctl start sddm

Frequently used packages

sudo pacman -S vim htop ffmpeg perl-image-exiftool screen binwalk qpdf nmap traceroute neofetch wireshark-qt curl wget smartmontools
sudo yay -S basez ulauncher