Development Environments

Tools to Build Software

This article surveys tools used to help create and manage software. This includes terminals and CLI tools, advanced editors, and Integrated Development Environments (IDEs)

Manage complex software projects with an IDE.

Manage complex software projects with an IDE.

Please read the disclaimer before proceeding. We review and update guided solutions regularly. If you have suggestions or requests, please write support@kfocus.org.

Terminals, CLI Editors, and CLI Tools

Command Line Interface (CLI) tools have been refined over 60 years, and can often be the fastest way to get things done.

KonsoleTo use the command line, you first need a terminal app. The default and recommended terminal app in KDE Plasma is Konsole. If you cannot access the desktop, you use the first “virtual terminal” by pressing the keys [ CTRL ][ ALT ][ F3 ]. Use [ CTRL ][ ALT ][ F2 ] to return to the GUI, and use [ CTRL ][ ALT ][ F4 through F6 ] to switch to other virtual terminals.

Vim is a popular and powerful CLI editor. If you want to set it as the system default, enter sudo update-alternatives --config editor in Konsole, then select vim-nox as the default. Enter vim to open a file, or enter gvim for the GUI. Focus systems come with an extensive .vimrc which you can customize or replace as you desire. Configured features include fenced syntax in Markdown and shortcuts to round numbers to n decimal places (;r), format JSON ([CTRL][J]), compress JSON ([CTRL][K]), remove trailing spaces (;k), and lots more. Read the .vimrc content to see all the capabilities. Because Vim runs on the most humble devices over slow connections, one can use it just about anywhere.

Focus systems come with a few additional CLI tools. The gg command scans and lists files that contain a string below the working directory. This scan is case-insensitive, and it will not cross mount points. The qwe command provides the ability to bookmark directories. Enter qwe -h for more guidance. These capabilities are provided by /etc/bash_completion.d/kfocus and /etc/bash_completion.d/qwe, respectively.

Edit, navigate, and transform text and source code with Vim.

Edit, navigate, and transform text and source code with Vim.

Advanced Editors

Advanced Editors don't have complete IDE feature set, but may be easier to use or access. In this section, we consider Kate and QT Designer.

KateKate is installed by default with KDE Plasma. It has many features you'd find in an IDE, yet it starts fast and is easy to use, which makes it a good choice for quick edits. IDE features include such as context highlighting for dozens of computer languages, and git integration. For more information, visit https://kate-editor.org.

Use Qt Designer to design Qt Widgets interfaces rapidly. You can install it using sudo apt install qttools5-dev-tools.

Make quick edits to code with Kate.

Make quick edits to code with Kate.

JetBrains IDEs

JetBrains ToolboxYou can install nearly all JetBrains IDEs and tools using the JetBrains toolbox. Most are very mature and popular. Notable examples include IntelliJ, WebStorm, PyCharm, and DataGrip. Nearly all are available as free community editions, but also have a paid-and-supported commercial option. For more information, visit the JetBrains website.

JetBrains IDEs benefit from a common platform that supports thousands of community-contributed, first-party, and commercial extensions. This enables IntelliJ and other IDEs it to work with support for many languages in a single project. We appreciate the auto-discovered Git integration, multi-language break-point debugging, and very complete Vim editing.

Install and manage JetBrains products with JetBrains Toolbox.

Install and manage JetBrains products with JetBrains Toolbox.

Microsoft Visual Studio Code

VSCAnother popular development environment is the free Microsoft Visual Studio Code. Although originally conceived as a "text editor," thousands of community-contributed extensions have enabled it to become an all-in-one IDE, supporting multiple languages in a single project.

If you wish to use the VSCode Settings Sync feature, you will require libsecret capability. This can be provided by KeePassXC which is installed by default on all Kubuntu Focus systems. Please see the guide found here.

For more information, please visit the Visual Studio Code website.

Get an all-in-one IDE with Visual Studio Code

Get an all-in-one IDE with Visual Studio Code.

Other IDEs

Qt Creator is a cross-platform IDE for Qt applications with C++ as the core language. It features a full code editor, UI designer, and debugger. Choose this if you want to develop QML apps. Qt software can be deployed across desktop, mobile, and embedded platforms. You can install the community edition using sudo apt install qtcreator. Learn more at the Qt website.

KDevelop is an Integrated Development Environment, perfect for C and C++ projects and other supported languages. It was one of the first KDE projects, and is used by many KDE developers as their primary IDE. It has code completion and project support, along with integrated docs to keep your gaze close to your code.

Troubleshooting

Q: When using IntelliJ, the keyboard stops working sometimes. How do I fix this?

A: This typically happens when you have Zoom installed, which in-turn install IBus, a keyboard input handler. This does not work well with IntelliJ. Per this JetBrains ticket, you can restart IBus, and then do the following:

Revisions

This is a partial revision history. See the git repository for all entries.

Disclaimer

We try hard to provide a useful solution validated by professionals. However, we cannot anticipate every situation, and therefore cannot guarantee this procedure will work for your needs. Always backup your data and test the solution to determine the correct procedure for you.

THIS SOLUTION IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOLUTION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

HAVE QUESTIONS?Call 844-536-2871 or write
TellMeMore@kfocus.org   |  GET FOCUS MERCH