147 lines
3.5 KiB
Nix
147 lines
3.5 KiB
Nix
|
{ config, pkgs, ... }:
|
||
|
|
||
|
let
|
||
|
mainUser = "winston";
|
||
|
|
||
|
plymouthPkg = (pkgs.stdenv.mkDerivation {
|
||
|
name = "plymouth-theme-catppuccin";
|
||
|
|
||
|
src = pkgs.fetchFromGitHub {
|
||
|
owner = "catppuccin";
|
||
|
repo = "plymouth";
|
||
|
rev = "d4105cf336599653783c34c4a2d6ca8c93f9281c";
|
||
|
sha256 = "sha256-quBSH8hx3gD7y1JNWAKQdTk3CmO4t1kVo4cOGbeWlNE=";
|
||
|
};
|
||
|
|
||
|
installPhase = ''
|
||
|
mkdir -p "$out/share/plymouth/themes/"
|
||
|
cp -r "themes/"* "$out/share/plymouth/themes/"
|
||
|
themes=("mocha" "macchiato" "frappe" "latte")
|
||
|
for dir in "''${themes[@]}"; do
|
||
|
cat "themes/catppuccin-''${dir}/catppuccin-''${dir}.plymouth" | sed "s@\/usr\/@''${out}\/@" > "''${out}/share/plymouth/themes/catppuccin-''${dir}/catppuccin-''${dir}.plymouth"
|
||
|
done
|
||
|
'';
|
||
|
});
|
||
|
in
|
||
|
|
||
|
{
|
||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||
|
nixpkgs.config.allowUnfree = true;
|
||
|
programs.nix-ld.enable = true;
|
||
|
|
||
|
imports = [ ./hardware-configuration.nix ];
|
||
|
environment.systemPackages = [];
|
||
|
|
||
|
boot = {
|
||
|
kernelPackages = pkgs.linuxPackages_6_1;
|
||
|
loader.efi.canTouchEfiVariables = true;
|
||
|
loader.systemd-boot.enable = true;
|
||
|
|
||
|
# for nvidia & minimalism
|
||
|
loader.systemd-boot.consoleMode = "0";
|
||
|
|
||
|
# plymouth
|
||
|
plymouth = {
|
||
|
enable = true;
|
||
|
theme = "catppuccin-mocha";
|
||
|
themePackages = [ plymouthPkg ];
|
||
|
};
|
||
|
kernelParams = [ "quiet" "splash" "vt.global_cursor_default=0" ];
|
||
|
initrd.systemd.enable = true;
|
||
|
};
|
||
|
|
||
|
hardware = {
|
||
|
bluetooth.enable = true;
|
||
|
pulseaudio.enable = true;
|
||
|
};
|
||
|
|
||
|
networking = {
|
||
|
hostName = "copium";
|
||
|
networkmanager.enable = true;
|
||
|
firewall.enable = true;
|
||
|
};
|
||
|
|
||
|
time.timeZone = "Europe/Vienna";
|
||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||
|
|
||
|
programs.dconf.enable = true;
|
||
|
programs.steam.enable = true;
|
||
|
|
||
|
security.polkit.enable = true;
|
||
|
systemd = {
|
||
|
packages = [pkgs.polkit_gnome];
|
||
|
user.services.polkit-gnome-authentication-agent-1 = {
|
||
|
unitConfig = {
|
||
|
Description = "polkit-gnome-authentication-agent-1";
|
||
|
Wants = [ "graphical-session.target" ];
|
||
|
WantedBy = [ "graphical-session.target" ];
|
||
|
After = [ "graphical-session.target" ];
|
||
|
};
|
||
|
serviceConfig = {
|
||
|
Type = "simple";
|
||
|
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||
|
Restart = "on-failure";
|
||
|
RestartSec = 1;
|
||
|
TimeoutStopSec = 10;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
services= {
|
||
|
# mounting
|
||
|
gvfs.enable = true;
|
||
|
udisks2.enable = true;
|
||
|
devmon.enable = true;
|
||
|
|
||
|
# desktop
|
||
|
blueman.enable = true;
|
||
|
gnome.gnome-keyring.enable = true;
|
||
|
mullvad-vpn.enable = true;
|
||
|
pipewire.enable = true;
|
||
|
|
||
|
openssh.enable = true;
|
||
|
pcscd.enable = true;
|
||
|
|
||
|
xserver = {
|
||
|
enable = true;
|
||
|
desktopManager.xterm.enable = false;
|
||
|
displayManager = {
|
||
|
defaultSession = "none+i3";
|
||
|
gdm.enable = true;
|
||
|
};
|
||
|
libinput.enable = true;
|
||
|
windowManager.i3 = {
|
||
|
enable = true;
|
||
|
package = pkgs.i3-gaps;
|
||
|
extraPackages = with pkgs; [
|
||
|
dmenu
|
||
|
pavucontrol
|
||
|
pcmanfm
|
||
|
xclip
|
||
|
xdotool
|
||
|
];
|
||
|
};
|
||
|
xkbOptions = "caps:ctrl_modifier";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
virtualisation.podman = {
|
||
|
enable = true;
|
||
|
dockerCompat = true;
|
||
|
};
|
||
|
|
||
|
|
||
|
users.users."${mainUser}" = {
|
||
|
extraGroups = [ "wheel" ];
|
||
|
isNormalUser = true;
|
||
|
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILm0O46zW/XfVOSwz0okRWYeOAg+wCVkCtCAoVTpZsOh" ];
|
||
|
packages = [ pkgs.zsh ];
|
||
|
shell = pkgs.zsh;
|
||
|
};
|
||
|
|
||
|
system = {
|
||
|
copySystemConfiguration = true;
|
||
|
stateVersion = "22.11";
|
||
|
};
|
||
|
}
|