162 lines
4.1 KiB
Nix
162 lines
4.1 KiB
Nix
args@{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib; let
|
|
psCfg = config.pub-solar;
|
|
tomlFormat = pkgs.formats.toml {};
|
|
sessionVariables = {
|
|
WLR_RENDERER =
|
|
if psCfg.graphical.wayland.software-renderer.enable
|
|
then "pixman"
|
|
else "gles2";
|
|
# Fix KeepassXC rendering issue
|
|
# https://github.com/void-linux/void-packages/issues/23517
|
|
QT_AUTO_SCREEN_SCALE_FACTOR = "0";
|
|
};
|
|
in {
|
|
imports = [
|
|
./sway
|
|
./waybar.nix
|
|
./mako.nix
|
|
];
|
|
|
|
options.pub-solar.graphical = {
|
|
wayland.software-renderer.enable = mkOption {
|
|
type = types.bool;
|
|
default = false;
|
|
description = "Feature flag enabling wlroots software renderer, useful in VMs";
|
|
};
|
|
};
|
|
|
|
config = {
|
|
hardware.graphics.enable = true;
|
|
|
|
environment = {
|
|
systemPackages = with pkgs; [
|
|
gtk-engine-murrine
|
|
gtk_engines
|
|
gsettings-desktop-schemas
|
|
|
|
matcha-gtk-theme
|
|
papirus-maia-icon-theme
|
|
|
|
glib
|
|
xdg-utils
|
|
xorg.xbacklight
|
|
|
|
desktop-file-utils
|
|
];
|
|
|
|
variables = sessionVariables;
|
|
};
|
|
|
|
services.getty.autologinUser = psCfg.user.name;
|
|
|
|
# Required for running Gnome apps outside the Gnome DE, see https://nixos.wiki/wiki/GNOME#Running_GNOME_programs_outside_of_GNOME
|
|
programs.dconf.enable = true;
|
|
services.udev.packages = with pkgs; [gnome-settings-daemon];
|
|
# Enable Sushi, a quick previewer for nautilus
|
|
services.gnome.sushi.enable = true;
|
|
# Enable GVfs, a userspace virtual filesystem
|
|
services.gvfs.enable = true;
|
|
|
|
# This actually lowers security and is
|
|
# required to run electron apps with the hardened kernel
|
|
boot.kernel.sysctl."kernel.unprivileged_userns_clone" = 1;
|
|
|
|
fonts = {
|
|
packages = with pkgs; [
|
|
dejavu_fonts
|
|
powerline-fonts
|
|
];
|
|
enableDefaultPackages = true;
|
|
fontconfig.enable = true;
|
|
fontconfig.defaultFonts = {
|
|
monospace = ["DejaVu Sans Mono for Powerline"];
|
|
sansSerif = ["DejaVu Sans"];
|
|
};
|
|
};
|
|
|
|
users.users."${psCfg.user.name}".packages = with pkgs; [
|
|
alacritty
|
|
adwaita-icon-theme
|
|
eog
|
|
nautilus
|
|
seahorse
|
|
yelp
|
|
keepassxc
|
|
libnotify
|
|
toggle-kbd-layout
|
|
vlc
|
|
wcwd
|
|
wdisplays
|
|
wl-mirror
|
|
];
|
|
|
|
qt = {
|
|
enable = true;
|
|
platformTheme = "gtk2";
|
|
style = "gtk2";
|
|
};
|
|
|
|
home-manager.users."${psCfg.user.name}" = {
|
|
home.file."xinitrc".source = ./.xinitrc;
|
|
xdg.configFile."alacritty/alacritty.toml".source = tomlFormat.generate "alacritty.toml" ((import ./alacritty.nix) args);
|
|
xdg.configFile."xmodmap".source = ./.config/xmodmap;
|
|
xdg.configFile."user-dirs.locale".source = ./.config/user-dirs.locale;
|
|
xdg.configFile."libinput-gestures.conf".source = ./.config/libinput-gestures.conf;
|
|
xdg.configFile."wallpaper.jpg".source = ./assets/wallpaper.jpg;
|
|
|
|
programs.firefox = {
|
|
enable = true;
|
|
package = pkgs.firefox-wayland;
|
|
};
|
|
|
|
dconf.settings = {
|
|
"org/gnome/desktop/interface" = {
|
|
color-scheme = "prefer-dark";
|
|
};
|
|
};
|
|
|
|
gtk = {
|
|
enable = true;
|
|
font.name = "Lato";
|
|
iconTheme = {
|
|
package = pkgs.papirus-icon-theme;
|
|
name = "Papirus-Adapta-Nokto-Maia";
|
|
};
|
|
theme = {
|
|
package = pkgs.matcha-gtk-theme;
|
|
name = "Matcha-dark-aliz";
|
|
};
|
|
|
|
gtk3.extraConfig = {
|
|
gtk-xft-antialias = "1";
|
|
gtk-xft-hinting = "1";
|
|
gtk-xft-hintstyle = "hintfull";
|
|
gtk-xft-rgba = "rgb";
|
|
gtk-application-prefer-dark-theme = "1";
|
|
};
|
|
};
|
|
|
|
xresources.extraConfig = builtins.readFile ./.Xdefaults;
|
|
|
|
services.network-manager-applet.enable = true;
|
|
systemd.user.services.network-manager-applet = {
|
|
Unit = {
|
|
BindsTo = ["sway-session.target"];
|
|
After = lib.mkForce ["sway-session.target"];
|
|
Requires = lib.mkForce [ ];
|
|
};
|
|
Install.WantedBy = [ "sway-session.target" ];
|
|
};
|
|
|
|
home.sessionVariables = sessionVariables;
|
|
systemd.user.sessionVariables = sessionVariables;
|
|
};
|
|
};
|
|
}
|