Compare commits

..

No commits in common. "f9f9abf2794e53248489186566172bb2a7aab619" and "0d098f3823f9f79263c2ed3f82e41fc1f8db333e" have entirely different histories.

47 changed files with 300 additions and 323 deletions

View file

@ -74,14 +74,6 @@ genFirefoxAddons:
secret name:
cd secrets && agenix --edit {{name}}.age --identity ~/.ssh/marley@nyx && cd -
[group('maintainence')]
check:
nix flake check
[group('maintainence')]
checkall:
nix flake check --all-systems
alias s := search
search this:
nh search {{this}}

View file

@ -1,4 +1,4 @@
{marleylib, ...}: let
let
my = {
name = "marley";
fullName = "Marley Rae";
@ -6,20 +6,17 @@
email = "marley@punkfairie.net";
};
in {
config = {
marleycfg.my = my;
marleycfg.my = my;
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
backupFileExtension = "bak";
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
backupFileExtension = "bak";
users."${my.name}" = {
home.username = my.name;
};
sharedModules = [../home];
extraSpecialArgs = {inherit marleylib;};
users."${my.name}" = {
home.username = my.name;
};
sharedModules = [../home];
};
}

View file

@ -50,10 +50,6 @@
};
};
nixpkgs.config = {
allowUnfree = true;
};
# More useful repl.
environment.systemPackages = let
nrepl =

View file

@ -1,22 +1,20 @@
{pkgs, ...}: {
config = {
stylix = {
enable = true;
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine.yaml";
override = {slug = "rose-pine";};
base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine.yaml";
override = {slug = "rose-pine";};
image = ./wallpaper.png;
image = ./wallpaper.png;
fonts = {
monospace = {
package = pkgs.maple-mono-NF;
name = "Maple Mono";
};
fonts = {
monospace = {
package = pkgs.maple-mono-NF;
name = "Maple Mono";
};
sizes = {
terminal = 11;
};
sizes = {
terminal = 11;
};
};
};

View file

@ -1,7 +1,7 @@
{
imports = [
./home.nix
./nix.nix
./stylix.nix
./gtk.nix
./qt.nix
];
}

View file

@ -0,0 +1,9 @@
{
nix = {
settings = {
trusted-users = [
"@darwin"
];
};
};
}

View file

@ -3,11 +3,8 @@
inputs.agenix.darwinModules.default
../base
./base
./home.nix
./stylix.nix
./system
./programs
];
}

View file

@ -1,6 +0,0 @@
{
imports = [
./homebrew.nix
./nix.nix
];
}

View file

@ -1,11 +0,0 @@
{
config = {
nix = {
settings = {
trusted-users = [
"@darwin"
];
};
};
};
}

View file

@ -5,11 +5,8 @@
./options
./home-manager.nix
./profile.nix
./system
./shell
./programs
./profiles.nix
];
}

View file

@ -1,10 +1,8 @@
{
config = {
programs.home-manager.enable = true;
programs.home-manager.enable = true;
home.language.base = "en_US.UTF-8";
home.language.base = "en_US.UTF-8";
# Autostart wanted systemd services on Linux.
systemd.user.startServices = true;
};
# Autostart wanted systemd services on Linux.
systemd.user.startServices = true;
}

View file

