191 lines
4.9 KiB
Nix
191 lines
4.9 KiB
Nix
{ pkgs, username, ... }:
|
|
{
|
|
nixpkgs.config.chromium.commandLineArgs = "--password-store='gnome-libsecret' --enable-features=UseOzonePlatform --ozone-platform=wayland";
|
|
hardware.bluetooth.enable = true;
|
|
environment = {
|
|
sessionVariables = {
|
|
NIXOS_OZONE_WL = "1";
|
|
MOZ_ENABLE_WAYLAND = "1";
|
|
WEBKIT_DISABLE_COMPOSITING_MODE = "1";
|
|
XDG_SESSION_TYPE = "wayland";
|
|
QT_QPA_PLATFORM = "wayland";
|
|
};
|
|
systemPackages = with pkgs; [
|
|
libsecret
|
|
libnotify
|
|
xdg-utils
|
|
wl-clipboard
|
|
hunspell
|
|
hunspellDicts.en_GB-large
|
|
gnome.nautilus
|
|
libreoffice-fresh
|
|
evince
|
|
image-roll
|
|
clapper
|
|
g4music
|
|
ffmpeg
|
|
remmina
|
|
fractal
|
|
webcord
|
|
signal-desktop
|
|
zapzap
|
|
teams-for-linux
|
|
twinkle
|
|
nomachine-client
|
|
];
|
|
};
|
|
security = {
|
|
polkit.enable = true;
|
|
pam.loginLimits = [
|
|
{
|
|
domain = "@users";
|
|
item = "rtprio";
|
|
type = "-";
|
|
value = 1;
|
|
}
|
|
];
|
|
};
|
|
programs = {
|
|
dconf.enable = true;
|
|
noisetorch.enable = true;
|
|
seahorse.enable = true;
|
|
file-roller.enable = true;
|
|
kdeconnect.enable = true;
|
|
hyprland.enable = true;
|
|
xwayland.enable = true;
|
|
};
|
|
gtk.iconCache.enable = true;
|
|
qt = {
|
|
enable = true;
|
|
style = "adwaita";
|
|
platformTheme = "gnome";
|
|
};
|
|
services = {
|
|
gnome.gnome-keyring.enable = true;
|
|
flatpak.enable = true;
|
|
printing.enable = true;
|
|
tumbler.enable = true;
|
|
udisks2.enable = true;
|
|
gnome.sushi.enable = true;
|
|
gvfs = {
|
|
enable = true;
|
|
package = pkgs.gnome3.gvfs;
|
|
};
|
|
kanata = {
|
|
enable = true;
|
|
keyboards.main = {
|
|
config = builtins.readFile ./kanata.kbd;
|
|
extraDefCfg = "process-unmapped-keys yes";
|
|
};
|
|
};
|
|
pipewire = {
|
|
enable = true;
|
|
pulse.enable = true;
|
|
alsa = {
|
|
enable = true;
|
|
support32Bit = true;
|
|
};
|
|
};
|
|
greetd = {
|
|
enable = true;
|
|
settings =
|
|
let
|
|
default_session.command = "Hyprland";
|
|
in
|
|
{
|
|
inherit default_session;
|
|
initial_session = {
|
|
inherit (default_session) command;
|
|
user = username;
|
|
};
|
|
};
|
|
};
|
|
xserver = {
|
|
enable = true;
|
|
xkb.layout = "gb";
|
|
};
|
|
};
|
|
xdg.portal = {
|
|
enable = true;
|
|
config.common.default = "*"; # TODO change for xdg-desktop-portal > 1.17 changes
|
|
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
|
};
|
|
home-manager.users.${username} =
|
|
{
|
|
config,
|
|
pkgs,
|
|
osConfig,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
./home/hyprland.nix
|
|
./home/email/default.nix
|
|
./home/calendar/default.nix
|
|
./home/terminal/default.nix
|
|
./home/emacs/default.nix
|
|
./home/browser/default.nix
|
|
];
|
|
home.file.${config.gtk.gtk2.configLocation}.force = true;
|
|
services = {
|
|
syncthing.enable = true;
|
|
gammastep = {
|
|
inherit (osConfig.location) latitude longitude provider;
|
|
enable = true;
|
|
tray = true;
|
|
};
|
|
};
|
|
gtk = {
|
|
enable = true;
|
|
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
|
iconTheme = {
|
|
package = (pkgs.papirus-icon-theme.override { color = "magenta"; });
|
|
name = "Papirus-Light";
|
|
};
|
|
};
|
|
stylix.targets.gtk.extraCss = with config.lib.stylix.scheme.withHashtag; ''
|
|
@define-color accent_color ${base0E-hex};
|
|
@define-color accent_bg_color ${base0E-hex};
|
|
'';
|
|
xdg = {
|
|
mime.enable = true;
|
|
mimeApps =
|
|
let
|
|
defaultApplications = import ./mimeapps.nix;
|
|
in
|
|
{
|
|
enable = true;
|
|
inherit defaultApplications;
|
|
associations.added = defaultApplications;
|
|
};
|
|
userDirs = {
|
|
enable = true;
|
|
createDirectories = true;
|
|
extraConfig = {
|
|
XDG_PROJECTS_DIR = "${config.home.homeDirectory}/Projects";
|
|
};
|
|
};
|
|
configFile = {
|
|
# Stop programs from overriding mimeapps
|
|
"mimeapps.list".force = true;
|
|
# Ensure GTK config is set
|
|
"gtk-3.0/gtk.css".force = true;
|
|
"gtk-3.0/settings.ini".force = true;
|
|
"gtk-4.0/gtk.css".force = true;
|
|
"gtk-4.0/settings.ini".force = true;
|
|
# Autostart some programs
|
|
"autostart/signal-desktop.desktop".source = "${pkgs.signal-desktop}/share/applications/signal-desktop.desktop";
|
|
"autostart/com.rtosta.zapzap.desktop".source = "${pkgs.zapzap}/share/applications/com.rtosta.zapzap.desktop";
|
|
"teams-for-linux/config.json".text = builtins.toJSON {
|
|
awayOnSystemIdle = true;
|
|
closeAppOnCross = false;
|
|
followSystemTheme = true;
|
|
notificationMethod = "electron";
|
|
optInTeamsV2 = true;
|
|
spellCheckerLanguages = [ "en_GB" ];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|