Application list

I have been looking for a way to list all user installed applications the same way as displayed by Software Center under the installed tab. I need this as a text file; not as a series of snapshots from the Software Center. Any ideas on how to accomplish that ? (I am absolutely not interested with listing packages).

In order for the community to help, please supply further information about which version you are using. At the moment we have no idea what that is so can only give vague answers.

Thank you

You’ll have to do some manual work. Assuming that you are running Ubuntu/Debian, you can list installed packages like this:

But this will show only packages used via apt, not snap. So you have to list snap apps as well and then put them all in a text file using cut command.


I use Ubuntu 18.04, the current LTS;

Thank you, it just helps the community so you can get the help for the correct version that you are using - Have a nice day :grinning:

Thank you, but unfortunately listing 3000+ packages is of no use to me whatsoever ; when I speak of application I do not mean modules and software libraries, I mean applications by name as end users know them such as Gimp or Krita ; these depend on hundreds of packages which are of no interest to me; all I need in my list is just 2 entries: Krita and Gimp ; not the some 300 packages that they depend on. That, in fact, is the specific point of my question, for listing packages is trivial but listing application like software center does is not. And since software center can do it, it should be possible. I am under the impression that an Arch utility called pacgraph might have been able to do this and it might have worked wit Ubuntu 16 at a point in time but I was not able to make it work with Ubuntu 18.04 as it fails to find any application and it simply ends with a 0 loaded message.

Ideally, I’d want only packages added after the initial installation. However, to get that I’d have to create a list of applications after installation and a current list of applications and derive the difference. Assuming it’s too late for that, and you don’t want lib packages, so I recommend this:

dpkg-query -l | sed 's/^....//' | sed -r 's/(.{20}).*/\1/' | sed 's/^lib.*//' | sed 's/.*font.*//'| sed '/^[[:space:]]*$/d'| uniq --check-chars=4 | tail --lines=+6 | less


On my system, this returns 967 packages. I’m assuming any packages with the same first 4 characters are related, so they’re not repeated. Change that assumption by changing the “–check-chars=4”. You may also want to remove font packages.


