feat: grub and greetd setups

grub: changed theme to distro-grub-themes

kernel: upgraded to linux zen kernel

greetd: configured tuigreet with greetd to replace sddm
This commit is contained in:
Zhongheng Liu 2024-08-20 11:18:51 +08:00
commit 3084dbcb7f
No known key found for this signature in database
5 changed files with 124 additions and 39 deletions

View file

@ -9,7 +9,8 @@
}: {
imports = [
../common/variables.nix
#./greetd-sway.nix
./greetd.nix
./grub.nix
./nvidia.nix
./fonts.nix
./services/laptop.preset.nix
@ -55,33 +56,21 @@
};
boot = {
kernelPackages = pkgs.linuxPackages_latest;
kernelPackages = pkgs.linuxPackages_zen;
supportedFilesystems = ["ntfs"];
loader = {
efi.canTouchEfiVariables = true;
grub = {
enable = true;
useOSProber = true;
efiSupport = true;
fsIdentifier = "label";
devices = ["nodev"];
extraEntries = ''
menuentry "Reboot" {
reboot
}
menuentry "Poweroff" {
halt
}
'';
};
};
};
security.polkit.enable = true;
environment.systemPackages = with pkgs; [
libsForQt5.qt5.qtquickcontrols2
libsForQt5.qt5.qtgraphicaleffects
];
time.hardwareClockInLocalTime = true;
services = {
displayManager.sddm = {
enable = true;
wayland.enable = true;
};
#displayManager.sddm = {
# enable = true;
# wayland.enable = true;
# theme = "${import ./sddm-theme.nix {inherit pkgs;}}";
#};
automatic-timezoned.enable = true;
openssh = {
enable = true;

View file

@ -1,15 +0,0 @@
{
pkgs,
config,
lib,
...
}: {
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.sway}/bin/sway";
};
};
};
}

33
nixos/greetd.nix Normal file
View file

@ -0,0 +1,33 @@
{
pkgs,
config,
lib,
...
}: let
tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet";
in {
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${tuigreet} --time --remember --cmd Hyprland";
user = "greeter";
};
};
};
# this is a life saver.
# literally no documentation about this anywhere.
# might be good to write about this...
# https://www.reddit.com/r/NixOS/comments/u0cdpi/tuigreet_with_xmonad_how/
systemd.services.greetd.serviceConfig = {
Type = "idle";
StandardInput = "tty";
StandardOutput = "tty";
StandardError = "journal"; # Without this errors will spam on screen
# Without these bootlogs will spam on screen
TTYReset = true;
TTYVHangup = true;
TTYVTDisallocate = true;
};
}

64
nixos/grub.nix Normal file
View file

@ -0,0 +1,64 @@
{
config,
pkgs,
...
}: let
distro-grub-themes = pkgs.stdenv.mkDerivation {
pname = "distro-grub-themes";
version = "3.1";
src = pkgs.fetchFromGitHub {
owner = "AdisonCavani";
repo = "distro-grub-themes";
rev = "v3.1";
hash = "sha256-ZcoGbbOMDDwjLhsvs77C7G7vINQnprdfI37a9ccrmPs=";
};
installPhase = "cp -r customize/nixos $out";
};
xenlism-grub-themes = pkgs.stdenv.mkDerivation {
pname = "xenlism-grub-themes";
version = "1.0";
src = pkgs.fetchFromGitHub {
owner = "xenlism";
repo = "Grub-themes";
rev = "40ac048df9aacfc053c515b97fcd24af1a06762f";
hash = "sha256-ProTKsFocIxWAFbYgQ46A+GVZ7mUHXxZrvdiPJqZJ6I=";
};
installPhase = "cp -r xenlism-grub-1080p-nixos/Xenlism-Nixos $out";
};
in {
environment.systemPackages = with pkgs; [hack-font];
boot.supportedFilesystems = ["ntfs"];
#fileSystems."/mnt/winsys" = {
# device = "/dev/nvme0n1p5";
# fsType = "ntfs-3g";
# options = [ "rw" "uid=1000" ];
#};
#fileSystems."/mnt/windata" = {
# device = "/dev/nvme0n1p3";
# fsType = "ntfs-3g";
# options = [ "rw" "uid=1000" ];
#};
boot.loader = {
efi = {
canTouchEfiVariables = true;
};
grub = {
enable = true;
efiSupport = true;
device = "nodev";
fsIdentifier = "label";
devices = ["nodev"];
extraEntries = ''
menuentry "Reboot" {
reboot
}
menuentry "Poweroff" {
halt
}
'';
useOSProber = true;
configurationLimit = 10;
theme = xenlism-grub-themes;
};
};
}

14
nixos/sddm-theme.nix Normal file
View file

@ -0,0 +1,14 @@
{pkgs, ...}:
pkgs.stdenv.mkDerivation {
name = "sddm-theme";
src = pkgs.fetchFromGitHub {
owner = "stepanzubkov";
repo = "where-is-my-sddm-theme";
rev = "4e55b6a549b559e1d7d21b84e301e427d5b8d005";
sha256 = "126fdmgw6d8iw0rx8jcwvjzri3jd7x6dbp5y8h11ri2csya6s5wp";
};
installPhase = ''
mkdir -p $out
cp -R ./where_is_my_sddm_theme_qt5/* $out/
'';
}