nixos/home/desktop/default.nix
Evie Litherland-Smith 105a35c024 Swap GTK theme to Colloid with purple modification
Swap Qt to use gtk2, should pick up from GTK theme then.

Remove additional packages bundled with sway, installed my own
versions.
2024-07-09 13:07:23 +01:00

169 lines
4.2 KiB
Nix

{
config,
lib,
pkgs,
accentColourName,
...
}: {
imports = [
./sway/default.nix
./alacritty/default.nix
./avizo/default.nix
./fuzzel/default.nix
./swaylock/default.nix
./swayidle/default.nix
./swaync/default.nix
./waybar/default.nix
./wlogout/default.nix
];
home = {
pointerCursor = let
name =
if config.scheme.variant == "light"
then "volantes_cursors"
else "volantes_light_cursors";
in {
inherit name;
package = pkgs.volantes-cursors;
size = 32;
gtk.enable = true;
x11 = {
enable = true;
defaultCursor = name;
};
};
packages = with pkgs; [
pinentry-gnome3
gnome.seahorse
ffmpeg
evince
libreoffice-fresh
inkscape
webcord
teams-for-linux
grim
slurp
swayimg
swaybg
(writeShellScriptBin "protonmail-setup-bridge" ''
pkill -9 -f protonmail-bridge
${protonmail-bridge}/bin/protonmail-bridge -c
swaymsg exec "${protonmail-bridge}/bin/protonmail-bridge -n"
'')
(writeShellScriptBin "davmail-setup" ''
systemctl --user restart davmail # Ensure config file is present
systemctl --user stop davmail
${davmail}/bin/davmail -n ~/.davmail.properties
systemctl --user restart davmail
'')
];
};
services = {
avizo.enable = true;
gpg-agent.pinentryPackage = pkgs.pinentry-gnome3;
syncthing.enable = true;
kdeconnect = {
enable = true;
indicator = true;
};
udiskie = {
enable = true;
notify = true;
automount = true;
tray = "never";
};
};
programs.mpv.enable = true;
gtk = let
extraCss = import ./base16/gtk.nix {
inherit (config) scheme;
inherit accentColourName;
};
toCapital = string:
with lib; let
chars = let
lc = strings.splitString "" string;
in (lists.sublist 1 (lists.length lc - 2) lc);
in (
strings.concatStringsSep "" (
(lists.singleton (strings.toUpper (lists.elemAt chars 0)))
++ (lists.sublist 1 (lists.length chars) chars)
)
);
in {
enable = true;
gtk3 = {inherit extraCss;};
gtk4 = {inherit extraCss;};
theme = let
color = "purple";
in {
package = pkgs.colloid-gtk-theme.override {
themeVariants = [color];
colorVariants = [config.scheme.variant];
};
name = "Colloid-${toCapital color}-${toCapital config.scheme.variant}";
};
iconTheme = let
color = "violet";
in {
package = pkgs.papirus-icon-theme.override {inherit color;};
name = "Papirus-${toCapital config.scheme.variant}";
};
};
qt = {
enable = true;
style.name = "gtk2";
};
xdg = {
mime.enable = true;
mimeApps = let
defaultApplications = import ./mimeapps.nix;
in {
enable = true;
inherit defaultApplications;
associations = {
added = defaultApplications;
removed = {
"x-scheme-handler/zoomus" = config.xdg.mimeApps.defaultApplications."x-scheme-handler/http";
};
};
};
userDirs = {
enable = true;
createDirectories = true;
extraConfig = {
XDG_PROJECTS_DIR = "${config.home.homeDirectory}/Projects";
};
};
configFile."teams-for-linux/config.json".text = builtins.toJSON {
awayOnSystemIdle = true;
closeAppOnCross = true;
followSystemTheme = true;
electronCLIFlags = lib.mkIf config.wayland.windowManager.sway.enable [["ozone-platform" "wayland"]];
notificationMethod = "electron";
optInTeamsV2 = true;
spellCheckerLanguages = ["en_GB"];
};
};
xresources.properties = with config.scheme.withHashtag; {
"*background" = base00;
"*foreground" = base05;
"*color0" = base00;
"*color1" = red;
"*color2" = green;
"*color3" = yellow;
"*color4" = blue;
"*color5" = magenta;
"*color6" = cyan;
"*color7" = base04;
"*color8" = base01;
"*color9" = red;
"*color10" = green;
"*color11" = yellow;
"*color12" = blue;
"*color13" = magenta;
"*color14" = cyan;
"*color15" = base05;
};
}