Compare commits

...

No commits in common. "024e647f83af8d2eaac95f634415e2b2a5d3bab1" and "19a6ccdf5cfecee1b8d3e4977ea7237fc21ec204" have entirely different histories.

81 changed files with 282 additions and 64 deletions

View file

@ -74,6 +74,7 @@
./systems/mars
./profiles/user0
./profiles/user1
./profiles/user3
config.nixosModules.mars
config.nixosModules.core
config.nixosModules.mantle
@ -99,6 +100,7 @@
./systems/deimos
./profiles/user0
./profiles/user1
./profiles/user2
config.nixosModules.deimos
config.nixosModules.core
config.nixosModules.mantle

View file

@ -4,13 +4,16 @@ let
sambaPermissions
userIdForUser0
userIdForUser1
userIdForUser3
synologyIP
;
user0 = "nick";
user1 = "garnet";
user3 = "streaming";
user0Name = "Nick";
user1Name = "Garnet";
user3Name = "Streaming";
synologyName = "synology";
in
{
@ -41,4 +44,10 @@ in
device = "//${synologyIP}/homes/${user1Name}/Minecraft";
options = sambaPermissions ++ userIdForUser1;
};
# Streaming Folder
folder3 = {
mount = "/mnt/media/${synologyName}/${user3}";
device = "//${synologyIP}/homes/${user0Name}";
options = sambaPermissions ++ userIdForUser3;
};
}

View file

@ -31,6 +31,9 @@ let
userIdForUser1 = [
"uid=1001"
];
userIdForUser3 = [
"uid=1002"
];
dummy = [
];
ceresIP = "192.168.50.140";

View file

@ -0,0 +1,20 @@
{ user3 }:
let
inherit
user3
;
in
{
name = "Streaming";
aliases = {
};
email = {
address0 = "nick@upRootNutrition.com";
};
paths = {
path0 = "/home/${user3}/Files/Projects"; # Git path
};
sshKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBF9TmImDoYDpsW5VMFbOcuK3aH4TWRtx/xGxT3yUtEN nick@desktop"
];
}

View file

@ -4,16 +4,19 @@ let
user0 = "nick";
user1 = "garnet";
user2 = "fallaryn";
user3 = "streaming";
in
{
inherit
user0
user1
user2
user3
;
users = {
"${user0}" = import (configPath + /user0.nix) { inherit user0; };
"${user1}" = import (configPath + /user1.nix) { inherit user1; };
"${user2}" = import (configPath + /user2.nix) { inherit user2; };
"${user3}" = import (configPath + /user3.nix) { inherit user3; };
};
}

View file

@ -5,12 +5,12 @@
{
home.packages = builtins.attrValues {
inherit (pkgs.elmPackages)
# elm
# elm-format
# elm-land
# elm-language-server
# elm-review
# elm-test
elm
elm-format
elm-land
elm-language-server
elm-review
elm-test
;
};
}

View file

@ -13,7 +13,12 @@ in
deimos
ceres
;
inherit (config.people) user0 user1 user2;
inherit (config.people)
user0
user1
user2
user3
;
in
{
"${mars.name}-${user0}" = {
@ -35,7 +40,6 @@ in
zathura
kolourPaint
imageViewing
obsStudio
daVinci
mpv
freetube
@ -53,8 +57,8 @@ in
systemMonitor
usbImager
virtManager
hypr
wayland
# hypr
# wayland
theming
polychromatic
dolphin
@ -82,6 +86,30 @@ in
;
};
};
"${mars.name}-${user3}" = {
imports = builtins.attrValues {
inherit (modules)
cli
floorp
ghostty
steam
zed
obsidian
okular
kolourPaint
imageViewing
obsStudio
mpv
freetube
vesktop
bitwarden
emote
flameshot
gnomeCalculator
theming
;
};
};
"${venus.name}-${user2}" = {
imports = builtins.attrValues {
inherit (modules)
@ -177,6 +205,27 @@ in
theming
;
};
};
"${deimos.name}-${user2}" = {
imports = builtins.attrValues {
inherit (modules)
cli
firefox
brave
code
ghostty
gaming
spotify
wpsOffice
obsidian
okular
images
videoPlaying
discord
signal
tools
;
};
};
"${charon.name}-${user1}" = {
imports = builtins.attrValues {

View file

@ -32,6 +32,9 @@ in
"elmLS.disableElmLSDiagnostics" = true;
"elmLS.elmReviewDiagnostics" = "warning";
"elmLS.elmReviewPath" =
"/nix/store/ms3g9cnwjhd1adccxar3vxy1gj98zsba-elm-review-2.12.0/bin/elm-review";
"/nix/store/r19y19rx5b7l4dzapbx1g64d30yisby1-elm-review-2.10.3/bin/elm-review";
"editor.formatOnSave" = true;
"[elm]" = {
"editor.defaultFormatter" = "elmTooling.elm-ls-vscode";
};
}

View file

@ -7,4 +7,7 @@ builtins.attrValues {
wl-clipboard-rs
xsel
;
inherit (pkgs.elmPackages)
elm-language-server
;
}

View file

@ -35,4 +35,13 @@
};
};
};
"Elm" = {
language_servers = [ "elm-language-server" ];
format_on_save = {
external = {
command = "elm-review";
arguments = [ "--stdin" ];
};
};
};
}

