User Tools

Site Tools


linux:distros:solus

Information

  • Solus 1)
  • Budgie 2)

Download

Installation Notes

  • \EFI\goofiboot\goofibootx64.efi 3)

Repositories

Stable

Unstable

sudo eopkg rr 'Solus' && sudo eopkg ar 'Solus Unstable' 'https://packages.solus-project.com/unstable/eopkg-index.xml.xz'

Software

Update

sudo eopkg upgrade -y && sync

GNU nano

  • Sets as system-wide default editor
  • Sets nowrap and nonewlines for current user
export 'EDITOR=nano' && echo 'Defaults editor = /usr/bin/nano' | sudo tee --append '/etc/sudoers.d/nano' > '/dev/null' && echo 'set nowrap' | tee --append ~/'.nanorc' > '/dev/null' && echo 'set nonewlines' | tee --append ~/'.nanorc' > '/dev/null'

General

sudo eopkg install aria2 brasero filezilla gimp hplip htop keepassx p7zip perl-image-exiftool xfsprogs hdparm ffmpegthumbnailer evolution gnome-contacts mtpfs

Intel Graphics

libva-intel-driver xorg-driver-video-intel

AMD Graphics

libvdpau xorg-driver-video-radeon

Wine

wine-32bit winetricks libgnutls-32bit libjpeg-turbo-32bit libpng-32bit libtxc_dxtn-32bit cabextract

Steam

steam

Steam Controller

Settings

Keyboard Shortcuts

gnome-terminal
keepassxc

gedit

  • 4 Tab width
  • Insert Spaces for Tab mode

Network

VPN.AC

DNS.WATCH DNS

IPv4

84.200.69.80
84.200.70.40

IPv6

2001:1608:10:25::1c04:b12f
2001:1608:10:25::9249:d69b

Nautilus

  • Sort folders before files
  • 2GB File Previews

Rhythmbox

clr-boot-manager

  • Add settings separated by a space
sudo -e '/etc/kernel/cmdline'

blk_mq

scsi_mod.use_blk_mq=y

Linux

acpi_osi=Linux

i915

i915.enable_guc_loading=2 i915.enable_guc_submission=2

Disable HT

  • Set to half of total cores if Intel HT is enabled
maxcpus=4

Blacklist

  • btusb,hci_uart control Bluetooth
  • uvcvideo controls Webcams
  • iTCO_wdt controls Intel's Hardware Watchdog
  • nowatchdog disables both soft and hard generic watchdogs
modprobe.blacklist=btusb,hci_uart,uvcvideo,iTCO_wdt nowatchdog

Disable AppArmor

  • This can speed up boot a tiny bit but apparently will prevent Snaps from working
apparmor=0 security=""

DRM Debug

drm.debug=0xe

Corsair Gaming HARPOON RGB Mouse Quirk

usbhid.quirks=0x1B1C:0x1B3C:0x20000000

Settings Update

sudo clr-boot-manager update

Swap Partition FDE Fix

  • Only required when Full Disk Encryption is being used 5)
  • Change UUID to reported value from blkid
sudo blkid | grep 'swap'
sudo -e '/etc/fstab'
UUID=x none swap defaults,discard 0 0

I/O Schedulers

Check

  • Replace sda if necessary
  • If using blk-mq, non-mq schedulers aren't present 6)
cat '/sys/block/sda/queue/scheduler'

BFQ

  • Good for average workloads and responsiveness
  • May require blk_mq
echo 'ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="bfq"' | sudo tee '/etc/udev/rules.d/60-scheduler.rules' > '/dev/null' && sudo udevadm control --reload && sudo udevadm trigger

Kyber

  • Simple scheduler, good for fast drives and high throughput like Servers
  • May require blk_mq
echo 'ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="kyber"' | sudo tee '/etc/udev/rules.d/60-scheduler.rules' > '/dev/null' && sudo udevadm control --reload && sudo udevadm trigger

mq-deadline

echo 'ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="mq-deadline"' | sudo tee '/etc/udev/rules.d/60-scheduler.rules' > '/dev/null' && sudo udevadm control --reload && sudo udevadm trigger

none

  • Probably shouldn't use this
echo 'ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="none"' | sudo tee '/etc/udev/rules.d/60-scheduler.rules' > '/dev/null' && sudo udevadm control --reload && sudo udevadm trigger

Input

