KDE: Possible To Create List Of All Applications I Installed?


Is there some method to create a printable list of all the applications I installed onto openSUSE Tumbleweed?
Everything that is not installed by default by KDE when Tumbleweed OS was installed.
Also, I installed some applications that are not in the default Tumbleweed repositories.

Let me know, thanks!


Use zypper se -i will show all packages/pattern/product installed, to refine use the -t option (on Tumbleweed type patch doesn’t apply);

zypper se -i -t product
zypper se -i -t pattern
zypper se -i -t package

There are many other options (look in the man page for zypper in the search section) by repository etc…

Another option is

rpm -qa > ~/package_installled_list.txt
cat ~/package_installed_list.txt


According to man zypper the + means that the package/pattern was installed by the user request.

So for example.

zypper --no-refresh se **-t package** -si bash
Loading repository data...
Reading installed packages...

S  | Name                         | Type    | Version                | Arch   | Repository                                            
i+ | ModemManager-bash-completion | package | 1.6.12-lp151.2.4       | x86_64 | Main Repository                                       
i+ | bash                         | package | 5.0.11-lp151.417.1     | x86_64 | Shell Implementations (openSUSE_Leap_15.1)            
i+ | bash-completion              | package | 2.7-lp151.4.1          | noarch | Main Repository                                       
i  | bash-completion-devel        | package | 2.7-lp151.4.1          | noarch | Main Repository                                       
i+ | bash-doc                     | package | 4.4-lp151.10.3.1       | noarch | Main Update Repository                                
i+ | bash-lang                    | package | 5.0.11-lp151.417.1     | noarch | Shell Implementations (openSUSE_Leap_15.1)            
i  | fd-bash-completion           | package | 7.1.0-lp151.8.1        | noarch | all the small tools for the shell (openSUSE_Leap_15.1)
i  | fzf-bash-completion          | package | 0.20.0-lp151.13.1      | noarch | all the small tools for the shell (openSUSE_Leap_15.1)
i  | libvirt-bash-completion      | package | 5.1.0-lp151.7.6.1      | noarch | Main Update Repository                                
i+ | mbimcli-bash-completion      | package | 1.16.0-lp151.2.2       | x86_64 | Main Repository                                       
i+ | mpv-bash-completion          | package | 3.3.17-lp151.6.1       | noarch | Main Repository                                       
i+ | pulseaudio-bash-completion   | package | 11.1-lp151.5.3         | x86_64 | Main Repository                                       
i+ | subversion-bash-completion   | package | 1.10.6-lp151.4.3.1     | noarch | Main Update Repository                                
i+ | systemd-bash-completion      | package | 234-lp151.26.7.1       | noarch | Main Update Repository                                
i+ | youtube-dl-bash-completion   | package | 2019.08.13-lp151.2.3.1 | noarch | Main Update Repository   

If the first column starts with i+ then it is installed by the user.

Looking for the exact part of the manual.

PAGER='less +/^:space:]]*query\ commands' man zypper

Now like what Malcomlewis posted the argument for the -t option can be one of the following.


To show all packages that does not have i+ in the first column from the output of zypper you could use grep(1).

zypper --no-refresh se -t package -si | grep --line-buffered -e '^i^+]'

To show the opposite of the previous output.

zypper --no-refresh se -t package -si | grep --line-buffered -e '^i+'

If you want to search packages/pattern/product from a specific repo you will need to know which repositories are enabled by using zypper.

zypper help lr | grep -- -E

-E, --show-enabled-only     Show enabled repos only. Default: false

Now run

zypper lr -E

All the enabled repos should be listed.

To add the specific repo in the search using zypper add the **-r **option.

 zypper help se | grep -- '^-r'

-r, --repo <ALIAS|#|URI>    Work only with the specified repository.

The example below will show all the installed packages by the user request, that came from repo number 1 (from the output of zypper lr -E)

zypper --no-refresh se -t package -si**r 1 **| grep --line-buffered -e '^i+'

To show the opposite.

zypper --no-refresh se -t package -si**r 1 **| grep --line-buffered -e '^i'

If you’re only interested in the package/pattern/product names you need to use something to parse the output of zypper that is not just line oriented like awk.

To show only package names that was installed by user request.

zypper --no-refresh se -t package -si | awk '$1 == "i+"{print $3;fflush()}'

To show the opposite

zypper --no-refresh se -t package -si | awk '$1 == "i"{print $3;fflush()}'

Redirect the output to a file if you want to save it.

As you may have deducted from the answers so far, they are all about software packages as defined by the usage of RPM because these are the entities that zypper (and YaST software management) and behind that RPM, use. What is an application and what not has no direct connection with those packages (some packages are not containing applications by any definition, other applications are spread over several packages, etc.).

So it all depends very much on what YOUR definition of “application” is and how much it is translatable into “packages”.

KDE does not install applications. KDE is a suite of applications itself and it is installed when you ask for it during the installation of the operating system.
Also, except for inspecting the date/time of installation, there is nothing that makes a package installed during system installation different from a package installed later.

About software packages:

  • When they are installed from any repo using zypper or YaST they will be found with the methods described by others above.
  • When they are installed directly from an rpm package using zypper, they will be found also.
  • When they are installed using rpm, they will be found using rpm functions as mentioned above (together with all the zypper/YaST installed ones).
  • When they are installed by building using the more or less standard way from a tarball using make install, make, install, they will not be found by the methods mentioned above.
  • When they are installed by direct copy of files to the directories they should be, they will not be found by the methods above.