This page aims to setup a nice KDE Plasma5 desktop for someone who’s coming from Windows.

KDE Neon: Missing Software / Fixes

There are a few things missing from User Edition of KDE Neon for regular usage.

sudo apt install -y kubuntu-driver-manager # Proprietary/Nvidia Driver Installer
sudo apt install -y kdeplasma-addons # "Big Icons" Alt+Tab
sudo apt install -y libnotify-bin # notify-send (Dota 2 Notifications)
sudo apt install -y p7zip-full p7zip-rar # (.7z)
sudo apt install -y qapt-deb-installer # (.deb) GUI Installer
sudo apt install -y software-properties-common # add-apt-repository
sudo apt install -y unrar # (.rar)
sudo apt install -y kcron # Task Scheduler in System Settings

Kubuntu: Backports PPA

Kubuntu will usually only get bugfixes for a few months. By default, Kubuntu will not update from Plasma 5.18 to Plasma 5.19 which has new features. Kubuntu provides a backports PPA which will allow users to upgrade to the latest version of the Plasma desktop.

sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update
sudo apt full-upgrade

Useful Software

sudo apt install -y clementine # Music Player (.mp3 SoundCloud)
sudo apt install -y mcomix # Image Viewer (.cbr .zip .rar)
sudo apt install -y gimp # Image Editor (.jpg .png)
sudo apt install -y htop # Command Line Task Manager
sudo apt install -y inkscape # Vector Image Editor (.svg)
sudo apt install -y krita # Digital Painting (.jpg .png)
sudo apt install -y scrot # Command Line Screen Capture
sudo apt install -y xbindkey # Remap Mouse Buttons / Keys
sudo apt install -y xdotool # Command Line Trigger Mouse/Keys
sudo apt install -y vlc # Video Player (.mp4 .mkv)

## Google Chrome
# https://www.google.com/chrome/
cd ~/Downloads
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb
# Set Chrome as the default browser for hexchat (TODO: xdg-mime)
gvfs-mime --set x-scheme-handler/http google-chrome.desktop
gvfs-mime --set x-scheme-handler/https google-chrome.desktop

## Calibre
# https://calibre-ebook.com/download_linux (Isolated install)
# Installs to ~/calibre-bin/
wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | python -c "import sys; main=lambda x,y:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('~/calibre-bin', True)"

Windows Software Emulation

sudo apt install -y virtualbox-qt # Virtual Machine

Developer Software

sudo apt install -y cmake
sudo apt install -y curl
sudo apt install -y dolphin-plugins # Git Integration for Dolphin File Manager
sudo apt install -y pgadmin3 # DB Editor (PostgreSQL)
sudo apt install -y postgresql postgresql-contrib
sudo apt install -y python-pip python3-pip
sudo apt install -y sqliteman # DB Editor (.sqlite)

## Android Studio
# Via ubuntu-make: http://askubuntu.com/a/677805/513249
# "umake android" is broken in 16.04
sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
sudo apt update
sudo apt install ubuntu-make
umake android # Prompts InstallDirectory + License
sudo apt install openjdk-8-jre
# Run with:
# JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ ~/.local/share/umake/android/android-studio/bin/studio.sh

## Git
sudo apt install -y git
git config --global push.default matching

## Heroku
# https://toolbelt.heroku.com/debian
wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh
heroku login # Prompts for Credentials

## NodeJS
# https://nodejs.org/en/download/package-manager/
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs
sudo apt install -y build-essential

## Sublime Text
# https://www.sublimetext.com/docs/3/linux_repositories.html
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt-get update
sudo apt-get install sublime-text
# To install Package Control: https://packagecontrol.io/installation

Gaming Software

sudo apt install -y steam # Prompts with License Agreement

## Lutris (Launches Windows Games)
# https://lutris.net/downloads/
sudo add-apt-repository ppa:lutris-team/lutris
sudo apt update
sudo apt install -y lutris

LibreOffice (Microsoft Office/Word Substitute)

