This is a thread where we collect short tips and tricks that can improve the Qubes experience for most users. We want to create a one-stop-post where people can quickly find and implement changes to their systems instead of having to search for and visit a hundred different posts.
Feel free to add your tip to this wiki post (anyone can edit this)
Guidelines These are subject to frequent and major changes while we figure out how this might work
Give credit (even to yourself) and link to the original
If your tip doesn't have its own post/page, post it here in a reply so you have a link. This is for consistency and also so we can neatly split the thread if needed
Discussions regarding specific tips belong in their own threads if available
* What's 'niche' is going to spawn a lot of debate and angst, but this constraint is necessary to prevent this post from getting bloated and mostly irrelevant
Storage
- Send files directly to external storage mounted in other qube - [AppVM] Assumes external storage is mounted under /mnt/ext_store/
. Execute the following commands in that destination qube:
>
mv ~/QubesIncoming ~/QubesIncoming_backup >ln -s /mnt/ext_store/ ~/QubesIncoming
This will copy files into a directory named after the origin qube, in the external storage: /mnt/ext_store/origin-qube
. If you don't want that directory, then the mount command should be:
>
ln -s /mnt/ext_store/ ~/QubesIncoming/origin-qube
Where origin-qube
is the name of the origin qube. Of course the directory QubesIncoming/origin-qube has to exist for this to work (the qvm-copy utility won't necessarily have created it yet). You can create it with mkdir -p ~/QubesIncoming/origin-qube
.
Then use qvm-copy
in your data origin qube, targeting that destination qube @SteveC
WiFi
Keep WiFi off by default on boot - [TemplateVM] >
[main] >WirelessEnabled=falseIn sys-net's template, create the file
/var/lib/NetworkManager/NetworkManager.state
containing the code above @Bearillo
Soft toggle WiFi - [dom0] qvm-run sys-net -- "if nmcli radio wifi | head -c1 | egrep 'e'; then nmcli radio wifi off; else nmcli radio wifi on; fi"
(can be mapped to shortcut) @Bearillo
Video playback
- Reduce VLC's CPU usage - [AppVM] Under 'Video' in Preferences (Ctrl+P), change 'Output' to 'X11 video output (XCB)' @solene
- Reduce mpv's CPU usage (link includes guide for YouTube too) - [TemplateVM] /etc/mpv/mpv.conf
file, insert vo=x11
and profile=sw-fast
as separate lines @Bearillo
Notifications
- Disable notifications per VM - Fedora-XFCE only - [AppVM] Run xfce4-notifyd-config
, then xfconf-query -c xfce4-notifyd -p /do-not-disturb --set true
@solene
sys-usb: how to protect yourself against accidentally shutting it down - (I've suggested this in other places but can't find them right now, so no link). If you've ever found yourself in the situation where you accidentally shut down sys-usb AND you happen to be using a USB keyboard or mouse, you're basically hosed. Your machine will be a brick until you reboot it, because dom0 doesn't take things like your keyboard and mouse back after they've been assigned to sys-usb. (This is not a bug, it's a deliberate design decision taken for security reasons.)
On the other hand, it's safe to restart sys-usb from the qui-domains tool, and that fact is going to help us here.
How to solve this? Create a cron job that starts sys-usb if it isn't already running, and set that job to run every minute. (For those new to unix/linux, cron jobs are tasks that are prescheduled and run in the background. In the old days of stone knives-and-bearskins computing, these were often called "batch" jobs.) Here's how to do that: Open a terminal in dom0 and type crontab -e
. This opens the vi editor which will show you a file that contains existing user crontabs (as opposed to ones run by root). The file may well be empty. Insert a line that reads:
>
* * * * * qvm-start --skip-if-running sys-usb > /dev/null 2>&1
The five stars denote every minute of every hour of every day of every year. The middle part of the command should be self explanatory. The stuff after the >
redirects the output of the command to /dev/null
, which is basically "nowhere" rather than the screen or some log file.
The result should be that if you shut sys-usb down for whatever reason, sometime within the next minute it should start back up again and you have your keyboard and mouse back.
This edit only needs to be done once; it will still be there after restarting your system.
The bad news is that in order to work with this, you have to know how to use vi...which is actually a tool adapted from those stone-knives-and-bearskin days. You can (if the file is empty) type i
to get into "insert mode", type the line above (including the return/enter at the end of the line), then press the escape key and type :wq
to write and exit. @SteveC
Cursor
unclutter
package : sudo qubes-dom0-update unclutter
toggle-unclutter.sh
script > mkdir $HOME/bin > cat << 'EOF' | tee $HOME/bin/toggle-unclutter.sh > #! /bin/sh > if pgrep unclutter &> /dev/null 2>&1 > then > killall unclutter > else > unclutter -idle 1 & > fi > EOF
> chmod +x $HOME/bin/toggle-unclutter.sh