Switch back to plasma (again)

Add plasma-manager back, disable stylix theming for KDE in favour of
plasma-manager options.

Reorganise some config - move GTK settings up to desktop.nix since
they're relevant to anything, move xdg portal config into sway only
since plasma sets up it's own.

Move xarchiver to sway only, using ark on plasma.

Add protonmail-bridge-gui for plasma, set to autostart
This commit is contained in:
Evie Litherland-Smith 2024-09-27 16:19:42 +01:00
parent c14cad8d9f
commit b7c74a484b
9 changed files with 163 additions and 138 deletions

View file

@ -275,12 +275,36 @@
"type": "github"
}
},
"plasma-manager": {
"inputs": {
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1727210241,
"narHash": "sha256-lufS6uzSbSrggNCSgubymMQWnQMh7PvQ+lRZ8qH9Uoc=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "a02fef2ece8084aff0b41700bb57d24d73574cd1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "plasma-manager",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"iosevka-custom": "iosevka-custom",
"nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs_2",
"plasma-manager": "plasma-manager",
"stylix": "stylix"
}
},

View file

@ -12,6 +12,13 @@
url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs";
};
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs = {
nixpkgs.follows = "nixpkgs";
home-manager.follows = "home-manager";
};
};
stylix = {
url = "github:danth/stylix";
inputs = {

View file

@ -1,6 +1,6 @@
{ pkgs, username, ... }:
{
imports = [ ./sway.nix ];
imports = [ ./plasma.nix ];
home-manager.users.${username}.imports = [ ./home/desktop.nix ];
nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
hardware.bluetooth.enable = true;
@ -13,7 +13,6 @@
libsecret
libnotify
xdg-utils
xarchiver
hunspell
hunspellDicts.en_GB-large
];
@ -57,8 +56,4 @@
};
};
};
xdg.portal = {
enable = true;
config.common.default = "*"; # TODO change for xdg-desktop-portal > 1.17 changes
};
}

View file