(Optional) If you want a more up to date version of libreoffice (v6.0) instead of the Long Term Support version (v5.1), setup the following ppa before installing LibreOffice.

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt update

To install LibreOffice, we’ll use the gtk3 version and the breeze LibreOffice style. We also need the Calibri and Cambria font replacements otherwise Microsoft Office files will look weird. Lastly we should clean the icon cache to prevent issues when switching styles.

sudo apt install -y libreoffice libreoffice-gtk3 libreoffice-style-*
sudo apt install -y fonts-crosextra-carlito fonts-crosextra-caladea
rm ~/.cache/icon-cache.kcache

Configuration

Autostarted Apps

Desktop

  • Hide the ☰ button in the top corner

    Right Click the desktop wallpaper > Desktop/Folder View Settings
    Tweaks Tab > Uncheck: Show the desktop toolbox
    Note: Plasma removed this button in Plasma 5.19

  • Hide the ☰ button in the panel on the bottom right

    Right Click the ☰ button > Lock Widgets.
    Note: Plasma removed this button in Plasma 5.19

  • Always Hide System Tray Notification Icons

    Right Click the “Expand System Tray Triangle” > System Tray Settings.
    Entries Tab > Networks > Visibility: Hidden

  • Disable Icon in System Tray

    Right Click the “Expand System Tray Triangle” > System Tray Settings.
    General Tab > Extra Items > Uncheck: Clipboard, Battery

  • Classic “Start” Menu

    While the widgets are unlocked
    Right Click the “Start” menu > Alternatives > Application Menu

  • Don’t sort windows in Taskbar

    Right Click the empty area on the taskbar next to the tasks > Task Manager Settings
    Behavior Tab > Sorting: Manual
    Behavior Tab > Uncheck: Keep Launchers Separate

  • Hide windows from other Desktops in Taskbar

    Right Click a Task > Task Manager Settings
    Behavior Tab > Show only tasks: > Check: From current desktop

  • Pin Apps to Taskbar

    Launch App
    Right Click app in Taskbar > Check: Show Launcher When Not Running

  • Hide audio indicator in window list

    Right Click a Task > Task Manager Settings
    General Tab > Uncheck: Mark applications that play audio

  • Disable Middle-Click Paste Notes Widget

    Right Click Desktop Wallpaper > Configure Desktop
    Mouse Actions Tab > Press the Delete icon next to the Middle-Button row.

  • Lock Widgets

    Plasma 5.18 and above has hidden the “lock widgets” toggle. It’s very easy to enter “edit mode” with a long press. If you want to get the old locked mode behavior, run the following command:

    qdbus org.kde.plasmashell /PlasmaShell evaluateScript 'lockCorona(!locked)'

    If you want an easier way to toggle locking widgets in Plasma 5.18, install Win7ShowDesktop widget which has a “Lock Widgets” toggle in it’s right click menu.

  • Disable Top Left “Hot Corner”

    System Settings > Desktop Behaviour
    Screen Edges Tab > Top Left: No Action

  • Bind Ctrl+Alt+Left/Right to Switch Desktop

    System Settings > Desktop Behaviour
    Virtual Desktops Tab > Switching > Shortcuts
    Switch One Desktop Left: Ctrl+Alt+Left
    Switch One Desktop Right: Ctrl+Alt+Right
    Switch To Desktop 1, 2, …: None

  • Disable Switch Desktop when scrolling over desktop wallpaper

    Right Click the desktop wallpaper > Desktop/Folder View Settings
    Mouse Actions Tab > Remove: Vertical Scroll => Switch Desktop

  • Disable bouncing cursor when apps open

    System Settings > Applications
    Change “Bouncing” Cursor to “No Feedback”

  • Disable focus stealing prevention

    System Settings > Window Management
    Window Behaviour Tab > Focus Stealing Prevention: None

  • Fix Alt+Click in certain games/software

    Note: Plasma 5.20 has changed the default to Meta+Click+Drag, but these instructions are the same for changing back to Alt+Click+Drag.
    Alt+Click+Drag was a standard keybinding for moving a window in Linux. It tends to conflict with software designed for Windows like Games, Inkscape and Blender. To fix, we’ll change it to Meta+Click+Drag.
    System Settings > Window Management
    Window Actions Tab > Inner Window, Titlebar, Frame > Modifier Key: Meta
    OR set Left button: “Nothing” to disable it completely.

  • “Normal” Alt+Tab popup

    System Settings > Window Management
    Task Switcher Tab > Click the “star icon”
    Select “Thumbnail Grid” in the dropdown.
    Note: You may need to install a package if “Thumbnail Grid” is missing. kwin-addons (Kubuntu / KDE Neon), kdeplasma-addons (Arch / Manjaro / Fedora), plasma5-addons (OpenSUSE).

  • Show Alt+Tab popup as fast as possible

    Normally it will wait 90 milliseconds before trying to show the popup. This makes quick switches faster since it doesn’t need to draw anything.
    We need to set DelayTime=0 under the group [TabBox] in the file ~/.config/kwinrc, then reload kwin.
    It’s easier to use these commands than doing it by hand.

    kwriteconfig5 --file ~/.config/kwinrc --group TabBox --key DelayTime 0
    qdbus org.kde.KWin /KWin reconfigure

    You can also disable the highlight window effect by going to:
    System Settings > Window Management > Task Switcher Tab
    Uncheck: Show selected window

  • Disable Lock Screen

    System Settings > Desktop Behaviour > Screen Locking Tab
    Uncheck: Lock screen automatically after __ min
    Uncheck: Lock screen on resume

  • Disable Logout/Shutdown Confirmation

    System Settings > Startup and Shutdown
    Desktop Session Tab > Uncheck: Confirm Logout

  • Redden the Screen at Night

    This is known as Night Light on Windows and Android
    System Settings > Display and Monitor > Night Color
    Check: Activate Night Color

  • Windows Keybindings for moving windows

    System Settings > Shortcuts > Global Keyboard Shortcuts Tab
    KWin > Show Desktop: Win+M
    KWin > Maximize Window: Win+Up
    KWin > Minimize Window: Win+Down
    KWin > Quick Tile Window to the Left: Win+Left
    KWin > Quick Tile Window to the Right: Win+Right
    To open the “Start Menu” with the Windows key see the section below.

  • Present all windows with Win+Tab

    System Settings > Desktop Behavior
    Desktop Effects Tab > Check Present Windows
    Click the Gear Icon > Change the Ctrl+F10 shortcut to Meta+Tab
    Layout mode: “Natural” => “Flexible Grid”

  • Change titlebar height

    System Settings > Fonts
    Window title > Edit Font Size

  • Hide titlebars when maximized (like Ubuntu)

    We need to set BorderlessMaximizedWindows=true under the group [Windows] in the file ~/.config/kwinrc, then reload kwin.
    It’s easier to use these commmands than doing it by hand.

    kwriteconfig5 --file ~/.config/kwinrc --group Windows --key BorderlessMaximizedWindows true
    qdbus org.kde.KWin /KWin reconfigure
  • Launch app with discrete GPU

    Also known as using prime-run (PRIME wiki) or using the DRI_PRIME=1 environment variable.
    Open Application Launcher > Right Click app
    Application Tab > Advanced Options
    Discrete GPU > Check: Run using dedicated graphics card