View file

@ -6,12 +6,10 @@
}:
let
inherit (flake.config.aesthetics.themes) fonts;
inherit (flake.config.machines.devices) deimos;
hostname = osConfig.networking.hostName;
in
{
confirm-close-surface = false;
window-decoration = if hostname == deimos.name then true else false;
window-decoration = true;
font-size = fonts.sizes.terminal.size0;
font-family = fonts.names.name0;
window-padding-x = 10;

View file

@ -5,9 +5,11 @@
enable = true;
plugins = builtins.attrValues {
inherit (pkgs.obs-studio-plugins)
wlrobs
obs-tuna
obs-vkcapture
obs-multi-rtmp
obs-webkitgtk
;
};
};

View file

@ -8,6 +8,7 @@ let
user0
user1
user2
user3
;
inherit (flake.config.machines)
devices
@ -30,6 +31,7 @@ let
[
user0
user1
user3
]
else if hostname == charon then
[ user1 ]

View file

@ -3,7 +3,7 @@
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "backup3";
backupFileExtension = "backup5";
extraSpecialArgs = {
inherit
flake

View file

@ -8,9 +8,7 @@ let
user0
user1
user2
;
inherit (flake.config.people.users.${userLogic})
sshKeys
user3
;
inherit (flake.config.machines)
devices
@ -22,30 +20,39 @@ let
venus = devices.venus.name;
charon = devices.charon.name;
userLogic =
if
builtins.elem hostname [
mars
deimos
ceres
]
then
user0
else if hostname == charon then
user1
else if hostname == venus then
user2
else
"";
# Helper function to get SSH keys for a specific user
getUserKeys = user: flake.config.people.users.${user}.sshKeys;
in
{
users.users =
if hostname == charon then
{ }
else
else if hostname == mars then
{
${userLogic} = {
openssh.authorizedKeys.keys = sshKeys;
${user0} = {
openssh.authorizedKeys.keys = getUserKeys user0;
};
};
${user3} = {
openssh.authorizedKeys.keys = getUserKeys user3;
};
}
else if
builtins.elem hostname [
deimos
ceres
]
then
{
${user0} = {
openssh.authorizedKeys.keys = getUserKeys user0;
};
}
else if hostname == venus then
{
${user2} = {
openssh.authorizedKeys.keys = getUserKeys user2;
};
}
else
{ };
}

View file

@ -10,11 +10,13 @@ in
mullvad
syncthing
ollama
hypr
# hypr
searx
wayland
portals
xserver
flatpak
plasma
sddm
;
};
};

View file

