yay
This commit is contained in:
parent
a78b85b344
commit
f06bbcbdad
77
flake.lock
generated
77
flake.lock
generated
@ -41,6 +41,29 @@
|
|||||||
"type": "github"
|
"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": {
|
"flake-compat": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1688025799,
|
"lastModified": 1688025799,
|
||||||
@ -73,6 +96,40 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"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": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
@ -90,25 +147,6 @@
|
|||||||
"type": "github"
|
"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": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -202,6 +240,7 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"apple-silicon": "apple-silicon",
|
"apple-silicon": "apple-silicon",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
|
"firefox-addons": "firefox-addons",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixos-generators": "nixos-generators",
|
"nixos-generators": "nixos-generators",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
@ -21,6 +21,10 @@
|
|||||||
url = "github:nix-community/nixos-generators";
|
url = "github:nix-community/nixos-generators";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
firefox-addons = {
|
||||||
|
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs:
|
outputs = inputs:
|
||||||
@ -36,8 +40,6 @@
|
|||||||
|
|
||||||
namespace = "reichardnix";
|
namespace = "reichardnix";
|
||||||
};
|
};
|
||||||
|
|
||||||
# home-manager.enable = true;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,15 +1,26 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, config, ... }:
|
||||||
{
|
{
|
||||||
reichardnix = {
|
reichardnix = {
|
||||||
programs.btop.enable = true;
|
user = {
|
||||||
programs.direnv.enable = true;
|
enable = true;
|
||||||
programs.ghostty.enable = true;
|
inherit (config.snowfallorg.user) name;
|
||||||
programs.git.enable = true;
|
};
|
||||||
programs.k9s.enable = true;
|
|
||||||
programs.nvim.enable = true;
|
|
||||||
programs.hyprland.enable = true;
|
|
||||||
|
|
||||||
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
|
# Global Packages
|
||||||
@ -31,7 +42,5 @@
|
|||||||
.mode column
|
.mode column
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Enable Home Manager & Self Manage
|
home.stateVersion = "24.11";
|
||||||
home.stateVersion = "25.05";
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
}
|
}
|
||||||
|
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"
|
SHELL="$BASH"
|
||||||
PATH=~/.bin:$PATH
|
PATH=~/.bin:$PATH
|
||||||
eval "$(thefuck --alias)"
|
eval "$(thefuck --alias)"
|
||||||
set -o vi
|
set -o vi || true
|
||||||
bind "set show-mode-in-prompt on"
|
bind "set show-mode-in-prompt on"
|
||||||
fastfetch
|
fastfetch
|
||||||
'';
|
'';
|
||||||
|
@ -26,6 +26,9 @@ in
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
|
user = {
|
||||||
|
email = "evan@reichard.io";
|
||||||
|
};
|
||||||
core = {
|
core = {
|
||||||
autocrlf = "input";
|
autocrlf = "input";
|
||||||
safecrlf = "true";
|
safecrlf = "true";
|
||||||
|
@ -11,6 +11,7 @@ in
|
|||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
# systemd.enable = false;
|
||||||
extraConfig = builtins.readFile ./config/hyprland.conf;
|
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";
|
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||||
time.timeZone = "America/New_York";
|
time.timeZone = "America/New_York";
|
||||||
|
|
||||||
|
# Enable SSDM
|
||||||
|
reichardnix = {
|
||||||
|
display-managers.sddm = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Boot Loader Config
|
# Boot Loader Config
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
@ -37,37 +44,20 @@
|
|||||||
bluetooth.powerOnBoot = true;
|
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
|
# HyprLand Config
|
||||||
programs.hyprland.enable = true;
|
programs.hyprland = {
|
||||||
# environment.sessionVariables.WLR_DRM_DEVICES = "/dev/dri/card0";
|
enable = true;
|
||||||
|
withUWSM = true;
|
||||||
|
};
|
||||||
|
|
||||||
# System Packages
|
# System Packages
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
ghostty
|
ghostty
|
||||||
firefox
|
|
||||||
htop
|
htop
|
||||||
tmux
|
tmux
|
||||||
vim
|
vim
|
||||||
wget
|
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