Windows/Meta Key

  • Open “Start Menu” with Windows/Meta key

    Feature has been added by default since Plasma 5.8.
    If it’s not working, make sure your Application Launcher (“Start Menu”) widget has a global shortcut like Alt+F1 set (you can’t assign it directly to Meta, but it will open with Meta if another shortcut is assigned).
    Right Click the KDE Icon > Configure Application Launcher
    Keyboard Shortcuts Tab > Shortcut: Alt+F1

    kwriteconfig5 --file ~/.config/kwinrc --group ModifierOnlyShortcuts --key Meta "org.kde.lattedock,/Latte,org.kde.LatteDock,activateLauncherMenu"
    qdbus org.kde.KWin /KWin reconfigure

    If you wish to revert what the Meta key opens because you changed it to open KRunner or a Latte Dock widget, run the following:

    kwriteconfig5 --file ~/.config/kwinrc --group ModifierOnlyShortcuts --key Meta "org.kde.plasmashell,/PlasmaShell,org.kde.PlasmaShell,activateLauncherMenu"
    qdbus org.kde.KWin /KWin reconfigure
  • Do not open the "Start Menu" with Windows/Meta key

    We need to set Meta= under the group [ModifierOnlyShortcuts] in the file ~/.config/kwinrc, then reload kwin.
    It’s easier to use these commands than doing it by hand.

    kwriteconfig5 --file ~/.config/kwinrc --group ModifierOnlyShortcuts --key Meta ""
    qdbus org.kde.KWin /KWin reconfigure
  • Open KRunner with Windows/Meta key

    We need to set Meta=... under the group [ModifierOnlyShortcuts] in the file ~/.config/kwinrc, then reload kwin.
    It’s easier to use these commands than doing it by hand.
    Plasma 5.18 and above:

    kwriteconfig5 --file ~/.config/kwinrc --group ModifierOnlyShortcuts --key Meta "org.kde.kglobalaccel,/component/krunner_desktop,org.kde.kglobalaccel.Component,invokeShortcut,_launch"
    qdbus org.kde.KWin /KWin reconfigure

    Plasma 5.17 and below:

    kwriteconfig5 --file ~/.config/kwinrc --group ModifierOnlyShortcuts --key Meta "org.kde.kglobalaccel,/component/krunner,org.kde.kglobalaccel.Component,invokeShortcut,run command"
    qdbus org.kde.KWin /KWin reconfigure
  • Open Overview with Windows/Meta key

    Overview was formerly called “Present Windows” before Plasma 5.23.
    We need to set Meta=... under the group [ModifierOnlyShortcuts] in the file ~/.config/kwinrc, then reload kwin.
    It’s easier to use these commands than doing it by hand.

    kwriteconfig5 --file ~/.config/kwinrc --group ModifierOnlyShortcuts --key Meta "org.kde.kglobalaccel,/component/kwin,org.kde.kglobalaccel.Component,invokeShortcut,Expose"
    qdbus org.kde.KWin /KWin reconfigure
  • Open Keyboard Shortcut with Windows/Meta key

    To run any keyboard shortcut with the Meta key, first open Konsole and run the following commands.

    qdbus # List all DBus services
    qdbus org.kde.kglobalaccel # List all shortcut groups/components
    qdbus org.kde.kglobalaccel /component/kwin # List commands
    qdbus org.kde.kglobalaccel /component/kwin shortcutNames | sort # List shortcut ids

    There are other shortcut groups (components) besides /component/kwin if you wish to use them. Once you find the “internal shortcut id” of the command you wish to activate, test the following command.

    qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Show Desktop"

    After you figure out the dbus command needed, we need to set Meta=... under the group [ModifierOnlyShortcuts] in the file ~/.config/kwinrc, then reload kwin.
    It’s easier to use these commands than doing it by hand.

    kwriteconfig5 --file ~/.config/kwinrc --group ModifierOnlyShortcuts --key Meta "org.kde.kglobalaccel,/component/kwin,org.kde.kglobalaccel.Component,invokeShortcut,Show Desktop"
    qdbus org.kde.KWin /KWin reconfigure

