Various dotfiles, associated scripts and cheatsheets as well as installation scripts and notes
- Run install.sh after updating any explicitly-specified versions
Note that zsh-install.sh & vscode-install-extensions.sh are run automatically after Oh-My-Zsh & VS Code are installed, respectively.
Note also that vim-plug installs fzf, so the latter won't be available
until nvim is started for the first time.
After setting up displays, if the login dialog is still on the wrong monitor, run
sudo cp ~/.config/monitors.xml ~gdm/.config/monitors.xml
Ubuntu will repeatedly install all network printers on every connect and quite annoyingly inform the user everytime it has done so. Per ask ubuntu, it's possible to turn this off as follows:
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
This isn't included in install.sh in case it's desirable behavior.
Timeshift is automatically installed but needs to be configured. Open the Timeshift application and set up as appropriate. Boot + monthly/weekly/daily snapshots seem appropriate.
All tweaks are automatically set via gsettings during installation. If
desired, additional customization can be performed via the Tweaks interface or
gsettings. Here is a convenient one-liner for listing available settings into
a searchable file:
gsettings list-schemas | \
perl -ne 'print; chomp; $schema = $_; for my $key (`gsettings list-keys $schema`) { \
print " $key"; for my $rangeItem (`gsettings range $schema $key`) { \
print " $rangeItem" } }' > all-gsettings.txt
If the system is dual boot with windows, run this command to fix windows time going awry every time linux is booted:
timedatectl set-local-rtc 1 --adjust-system-clock
In reverse:
timedatectl set-local-rtc 0 --adjust-system-clock
While it's possible to install GNOME extensions programmatically, one has to match the download url with one's shell version, and the maintenance cost just isn't worth it for a small list of extensions. In fact, I'm only using one at the moment, so it's much easier to manually enable it using the GNOME shell integration chrome plugin. A list of install url(s) follows:
The wisdom found collectively in Ubuntu doesn't "see" external USB Hard Disk, mount: unknown filesystem type 'linux_raid_member', and mount unknown filesystem type 'lvm2_member' gets us through to the win. In particular:
ls /dev/ | grep sdbefore/after to detect whether the HDD is even seensudo fdisk -lto find the correct devicemountcomplains about 'linux_raid_member'mdmam --assemble --run /dev/md0 <DEVICE>, assuming/dev/md0does not currently exist
mountcomplains about 'LVM2_member'sudo apt-get install lvm2to install the logical volume management toolsvgdisplayto get volume group UUIDvgrename <VG UUID> new_nameto rename it if there's a name conflictmodprobe dm-modto add a device mapping drivervgchange -ayto activatelvscanto list all logical volumes in all volume groupsmount /dev/new_name/root /(mnt|media/user)/whereever. May need to create mount location first
- Launch the client, then go to Properties -> Devices & Shares -> Folder Shares and add a folder
- On the client, install
spice-webdavd, then runsudo spice-webdavd -p 10000. "Spice client folder" should now be available from the "Other Locations" menu in Files - Sometimes when attempting to open the Spice client folder, it will error
with
HTTP error: Could not connect: Connection refused. It seems, per this discussion, that the best way to fix the issue is to manually typedav://localhost:9843into theOther Locations -> Connect to Servertextbox
First, get the necessary software using
sudo apt-get install qemu-kvm libvirt-daemon-system
- Grab the QCOW disk image(s) in
~/.local/share/gnome-boxes/images - Dump the machine config(s) as follows:
sudo apt install qemu-kvm libvirt-daemon-system
virsh list --all | awk 'NR>2 { print $2 }' | \
xargs -I {} sh -c 'virsh dumpxml $1 > $1.xml' -- {}
- Replace the QCOW image(s) in the same location
- Run
virsh create CONFIG.xmlfor each