@ -1,15 +1,13 @@
{osConfig, ...}: let
cfg = osConfig.marleycfg;
in {
config = {
marleycfg = {
profiles = {
inherit (cfg.profiles) desktop server;
};
marleycfg = {
profiles = {
inherit (cfg.profiles) desktop server;
};
my = {
inherit (cfg.my) name fullName username email git;
};
my = {
inherit (cfg.my) name fullName username email git;
};
};
}

View file

@ -8,7 +8,7 @@
inherit (marleylib.module) enabled;
in {
marleyos = lib.mkMerge [
marleyos =
# Universal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{
programs = {
@ -18,10 +18,9 @@ in {
#
#
# Graphical Desktop - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(lib.optionalAttrs cfg.desktop {})
// (lib.optionalAttrs cfg.desktop {})
#
#
# Server - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(lib.optionalAttrs cfg.server {})
];
// (lib.optionalAttrs cfg.server {});
}

17
modules/home/session.nix Normal file
View file

@ -0,0 +1,17 @@
{config, ...}: {
config.home = {
sessionPath = [
"${config.home.homeDirectory}/.local/bin"
];
sessionVariables = {
HACK = "${config.home.homeDirectory}/hackin";
};
shellAbbrs = {
c = "clear";
e = "${config.home.sessionVariables.EDITOR}";
v = "${config.home.sessionVariables.EDITOR}";
};
};
}

View file

@ -1,11 +0,0 @@
{
lib,
config,
...
}: {
config = lib.mkIf config.marleycfg.profiles.desktop {
qt = {
enable = true;
};
};
}

View file

@ -1,21 +0,0 @@
{
lib,
pkgs,
...
}: {
config = {
stylix = {
iconTheme = {
package = pkgs.kora-icon-theme;
dark = "kora";
light = "kora-light-panel";
};
fonts.sizes.terminal = lib.mkIf pkgs.stdenv.isDarwin 14;
};
home.packages = with pkgs; [
kora-icon-theme
];
};
}

View file

@ -1,6 +0,0 @@
{
imports = [
./session.nix
./xdg.nix
];
}

View file

@ -1,34 +0,0 @@
{
config,
pkgs,
...
}: let
inherit (config.marleycfg) profiles;
in {
config = {
home = {
sessionPath = [
"${config.home.homeDirectory}/.local/bin"
];
sessionVariables = {
HACK = "${config.home.homeDirectory}/hackin";
};
shellAbbrs = {
c = "clear";
e = "${config.home.sessionVariables.EDITOR}";
v = "${config.home.sessionVariables.EDITOR}";
};
packages = [
config.marleycfg.apps.pinentry
];
};
marleycfg.apps.pinentry =
if profiles.desktop
then pkgs.pinentry-gtk2
else pkgs.pinentry-curses;
};
}

View file

@ -0,0 +1,17 @@
{
pkgs,
lib,
config,
...
}: {
boot = {
kernelPackages =
lib.mkIf (!config.marleycfg.profiles.server)
pkgs.linuxPackages_xanmod;
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
};
}

View file

@ -1,8 +1,12 @@
{
imports = [
./boot.nix
./fonts.nix
./home.nix
./i18n.nix
./networking.nix
./nix.nix
./stylix.nix
./users.nix
];
}

View file

@ -0,0 +1,10 @@
{pkgs, ...}: {
fonts = {
enableDefaultPackages = true;
packages = with pkgs; [
corefonts
noto-fonts
];
};
}

View file

@ -0,0 +1,14 @@
{
config,
inputs,
...
}: let
inherit (config.marleycfg.my) name;
in {
imports = [inputs.home-manager.nixosModules.home-manager];
config = {
home-manager.users."${name}" = {
home.homeDirectory = "/home/${name}";
};
};
}

View file

@ -0,0 +1,15 @@
{config, ...}: {
time.timeZone =
if config.marleycfg.profiles.server
then "UTC"
else "America/Los_Angeles";
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_MESSAGES = "en_US.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
};
}

View file

@ -0,0 +1,16 @@
{
lib,
config,
...
}: {
networking = {
networkmanager.enable = true;
firewall = {
enable = true;
allowedTCPPorts = [80 443];
};
wireless.enable = lib.mkIf config.marleycfg.profiles.server false;
};
}

View file

@ -0,0 +1,9 @@
{
nix = {
settings = {
trusted-users = [
"@wheel"
];
};
};
}

View file

@ -1,15 +1,11 @@
{
inputs,
lib,
pkgs,
...
}: {
imports = [inputs.stylix.nixosModules.stylix];
config = {
# whatsapp-emoji-font is unfree.
nixpkgs.config.allowUnfree = lib.mkForce true;
stylix = {
enable = true;

View file

@ -0,0 +1,42 @@
{
lib,
config,
...
}: let
my = {
name = "marley";
username = "punkfairie";
fullName = "Marley Rae";
email = "marley@punkfairie.net";
};
desktopPass = "$y$j9T$ztWf9WeUCENC2T12qS4mi1$51ihV/5cQ8mdJJrNe7MMguk4hPB61S5xHawsfi.1hL3";
serverPass = "$y$j9T$8hA7OWZsdQMHqYIy8LkYQ1$hFeP2ak3QA4FtoIYIwqPg10//ZOSZrAw1PzJj0PuGSA";
in {
marleycfg.my = {
inherit (my) name username fullName email;
};
users = {
mutableUsers = false;
groups = {
"compat" = {
gid = 1000;
};
};
users."${my.name}" = {
isNormalUser = true;
description = my.fullName;
extraGroups =
["wheel" "compat"]
++ (lib.optional config.networking.networkmanager.enable "networkmanager")
++ (lib.optional config.virtualisation.docker.enable "docker");
hashedPassword =
if config.marleycfg.profiles.server
then serverPass
else desktopPass;
};
};
}

View file

@ -4,12 +4,10 @@
../base
./base
./hardware
./system
./shell
./users.nix
./programs
./services

View file

@ -3,9 +3,7 @@
./audio.nix
./mounts
./nvidia.nix
];
config = {
services.printing.enable = true;
};
./misc.nix # try to use this as little as possible
];
}

View file

@ -0,0 +1,3 @@
{
services.printing.enable = true;
}

View file

@ -1,9 +1,7 @@
{
config = {
boot.supportedFilesystems = {
ntfs = true;
};
services.udisks2.enable = true;
boot.supportedFilesystems = {
ntfs = true;
};
services.udisks2.enable = true;
}

View file

@ -8,7 +8,7 @@
inherit (marleylib.module) enabled;
in {
marleyos = lib.mkMerge [
marleyos =
# Universal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{
programs = {
@ -24,7 +24,7 @@ in {
#
#
# Graphical Desktop - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(lib.optionalAttrs cfg.desktop {
// (lib.optionalAttrs cfg.desktop {
mounts.babeshare = enabled;
shell = {
@ -40,10 +40,9 @@ in {
#
#
# Server - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(lib.optionalAttrs cfg.server {
// (lib.optionalAttrs cfg.server {
services = {
prometheus = enabled;
};
})
];
});
}

View file

@ -1,8 +1,5 @@
{
imports = [
./stylix.nix
./fonts.nix
./hyprlock.nix
./ly.nix
./niri.nix

View file

@ -1,12 +0,0 @@
{pkgs, ...}: {
config = {
fonts = {
enableDefaultPackages = true;
packages = with pkgs; [
corefonts
noto-fonts
];
};
};
}

View file

@ -1,19 +0,0 @@
{
pkgs,
lib,
config,
...
}: {
config = {
boot = {
kernelPackages =
lib.mkIf (!config.marleycfg.profiles.server)
pkgs.linuxPackages_xanmod;
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
};
};
}

View file

@ -1,17 +0,0 @@
{config, ...}: {
config = {
time.timeZone =
if config.marleycfg.profiles.server
then "UTC"
else "America/Los_Angeles";
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_MESSAGES = "en_US.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
};
};
}

View file

@ -1,18 +0,0 @@
{
lib,
config,
...
}: {
config = {
networking = {
networkmanager.enable = true;
firewall = {
enable = true;
allowedTCPPorts = [80 443];
};
wireless.enable = lib.mkIf config.marleycfg.profiles.server false;
};
};
}

View file

@ -1,11 +0,0 @@
{
config = {
nix = {
settings = {
trusted-users = [
"@wheel"
];
};
};
};
}

View file

@ -1,51 +0,0 @@
{
inputs,
lib,
config,
...
}: let
my = {
name = "marley";
username = "punkfairie";
fullName = "Marley Rae";
email = "marley@punkfairie.net";
};
desktopPass = "$y$j9T$ztWf9WeUCENC2T12qS4mi1$51ihV/5cQ8mdJJrNe7MMguk4hPB61S5xHawsfi.1hL3";
serverPass = "$y$j9T$8hA7OWZsdQMHqYIy8LkYQ1$hFeP2ak3QA4FtoIYIwqPg10//ZOSZrAw1PzJj0PuGSA";
in {
imports = [inputs.home-manager.nixosModules.home-manager];
config = {
marleycfg.my = {
inherit (my) name username fullName email;
};
users = {
mutableUsers = false;
groups = {
"compat" = {
gid = 1000;
};
};
users."${my.name}" = {
isNormalUser = true;
description = my.fullName;
extraGroups =
["wheel" "compat"]
++ (lib.optional config.networking.networkmanager.enable "networkmanager")
++ (lib.optional config.virtualisation.docker.enable "docker");
hashedPassword =
if config.marleycfg.profiles.server
then serverPass
else desktopPass;
};
};
home-manager.users."${my.name}" = {
home.homeDirectory = "/home/${my.name}";
};
};
}

View file

@ -0,0 +1,40 @@
{
lib,
config,
pkgs,
system,
inputs,
...
}: let
inherit (lib.snowfall.system) is-darwin;
cfg = config.marleyos.appearance.base;
inherit (config.marleyos) isDesktop;
in {
options.marleyos.appearance.base.enable = lib.mkEnableOption "base";
config = lib.mkIf cfg.enable {
marleyos = {
apps = {
pinentry =
if isDesktop
then pkgs.pinentry-gtk2
else pkgs.pinentry-curses;
};
};
stylix = {
iconTheme = {
package = pkgs.kora-icon-theme;
dark = "kora";
light = "kora-light-panel";
};
fonts.sizes.terminal = lib.mkIf (is-darwin system) 14;
};
home.packages = with pkgs; [
kora-icon-theme
];
};
}

View file

@ -2,8 +2,12 @@
lib,
config,
...
}: {
config = lib.mkIf config.marleycfg.profiles.desktop {
}: let
cfg = config.marleyos.appearance.gtk;
in {
options.marleyos.appearance.gtk.enable = lib.mkEnableOption "gtk";
config = lib.mkIf cfg.enable {
home.pointerCursor.gtk.enable = true;
gtk = {

View file

@ -0,0 +1,16 @@
{
lib,
config,
inputs,
...
}: let
cfg = config.marleyos.appearance.qt;
in {
options.marleyos.appearance.qt.enable = lib.mkEnableOption "qt";
config = lib.mkIf cfg.enable {
qt = {
enable = true;
};
};
}

View file

@ -1,39 +1,42 @@
{
config,
lib,
system,
pkgs,
...
}: let
inherit (config.marleycfg) profiles;
inherit (lib.snowfall.system) is-linux;
inherit (config.marleyos) isDesktop;
in {
config = {
home.preferXdgDirectories = true;
xdg = let
home = config.home.homeDirectory;
homeDir = config.home.homeDirectory;
in
lib.mkMerge [
{
enable = true;
cacheHome = "${home}/.cache";
configHome = "${home}/.config";
dataHome = "${home}/.local/share";
stateHome = "${home}/.local/state";
cacheHome = "${homeDir}/.cache";
configHome = "${homeDir}/.config";
dataHome = "${homeDir}/.local/share";
stateHome = "${homeDir}/.local/state";
}
(lib.mkIf (profiles.desktop && pkgs.stdenv.isLinux) {
(lib.mkIf (isDesktop && (is-linux system)) {
userDirs = {
enable = true;
createDirectories = true;
desktop = "${home}/desktop";
desktop = "${homeDir}/desktop";
documents = null;
download = "${home}/downloads";
download = "${homeDir}/downloads";
music = null;
pictures = "${home}/pictures";
pictures = "${homeDir}/pictures";
templates = null;
videos = "${home}/videos";
videos = "${homeDir}/videos";
};
portal = {
@ -47,7 +50,7 @@ in {
enable = true;
associations.added = let
browser = "${lib.getName config.marleycfg.apps.browser}";
browser = "${lib.getName config.marleyos.apps.browser}";
in {
"application/json" = ["nvim.desktop"];
"application/pdf" = ["org.pwmt.zathura-pdf-mupdf.desktop"];

View file

@ -0,0 +1,17 @@
{
lib,
config,
inputs,
...
}: let
cfg = config.marleyos.nixGL;
in {
options.marleyos.nixGL.enable = lib.mkEnableOption "nixGL";
config = lib.mkIf cfg.enable {
nixGL = {
inherit (inputs.nixgl) packages;
defaultWrapper = "nvidia";
};
};
}