Login Screen (SDDM) / Lock Screen

  • Change Login Screen Wallpaper

    System Settings > Startup and Shutdown
    Login Screen (SDDM) Tab > Background > Load From File
    We should also change the lock screen.
    System Settings > Desktop Bahaviour
    Screen Locking Tab > Wallpaper > Wallpaper Type: Image

  • Auto-Login

    Note: KDE Wallet will prompt you for your password to get the WiFi password after auto-login.
    System Settings > Startup and Shutdown > Login Screen (SDDM)
    Behavior button > Check: Automatically login as user

Dolphin (File Manager)

  • Double Click to open files
    • Plasma 5.13
      System Settings > Desktop Behavior > Workspace
      Click Behavior: Double Click to open files and folders
    • <= Plasma 5.12
      System Settings > Input Devices
      Mouse Tab > Icons: Double Click to open files and folders
  • Always Show Hidden Files

    ☰ Control > Adjust View Properties
    Check: Show hidden files
    Apply view properties to: All Folders
    Check: Use these view properties as default

  • Browse (.zip / .tar.gz / .rar) with Dolphin

    ☰ Control > Configure Dolphin
    Navigation Tab > Check: Open archives as folder

  • Clean up Context Menu (Right Click Menu)

    ☰ Control > Configure Dolphin
    Services Tab > Uncheck: “Copy To”, “Delete”, “File to activity”, “Send as Email”, “Send to IM”, “Send via Bluetooth”, “Send via KDE Connect”

  • Show Terminal Panel

    ☰ Control > Panels > Terminal (F4)

  • Paste into Terminal Panel

    ☰ Control > Configure Shortcuts
    Paste > Set Alternative (Defaulted to Shift+Insert) as “None”

  • Disable File Indexing (Baloo)

    Some user may want to disable the indexing when:

    • For some users, the baloo_file process can slow down the system.
    • The ~/.local/share/baloo/index can use over a Gigabyte of space.
      Run balooctl indexSize to break the database usage down.

    System Settings > Search
    Uncheck: Enable File Search

  • Remove Filmstrip From Video Thumbnails

    ☰ Control > Configure Dolphin
    General Tab > Previews > Video Files (ffmpegthumbs) > Configure Button
    Uncheck: Embed filmstrip effect
    Note: Since Dolphin 21.12, The GUI toggle was removed. You will need to create and edit ~/.config/ffmpegthumbsrc to disable the filmstrips. It’s easier to run this command:

    kwriteconfig5 --file ~/.config/ffmpegthumbsrc --group General --key filmstrip false
      

    Finally you will need to delete the ~/.cache/thumbnails/ folder to regenerate the thumbnails.

      rm -r ~/.cache/thumbnails/
      