@ -6,6 +6,7 @@
portal = {
enable = true;
wlr.enable = true;
config.common.default = "*";
xdgOpenUsePortal = true;
extraPortals = builtins.attrValues {
inherit (pkgs)

View file

@ -1,3 +1,3 @@
{
hardware.openrazer.enable = true;
hardware.openrazer.enable = false;
}

View file

@ -26,15 +26,17 @@ in
# sudo mastodon-tootctl accounts modify username --remove-role
# nixpkgs.overlays = [
# (final: prev: {
# mastodon = prev.mastodon.overrideAttrs (oldAttrs: {
# postPatch =
# (oldAttrs.postPatch or "")
# + ''
# patch -p1 < ${./config/chars.patch}
# '';
# });
# })
# (
# final: prev: {
# mastodon = prev.mastodon.overrideAttrs (oldAttrs: {
# postPatch =
# (oldAttrs.postPatch or "")
# + ''
# patch -p1 < ${./chars.patch}
# '';
# });
# }
# )
# ];
services = {
@ -53,7 +55,7 @@ in
passwordFile = config.sops.secrets.mastodon-database.path;
};
extraConfig = {
SINGLE_USER_MODE = "false";
SINGLE_USER_MODE = "true";
SMTP_AUTH_METHOD = "plain";
SMTP_DELIVERY_METHOD = "smtp";
SMTP_ENABLE_STARTTLS_AUTO = "true";

View file

@ -8,6 +8,7 @@ let
user0
user1
user2
user3
;
inherit (flake.config.machines)
devices

91
profiles/user3/default.nix Executable file
View file

@ -0,0 +1,91 @@
{
config,
flake,
pkgs,
lib,
...
}:
let
inherit (flake) self;
inherit (flake.config.people) user3;
inherit (flake.config.machines) devices;
inherit (flake.config.people.users.${user3}) name paths;
hostname = config.networking.hostName;
in
{
users = {
users.${user3} = {
description = name;
name = user3;
isNormalUser = true;
shell = pkgs.nushell;
extraGroups = [
"adbusers"
"disk"
"libvirtd"
"netdev"
"networkmanager"
"plugdev"
"samba"
"vboxusers"
"wheel"
];
};
};
home-manager.users = {
${user3} = {
home = {
username = user3;
homeDirectory = "/home/${user3}";
file = {
"./.config/scripts/get_weather.sh" = {
source = ./files/get_weather.sh;
executable = true;
};
".config/wallpaper" = {
source = ./files/wallpaper;
recursive = true;
};
"./.config/vesktop/themes/macchiato-theme.css" = {
source = ./files/themes/vesktop/macchiato-theme.css;
};
};
sessionVariables = {
VISUAL = lib.getExe pkgs.zed-editor;
GTK_THEME = "catppuccin-macchiato-mauve-compact";
};
};
imports = [
{
home.stateVersion = config.system.stateVersion;
}
{
imports = [
self.homeModules."${devices.${hostname}.name}-${user3}"
];
}
];
};
};
systemd.tmpfiles = {
rules =
[
"d ${paths.path0} 0755 ${user3} users -"
]
++ (map (path: "d /home/${user3}/${path} 0755 ${user3} users -") [
"Files"
"Files/Scripts"
"Files/Games"
"Files/Screenshots"
])
++ (map (path: "R /home/${user3}/${path} 0755 ${user3} users - -") [
"Desktop"
"Documents"
"Music"
"Pictures"
"Public"
"Templates"
"Videos"
]);
};
}

View file

@ -0,0 +1,19 @@
#!/usr/bin/env bash
for i in {1..5}
do
text=$(curl -s "https://wttr.in/$1?format=1")
if [[ $? == 0 ]]
then
text=$(echo "$text" | sed -E "s/\s+/ /g")
tooltip=$(curl -s "https://wttr.in/$1?format=4")
if [[ $? == 0 ]]
then
tooltip=$(echo "$tooltip" | sed -E "s/\s+/ /g")
echo "{\"text\":\"$text\", \"tooltip\":\"$tooltip\"}"
exit
fi
fi
sleep 2
done
echo "{\"text\":\"error\", \"tooltip\":\"error\"}"

View file

@ -0,0 +1 @@
@import url("https://catppuccin.github.io/discord/dist/catppuccin-macchiato.theme.css");

Binary file not shown.

After

Width:  |  Height:  |  Size: 772 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 886 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 869 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

View file

@ -4,20 +4,9 @@
...
}:
let
inherit (flake.config.people)
user0
user1
;
inherit (flake.config.machines.devices)
mars
ceres
synology
;
inherit (flake.config.services.instances)
samba
jellyfin
audiobookshelf
;
inherit (flake.config.people) user0 user1 user3;
inherit (flake.config.machines.devices) mars ceres synology;
inherit (flake.config.services.instances) samba jellyfin audiobookshelf;
synologySecrets = config.sops.secrets."network/synology".path;
ceresSecrets = config.sops.secrets."network/server".path;
in
@ -28,6 +17,7 @@ in
"folder0"
"folder1"
"folder2"
"folder3"
];
storageDrives = [
@ -99,6 +89,7 @@ in
systemd.tmpfiles.rules = [
"Z ${config.home-manager.users.${user0}.home.homeDirectory} 0755 ${user0} users -"
"Z ${config.home-manager.users.${user1}.home.homeDirectory} 0755 ${user1} users -"
"Z ${config.home-manager.users.${user3}.home.homeDirectory} 0755 ${user3} users -"
"Z ${mars.storage0.mount} 0755 ${user0} users -"
"Z ${mars.storage1.mount} 0755 ${user0} users -"
];