desktop building?

This commit is contained in:
mjallen18
2025-07-20 18:35:14 -05:00
parent 91be65bc39
commit 608a6ce9b8
51 changed files with 535 additions and 299 deletions

View File

@@ -1,59 +0,0 @@
{ lib, pkgs, home, ... }:
let
shellAliases = {
update-switch = "darwin-rebuild switch --flake ~/nix-config";
update-flake = "nix flake update ~/nix-config";
ducks = "du -cksh * | sort -hr | head -n 15";
};
packages = with pkgs; [
age
cpufetch
deadnix
direnv
nixfmt-rfc-style
sops
tree
wget
];
in
{
imports = [
../../modules/home/defaults.nix
../../modules/home/git.nix
../../modules/home/shell.nix
../../modules/home/vscode.nix
];
# Home Manager needs a bit of information about you and the
# paths it should manage.
home = {
username = "mattjallen";
homeDirectory = "/Users/mattjallen";
packages = lib.mkForce packages;
sessionVariables = {
NH_DARWIN_FLAKE = "${home.homeDirectory}/nix-config";
};
};
programs = {
zsh = {
shellAliases = shellAliases;
};
};
# Manage bug in compilations - who uses manpages in 2024 anyways? :P
manual.manpages.enable = false;
# Override defaults that arent supported
programs = {
mangohud.enable = lib.mkForce false;
nh = {
flake = "${home.homeDirectory}/nix-config";
};
};
services = {
pass-secret-service.enable = lib.mkForce false;
nextcloud-client.enable = lib.mkForce false;
};
}

View File

@@ -1,28 +0,0 @@
{ pkgs, ... }:
let
shellAliases = {
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.3";
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.3";
update-flake = "nix flake update mac-nixpkgs mac-nixos-apple-silicon mac-home-manager mac-impermanence mac-sops-nix --flake /etc/nixos";
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.3 --build-host admin@10.0.1.3 --flake ~/nix-config#jallen-nas";
};
in
{
home.username = "matt";
home.homeDirectory = "/home/matt";
home.stateVersion = "23.11";
home.packages = with pkgs; [
iw
iwd
orca-slicer
vscodium
];
programs = {
password-store.enable = true;
zsh.shellAliases = shellAliases;
};
}

View File

@@ -1,66 +0,0 @@
{ lib, ... }:
let
shellAliases = {
ll = "ls -alh";
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.3";
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.3";
update-flake = "nix flake update pi4-nixpkgs pi4-home-manager pi4-impermanence pi4-sops-nix pi4-nixos-hardware pi4-nixos-raspberrypi pi4-disko --flake /etc/nixos";
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.3 --build-host admin@10.0.1.3 --flake ~/nix-config#jallen-nas";
nas-ssh = "kitten ssh admin@10.0.1.3";
ducks = "du -cksh * | sort -hr | head -n 15";
};
in
{
imports = [
../../share/home/defaults.nix
../../share/home/git.nix
../../share/home/shell.nix
];
home.username = "matt";
sops = {
age.keyFile = "/home/matt/.config/sops/age/keys.txt";
defaultSopsFile = "/etc/nixos/secrets/secrets.yaml";
validateSopsFiles = false;
secrets = {
"ssh-keys-public/pi4" = {
path = "/home/matt/.ssh/id_ed25519.pub";
mode = "0644";
};
"ssh-keys-private/pi4" = {
path = "/home/matt/.ssh/id_ed25519";
mode = "0600";
};
# "ssh-keys-public/desktop-nixos" = {
# path = "/home/matt/.ssh/authorized_keys";
# mode = "0600";
# };
# "ssh-keys-public/desktop-nixos-root" = {
# path = "/home/matt/.ssh/authorized_keys2";
# mode = "0600";
# };
# "ssh-keys-public/desktop-windows" = {
# path = "/home/matt/.ssh/authorized_keys3";
# mode = "0600";
# };
# "ssh-keys-public/macbook-macos" = {
# path = "/home/matt/.ssh/authorized_keys4";
# mode = "0600";
# };
};
};
programs = {
java.enable = lib.mkForce true;
mangohud.enable = lib.mkForce true;
zsh.shellAliases = shellAliases;
};
services = {
nextcloud-client.enable = lib.mkForce true;
};
}

