added hypridle, hyprlock, and sddm + sddm-theme-corners

This commit is contained in:
Emile Clark-Boman 2024-11-08 14:26:30 +10:00
parent aca0bcc993
commit 97b344eb03
11 changed files with 445 additions and 196 deletions

View file

@ -1,38 +1,31 @@
{
{
pkgs,
inputs,
...
}:
let
...
}: let
home-manager = builtins.fetchTarball {
url = "https://github.com/nix-community/home-manager/archive/master.tar.gz";
sha256 = "0kg9iaixqygpncw7avgh1grwyjgnfc9i7k9pk8hc4xrvr8jv2l3c";
url = "https://github.com/nix-community/home-manager/archive/master.tar.gz";
sha256 = "0kg9iaixqygpncw7avgh1grwyjgnfc9i7k9pk8hc4xrvr8jv2l3c";
};
in
{
in {
imports = [
./hardware-configuration.nix
(import "${home-manager}/nixos")
inputs.spicetify-nix.nixosModules.default
(import "${home-manager}/nixos")
inputs.spicetify-nix.nixosModules.default
];
programs.spicetify =
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{
enable = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names)
];
#theme = spicePkgs.themes.catppuccin;
#colorScheme = "mocha";
};
programs.spicetify = let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in {
enable = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names)
];
#theme = spicePkgs.themes.catppuccin;
#colorScheme = "mocha";
};
# Use the systemd-boot EFI boot loader.
# TODO: use GRUB2 instead
@ -61,12 +54,11 @@ in
#useXkbConfig = true; # use xkb.options in tty.
};
# ----- NETWORKING SECTION -----
networking.hostName = "myputer";
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
@ -74,14 +66,13 @@ in
# Or disable the firewall altogether.
networking.firewall.enable = true;
# ----- SERVICES -----
services = {
# Set display manager (login screen)
displayManager = {
sddm = {
enable = true;
theme = "${import ./sddm-theme.nix { inherit pkgs; }}";
theme = "${import ./sddm-theme.nix {inherit pkgs;}}";
# enable experimental sddm support for wayland
wayland.enable = true;
};
@ -100,78 +91,78 @@ in
security.sudo.wheelNeedsPassword = false;
users = {
# using fish as the login shell tends
# to go very poorly because it isn't
# POSIX compliant, so we'll just use
# simple Bash then :)
# to go very poorly because it isn't
# POSIX compliant, so we'll just use
# simple Bash then :)
defaultUserShell = pkgs.bash;
users = {
# just me fr (personal account)
me = {
isNormalUser = true;
extraGroups = [ "wheel" ];
shell = pkgs.bash; #pkgs.fish
packages = with pkgs; [
firefox
nitch
starfetch
tldr
];
};
# programming/development account
dev = {
isNormalUser = true;
extraGroups = [ "wheel" ];
shell = pkgs.bash; #pkgs.zsh
packages = with pkgs; [
];
};
# user for my professional jobs and stuff
ae = {
isNormalUser = true;
extraGroups = [ "wheel" ];
shell = pkgs.bash; #pkgs.fish
packages = with pkgs; [
];
};
};
users = {
# just me fr (personal account)
me = {
isNormalUser = true;
extraGroups = ["wheel"];
shell = pkgs.bash; #pkgs.fish
packages = with pkgs; [
firefox
nitch
starfetch
tldr
];
};
# programming/development account
dev = {
isNormalUser = true;
extraGroups = ["wheel"];
shell = pkgs.bash; #pkgs.zsh
packages = with pkgs; [
];
};
# user for my professional jobs and stuff
ae = {
isNormalUser = true;
extraGroups = ["wheel"];
shell = pkgs.bash; #pkgs.fish
packages = with pkgs; [
];
};
};
};
home-manager = {
users.me = import ../../homes/me;
sharedModules = [
#inputs.nixcord.homeManagerModules.nixcord
#inputs.nixvim.homeManagerModules.nixvim
];
#inputs.nixcord.homeManagerModules.nixcord
#inputs.nixvim.homeManagerModules.nixvim
];
};
# ---- SYSTEM PACKAGES -----
environment.systemPackages = with pkgs; [
# User Environment
inputs.swww.packages.${pkgs.system}.swww
inputs.swww.packages.${pkgs.system}.swww
#vesktop
helvum
easyeffects
ani-cli
wl-clipboard # clipboard for wayland
helvum
easyeffects
ani-cli
wl-clipboard # clipboard for wayland
python311 # I use 3.11 since it's in a pretty stable state now
poetry # python dependency management and packaging
python311 # I use 3.11 since it's in a pretty stable state now
poetry # python dependency management and packaging
# fish plugins
grc # colorise command outputs
grc # colorise command outputs
httpie
curlie
zoxide
doggo
curlie
zoxide
doggo
# Pretty necessary
git
brightnessctl
acpi
acpi
# Unix Commands
wget
@ -181,19 +172,18 @@ in
# Enable the use of certain programs
programs = {
hyprland = {
enable = true;
# set the flake package
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
enable = true;
# set the flake package
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# make sure to also set the portal package, so that they are in sync
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
xwayland.enable = true;
#systemd.enable = true;
};
#systemd.enable = true;
};
zsh.enable = true;
fish.enable = true;
fish.enable = true;
neovim = {
enable = true;
@ -202,77 +192,76 @@ in
vimAlias = true;
configure = {
customRC = ''
set number
set tabstop=4
set shiftwidth=4
set number
set tabstop=4
set shiftwidth=4
'';
};
};
# I want to use fish as my login shell but it always goes terrible
# cause it isn't POSIX compliant, so instead Bash is my login and
# will just exec fish (^-^)
bash = {
# cause it isn't POSIX compliant, so instead Bash is my login and
# will just exec fish (^-^)
bash = {
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
'';
};
};
# ----- FONTS -----
fonts = {
enableDefaultPackages = true; # no clue what this line does tbh
packages = with pkgs; [
(nerdfonts.override { fonts = [ "Cousine" # its already i guess
"Iosevka" # nah nah
"IosevkaTerm" # big nah
"CascadiaCode" # potential
"FiraCode" # potential
"JetBrainsMono" # for my rofi theme
"Hasklig"
"Hack"]; })
# texlive maintains a noto-emoji flake
texlivePackages.noto-emoji
];
(nerdfonts.override {
fonts = [
"Cousine" # its already i guess
"Iosevka" # nah nah
"IosevkaTerm" # big nah
"CascadiaCode" # potential
"FiraCode" # potential
"JetBrainsMono" # for my rofi theme
"Hasklig"
"Hack"
];
})
fontconfig = {
defaultFonts = {
serif = [ "Iosevka" ]; # TODO: package Iosevka Etoile since Iosevka isn't a serif font
sansSerif = [ "Iosevka "];
monospace = [ "Cousine" ];
emoji = [ "Noto Emoji" ];
};
};
# texlive maintains a noto-emoji flake
texlivePackages.noto-emoji
];
fontconfig = {
defaultFonts = {
serif = ["Iosevka"]; # TODO: package Iosevka Etoile since Iosevka isn't a serif font
sansSerif = ["Iosevka "];
monospace = ["Cousine"];
emoji = ["Noto Emoji"];
};
};
};
# ----- STYLIX -----
#stylix = {
# enable = true;
# image = pkgs.fetchurl {
# url = "https://www.pixelstalk.net/wp-content/uploads/2016/05/Epic-Anime-Awesome-Wallpapers.jpg";
# sha256 = "enQo3wqhgf0FEPHj2coOCvo7DuZv+x5rL/WIo4qPI50=";
# };
#
#
# # Stylix will automatically theme applications
# #autoEnable = true;
# #image = ../../wallpapers/wall.png;
# #image = "/home/me/nixdots/wallpapers/ghibli-esque-valley.png";
#};
# Enable the new CLI commands and the flakes as experimental features
nix.settings.experimental-features = [
"nix-command"
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
@ -287,16 +276,11 @@ in
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Enable OpenGL
hardware = {
graphics.enable = true;
};
# DO NOT MODIFY
system.stateVersion = "24.05"; # Did you read the comment?
}