diff --git a/flake.lock b/flake.lock
index b922e6d..08f0447 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,5 +1,28 @@
{
"nodes": {
+ "apple-fonts": {
+ "inputs": {
+ "nixpkgs": "nixpkgs",
+ "ny": "ny",
+ "sf-arabic": "sf-arabic",
+ "sf-compact": "sf-compact",
+ "sf-mono": "sf-mono",
+ "sf-pro": "sf-pro"
+ },
+ "locked": {
+ "lastModified": 1732029343,
+ "narHash": "sha256-sAOEhA/vfyAKggwyI3PNy2xeNzb/USZl4YNpeSzMRBI=",
+ "owner": "lyndeno",
+ "repo": "apple-fonts.nix",
+ "rev": "714767021b57d0d30de35eb90e4b748fbbb9c99f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "lyndeno",
+ "repo": "apple-fonts.nix",
+ "type": "github"
+ }
+ },
"base16-schemes": {
"flake": false,
"locked": {
@@ -23,16 +46,16 @@
]
},
"locked": {
- "lastModified": 1726989464,
- "narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
+ "lastModified": 1732466619,
+ "narHash": "sha256-T1e5oceypZu3Q8vzICjv1X/sGs9XfJRMW5OuXHgpB3c=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
+ "rev": "f3111f62a23451114433888902a55cf0692b408d",
"type": "github"
},
"original": {
"owner": "nix-community",
- "ref": "release-24.05",
+ "ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
@@ -58,17 +81,18 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1728067476,
- "narHash": "sha256-/uJcVXuBt+VFCPQIX+4YnYrHaubJSx4HoNsJVNRgANM=",
- "owner": "NixOS",
+ "lastModified": 1731319897,
+ "narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=",
+ "owner": "nixos",
"repo": "nixpkgs",
- "rev": "6e6b3dd395c3b1eb9be9f2d096383a8d05add030",
+ "rev": "dc460ec76cbff0e66e269457d7b728432263166c",
"type": "github"
},
"original": {
- "id": "nixpkgs",
- "ref": "nixos-24.05",
- "type": "indirect"
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
}
},
"nixpkgs-lib": {
@@ -88,11 +112,11 @@
},
"nixpkgs-unstable": {
"locked": {
- "lastModified": 1728018373,
- "narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=",
+ "lastModified": 1732521221,
+ "narHash": "sha256-2ThgXBUXAE1oFsVATK1ZX9IjPcS4nKFOAjhPNKuiMn0=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "bc947f541ae55e999ffdb4013441347d83b00feb",
+ "rev": "4633a7c72337ea8fd23a4f2ba3972865e3ec685d",
"type": "github"
},
"original": {
@@ -101,13 +125,89 @@
"type": "indirect"
}
},
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1732350895,
+ "narHash": "sha256-GcOQbOgmwlsRhpLGSwZJwLbo3pu9ochMETuRSS1xpz4=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "0c582677378f2d9ffcb01490af2f2c678dcb29d3",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "nixos-24.11",
+ "type": "indirect"
+ }
+ },
+ "ny": {
+ "flake": false,
+ "locked": {
+ "narHash": "sha256-3257NAH4qlan2YHVLpNRy7x8IJqR2pal3OzFo/ykqXs=",
+ "type": "file",
+ "url": "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
+ },
+ "original": {
+ "type": "file",
+ "url": "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
+ }
+ },
"root": {
"inputs": {
+ "apple-fonts": "apple-fonts",
"home-manager": "home-manager",
"nix-colors": "nix-colors",
- "nixpkgs": "nixpkgs",
+ "nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable"
}
+ },
+ "sf-arabic": {
+ "flake": false,
+ "locked": {
+ "narHash": "sha256-/0gjRimqvZyE60xYxxPdlU+7Q2LJnnvtbmwOP0YmS9U=",
+ "type": "file",
+ "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Arabic.dmg"
+ },
+ "original": {
+ "type": "file",
+ "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Arabic.dmg"
+ }
+ },
+ "sf-compact": {
+ "flake": false,
+ "locked": {
+ "narHash": "sha256-J72Lyt2wy83E46wN8w6/Rih9kilM9wEjtY6KnbF0DsA=",
+ "type": "file",
+ "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"
+ },
+ "original": {
+ "type": "file",
+ "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"
+ }
+ },
+ "sf-mono": {
+ "flake": false,
+ "locked": {
+ "narHash": "sha256-ICdHRFdNL7PM/fXJUzS7LgZxZiqcyIuCMHLze4En4vg=",
+ "type": "file",
+ "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"
+ },
+ "original": {
+ "type": "file",
+ "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"
+ }
+ },
+ "sf-pro": {
+ "flake": false,
+ "locked": {
+ "narHash": "sha256-Q/pOQ4MGhW/ZtLka+UUQcwSoZFDWW34XvutxL4GvzUY=",
+ "type": "file",
+ "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"
+ },
+ "original": {
+ "type": "file",
+ "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"
+ }
}
},
"root": "root",
diff --git a/flake.nix b/flake.nix
index 5858fda..196a545 100644
--- a/flake.nix
+++ b/flake.nix
@@ -2,19 +2,20 @@
description = "Nixos configuration for Xeovalyte";
inputs = {
- nixpkgs.url = "nixpkgs/nixos-24.05";
+ nixpkgs.url = "nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
home-manager = {
- url = "github:nix-community/home-manager/release-24.05";
+ url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-colors.url = "github:misterio77/nix-colors";
+ apple-fonts.url = "github:lyndeno/apple-fonts.nix";
};
- outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, home-manager, nix-colors, ... }:
+ outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, home-manager, nix-colors, apple-fonts, ... }:
let
system = "x86_64-linux";
overlay-unstable = final: prev: {
diff --git a/homelab/README.md b/homelab/README.md
index f968a16..cc5eca3 100644
--- a/homelab/README.md
+++ b/homelab/README.md
@@ -1,13 +1,44 @@
-# Create proxy network
-`docker network create proxy`
+# Configuration steps
-# Configure caddy cloudflare
-Find instructions on [caddy-dns cloudflare](https://github.com/caddy-dns/cloudflare)
+## 1. Install [NixOS](https://nixos.org/)
+
+Follow the steps from the [NixOS Manual Installation](https://nixos.org/manual/nixos/stable/#sec-installation-manual)
+
+> At the edit configuration.nix step you must:
+>
+> - Add a user to the configuration file and set a password
+> - Enable openssh
+
+## 2. Configuring flake
+
+1. Clone this repository
+2. Copy hardware configuration to host
+ `cp /etc/nixos/hardware-configuration.nix ~/nix/hosts//hardware-configuration.nix`
+3. Rebuild system
+ `sudo nixos-rebuild switch --flake .#`
+4. Rebuild home-manager
+ `home-manager switch --flake .#@`
+5. Reboot
+
+## 3. Configuring docker containers
+
+1. Create proxy network
+ `docker network create proxy`
+
+2. Configure [Adguard](./adguard/README.md)
+3. Configure [Caddy](./caddy/README.md)
+4. Configure [Authelia](./authelia/README.md)
+5. Configure the rest of the services
# Services
-| Name | Use | Domain | Auth |
-| --- | --- | --- | --- |
-| Adguard | DNS | https://adguard.timo.bmrs.nl/ | local |
-| Caddy | Reverse proxy | - | - |
-| Forgejo | Git | https://git.timo.bmrs.nl/ | Openid |
-| Ldap | User directory | https://ldap.timo.bmrs.nl/ | - |
+
+| Name | Use | Domain | Auth |
+| ------- | -------------- | ----------------------------- | ------ |
+| Adguard | DNS | https://adguard.timo.bmrs.nl/ | local |
+| Caddy | Reverse proxy | - | - |
+| Forgejo | Git | https://git.timo.bmrs.nl/ | Openid |
+| Ldap | User directory | https://ldap.timo.bmrs.nl/ | - |
+
+# Services to try out
+
+- [Beszel](https://github.com/henrygd/beszel)
diff --git a/homelab/adguard/README.md b/homelab/adguard/README.md
new file mode 100644
index 0000000..24a0cbc
--- /dev/null
+++ b/homelab/adguard/README.md
@@ -0,0 +1,7 @@
+# Adguard Home
+
+1. Temporaraly edit ports in docker-compose file to setup
+2. Configuration screen
+ 1. Change listen interface to port 3000
+3. Add DNS rewrite for *.timo.bmrs.nl
+4. Delete temporaraly port edit in docker-compose
diff --git a/homelab/authelia/README.md b/homelab/authelia/README.md
index 7bcd542..89b03a9 100644
--- a/homelab/authelia/README.md
+++ b/homelab/authelia/README.md
@@ -1,2 +1,13 @@
-- Follow [This](https://www.authelia.com/configuration/identity-providers/openid-connect/provider/) guide for generating keys
-- Store the keys in the /keys directory
+# Authelia
+
+1. Edit environment variables.
+ 1. For HMAC_SECRET, JWT_SECRET, ADMIN_PASSWORD, SESSION_SECRET, STORAGE_ENCRYPTION_KEY, LLDAP_KEY_SEED use an random alphanumeric string of at least 64 characters
+ 2. For CLIENT_SECRET, CLIEND_ID: [Generate client identifier](https://www.authelia.com/integration/openid-connect/frequently-asked-questions/#how-do-i-generate-a-client-identifier-or-client-secret)
+ 1. Use single quotes for the client secret
+
+2. Generate PAM file using and save it to the /config/keys directory: [Generating keypair](https://www.authelia.com/reference/guides/generating-secure-values/#generating-an-rsa-keypair)
+ 1. Save the random password
+
+3. Configure LLDAP
+ 1. Create a user in LLDAP with the group: lldap_password_manager
+ 2. Create groups: forgejo
diff --git a/homelab/caddy/README.md b/homelab/caddy/README.md
index b5bf719..b69ae0f 100644
--- a/homelab/caddy/README.md
+++ b/homelab/caddy/README.md
@@ -1,2 +1,4 @@
# Caddy reverse proxy
-Follow [this](https://github.com/caddy-dns/cloudflare) to obtain secrets
+
+1. Obtain cloudflare tokens: [Caddy Cloudflare](https://github.com/caddy-dns/cloudflare)
+2. Set environment variables
diff --git a/homelab/nextcloud/README.md b/homelab/nextcloud/README.md
new file mode 100644
index 0000000..5895975
--- /dev/null
+++ b/homelab/nextcloud/README.md
@@ -0,0 +1,4 @@
+# Nextcloud
+
+1. Configure environment variables
+2. Update office configuration
diff --git a/hosts/laptop/default.nix b/hosts/laptop/default.nix
index 4e84fb3..4a89c17 100644
--- a/hosts/laptop/default.nix
+++ b/hosts/laptop/default.nix
@@ -51,6 +51,8 @@
extraGroups = [ "networkmanager" "wheel" "dialout" ];
};
+ nix.settings.trusted-users = [ "root" "xeovalyte" ];
+
boot.kernelPackages = pkgs.linuxPackages_latest;
# Configure wacom tablet
diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix
index cec66cd..4fcb058 100644
--- a/hosts/laptop/home.nix
+++ b/hosts/laptop/home.nix
@@ -1,4 +1,4 @@
-{ pkgs, lib, config, ... }:
+{ pkgs, lib, ... }:
{
imports = [
@@ -45,19 +45,23 @@
home.packages = with pkgs; [
# Desktop Applications
kdenlive
- unstable.prismlauncher
+ prismlauncher
+ unstable.modrinth-app
unstable.joplin-desktop
unstable.prusa-slicer
+ unstable.font-manager
signal-desktop
unstable.vesktop
- unstable.blender
+ unstable.webcord
+ blender
+ unstable.freecad-wayland
loupe
unstable.rnote
+ unstable.bottles
+
# Office
libreoffice
- onlyoffice-bin
- papers
# Image editing
gimp
diff --git a/modules/home/cli/common/helix.nix b/modules/home/cli/common/helix.nix
index 759a87e..09dfc54 100644
--- a/modules/home/cli/common/helix.nix
+++ b/modules/home/cli/common/helix.nix
@@ -3,21 +3,25 @@
{
home.packages = with pkgs; [
unstable.marksman
+ unstable.markdown-oxide
unstable.svls
unstable.nil
unstable.nixpkgs-fmt
- unstable.vale-ls
- unstable.vale
+ unstable.tectonic
+ unstable.texlab
+ dprint
];
- home.file.".config/vale/.vale.ini".text = ''
- StylesPath = ~/.local/share/vale/styles
-
- MinAlertLevel = suggestion
- Packages = Readability
-
- [*]
- BasedOnStyles = Vale
+ home.file.".config/.dprint.json".text =''
+ {
+ "markdown": {
+ "lineWidth":120,
+ },
+ "excludes": [],
+ "plugins": [
+ "https://plugins.dprint.dev/markdown-0.16.1.wasm"
+ ]
+ }
'';
programs.helix = {
@@ -43,9 +47,38 @@
command = "svls";
};
- # Vale
- language-server.vale = {
- command = "vale-ls";
+ language-server.texlab = {
+ config = {
+ texlab.chktex = {
+ onOpenAndSave = true;
+ onEdit = true;
+ };
+ texlab.forwardSearch = {
+ executable = "zathura";
+ args = [
+ "--synctex-forward"
+ "%l:%c:%f"
+ "%p"
+ ];
+ };
+ texlab.build = {
+ auxDirectory = "build";
+ logDirectory = "build";
+ pdfDirectory = "build";
+ forwardSearchAfter = true;
+ onSave = true;
+ executable = "tectonic";
+ args = [
+ "-X"
+ "compile"
+ "--synctex"
+ "--keep-logs"
+ "--keep-intermediates"
+ "--outdir=build"
+ "%f"
+ ];
+ };
+ };
};
language = [
@@ -53,10 +86,6 @@
name = "verilog";
language-servers = [ "svls" ];
}
- {
- name = "nix";
- language-servers = [ "svls" ];
- }
{
name = "html";
language-servers = [ "vscode-html-language-server" "tailwindcss-ls" ];
@@ -67,7 +96,15 @@
}
{
name = "markdown";
- language-servers = [ "vale" ];
+ auto-format = true;
+ language-servers = [ "markdown-oxide" ];
+ formatter.command = "dprint";
+ formatter.args = ["fmt" "--stdin" "md" "--config" "/home/xeovalyte/.config/.dprint.json"];
+ }
+ {
+ name = "typst";
+ auto-format = false;
+ formatter.command = "${pkgs.typstfmt}/bin/typstfmt";
}
];
};
diff --git a/modules/home/cli/develop.nix b/modules/home/cli/develop.nix
index 8b4b845..2a05eb4 100644
--- a/modules/home/cli/develop.nix
+++ b/modules/home/cli/develop.nix
@@ -23,6 +23,11 @@
keybinds {
normal {
bind "Ctrl e" { ToggleFloatingPanes; SwitchToMode "normal"; }
+ bind "Ctrl 1" { GoToTab 1; }
+ bind "Ctrl 2" { GoToTab 2; }
+ bind "Ctrl 3" { GoToTab 3; }
+ bind "Ctrl 4" { GoToTab 4; }
+ bind "Ctrl 5" { GoToTab 5; }
}
}
'';
@@ -44,4 +49,39 @@
}
'';
};
+
+ home.file.zellij-layout-dioxus = {
+ target = ".config/zellij/layouts/dioxus.kdl";
+ text = ''
+ layout {
+ tab {
+ pane {
+ command "hx"
+ args "."
+ focus true
+ }
+ floating_panes {
+ pane {
+ width "80%"
+ height "80%"
+ x "10%"
+ y "10%"
+ }
+ }
+ }
+ tab {
+ pane {
+ command "dx"
+ args "serve"
+ }
+ }
+ tab {
+ pane {
+ command "devenv"
+ args "up"
+ }
+ }
+ }
+ '';
+ };
}
diff --git a/modules/home/gui/common/firefox.nix b/modules/home/gui/common/firefox.nix
index 9019361..5bf5cb5 100644
--- a/modules/home/gui/common/firefox.nix
+++ b/modules/home/gui/common/firefox.nix
@@ -60,16 +60,20 @@
name = "Brightspace";
bookmarks = [
{
- name = "LCA";
- url = "https://brightspace.tudelft.nl/d2l/le/content/681008/Home";
+ name = "Books";
+ url = "https://drive.google.com/drive/folders/1L5OTbn5p3i7_Nc80hc5PztiEGHKwi-I4";
}
{
- name = "DSA";
- url = "https://brightspace.tudelft.nl/d2l/le/content/681012/Home";
+ name = "LCB";
+ url = "https://brightspace.tudelft.nl/d2l/le/content/681010/Home";
}
{
- name = "iEE";
- url = "https://brightspace.tudelft.nl/d2l/le/content/681018/Home";
+ name = "Calculus";
+ url = "https://brightspace.tudelft.nl/d2l/le/content/681024/Home";
+ }
+ {
+ name = "IP1";
+ url = "https://brightspace.tudelft.nl/d2l/le/content/681020/Home";
}
];
}
diff --git a/modules/home/gui/common/fonts.nix b/modules/home/gui/common/fonts.nix
index 7fffede..8171473 100644
--- a/modules/home/gui/common/fonts.nix
+++ b/modules/home/gui/common/fonts.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... }:
+{ pkgs, inputs, ... }:
{
fonts.fontconfig.enable = true;
@@ -8,6 +8,8 @@
fira-code
font-awesome
dejavu_fonts
+ roboto
(nerdfonts.override { fonts = [ "DejaVuSansMono" ]; })
+ inputs.apple-fonts.packages.${pkgs.system}.sf-pro
];
}
diff --git a/modules/home/gui/hyprland/default.nix b/modules/home/gui/hyprland/default.nix
index 17cbfbe..3bc6c8a 100644
--- a/modules/home/gui/hyprland/default.nix
+++ b/modules/home/gui/hyprland/default.nix
@@ -51,6 +51,7 @@
follow_mouse = 2;
touchpad = {
natural_scroll = true;
+ scroll_factor = 0.5;
clickfinger_behavior = true;
};
};
@@ -68,10 +69,7 @@
decoration = {
rounding = "5";
- drop_shadow = "false";
blur.enabled = "false";
- shadow_render_power = "3";
- "col.shadow" = "rgba(1a1a1aee)";
};
gestures = {
diff --git a/modules/system/hardware/amd.nix b/modules/system/hardware/amd.nix
index 1284f06..aa285ef 100644
--- a/modules/system/hardware/amd.nix
+++ b/modules/system/hardware/amd.nix
@@ -3,14 +3,13 @@
{
boot.initrd.kernelModules = [ "amdgpu" ];
- hardware.opengl.enable = true;
- hardware.opengl.driSupport32Bit = true;
- hardware.opengl.extraPackages = with pkgs; [
+ hardware.graphics.enable = true;
+ hardware.graphics.extraPackages = with pkgs; [
amdvlk
mesa.drivers
];
- hardware.opengl.extraPackages32 = with pkgs; [
+ hardware.graphics.extraPackages32 = with pkgs; [
driversi686Linux.amdvlk
];