View File

@@ -1,65 +0,0 @@
{ pkgs, lib, config, ... }:
let
shellAliases = {
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.3";
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.3";
update-flake = "nix flake update pi5-nixpkgs pi5-home-manager pi5-impermanence pi5-nixos-hardware pi5-sops-nix nixos-raspberrypi --flake /etc/nixos";
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.3 --build-host admin@10.0.1.3 --flake ~/nix-config#jallen-nas";
nas-ssh = "kitten ssh admin@10.0.1.3";
};
in
{
imports = [
../../share/home/defaults.nix
../../share/home/git.nix
../../share/home/gnome.nix
../../share/home/librewolf.nix
../../share/home/shell.nix
../../share/home/vscode.nix
];
home.username = "matt";
sops = {
age.keyFile = "/home/matt/.config/sops/age/keys.txt";
defaultSopsFile = "/etc/nixos/secrets/secrets.yaml";
validateSopsFiles = false;
secrets = {
"ssh-keys-public/pi5" = {
path = "/home/matt/.ssh/id_ed25519.pub";
mode = "0644";
};
"ssh-keys-private/pi5" = {
path = "/home/matt/.ssh/id_ed25519";
mode = "0600";
};
"ssh-keys-public/jallen-nas" = { };
"ssh-keys-public/jallen-nas-root" = { };
"ssh-keys-public/desktop-nixos" = { };
"ssh-keys-public/desktop-nixos-root" = { };
"ssh-keys-public/desktop-windows" = { };
"ssh-keys-public/macbook-macos" = { };
};
templates = {
"authorized_keys" = {
content = ''
${config.sops.placeholder."ssh-keys-public/jallen-nas"}
${config.sops.placeholder."ssh-keys-public/jallen-nas-root"}
${config.sops.placeholder."ssh-keys-public/desktop-nixos"}
${config.sops.placeholder."ssh-keys-public/desktop-nixos-root"}
${config.sops.placeholder."ssh-keys-public/macbook-macos"}
'';
};
};
};
programs = {
zsh.shellAliases = shellAliases;
};
}

View File

