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" "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": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"iosevka-custom": "iosevka-custom", "iosevka-custom": "iosevka-custom",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"plasma-manager": "plasma-manager",
"stylix": "stylix" "stylix": "stylix"
} }
}, },

View file

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

View file

@ -1,6 +1,6 @@
{ pkgs, username, ... }: { pkgs, username, ... }:
{ {
imports = [ ./sway.nix ]; imports = [ ./plasma.nix ];
home-manager.users.${username}.imports = [ ./home/desktop.nix ]; home-manager.users.${username}.imports = [ ./home/desktop.nix ];
nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland"; nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
@ -13,7 +13,6 @@
libsecret libsecret
libnotify libnotify
xdg-utils xdg-utils
xarchiver
hunspell hunspell
hunspellDicts.en_GB-large 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, ... }: { config, pkgs, ... }:
{ {
imports = [ imports = [
./sway/default.nix ./plasma/default.nix
./emacs/default.nix ./emacs/default.nix
./terminal/default.nix ./terminal/default.nix
./browser/default.nix ./browser/default.nix
@ -16,6 +16,14 @@
]; ];
services.syncthing.enable = true; services.syncthing.enable = true;
programs.mpv.enable = true; programs.mpv.enable = true;
gtk = {
enable = true;
iconTheme = {
package = pkgs.papirus-icon-theme;
name = "Papirus";
};
};
qt.enable = true;
xdg = { xdg = {
mime.enable = true; mime.enable = true;
mimeApps = mimeApps =

View file

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

View file

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

View file

@ -1,6 +1,9 @@
{ pkgs, username, ... }: { pkgs, username, ... }:
{ {
environment.sessionVariables.GRIM_DEFAULT_DIR = "$HOME/Pictures/Screenshots"; environment = {
sessionVariables.GRIM_DEFAULT_DIR = "$HOME/Pictures/Screenshots";
systemPackages = [ pkgs.xarchiver ];
};
programs = { programs = {
thunar = { thunar = {
enable = true; enable = true;
@ -38,5 +41,9 @@
style = "adwaita"; style = "adwaita";
platformTheme = "gnome"; 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 ];
};
} }