@ -1,7 +1,7 @@
{ config, pkgs, ... }:
{
imports = [
./sway/default.nix
./plasma/default.nix
./emacs/default.nix
./terminal/default.nix
./browser/default.nix
@ -16,6 +16,14 @@
];
services.syncthing.enable = true;
programs.mpv.enable = true;
gtk = {
enable = true;
iconTheme = {
package = pkgs.papirus-icon-theme;
name = "Papirus";
};
};
qt.enable = true;
xdg = {
mime.enable = true;
mimeApps =

View file

@ -48,9 +48,7 @@ in
"application/pdf" = [ "org.pwmt.zathura.desktop" ];
"application/epub+zip" = [ "org.pwmt.zathura.desktop" ];
"application/msword" = [ "writer.desktop" ];
"application/zip" = [ "xarchiver.desktop" ];
"application/x-archive" = [ "xarchiver.desktop" ];
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
"application/x-extension-shtml" = browser;

View file

@ -1,74 +1,66 @@
{
config,
# lib,
pkgs,
inputs,
...
}:
{
# imports = [ ./konsole.nix ];
stylix.targets.kde.enable = false;
imports = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
home.packages = with pkgs; [
protonmail-bridge-gui
libreoffice-qt-fresh
rc2nix
wl-clipboard
(papirus-icon-theme.override { color = "breeze"; })
];
services.gpg-agent.pinentryPackage = pkgs.pinentry-qt;
programs.plasma = {
enable = true;
overrideConfig = true;
# workspace =
# let
# toCapital = import ../lib/to_capital.nix lib;
# in
# {
# clickItemTo = "open";
# theme = "default";
# colorScheme = "Breeze${toCapital config.lib.stylix.scheme.variant}";
# iconTheme = "Papirus-${toCapital config.lib.stylix.scheme.variant}";
# windowDecorations = {
# library = "org.kde.breeze";
# theme = "Breeze";
# };
# cursor = {
# inherit (config.home.pointerCursor) size;
# theme = config.home.pointerCursor.name;
# };
# wallpaper = "${../wallpapers/landscapes/tropic_island_day.jpg}";
# };
workspace = {
# theme = "default";
# colorScheme = "Breeze";
iconTheme = config.gtk.iconTheme.name;
# windowDecorations = {
# library = "org.kde.breeze";
# theme = "Breeze";
# };
cursor = {
inherit (config.home.pointerCursor) size;
theme = config.home.pointerCursor.name;
};
wallpaper = config.stylix.image;
};
# fonts =
# let
# general = {
# family = config.stylix.fonts.sansSerif.name;
# pointSize = 12;
# };
# small = {
# inherit (general) family;
# pointSize = general.pointSize - 2;
# };
# fixedWidth = {
# family = config.stylix.fonts.monospace.name;
# pointSize = 12;
# };
# in
# {
# inherit general small fixedWidth;
# menu = general;
# toolbar = general;
# windowTitle = small;
# };
fonts =
let
general = {
family = config.stylix.fonts.sansSerif.name;
pointSize = 12;
};
small = {
inherit (general) family;
pointSize = general.pointSize - 2;
};
fixedWidth = {
family = config.stylix.fonts.monospace.name;
pointSize = 12;
};
in
{
inherit general small fixedWidth;
menu = general;
toolbar = general;
windowTitle = small;
};
hotkeys.commands = {
"launch-terminal" =
let
command = config.programs.plasma.configFile.kdeglobals.General.TerminalApplication.value;
in
{
inherit command;
name = "Launch ${command} emulator";
key = "Ctrl+Alt+T";
};
"launch-alacritty" = {
name = "Launch Alacritty terminal emulator";
key = "Ctrl+Alt+T";
command = "alacritty";
};
"launch-emacs" = {
name = "Launch Emacs Client Window";
key = "Meta+Alt+X";
@ -214,7 +206,7 @@
};
dimDisplay = {
enable = true;
idleTimeOut = 300;
# idleTimeOut = 300;
};
turnOffDisplay = {
idleTimeout = 1800;
@ -229,7 +221,7 @@
};
dimDisplay = {
enable = true;
idleTimeOut = 120;
# idleTimeOut = 120;
};
turnOffDisplay = {
idleTimeout = 300;
@ -244,7 +236,7 @@
};
dimDisplay = {
enable = true;
idleTimeOut = 60;
# idleTimeOut = 60;
};
turnOffDisplay = {
idleTimeout = 120;
@ -255,6 +247,10 @@
configFile = {
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
kwalletrc."org.freedesktop.secrets" = {
Enabled = false;
apiEnabled = false;
};
kcminputrc.Keyboard.NumLock = 1;
yakuakerc = {
Dialogs.FirstRun = false;
@ -290,44 +286,44 @@
KeepClipboardContents = false;
};
};
# kdeglobals = {
# General =
# let
# AccentColor =
# let
# r = config.lib.stylix.scheme."base0D-rgb-r";
# g = config.lib.stylix.scheme."base0D-rgb-g";
# b = config.lib.stylix.scheme."base0D-rgb-b";
# in
# "${r}, ${g}, ${b}";
# in
# {
# inherit AccentColor;
# LastUsedCustomAccentColor = AccentColor;
# TerminalApplication = "konsole";
# TerminalService = "org.kde.konsole.desktop";
# };
# WM = {
# # TODO convert to base16 colours at some point
# activeBackground = "227,229,231";
# activeBlend = "227,229,231";
# activeForeground = "35,38,41";
# inactiveBackground = "239,240,241";
# inactiveBlend = "239,240,241";
# inactiveForeground = "112,125,138";
# };
# };
# breezerc = {
# Common = {
# OutlineClassButton = true;
# OutlineCloseButtone = true;
# ShadowSize = "ShadowVeryLarge";
# ShadowStrength = "128";
# };
# Style = {
# MenuOpacity = "100";
# };
# };
kdeglobals = {
General =
let
AccentColor =
let
r = config.lib.stylix.scheme."base0D-rgb-r";
g = config.lib.stylix.scheme."base0D-rgb-g";
b = config.lib.stylix.scheme."base0D-rgb-b";
in
"${r}, ${g}, ${b}";
in
{
inherit AccentColor;
LastUsedCustomAccentColor = AccentColor;
TerminalApplication = "konsole";
TerminalService = "org.kde.konsole.desktop";
};
WM = {
# TODO convert to base16 colours at some point
activeBackground = "227,229,231";
activeBlend = "227,229,231";
activeForeground = "35,38,41";
inactiveBackground = "239,240,241";
inactiveBlend = "239,240,241";
inactiveForeground = "112,125,138";
};
};
breezerc = {
Common = {
OutlineClassButton = true;
OutlineCloseButtone = true;
ShadowSize = "ShadowVeryLarge";
ShadowStrength = "128";
};
Style = {
MenuOpacity = "100";
};
};
dolphinrc = {
ContentDisplay = {
UsePermissionsFormat = "CombinedFormat";
@ -355,29 +351,19 @@
LatitudeFixed = "51.7";
LongitudeFixed = "-1.2";
};
# "Effect-translucency" = {
# # Re-enable translucency when I can work out how to apply
# # blur to all windows
# Inactive = 100;
# MoveResize = 100;
# Dialogs = 100;
# ComboboxPopups = 100;
# Menus = 100;
# };
# "org.kde.kdecoration2" = {
# BorderSize = "None";
# BorderSizeAuto = "false";
# };
# "Script-krohnkite" = {
# limitTileWidth = true;
# screenGapBottom = 5;
# screenGapLeft = 5;
# screenGapRight = 5;
# screenGapTop = 5;
# tileLayoutGap = 5;
# };
"Effect-translucency" = {
Inactive = 100;
MoveResize = 100;
Dialogs = 100;
ComboboxPopups = 100;
Menus = 100;
};
"org.kde.kdecoration2" = {
BorderSize = "None";
BorderSizeAuto = "false";
};
};
};
};
xdg.configFile."autostart/org.kde.yakuake.desktop".source = "${pkgs.yakuake}/share/applications/org.kde.yakuake.desktop";
xdg.configFile."autostart/proton-bridge-gui.desktop".source = "${pkgs.protonmail-bridge-gui}/share/applications/proton-bridge-gui.desktop";
}

View file

@ -117,13 +117,6 @@
tray = "never";
};
};
gtk = {
enable = true;
iconTheme = {
package = pkgs.papirus-icon-theme.override { color = "violet"; };
name = "Papirus-${(import ../lib/to_capital.nix lib) config.lib.stylix.scheme.variant}";
};
};
wayland.windowManager.sway = {
enable = true;
package = pkgs.swayfx.overrideAttrs (old: {

View file

@ -1,10 +1,17 @@
{ pkgs, ... }:
{ pkgs, username, ... }:
{
environment.plasma6.excludePackages = [ pkgs.kdePackages.plasma-browser-integration ];
environment.plasma6.excludePackages = with pkgs.kdePackages; [
plasma-browser-integration
konsole
kate
];
services = {
displayManager.sddm = {
enable = true;
wayland.enable = true;
displayManager = {
autoLogin.user = username;
sddm = {
enable = true;
wayland.enable = true;
};
};
desktopManager.plasma6 = {
enable = true;

View file

@ -1,6 +1,9 @@
{ pkgs, username, ... }:
{
environment.sessionVariables.GRIM_DEFAULT_DIR = "$HOME/Pictures/Screenshots";
environment = {
sessionVariables.GRIM_DEFAULT_DIR = "$HOME/Pictures/Screenshots";
systemPackages = [ pkgs.xarchiver ];
};
programs = {
thunar = {
enable = true;
@ -38,5 +41,9 @@
style = "adwaita";
platformTheme = "gnome";
};
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
xdg.portal = {
enable = true;
config.common.default = "*"; # TODO change for xdg-desktop-portal > 1.17 changes
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
}