yay
This commit is contained in:
parent
a78b85b344
commit
f06bbcbdad
77
flake.lock
generated
77
flake.lock
generated
@ -41,6 +41,29 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-addons": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1743119709,
|
||||
"narHash": "sha256-tlJY7MfAena/yi3lmd7y7vQGpLma4Q1BLtO4dvzF/Vs=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "f8861a4b09a181dd88f6626d0202d9225ae85d65",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1688025799,
|
||||
@ -73,6 +96,40 @@
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1629284811,
|
||||
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils-plus": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1715533576,
|
||||
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
@ -90,25 +147,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils-plus": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1715533576,
|
||||
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -202,6 +240,7 @@
|
||||
"inputs": {
|
||||
"apple-silicon": "apple-silicon",
|
||||
"disko": "disko",
|
||||
"firefox-addons": "firefox-addons",
|
||||
"home-manager": "home-manager",
|
||||
"nixos-generators": "nixos-generators",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
|
@ -21,6 +21,10 @@
|
||||
url = "github:nix-community/nixos-generators";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
firefox-addons = {
|
||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs:
|
||||
@ -36,8 +40,6 @@
|
||||
|
||||
namespace = "reichardnix";
|
||||
};
|
||||
|
||||
# home-manager.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -1,15 +1,26 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
reichardnix = {
|
||||
programs.btop.enable = true;
|
||||
programs.direnv.enable = true;
|
||||
programs.ghostty.enable = true;
|
||||
programs.git.enable = true;
|
||||
programs.k9s.enable = true;
|
||||
programs.nvim.enable = true;
|
||||
programs.hyprland.enable = true;
|
||||
user = {
|
||||
enable = true;
|
||||
inherit (config.snowfallorg.user) name;
|
||||
};
|
||||
|
||||
programs.aws.enable = false;
|
||||
programs = {
|
||||
browsers.firefox = {
|
||||
enable = true;
|
||||
gpuAcceleration = true;
|
||||
hardwareDecoding = true;
|
||||
};
|
||||
|
||||
btop.enable = true;
|
||||
direnv.enable = true;
|
||||
ghostty.enable = true;
|
||||
git.enable = true;
|
||||
hyprland.enable = true;
|
||||
k9s.enable = true;
|
||||
nvim.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Global Packages
|
||||
@ -31,7 +42,5 @@
|
||||
.mode column
|
||||
'';
|
||||
|
||||
# Enable Home Manager & Self Manage
|
||||
home.stateVersion = "25.05";
|
||||
programs.home-manager.enable = true;
|
||||
home.stateVersion = "24.11";
|
||||
}
|
||||
|
12
lib/module/default.nix
Normal file
12
lib/module/default.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib) mkOption types;
|
||||
in
|
||||
rec {
|
||||
mkOpt =
|
||||
type: default: description:
|
||||
mkOption { inherit type default description; };
|
||||
|
||||
|
||||
mkBoolOpt = mkOpt types.bool;
|
||||
}
|
112
modules/home/programs/browsers/firefox/default.nix
Normal file
112
modules/home/programs/browsers/firefox/default.nix
Normal file
@ -0,0 +1,112 @@
|
||||
{ config, lib, pkgs, namespace, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
types
|
||||
mkIf
|
||||
mkMerge
|
||||
optionalAttrs
|
||||
;
|
||||
inherit (lib.${namespace}) mkBoolOpt mkOpt;
|
||||
|
||||
cfg = config.${namespace}.programs.browsers.firefox;
|
||||
in
|
||||
{
|
||||
imports = lib.snowfall.fs.get-non-default-nix-files ./.;
|
||||
|
||||
options.${namespace}.programs.browsers.firefox = with types; {
|
||||
enable = lib.mkEnableOption "Firefox";
|
||||
|
||||
extraConfig = mkOpt str "" "Extra configuration for the user profile JS file.";
|
||||
gpuAcceleration = mkBoolOpt false "Enable GPU acceleration.";
|
||||
hardwareDecoding = mkBoolOpt false "Enable hardware video decoding.";
|
||||
|
||||
policies = mkOpt attrs
|
||||
{
|
||||
CaptivePortal = false;
|
||||
DisableFirefoxStudies = true;
|
||||
DisableFormHistory = true;
|
||||
DisablePocket = true;
|
||||
DisableTelemetry = true;
|
||||
DisplayBookmarksToolbar = false;
|
||||
DontCheckDefaultBrowser = true;
|
||||
FirefoxHome = {
|
||||
Pocket = false;
|
||||
Snippets = false;
|
||||
};
|
||||
PasswordManagerEnabled = false;
|
||||
UserMessaging = {
|
||||
ExtensionRecommendations = false;
|
||||
SkipOnboarding = true;
|
||||
};
|
||||
ExtensionSettings = {
|
||||
# Block All
|
||||
# "*".installation_mode = "blocked";
|
||||
|
||||
# Bypass Paywalls
|
||||
"magnolia@12.34" = {
|
||||
install_url = "https://gitflic.ru/project/magnolia1234/bpc_uploads/blob/raw?file=bypass_paywalls_clean-latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
};
|
||||
Preferences = { };
|
||||
} "Policies to apply to firefox";
|
||||
|
||||
settings = mkOpt attrs { } "Settings to apply to the profile.";
|
||||
|
||||
extensions = mkOpt (with lib.types; listOf package)
|
||||
(with pkgs.firefox-addons; [
|
||||
bitwarden
|
||||
darkreader
|
||||
kagi-search
|
||||
sponsorblock
|
||||
ublock-origin
|
||||
|
||||
# bypass-paywalls-clean
|
||||
]) "Extensions to install";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
|
||||
inherit (cfg) policies;
|
||||
|
||||
profiles = {
|
||||
${config.${namespace}.user.name} = {
|
||||
inherit (cfg) extraConfig extensions;
|
||||
inherit (config.${namespace}.user) name;
|
||||
|
||||
id = 0;
|
||||
|
||||
settings = mkMerge [
|
||||
cfg.settings
|
||||
{
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"browser.aboutwelcome.enabled" = false;
|
||||
"browser.sessionstore.warnOnQuit" = true;
|
||||
"browser.shell.checkDefaultBrowser" = false;
|
||||
"general.smoothScroll.msdPhysics.enabled" = true;
|
||||
"intl.accept_languages" = "en-US,en";
|
||||
|
||||
# "devtools.chrome.enabled" = true;
|
||||
# "xpinstall.signatures.required" = false;
|
||||
}
|
||||
(optionalAttrs cfg.gpuAcceleration {
|
||||
"dom.webgpu.enabled" = true;
|
||||
"gfx.webrender.all" = true;
|
||||
"layers.gpu-process.enabled" = true;
|
||||
"layers.mlgpu.enabled" = true;
|
||||
})
|
||||
(optionalAttrs cfg.hardwareDecoding {
|
||||
"media.ffmpeg.vaapi.enabled" = true;
|
||||
"media.gpu-process-decoder" = true;
|
||||
"media.hardware-video-decoding.enabled" = true;
|
||||
})
|
||||
];
|
||||
|
||||
# userChrome = ./chrome/userChrome.css;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -20,7 +20,7 @@ in
|
||||
SHELL="$BASH"
|
||||
PATH=~/.bin:$PATH
|
||||
eval "$(thefuck --alias)"
|
||||
set -o vi
|
||||
set -o vi || true
|
||||
bind "set show-mode-in-prompt on"
|
||||
fastfetch
|
||||
'';
|
||||
|
@ -26,6 +26,9 @@ in
|
||||
}
|
||||
];
|
||||
extraConfig = {
|
||||
user = {
|
||||
email = "evan@reichard.io";
|
||||
};
|
||||
core = {
|
||||
autocrlf = "input";
|
||||
safecrlf = "true";
|
||||
|
@ -11,6 +11,7 @@ in
|
||||
config = mkIf cfg.enable {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
# systemd.enable = false;
|
||||
extraConfig = builtins.readFile ./config/hyprland.conf;
|
||||
};
|
||||
|
||||
|
51
modules/home/user/default.nix
Normal file
51
modules/home/user/default.nix
Normal file
@ -0,0 +1,51 @@
|
||||
{ config, lib, pkgs, namespace, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
types
|
||||
mkIf
|
||||
mkDefault
|
||||
mkMerge
|
||||
;
|
||||
inherit (lib.${namespace}) mkOpt;
|
||||
|
||||
cfg = config.${namespace}.user;
|
||||
|
||||
home-directory =
|
||||
if cfg.name == null then
|
||||
null
|
||||
else if pkgs.stdenv.hostPlatform.isDarwin then
|
||||
"/Users/${cfg.name}"
|
||||
else
|
||||
"/home/${cfg.name}";
|
||||
in
|
||||
{
|
||||
options.${namespace}.user = {
|
||||
enable = mkOpt types.bool false "Whether to configure the user account.";
|
||||
email = mkOpt types.str "evan@reichard.io" "The email of the user.";
|
||||
fullName = mkOpt types.str "Evan Reichard" "The full name of the user.";
|
||||
home = mkOpt (types.nullOr types.str) home-directory "The user's home directory.";
|
||||
name = mkOpt (types.nullOr types.str) config.snowfallorg.user.name "The user account.";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
{
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.name != null;
|
||||
message = "${namespace}.user.name must be set";
|
||||
}
|
||||
{
|
||||
assertion = cfg.home != null;
|
||||
message = "${namespace}.user.home must be set";
|
||||
}
|
||||
];
|
||||
|
||||
home = {
|
||||
homeDirectory = mkDefault cfg.home;
|
||||
username = mkDefault cfg.name;
|
||||
};
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
}
|
||||
]);
|
||||
}
|
33
modules/nixos/display-managers/sddm/default.nix
Normal file
33
modules/nixos/display-managers/sddm/default.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{ config, lib, pkgs, namespace, ... }:
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
|
||||
cfg = config.${namespace}.display-managers.sddm;
|
||||
in
|
||||
{
|
||||
options.${namespace}.display-managers.sddm = {
|
||||
enable = lib.mkEnableOption "sddm";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
catppuccin-sddm
|
||||
];
|
||||
|
||||
environment.sessionVariables = {
|
||||
QT_SCREEN_SCALE_FACTORS = "2";
|
||||
QT_FONT_DPI = "192";
|
||||
};
|
||||
|
||||
services = {
|
||||
displayManager = {
|
||||
sddm = {
|
||||
inherit (cfg) enable;
|
||||
package = pkgs.kdePackages.sddm;
|
||||
theme = "catppuccin-mocha";
|
||||
wayland.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
8
overlays/firefox-addons/default.nix
Normal file
8
overlays/firefox-addons/default.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{ inputs, ... }:
|
||||
final: _prev: {
|
||||
firefox-addons = import inputs.firefox-addons {
|
||||
inherit (final) fetchurl;
|
||||
inherit (final) lib;
|
||||
inherit (final) stdenv;
|
||||
};
|
||||
}
|
1
systems/aarch64-linux/mbp-nixos/.gitignore
vendored
1
systems/aarch64-linux/mbp-nixos/.gitignore
vendored
@ -1 +0,0 @@
|
||||
firmware
|
@ -10,6 +10,13 @@
|
||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||
time.timeZone = "America/New_York";
|
||||
|
||||
# Enable SSDM
|
||||
reichardnix = {
|
||||
display-managers.sddm = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Boot Loader Config
|
||||
boot.loader = {
|
||||
systemd-boot.enable = true;
|
||||
@ -37,37 +44,20 @@
|
||||
bluetooth.powerOnBoot = true;
|
||||
};
|
||||
|
||||
# # User Config
|
||||
# users.users.evanreichard = {
|
||||
# isNormalUser = true;
|
||||
# home = "/home/evanreichard";
|
||||
# extraGroups = [ "wheel" "networkmanager" "video" ];
|
||||
# shell = pkgs.bash;
|
||||
# };
|
||||
|
||||
# Home Manager Config
|
||||
# home-manager = {
|
||||
# useGlobalPkgs = true;
|
||||
# useUserPackages = true;
|
||||
# # users.evanreichard = import ../home-manager/home.nix;
|
||||
# };
|
||||
|
||||
# HyprLand Config
|
||||
programs.hyprland.enable = true;
|
||||
# environment.sessionVariables.WLR_DRM_DEVICES = "/dev/dri/card0";
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
};
|
||||
|
||||
# System Packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
ghostty
|
||||
firefox
|
||||
htop
|
||||
tmux
|
||||
vim
|
||||
wget
|
||||
|
||||
# mesa-asahi-edge
|
||||
# mesa
|
||||
# hyprlock
|
||||
# hypridle
|
||||
];
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
|
BIN
systems/aarch64-linux/mbp-nixos/firmware/all_firmware.tar.gz
Executable file
BIN
systems/aarch64-linux/mbp-nixos/firmware/all_firmware.tar.gz
Executable file
Binary file not shown.
BIN
systems/aarch64-linux/mbp-nixos/firmware/kernelcache.release.mac14j
Executable file
BIN
systems/aarch64-linux/mbp-nixos/firmware/kernelcache.release.mac14j
Executable file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user