gsettings set 'org.gnome.desktop.peripherals.touchpad' 'send-events' 'disabled-on-external-mouse'
gsettings set 'org.gnome.desktop.peripherals.touchpad' 'natural-scroll' 'false'
gsettings set 'org.gnome.desktop.peripherals.mouse' 'accel-profile' 'flat'
gsettings set 'org.gnome.desktop.peripherals.touchpad' 'tap-to-click' 'false'
gsettings set 'org.gnome.desktop.peripherals.touchpad' 'tap-and-drag' 'false'
gsettings set 'org.gnome.desktop.peripherals.touchpad' 'disable-while-typing' 'false'

Kernel Options

sudo -e '/etc/sysctl.d/99-custom.conf'
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 1
kernel.sysrq = 1

mpv

  • With GNOME mpv, this config file needs to be manually selected from Preferences
  • hwdec can be either vdpau or vaapi depending on the GPU/driver used 7)
mkdir -p ~/'.config/mpv' && nano ~/'.config/mpv/mpv.conf'
hwdec='vaapi'
profile='opengl-hq'
ao='pulse'
~/.config/mpv/mpv.conf

NetworkManager

sudo mkdir -p '/etc/NetworkManager/conf.d' && sudo -e '/etc/NetworkManager/conf.d/99-custom.conf'
[device-mac-randomization]
wifi.scan-rand-mac-address=yes

[connection-mac-randomization]
ethernet.cloned-mac-address=random
wifi.cloned-mac-address=random

[connection]
wifi.powersave=2

PulseAudio

nano ~/'.config/pulse/daemon.conf'
resample-method = soxr-vhq
flat-volumes = no

Secure Shell

systemd Journal

sudo mkdir -p '/etc/systemd/journald.conf.d' && sudo -e '/etc/systemd/journald.conf.d/logging.conf'
[Journal]
SystemMaxUse=50M
RuntimeMaxUse=50M

TRIM

Service

  • The weekly timer should already be enabled
sudo systemctl start 'fstrim' && sync && sudo systemctl status 'fstrim' 'fstrim.timer' -l

Environment Variables

Wine Staging

sudo mkdir -p '/etc/profile.d' && sudo -e '/etc/profile.d/wine-staging.sh'
# Tweaks
export STAGING_SHARED_MEMORY=1
export STAGING_WRITECOPY=1

Timezone

sudo mkdir -p '/etc/profile.d' && echo 'export TZ=:/etc/localtime' | sudo tee '/etc/profile.d/tz.sh' > '/dev/null'

Computer-specific

Spinesnap

Internal Speakers

sudo eopkg install 'alsa-tools' -y && sudo -e '/etc/systemd/system/acer-speakers.service' && sudo systemctl daemon-reload && sudo systemctl enable 'acer-speakers' && sudo systemctl start 'acer-speakers' && sudo systemctl status 'acer-speakers' -l
[Unit]
Description=Acer Predator G9-791 Internal Speaker Fix
After=sound.target
Wants=sound.target

[Service]
Type=oneshot
ExecStart=/usr/bin/hda-verb '/dev/snd/hwC0D0' '0x1b' '0x300' '0x9000'
ExecStart=/usr/bin/hda-verb '/dev/snd/hwC0D0' '0x1b' '0x300' '0xa000'
ExecStart=/usr/bin/hda-verb '/dev/snd/hwC0D0' '0x1b' '0x707' '0x60'

[Install]
WantedBy=sound.target

Sleep Script

sudo -e '/usr/lib/systemd/system-sleep/acer-speakers.sleep' && sudo chmod +x '/usr/lib/systemd/system-sleep/acer-speakers.sleep'
#!/bin/sh
'/usr/bin/hda-verb' '/dev/snd/hwC0D0' '0x1b' '0x300' '0x9000'
'/usr/bin/hda-verb' '/dev/snd/hwC0D0' '0x1b' '0x300' '0xa000'
'/usr/bin/hda-verb' '/dev/snd/hwC0D0' '0x1b' '0x707' '0x60'

Open-Source Graphics

modesetting

sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Device"
    Identifier      "Optimus"
    Driver          "modesetting"
EndSection

intel + nouveau

sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Device"
    Identifier      "Skylake GT2"
    Driver          "intel"
    BusID           "PCI:0:2:0"
    Option          "DRI"       "3"
EndSection

Section "Device"
    Identifier      "NV124"
    Driver          "nouveau"
    BusID           "PCI:1:0:0"
    Option          "DRI"       "3"
