Go back to topic: Quick Quality-of-Life Improvements
[/details] | [/details] **Performance** - [Reduce VM boot time](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/43) - **Debian 12 only** - [TemplateVM] Enter `sudo cp /lib/systemd/system/systemd-binfmt.service /etc/systemd/system`, then delete `After=local-fs.target` from `/etc/systemd/system/systemd-binfmt.service` @renehoj |
**Performance** - [Reduce VM boot time](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/43) - **Debian 12 only** - [TemplateVM] Enter `sudo cp /lib/systemd/system/systemd-binfmt.service /etc/systemd/system`, then delete `After=local-fs.target` from `/etc/systemd/system/systemd-binfmt.service` @renehoj - [Increase CPU priority of selected window's VM](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/107) - [dom0] Create `/bin/reneboost.sh` (expandable), make it executable (`chmod +x`), then map to shortcut @renehoj [details="reneboost.sh"] ``` #!/bin/bash CUR_WIN_ID=`xdotool getwindowfocus` CUR_VM=`xprop _QUBES_VMNAME -id $CUR_WIN_ID |cut -d \" -f2` xl sched-credit2 -d $CUR_VM -w $1 exit 0 ``` [/details] |
[details= | [details=open_template_terminal.sh] |
**Performance** - [Reduce VM boot time](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/43) - **Debian 12 only** - [TemplateVM] Enter `sudo cp /lib/systemd/system/systemd-binfmt.service /etc/systemd/system`, then delete `After=local-fs.target` from `/etc/systemd/system/systemd-binfmt.service` @renehoj - [Increase CPU priority of selected window's VM](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/107) - [dom0] Create `/bin/reneboost.sh` (expandable), make it executable (`chmod +x`), then map to shortcut @renehoj [details="reneboost.sh"] ``` #!/bin/bash CUR_WIN_ID=`xdotool getwindowfocus` CUR_VM=`xprop _QUBES_VMNAME -id $CUR_WIN_ID |cut -d \" -f2` xl sched-credit2 -d $CUR_VM -w $1 exit 0 ``` [/details] | |
**Storage** | **Storage** - [Free up dom0 disk space](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/72) - [dom0] `sudo journalctl --vacuum-time=1d` @renehoj |
- [Toggle NetVM of qube in focus](https://gist.github.com/UndeadDevel/0a9e238db4fe58055eb8b1a40515f3b6) - [dom0] In dom0 create the following script, make it executable (`chmod +x`), and bind to keyboard shortcut (expandable) @ | - [Toggle NetVM of qube in focus](https://gist.github.com/UndeadDevel/0a9e238db4fe58055eb8b1a40515f3b6) - [dom0] In dom0 create the following script, make it executable (`chmod +x`), and bind to keyboard shortcut (expandable) @Bearillo [Alternative version](https://forum.qubes-os.org/t/netvm-changer-bash-script/30504) @den1ed |
- [Disable notifications per VM](https://forum.qubes-os.org/t/disable-notification-per-xfce-qubes-do-not-disturb-mode/19424) - **Fedora-XFCE only** - [AppVM] Run `xfce4-notifyd-config`, then `xfconf-query -c xfce4-notifyd -p /do-not-disturb --set true` @solene
| - [Decrease time to login prompt / autologin](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/103) [dom0] `sudo systemctl edit qubes-vm@.service`, then insert lines `[Service]` then `Type=simple` in the active section @a_lurker_no_more - [Disable notifications per VM](https://forum.qubes-os.org/t/disable-notification-per-xfce-qubes-do-not-disturb-mode/19424) - **Fedora-XFCE only** - [AppVM] Run `xfce4-notifyd-config`, then `xfconf-query -c xfce4-notifyd -p /do-not-disturb --set true` @solene - [Trigger the QubesOS widgets via keyboard](https://gist.github.com/UndeadDevel/ef7d86118b83ae4bab68243fc38c51f6) - [dom0] Create a script containing the code below (expandable), make it executable (`chmod +x`) and bind to keyboard shortcut @Bearillo |
[ | [details="open_template_terminal.sh] |
- [Automatically log into dom0 on boot](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/74) [dom0] In `/etc/lightdm/lightdm.conf`, uncomment and set `autologin-user= | - [Automatically log into dom0 on boot](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/74) [dom0] In `/etc/lightdm/lightdm.conf`, uncomment and set `autologin-user=[your dom0 username]` @renehoj |
- [Create a custom mode for launching apps quickly](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/76)- **i3 only** - [dom0] Open `~/.config/i3/config`, then add the contents of `config.append` (expandable) . Alter shortcuts and qube names as needed. @q4u [details="config.append"] ``` # Replace example appVM and names/commands with your own set $mode_launcher Launch: [e]macs [m]ail [s]ignal bindsym $mod+o mode "$mode_launcher" mode "$mode_launcher" { bindsym e exec qvm-run app-dev "emacsclient -c -a 'emacs'" bindsym s exec qvm-run app-signal signal-desktop bindsym m exec qvm-run app-mail thunderbird bindsym Escape mode "default" bindsym Return mode "default" } ``` [/details] - [Open selected window's VM's terminal](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/59) - **i3 only** - [dom0] Open `~/.config/i3/config`, then add `bindsym $mod+Return exec qubes-i3-sensible-terminal`. To open as root, replace `qubes-i3-sensible-terminal` with `qubes-i3-sensible-terminal.root`. Alter shortcut as needed. @ruza |
- [Automatically log into dom0 on boot](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/74) [dom0] In `/etc/lightdm/lightdm.conf`, uncomment and set `autologin-user=dom0-username` @renehoj |
- [Free up dom0 disk space](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/72) - [dom0] `sudo journalctl --vacuum-time=1d` @renehoj | |
**Bug workarounds** - [Prevent resizing windows from crashing xorg in qube](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/71) - [dom0] Window Manager > Advanced > Hide content of windows: When resizing @renehoj |
- [Open selected window's template VM's terminal](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/67) - [dom0] Create `/home/user/bin/open_template_terminal.sh` (expandable), make it executable (`chmod +x`), then create key binding. To open as root, replace `qvm-run` with `qvm-run -u root` @renehoj [details = "open_template_terminal.sh] ``` #!/bin/bash CUR_WIN_ID=`xdotool getwindowfocus` CUR_VM=`xprop _QUBES_VMNAME -id $CUR_WIN_ID |cut -d \" -f2` CUR_VM_TEMP=`qvm-prefs $CUR_VM template` qvm-run -q -a --service -- $CUR_VM_TEMP qubes.StartApp+qubes-run-terminal exit 0 ``` [/details] |
- [Shut down selected window's VM](https://forum.qubes-os.org/t/quick-quality-of-life-improvements-thread/23380/35) - [dom0] Create `/bin/halt-vm-by-window` | - [Shut down selected window's VM](https://forum.qubes-os.org/t/quick-quality-of-life-improvements-thread/23380/35) - [dom0] Create `/bin/halt-vm-by-window.sh` (expandable), make it executable (`chmod +x`), then map to shortcut @tasket [details="halt-vm-by-window.sh"] |
- [Open selected window's VM's terminal](https://forum.qubes-os.org/t/terminal-in-the-same-disposable/26029/9) [dom0] Create `/home/user/bin/open_terminal.sh` (expandable), make executable | - [Open selected window's VM's terminal](https://forum.qubes-os.org/t/terminal-in-the-same-disposable/26029/9) [dom0] Create `/home/user/bin/open_terminal.sh` (expandable), make it executable (`chmod +x`), then create key binding. To open as root, replace `qvm-run` with `qvm-run -u root` @unman |
[/details] | |
- [Toggle NetVM of qube in focus](https://gist.github.com/UndeadDevel/0a9e238db4fe58055eb8b1a40515f3b6) - [dom0] In dom0 create the following script, make it executable (`chmod +x`) and bind to keyboard shortcut (expandable) @Bearillo | - [Toggle NetVM of qube in focus](https://gist.github.com/UndeadDevel/0a9e238db4fe58055eb8b1a40515f3b6) - [dom0] In dom0 create the following script, make it executable (`chmod +x`), and bind to keyboard shortcut (expandable) @Bearillo |
- [Disable notifications per VM](https://forum.qubes-os.org/t/disable-notification-per-xfce-qubes-do-not-disturb-mode/19424) - **Fedora-XFCE only** - [AppVM] Run `xfce4-notifyd-config`, then `xfconf-query -c xfce4-notifyd -p /do-not-disturb --set true` @solene - [Trigger the QubesOS widgets via keyboard](https://gist.github.com/UndeadDevel/ef7d86118b83ae4bab68243fc38c51f6) - [dom0] In dom0 create a script containing the code below (expandable), make it executable (`chmod +x`) and bind to keyboard shortcut @Bearillo [details="widget-click.sh"] Call this script with either the argument `devices` (so `widget-click.sh devices`) or `domains` to open the respective widget. ``` #!/bin/bash # call with argument 'devices' or 'domains' sleep 0.1 eval $(xdotool search --onlyvisible --name "qui-$1" getwindowgeometry --shell) xdotool mousemove $X $Y click 1 mousemove restore ``` [/details] - [Trigger the QubesOS app menu via keyboard](https://gist.github.com/UndeadDevel/8501e82a534e5daa2ac60e36945167b9) - [dom0] In dom0 create a script containing the code below (expandable), make it executable (`chmod +x`) and bind to keyboard shortcut @Bearillo [details="qubes-menu.sh"] Note that you may need to adjust the numbers if your screen is not 1080p. ``` #!/bin/bash eval $(xdotool getmouselocation --shell) xdotool mousemove 5 5 gdbus call --session --dest org.qubesos.appmenu --object-path "/org/qubesos/appmenu" --method org.freedesktop.Application.Activate "{}" if [ $X -lt 720 ] && [ $Y -lt 775 ]; then X=720 # prevent the mouse from selecting items in the app menu when opening it with the keyboard fi # note that these values may need adjusting if using a screen with a resolution other than 1080p xdotool mousemove $X $Y ``` [/details] - [Open selected window's VM's terminal](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/59) - **i3 only** - [dom0] open `~/.config/i3/config`, then add `bindsym $mod+Return exec qubes-i3-sensible-terminal`. To open as root, replace `qubes-i3-sensible-terminal` with `qubes-i3-sensible-terminal.root`. Alter shortcut as needed. @ruza - [Screenshot a window](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/65) - [dom0] Create `/bin/screenshot_VM.sh` (expandable), make it executable (`chmod +x`), then map to shortcut. @steffen and [other contributors on Github](https://github.com/QubesOS/qubes-issues/issues/953#issuecomment-1756157152) [details="screenshot_VM.sh"] ``` #!/bin/sh # lets the user take a screenshot based on rectangular selection and sends it to the currently focused VM CUR_WIN_ID=`xdotool getwindowfocus` CUR_VM=`xprop _QUBES_VMNAME -id $CUR_WIN_ID | cut -d \" -f 2` if [[ "$CUR_VM" != "_QUBES_VMNAME: not found." ]]; then xfce4-screenshooter -r -o "qvm-copy-to-vm $CUR_VM" notify-send "Screenshot sent!" "Your selection has been sent as a screenshot to $CUR_VM!" fi ``` [/details] |
- [Open selected window's VM's terminal](https://forum.qubes-os.org/t/terminal-in-the-same-disposable/26029/9) [dom0] Create `/home/user/bin/open_terminal.sh` (expandable), make executable with `chmod +x`, then create key binding. To open as root, replace `qvm-run` with `qvm-run -u root` @unman [details="open_terminal.sh"] ``` #!/bin/bash ID=`xdotool getwindowfocus` QUBE=`xprop _QUBES_VMNAME -id $ID|cut -f2 -d\" ` if [[ "$QUBE" == "_QUBES_VMNAME: not found." ]]; then exit else qvm-run $QUBE /usr/bin/qubes-run-terminal & fi ``` [/details] | |
[/details] | |
- [Disable notifications per VM](https://forum.qubes-os.org/t/disable-notification-per-xfce-qubes-do-not-disturb-mode/19424) - **Fedora-XFCE only** - [AppVM] Run `xfce4-notifyd-config`, then `xfconf-query -c xfce4-notifyd -p /do-not-disturb --set true` @ | - [Disable notifications per VM](https://forum.qubes-os.org/t/disable-notification-per-xfce-qubes-do-not-disturb-mode/19424) - **Fedora-XFCE only** - [AppVM] Run `xfce4-notifyd-config`, then `xfconf-query -c xfce4-notifyd -p /do-not-disturb --set true` @solene - [Open selected window's VM's terminal](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/59) **i3 only** - [dom0] open `~/.config/i3/config`, then add `bindsym $mod+Return exec qubes-i3-sensible-terminal`. To open as root, replace `qubes-i3-sensible-terminal` with `qubes-i3-sensible-terminal.root`. Alter shortcut as needed. @ruza |
- [Open terminal for focused VM using shortcut](https://forum.qubes-os.org/t/terminal-in-the-same-disposable/26029/9) Create `/home/user/bin/open_terminal.sh` (expandable), make executable with `chmod +x`, then create key binding. To open as root, replace `qvm-run` with `qvm-run -u root` @unman [details="open_terminal.sh"] ``` #!/bin/bash ID=`xdotool getwindowfocus` QUBE=`xprop _QUBES_VMNAME -id $ID|cut -f2 -d\" ` if [[ "$QUBE" == "_QUBES_VMNAME: not found." ]]; then exit else qvm-run $QUBE /usr/bin/qubes-run-terminal & fi ``` [/details] - [Open terminal for focused VM using shortcut](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/59) **i3 only** - [dom0] open `~/.config/i3/config`, then add `bindsym $mod+Return exec qubes-i3-sensible-terminal`. To open as root, replace `qubes-i3-sensible-terminal` with `qubes-i3-sensible-terminal.root`. Alter shortcut as needed. @ruza | |
- [Open terminal for focused VM using shortcut](https://forum.qubes-os.org/t/terminal-in-the-same-disposable/26029/9) @unman - [Open terminal for focused VM using shortcut](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/59) **i3 only** - [dom0] open `~/.config/i3/config`, then add `bindsym $mod+Return exec qubes-i3-sensible-terminal`. To open as root, replace `qubes-i3-sensible-terminal` with `qubes-i3-sensible-terminal.root`. Alter shortcut as needed. @ruza |
- [Open terminal for focused VM using shortcut](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/59) **i3 only** - [dom0] open `~/.config/i3/config`, then add `bindsym $mod+Return exec qubes-i3-sensible-terminal`. To open as root, replace `qubes-i3-sensible-terminal` with `qubes-i3-sensible-terminal.root`. Alter shortcut as needed. | - [Open terminal for focused VM using shortcut](https://forum.qubes-os.org/t/terminal-in-the-same-disposable/26029/9) @unman - [Open terminal for focused VM using shortcut](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/59) **i3 only** - [dom0] open `~/.config/i3/config`, then add `bindsym $mod+Return exec qubes-i3-sensible-terminal`. To open as root, replace `qubes-i3-sensible-terminal` with `qubes-i3-sensible-terminal.root`. Alter shortcut as needed. @ruza |
- [Open terminal for focused VM using shortcut](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/59) **i3 only** - [dom0] open `~/.config/i3/config`, then add `bindsym $mod+Return exec qubes-i3-sensible-terminal`. To open as root, replace `qubes-i3-sensible-terminal` with `qubes-i3-sensible-terminal.root`. Alter shortcut as needed. |
[/details] - [Trigger the QubesOS widgets via keyboard](https://gist.github.com/UndeadDevel/ef7d86118b83ae4bab68243fc38c51f6) - [dom0] In dom0 create a script containing the code below (expandable), make it executable (`chmod +x`) and bind to keyboard shortcut @Bearillo [details="widget-click.sh"] Call this script with either the argument `devices` (so `widget-click.sh devices`) or `domains` to open the respective widget. ``` #!/bin/bash # call with argument 'devices' or 'domains' sleep 0.1 eval $(xdotool search --onlyvisible --name "qui-$1" getwindowgeometry --shell) xdotool mousemove $X $Y click 1 mousemove restore ``` [/details] - [Trigger the QubesOS app menu via keyboard](https://gist.github.com/UndeadDevel/8501e82a534e5daa2ac60e36945167b9) - [dom0] In dom0 create a script containing the code below (expandable), make it executable (`chmod +x`) and bind to keyboard shortcut @Bearillo [details="qubes-menu.sh"] Note that you may need to adjust the numbers if your screen is not 1080p. ``` #!/bin/bash eval $(xdotool getmouselocation --shell) xdotool mousemove 5 5 gdbus call --session --dest org.qubesos.appmenu --object-path "/org/qubesos/appmenu" --method org.freedesktop.Application.Activate "{}" if [ $X -lt 720 ] && [ $Y -lt 775 ]; then X=720 # prevent the mouse from selecting items in the app menu when opening it with the keyboard fi # note that these values may need adjusting if using a screen with a resolution other than 1080p xdotool mousemove $X $Y ``` [/details] | |
[/details]
| [/details] |
**Networking** - [Toggle NetVM of qube in focus](https://gist.github.com/UndeadDevel/0a9e238db4fe58055eb8b1a40515f3b6) - [dom0] In dom0 create the following script, make it executable (`chmod +x`) and bind to keyboard shortcut (expandable) @Bearillo [details="vm-give-default-network"] ``` #!/bin/bash CUR_WIN_ID=$(xdotool getwindowfocus) CUR_VM=$(xprop _QUBES_VMNAME -id $CUR_WIN_ID | cut -d \" -f 2) if [[ "$CUR_VM" != *"not found"* ]];then if ! qvm-prefs "$CUR_VM" netvm | head -c1 | grep -E '.';then TEXT="TOR" while read -r line do if [[ "$line" == "anon-vm" ]];then TEXT="TOR" break else TEXT="DEFAULT" fi done <<< $(qvm-tags "$CUR_VM") ANSWER=$(notify-send -A Y="Yes" -A N="No" "Grant $TEXT network access to $CUR_VM" "Do you want to grant $TEXT network access to $CUR_VM?") if [[ "$ANSWER" == "Y" ]];then if [[ "$TEXT" == "DEFAULT" ]];then qvm-start --skip-if-running $(qubes-prefs default_netvm) && qvm-prefs "$CUR_VM" netvm -D && notify-send "Granted $CUR_VM $TEXT network access!" "The netvm of $CUR_VM was set to $(qvm-prefs "$CUR_VM" netvm)." else qvm-start --skip-if-running sys-whonix && qvm-prefs "$CUR_VM" netvm sys-whonix && notify-send "Granted $CUR_VM $TEXT network access!" "The netvm of $CUR_VM was set to $(qvm-prefs "$CUR_VM" netvm)." fi fi else qvm-prefs "$CUR_VM" netvm None notify-send "Disconnected $CUR_VM from network!" "The netvm of $CUR_VM was set to None (n/a)." fi fi ``` [/details] - [Keep WiFi off by default on boot](https://gist.github.com/UndeadDevel/3ffeb19d66eee72c85d9c5a94ea2b60d) - [TemplateVM] In sys-net's template, create `/var/lib/NetworkManager/NetworkManager.state` containing the code below (expandable) @Bearillo | |
- [Soft toggle WiFi](https:// | - [Soft toggle WiFi](https://gist.github.com/UndeadDevel/3ffeb19d66eee72c85d9c5a94ea2b60d) - [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 |
- [Reduce VLC's CPU usage](https://forum.qubes-os.org/t/vlc-video-playback-cpu-usage-improvement/23363) - [AppVM] In VLC's preferences, open 'Video' and change 'Output' to 'X11 video output (XCB)' @solene | - [Reduce VLC's CPU usage](https://forum.qubes-os.org/t/vlc-video-playback-cpu-usage-improvement/23363) - [AppVM] In VLC's preferences, open 'Video' and change 'Output' to 'X11 video output (XCB)' @solene |
- [View dom0 update history](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/54) - [dom0] Enter `dnf history` to view update events; enter `dnf history info [EVENT ID]` to view event details. Also works for Fedora in general @adw |
- [Reduce VM boot time](https://forum.qubes-os.org/t/quick-quality-of-life-improvements/23380/43) - **Debian 12 only** - [TemplateVM] Enter `sudo cp /lib/systemd/system/systemd-binfmt.service /etc/systemd/system`, then delete `After=local-fs.target` from `/etc/systemd/system/systemd-binfmt.service` @renehoj |
- [Memory warning notifications](https://forum.qubes-os.org/t/ | - [Memory warning notifications](https://forum.qubes-os.org/t/notifications-when-dom0-or-xen-memory-is-low/23797) - [dom0] Create the files below as needed, then for each file: `chmod +x [FILENAME]`, enter `crontab -e`, then add `*/5 * * * * [FILENAME]` and save @ddevz |
FREE_MEMORY=$((`free - | FREE_MEMORY=$((`free -m | grep '^Mem' | awk '{print $7}'`)) if (( $FREE_MEMORY < 500 )); then notify-send --expire-time=360000 --urgency=critical 'dom0: Low memory' "Remaining: $FREE_MEMORY MBs" |
$ | $FREE_MEMORY GBs" |
This is a thread where we collect **quick** tips and tricks that can improve the Qubes experience. **Feel free to add your tip to this wiki post (anyone can edit this)** **Guidelines** 1. Your tip should contain as few words as possible 2. If your tip cannot be condensed into a few lines, it doesn't belong here 3. If your tip is niche with regard to Qubes users, it doesn't belong here* 4. Follow the established style convention 5. Give credit, even to yourself, and link to the original (if needed, *also* post your tip as reply so you have a link) 6. Discussions regarding specific tips belong in their own threads, if available \* <sup><sup> "What's niche?" is going to spawn a lot of debate and angst, but this constraint is necessary to prevent the post from getting bloated and mostly irrelevant</sup></sup> --- <h2>Quick Quality-of-Life Improvements</h2> | |
--- This is a thread where we collect **quick** tips and tricks that can improve the Qubes experience. **Feel free to add your tip to this wiki post (anyone can edit this)** **Guidelines** 1. Your tip should contain as few words as possible 2. If your tip can't be condensed into a few lines, it doesn't belong here 3. If your tip is niche with regard to Qubes users, it doesn't belong here* 4. Follow the established style convention 5. Give credit, even to yourself, and link to the original (if needed, *also* post your tip as reply so you have a link) \* <sup><sup> "What's niche?" is going to spawn a lot of debate and angst, but this constraint is necessary to prevent the post from getting bloated and mostly irrelevant</sup></sup> |
This is a thread where we collect ** | This is a thread where we collect **quick** tips and tricks that can improve the Qubes experience. |
1. Your tip should contain as few words as possible | |
5. Give credit, even to yourself, and link to the original (if needed, | 5. Give credit, even to yourself, and link to the original (if needed, *also* post your tip as reply so you have a link) |
6. Discussions regarding specific tips belong in their own | 6. Discussions regarding specific tips belong in their own threads, if available |
** | **Etc.** |
** | **VM Management** |
[/details] - [Memory warning notifications](https://forum.qubes-os.org/t/quick-quality-of-life-improvements-thread/23380/39) - [dom0] Create the files below as needed, then for each file: `chmod +x [FILENAME]`, enter `crontab -e`, then add `*/5 * * * * [FILENAME]` and save @ddevz [details="/bin/dom0-Memory-Notification"] ``` #!/bin/bash FREE_MEMORY=$((`free -g | grep '^Mem' | awk '{print $7}'`)) if (( $FREE_MEMORY < 4 )); then notify-send --expire-time=360000 --urgency=critical 'dom0: Low memory' "Remaining: $FREE_MEMORY " fi ``` [/details] [details="/bin/Xen-Memory-Notification"] ``` #!/bin/bash FREE_MEMORY=$((`xl info | grep free_memory | sed 's/^.*:\([0-9]*\)/\1/'` / 1000)) if (( $FREE_MEMORY < 8 )); then notify-send --expire-time=360000 --urgency=critical 'Xen: Low memory' "Remaining: $FREE_MEMORY" fi ``` [/details] |
**Navigation** - [Shut down selected window's VM](https://forum.qubes-os.org/t/quick-quality-of-life-improvements-thread/23380/35) - [dom0] Create `/bin/halt-vm-by-window` containing the code below, run `chmod +x /bin/halt-vm-by-window`, then map to shortcut @tasket [details="halt-vm-by-window"] ``` #!/bin/bash CUR_WIN_ID=`xdotool getwindowfocus` CUR_VM=`xprop _QUBES_VMNAME -id $CUR_WIN_ID |cut -d \" -f2` qvm-run $CUR_VM 'xdotool search --name "Mozilla Firefox" key ctrl+q' qvm-run $CUR_VM 'xdotool search --name "Mozilla Thunderbird" key ctrl+q' sleep 4 /usr/bin/qvm-shutdown $CUR_VM --wait --timeout=40 ``` [/details] |
- [Prevent loss of control from sys-usb shutdown](https://forum.qubes-os.org/t/quick-quality-of-life-improvements-thread/23380/17) - [dom0] `crontab -e`, then enter `* * * * * qvm-start --skip-if-running sys-usb > /dev/null 2>&1` and | - [Prevent loss of control from sys-usb shutdown](https://forum.qubes-os.org/t/quick-quality-of-life-improvements-thread/23380/17) - [dom0] `crontab -e`, then enter `* * * * * qvm-start --skip-if-running sys-usb > /dev/null 2>&1` and save. Reverse the change by commenting out that line @SteveC |
5. | 5. Give credit, even to yourself, and link to the original (if needed, also post as reply for a link) |
6. | 6. Discussions regarding specific tips belong in their own threads if available \* <sup><sup> "What's niche?" is going to spawn a lot of debate and angst, but this constraint is necessary to prevent the post from getting bloated and mostly irrelevant</sup></sup> |
- [Create a toggle to hide the cursor](https://forum.qubes-os.org/t/manual-hide-the-mouse-cursor-in-full-screen/23477) - [dom0] Install `unclutter`, run the code below (expandable), then | - [Create a toggle to hide the cursor](https://forum.qubes-os.org/t/manual-hide-the-mouse-cursor-in-full-screen/23477) - [dom0] Install `unclutter`, run the code below (expandable), then map `toggle-unclutter.sh` to a key @ludovic [vecna13 from the 2676 issue](https://github.com/QubesOS/qubes-issues/issues/2676#issuecomment-909302633) |
- [Reduce VLC's CPU usage](https://forum.qubes-os.org/t/vlc-video-playback-cpu-usage-improvement/23363) - [AppVM] | - [Reduce VLC's CPU usage](https://forum.qubes-os.org/t/vlc-video-playback-cpu-usage-improvement/23363) - [AppVM] In VLC's preferences, open 'Video' and change 'Output' to 'X11 video output (XCB)' @solene - [Reduce mpv's CPU usage (link includes guide for YouTube too)](https://forum.qubes-os.org/t/improve-video-playback-performance-including-youtube-ytfzf/21946) - [TemplateVM] In `/etc/mpv/mpv.conf`, insert `vo=x11` and `profile=sw-fast` as separate lines @Bearillo |
- [Send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/ | - [Send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/send-files-directly-to-external-storage-mounted-in-other-qube/23514) - [AppVM] Run the code below (expandable), then copy/move your file(s) @SteveC |
In the following instructions `[ORIGIN QUBE]` is the qube name without brackets or slashes! | |
mkdir | mkdir ~/QubesIncoming mv ~/QubesIncoming/[ORIGIN QUBE] ~/QubesIncoming/[ORIGIN QUBE]_backup |
[details="Hide cursor (dom0)"] ``` | [details="Hide cursor (dom0)"] ``` |
``` [/details] | ``` [/details] |
- [Send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/3) - [AppVM] Run the code below (expandable), then copy/move your file(s) @SteveC [details="In destination qube:"] ``` mkdir -p ~/QubesIncoming/[ORIGIN QUBE] mv ~/QubesIncoming ~/QubesIncoming_backup ln -s [MOUNT POINT] ~/QubesIncoming/[ORIGIN QUBE] ``` [/details] | - [Send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/3) - [AppVM] Run the code below (expandable), then copy/move your file(s) @SteveC [details="In destination qube:"] ``` mkdir -p ~/QubesIncoming/[ORIGIN QUBE] mv ~/QubesIncoming ~/QubesIncoming_backup ln -s [MOUNT POINT] ~/QubesIncoming/[ORIGIN QUBE] ``` [/details] |
[details="NetworkManager.state"] ``` [main] WirelessEnabled=false ``` [/details] | [details="NetworkManager.state"] ``` [main] WirelessEnabled=false ``` [/details] |
- [Send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/3) - [AppVM] | - [Send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/3) - [AppVM] Run the code below (expandable), then copy/move your file(s) @SteveC |
mkdir -p ~/QubesIncoming/[ | mkdir -p ~/QubesIncoming/[ORIGIN QUBE] |
ln -s | ln -s [MOUNT POINT] ~/QubesIncoming/[ORIGIN QUBE] |
- [Keep WiFi off by default on boot](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/6) - [TemplateVM] In sys-net's template, create `/var/lib/NetworkManager/NetworkManager.state` containing the code below @Bearillo | - [Keep WiFi off by default on boot](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/6) - [TemplateVM] In sys-net's template, create `/var/lib/NetworkManager/NetworkManager.state` containing the code below (expandable) @Bearillo |
- [Reduce mpv's CPU usage (link includes guide for YouTube too)](https://forum.qubes-os.org/t/improve-video-playback-performance-including-youtube-ytfzf/21946) - [TemplateVM] `/etc/mpv/mpv.conf` file, insert `vo=x11` and `profile=sw-fast` as separate lines @Bearillo | - [Reduce mpv's CPU usage (link includes guide for YouTube too)](https://forum.qubes-os.org/t/improve-video-playback-performance-including-youtube-ytfzf/21946) - [TemplateVM] In `/etc/mpv/mpv.conf` file, insert `vo=x11` and `profile=sw-fast` as separate lines @Bearillo |
- [Prevent | - [Prevent loss of control from sys-usb shutdown](https://forum.qubes-os.org/t/quick-quality-of-life-improvements-thread/23380/17) - [dom0] `crontab -e`, then enter `* * * * * qvm-start --skip-if-running sys-usb > /dev/null 2>&1` and save @SteveC - [Create a toggle to hide the cursor](https://forum.qubes-os.org/t/manual-hide-the-mouse-cursor-in-full-screen/23477) - [dom0] Install `unclutter`, run the code below (expandable), then create a keyboard shortcut pointing to `toggle-unclutter.sh` @ludovic [vecna13 from the 2676 issue](https://github.com/QubesOS/qubes-issues/issues/2676#issuecomment-909302633) [details="Hide cursor (dom0)"] |
- [Send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/3) - [AppVM] Assumes | - [Send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/3) - [AppVM] Assumes mount point is `/mnt/ext_store/`. Run the code below (expandable), then copy/move your file(s) @SteveC [details="In destination qube:"] ``` mkdir -p ~/QubesIncoming/[origin-qube] mv ~/QubesIncoming ~/QubesIncoming_backup ln -s /mnt/ext_store/ ~/QubesIncoming/[origin-qube] ``` [/details] |
- [Keep WiFi off by default on boot](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/6) - [TemplateVM] | - [Keep WiFi off by default on boot](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/6) - [TemplateVM] In sys-net's template, create `/var/lib/NetworkManager/NetworkManager.state` containing the code below @Bearillo [details="NetworkManager.state"] ``` [main] WirelessEnabled=false ``` [/details] |
**Input Devices** - [Prevent loss-of-control from sys-usb shutdown](https://forum.qubes-os.org/t/quick-quality-of-life-improvements-thread/23380/17) - [dom0] `crontab -e`, then enter `* * * * * qvm-start --skip-if-running sys-usb > /dev/null 2>&1` and save. Assumes your sys-usb is named `sys-usb` @SteveC - [Manually hide the mouse cursor in full-screen](https://forum.qubes-os.org/t/manual-hide-the-mouse-cursor-in-full-screen/23477) - [dom0] To create a cursor toggle, install `unclutter`, then enter the following code (expandable below) and create keyboard shortcut pointing to `toggle-unclutter.sh`. Credits: [vecna13 from the 2676 issue](https://github.com/QubesOS/qubes-issues/issues/2676#issuecomment-909302633) [details="hide cursor (dom0)"] ``` 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 ``` [/details] | |
Then use `qvm-copy` in your data origin qube, targeting that destination qube @SteveC | Then use `qvm-copy` in your data origin qube, targeting that destination qube @SteveC |
- [Soft toggle WiFi](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/6) - [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 | - [Soft toggle WiFi](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/6) - [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 |
- [Reduce mpv's CPU usage (link includes guide for YouTube too)](https://forum.qubes-os.org/t/improve-video-playback-performance-including-youtube-ytfzf/21946) - [TemplateVM] `/etc/mpv/mpv.conf` file, insert `vo=x11` and `profile=sw-fast` as separate lines @Bearillo | - [Reduce mpv's CPU usage (link includes guide for YouTube too)](https://forum.qubes-os.org/t/improve-video-playback-performance-including-youtube-ytfzf/21946) - [TemplateVM] `/etc/mpv/mpv.conf` file, insert `vo=x11` and `profile=sw-fast` as separate lines @Bearillo |
**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: ><pre>* * * * * qvm-start --skip-if-running sys-usb > /dev/null 2>&1</pre> 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 **Input Devices** - [Manually hide the mouse cursor in full-screen](https://forum.qubes-os.org/t/manual-hide-the-mouse-cursor-in-full-screen/23477) - [dom0] `sudo qubes-dom0-update unclutter`, then create `toggle-unclutter.sh` (expandable below), create keyboard shortcut. Shortcut toggles the cursor. Credits: [vecna13 from the 2676 issue](https://github.com/QubesOS/qubes-issues/issues/2676#issuecomment-909302633) [details="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 [/details] |
1. | 1. Brevity is key--post as few words as possible |
2. If your tip | 2. If your tip cannot be condensed into a few lines, it doesn't belong here |
3. | 3. If your tip is niche with regard to Qubes users, it doesn't belong here* |
4. | 4. Follow the established style convention |
5. Give credit (even to yourself) and link to the original | 5. Feel free to add new categories *when necessary* 6. Give credit (even to yourself) and link to the original |
| 7. Discussions regarding specific tips belong in their own threads if available |
** | **Input Devices** - [Manually hide the mouse cursor in full-screen](https://forum.qubes-os.org/t/manual-hide-the-mouse-cursor-in-full-screen/23477) - [dom0] `sudo qubes-dom0-update unclutter`, then create `toggle-unclutter.sh` (expandable below), create keyboard shortcut. Shortcut toggles the cursor. Credits: [vecna13 from the 2676 issue](https://github.com/QubesOS/qubes-issues/issues/2676#issuecomment-909302633) [details="toggle-unclutter.sh script"] |
> chmod +x $HOME/bin/toggle-unclutter.sh
| > chmod +x $HOME/bin/toggle-unclutter.sh [/details] |
**Cursor** - [Manual hide the mouse cursor in full-screen](https://forum.qubes-os.org/t/manual-hide-the-mouse-cursor-in-full-screen/23477), in dom0: - install the `unclutter` package : `sudo qubes-dom0-update unclutter` - create the `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 - add a keyboard shortcut to launch this script - for xfce : System Tools / Keyboard, Application Shortcuts, Add : browse to the above script -> choose a shortcut (for example Alt-Shift-F12) The first *Alt-F12* hides the cursor, the second *Alt-F12* shows the cursor. Credits : [vecna13 from the 2676 issue](https://github.com/QubesOS/qubes-issues/issues/2676#issuecomment-909302633) |
>ln -s /mnt/ext_store/ ~/QubesIncoming | >ln -s /mnt/ext_store/ ~/QubesIncoming</pre> |
**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: ><pre>* * * * * qvm-start --skip-if-running sys-usb > /dev/null 2>&1</pre> 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 |
Then use `qvm-copy` in your data origin qube, targeting that destination qube @SteveC | 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: ><pre>ln -s /mnt/ext_store/ ~/QubesIncoming/origin-qube</pre> 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 |
This is a thread where we collect | 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. |
**Guidelines** These are subject to frequent and major changes while we figure out how this might work | |
3. Follow the established style | 3. Follow the established style convention |
4. | 4. Feel free to add new categories *when necessary* |
5. | 5. 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 |
6. Discussions regarding specific tips belong in their own | 6. Discussions regarding specific tips belong in their own threads if available \* <sup><sup> 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</sup></sup> |
--- | --- <h2>Quick Quality-of-Life Improvements</h2> |
<h2>Quality-of-Life Improvements and Minor Optimizations</h2> |
- [Send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/3) - [AppVM] Assumes external storage is mounted under `/mnt/ext_store/`. | - [Send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/3) - [AppVM] Assumes external storage is mounted under `/mnt/ext_store/`. Execute the following commands in that destination qube: |
| Then use `qvm-copy` in your data origin qube, targeting that destination qube @SteveC |
**Feel free to add your tip to this wiki post ( | **Feel free to add your tip to this wiki post (anyone can edit this)** |
** | **Storage** - [Send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/3) - [AppVM] Assumes external storage is mounted under `/mnt/ext_store/`. ><pre>mv ~/QubesIncoming ~/QubesIncoming_backup >ln -s /mnt/ext_store/ ~/QubesIncoming/</pre> Execute the commands above, then use `qvm-copy` targeting the destination qube @SteveC |
**WiFi** - [Keep WiFi off by default on boot](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/6) - [TemplateVM] ><pre>[main] >WirelessEnabled=false</pre> In sys-net's template, create the file `/var/lib/NetworkManager/NetworkManager.state` containing the code above @Bearillo - [Soft toggle WiFi](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/6) - [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 | |
- [Reduce VLC's CPU usage](https://forum.qubes-os.org/t/vlc-video-playback-cpu-usage-improvement/23363) - Under 'Video' in Preferences (Ctrl+P), change 'Output' to 'X11 video output (XCB)' @solene
- [ | - [Reduce VLC's CPU usage](https://forum.qubes-os.org/t/vlc-video-playback-cpu-usage-improvement/23363) - [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)](https://forum.qubes-os.org/t/improve-video-playback-performance-including-youtube-ytfzf/21946) - [TemplateVM] `/etc/mpv/mpv.conf` file, insert `vo=x11` and `profile=sw-fast` as separate lines @Bearillo |
**Notifications** - [Disable notifications per VM](https://forum.qubes-os.org/t/disable-notification-per-xfce-qubes-do-not-disturb-mode/19424) - **Fedora-XFCE only** - [AppVM] Run `xfce4-notifyd-config`, then `xfconf-query -c xfce4-notifyd -p /do-not-disturb --set true` @solene |
- [Improve mpv's CPU usage (includes YouTube guide)](https://forum.qubes-os.org/t/improve-video-playback-performance-including-youtube-ytfzf/21946) - In the template's `/etc/mpv/mpv.conf` file insert `vo=x11` and `profile=sw-fast` as separate lines @ | - [Improve mpv's CPU usage (includes YouTube guide)](https://forum.qubes-os.org/t/improve-video-playback-performance-including-youtube-ytfzf/21946) - In the template's `/etc/mpv/mpv.conf` file insert `vo=x11` and `profile=sw-fast` as separate lines @Bearillo |
<pre>[main] WirelessEnabled=false</pre> | |
<pre>mv ~/QubesIncoming ~/QubesIncoming_backup # or use rm -rf ~/QubesIncoming ln -s /mnt/ext_store/ ~/QubesIncoming/</pre> |
- [Reduce VLC's CPU usage](https://forum.qubes-os.org/t/vlc-video-playback-cpu-usage-improvement/23363) - Under 'Video' in Preferences (Ctrl+P), change 'Output' to 'X11 video output (XCB)' @solene | - [Reduce VLC's CPU usage](https://forum.qubes-os.org/t/vlc-video-playback-cpu-usage-improvement/23363) - Under 'Video' in Preferences (Ctrl+P), change 'Output' to 'X11 video output (XCB)' @solene - [Improve mpv's CPU usage (includes YouTube guide)](https://forum.qubes-os.org/t/improve-video-playback-performance-including-youtube-ytfzf/21946) - In the template's `/etc/mpv/mpv.conf` file insert `vo=x11` and `profile=sw-fast` as separate lines @Bearilllo |
** | **WiFi** - Soft toggle WiFi (@Bearillo): `qvm-run sys-net -- "if nmcli radio wifi | head -c1 | egrep 'e'; then nmcli radio wifi off; else nmcli radio wifi on; fi"` |
** | **Storage** - To [send files directly to external storage mounted in other qube](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/3) (@SteveC), execute in that other qube (assumes that external storage is mounted under `/mnt/ext_store/`) the below commands and then use `qvm-copy` (or "Copy to other qube" from a filemanager context menu) to send your files to the "other qube" and they'll be sent directly to the mounted device's mounted root: |
```
| ``` |
- To keep WiFi off [by default on boot](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/6), drop the file `/var/lib/NetworkManager/NetworkManager.state` with the following content in sys-net's template: | - To keep WiFi off [by default on boot](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/6) (@Bearillo ), drop the file `/var/lib/NetworkManager/NetworkManager.state` with the following content in sys-net's template: |
``` **Send files directly to external storage mounted in other qube** - Execute in that other qube (assumes that external storage is mounted under `/mnt/ext_store/`): | |
mv ~/QubesIncoming ~/QubesIncoming_backup # or use rm -rf ~/QubesIncoming ln -s /mnt/ext_store/ ~/QubesIncoming/ ``` - then use `qvm-copy` (or "Copy to other qube" from a filemanager context menu) to send your files to the "other qube" and [they'll be sent directly](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/3) to the mounted device's mounted root @SteveC |
**WiFi toggle and default status** - Soft switch WiFi on and off: `qvm-run sys-net -- "if nmcli radio wifi | head -c1 | egrep 'e'; then nmcli radio wifi off; else nmcli radio wifi on; fi"` - To keep WiFi off [by default on boot](https://forum.qubes-os.org/t/short-quality-of-life-improvements-thread/23380/6), drop the file `/var/lib/NetworkManager/NetworkManager.state` with the following content in sys-net's template: ``` [main] WirelessEnabled=false ``` |
Feel free to | **Feel free to add your tip to this wiki post (do not alter anything above the line)** |
1. If your tip cannot be condensed into a few lines, it doesn't | 1. If your tip cannot be condensed into a few lines, it doesn't belong here |
2. If your tip is niche with regard to | 2. If your tip is niche with regard to Qubes users, it doesn't belong here* |
3. | 3. Follow the established style convention as much as possible |
4. | 4. Give credit (even to yourself) and add a link where applicable |
5. | 5. Feel free to add new categories *when necessary* |
6. | 6. Discussions regarding specific tips belong in their own thread--unless discussing whether they belong here. |
<h2>Quality-of- | <h2>Quality-of-Life Improvements and Minor Optimizations</h2> |
**Notifications** - [Disable notifications per VM](https://forum.qubes-os.org/t/disable-notification-per-xfce-qubes-do-not-disturb-mode/19424) - **Fedora-XFCE only** - Run `xfce4-notifyd-config`, then `xfconf-query -c xfce4-notifyd -p /do-not-disturb --set true` @solene |
This is a thread where we | This is a thread where we collect small 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 contribute to the tips section of this wiki post, below the line. The following guidelines are subject to frequent and major changes while we figure out how this might work |
3. | 3. The "Minor" in "Minor Optimizations" means, "doesn't take much to implement", so do post your high-impact tips. |
4. | 4. If you're unsure whether your tip belongs, ask |
5. | 5. Give credit (even to yourself) and add a link where applicable |
6. | 6. Follow the established style convention as much as possible |
7. Discussions regarding specific tips belong in their own thread--unless discussing whether it belongs here. | 7. Feel free to add new categories *if necessary* 8. Discussions regarding specific tips belong in their own thread--unless discussing whether it belongs here. |
--- <h2>Quality-of-life Improvements and Minor Optimizations</h2> | |
- [Reduce VLC's CPU usage](https://forum.qubes-os.org/t/vlc-video-playback-cpu-usage-improvement/23363) - Under 'Video' in Preferences (Ctrl+P), change 'Output' to 'X11 video output (XCB)' @solene | - [Reduce VLC's CPU usage](https://forum.qubes-os.org/t/vlc-video-playback-cpu-usage-improvement/23363) - Under 'Video' in Preferences (Ctrl+P), change 'Output' to 'X11 video output (XCB)' @solene |