Difference between revisions of "Ubuntu Setup"
(26 intermediate revisions by the same user not shown) | |||
Line 270: | Line 270: | ||
= Useful setups = | = Useful setups = | ||
== Image converter == | |||
nautilus-image-converter is a nautilus extension to mass resize or rotate images. It adds two context menu items in nautlius so you can right-click and choose "Resize Image" or "Rotate Image"). | |||
<source lang=bash> | |||
# tested on Ubuntu 24.04 with Gnome | |||
sudo apt-get install nautilus-image-converter | |||
# Restart to see the new context menu | |||
nautilus -q | |||
</source> | |||
== Call screen saver from a terminal to blank all screens == | == Call screen saver from a terminal to blank all screens == | ||
<source lang=bash> | <source lang=bash> | ||
Line 278: | Line 288: | ||
== Create application launcher == | == Create application launcher == | ||
;Ubuntu 18.04 | |||
<source lang=bash> | <source lang=bash> | ||
# Install the GNOME-panel toolset | # Install the GNOME-panel toolset | ||
Line 291: | Line 302: | ||
:[[File:ClipCapIt-190807-080016.PNG]] | :[[File:ClipCapIt-190807-080016.PNG]] | ||
= Screen | ;Ubuntu 19.10, 20.04 | ||
In above releases <code>gnome-desktop-item-edit</code> has been removed from the <code>gnome-panel</code> package, as an alternative <code>.desktop</code> files can be created manually. | |||
<source lang=bash> | |||
vi /usr/share/applications/APPNAME.desktop | |||
[Desktop Entry] | |||
Name=<NAME OF THE APPLICATION> | |||
Comment=<A SHORT DESCRIPTION> | |||
Exec=<COMMAND-OR-FULL-PATH-TO-LAUNCH-THE-APPLICATION> | |||
Type=Application | |||
Terminal=false | |||
Icon=<ICON NAME OR PATH TO ICON> | |||
NoDisplay=false | |||
Keywords=<eg. sql> | |||
</source> | |||
It's optional but you may need to right click and set 'allow launching' with addition to set executable permissions. Usual locations of <code>.desktop</code> files are: | |||
* <code>/usr/share/applications/</code> | |||
* <code>/var/lib/snapd/desktop/applications/</code> for snap applications | |||
== [https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet gnome-shell-system-monitor-applet] - cpu, memory indicators == | |||
System information such as memory usage, cpu usage, network rates and more can be displayed in the notification area in GNOME Shell. | |||
System-monitor extensions: | |||
[https://extensions.gnome.org/extension/120/system-monitor/ system-monitor] by paradoxxxzero on [https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet github] supports Gnome-shell up to v40. It seems like abandoned project. | |||
[https://extensions.gnome.org/extension/3010/system-monitor-next/ system-monitor-next] by mgalgs on [https://github.com/mgalgs/gnome-shell-system-monitor-applet github] supports Gnome-shell v40+, it's a fork of the above. | |||
All extensions: | |||
* https://extensions.gnome.org | |||
{{Note|The current version of the browser Firefox is packaged as a snap version. One of the issues with this is that it cannot work with the Gnome Extensions website.}} | |||
Install on Ubuntu 24.04 (June 2024) | |||
<source lang=bash> | |||
# Ubuntu 20/22/24 | |||
GNOME Shell 46.0 # version as of Ubuntu 24.04 | |||
sudo apt install gnome-shell-extensions # Ubuntu 20.04 already has this package, 24.04 needs installing it | |||
sudo apt install gnome-shell-extension-manager # Ubuntu 22|24.04 (as Firefox is installed as snap) on 24.04 it's v0.5.0 | |||
# Open `Extensions` app, turn "Use Extensions". # Already turned on on Ubuntu 24.04 | |||
# Open Browse tab > search for 'system-monitor-next' # cpu/mem/net indicators will appear in the system tray | |||
# Additional steps for Ubuntu < 24.04 | |||
sudo apt install gnome-tweaks # GUI to manage gnome-extensions | |||
sudo apt install gir1.2-gtop-2.0 gir1.2-nm-1.0 gir1.2-clutter-1.0 gnome-system-monitor | |||
sudo apt install gnome-shell-extension-system-monitor # after requires log out | |||
# Download the extension from | |||
## https://extensions.gnome.org/extension/120/system-monitor/ | |||
# Never worked out how to use this direct download and install via 'gnome-extensions install <extension_name>' | |||
## wget https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet/archive/v38.zip | |||
## gnome-extensions install <system-monitor@paradoxxx.zero.gmail.com> | |||
# Enable extension using cli | |||
gnome-extensions enable system-monitor-next@paradoxxx.zero.gmail.com | |||
gnome-extensions list --user | |||
clipboard-indicator@tudmotu.com | |||
system-monitor-next@paradoxxx.zero.gmail.com | |||
</source> | |||
:[[File:ClipCapIt-210105-084527.PNG]] | |||
=== [https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet/issues/737#issuecomment-1230654455 Ubuntu 22.04 workaround for the OUTDATED extension] === | |||
{{Note|Workaround still needed in August 2022}} | |||
<source lang=bash> | |||
sudo apt install gir1.2-gtop-2.0 gir1.2-nm-1.0 gir1.2-clutter-1.0 gnome-system-monitor | |||
git clone https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet.git | |||
cd gnome-shell-system-monitor-applet # commit b359d88 verified | |||
vi system-monitor@paradoxxx.zero.gmail.com/metadata.json | |||
# | change "version": -1 to "version": 42 | |||
make install | |||
# log out and back in (required) | |||
</source> | |||
= Snapd - Chromium = | |||
Recently in U19+ Chromium get installed via snapd package. This is classic installation that has limited access to only a certain directories. It happen that when working with AWS we need get access to <code>~/.ssh</code> folder to get ec2 machine password. This folder is denied, but we can bind mount <code>~/.ssh</code> folder into the snap container directory: | |||
<source lang=bash> | |||
$ snap list chromium | |||
Name Version Rev Tracking Publisher Notes | |||
chromium 86.0.4240.111 1373 latest/stable canonical✓ - | |||
# cd to chromim $HOME dir | |||
mkdir ~/snap/chromium/current/.ssh | |||
sudo mount --bind ~/.ssh/ ~/snap/chromium/current/.ssh | |||
</source> | |||
= Screen shooting = | |||
In Ubuntu 20.04 Shutter is not a part of default repositories. It can be added via PPA: | In Ubuntu 20.04 Shutter is not a part of default repositories. It can be added via PPA: | ||
<source lang=bash> | <source lang=bash> | ||
Line 299: | Line 403: | ||
= Audio - [https://rastating.github.io/setting-default-audio-device-in-ubuntu-18-04/ set defaults] = | = Audio - [https://rastating.github.io/setting-default-audio-device-in-ubuntu-18-04/ set defaults] = | ||
For preserving settings using GUI you can install [https://freedesktop.org/software/pulseaudio/pavucontrol/ PulseAudio Volume Control] <code>pavucontrol</code>. | |||
<source lang=bash> | |||
# install | |||
sudo apt install pavucontrol # Ubuntu 20.04 | |||
# run | |||
pavucontrol | |||
</source> | |||
Set default output/input device. In Ubuntu PulseAudio is used to control audio devices. It contains following configuration files | Set default output/input device. In Ubuntu PulseAudio is used to control audio devices. It contains following configuration files | ||
<source lang=bash> | <source lang=bash> | ||
Line 337: | Line 450: | ||
<source lang=bash> | <source lang=bash> | ||
# Output device | # Output device | ||
OUTPUT_DEVICE=alsa_output.usb-Plantronics_Plantronics_DA40-00. | OUTPUT_DEVICE=alsa_output.usb-Plantronics_Plantronics_DA40-00.mono-fallback | ||
sudo sed -i "s/#\(set-default-sink\) output/\1 ${OUTPUT_DEVICE}/g" /etc/pulse/default.pa # remove '-i' to test before apply | sudo sed -i "s/#\(set-default-sink\) output/\1 ${OUTPUT_DEVICE}/g" /etc/pulse/default.pa # remove '-i' to test before apply | ||
# Input device | # Input device | ||
INPUT_DEVICE=alsa_input.usb-Plantronics_Plantronics_DA40-00.mono-fallback | INPUT_DEVICE=alsa_input.usb-Plantronics_Plantronics_DA40-00.mono-fallback | ||
sudo sed -i "s/#\(set-default-source\) input/\1 ${INPUT_DEVICE}/g" /etc/pulse/default.pa | sudo sed -i "s/#\(set-default-source\) input/\1 ${INPUT_DEVICE}/g" /etc/pulse/default.pa | ||
vi /etc/pulse/default.pa # make sure lines below are in place | |||
### Make some devices default | |||
set-default-sink alsa_output.usb-Plantronics_Plantronics_DA40-00.mono-fallback | |||
set-default-source alsa_input.usb-Plantronics_Plantronics_DA40-00.mono-fallback | |||
# Delete local user profile and restart system, after boot new defaults should be set | # Delete local user profile and restart system, after boot new defaults should be set | ||
Line 354: | Line 472: | ||
;Troubleshooting | ;Troubleshooting | ||
PulseAudio cli | |||
<source lang=bash> | |||
pacmd | |||
>>> help # lists all available commands | |||
pulseaudio --check # Check if any pulseaudio instance is running. It normally prints no output, just exit code. 0 means running | |||
pulseaudio --kill # kill, then --start | |||
pulseaudio -D # start pulseaudio as a daemon | |||
# | using /etc/pulse/daemon.conf | |||
# Pulseaudio is a user service | |||
systemctl --user restart pulseaudio.service | |||
systemctl --user restart pulseaudio.socket | |||
</source> | |||
I have a port replicator Dell D-6000, that gets randomly disconnected causing switching audio to new connected device - means itself. As workaround commenting out lines below stops this behaviour. | I have a port replicator Dell D-6000, that gets randomly disconnected causing switching audio to new connected device - means itself. As workaround commenting out lines below stops this behaviour. | ||
<source lang=bash> | <source lang=bash> | ||
Line 361: | Line 495: | ||
# load-module module-switch-on-connect | # load-module module-switch-on-connect | ||
# .endif | # .endif | ||
</source> | |||
= Input devices = | |||
Motivation is to enable horizontal scrolling in Ubuntu 20.04 using Perixx Gamig Mouse Mx2000 | |||
<source lang=bash> | |||
xinput list | |||
⎡ Virtual core pointer id=2 [master pointer (3)] | |||
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] | |||
⎜ ↳ Holtek USB Gaming Mouse id=11 [slave pointer (2)] | |||
⎜ ↳ SYNA8007:00 06CB:CD8C Mouse id=14 [slave pointer (2)] | |||
⎜ ↳ SYNA8007:00 06CB:CD8C Touchpad id=15 [slave pointer (2)] | |||
⎜ ↳ TPPS/2 Elan TrackPoint id=19 [slave pointer (2)] | |||
⎣ Virtual core keyboard id=3 [master keyboard (2)] | |||
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] | |||
↳ Power Button id=6 [slave keyboard (3)] | |||
↳ Video Bus id=7 [slave keyboard (3)] | |||
↳ Sleep Button id=8 [slave keyboard (3)] | |||
↳ CHICONY HP Basic USB Keyboard id=9 [slave keyboard (3)] | |||
↳ Holtek USB Gaming Mouse id=10 [slave keyboard (3)] | |||
↳ Integrated Camera: Integrated C id=12 [slave keyboard (3)] | |||
↳ Integrated Camera: Integrated I id=13 [slave keyboard (3)] | |||
↳ sof-hda-dsp Headset Jack id=16 [slave keyboard (3)] | |||
↳ Intel HID events id=17 [slave keyboard (3)] | |||
↳ AT Translated Set 2 keyboard id=18 [slave keyboard (3)] | |||
↳ ThinkPad Extra Buttons id=20 [slave keyboard (3)] | |||
↳ Holtek USB Gaming Mouse id=21 [slave keyboard (3)] | |||
# test mouse aka Virtual core pointer | |||
xinput test 11 | |||
motion a[0]=2023 # <- cursor moving | |||
motion a[0]=2024 a[1]=1411 | |||
motion a[3]=19545 # <- scroll down | |||
button press 5 | |||
button release 5 | |||
# test 'virtual core keyboard' aka additional programmable buttons | |||
## '10' - this virtual keyboard for all buttons except the scrolling wheel | |||
xinput test 10 | |||
key press 37 | |||
key press 38 | |||
## '21' - this is scrolling wheel buttons left/right, not scrolling itself | |||
xinput test 21 | |||
key press 248 | |||
key release 248 | |||
</source> | |||
# List of properties of a device. We want to see 'horizontal scrolling wheel buttons' | |||
<source lang=bash> | |||
$ xinput list-props 21 | |||
Device 'Holtek USB Gaming Mouse': | |||
Device Enabled (169): 1 | |||
Coordinate Transformation Matrix (171): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 | |||
libinput Send Events Modes Available (291): 1, 0 | |||
libinput Send Events Mode Enabled (292): 0, 0 | |||
libinput Send Events Mode Enabled Default (293): 0, 0 | |||
Device Node (294): "/dev/input/event10" | |||
Device Product ID (295): 1241, 41063 | |||
</source> | </source> | ||
Latest revision as of 12:40, 15 July 2024
If you are using Ubuntu for various Linux projects you will find that as it comes with pre installed with many packages. On the other hand installing just minimal version seems to be too extreme. Therefore I started maitaining a list of unnecessary packages and one liner to that removes them all. Please feel free to modify for your needs.
Default partitioning
On virtual systems schema below will be applied, eg on laptops:
#Eg. for 4G memory and 50G storage system
/dev/mapper/ubuntu--vg-root mount_point: /
/dev/mapper/ubuntu--vg-swapt_1
/dev/sda
/dev/sda1 (50G)
LVM VG ubuntu-vg, LV root as ext4
LVM VG ubuntu-vg, LV swapt_1 as swap
#Boot device:
/dev/mapper/ubuntu--vg-root
As a good handy practice you may create 100G virtual disk that you thin provision. Then create 2 PVs for root and swap partitions. Don't utilize all space at once but extend partitions when needed. This method eliminates adding new disks to VMs saving time and efforts.
Example LVM setup, here using 30G Physical Volume(99.9% used), 1 Volume Group and 2 Logical Volumes (root and swap).
$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 ubuntu-vg lvm2 a-- <29.93g 36.00m
$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
ubuntu-vg 1 2 0 wz--n- <29.93g 36.00m
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root ubuntu-vg -wi-ao---- 28.94g
swap_1 ubuntu-vg -wi-ao---- 976.00m
piotr@u18:~$
$ lsblk /dev/sda --fs
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
└─sda1 LVM2_member rP18Kb-Q12j-wjVf-C1iV-uy42-BUJD-aWFuO7
├─ubuntu--vg-root ext4 fad04a3b-5fa3-4a03-bbd6-24a93cda1eb3 /
└─ubuntu--vg-swap_1 swap 47cd084b-89b0-4cd5-bdb8-367238842ba1 [SWAP]
List of unnecessary packages
sudo apt-get remove libreoffice-* #Remove LibreOffice
sudo apt-get remove unity-lens-* #This package contains photos scopes which allow Unity to search for local and online photos.
sudo apt-get remove shotwell* #Photo organizer
sudo apt-get remove simple-scan #Scanner software
sudo apt-get remove empathy* #Internet messaging ~13M
sudo apt-get remove thunderbird* #Email client ~61M
sudo apt-get remove unity-scope-gdrive #Google Drive scope for Unity ~116KB
sudo apt-get remove cheese* #Cheese Webcam Booth - webcam software
sudo apt-get remove brasero* #Brasero Disc Burner ~6.5MB
sudo apt-get remove gnome-bluetooth Package to manipulate bloototh devices using Gnome desktop ~2MB
sudo apt-get remove gnome-orca Orca Screen Reader -Provide access to graphical desktop environments via synthesised speech and/or refreshable braille
sudo apt-get remove unity-webapps-common #Amazon Unity WebApp integration scripts ~133KB
sudo apt-get remove ibus-pinyin #IBus Bopomofo Preferences - ibus-pinyin is a IBus based IM engine for Chinese ~1.4MB
sudo apt-get remove apt-get remove printer-driver-foo2zjs* #Reactivate HP LaserJet 1018/1020 after reloading paper ~3.2MB
Remove unnecessary packages - one liner
- Ubuntu 12, 14, 16
$ sudo apt-get remove libreoffice-* unity-lens-* shotwell* simple-scan empathy* thunderbird* unity-scope-gdrive cheese*\ brasero* gnome-bluetooth gnome-orca unity-webapps-common ibus-pinyin printer-driver-foo2zjs*
- Ubuntu 18. It's recommended to choose Minimal Install, so most of packages below won't get installed.
$ sudo apt-get purge libreoffice-* unity-lens-* shotwell* simple-scan empathy* thunderbird* cheese* \ brasero* gnome-bluetooth gnome-orca ibus-pinyin printer-driver-foo2zjs* xul-ext-ubufox speech-dispatcher* \ rhythmbox* printer-driver-* mythes-en-us mobile-broadband-provider-inf* \ evolution-data-server* espeak-ng-data:amd64 bluez* ubuntu-web-launchers \ transmission-*
sudo apt-get purge xul-ext-ubufox # Canonical FF customizations for u14,16,18,20
sudo apt-get remove gnome-mahjongg gnome-mines gnome-sudoku # games, works for u14,16,18,20
sudo apt-get remove gnome-video-effects gstreamer1.0-*
- XTREME
UnInstallant Ubuntu software notifier
sudo apt-get remove update-notifier
Uninstall locales - unused languages etc
sudo apt-get install localepurge
Set apt-get to not install recommended and suggested packages
sudo bash -c 'cat > /etc/apt/apt.conf.d/01no-recommend << EOF
APT::Install-Recommends "0";
APT::Install-Suggests "0";
EOF'
To see if apt reads this, enter this in command line (as root or regular user):
apt-config dump | grep -e Recommends -e Suggests
Install necessary packages
Adobe Flash Player
sudo apt-get install flashplugin-installer
Java JRE This will install the default verison Java for you distro plus Icedtea plugin for using Firefox with Java
sudo apt-get install default-jre icedtea-plugin
Unity Settings
sudo apt-get install unity-control-center
Opera
Add Opera repository deb http://deb.opera.com/opera/ stable non-free
to the apt-get source list in /etc/apt/sources.list
. Then import a public PGP repository key.
echo "deb http://deb.opera.com/opera/ stable non-free" | sudo tee -a /etc/apt/sources.list
wget -qO - http://deb.opera.com/archive.key | sudo apt-key add -
sudo apt-get update && sudo apt-get install opera
Silverlight
Pipelight has been released and we can use it for silverlight as a best alternative moonlight.
sudo apt-add-repository ppa:ehoover/compholio sudo apt-add-repository ppa:mqchael/pipelight sudo apt-get update sudo apt-get install pipelight
GUI tools
- copyQ clipboard manager
- VisualVM
Customise Ubuntu
Fix Ubuntu Unity Dash Search for Applications and Files
sudo apt-get install unity-lens-files unity-lens-applications #log out and log back in required
Fix Ubuntu <17.10 missing Control Center
sudo apt-get install unity-control-center --no-install-recommends
Fix Ubuntu >18.04 missing System Settings
sudo apt install gnome-control-center
Remove background wallpaper
Tested on Ubuntu 14,16,18
gsettings set org.gnome.settings-daemon.plugins.background active true
gsettings set org.gnome.desktop.background draw-background false #disable
gsettings set org.gnome.desktop.background primary-color "#000000" #set to black
gsettings set org.gnome.desktop.background secondary-color "#000000" #set to black
gsettings set org.gnome.desktop.background color-shading-type "solid" #set solid colour
gsettings set org.gnome.desktop.background picture-uri file:///dev/null #remove wallpaper, not perfect but nothing worked in U15.10
gsettings set com.canonical.unity-greeter draw-user-backgrounds false #disable not worked
# Reset background picture to origin, U15.10
gsettings set org.gnome.desktop.background picture-uri file:///usr/share/backgrounds/warty-final-ubuntu.png
# Sets Unity greeter background, <17.04
gsettings set com.canonical.unity-greeter background /usr/share/backgrounds/warty-final-ubuntu.png
Disable screen lock out
dconf
is legacy tool to configure gnome nowadays more modern way is to use gsettings
.
dconf write /org/gnome/desktop/screensaver/idle-activation-enabled false #gnome
dconf write /org/gnome/desktop/screensaver/lock-enabled false
# Unity - Ubuntu 14.04, 16.04
gsettings set org.gnome.desktop.session idle-delay 0 #disable the screen blackout:(0 to disable)
gsettings set org.gnome.desktop.screensaver lock-enabled false #disable the screen lock
# VirtualBox > Ubuntu 18.04 Disabling Xserver screen timeouts
xset s off # Xserver s parameter sets screensaver to off
xset s noblank # prevent the display from blanking
xset -dpms # prevent the monitor's DPMS energy saver from kicking in
# Gnome - Ubuntu 18.04 LTS, Settings > Power > Blank screen > set to: Never
gsettings get org.gnome.desktop.lockdown disable-lock-screen # verify status
gsettings set org.gnome.desktop.lockdown disable-lock-screen true # set disabled
gsettings get org.gnome.desktop.screensaver lock-enabled # verify status
gsettings set org.gnome.desktop.screensaver lock-enabled false # set disabled
dconf write /org/gnome/desktop/screensaver/lock-enabled false # set disbaled using dconf
gsettings set org.gnome.desktop.screensaver idle-activation-enabled false # some say it's last resort :)
# Power management
gsettings set org.gnome.settings-daemon.plugins.power active true #set gnome to be the default power management run
gsettings set org.gnome.settings-daemon.plugins.power active false #turn off power management
# last resort as it was a bud in Ubuntu 11.10 with DPMS
gsettings set org.gnome.desktop.screensaver idle-activation-enabled false
gsettings set org.gnome.desktop.session idle-delay 2400
Verify by navigating in dconf-editor to /org/gnome/desktop/screensaver/
Change number of workspaces
To get the current values:
dconf read /org/compiz/profiles/unity/plugins/core/hsize
dconf read /org/compiz/profiles/unity/plugins/core/vsize
To set new values:
dconf write /org/compiz/profiles/unity/plugins/core/hsize 2
# or
gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ hsize 4
gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ vsize 4
Clenup motd messages
Ubuntu at login displays a number standard messages taking terminal space causing potential loosing context of previous operations.
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-134-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
1 package can be updated.
0 updates are security updates.
New release '18.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Last login: Fri Aug 31 12:11:28 2018 from 10.0.2.2
This is managed by files in /etc/update-motd.d/
, so deleting them will remove clutter on a screen
ls /etc/update-motd.d/
00-header 51-cloudguest 91-release-upgrade 98-fsck-at-reboot
10-help-text 90-updates-available 97-overlayroot 98-reboot-required
# Ubuntu Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-1022-azure x86_64)
# Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-1021-aws x86_64)
sudo rm /etc/update-motd.d/{10-help-text,50-landscape-sysinfo,50-motd-news,51-cloudguest,80-livepatch,95-hwe-eol}
This cuts down to this message, Ubuntu 18.04 in AWS
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-1021-aws x86_64) 0 packages can be updated. 0 updates are security updates. Last login: Thu Jan 31 17:09:38 2019 from 10.10.11.11
Useful setups
Image converter
nautilus-image-converter is a nautilus extension to mass resize or rotate images. It adds two context menu items in nautlius so you can right-click and choose "Resize Image" or "Rotate Image").
# tested on Ubuntu 24.04 with Gnome
sudo apt-get install nautilus-image-converter
# Restart to see the new context menu
nautilus -q
Call screen saver from a terminal to blank all screens
# tested on Ubuntu 18.04 with Gnome
sudo apt-get install gnome-screensaver
gnome-screensaver-command -a #controls GNOME screensaver, -a activate (blank the screen)
Create application launcher
- Ubuntu 18.04
# Install the GNOME-panel toolset
sudo apt-get install --no-install-recommends gnome-panel
# Every user launcher
sudo gnome-desktop-item-edit /usr/share/applications/VisualVM.desktop --create-new
# Local user only, the filename by default is a Name-of-appication.desktop
gnome-desktop-item-edit ~/.local/share/applications --create-new
- Ubuntu 19.10, 20.04
In above releases gnome-desktop-item-edit
has been removed from the gnome-panel
package, as an alternative .desktop
files can be created manually.
vi /usr/share/applications/APPNAME.desktop
[Desktop Entry]
Name=<NAME OF THE APPLICATION>
Comment=<A SHORT DESCRIPTION>
Exec=<COMMAND-OR-FULL-PATH-TO-LAUNCH-THE-APPLICATION>
Type=Application
Terminal=false
Icon=<ICON NAME OR PATH TO ICON>
NoDisplay=false
Keywords=<eg. sql>
It's optional but you may need to right click and set 'allow launching' with addition to set executable permissions. Usual locations of .desktop
files are:
/usr/share/applications/
/var/lib/snapd/desktop/applications/
for snap applications
gnome-shell-system-monitor-applet - cpu, memory indicators
System information such as memory usage, cpu usage, network rates and more can be displayed in the notification area in GNOME Shell.
System-monitor extensions:
system-monitor by paradoxxxzero on github supports Gnome-shell up to v40. It seems like abandoned project.
system-monitor-next by mgalgs on github supports Gnome-shell v40+, it's a fork of the above.
All extensions:
Note: The current version of the browser Firefox is packaged as a snap version. One of the issues with this is that it cannot work with the Gnome Extensions website.
Install on Ubuntu 24.04 (June 2024)
# Ubuntu 20/22/24
GNOME Shell 46.0 # version as of Ubuntu 24.04
sudo apt install gnome-shell-extensions # Ubuntu 20.04 already has this package, 24.04 needs installing it
sudo apt install gnome-shell-extension-manager # Ubuntu 22|24.04 (as Firefox is installed as snap) on 24.04 it's v0.5.0
# Open `Extensions` app, turn "Use Extensions". # Already turned on on Ubuntu 24.04
# Open Browse tab > search for 'system-monitor-next' # cpu/mem/net indicators will appear in the system tray
# Additional steps for Ubuntu < 24.04
sudo apt install gnome-tweaks # GUI to manage gnome-extensions
sudo apt install gir1.2-gtop-2.0 gir1.2-nm-1.0 gir1.2-clutter-1.0 gnome-system-monitor
sudo apt install gnome-shell-extension-system-monitor # after requires log out
# Download the extension from
## https://extensions.gnome.org/extension/120/system-monitor/
# Never worked out how to use this direct download and install via 'gnome-extensions install <extension_name>'
## wget https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet/archive/v38.zip
## gnome-extensions install <system-monitor@paradoxxx.zero.gmail.com>
# Enable extension using cli
gnome-extensions enable system-monitor-next@paradoxxx.zero.gmail.com
gnome-extensions list --user
clipboard-indicator@tudmotu.com
system-monitor-next@paradoxxx.zero.gmail.com
Ubuntu 22.04 workaround for the OUTDATED extension
Note: Workaround still needed in August 2022
sudo apt install gir1.2-gtop-2.0 gir1.2-nm-1.0 gir1.2-clutter-1.0 gnome-system-monitor
git clone https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet.git
cd gnome-shell-system-monitor-applet # commit b359d88 verified
vi system-monitor@paradoxxx.zero.gmail.com/metadata.json
# | change "version": -1 to "version": 42
make install
# log out and back in (required)
Snapd - Chromium
Recently in U19+ Chromium get installed via snapd package. This is classic installation that has limited access to only a certain directories. It happen that when working with AWS we need get access to ~/.ssh
folder to get ec2 machine password. This folder is denied, but we can bind mount ~/.ssh
folder into the snap container directory:
$ snap list chromium
Name Version Rev Tracking Publisher Notes
chromium 86.0.4240.111 1373 latest/stable canonical✓ -
# cd to chromim $HOME dir
mkdir ~/snap/chromium/current/.ssh
sudo mount --bind ~/.ssh/ ~/snap/chromium/current/.ssh
Screen shooting
In Ubuntu 20.04 Shutter is not a part of default repositories. It can be added via PPA:
sudo add-apt-repository -y ppa:linuxuprising/shutter sudo apt-get install shutter
Audio - set defaults
For preserving settings using GUI you can install PulseAudio Volume Control pavucontrol
.
# install
sudo apt install pavucontrol # Ubuntu 20.04
# run
pavucontrol
Set default output/input device. In Ubuntu PulseAudio is used to control audio devices. It contains following configuration files
/etc/pulse/default.pa # system wide
~/.config/pulse # user configuration
Set defaults
# List devices: modules, sinks, sources, sink-inputs, source-outputs, clients, samples, cards
# sinks - outputs, sink-inputs, sources - all input/output including RUNNING and SUSPENDED devices
$ pactl list short sources | column -t
5 alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_5__sink.monitor module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
6 alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_4__sink.monitor module-alsa-card.c s16le 2ch 48000Hz RUNNING
7 alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink.monitor module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
8 alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink.monitor module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
9 alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__source module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
10 alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_6__source module-alsa-card.c s16le 4ch 48000Hz SUSPENDED
15 alsa_output.usb-DisplayLink_Dell_Universal_Dock_D6000_1806021690-02.analog-stereo.monitor module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
17 alsa_output.usb-Plantronics_Plantronics_DA40-00.multichannel-output.monitor module-alsa-card.c s16le 1ch 48000Hz SUSPENDED
19 alsa_input.usb-Plantronics_Plantronics_DA40-00.mono-fallback module-alsa-card.c s16le 1ch 16000Hz SUSPENDED
20 alsa_input.usb-DisplayLink_Dell_Universal_Dock_D6000_1806021690-02.iec958-stereo module-alsa-card.c s16le 2ch 48000Hz RUNNING
# Set defaut output device. Tab autocompletion should work (U20.04)
pactl set-default-sink alsa_output.usb-Plantronics_Plantronics_DA40-00.multichannel-output
# Set defaut input device
pactl set-default-source alsa_input.usb-Plantronics_Plantronics_DA40-00.mono-fallback
# Test, play some audio then run. IDLE - means in use
pactl list short sources | column -t | grep -e RUNNING -e IDLE
17 alsa_output.usb-Plantronics_Plantronics_DA40-00.multichannel-output.monitor module-alsa-card.c s16le 1ch 48000Hz IDLE
19 alsa_input.usb-Plantronics_Plantronics_DA40-00.mono-fallback module-alsa-card.c s16le 1ch 16000Hz RUNNING
Make it permanent by setting default device in PulseAudio system configuration file
# Output device
OUTPUT_DEVICE=alsa_output.usb-Plantronics_Plantronics_DA40-00.mono-fallback
sudo sed -i "s/#\(set-default-sink\) output/\1 ${OUTPUT_DEVICE}/g" /etc/pulse/default.pa # remove '-i' to test before apply
# Input device
INPUT_DEVICE=alsa_input.usb-Plantronics_Plantronics_DA40-00.mono-fallback
sudo sed -i "s/#\(set-default-source\) input/\1 ${INPUT_DEVICE}/g" /etc/pulse/default.pa
vi /etc/pulse/default.pa # make sure lines below are in place
### Make some devices default
set-default-sink alsa_output.usb-Plantronics_Plantronics_DA40-00.mono-fallback
set-default-source alsa_input.usb-Plantronics_Plantronics_DA40-00.mono-fallback
# Delete local user profile and restart system, after boot new defaults should be set
rm -r ~/.config/pulse
# After reboot, defaults should be set
cat ~/.config/pulse/*default*
alsa_output.usb-Plantronics_Plantronics_DA40-00.mono-fallback
alsa_input.usb-Plantronics_Plantronics_DA40-00.mono-fallback
- Troubleshooting
PulseAudio cli
pacmd
>>> help # lists all available commands
pulseaudio --check # Check if any pulseaudio instance is running. It normally prints no output, just exit code. 0 means running
pulseaudio --kill # kill, then --start
pulseaudio -D # start pulseaudio as a daemon
# | using /etc/pulse/daemon.conf
# Pulseaudio is a user service
systemctl --user restart pulseaudio.service
systemctl --user restart pulseaudio.socket
I have a port replicator Dell D-6000, that gets randomly disconnected causing switching audio to new connected device - means itself. As workaround commenting out lines below stops this behaviour.
vi /etc/pulse/default.pa
### Use hot-plugged devices like Bluetooth or USB automatically (LP: #1702794)
# .ifexists module-switch-on-connect.so
# load-module module-switch-on-connect
# .endif
Input devices
Motivation is to enable horizontal scrolling in Ubuntu 20.04 using Perixx Gamig Mouse Mx2000
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Holtek USB Gaming Mouse id=11 [slave pointer (2)]
⎜ ↳ SYNA8007:00 06CB:CD8C Mouse id=14 [slave pointer (2)]
⎜ ↳ SYNA8007:00 06CB:CD8C Touchpad id=15 [slave pointer (2)]
⎜ ↳ TPPS/2 Elan TrackPoint id=19 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ CHICONY HP Basic USB Keyboard id=9 [slave keyboard (3)]
↳ Holtek USB Gaming Mouse id=10 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=12 [slave keyboard (3)]
↳ Integrated Camera: Integrated I id=13 [slave keyboard (3)]
↳ sof-hda-dsp Headset Jack id=16 [slave keyboard (3)]
↳ Intel HID events id=17 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=18 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=20 [slave keyboard (3)]
↳ Holtek USB Gaming Mouse id=21 [slave keyboard (3)]
# test mouse aka Virtual core pointer
xinput test 11
motion a[0]=2023 # <- cursor moving
motion a[0]=2024 a[1]=1411
motion a[3]=19545 # <- scroll down
button press 5
button release 5
# test 'virtual core keyboard' aka additional programmable buttons
## '10' - this virtual keyboard for all buttons except the scrolling wheel
xinput test 10
key press 37
key press 38
## '21' - this is scrolling wheel buttons left/right, not scrolling itself
xinput test 21
key press 248
key release 248
- List of properties of a device. We want to see 'horizontal scrolling wheel buttons'
$ xinput list-props 21
Device 'Holtek USB Gaming Mouse':
Device Enabled (169): 1
Coordinate Transformation Matrix (171): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available (291): 1, 0
libinput Send Events Mode Enabled (292): 0, 0
libinput Send Events Mode Enabled Default (293): 0, 0
Device Node (294): "/dev/input/event10"
Device Product ID (295): 1241, 41063