EndSection

Proprietary Graphics

  • TODO: Figure this out again

MSR

  • Not necessary to be ran, only here for reference
  • Requires msr-tools 8)

Enable Intel Speed Shift Technology

  • 0x770 needs to report 1
sudo rdmsr --all --decimal '0x770'
sudo wrmsr --all '0x770' '1'

Disable BD-PROCHOT

  • 0x1FC needs to be set to whatever it reports
sudo rdmsr --all --decimal '0x1FC'
sudo wrmsr --all '0x1FC' 'x'

Steven Black's Unified Hosts File

Service

sudo -e '/etc/systemd/system/hosts-up.service'
[Service]
Type=oneshot
WorkingDirectory=/tmp
ExecStartPre=/bin/rm -Rf '/tmp/master.zip' '/tmp/hosts-master'
ExecStartPre=/usr/bin/wget 'https://github.com/StevenBlack/hosts/archive/master.zip' -O '/tmp/master.zip'
ExecStartPre=/usr/bin/unzip '/tmp/master.zip' -d '/tmp'
ExecStart=/usr/bin/python3 '/tmp/hosts-master/updateHostsFile.py' --auto --replace --flush-dns-cache --extensions 'gambling' 'fakenews'
ExecStartPost=/bin/rm -Rf '/tmp/master.zip' '/tmp/hosts-master'
ExecStartPost=/bin/sync

Timer

sudo -e '/etc/systemd/system/hosts-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'hosts-up.timer' && sudo systemctl start 'hosts-up.timer' 'hosts-up' && sudo systemctl status 'hosts-up' -l
[Unit]
Description=Steven Black's Unified Hosts File Sources Updater
After=network-online.target
Wants=network-online.target

[Timer]
OnCalendar=weekly
Persistent=true

[Install]
WantedBy=timers.target

Mozilla Firefox

  • Use Disconnect.me strict protection Block List

user.js

cd ~/'.mozilla/firefox/'*'.default' && nano 'user.js' && cd ~
user_pref("layout.frame_rate.precise", true);
user_pref("mousewheel.min_line_scroll_amount", 40);
user_pref("browser.sessionstore.interval", 300000);
user_pref("extensions.jid1-BoFifL9Vbdl2zQ@jetpack.showReleaseNotes", false);
user_pref("dom.storage.enabled", true);
user_pref("dom.event.clipboardevents.enabled", true);
user_pref("extensions.pocket.enabled", false);
user_pref("loop.enabled", false);
user_pref("reader.parse-on-load.enabled", false);
user_pref("media.peerconnection.enabled", false);
user_pref("security.ssl.require_safe_negotiation", false);
user_pref("network.captive-portal-service.enabled", false);
user_pref("network.cookie.cookieBehavior", 1);
user_pref("browser.sessionstore.privacy_level", 2);
user_pref("browser.cache.disk.enable", false);
user_pref("privacy.popups.disable_from_plugins", 3);
user_pref("dom.battery.enabled", false);
user_pref("media.peerconnection.ice.default_address_only", true);
user_pref("security.ssl3.dhe_rsa_aes_128_sha", false);
user_pref("security.ssl3.dhe_rsa_aes_256_sha", false);
user_pref("toolkit.telemetry.enabled", false);
user_pref("privacy.donottrackheader.enabled", true);
user_pref("geo.enabled", false);
user_pref("browser.safebrowsing.malware.enabled", false);
user_pref("browser.safebrowsing.phishing.enabled", false);
user_pref("browser.safebrowsing.downloads.enabled", false);
user_pref("webgl.disabled", true);
user_pref("media.mediasource.ignore_codecs", true);
user_pref("network.cookie.lifetimePolicy", 2);
user_pref("browser.display.use_document_fonts", 0);
user_pref("network.http.referer.userControlPolicy", 0);
user_pref("dom.webaudio.enabled", false);
user_pref("dom.webnotifications.enabled", false);
user_pref("browser.tabs.remote.autostart.2", false);

Extensions

  • 8 Extensions
gio open 'https://addons.mozilla.org/en-US/firefox/addon/privacy-settings/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/versions' && gio open 'https://www.eff.org/https-everywhere' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/umatrix/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/cookie-autodelete/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/https-by-default/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/no-resource-uri-leak/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/versions'
  • Enable Active Mode
  • Don't Log Total Number Of Cookies Deleted
  • Don't Show Notification After Cookie CleanUp
  • Clean Cookies from Open Tabs on StartUp

