config.json
Introduction to config.json
config.json file is located at ~/.config/plainDE/config.json. This file creates automatically with first start of plainPanel by this script. It contains default configuration. config.json can be either edited manually, or by plainControlCenter. Next we will review all properties of config.json.
Property description
Name of property | Type of value | Acceptable value | Description | Default value |
accent | String | HEX color starting with # | Sets accent color. This is the color of QListWidget selected items, QPushButtons, etc | "#376594" |
avatar | String | Path to an image | Sets a picture next to your username. If an option is empty, we use 'computer' icon. | Empty |
useTriangularTabs | Bool | true/false | Sets if App Menu tabs should have triangular form. | true |
autostart | Array of string | Array of desktop files (/usr/share/applications/*.desktop; ~/.local/share/applications/*.desktop) | Sets list of apps that should start with plainPanel automatically | Empty |
configVersion | String | Version of plainDE | Sets version to make possible updating config automatically if needed in newer versions. Should not be changed by user. | Installed version of plainDE |
countPanels | Int | 1 ~ 4 | Says panel and control center how many panels should be processed. Should not be changed by user (deleted panels are null'ed, so there's no need to change this property). | 4 |
dateFormat | String | d (1~31) dd (01~31) ddd (Mon~Sun) M (1~12) MM (01~12) MMM (Jan~Dec) yy (00~99) yyyy (1970~9999) | Sets format of the date in datetime applet (if date is not hidden) | "MMM d" |
enableAnimation | Bool | true/false | Sets if panel slide animation is required | true |
enableOveramplification | Bool | true/false | Lets you increase volume over 100% (max is 150%). Note. Works only with PulseAudio adjustVolumeMethod. | false |
defaultVolume | Int | 0 ~ 150 | Sets initial volume set after plainPanel startup. | 40 |
favApps | Array of string | Array of desktop files (/usr/share/applications/*.desktop; ~/.local/share/applications/*.desktop) | Sets list of apps showed in 'Favorites' tab of App Menu applet | Empty array |
firstDayOfWeek | Int | 1 ~ 7 | Sets first day of week in Calendar applet. See Qt::DayOfWeek. | 1 |
fontFamily | String | Name of the preferred font | Sets font family in plainPanel, plainControlCenter, plainAbout | "Open Sans" |
fontSize | Int | Point size of font | Sets font size in plainPanel, plainControlCenter, plainAbout | 10 |
iconTheme | String | Name of preferred icon pack | Sets icons in plainPanel, plainControlCenter. Currently Mint-Y theme is recommended. We use some icons that present only there. Previously we used Adwaita as default, but with GNOME 42 update Adwaita completely stopped following freedesktop.org specifications. | Empty. This property needs to be set after plainDE installation. |
ipIfname | String | Network interface name | Sets network interface for using with Local IPv4 applet | Empty |
ipColor | String | HEX color starting with # | Sets color that should be used for showing Local IPv4 address. It is separate from QSS because we use QGraphicsView for showing IP (lets us rotate applet - we use it in vertical panels). It does not support QSS text customization. | #ffffff |
kbLayoutToggle | String | Method that will be used for switching keyboard layouts | Sets keyboard layout toggle method for setxkbmap. See all methods in /usr/share/plainDE/layoutSwitchMethods.json | grp:win_space_toggle |
kbLayouts | String | Keyboard layouts ISO codes separated by commas (,) | Sets keyboard layouts list for setxkbmap. See all keyboard layouts in /usr/share/plainDE/layouts.json | "us" |
logInSound | String | Path to an audio file | Sets path to an audio file that plays after logging in | "" |
logOutSound | String | Path to an audio file | Sets path to an audio file that plays before logging out | "" |
menuIcon | String | Path to preferrable PNG menu icon | Sets custom icon for App Menu applet | "/usr/share/plainDE/menuIcon.png" |
menuIconSize | Int | 0 ~ 256 | Size of App Menu icon | 16 |
menuText | String | Any string or empty string | Sets custom text for App Menu applet. | "Apps" |
showDate | Bool | true/false | Sets if date should be shown next to time | true |
winListIconSize | Int | 0 ~ 256 | Sets size of icons in Window List applet | 22 |
theme | String | Preferred theme name (QSS) | Sets preferred QSS theme name (see available themes at /usr/share/plainDE/styles/) | "gradient-dark.qss" |
timeFormat | String | h (0~23, 1~12) hh (00~23, 01~12) m (0~59) mm (00~59) s (0~59) ss (00~59) AP (AM/PM) t (timezone) | Sets time format in datetime applet | "h:mm AP" |
useCountryFlag | Bool | true/false | Sets is country flag should be shown instead of kayboard layout ISO code | true |
volumeAdjustMethod | String | "ALSA" / "PulseAudio" | Sets which method panel should use for adjusting volume | "ALSA" |
winListShowTitles | Bool | true/false | Sets if window titles should be shown. | true |
showWeekNumbers | Bool | true/false | Sets if week numbers should be shown in QCalendarWidget | true |
showDesktopNames | Bool | true/false | Sets if workspace names should be shown instead of numbers | false |
secondsUntilPowerOff | Int | -1 ~ INT_MAX | Sets timeout for shutdown, reboot and log out procedures. Value of -1 disables it (only manual confirmation) | 30 |
Panel property description
These properties should be inside of panel1
, panel2
, panel3
or panel4
property in config.json.
applets | Array of string | Array of applets (appmenu, datetime, kblayout, localipv4, battery, snitray, mpris, usermenu, volume, windowlist, workspaces, spacer, launcher:app.desktop / launcher:/path/to/script:/path/to/icon:, clioutput:appletname splitter) // follow these links to view source code of every applet | Sets list of applets and their position | Panel 1: ["appmenu", "spacer", "sni", "battery", "mpris", "volume", "kblayout", "datetime", "splitter", "usermenu"] Panel 2: ["windowlist", "spacer", "localipv4", "workspaces"] |
backgroundImage | String | Path to background image | Sets background image of panel | Empty |
expand | Bool | true/false | Sets if panel should be full width (using all width of screen) | true |
setOnCenter | Bool | true/false | Sets if panel should be centered relatively screen. Works only if `expand` is turned off. | false |
thickness | Int | >= 0 | Sets thickness of panel (height for horizontal one, width for vertical one) in pixels | 28 |
enableAutoHide | Bool | true/false | Sets if panel should automatically hide when mouse not in its area | false |
autoHideInterval | Int | 100 ~ 32000 | Sets interval in ms for Auto-Hide feature. | 100 |
launcherIconSize | Int | >= 0 | Sets size of launchers icons (height and width) in pixels | 22 |
location | String | "top", "bottom", "left" or "right" | Sets location of panel to top or bottom | Panel 1: "top" Panel 2: "bottom" |
opacity | Float | 0.0 ~ 1.0 | Sets opacity for panel and applets (you must have compositor for this to work!) | 0.85 |
shift | Int | >= 0 | Sets how many pixels the panel should be shifted. | 0 |
spacing | Int | >= 0 | Sets how many pixels should there be between applets. | 0 |
margin | Int | >= 0 | Sets how many pixels should be left on left and right sides (horizontal panel) or on top and bottom (vertical panel) | 5 |
screen | String | Name of one of the screens | Sets which monitor will be used for a panel | Empty |
Conclusion
plainControlCenter lets you edit all of this properties, but now you can edit config.json manually if you want.