# Okular – Universal Document Viewer Okular can view and annotate documents of various formats, including PDF, Postscript, Comic Book, and various image formats. It supports native PDF annotations. ### Downloads For download and installation instructions, see https://okular.kde.org/download.php ### User manual https://docs.kde.org/?application=okular&branch=stable5 ### Bugs https://bugs.kde.org/buglist.cgi?product=okular Please report bugs on Bugzilla (https://bugs.kde.org/enter_bug.cgi?product=okular), and not on our GitLab instance (https://invent.kde.org). ### Mailing list https://mail.kde.org/mailman/listinfo/okular-devel ### Source code https://invent.kde.org/graphics/okular.git The Okular repository contains the source code for: * the `okular` desktop application (the “shell”), * the `okularpart` KParts plugin, * the `okularkirigami` mobile application, * several `okularGenerator_xyz` plugins, which provide backends for different document types. ### Apidox https://api.kde.org/okular/html/index.html ## Contributing Okular uses the merge request workflow. Merge requests are required to run pre-commit CI jobs; please don’t push to the master branch directly. See https://community.kde.org/Infrastructure/GitLab for an introduction. ### Build instructions Okular can be built like many other applications developed by KDE. See https://community.kde.org/Get_Involved/development for an introduction. If your build environment is set up correctly, you can also build Okular using CMake: ```bash git clone https://invent.kde.org/graphics/okular.git cd okular mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/path/to/your/install/dir .. make make install ``` Okular also builds tests in the build tree. To run them, you have to run `make install` first. If you install Okular in a different path than your system install directory it is possible that you need to run ```bash source prefix.sh ``` so that the correct Okular instance and libraries are picked up. Afterwards one can run `okular` inside the shell instance. The source command is also required to run the tests manually. As stated above, Okular has various build targets. Two of them are executables. You can choose which executable to build by passing a flag to CMake: ```bash cmake -DCMAKE_INSTALL_PREFIX=/path/to/your/install/dir -DOKULAR_UI=desktop .. ``` Available options are `desktop`, `mobile`, and `both`. ### clang-format The Okular project uses clang-format to enforce source code formatting. See [README.clang_format](https://invent.kde.org/graphics/okular/-/blob/master/README.clang-format) for more information.