From b127625d59d1cbf7a8962c1c937846b5297877c6 Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Thu, 10 Apr 2025 14:51:56 +0200 Subject: flake: update --- common/home/default.nix | 2 +- common/home/programs/nixvim/default.nix | 26 +-- common/home/programs/nixvim/plugins/nvim-tree.nix | 3 +- common/users.nix | 1 + flake.lock | 66 +++---- hosts/nixedo/default.nix | 10 ++ hosts/workstation/default.nix | 1 + modules/hyprland/monitor.nix | 205 ++++++++++++---------- 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 + ) + ); + }; } -- cgit v1.2.3-70-g09d2