mirror of
https://github.com/nix-community/plasma-manager.git
synced 2024-12-02 08:18:44 +03:00
169 lines
4.9 KiB
Nix
169 lines
4.9 KiB
Nix
{ pkgs, ... }:
|
|
{
|
|
home.stateVersion = "23.11";
|
|
|
|
programs.plasma = {
|
|
enable = true;
|
|
|
|
#
|
|
# Some high-level settings:
|
|
#
|
|
workspace = {
|
|
clickItemTo = "open"; # If you liked the click-to-open default from plasma 5
|
|
lookAndFeel = "org.kde.breezedark.desktop";
|
|
cursor = {
|
|
theme = "Bibata-Modern-Ice";
|
|
size = 32;
|
|
};
|
|
iconTheme = "Papirus-Dark";
|
|
wallpaper = "${pkgs.kdePackages.plasma-workspace-wallpapers}/share/wallpapers/Patak/contents/images/1080x1920.png";
|
|
};
|
|
|
|
hotkeys.commands."launch-konsole" = {
|
|
name = "Launch Konsole";
|
|
key = "Meta+Alt+K";
|
|
command = "konsole";
|
|
};
|
|
|
|
fonts = {
|
|
general = {
|
|
family = "JetBrains Mono";
|
|
pointSize = 12;
|
|
};
|
|
};
|
|
|
|
panels = [
|
|
# Windows-like panel at the bottom
|
|
{
|
|
location = "bottom";
|
|
widgets = [
|
|
# We can configure the widgets by adding the name and config
|
|
# attributes. For example to add the the kickoff widget and set the
|
|
# icon to "nix-snowflake-white" use the below configuration. This will
|
|
# add the "icon" key to the "General" group for the widget in
|
|
# ~/.config/plasma-org.kde.plasma.desktop-appletsrc.
|
|
{
|
|
name = "org.kde.plasma.kickoff";
|
|
config = {
|
|
General.icon = "nix-snowflake-white";
|
|
};
|
|
}
|
|
# Adding configuration to the widgets can also for example be used to
|
|
# pin apps to the task-manager, which this example illustrates by
|
|
# pinning dolphin and konsole to the task-manager by default.
|
|
{
|
|
name = "org.kde.plasma.icontasks";
|
|
config = {
|
|
General.launchers = [
|
|
"applications:org.kde.dolphin.desktop"
|
|
"applications:org.kde.konsole.desktop"
|
|
];
|
|
};
|
|
}
|
|
# If no configuration is needed, specifying only the name of the
|
|
# widget will add them with the default configuration.
|
|
"org.kde.plasma.marginsseparator"
|
|
# If you need configuration for your widget, instead of specifying the
|
|
# the keys and values directly using the config attribute as shown
|
|
# above, plasma-manager also provides some higher-level interfaces for
|
|
# configuring the widgets. See modules/widgets for supported widgets
|
|
# and options for these widgets. The widgets below shows two examples
|
|
# of usage, one where we add a digital clock, setting 12h time and
|
|
# first day of the week to sunday and another adding a systray with
|
|
# some modifications in which entries to show.
|
|
{
|
|
digitalClock = {
|
|
calendar.firstDayOfWeek = "sunday";
|
|
time.format = "12h";
|
|
};
|
|
}
|
|
{
|
|
systemTray.items = {
|
|
# We explicitly show bluetooth and battery
|
|
shown = [
|
|
"org.kde.plasma.battery"
|
|
"org.kde.plasma.bluetooth"
|
|
];
|
|
# And explicitly hide networkmanagement and volume
|
|
hidden = [
|
|
"org.kde.plasma.networkmanagement"
|
|
"org.kde.plasma.volume"
|
|
];
|
|
};
|
|
}
|
|
];
|
|
hiding = "autohide";
|
|
}
|
|
# Global menu at the top
|
|
{
|
|
location = "top";
|
|
height = 26;
|
|
widgets = [
|
|
"org.kde.plasma.appmenu"
|
|
];
|
|
}
|
|
];
|
|
|
|
window-rules = [
|
|
{
|
|
description = "Dolphin";
|
|
match = {
|
|
window-class = {
|
|
value = "dolphin";
|
|
type = "substring";
|
|
};
|
|
window-types = [ "normal" ];
|
|
};
|
|
apply = {
|
|
noborder = {
|
|
value = true;
|
|
apply = "force";
|
|
};
|
|
# `apply` defaults to "apply-initially"
|
|
maximizehoriz = true;
|
|
maximizevert = true;
|
|
};
|
|
}
|
|
];
|
|
|
|
|
|
#
|
|
# Some mid-level settings:
|
|
#
|
|
shortcuts = {
|
|
ksmserver = {
|
|
"Lock Session" = [ "Screensaver" "Meta+Ctrl+Alt+L" ];
|
|
};
|
|
|
|
kwin = {
|
|
"Expose" = "Meta+,";
|
|
"Switch Window Down" = "Meta+J";
|
|
"Switch Window Left" = "Meta+H";
|
|
"Switch Window Right" = "Meta+L";
|
|
"Switch Window Up" = "Meta+K";
|
|
};
|
|
};
|
|
|
|
|
|
#
|
|
# Some low-level settings:
|
|
#
|
|
configFile = {
|
|
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
|
|
kwinrc."org.kde.kdecoration2".ButtonsOnLeft = "SF";
|
|
kwinrc.Desktops.Number = {
|
|
value = 8;
|
|
# Forces kde to not change this value (even through the settings app).
|
|
immutable = true;
|
|
};
|
|
kscreenlockerrc = {
|
|
Greeter.WallpaperPlugin = "org.kde.potd";
|
|
# To use nested groups use / as a separator. In the below example,
|
|
# Provider will be added to [Greeter][Wallpaper][org.kde.potd][General].
|
|
"Greeter/Wallpaper/org.kde.potd/General".Provider = "bing";
|
|
};
|
|
};
|
|
};
|
|
}
|
|
|