Spectacle (Screenshots)

  • Show Magnifier

    Configure > General
    Rectangular Region > Check: Show magnifier

LibreOffice Writer

LibreOffice Calc

  • Set Default Font Size/Family/CellPadding

    Styles > Manage Styles
    Right click Default > Modify
    Font > Family: Noto Sans (KDE default) might look different for Window users.
    Font > Family: Manually type “Calibri” (Office default) which will map to the free “Carlito” font.
    Font > Size: 12 (Office uses 11)
    Borders > Padding: 2.0 pt
    Ok
    Make sure “Bad”, “Good”, etc under “Status” also use the correct font.
    File > Templates > Save As Template
    Name: Default
    Category: My Templates
    Check “Set as default template”

Steam

  • Hide “Big Picture”, etc in the System Tray Context Menu

    Steam > Settings > Interface Tab
    Set Taskbar Preferences > Only Check: Library, Friends, Exit Steam

  • Cleanup Friends List

    Steam > Friends > View Friends List
    Click on the Cog / Settings Icon
    Ignore ‘Away’ status when sorting friends: On
    Compact Favorites Area: On
    Compact Friends List: On
    Append nickname to friend’s name: On
    Hide offline friends in custom categories: On

  • Hide “Friend is playing ____” Notifications

    Steam > Friends > View Friends List
    Click on the Cog / Settings Icon
    Notifications > Uncheck: When friend joins a game
    Notifications > Uncheck: When comes online

  • Never Show Advertisement Popups

    Steam > Settings > Interface Tab
    Uncheck: Notify me about additions to my games and other releases

  • Startup in Tray

    Find Steam in the App Launcher widget
    Right Click Steam > Edit Application
    Application Tab > Command: /usr/bin/steam -silent %U
    If you added Steam to the autostarted apps, you will need to edit the command there as well.
    Relevant bug report.

  • Close Steam to Tray

    We need to launch steam using STEAM_FRAME_FORCE_CLOSE=1 steam as mentioned in this bug report, but editing every single game shortcut that Steam generates is a hassle. So we’ll set a session environment variable by adding export STEAM_FRAME_FORCE_CLOSE=1 to ~/.config/plasma-workspace/env/path.sh. It’s easier to run this commands:

    echo 'export STEAM_FRAME_FORCE_CLOSE=1' >> ~/.config/plasma-workspace/env/path.sh

    Then logout and back in so that your “panel” is launched with the session variable so that it can pass it to Steam when Steam is launched from the app launcher or desktop shortcut.