HTTPS Everywhere

  • Use the Observatory

No Resource URI Leak

  • Block Web-exposed subset of chrome URIs

Privacy Settings

  • Full Privacy

uBlock Origin

Disabled Filters

  • EasyList
  • EasyPrivacy
  • Malware Domain List
  • Malware domains
  • Peter Lowe’s Ad and tracking server list​​​​​​​​

Custom Filters

https://secure.fanboy.co.nz/fanboy-problematic-sites.txt
https://secure.fanboy.co.nz/enhancedstats.txt
https://secure.fanboy.co.nz/fanboy-antifacebook.txt
https://secure.fanboy.co.nz/fanboy-antifonts.txt
https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/fake-news.txt
https://easylist-downloads.adblockplus.org/antiadblockfilters.txt
https://xuhaiyang1234.gitlab.io/AAK-Cont/dist/aak-cont-list-ubo.txt
https://raw.githubusercontent.com/jspenguin2017/uBlockProtector/master/uBlockProtectorList.txt

uMatrix

  • Auto-update hosts files

Notable Folders and Commands

Shortcuts

/usr/share/applications
~/.local/share/applications

Icons

/usr/share/icons/hicolor
~/.local/share/icons/hicolor

fstrim

sudo fstrim -v --all

Xorg Debug

gio open '/var/log/Xorg.0.log'

Verify DRI3

LIBGL_DEBUG='verbose' glxinfo | grep 'libgl'

Show Graphics Info

inxi -xG

Show CPU Frequency

grep 'MHz' '/proc/cpuinfo'
watch -n 0.1 grep \'cpu MHz\' '/proc/cpuinfo'

Partition Information

df -hT

Encryption Information

sudo cryptsetup -v status '/dev/dm-0'

hdparm Secure Erase

  • The suspend is needed to release frozen drive state 9)
sudo eopkg install 'hdparm' -y && sync
systemctl suspend
lsblk
sudo hdparm -I '/dev/sda' | grep 'not'
sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda'
sudo hdparm --user-master u --security-erase 'x' '/dev/sda'
sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda'

Quick Commands

  • Performs security-erase followed by security-erase-enhanced

sda

sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase 'x' '/dev/sda' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda' && sync

sdb

sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase 'x' '/dev/sdb' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sdb' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sdb' && sync

Clean EFI Variables

  • This is only verified on Spinesnap, other computers beware as this can cause a brick apparently
  • This is an easier way of clearing boot entries outside of efibootmgr and manually deleting each entry
sudo rm -f '/sys/firmware/efi/efivars/'* || sync

EFI Variables R/W

  • This wasn't necessary on Solus 3, but should efivars need to be rw, the following command does that
sudo mount -o 'remount' '/sys/firmware/efi/efivars' -o 'rw,nosuid,nodev,noexec,noatime'

RAID Controller Details

  • Only applicable when using FakeRAID/Intel RST
sudo mdadm --detail-platform

VGA Switcheroo Power States

  • DIS: Discrete GPU
  • IGD: Integrated Graphics
  • DIS-Audio: The audio device exported by your discrete GPU for HDMI sound playback
  • +: This device is connected to graphics connectors
  • OFF: The device is powered off
  • ON: The device is powered on
  • DynOff: The device is currently powered off but will be powered on when needed
  • DynPwr: The device is currently powered on but will be powered off when not needed
sudo cat '/sys/kernel/debug/vgaswitcheroo/switch'

i915 GuC Firmware

sudo cat '/sys/kernel/debug/dri/0/i915_guc_info'
sudo cat '/sys/kernel/debug/dri/0/i915_guc_load_status'

Optimal GCC compiler flags

gcc -v -E -x c -march=native -mtune=native - < /dev/null 2>&1 | grep cc1 | perl -pe 's/ -mno-\S+//g; s/^.* - //g;'

Privacy

Remove EXIF data

exiftool -all= *.* -overwrite_original
3)
Acer Trust
4)
only referenced to point to above URL for package checking; URL may change with future Solus releases
5)
TODO: Re-verify
6)
no noop, cfq nor deadline
7)
radeon, amdgpu, nouveau, and NVIDIA = vdpau || intel = vaapi
9)
Spinesnap
/usr/local/www/wiki/data/pages/linux/distros/solus.txt · Last modified: by 127.0.0.1