Refactor hosts folder
This commit is contained in:
@@ -75,7 +75,7 @@
|
|||||||
inputs.nixos-hardware.nixosModules.common-cpu-amd
|
inputs.nixos-hardware.nixosModules.common-cpu-amd
|
||||||
inputs.nixos-hardware.nixosModules.common-gpu-amd
|
inputs.nixos-hardware.nixosModules.common-gpu-amd
|
||||||
|
|
||||||
./hosts/polaris/configuration.nix
|
./hosts/polaris/system.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
|
|
||||||
inputs.nixos-hardware.nixosModules.lenovo-yoga-7-14ARH7-amdgpu
|
inputs.nixos-hardware.nixosModules.lenovo-yoga-7-14ARH7-amdgpu
|
||||||
|
|
||||||
./hosts/altair/configuration.nix
|
./hosts/altair/system.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
inputs.copyparty.nixosModules.default
|
inputs.copyparty.nixosModules.default
|
||||||
|
|
||||||
inputs.disko.nixosModules.disko
|
inputs.disko.nixosModules.disko
|
||||||
./hosts/orion/configuration.nix
|
./hosts/orion/system.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# Mostly system related configuration
|
|
||||||
../../modules/nixos/audio.nix
|
|
||||||
../../modules/nixos/bluetooth.nix
|
|
||||||
../../modules/nixos/fonts.nix
|
|
||||||
../../modules/nixos/home-manager.nix
|
|
||||||
../../modules/nixos/nix.nix
|
|
||||||
../../modules/nixos/systemd-boot.nix
|
|
||||||
../../modules/nixos/sddm.nix
|
|
||||||
../../modules/nixos/users.nix
|
|
||||||
../../modules/nixos/utils.nix
|
|
||||||
../../modules/nixos/hyprland.nix
|
|
||||||
|
|
||||||
# You should let those lines as is
|
|
||||||
./hardware-configuration.nix
|
|
||||||
./variables.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager.users."${config.var.username}" = import ./home.nix;
|
|
||||||
|
|
||||||
# Don't touch this
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/system.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,100 +6,14 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Mostly user-specific configuration
|
../../modules/home-manager/desktop.nix
|
||||||
|
|
||||||
./variables.nix
|
./variables.nix
|
||||||
../../secrets
|
|
||||||
|
|
||||||
# Programs
|
|
||||||
../../modules/home-manager/accounts
|
|
||||||
../../modules/home-manager/nixCats
|
|
||||||
../../modules/home-manager/shell
|
|
||||||
|
|
||||||
../../modules/home-manager/aerc.nix
|
|
||||||
../../modules/home-manager/bitwarden.nix
|
|
||||||
../../modules/home-manager/direnv.nix
|
|
||||||
../../modules/home-manager/discord.nix
|
|
||||||
../../modules/home-manager/ghostty.nix
|
|
||||||
../../modules/home-manager/git.nix
|
|
||||||
../../modules/home-manager/gpg.nix
|
|
||||||
../../modules/home-manager/khal.nix
|
|
||||||
../../modules/home-manager/kitty.nix
|
|
||||||
../../modules/home-manager/lazygit.nix
|
|
||||||
../../modules/home-manager/nh.nix
|
|
||||||
../../modules/home-manager/rclone.nix
|
|
||||||
../../modules/home-manager/spicetify.nix
|
|
||||||
../../modules/home-manager/ssh.nix
|
|
||||||
../../modules/home-manager/thunar.nix
|
|
||||||
../../modules/home-manager/thunderbird.nix
|
|
||||||
../../modules/home-manager/todoman.nix
|
|
||||||
../../modules/home-manager/vicinae.nix
|
|
||||||
../../modules/home-manager/zathura.nix
|
|
||||||
|
|
||||||
# Scripts
|
|
||||||
../../modules/home-manager/scripts
|
|
||||||
|
|
||||||
# System (Desktop environment like stuff)
|
|
||||||
../../modules/home-manager/hyprland
|
|
||||||
../../modules/home-manager/hyprpanel.nix
|
|
||||||
../../modules/home-manager/hyprpaper.nix
|
|
||||||
../../modules/home-manager/mime.nix
|
|
||||||
../../modules/home-manager/udiskie.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
inherit (config.var) username;
|
inherit (config.var) username;
|
||||||
homeDirectory = "/home/" + config.var.username;
|
homeDirectory = "/home/" + config.var.username;
|
||||||
|
|
||||||
packages = with pkgs; [
|
|
||||||
dotnet-runtime
|
|
||||||
dafny
|
|
||||||
|
|
||||||
gemini-cli
|
|
||||||
|
|
||||||
# Apps
|
|
||||||
bitwarden-desktop # Password manager
|
|
||||||
vlc # Video player
|
|
||||||
blanket # White-noise app
|
|
||||||
obsidian # Note taking app
|
|
||||||
planify # Todolists
|
|
||||||
textpieces # Manipulate texts
|
|
||||||
curtail # Compress images
|
|
||||||
resources # Ressource monitor
|
|
||||||
gnome-clocks # Clocks app
|
|
||||||
gnome-text-editor # Basic graphic text editor
|
|
||||||
mpv # Video player
|
|
||||||
brave # Web browser
|
|
||||||
|
|
||||||
# Privacy
|
|
||||||
session-desktop # Session app, private messages
|
|
||||||
signal-desktop # Signal app, private messages
|
|
||||||
protonvpn-gui
|
|
||||||
proton-pass
|
|
||||||
proton-authenticator
|
|
||||||
ticktick # Privacy friendly todo app
|
|
||||||
|
|
||||||
# Utils
|
|
||||||
zip
|
|
||||||
unzip
|
|
||||||
optipng
|
|
||||||
jpegoptim
|
|
||||||
pfetch
|
|
||||||
btop
|
|
||||||
fastfetch
|
|
||||||
|
|
||||||
# Just cool
|
|
||||||
peaclock
|
|
||||||
cbonsai
|
|
||||||
pipes
|
|
||||||
cmatrix
|
|
||||||
|
|
||||||
# Backup
|
|
||||||
vscode
|
|
||||||
|
|
||||||
libreoffice-qt6-fresh
|
|
||||||
];
|
|
||||||
|
|
||||||
# Don't touch this
|
|
||||||
stateVersion = "24.05";
|
stateVersion = "24.05";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
13
hosts/altair/system.nix
Normal file
13
hosts/altair/system.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../../modules/nixos/desktop.nix
|
||||||
|
|
||||||
|
./hardware-configuration.nix
|
||||||
|
./variables.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.users."${config.var.username}" = import ./home.nix;
|
||||||
|
|
||||||
|
system.stateVersion = "24.05";
|
||||||
|
}
|
||||||
@@ -1,41 +1,10 @@
|
|||||||
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# Choose your theme here:
|
|
||||||
../../modules/themes/catppuccin.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
config.var = {
|
config.var = {
|
||||||
hostname = "altair";
|
hostname = "altair";
|
||||||
username = "kiri";
|
|
||||||
configDirectory = "/home/" + config.var.username + "/.config/nixos"; # The path of the nixos configuration directory
|
|
||||||
|
|
||||||
keyboardLayout = "us";
|
hyprsunset.temperature = 2000;
|
||||||
|
|
||||||
location = "Meterik";
|
|
||||||
timeZone = "Europe/Amsterdam";
|
|
||||||
defaultLocale = "en_US.UTF-8";
|
|
||||||
timeLocale = "en_DK.UTF-8";
|
|
||||||
numericLocale = "en_IE.UTF-8";
|
|
||||||
otherLocale = "nl_NL.UTF-8";
|
|
||||||
|
|
||||||
git = {
|
|
||||||
username = "kiri";
|
|
||||||
email = "mail@jelles.net";
|
|
||||||
};
|
|
||||||
|
|
||||||
preferred = {
|
|
||||||
editor = "nvim";
|
|
||||||
terminal = "kitty";
|
|
||||||
browser = "brave";
|
|
||||||
};
|
|
||||||
|
|
||||||
autoUpgrade = false;
|
|
||||||
autoGarbageCollector = true;
|
|
||||||
hyprland = {
|
hyprland = {
|
||||||
workspace = [
|
workspace = [
|
||||||
"1, monitor:desc:California Institute of Technology 0x1410, persistent:true, default:true"
|
"1, monitor:desc:California Institute of Technology 0x1410, persistent:true, default:true"
|
||||||
@@ -52,12 +21,4 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Let this here
|
|
||||||
options = {
|
|
||||||
var = lib.mkOption {
|
|
||||||
type = lib.types.attrs;
|
|
||||||
default = { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/system.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,12 +5,9 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Mostly user-specific configuration
|
../../modules/home-manager/common.nix
|
||||||
./variables.nix
|
|
||||||
|
|
||||||
# Programs
|
./variables.nix
|
||||||
../../modules/home-manager/shell
|
|
||||||
../../modules/home-manager/git.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
@@ -26,7 +23,6 @@
|
|||||||
ghostty
|
ghostty
|
||||||
];
|
];
|
||||||
|
|
||||||
# Don't touch this
|
|
||||||
stateVersion = "24.05";
|
stateVersion = "24.05";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,7 @@
|
|||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
(modulesPath + "/profiles/qemu-guest.nix")
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
|
|
||||||
../../modules/nixos/home-manager.nix
|
../../modules/nixos/common.nix
|
||||||
../../modules/nixos/nix.nix
|
|
||||||
../../modules/nixos/users.nix
|
|
||||||
../../modules/nixos/utils.nix
|
|
||||||
|
|
||||||
../../modules/nixos/ssh.nix
|
../../modules/nixos/ssh.nix
|
||||||
../../modules/nixos/caddy.nix
|
../../modules/nixos/caddy.nix
|
||||||
@@ -27,6 +24,5 @@
|
|||||||
|
|
||||||
home-manager.users."${config.var.username}" = import ./home.nix;
|
home-manager.users."${config.var.username}" = import ./home.nix;
|
||||||
|
|
||||||
# Don't touch this
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
}
|
}
|
||||||
@@ -1,48 +1,6 @@
|
|||||||
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# Choose your theme here:
|
|
||||||
../../modules/themes/catppuccin.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
config.var = {
|
config.var = {
|
||||||
hostname = "orion";
|
hostname = "orion";
|
||||||
username = "kiri";
|
|
||||||
configDirectory = "/home/" + config.var.username + "/.config/nixos"; # The path of the nixos configuration directory
|
|
||||||
|
|
||||||
keyboardLayout = "us";
|
|
||||||
|
|
||||||
location = "Meterik";
|
|
||||||
timeZone = "Europe/Amsterdam";
|
|
||||||
defaultLocale = "en_US.UTF-8";
|
|
||||||
timeLocale = "en_DK.UTF-8";
|
|
||||||
numericLocale = "en_IE.UTF-8";
|
|
||||||
otherLocale = "nl_NL.UTF-8";
|
|
||||||
|
|
||||||
git = {
|
|
||||||
username = "kiri";
|
|
||||||
email = "mail@jelles.net";
|
|
||||||
};
|
|
||||||
|
|
||||||
preferred = {
|
|
||||||
editor = "nvim";
|
|
||||||
terminal = "kitty";
|
|
||||||
browser = "brave";
|
|
||||||
};
|
|
||||||
|
|
||||||
autoUpgrade = false;
|
|
||||||
autoGarbageCollector = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Let this here
|
|
||||||
options = {
|
|
||||||
var = lib.mkOption {
|
|
||||||
type = lib.types.attrs;
|
|
||||||
default = { };
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# Mostly system related configuration
|
|
||||||
../../modules/nixos/audio.nix
|
|
||||||
../../modules/nixos/bluetooth.nix
|
|
||||||
../../modules/nixos/fonts.nix
|
|
||||||
../../modules/nixos/home-manager.nix
|
|
||||||
../../modules/nixos/nix.nix
|
|
||||||
../../modules/nixos/systemd-boot.nix
|
|
||||||
../../modules/nixos/sddm.nix
|
|
||||||
../../modules/nixos/users.nix
|
|
||||||
../../modules/nixos/utils.nix
|
|
||||||
#../../modules/nixos/tailscale.nix
|
|
||||||
../../modules/nixos/hyprland.nix
|
|
||||||
#../../modules/nixos/docker.nix
|
|
||||||
|
|
||||||
# You should let those lines as is
|
|
||||||
./hardware-configuration.nix
|
|
||||||
./variables.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager.users."${config.var.username}" = import ./home.nix;
|
|
||||||
|
|
||||||
# Don't touch this
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/system.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,100 +6,14 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Mostly user-specific configuration
|
../../modules/home-manager/desktop.nix
|
||||||
|
|
||||||
./variables.nix
|
./variables.nix
|
||||||
../../secrets
|
|
||||||
|
|
||||||
# Programs
|
|
||||||
../../modules/home-manager/accounts
|
|
||||||
../../modules/home-manager/nixCats
|
|
||||||
../../modules/home-manager/shell
|
|
||||||
|
|
||||||
../../modules/home-manager/aerc.nix
|
|
||||||
../../modules/home-manager/bitwarden.nix
|
|
||||||
../../modules/home-manager/direnv.nix
|
|
||||||
../../modules/home-manager/discord.nix
|
|
||||||
../../modules/home-manager/ghostty.nix
|
|
||||||
../../modules/home-manager/git.nix
|
|
||||||
../../modules/home-manager/gpg.nix
|
|
||||||
../../modules/home-manager/khal.nix
|
|
||||||
../../modules/home-manager/kitty.nix
|
|
||||||
../../modules/home-manager/lazygit.nix
|
|
||||||
../../modules/home-manager/nh.nix
|
|
||||||
../../modules/home-manager/rclone.nix
|
|
||||||
../../modules/home-manager/spicetify.nix
|
|
||||||
../../modules/home-manager/ssh.nix
|
|
||||||
../../modules/home-manager/thunar.nix
|
|
||||||
../../modules/home-manager/thunderbird.nix
|
|
||||||
../../modules/home-manager/todoman.nix
|
|
||||||
../../modules/home-manager/vicinae.nix
|
|
||||||
../../modules/home-manager/zathura.nix
|
|
||||||
|
|
||||||
# Scripts
|
|
||||||
../../modules/home-manager/scripts
|
|
||||||
|
|
||||||
# System (Desktop environment like stuff)
|
|
||||||
../../modules/home-manager/hyprland
|
|
||||||
../../modules/home-manager/hyprpanel.nix
|
|
||||||
../../modules/home-manager/hyprpaper.nix
|
|
||||||
../../modules/home-manager/mime.nix
|
|
||||||
../../modules/home-manager/udiskie.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
inherit (config.var) username;
|
inherit (config.var) username;
|
||||||
homeDirectory = "/home/" + config.var.username;
|
homeDirectory = "/home/" + config.var.username;
|
||||||
|
|
||||||
packages = with pkgs; [
|
|
||||||
dotnet-runtime
|
|
||||||
dafny
|
|
||||||
|
|
||||||
gemini-cli
|
|
||||||
|
|
||||||
# Apps
|
|
||||||
bitwarden-desktop # Password manager
|
|
||||||
vlc # Video player
|
|
||||||
blanket # White-noise app
|
|
||||||
obsidian # Note taking app
|
|
||||||
planify # Todolists
|
|
||||||
textpieces # Manipulate texts
|
|
||||||
curtail # Compress images
|
|
||||||
resources # Ressource monitor
|
|
||||||
gnome-clocks # Clocks app
|
|
||||||
gnome-text-editor # Basic graphic text editor
|
|
||||||
mpv # Video player
|
|
||||||
brave # Web browser
|
|
||||||
|
|
||||||
# Privacy
|
|
||||||
session-desktop # Session app, private messages
|
|
||||||
signal-desktop # Signal app, private messages
|
|
||||||
protonvpn-gui
|
|
||||||
proton-pass
|
|
||||||
proton-authenticator
|
|
||||||
# ticktick # Privacy friendly todo app
|
|
||||||
|
|
||||||
# Utils
|
|
||||||
zip
|
|
||||||
unzip
|
|
||||||
optipng
|
|
||||||
jpegoptim
|
|
||||||
pfetch
|
|
||||||
btop
|
|
||||||
fastfetch
|
|
||||||
|
|
||||||
# Just cool
|
|
||||||
peaclock
|
|
||||||
cbonsai
|
|
||||||
pipes
|
|
||||||
cmatrix
|
|
||||||
|
|
||||||
# Backup
|
|
||||||
vscode
|
|
||||||
|
|
||||||
libreoffice-qt6-fresh
|
|
||||||
];
|
|
||||||
|
|
||||||
# Don't touch this
|
|
||||||
stateVersion = "24.05";
|
stateVersion = "24.05";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
13
hosts/polaris/system.nix
Normal file
13
hosts/polaris/system.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../../modules/nixos/desktop.nix
|
||||||
|
|
||||||
|
./hardware-configuration.nix
|
||||||
|
./variables.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.users."${config.var.username}" = import ./home.nix;
|
||||||
|
|
||||||
|
system.stateVersion = "24.05";
|
||||||
|
}
|
||||||
@@ -1,41 +1,9 @@
|
|||||||
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# Choose your theme here:
|
|
||||||
../../modules/themes/catppuccin.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
config.var = {
|
config.var = {
|
||||||
hostname = "polaris";
|
hostname = "polaris";
|
||||||
username = "kiri";
|
|
||||||
configDirectory = "/home/" + config.var.username + "/.config/nixos"; # The path of the nixos configuration directory
|
|
||||||
|
|
||||||
keyboardLayout = "us";
|
hyprsunset.temperature = 3500;
|
||||||
|
|
||||||
location = "Meterik";
|
|
||||||
timeZone = "Europe/Amsterdam";
|
|
||||||
defaultLocale = "en_US.UTF-8";
|
|
||||||
timeLocale = "en_DK.UTF-8";
|
|
||||||
numericLocale = "en_IE.UTF-8";
|
|
||||||
otherLocale = "nl_NL.UTF-8";
|
|
||||||
|
|
||||||
git = {
|
|
||||||
username = "kiri";
|
|
||||||
email = "mail@jelles.net";
|
|
||||||
};
|
|
||||||
|
|
||||||
preferred = {
|
|
||||||
editor = "nvim";
|
|
||||||
terminal = "kitty";
|
|
||||||
browser = "brave";
|
|
||||||
};
|
|
||||||
|
|
||||||
autoUpgrade = false;
|
|
||||||
autoGarbageCollector = true;
|
|
||||||
|
|
||||||
hyprland = {
|
hyprland = {
|
||||||
workspace = [
|
workspace = [
|
||||||
@@ -54,12 +22,4 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Let this here
|
|
||||||
options = {
|
|
||||||
var = lib.mkOption {
|
|
||||||
type = lib.types.attrs;
|
|
||||||
default = { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
8
modules/home-manager/common.nix
Normal file
8
modules/home-manager/common.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../variables.nix
|
||||||
|
./shell
|
||||||
|
./git.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
97
modules/home-manager/desktop.nix
Normal file
97
modules/home-manager/desktop.nix
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./common.nix
|
||||||
|
../../secrets
|
||||||
|
|
||||||
|
# Programs
|
||||||
|
./accounts
|
||||||
|
./nixCats
|
||||||
|
|
||||||
|
./aerc.nix
|
||||||
|
./bitwarden.nix
|
||||||
|
./direnv.nix
|
||||||
|
./discord.nix
|
||||||
|
./ghostty.nix
|
||||||
|
./gpg.nix
|
||||||
|
./khal.nix
|
||||||
|
./kitty.nix
|
||||||
|
./lazygit.nix
|
||||||
|
./nh.nix
|
||||||
|
./rclone.nix
|
||||||
|
./spicetify.nix
|
||||||
|
./ssh.nix
|
||||||
|
./thunar.nix
|
||||||
|
./thunderbird.nix
|
||||||
|
./todoman.nix
|
||||||
|
./vicinae.nix
|
||||||
|
./zathura.nix
|
||||||
|
|
||||||
|
# Scripts
|
||||||
|
./scripts
|
||||||
|
|
||||||
|
# System (Desktop environment like stuff)
|
||||||
|
./hyprland
|
||||||
|
./hyprpanel.nix
|
||||||
|
./hyprpaper.nix
|
||||||
|
./hyprsunset.nix
|
||||||
|
./mime.nix
|
||||||
|
./udiskie.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
dotnet-runtime
|
||||||
|
dafny
|
||||||
|
|
||||||
|
gemini-cli
|
||||||
|
|
||||||
|
# Apps
|
||||||
|
bitwarden-desktop # Password manager
|
||||||
|
vlc # Video player
|
||||||
|
blanket # White-noise app
|
||||||
|
obsidian # Note taking app
|
||||||
|
planify # Todolists
|
||||||
|
textpieces # Manipulate texts
|
||||||
|
curtail # Compress images
|
||||||
|
resources # Ressource monitor
|
||||||
|
gnome-clocks # Clocks app
|
||||||
|
gnome-text-editor # Basic graphic text editor
|
||||||
|
mpv # Video player
|
||||||
|
brave # Web browser
|
||||||
|
|
||||||
|
# Privacy
|
||||||
|
session-desktop # Session app, private messages
|
||||||
|
signal-desktop # Signal app, private messages
|
||||||
|
protonvpn-gui
|
||||||
|
proton-pass
|
||||||
|
proton-authenticator
|
||||||
|
ticktick # Privacy friendly todo app
|
||||||
|
|
||||||
|
# Utils
|
||||||
|
zip
|
||||||
|
unzip
|
||||||
|
optipng
|
||||||
|
jpegoptim
|
||||||
|
pfetch
|
||||||
|
btop
|
||||||
|
fastfetch
|
||||||
|
|
||||||
|
# Just cool
|
||||||
|
peaclock
|
||||||
|
cbonsai
|
||||||
|
pipes
|
||||||
|
cmatrix
|
||||||
|
|
||||||
|
# Backup
|
||||||
|
vscode
|
||||||
|
|
||||||
|
libreoffice-qt6-fresh
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
hyprsunset = {
|
hyprsunset = {
|
||||||
@@ -12,7 +13,7 @@
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
time = "23:00";
|
time = "23:00";
|
||||||
temperature = 2000;
|
temperature = config.var.hyprsunset.temperature;
|
||||||
gamma = 0.8;
|
gamma = 0.8;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,102 +0,0 @@
|
|||||||
# Wofi is a launcher for Wayland, inspired by rofi.
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
accent = "#${config.lib.stylix.colors.base0D}";
|
|
||||||
background = "#${config.lib.stylix.colors.base00}";
|
|
||||||
background-alt = "#${config.lib.stylix.colors.base01}";
|
|
||||||
foreground = "#${config.lib.stylix.colors.base05}";
|
|
||||||
font = config.stylix.fonts.serif.name;
|
|
||||||
rounding = config.theme.rounding;
|
|
||||||
font-size = config.stylix.fonts.sizes.popups;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [ wofi-emoji ];
|
|
||||||
|
|
||||||
programs.wofi = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
allow_markup = true;
|
|
||||||
width = 450;
|
|
||||||
show = "drun";
|
|
||||||
prompt = "Apps";
|
|
||||||
normal_window = true;
|
|
||||||
height = 305;
|
|
||||||
allow_images = true;
|
|
||||||
image_size = 24;
|
|
||||||
insensitive = true;
|
|
||||||
hide_scroll = true;
|
|
||||||
no_actions = true;
|
|
||||||
gtk_dark = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
style =
|
|
||||||
lib.mkForce
|
|
||||||
# css
|
|
||||||
''
|
|
||||||
* {
|
|
||||||
font-family: "${font}";
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: ${toString font-size}px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
background-color: ${background};
|
|
||||||
color: ${foreground};
|
|
||||||
border-radius: ${toString rounding}px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#outer-box {
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input {
|
|
||||||
background-color: ${background-alt};
|
|
||||||
border: 0px solid ${accent};
|
|
||||||
color: ${foreground};
|
|
||||||
padding: 8px 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#scroll {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#inner-box {}
|
|
||||||
|
|
||||||
#img {
|
|
||||||
padding-right: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#text {
|
|
||||||
color: ${foreground};
|
|
||||||
}
|
|
||||||
|
|
||||||
#text:selected {
|
|
||||||
color: ${foreground};
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry {
|
|
||||||
padding: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry:selected {
|
|
||||||
background-color: ${accent};
|
|
||||||
color: ${foreground};
|
|
||||||
}
|
|
||||||
|
|
||||||
#unselected {}
|
|
||||||
|
|
||||||
#selected {}
|
|
||||||
|
|
||||||
#input,
|
|
||||||
#entry:selected {
|
|
||||||
border-radius: ${toString rounding}px;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
# Adguard is a network-wide ad blocker
|
|
||||||
# When installed, open localhost:3000 to setup
|
|
||||||
{config, ...}: let
|
|
||||||
domain = "adguard.hadi.diy";
|
|
||||||
in {
|
|
||||||
services = {
|
|
||||||
adguardhome = {
|
|
||||||
enable = true;
|
|
||||||
port = 3000;
|
|
||||||
};
|
|
||||||
|
|
||||||
nginx.virtualHosts."${domain}" = {
|
|
||||||
useACMEHost = "hadi.diy";
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:${toString config.services.adguardhome.port}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
# *arr is a collection of media management applications.
|
|
||||||
# See https://github.com/rasmus-kirk/nixarr
|
|
||||||
# Setup guide: https://nixarr.com/wiki/setup/
|
|
||||||
{config, ...}: let
|
|
||||||
domain = "hadi.diy";
|
|
||||||
mkVirtualHost = port: {
|
|
||||||
useACMEHost = domain;
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {proxyPass = "http://127.0.0.1:${toString port}";};
|
|
||||||
};
|
|
||||||
username = config.var.username;
|
|
||||||
in {
|
|
||||||
# Add my secrets
|
|
||||||
sops.secrets = {
|
|
||||||
recyclarr = {
|
|
||||||
owner = "recyclarr";
|
|
||||||
mode = "0777";
|
|
||||||
};
|
|
||||||
wireguard-pia = {
|
|
||||||
group = "media";
|
|
||||||
mode = "0600";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nixarr = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
mediaUsers = [username];
|
|
||||||
mediaDir = "/mnt/data/media";
|
|
||||||
stateDir = "/mnt/data/.state/nixarr";
|
|
||||||
|
|
||||||
vpn = {
|
|
||||||
enable = true;
|
|
||||||
wgConf = config.sops.secrets.wireguard-pia.path;
|
|
||||||
};
|
|
||||||
|
|
||||||
jellyfin.enable = true;
|
|
||||||
jellyseerr.enable = true;
|
|
||||||
prowlarr.enable = true;
|
|
||||||
radarr.enable = true;
|
|
||||||
sonarr.enable = true;
|
|
||||||
bazarr.enable = true;
|
|
||||||
readarr.enable = true;
|
|
||||||
transmission = {
|
|
||||||
enable = true;
|
|
||||||
extraSettings = {trash-original-torrent-files = true;};
|
|
||||||
vpn.enable = true;
|
|
||||||
};
|
|
||||||
recyclarr = {
|
|
||||||
enable = true;
|
|
||||||
configFile = config.sops.secrets.recyclarr.path;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.nginx.virtualHosts = {
|
|
||||||
"jellyfin.${domain}" = mkVirtualHost 8096;
|
|
||||||
"jellyseerr.${domain}" = mkVirtualHost 5055;
|
|
||||||
"bazarr.${domain}" = mkVirtualHost 6767;
|
|
||||||
"prowlarr.${domain}" = mkVirtualHost 9696;
|
|
||||||
"radarr.${domain}" = mkVirtualHost 7878;
|
|
||||||
"sonarr.${domain}" = mkVirtualHost 8989;
|
|
||||||
"transmission.${domain}" = mkVirtualHost 9091;
|
|
||||||
"readarr.${domain}" = mkVirtualHost 8787;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
10
modules/nixos/common.nix
Normal file
10
modules/nixos/common.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./home-manager.nix
|
||||||
|
./nix.nix
|
||||||
|
./users.nix
|
||||||
|
./utils.nix
|
||||||
|
../variables.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
12
modules/nixos/desktop.nix
Normal file
12
modules/nixos/desktop.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./common.nix
|
||||||
|
./audio.nix
|
||||||
|
./bluetooth.nix
|
||||||
|
./fonts.nix
|
||||||
|
./sddm.nix
|
||||||
|
./hyprland.nix
|
||||||
|
./systemd-boot.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# Docker is a containerization platform that allows you to run applications in isolated environments called containers.
|
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
users.users."${config.var.username}".extraGroups = [ "docker" ];
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
users.groups.eleakxir = { };
|
|
||||||
users.users.hadi.extraGroups = [ "eleakxir" ];
|
|
||||||
|
|
||||||
services.eleakxir = {
|
|
||||||
enable = true;
|
|
||||||
port = 9198;
|
|
||||||
user = "eleakxir";
|
|
||||||
group = "eleakxir";
|
|
||||||
limit = 1000;
|
|
||||||
folders = [
|
|
||||||
"/var/lib/eleakxir/leaks/"
|
|
||||||
"/mnt/data/clean-leak/"
|
|
||||||
];
|
|
||||||
debug = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
inputs.eleakxir.packages.${pkgs.stdenv.hostPlatform.system}.leak-utils
|
|
||||||
];
|
|
||||||
|
|
||||||
services.nginx.virtualHosts."eleakxir-back.hadi.diy" = {
|
|
||||||
useACMEHost = "hadi.diy";
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:${toString config.services.eleakxir.port}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,353 +0,0 @@
|
|||||||
# Glance is a self-hosted homepage/dashboard service.
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
domain = "start.hadi.diy";
|
|
||||||
|
|
||||||
rgb-to-hsl = color: let
|
|
||||||
r = ((lib.toInt config.lib.stylix.colors."${color}-rgb-r") * 100.0) / 255;
|
|
||||||
g = ((lib.toInt config.lib.stylix.colors."${color}-rgb-g") * 100.0) / 255;
|
|
||||||
b = ((lib.toInt config.lib.stylix.colors."${color}-rgb-b") * 100.0) / 255;
|
|
||||||
max = lib.max r (lib.max g b);
|
|
||||||
min = lib.min r (lib.min g b);
|
|
||||||
delta = max - min;
|
|
||||||
fmod = base: int: base - (int * builtins.floor (base / int));
|
|
||||||
h =
|
|
||||||
if delta == 0
|
|
||||||
then 0
|
|
||||||
else if max == r
|
|
||||||
then 60 * (fmod ((g - b) / delta) 6)
|
|
||||||
else if max == g
|
|
||||||
then 60 * (((b - r) / delta) + 2)
|
|
||||||
else if max == b
|
|
||||||
then 60 * (((r - g) / delta) + 4)
|
|
||||||
else 0;
|
|
||||||
l = (max + min) / 2;
|
|
||||||
s =
|
|
||||||
if delta == 0
|
|
||||||
then 0
|
|
||||||
else 100 * delta / (100 - lib.max (2 * l - 100) (100 - (2 * l)));
|
|
||||||
roundToString = value: toString (builtins.floor (value + 0.5));
|
|
||||||
in
|
|
||||||
lib.concatMapStringsSep " " roundToString [h s l];
|
|
||||||
in {
|
|
||||||
# TODO: Add tailscale custom widget
|
|
||||||
services = {
|
|
||||||
glance = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
theme = {
|
|
||||||
contrast-multiplier = lib.mkForce 1.4;
|
|
||||||
};
|
|
||||||
pages = [
|
|
||||||
{
|
|
||||||
hide-desktop-navigation = true;
|
|
||||||
columns = [
|
|
||||||
{
|
|
||||||
size = "small";
|
|
||||||
widgets = [
|
|
||||||
{
|
|
||||||
type = "clock";
|
|
||||||
hour-format = "24h";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "weather";
|
|
||||||
location = "Paris, France";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "markets";
|
|
||||||
markets = [
|
|
||||||
{
|
|
||||||
symbol = "BTC-USD";
|
|
||||||
name = "Bitcoin";
|
|
||||||
chart-link = "https://www.tradingview.com/chart/?symbol=INDEX:BTCUSD";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
symbol = "SOL-USD";
|
|
||||||
name = "Solana";
|
|
||||||
chart-link = "https://www.tradingview.com/chart/?symbol=INDEX:SOLUSD";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
symbol = "ETH-USD";
|
|
||||||
name = "Ethereum";
|
|
||||||
chart-link = "https://www.tradingview.com/chart/?symbol=INDEX:ETHUSD";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "dns-stats";
|
|
||||||
service = "adguard";
|
|
||||||
url = "https://adguard.hadi.diy";
|
|
||||||
username = "hadi";
|
|
||||||
password = "\${secret:adguard-pwd}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
size = "full";
|
|
||||||
widgets = [
|
|
||||||
{
|
|
||||||
type = "search";
|
|
||||||
search-engine = "duckduckgo";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "bookmarks";
|
|
||||||
groups = [
|
|
||||||
{
|
|
||||||
title = "";
|
|
||||||
same-tab = true;
|
|
||||||
color = "200 50 50";
|
|
||||||
links = [
|
|
||||||
{
|
|
||||||
title = "ProtonMail";
|
|
||||||
url = "https://proton.me/mail";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Github";
|
|
||||||
url = "https://github.com";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Youtube";
|
|
||||||
url = "https://youtube.com";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Figma";
|
|
||||||
url = "https://figma.com";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Docs";
|
|
||||||
same-tab = true;
|
|
||||||
color = "200 50 50";
|
|
||||||
links = [
|
|
||||||
{
|
|
||||||
title = "Nixpkgs repo";
|
|
||||||
url = "https://github.com/NixOS/nixpkgs";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Nixvim";
|
|
||||||
url = "https://nix-community.github.io/nixvim/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Hyprland wiki";
|
|
||||||
url = "https://wiki.hyprland.org/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Search NixOS";
|
|
||||||
url = "https://search-nixos.hadi.diy";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Homelab";
|
|
||||||
same-tab = true;
|
|
||||||
color = "100 50 50";
|
|
||||||
links = [
|
|
||||||
{
|
|
||||||
title = "Router";
|
|
||||||
url = "http://192.168.1.254/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Cloudflare";
|
|
||||||
url = "https://dash.cloudflare.com/";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Work";
|
|
||||||
same-tab = true;
|
|
||||||
color = "50 50 50";
|
|
||||||
links = [
|
|
||||||
{
|
|
||||||
title = "Outlook";
|
|
||||||
url = "https://outlook.office.com/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Teams";
|
|
||||||
url = "https://teams.microsoft.com/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Office";
|
|
||||||
url = "https://www.office.com/";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Cyber";
|
|
||||||
same-tab = true;
|
|
||||||
color = rgb-to-hsl "base09";
|
|
||||||
links = [
|
|
||||||
{
|
|
||||||
title = "CyberChef";
|
|
||||||
url = "https://cyberchef.org/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "TryHackMe";
|
|
||||||
url = "https://tryhackme.com/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "RootMe";
|
|
||||||
url = "https://www.root-me.org/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Exploit-DB";
|
|
||||||
url = "https://www.exploit-db.com/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "CrackStation";
|
|
||||||
url = "https://crackstation.net/";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Misc";
|
|
||||||
same-tab = true;
|
|
||||||
color = rgb-to-hsl "base01";
|
|
||||||
links = [
|
|
||||||
{
|
|
||||||
title = "Svgl";
|
|
||||||
url = "https://svgl.app/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Excalidraw";
|
|
||||||
url = "https://excalidraw.com/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Cobalt (Downloader)";
|
|
||||||
url = "https://cobalt.tools/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Mazanoke (Image optimizer)";
|
|
||||||
url = "https://mazanoke.com/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Vert (File converter)";
|
|
||||||
url = "https://vert.sh/";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "server-stats";
|
|
||||||
servers = [
|
|
||||||
{
|
|
||||||
type = "local";
|
|
||||||
name = "Jack";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "group";
|
|
||||||
widgets = [
|
|
||||||
{
|
|
||||||
type = "monitor";
|
|
||||||
title = "Services";
|
|
||||||
cache = "1m";
|
|
||||||
sites = [
|
|
||||||
{
|
|
||||||
title = "Vaultwarden";
|
|
||||||
url = "https://vault.hadi.diy";
|
|
||||||
icon = "si:bitwarden";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Nextcloud";
|
|
||||||
url = "https://cloud.hadi.diy";
|
|
||||||
icon = "si:nextcloud";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Adguard";
|
|
||||||
url = "https://adguard.hadi.diy";
|
|
||||||
icon = "si:adguard";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Mealie";
|
|
||||||
url = "https://mealie.hadi.diy";
|
|
||||||
icon = "si:mealie";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "monitor";
|
|
||||||
title = "*arr";
|
|
||||||
cache = "1m";
|
|
||||||
sites = [
|
|
||||||
{
|
|
||||||
title = "Jellyfin";
|
|
||||||
url = "https://jellyfin.hadi.diy";
|
|
||||||
icon = "si:jellyfin";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Jellyseerr";
|
|
||||||
url = "https://jellyseerr.hadi.diy";
|
|
||||||
icon = "si:odysee";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Radarr";
|
|
||||||
url = "https://radarr.hadi.diy";
|
|
||||||
icon = "si:radarr";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Sonarr";
|
|
||||||
url = "https://sonarr.hadi.diy";
|
|
||||||
icon = "si:sonarr";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Prowlarr";
|
|
||||||
url = "https://prowlarr.hadi.diy";
|
|
||||||
icon = "si:podcastindex";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Transmission";
|
|
||||||
url = "https://transmission.hadi.diy";
|
|
||||||
icon = "si:transmission";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
name = "Home";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
server = {port = 5678;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
nginx.virtualHosts."${domain}" = {
|
|
||||||
useACMEHost = "hadi.diy";
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:${
|
|
||||||
toString config.services.glance.settings.server.port
|
|
||||||
}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.glance = {
|
|
||||||
serviceConfig = {
|
|
||||||
DynamicUser = lib.mkForce false;
|
|
||||||
User = "glance";
|
|
||||||
Group = "glance";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users = {
|
|
||||||
groups.glance = {};
|
|
||||||
users.glance = {
|
|
||||||
isSystemUser = true;
|
|
||||||
description = "Glance user";
|
|
||||||
group = "glance";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sops.secrets.adguard-pwd = {
|
|
||||||
owner = "glance";
|
|
||||||
mode = "0600";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
# Mealie is a recipe management and meal planning application.
|
|
||||||
{config, ...}: let
|
|
||||||
domain = "mealie.hadi.diy";
|
|
||||||
in {
|
|
||||||
services = {
|
|
||||||
mealie = {
|
|
||||||
enable = true;
|
|
||||||
port = 8092;
|
|
||||||
};
|
|
||||||
|
|
||||||
nginx.virtualHosts."${domain}" = {
|
|
||||||
useACMEHost = "hadi.diy";
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:${toString config.services.mealie.port}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
# Nginx is a web server that can also be used as a reverse proxy, load balancer, and HTTP cache.
|
|
||||||
{config, ...}: let
|
|
||||||
domain = "hadi.diy";
|
|
||||||
in {
|
|
||||||
security.acme = {
|
|
||||||
acceptTerms = true;
|
|
||||||
defaults.email = config.var.git.email;
|
|
||||||
certs."${domain}" = {
|
|
||||||
domain = "${domain}";
|
|
||||||
extraDomainNames = ["*.${domain}"];
|
|
||||||
group = "nginx";
|
|
||||||
dnsProvider = "cloudflare";
|
|
||||||
dnsPropagationCheck = true;
|
|
||||||
credentialsFile = config.sops.secrets.cloudflare-dns-token.path;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Return 444 for all requests not matching a used subdomain.
|
|
||||||
services.nginx = {
|
|
||||||
enable = true;
|
|
||||||
virtualHosts = {
|
|
||||||
"default" = {
|
|
||||||
default = true;
|
|
||||||
locations."/" = {return = 444;};
|
|
||||||
};
|
|
||||||
"*.${domain}" = {
|
|
||||||
useACMEHost = domain;
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {return = 444;};
|
|
||||||
};
|
|
||||||
"aaaaaa.${domain}" = {
|
|
||||||
useACMEHost = domain;
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {return = 444;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.firewall = {
|
|
||||||
allowedTCPPorts = [80 443];
|
|
||||||
allowedUDPPorts = [80 443];
|
|
||||||
};
|
|
||||||
|
|
||||||
sops.secrets.cloudflare-dns-token = {path = "/etc/cloudflare/dnskey.txt";};
|
|
||||||
}
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
# Omen laptop configuration for NixOS
|
|
||||||
# Import this only if you have an HP Omen laptop
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
hp-omen-linux-module =
|
|
||||||
pkgs.callPackage
|
|
||||||
({
|
|
||||||
kernel ? config.boot.kernelPackages.kernel,
|
|
||||||
stdenv,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}:
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
|
||||||
pname = "hp-omen-linux-module";
|
|
||||||
version = "rebase-6.14";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "ranisalt";
|
|
||||||
repo = "hp-omen-linux-module";
|
|
||||||
rev = finalAttrs.version;
|
|
||||||
sha256 = "sha256-2zCm29bdboSjRm/caMjBPGNc0tZXPUnIIYlHxxfhAok=";
|
|
||||||
};
|
|
||||||
setSourceRoot = ''
|
|
||||||
export sourceRoot=$(pwd)/${finalAttrs.src.name}/src
|
|
||||||
'';
|
|
||||||
nativeBuildInputs = kernel.moduleBuildDependencies;
|
|
||||||
makeFlags = [
|
|
||||||
"KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
|
||||||
];
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
install hp-wmi.ko -Dm444 -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/platform/x86/hp/
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
})) {kernel = config.boot.kernelPackages.kernel;};
|
|
||||||
in {
|
|
||||||
boot.extraModulePackages = [hp-omen-linux-module];
|
|
||||||
boot.kernelModules = ["hp-wmi"];
|
|
||||||
|
|
||||||
users.groups.omen-rgb = {};
|
|
||||||
users.users.${config.var.username}.extraGroups = ["omen-rgb"];
|
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
|
||||||
"w /sys/devices/platform/hp-wmi/rgb_zones/zone00 0660 root omen-rgb -"
|
|
||||||
"w /sys/devices/platform/hp-wmi/rgb_zones/zone01 0660 root omen-rgb -"
|
|
||||||
"w /sys/devices/platform/hp-wmi/rgb_zones/zone02 0660 root omen-rgb -"
|
|
||||||
"w /sys/devices/platform/hp-wmi/rgb_zones/zone03 0660 root omen-rgb -"
|
|
||||||
];
|
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
|
||||||
SUBSYSTEM=="platform", KERNEL=="hp-wmi", ACTION=="add", \
|
|
||||||
RUN+="${pkgs.coreutils-full}/bin/sleep 2", \
|
|
||||||
RUN+="${pkgs.coreutils}/bin/chgrp omen-rgb /sys/devices/platform/hp-wmi/rgb_zones/zone00", \
|
|
||||||
RUN+="${pkgs.coreutils}/bin/chmod 0660 /sys/devices/platform/hp-wmi/rgb_zones/zone00", \
|
|
||||||
RUN+="${pkgs.coreutils}/bin/chgrp omen-rgb /sys/devices/platform/hp-wmi/rgb_zones/zone01", \
|
|
||||||
RUN+="${pkgs.coreutils}/bin/chmod 0660 /sys/devices/platform/hp-wmi/rgb_zones/zone01", \
|
|
||||||
RUN+="${pkgs.coreutils}/bin/chgrp omen-rgb /sys/devices/platform/hp-wmi/rgb_zones/zone02", \
|
|
||||||
RUN+="${pkgs.coreutils}/bin/chmod 0660 /sys/devices/platform/hp-wmi/rgb_zones/zone02", \
|
|
||||||
RUN+="${pkgs.coreutils}/bin/chgrp omen-rgb /sys/devices/platform/hp-wmi/rgb_zones/zone03", \
|
|
||||||
RUN+="${pkgs.coreutils}/bin/chmod 0660 /sys/devices/platform/hp-wmi/rgb_zones/zone03"
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
41
modules/variables.nix
Normal file
41
modules/variables.nix
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./themes/catppuccin.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config.var = {
|
||||||
|
username = "kiri";
|
||||||
|
configDirectory = "/home/" + config.var.username + "/.config/nixos";
|
||||||
|
|
||||||
|
keyboardLayout = "us";
|
||||||
|
|
||||||
|
location = "Meterik";
|
||||||
|
timeZone = "Europe/Amsterdam";
|
||||||
|
defaultLocale = "en_US.UTF-8";
|
||||||
|
timeLocale = "en_DK.UTF-8";
|
||||||
|
numericLocale = "en_IE.UTF-8";
|
||||||
|
otherLocale = "nl_NL.UTF-8";
|
||||||
|
|
||||||
|
git = {
|
||||||
|
username = "kiri";
|
||||||
|
email = "mail@jelles.net";
|
||||||
|
};
|
||||||
|
|
||||||
|
preferred = {
|
||||||
|
editor = "nvim";
|
||||||
|
terminal = "kitty";
|
||||||
|
browser = "brave";
|
||||||
|
};
|
||||||
|
|
||||||
|
autoUpgrade = false;
|
||||||
|
autoGarbageCollector = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
options = {
|
||||||
|
var = lib.mkOption {
|
||||||
|
type = lib.types.attrs;
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user