Impressive, but I did not succeed running it on my Ubuntu 18.04, it gave me a bash error: syntax error near unexpected token `(’ ; I counted the parenthesis and they seemed balanced to me so I am not sure how to fix it.

1 Like

Sorry. The page formatting killed the code. It should be fine now.

1 Like

I realize that in your case my advice is too late, however, the way I do it is to use a spreadsheet(from the start), and as I install an app, I place the name on the spreadsheet.

1 Like

I do almost the same. I have a BASH script which installs my add-on packages. As I find something new, I add it to my “” script, and then run it. This is great for new Linux installations.


Any chance of your sharing a copy of the script? I’d sure appreciate it. Thanks.


It’s ridiculously big. I keep apps not included in Linux Mint in my ~/Extras folder. This is just the part that can be rerun, not initial set-up. Here’s a sample of my very large script:

# Install all the extras I've come to depend on in Linux. Assumes LinuxMint

sudo killall synaptic 2>/dev/null # remove the competition
sudo apt-get -y install --fix-broken # clean up any previous problems
sudo apt autoremove

#midnight commander and related files
echo Midnight Commander @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#echo install midnight Commander from Extras with
#echo cd Extras/mc-*
#sudo apt-get -y install mc mc-data arj catdvi texlive-binaries dbview djvulibre-bin gv links w3m lynx odt2txt python-boto python-tz
# ne is command line "nice editor"
sudo apt-get -y install antiword mc mc-data arj dbview  gv links w3m lynx ne odt2txt 

# Console 
echo Console Apps @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
sudo apt-get install --fix-broken -y bzip2 detox gzip lhasa lzip mmv pv silversearcher-ag tree vim xterm zenity 
#sudo apt-get install --fix-broken -y bzip2 detox dtrx gzip lhasa lzip mmv pv silversearcher-ag tilda tree vim xterm zenity 
# dtrx extracts files from many archive types 
# silversearcher-ag is quick pattern search like ack
# tilda is a versatile and powerful terminal
# lhasa is archive utility for lha files

# Desktop 
echo Desktop @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
echo installing DESKTOP UTILS
# newest x-tile breaks, brightside no longer included with Mint
# gnome-orca is a scriptable screen reader
# keylaunch for hot keys if display manager doesn't support it, pekwm, xfce4, etc.
# brightside for hot corners, edge reactivity. Removed from Linux Mint :>(, now in ~/Extras
sudo apt install --fix-broken -y 9menu cairo-dock dconf-cli dconf-tools dconf-editor gpaste* keylaunch lxpanel remmina remmina-plugin-vnc redshift gtk-redshift screenruler 
sudo apt install -y ~/Extras/x-tile* ~/Extras/brightside*.deb 

# File 
echo File @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# gnome-disks can format flash drives as exFAT
sudo apt-get install -y --install-suggests --fix-broken baobab brasero clonezilla dfc kio-gdrive exfat-fuse exfat-utils extlinux fslint fuse-zip fusecram gparted luckybackup mtp-tools ntfs-3g ntfs-config pcmanfm pcmanfm-qt syslinux nemo-preview nemo-filename-repairer nemo-compare pcmanfm thunar thunar-gtkhash
#sudo apt-get install -y emelfm2 gnome-commander nautilus pcmanfm rox-filer spacefm thunar worker xfe
#sudo apt-get install -y emelfm2 gnome-commander nautilus pcmanfm thunar 
sudo apt-get install -y  --install-suggests --fix-broken nemo-preview nemo-filename-repairer nemo-compare pcmanfm thunar thunar-gtkhash

# Games
echo Games @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
echo installing GAMES
sudo apt-get -y install --install-suggests maelstrom mednafen mednaffe pinball qjoypad supertux xpat2  # removed xgalaga
# mednafen - multiplatform emulator for game ROMS
# Extra Games (optional) 
#sudo apt-get -y install --install-suggests alien-arena armagetronad assaultcube atanks bomber granatier gnome-mines kdegames kapman kblocks kbreakout openarena supertux pingus lbreakout2 gnome-games pokerth extremetuxracer kpat chromium-bsu xmoto ltris maelstrom sdl-ball pinball gnome-mines gnome-hearts koules powermanga supertuxkart 
#sudo apt-get -y remove roar
sudo apt-get -y install --install-suggests libssl1.0.0* libglu1-mesa* steam*  # needed for Steam

# Graphics
echo Graphics @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# changes bood manager. WHAT???
echo installing GRAPHICS / PHOTO
sudo apt-get install --fix-broken --install-suggests -y aaphoto camorama cheese djview4 djvulibre-bin djvulibre-desktop djvusmooth gscan2pdf eog eog-plugins enfuse gifsicle gimp gimp-gutenprint gimp-help-en gimp-plugin-registry guvcview graphicsmagick gthumb igal2 imagemagick jhead llgal libimage-exiftool-perl luminance-hdr pdfposter photocollage posterazor photoprint shutter webcamoid*
sudo apt-get install --install-suggests -y --reinstall libgl1-mesa-glx libgl1-mesa-glx:i386 libpulse0:i386 # needed by Chicken Invaders
# Shutter with edit capability
sudo apt install --install-suggests  -y shutter ~/Extras/Shutter/*.deb # Shutter edit requires
sudo apt install -y libappindicator-dev 
sudo cpan -i Gtk2::AppIndicator

# Music / Audio
echo  Music @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# ams            Realtime modular synthesizer for ALSA
# clementine     Player, requires libqxt-gui
# cmt            LADSPA plugin collection
# exfalso        audio tag editor for GTK+
# eyed3          Display and manipulate id3-tags on the command-line
# faac           AAC encoder, faad: AAC audio decoder
# glyrc          retrieve album covers. requires libcrypto
# jackd          JACK Audio Connection Kit (default server package)
# meterbridge    Collection of Audio meters for the JACK audio server
# pavucontrol    Volume control
# qmmp           Audio player
# quadlibet      Audio library manager and player for GTK3
# vlevel         Levelling audio filter

#sudo apt-get install --fix-broken --install-suggests -y abcde acoustid-fingerprinter asunder audacity audacious clementine cmt eyed3 fadecut faac faad flac glyrc gmusicbrowser gpodder libid3-tools id3tool mint-meta-codecs mp3diags mp3val mp3splt vlevel mp3wrap normalize-audio oggvideotools oggz-tools picard pavucontrol puddletag pulseaudio-module-jack python-acoustid python-eyed3 python3-eyed3 python-eyed3 python-mutagen python-mutagen-doc python-tagpy radiotray soundconverter streamripper tunapie vbrfix vorbis-tools youtube-dl xfce4-terminal
sudo apt-get install --fix-broken -y \
asunder \
audacity \
clementine \
cmus \
eyed3 \
faac faad \
flac \
glyrc \
gmusicbrowser \
gpodder \
id3tool \
mint-meta-codecs \
mp3diags \
mp3val \
mp3splt \
vlevel \
mp3wrap \
normalize-audio \
oggvideotools \
oggz-tools \
pavucontrol \
puddletag  \
python-eyed3 \
python3-eyed3 \
python-mutagen \
python-mutagen-doc \
python-tagpy \
soundconverter \
streamripper xfce4-terminal python-lxml python-pyquery \
tunapie \
vbrfix \
vorbis-tools \

#sudo apt-get install --fix-broken --install-suggests -y meterbridge # Collection of Audio meters for the JACK audio server

#sudo dpkg --force-depends -i ~/Extras/easytag/easytag_2.2.4-1_amd64.fixed.deb ######################
sudo dpkg -i ~/Extras/easytag/libid3* ~/Extras/easytag/libopusfile0*  ~/Extras/easytag/easytag_2.2.4-1_amd64.fixed.deb ######################
sudo apt-mark hold easytag

# notes: faac/faad is free aac encoder/decoder
#xfce4-terminal needed as bridge between streamtuner2 & streamripper
sudo apt-get install libliquid1d libliquid-dev # needed by CubicSDR
# Needed to comment line in /usr/lib/jvm/java-11-openjdk-amd64/conf/ to get StreamRipStar to work:
#  sudo vim /usr/lib/jvm/java-11-openjdk-amd64/conf/
sudo apt-get install --fix-broken -y --install-suggests gir1.2-appindicator-0.1 python-appindicator gir1.2-appindicator3-0.1
# install streamtuner2 from ~/Extras. Default doesn't work
# Extra LADSP plugins for Audacity
sudo apt-get install --fix-broken -y --install-suggests ladspa-foo-plugins bs2b-ladspa rubberband-ladspa invada-studio-plugins-ladspa autotalent amb-plugins fil-plugins swh-plugins cmt tap-plugins zam-plugins 
# pulseEffects
#sudo apt-get install gir1.2-gst-plugins-bad-1.0
#sudo add-apt-repository ppa:yunnxx/gnome3
#sudo apt-get update
#sudo apt install pulseeffects
#   Jack
#sudo apt-get install -y pulseaudio-module-jack
# From:
# Edit ~/.pulse/daemon.conf and add line:
#   default-sample-rate = 48000
# Edit /etc/pulse/ and add lines at the bottom:
#   set-default-sink jack_out
#   set-default-source jack_in
# Last, open qjackctl, click on Setup, Options tab, tick the Execute script after Startup switch, and paste this line into the box:
# pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source channels=2; pacmd set-default-sink jack_out
# Start / Stop pulseaudio (if necessary) with:
#    pulseaudio --start / pulseaudio --kill

# Network
echo  Network @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
echo installing NETWORK
# nscd: GNU C Library Name Service Cache Daemon
sudo apt-get install --fix-broken -y --install-suggests dropbox ncftp nethogs nscd rsync openssh-* ssh sshfs vino webhttrack wget wput 
echo Be sure and auto start /usr/lib/vino/vino-server
gsettings set org.gnome.Vino require-encryption false # disable requiring VNC encryption 
gsettings set org.gnome.Vino prompt-enabled false #  disable requiring someone on the remote machine to accept the fact that I’m connecting

# Office 
echo Office @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
echo installing OFFICE
# Installs postfix email, bad!
sudo apt-get install -y --fix-broken --install-suggests calibre flpsed glabels gnumeric gucharmap libxml2:i386 libreoffice libreoffice-dmaths libreoffice-lightproof-en libreoffice-templates openclipart-libreoffice okular okular-mobile rhinote scribus smtm speedcrunch thunderbird xournal
# libxml2:i386 needed for acroread from Adobe
sudo apt install ~/Extras/PDF_Editors/master-pdf-editor-*.deb #$35 if registered
sudo apt-get -f -y install # fix any errors
# pdfmod good but requires the evil mono
sudo apt-get install -y --fix-broken --install-suggests jq # needed for, stock ticker
cd ~/bin; curl -o;chmod +x ~/bin/

# Programming
echo Programming @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
if grep -Fxq ul30 /etc/hostname ; then
   echo skipping programming apps on ul30.
elif grep -Fxq sammy /etc/hostname ; then   
   echo skipping programming apps on sammy.
  sudo apt-get install --fix-broken -y --install-suggests cmake gedit geany geany-plugins geany-plugin-commander geany-plugin-scope
# c++ , fortran, python-pip is python package installer
#  sudo -H apt-get install --fix-broken -y bashdb build-essential cppcheck cmake colordiff diffuse fltk1.3 fltk1.3-doc g++ gdb gfortran llgal nemiver python-pip python3-pip valgrind valkyrie 
  sudo -H apt-get install --fix-broken -y bashdb build-essential cppcheck cmake colordiff diffuse fltk1.3 fltk1.3-doc g++ gdb gfortran llgal nemiver python-pip python3-pip valgrind valkyrie 
  sudo apt-get install --fix-broken -y eric eric eric-api-files fluid g++ pithos python pydb idle idle3 idle-python2.7 ipython3-qtconsole kiki libperl4-corelibs-perl libglib2.0-dev ninja-ide phantomjs pyro-gui python-pudb pythoncard-doc python-dsv python-pythoncard pythoncard pythoncard-tools python3-opengl python-pyquery python-keybinder python-opengl python-qt4 python3 python3-all python-mutagen python-mutagen-doc python3-pyqt4 python3-sip python3-extras python-wxtools spyder spyder3 tumbler tix wdiff winpdb wxglade yasm # python
  # The line below caused "or its parent directory is not owned by the current user" errors with pip
  # sudo pip install --exists-action i eyed3 # get newest ver of python edit of mp3 tags 
  # libglib2.0-dev provides glib.h 
  #echo calling pip to install ffmpeg-normalize @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
  #sudo pip install --upgrade ffmpeg-normalize # normalize audio in a/v files

# System
echo SYSTEM @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
echo installing SYSTEM apps
# neofetch shows good sys info from the terminal
sudo apt-get install --fix-broken -y --install-suggests dfc dmidecode eject flatpak gnome-applets hwinfo pavucontrol inxi libnss-myhostname lshw lsscsi mcrypt neofetch pydf snapd sysstat systemtap util-linux usb-creator-gtk 

# required to get the "Quick filter" search in Synaptic:
sudo apt-get install apt-xapian-index
sudo update-apt-xapian-index -vf

# Video 
# ogmrip works better with mplayer2
echo VIDEO @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
sudo apt-get install --fix-broken -y --install-suggests dvdauthor gtk-recordmydesktop kdenlive kino kodi openshot openshot-doc pitivi handbrake handbrake-cli kazam mencoder mplayer openshot recordmydesktop ogmrip transcode x264 ffmpeg2theora transmageddon vlc vokoscreen winff winff-doc
sudo snap install shotcut --classic # vid editor see
# removed acidrip libavcodec-extra libavcodec-ffmpeg-extra libavcodec-54 fmpeg
# dvdauthor wanted by kdenlive, which need kde runtimes
#echo \* Install XnConvert from
echo \* Install XnConvert, VidCutter from "Software Manager"

# web tools
echo Web @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# install Opera from
sudo apt-get -y install chromium-browser chromium-chromedriver googler xine-plugin

#sudo snap install brave # secure derivative of chrome

# window managers
echo window managers @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
sudo apt-get install -y --fix-broken pekwm pekwm-themes nitrogen

# cleanup
echo cleanup @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
sudo apt-get remove -y mono-runtime-common gnome-orca # do manually remove any apps associated with mono development
sudo apt-get -y -f install
sudo apt-get -y autoremove
#sudo apt remove kde-runtime*
sudo apt-get clean 

:+1: Yes, a long script, but very well document with comments.
Do you run this script after every fresh install of Mint or every time you add a package?
And of course, every time you add a package to Mint, you modify the script adding it here too.


Yes, I got it to work ; impressive! Thank you.


Thanks a lot. That was awesome!


I add the new app install to the script and run the script. It takes a little longer, but it makes sure the new addition works and that they old installations continue to work. BTW, I review the output by invoking it with:

/home/dunay/bin/ | tee installOut.txt
less installOut.txt

This works for me:

comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n ‘s/^Package: //p’ | sort -u)

Copy and paste the above lines into a file. Put the file somewhere in the path. I use /usr/local/bin for all my custom commands because it’s in the path and it’s empty by default. Make the file executable. If the file is named ‘whatsinstalled’ the command would be:
sudo chmod +x whatsinstalled

And you should be good to go.

Credit where credit is due: I did not write this command. I found it somewhere several years ago.


Thank you for sharing, but when I tried it I noticed I would get 4 lines for rhythmbox:


And what I was hoping for was just one line.

The command is supposed to show only packages added by the user. When I run the command, rhythmbox doesn’t appear at all since it is part of the default install in Ubuntu 18.04 LTS.

I guess the OS sees each of the four rhythmbox packages as a separate install and so they get listed separately. I don’t know a fix for this issue.