@@ -52,16 +52,16 @@ let
];
in
{
nix = {
settings = {
substituters = [
"https://cache.mjallen.dev"
];
trusted-public-keys = [
"cache.mjallen.dev-1:IzFmKCd8/gggI6lcCXsW65qQwiCLGFFN9t9s2iw7Lvc="
];
};
};
# nix = {
# settings = {
# substituters = [
# "https://cache.mjallen.dev"
# ];
# trusted-public-keys = [
# "cache.mjallen.dev-1:IzFmKCd8/gggI6lcCXsW65qQwiCLGFFN9t9s2iw7Lvc="
# ];
# };
# };
chaotic.mesa-git.enable = false;
@@ -76,7 +76,7 @@ in
hardware = {
# Enable the QMK firmware flashing tool.
keyboard = {
qmk.enable = true;
qmk.enable = false;
};
# Enable Sane and Brother printer support.

View File

@@ -28,6 +28,9 @@
./nix.nix
./sops.nix
./users.nix
./specialisations/hyprland
];
${namespace} = {

View File

@@ -1,97 +1,97 @@
let
theme = import ../../modules/nixos/hyprland/theme.nix;
defaultOpacity = theme.waybar.defaultOpacity;
defaultBorderRadius = theme.waybar.defaultBorderRadius;
defaultCenterOptions = theme.waybar.defaultCenterOptions;
borderLeft = theme.waybar.borderLeft;
borderRight = theme.waybar.borderRight;
# let
# theme = import ../../modules/nixos/hyprland/theme.nix;
# defaultOpacity = theme.waybar.defaultOpacity;
# defaultBorderRadius = theme.waybar.defaultBorderRadius;
# defaultCenterOptions = theme.waybar.defaultCenterOptions;
# borderLeft = theme.waybar.borderLeft;
# borderRight = theme.waybar.borderRight;
# Displays
displayLeft = {
input = "DP-1";
resolution = "3840x2160";
refreshRate = "240.00000";
};
displayRight = {
input = "DP-2";
resolution = "3840x2160";
refreshRate = "240.00000";
};
in
{
primaryDisplay = displayLeft;
networkInterface = "wlp9s0";
# # Displays
# displayLeft = {
# input = "DP-1";
# resolution = "3840x2160";
# refreshRate = "240.00000";
# };
# displayRight = {
# input = "DP-2";
# resolution = "3840x2160";
# refreshRate = "240.00000";
# };
# in
# {
# primaryDisplay = displayLeft;
# networkInterface = "wlp9s0";
wallpaper = [
"${displayLeft.input}, /run/wallpaper.jpg"
"${displayRight.input}, /run/wallpaper.jpg"
];
# wallpaper = [
# "${displayLeft.input}, /run/wallpaper.jpg"
# "${displayRight.input}, /run/wallpaper.jpg"
# ];
monitor = [
"${displayLeft.input},${displayLeft.resolution}@${displayLeft.refreshRate},0x0,1,bitdepth,10,cm,hdr,sdrbrightness,1.2,sdrsaturation,0.98"
"${displayRight.input},${displayRight.resolution}@${displayRight.refreshRate},3840x0,1,bitdepth,10,cm,hdr,sdrbrightness,1.5,sdrsaturation,0.98"
];
# monitor = [
# "${displayLeft.input},${displayLeft.resolution}@${displayLeft.refreshRate},0x0,1,bitdepth,10,cm,hdr,sdrbrightness,1.2,sdrsaturation,0.98"
# "${displayRight.input},${displayRight.resolution}@${displayRight.refreshRate},3840x0,1,bitdepth,10,cm,hdr,sdrbrightness,1.5,sdrsaturation,0.98"
# ];
workspace = [
"name:firefox, monitor:${displayRight.input}, default:false, special, class:(.*firefox.*)"
"name:discord, monitor:${displayRight.input}, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)"
"name:steam, monitor:${displayLeft.input}, default:false, special, class:(.*[Ss]team.*)"
];
# workspace = [
# "name:firefox, monitor:${displayRight.input}, default:false, special, class:(.*firefox.*)"
# "name:discord, monitor:${displayRight.input}, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)"
# "name:steam, monitor:${displayLeft.input}, default:false, special, class:(.*[Ss]team.*)"
# ];
windowRule = [
"size 2160 7680, tag:horizonrdp"
];
# windowRule = [
# "size 2160 7680, tag:horizonrdp"
# ];
extraConfig = ''
exec-once = nm-applet
exec-once = [silent] firefox
exec-once = [silent] vesktop
exec-once = [silent] chromium --app="https://music.apple.com"
exec-once = [silent] steam
'';
# extraConfig = ''
# exec-once = nm-applet
# exec-once = [silent] firefox
# exec-once = [silent] vesktop
# exec-once = [silent] chromium --app="https://music.apple.com"
# exec-once = [silent] steam
# '';
waybar = {
# waybar = {
layer = "bottom";
# layer = "bottom";
modules-right = [
"tray"
"custom/lights"
"temperature"
"temperature#gpu"
"keyboard-state#capslock"
"keyboard-state#numlock"
"wireplumber#sink"
"wireplumber#source"
"bluetooth"
"network"
"idle_inhibitor"
"clock"
"custom/weather"
];
# modules-right = [
# "tray"
# "custom/lights"
# "temperature"
# "temperature#gpu"
# "keyboard-state#capslock"
# "keyboard-state#numlock"
# "wireplumber#sink"
# "wireplumber#source"
# "bluetooth"
# "network"
# "idle_inhibitor"
# "clock"
# "custom/weather"
# ];
extraModules = {
"custom/lights" = {
tooltip = false;
exec = "waybar-hass --get_light light.living_room_lights";
interval = "once";
format = "{text}";#"󱉓";
on-click = "waybar-hass --toggle_light light.living_room_lights";
return-type = "json";
};
};
# extraModules = {
# "custom/lights" = {
# tooltip = false;
# exec = "waybar-hass --get_light light.living_room_lights";
# interval = "once";
# format = "{text}";#"󱉓";
# on-click = "waybar-hass --toggle_light light.living_room_lights";
# return-type = "json";
# };
# };
extraModulesStyle = ''
#custom-lights {
color: ${theme.nord.frost.nord8};
background-color: ${theme.nord.polarNight.nord0};
${defaultOpacity}
${borderLeft}
}
# extraModulesStyle = ''
# #custom-lights {
# color: ${theme.nord.frost.nord8};
# background-color: ${theme.nord.polarNight.nord0};
# ${defaultOpacity}
# ${borderLeft}
# }
#custom-lights:hover {
background: ${theme.nord.polarNight.nord3};
}
'';
};
}
# #custom-lights:hover {
# background: ${theme.nord.polarNight.nord3};
# }
# '';
# };
# }

