summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2025-04-10 14:51:56 +0200
committerNathan Reiner <nathan@nathanreiner.xyz>2025-04-10 14:51:56 +0200
commitb127625d59d1cbf7a8962c1c937846b5297877c6 (patch)
treec99130393f3c04fa313a8e33997e953645627249
parent2eb7439ab9b7f83fc81eb4d2299d2c764722008d (diff)
flake: update
-rw-r--r--common/home/default.nix2
-rw-r--r--common/home/programs/nixvim/default.nix26
-rw-r--r--common/home/programs/nixvim/plugins/nvim-tree.nix3
-rw-r--r--common/users.nix1
-rw-r--r--flake.lock66
-rw-r--r--hosts/nixedo/default.nix10
-rw-r--r--hosts/workstation/default.nix1
-rw-r--r--modules/hyprland/monitor.nix205
8 files changed, 173 insertions, 141 deletions
diff --git a/common/home/default.nix b/common/home/default.nix
index 6ea8a91..b006892 100644
--- a/common/home/default.nix
+++ b/common/home/default.nix
@@ -36,7 +36,7 @@ packages = [
pkgs.inkscape
pkgs.hicolor-icon-theme
pkgs.bat
- pkgs.blender
+ pkgs.blender-hip
pkgs.pinentry-qt
pkgs.ripgrep
pkgs.tenacity
diff --git a/common/home/programs/nixvim/default.nix b/common/home/programs/nixvim/default.nix
index 4b03191..a5a0600 100644
--- a/common/home/programs/nixvim/default.nix
+++ b/common/home/programs/nixvim/default.nix
@@ -15,20 +15,20 @@
Info = " "
}
- for type, icon in pairs(signs) do
- local hl = "DiagnosticSign" .. type
- vim.fn.sign_define(
- hl,
- {
- text = icon,
- texthl = hl,
- numhl = hl
- }
- )
- end
+ for type, icon in pairs(signs) do
+ local hl = "DiagnosticSign" .. type
+ vim.fn.sign_define(hl, {
+ text = icon,
+ texthl = hl,
+ numhl = hl
+ })
+ end
- vim.g.zig_fmt_autosave = 0
- '';
+ vim.api.nvim_create_autocmd({'BufEnter'}, {
+ pattern = {'*.png'},
+ command = '!setsid imv %',
+ })
+ '';
diagnostics = {
virtual_text = {
diff --git a/common/home/programs/nixvim/plugins/nvim-tree.nix b/common/home/programs/nixvim/plugins/nvim-tree.nix
index 896c025..16c25de 100644
--- a/common/home/programs/nixvim/plugins/nvim-tree.nix
+++ b/common/home/programs/nixvim/plugins/nvim-tree.nix
@@ -1,7 +1,8 @@
{ ... }:
{
enable = true;
- autoClose = true;
+ autoClose = false;
disableNetrw = false;
hijackCursor = true;
+ openOnSetup = true;
}
diff --git a/common/users.nix b/common/users.nix
index 6d0fa88..6902447 100644
--- a/common/users.nix
+++ b/common/users.nix
@@ -7,6 +7,7 @@
"networkmanager"
"ydotool"
"libvirtd"
+ "docker"
];
shell = pkgs.zsh;
};
diff --git a/flake.lock b/flake.lock
index e370bea..5b528fd 100644
--- a/flake.lock
+++ b/flake.lock
@@ -8,11 +8,11 @@
]
},
"locked": {
- "lastModified": 1735644329,
- "narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=",
+ "lastModified": 1741473158,
+ "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
"owner": "numtide",
"repo": "devshell",
- "rev": "f7795ede5b02664b57035b3b757876703e2c3eac",
+ "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
"type": "github"
},
"original": {
@@ -43,11 +43,11 @@
]
},
"locked": {
- "lastModified": 1738453229,
- "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
+ "lastModified": 1743550720,
+ "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
+ "rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github"
},
"original": {
@@ -87,11 +87,11 @@
]
},
"locked": {
- "lastModified": 1737465171,
- "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=",
+ "lastModified": 1742649964,
+ "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
"owner": "cachix",
"repo": "git-hooks.nix",
- "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17",
+ "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
"type": "github"
},
"original": {
@@ -129,11 +129,11 @@
]
},
"locked": {
- "lastModified": 1739757849,
- "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
+ "lastModified": 1744117652,
+ "narHash": "sha256-t7dFCDl4vIOOUMhEZnJF15aAzkpaup9x4ZRGToDFYWI=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
+ "rev": "b4e98224ad1336751a2ac7493967a4c9f6d9cb3f",
"type": "github"
},
"original": {
@@ -151,11 +151,11 @@
]
},
"locked": {
- "lastModified": 1739757849,
- "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
+ "lastModified": 1743808813,
+ "narHash": "sha256-2lDQBOmlz9ggPxcS7/GvcVdzXMIiT+PpMao6FbLJSr0=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
+ "rev": "a9f8b3db211b4609ddd83683f9db89796c7f6ac6",
"type": "github"
},
"original": {
@@ -201,11 +201,11 @@
]
},
"locked": {
- "lastModified": 1739553546,
- "narHash": "sha256-L4ou3xfOr17EAe836djRoQ7auVkYOREMtiQa82wVGqU=",
+ "lastModified": 1743127615,
+ "narHash": "sha256-+sMGqywrSr50BGMLMeY789mSrzjkoxZiu61eWjYS/8o=",
"owner": "lnl7",
"repo": "nix-darwin",
- "rev": "353846417f985e74fdc060555f17939e4472ea2c",
+ "rev": "fc843893cecc1838a59713ee3e50e9e7edc6207c",
"type": "github"
},
"original": {
@@ -217,11 +217,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1740865531,
- "narHash": "sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc=",
+ "lastModified": 1744168086,
+ "narHash": "sha256-S9M4HddBCxbbX1CKSyDYgZ8NCVyHcbKnBfoUXeRu2jQ=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "5ef6c425980847c78a80d759abc476e941a9bf42",
+ "rev": "60e405b241edb6f0573f3d9f944617fe33ac4a73",
"type": "github"
},
"original": {
@@ -233,11 +233,11 @@
},
"nixpkgs-unstable": {
"locked": {
- "lastModified": 1740828860,
- "narHash": "sha256-cjbHI+zUzK5CPsQZqMhE3npTyYFt9tJ3+ohcfaOF/WM=",
+ "lastModified": 1744098102,
+ "narHash": "sha256-tzCdyIJj9AjysC3OuKA+tMD/kDEDAF9mICPDU7ix0JA=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "303bd8071377433a2d8f76e684ec773d70c5b642",
+ "rev": "c8cd81426f45942bb2906d5ed2fe21d2f19d95b7",
"type": "github"
},
"original": {
@@ -262,11 +262,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
- "lastModified": 1740919463,
- "narHash": "sha256-8jEXQsZUiG86T/H8dCxYOJ+kAT+ppVylaPYiFwrNL6g=",
+ "lastModified": 1743856924,
+ "narHash": "sha256-CgCbUGd9y639PfcuzA0TrA6O5N1ICl+mB95+qTG52+E=",
"owner": "nix-community",
"repo": "nixvim",
- "rev": "7e27ae55d17db65bd3ff02bcbec0615d50584910",
+ "rev": "d209a04d349febe85c777078ca2eeea5e8bbc8a1",
"type": "github"
},
"original": {
@@ -286,11 +286,11 @@
]
},
"locked": {
- "lastModified": 1739738736,
- "narHash": "sha256-Rl4Fw+3PsLTEzzUGlB8kePaiIersDbv5voAif3D6LoM=",
+ "lastModified": 1743683223,
+ "narHash": "sha256-LdXtHFvhEC3S64dphap1pkkzwjErbW65eH1VRerCUT0=",
"owner": "NuschtOS",
"repo": "search",
- "rev": "9ff62c8e1fbe5dc649dee680c7eb4935936c8ac3",
+ "rev": "56a49ffef2908dad1e9a8adef1f18802bc760962",
"type": "github"
},
"original": {
@@ -332,11 +332,11 @@
]
},
"locked": {
- "lastModified": 1739829690,
- "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=",
+ "lastModified": 1743748085,
+ "narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=",
"owner": "numtide",
"repo": "treefmt-nix",
- "rev": "3d0579f5cc93436052d94b73925b48973a104204",
+ "rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d",
"type": "github"
},
"original": {
diff --git a/hosts/nixedo/default.nix b/hosts/nixedo/default.nix
index 3d89d87..3bf358c 100644
--- a/hosts/nixedo/default.nix
+++ b/hosts/nixedo/default.nix
@@ -31,6 +31,16 @@
scale = 1;
bar.enable = true;
};
+
+ HDMI-A-1 = {
+ resolution = "preferred";
+ position = "auto";
+ scale = 1;
+ mirror = {
+ enable = true;
+ monitor = "eDP-1";
+ };
+ };
};
webtray.instances = {
diff --git a/hosts/workstation/default.nix b/hosts/workstation/default.nix
index 56c2dc7..b2e7ff7 100644
--- a/hosts/workstation/default.nix
+++ b/hosts/workstation/default.nix
@@ -87,6 +87,7 @@
virtualisation = {
libvirtd.enable = true;
+ docker.enable = true;
};
system.stateVersion = "24.05";
diff --git a/modules/hyprland/monitor.nix b/modules/hyprland/monitor.nix
index 7aafb7f..ef3f227 100644
--- a/modules/hyprland/monitor.nix
+++ b/modules/hyprland/monitor.nix
@@ -1,101 +1,120 @@
{ config, lib, ... }:
let
- cfg = config.hyprland.monitors;
+cfg = config.hyprland.monitors;
in
{
- imports = [ ../waybar ];
+ imports = [ ../waybar ];
- options.hyprland.monitors =
- with lib;
- mkOption {
- description = "Hyprland Monitor Configuration";
- type = types.attrsOf (
- types.submodule {
- options = {
- resolution = mkOption {
- description = "Monitor Resolution";
- type = types.strMatching "[:digit:]+x[:digit:]+|preferred";
- default = "preferred";
- };
- position = mkOption {
- description = "Monitor Position";
- type = types.strMatching "-?[:digit:]+x-?[:digit:]+|auto";
- default = "auto";
- };
- scale = mkOption {
- description = "Monitor Scale";
- type = types.numbers.positive;
- default = 1;
- };
- transform = mkOption {
- description = "Hyprland Monitor Transform";
- type = types.submodule {
- options = {
- flipped = mkOption {
- description = "Hyprland Flip Monitor";
- type = types.bool;
- default = false;
- };
- rotation = mkOption {
- description = "Hyprland Monitor Rotation";
- type = types.enum [
- 0
- 90
- 180
- 270
- ];
- default = 0;
- };
- };
- };
- default = {
- flipped = false;
- rotation = 0;
- };
- };
- bar = mkOption {
- description = "Waybar Settings";
- type = types.submodule {
- options = {
- enable = mkOption {
- description = "Enable Waybar for this Monitor";
- type = types.bool;
- default = false;
- };
- };
- };
- default = {
- enable = false;
- };
- };
- };
- }
- );
- default = {
- default = { };
- };
- };
+ options.hyprland.monitors =
+ with lib;
+ mkOption {
+ description = "Hyprland Monitor Configuration";
+ type = types.attrsOf (
+ types.submodule {
+ options = {
+ resolution = mkOption {
+ description = "Monitor Resolution";
+ type = types.strMatching "[:digit:]+x[:digit:]+|preferred";
+ default = "preferred";
+ };
+ position = mkOption {
+ description = "Monitor Position";
+ type = types.strMatching "-?[:digit:]+x-?[:digit:]+|auto";
+ default = "auto";
+ };
+ scale = mkOption {
+ description = "Monitor Scale";
+ type = types.numbers.positive;
+ default = 1;
+ };
+ mirror = mkOption {
+ description = "Mirror Monitor";
+ type = types.submodule {
+ options = {
+ enable = mkOption {
+ description = "Enable Mirroring";
+ type = types.bool;
+ default = false;
+ };
+ monitor = mkOption {
+ description = "Mirror Monitor Name";
+ type = types.str;
+ default = "";
+ };
+ };
+ };
+ default = { enable = false; };
+ };
+ transform = mkOption {
+ description = "Hyprland Monitor Transform";
+ type = types.submodule {
+ options = {
+ flipped = mkOption {
+ description = "Hyprland Flip Monitor";
+ type = types.bool;
+ default = false;
+ };
+ rotation = mkOption {
+ description = "Hyprland Monitor Rotation";
+ type = types.enum [
+ 0
+ 90
+ 180
+ 270
+ ];
+ default = 0;
+ };
+ };
+ };
+ default = {
+ flipped = false;
+ rotation = 0;
+ };
+ };
+ bar = mkOption {
+ description = "Waybar Settings";
+ type = types.submodule {
+ options = {
+ enable = mkOption {
+ description = "Enable Waybar for this Monitor";
+ type = types.bool;
+ default = false;
+ };
+ };
+ };
+ default = {
+ enable = false;
+ };
+ };
+ };
+ }
+ );
+ default = {
+ default = { };
+ };
+ };
- config = {
- home-manager.users.n8.wayland.windowManager.hyprland.settings.monitor =
- lib.attrsets.mapAttrsToList
- (
- name: value:
- "${if name == "default" then "" else name},${value.resolution},"
- + "${value.position},"
- + "${toString value.scale},"
- + "transform,"
- + "${toString ((value.transform.rotation / 90) + (if value.transform.flipped then 4 else 0))}"
- )
- cfg;
+ config = {
+ home-manager.users.n8.wayland.windowManager.hyprland.settings.monitor =
+ lib.attrsets.mapAttrsToList
+ (
+ name: value:
+ "${if name == "default" then "" else name},${value.resolution},"
+ + "${value.position},"
+ + "${toString value.scale},"
+ + "transform,"
+ + "${toString ((value.transform.rotation / 90) + (if value.transform.flipped then 4 else 0))}"
+ + (if value.mirror.enable then ",mirror," + value.mirror.monitor else "")
+ )
+ cfg;
- bar = builtins.map (m: m.name) (
- builtins.filter (m: m.enable) (
- lib.attrsets.mapAttrsToList (name: value: {
- name = name;
- enable = value.bar.enable;
- }) cfg
- )
- );
- };
+ bar = builtins.map (m: m.name) (
+ builtins.filter (m: m.enable) (
+ lib.attrsets.mapAttrsToList (name: value: {
+ name = name;
+ enable = value.bar.enable;
+ }) cfg
+ )
+ );
+ };
}