Changing the SDDM Display Manager (non-KDE)
While I do not use the KDE desktop I do like its display manager, SDDM. The default SDDM theme is not, in my opinion, very visually appealing (see image below) but it can be changed. This post looks at how we can change the theme and then edit it to our liking. I am currently using Arch but there will be similarities with other Linux Distribution such as Fedora and Debian.
Installing the SDDM Display Manager
In Arch, if you install and enable the sddm display manager (see terminal commands below) it will look similar to the screenshot above. The Fedora sddm display manager will look slightly different.
Important
The above commands assume there is no other display manager installed. If, for example, you have gdm installed, then you would need to force sddm as your display manager. The systemctl command would now be:
Changing the SDDM Theme
I have found the sddm corners theme easy to install (in a non-KDE environment) and also easy to edit. Instructions for installation can be found on their site. The theme can be found in Arch's AUR. To install:
# Install dependencies
# Install corners theme
# Makes it the default theme.
|
# Enable sddm service if this has not already been done above. Use -f if needed.
SDDM with the new theme applied:
Making Changes to the Corners Theme
With the new theme installed we can easily tweak it. The theme is located in /usr/share/sddm/themes/corners/
Changes that I have made:
- replaced the background image, located in
/usr/share/sddm/themes/corners/bacgrounds
- widening the vertical gap between the date and time which seemed too close to me
- removing the user picture
- changing the look of the login details in the bottom right
The result:
To achieve the above you need to open the configuration file for the corners theme. I use micro as my editor but you may be using nano or vim.
The contents of the original file:
The changes I then made to the above config file:
However, I might, in the near future, change the color of the date and time to improve the contrast with the background. The white text does not really work on the light background.
Below is the full config file for the updated theme:
## Please see https://github.com/aczw/sddm-theme-corners/blob/main/CONFIG.md for
## more information about these options. Happy configuring!
# BgSource: string. Path to an image, used as the wallpaper. Can be placed
# in the `backgrounds/` folder for convenience (see below!)
#
# FontFamily: string. Name of the font family. You can find this with
# something like `fontconfig`, for example.
#
# FontSize: number. This value is used for everything *except* the date/time.
#
# Padding: number. How far away things should be from the edge of your screen.
#
# Radius: number. Corner radius for UI. Set to 0 to disable rounded corners.
#
# Scale: number. Adjusts the size of UI elements. Can be anything, but I
# would stick between 1 and 2 (e.g. 1.5).
BgSource="backgrounds/light-blue-layers.jpg"
FontFamily="Atkinson Hyperlegible"
FontSize=9
Padding=50
Radius=10
Scale=1
# UserPictureEnabled: boolean. By default the user picture is shown. Set to false
# if you don't have/want a user picture, or you don't use the
# user selection functionality.
#
# UserBorderWidth: number. Width of the border around your picture. Set to
# 0 to remove.
#
# UserBorderColor: color. Border color around your picture. Useless if border
# width is 0.
#
# UserColor: color. Background color of the default, blank avatar. Only
# visible if you don't have your own picture.
UserPictureEnabled=false
UserBorderWidth=5
UserBorderColor="#b4befe"
UserColor="#cdd6f4"
# InputColor: color. Background color of the input fields.
#
# InputTextColor: color. Color of text you enter in the fields.
#
# InputBorderWidth: number. Width of the border around the active field. Set
# to 0 to remove.
#
# InputBorderColor: color. Border color of active field. Useless if border
# width is 0.
#
# UserPlaceholderText: string. Placeholder text shown when user field is empty.
#
# PassPlaceholderText: string. Placeholder text shown when user field is empty.
#
# HidePassword: boolean. Whether to replace your entered password with dots.
InputColor="#b4befe"
InputTextColor="#4c4f69"
InputBorderWidth=0
InputBorderColor="#b4befe"
UserPlaceholderText="user"
PassPlaceholderText="password"
HidePassword=true
# LoginButtonTextColor: color. Text color on the login button.
#
# LoginButtonText: string. Text displayed on the button.
#
# LoginButtonColor: color. Background color of the button.
LoginButtonTextColor="#4c4f69"
LoginButtonText="Login"
LoginButtonColor="#eff1f5"
# PopupColor: color. Background color of popup window.
#
# PopupActiveColor: color. Color around the currently selected entry.
#
# PopupActiveTextColor: color. Text color of the currently selected entry.
# Mainly provided for potential contrast issues.
PopupColor="#b4befe"
PopupActiveColor="#1e1e2e"
PopupActiveTextColor="#cdd6f4"
# SessionButtonColor: color. Session button background color.
#
# SessionIconColor: color. Color of the icon inside the session button.
#
# PowerButtonColor: color. Power button background color.
#
# PowerIconColor: color. Color of the icon inside the power button.
SessionButtonColor="#b4befe"
SessionIconColor="#1e1e2e"
PowerButtonColor="#b4befe"
PowerIconColor="#1e1e2e"
# DateTimeSpacing: number. Spacing between the date and time.
#
# Date/TimeColor: color. Date/time text color.
#
# Date/TimeSize: number. Font size for the date/time.
#
# Date/TimeIsBold: boolean. Whether date/time text should be bolded.
#
# Date/TimeOpacity: number. Date/time text opacity.
#
# Date/TimeFormat: string. Change the format of how the date and time is displayed.
# Note that they use different formats.
DateTimeSpacing=10
DateColor="#cdd6f4"
DateSize=36
DateIsBold=false
DateOpacity=1.0
DateFormat="dddd, MMMM d"
TimeColor="#cdd6f4"
TimeSize=48
TimeIsBold=true
TimeOpacity=1.0
TimeFormat="hh:mm AP"