View File

@@ -1,10 +1,56 @@
{ namespace, ... }:
{ lib, namespace, ... }:
let
# Displays
displayLeft = {
input = "DP-1";
resolution = "3840x2160";
refreshRate = "240.00000";
};
displayRight = {
input = "DP-2";
resolution = "3840x2160";
refreshRate = "240.00000";
};
in
{
specialisation.hyprland.inheritParentConfig = true;
specialisation.hyprland.configuration = {
home-manager.users.matt = import ./home/default.nix;
${namespace} = {
desktop = {
hyprland.enable = true;
gnome.enable = false;
hyprland = {
enable = true;
primaryDisplay = "DP-1";
wallpaper = [
"${displayLeft.input}, /run/wallpaper.jpg"
"${displayRight.input}, /run/wallpaper.jpg"
];
monitor = [
"${displayLeft.input},${displayLeft.resolution}@${displayLeft.refreshRate},0x0,1,bitdepth,10,cm,hdr,sdrbrightness,1.2,sdrsaturation,0.98"
"${displayRight.input},${displayRight.resolution}@${displayRight.refreshRate},3840x0,1,bitdepth,10,cm,hdr,sdrbrightness,1.5,sdrsaturation,0.98"
];
workspace = [
"name:firefox, monitor:${displayRight.input}, default:false, special, class:(.*firefox.*)"
"name:discord, monitor:${displayRight.input}, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)"
"name:steam, monitor:${displayLeft.input}, default:false, special, class:(.*[Ss]team.*)"
];
windowRule = [
"size 2160 7680, tag:horizonrdp"
];
extraConfig = ''
exec-once = nm-applet
exec-once = [silent] firefox
exec-once = [silent] vesktop
exec-once = [silent] chromium --app="https://music.apple.com"
exec-once = [silent] steam
'';
};
gnome.enable = lib.mkForce false;
};
};
environment.etc."specialisation".text = "hyprland";

View File

@@ -0,0 +1,86 @@
{ pkgs, ... }:
let
theme = import ../../../../../../modules/home/desktop/theme/nord.nix;
fontName = "JetBrainsMono NFM";
fontPackage = pkgs.nerd-fonts.jetbrains-mono;
in
{
mjallen = {
desktop.hyprland = {
enable = true;
defaultApps = {
browser = pkgs.firefox;
};
};
programs = {
btop.enable = true;
kitty = {
enable = true;
font = {
name = fontName;
package = fontPackage;
};
};
mako = {
enable = true;
fontName = fontName;
};
nwg-dock.enable = true;
nwg-drawer.enable = true;
nwg-panel = {
enable = true;
defaultApps = {
browser = pkgs.firefox;
};
};
waybar = {
enable = true;
networkInterface = "wlp9s0";
layer = "bottom";
modules-right = [
"tray"
"custom/lights"
"temperature"
"temperature#gpu"
"keyboard-state#capslock"
"keyboard-state#numlock"
"wireplumber#sink"
"wireplumber#source"
"bluetooth"
"network"
"idle_inhibitor"
"clock"
"custom/weather"
];
extraModules = {
"custom/lights" = {
tooltip = false;
exec = "waybar-hass --get_light light.living_room_lights";
interval = "once";
format = "{text}";#"󱉓";
on-click = "waybar-hass --toggle_light light.living_room_lights";
return-type = "json";
};
};
extraModulesStyle = ''
#custom-lights {
color: ${theme.frost.nord8};
background-color: ${theme.polarNight.nord0};
${theme.defaultOpacity}
${theme.borderLeft}
}
#custom-lights:hover {
background: ${theme.polarNight.nord3};
}
'';
};
wlogout.enable = true;
wofi.enable = true;
};
};
}