Clementine

  • Clean up UI

    Tools > Preferences
    Playback Tab > Uncheck: Show a glowing animation on the current track
    Search Tab > Uncheck: DigitallyImported, DropBox, Google Drive, Jazz
    Last.fm Tab > Uncheck: Show the “love” amd “ban” buttons
    Last.fm Tab > Uncheck: Show the scrobble button

  • Don’t fade between songs

    Playback Tab > Uncheck: Fade out when stopping a track
    Playback Tab > Uncheck: Cross-fade when changing tracks manually

  • Double Click song should play song now

    Behaviour > Using the menu to add a song will: Always start playing
    Behaviour > Double clicking a song will: Replace the playlist + Always start playing

Gtk Apps (Gimp/Hexchat/etc)

VirtualBox

  • Prevent Windows/Meta Key from opening the host App Menu

    Run the Virtual Machine.
    Press the host key (Right Ctrl)
    Press Alt+F3 > More Actions > Special Application Settings
    Window Matching Tab > Window class: [Exact Match] virtualbox machine
    Appearances & Fixes Tab > Check “Ignore Global Shortcuts”
    Change “Do Not Affect” to “Force”, then select “Yes”.

    Note that this also disables Spectacle’s screenshot global shortcuts while the VM window is focused.

Chrome

Firefox

Firefox (userChrome.css)

A firefox user can change the look of the browser by editing a css file.
Checkout /r/FirefoxCSS/ for help.

  1. In FireFox v69 and later, we need to go to about:config and change toolkit.legacyUserProfileCustomizations.stylesheets to true.
  2. Then navigate to ~/.mozilla/firefox/, inside will be a randomly generated folder similar to abcdef12.default which you should enter.
  3. Inside the "default" folder, create a new folder called chrome, then create a file called userChrome.css.
  4. You can now edit ~/.mozilla/firefox/abcdef12.default/chrome/userChrome.css, and changes will be applied upon restarting Firefox.
  • Remove left tabbar padding when not maximized

    Then paste the following CSS into userChrome.css (instructions) and restart firefox.

    .titlebar-placeholder[type="pre-tabs"] { display: none; } /* Firefox 64 */
    .titlebar-spacer[type="pre-tabs"] { width: 0 !important; } /* Firefox 65+ */
  • Cleanup right click menu (aka contextmenu)

    Click on µBlock > Click Settings Icon to open the dashboard
    Uncheck: Make use of context menu where appropriate
    To hide Firefox’s default menu items, this mozilla forum thread mentions we need to edit userChrome.css. So paste the following CSS into userChrome.css (instructions) and restart firefox.

    #contentAreaContextMenu #context-openlinkincurrent,
    #contentAreaContextMenu #context-openlinkinusercontext-menu,
    #contentAreaContextMenu #context-bookmarklink,
    #contentAreaContextMenu #context-selectall,
    #contentAreaContextMenu #context-sendlinktodevice,
    #contentAreaContextMenu #context-sendpagetodevice,
    #contentAreaContextMenu #context-sep-sendlinktodevice,
    #contentAreaContextMenu #context-sep-sendpagetodevice,
    #contentAreaContextMenu #context-viewpartialsource-selection {
      display: none !important;
    }

    If you’re not a web developer, you can hide “Take a screenshot” by going to about:config
    Search for extensions.screenshots.disabled and set it to true


Known Bugs