From af51f89b60ac75e3482687dd63ffbe5bc874e705 Mon Sep 17 00:00:00 2001 From: isabel Date: Wed, 28 Jun 2023 08:09:23 +0100 Subject: [PATCH] feat: do alot lol --- env.nix | 2 +- flake.lock | 271 ++++++++++++------ flake.nix | 34 ++- home/isabel/default.nix | 4 + home/isabel/packages/cli/confs/default.nix | 3 +- home/isabel/packages/cli/confs/fish.nix | 35 +-- home/isabel/packages/cli/confs/git.nix | 171 ++++++----- home/isabel/packages/cli/confs/lazygit.nix | 21 -- .../packages/cli/confs/nushell/config.nu | 248 ++++++++++++++++ .../packages/cli/confs/nushell/default.nix | 41 +++ home/isabel/packages/cli/confs/nushell/env.nu | 44 +++ home/isabel/packages/cli/confs/starship.nix | 7 +- home/isabel/packages/cli/default.nix | 1 - home/isabel/packages/cli/shared.nix | 1 + .../gui/confs/editors/nvim/default.nix | 103 ++++++- .../gui/confs/eww/config/scripts/apps | 0 .../gui/confs/eww/config/scripts/bluetooth | 0 .../gui/confs/eww/config/scripts/brightness | 0 .../gui/confs/eww/config/scripts/events | 0 .../gui/confs/eww/config/scripts/host/apps.js | 0 .../confs/eww/config/scripts/host/battery.js | 0 .../eww/config/scripts/host/bluetooth.js | 0 .../confs/eww/config/scripts/host/common.js | 0 .../gui/confs/eww/config/scripts/host/dbus.js | 0 .../gui/confs/eww/config/scripts/host/host | 0 .../gui/confs/eww/config/scripts/host/lib.js | 0 .../gui/confs/eww/config/scripts/host/main.js | 0 .../confs/eww/config/scripts/host/media.js | 0 .../confs/eww/config/scripts/host/network.js | 0 .../eww/config/scripts/host/notifications.js | 0 .../gui/confs/eww/config/scripts/hyprland | 0 .../gui/confs/eww/config/scripts/init | 0 .../gui/confs/eww/config/scripts/launcher | 0 .../gui/confs/eww/config/scripts/network | 0 .../gui/confs/eww/config/scripts/night_light | 0 .../confs/eww/config/scripts/notifications | 0 .../packages/gui/confs/eww/config/scripts/osd | 0 .../gui/confs/eww/config/scripts/player | 0 .../gui/confs/eww/config/scripts/power | 0 .../gui/confs/eww/config/scripts/screenshot | 0 .../gui/confs/eww/config/scripts/theme | 0 .../gui/confs/eww/config/scripts/todo | 0 .../gui/confs/eww/config/scripts/volume | 0 .../eww/config/yuck/widgets/bar_widgets.yuck | 2 +- home/isabel/packages/gui/wayland.nix | 1 + home/isabel/packages/system/sops.nix | 14 + home/isabel/packages/system/ssh.nix | 45 +-- home/isabel/packages/wm/hyprland/config.nix | 2 +- home/isabel/packages/wm/hyprland/default.nix | 1 + .../{packages/cli => }/shells/default.nix | 0 .../{packages/cli => }/shells/docker.nix | 0 .../isabel/{packages/cli => }/shells/node.nix | 0 home/isabel/{packages/cli => }/shells/py.nix | 0 .../isabel/{packages/cli => }/shells/rust.nix | 4 +- home/isabel/shells/spawnshell.sh | 8 + home/isabel/themes/gtk.nix | 2 +- lib/default.nix | 19 -- lib/flake/devShell/default.nix | 25 -- modules/common/core/network/default.nix | 4 + modules/common/core/network/ssh.nix | 7 +- modules/common/core/nix/default.nix | 21 +- .../system/display/wayland/environment.nix | 5 - secrets.yaml => secrets/secrets.yaml | 0 63 files changed, 790 insertions(+), 356 deletions(-) delete mode 100644 home/isabel/packages/cli/confs/lazygit.nix create mode 100644 home/isabel/packages/cli/confs/nushell/config.nu create mode 100644 home/isabel/packages/cli/confs/nushell/default.nix create mode 100644 home/isabel/packages/cli/confs/nushell/env.nu mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/apps mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/bluetooth mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/brightness mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/events mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/host/apps.js mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/host/battery.js mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/host/bluetooth.js mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/host/common.js mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/host/dbus.js mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/host/host mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/host/lib.js mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/host/main.js mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/host/media.js mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/host/network.js mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/host/notifications.js mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/hyprland mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/init mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/launcher mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/network mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/night_light mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/notifications mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/osd mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/player mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/power mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/screenshot mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/theme mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/todo mode change 100644 => 100755 home/isabel/packages/gui/confs/eww/config/scripts/volume create mode 100644 home/isabel/packages/system/sops.nix rename home/isabel/{packages/cli => }/shells/default.nix (100%) rename home/isabel/{packages/cli => }/shells/docker.nix (100%) rename home/isabel/{packages/cli => }/shells/node.nix (100%) rename home/isabel/{packages/cli => }/shells/py.nix (100%) rename home/isabel/{packages/cli => }/shells/rust.nix (63%) create mode 100755 home/isabel/shells/spawnshell.sh delete mode 100644 lib/flake/devShell/default.nix rename secrets.yaml => secrets/secrets.yaml (100%) diff --git a/env.nix b/env.nix index d1ab5f199..d3cf667a0 100755 --- a/env.nix +++ b/env.nix @@ -1,3 +1,3 @@ { - env = "#"; + env = "eyJhIjoiNjA0YTQxZmY1ZDI1NzQ5MzllZmJiMWM1NWJhYzA5MGUiLCJ0IjoiN2U5MzZlMjAtODE4ZS00N2UwLWE2ZjEtYmIxOTE3NmY0ZTE4IiwicyI6IllUSXdZelJqTm1RdE5qY3lNeTAwWmpNMExUbGpOell0TmpKall6RmxPVEpsTWpkaiJ9"; } diff --git a/flake.lock b/flake.lock index 91717c932..31b29cae4 100644 --- a/flake.lock +++ b/flake.lock @@ -1,42 +1,39 @@ { "nodes": { - "catppuccin": { + "bella-nur": { "inputs": { - "flake-compat": "flake-compat", "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1687279241, - "narHash": "sha256-iypChiPjApubOI9Ru8dPW55dHOLiz4o7ptjJ57Oq7w8=", + "lastModified": 1687898128, + "narHash": "sha256-eO8OZz4hyx8pSezy0bCFP0DYqrNrihBFE08lkHOVTrs=", "owner": "isabelroses", - "repo": "ctp-nix", - "rev": "547ba1984cf53ec7be5c7096fc34f34a64801a67", + "repo": "nur", + "rev": "a078c496da026b8aacf09d8bb8d895c913d06806", "type": "github" }, "original": { "owner": "isabelroses", - "repo": "ctp-nix", + "repo": "nur", "type": "github" } }, - "devshell": { + "catppuccin": { "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "systems": "systems" + "flake-compat": "flake-compat", + "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1687173957, - "narHash": "sha256-GOds2bAQcZ94fb9/Nl/aM+r+0wGSi4EKYuZYR8Dw4R8=", - "owner": "numtide", - "repo": "devshell", - "rev": "2cf83bb31720fcc29a999aee28d6da101173e66a", + "lastModified": 1687802798, + "narHash": "sha256-WdoU3RPC/ssA/yGKAWVqxBMS0bwfi5W+2CQp8Pu3wpI=", + "owner": "isabelroses", + "repo": "ctp-nix", + "rev": "3c1d6806cfec2abbb38b4e1d280ba91d46665da6", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "isabelroses", + "repo": "ctp-nix", "type": "github" } }, @@ -94,11 +91,11 @@ ] }, "locked": { - "lastModified": 1685662779, - "narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=", + "lastModified": 1687762428, + "narHash": "sha256-DIf7mi45PKo+s8dOYF+UlXHzE0Wl/+k3tXUyAoAnoGE=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3", + "rev": "37dd7bb15791c86d55c5121740a1887ab55ee836", "type": "github" }, "original": { @@ -188,7 +185,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_2" + "systems": "systems" }, "locked": { "lastModified": 1681202837, @@ -206,14 +203,14 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_3" + "systems": "systems_2" }, "locked": { - "lastModified": 1681202837, - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "lastModified": 1687171271, + "narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=", "owner": "numtide", "repo": "flake-utils", - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c", "type": "github" }, "original": { @@ -224,14 +221,14 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_4" + "systems": "systems_3" }, "locked": { - "lastModified": 1687171271, - "narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=", + "lastModified": 1687709756, + "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", "owner": "numtide", "repo": "flake-utils", - "rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c", + "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", "type": "github" }, "original": { @@ -242,7 +239,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_5" + "systems": "systems_4" }, "locked": { "lastModified": 1681202837, @@ -287,11 +284,11 @@ ] }, "locked": { - "lastModified": 1687337969, - "narHash": "sha256-5b58eo7Eku2ae+62HHHTbHtwe4jlS44JfYCDulGdopg=", + "lastModified": 1687856573, + "narHash": "sha256-rzC+5rRsy92Dhjb1q5e5tDjdhRfL1z4WFWwlcD3a+4Q=", "owner": "nix-community", "repo": "home-manager", - "rev": "9ce6977fe76fb408042a432e314764f8d1d86263", + "rev": "4c08f65ab5105a55eed3fc9003f3e6874b69fe13", "type": "github" }, "original": { @@ -310,11 +307,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1687289754, - "narHash": "sha256-KChqnNE37OLUAHGgeQKrDT7ZnE46UY2zBUYO/QefYGk=", + "lastModified": 1687865038, + "narHash": "sha256-zFTxFNXmXc2XOriWtNzuznEICcSBnIbRVVR/M5w/Y40=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "cabdf38ce41f628f6c81e1ac05d3788d8f30b101", + "rev": "d83296c7a9029eccc04544ddf0a8387d8104b882", "type": "github" }, "original": { @@ -372,11 +369,11 @@ ] }, "locked": { - "lastModified": 1685380198, - "narHash": "sha256-k+rG5AZjz47Q6bpVcTK7r4s7Avg3O+1iw+skK+cn0rk=", + "lastModified": 1687865626, + "narHash": "sha256-loVzVNxrWwRKSqya2Ucfn8zcPgl19Li6q6Px4nDqpW4=", "owner": "hyprwm", "repo": "hyprpicker", - "rev": "deaca6a4d8e307d90b1f5b1033a8ea6c83b9b260", + "rev": "0889bd5f6f47847de50be021437775542ef2e91c", "type": "github" }, "original": { @@ -415,11 +412,11 @@ "nixpkgs-lib": "nixpkgs-lib_3" }, "locked": { - "lastModified": 1687186134, - "narHash": "sha256-M3P2XqKKAC6pNNkNm4lqT8b/BZx78BPxhwqYrmD3QpE=", + "lastModified": 1687781445, + "narHash": "sha256-F02HT/B7Mfv4ypdgkiVnLpX6tk56bZDMJpV7tIiQFz0=", "owner": "nix-community", "repo": "lib-aggregate", - "rev": "00d381e93f5e085aaf41f3ae08094d25d69c90ca", + "rev": "3dcf917ef862cac326c17cc1e6407c6827509d60", "type": "github" }, "original": { @@ -437,11 +434,11 @@ ] }, "locked": { - "lastModified": 1686727403, - "narHash": "sha256-AuyqUu72ehb99BPlJk3qeuIzZcQY7p24kgWMfqhcFmY=", + "lastModified": 1687380522, + "narHash": "sha256-Q2GDWFySnBWkaODyy1XSTz0peHjGVyYbmAIoDuCporU=", "owner": "viperML", "repo": "nh", - "rev": "941d4de5450276a08cadc7528dedc297947629b2", + "rev": "8b2890f3eb9d5618e2e9cb45dd95d0df65b89e30", "type": "github" }, "original": { @@ -461,11 +458,11 @@ ] }, "locked": { - "lastModified": 1687315041, - "narHash": "sha256-GSpmr6kyGrMwn9EHLH9TFic5m+AzXMT4G9ObtmgFOCM=", + "lastModified": 1687776032, + "narHash": "sha256-DYC3USpD4CCjC+bsBAIE+eqPDgLLEVor/syZWivYmCA=", "owner": "oxalica", "repo": "nil", - "rev": "c91a9a9aa27ee5d7fcc7f23926c50a2a475bf782", + "rev": "f6bd5fea84bb5b0b3685b5dd9c21c83fe6ab9b64", "type": "github" }, "original": { @@ -477,14 +474,14 @@ "nix-eval-jobs": { "inputs": { "flake-parts": "flake-parts_5", - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1687235032, - "narHash": "sha256-E6hg/emDKKQh6w7SzF1YL2emiPN8npOA0bs5+ykeSyc=", + "lastModified": 1687744035, + "narHash": "sha256-Tv3e/SBh32HWC/5jJCtfS4yFNBn2XzjKDVxRmfZgetM=", "owner": "nix-community", "repo": "nix-eval-jobs", - "rev": "5a9c4c0390ad6175aa80868a6bbe7e0fa069f428", + "rev": "a74d3c57242f34a767d920b4b31820047c59ff92", "type": "github" }, "original": { @@ -516,11 +513,11 @@ ] }, "locked": { - "lastModified": 1687051274, - "narHash": "sha256-KsMU7iC3rBKJjD8tS+3lyn4mFbAYY/kSV6yjsnTBfkc=", + "lastModified": 1687828977, + "narHash": "sha256-10ZbiOZsDbfv/WehdIi8HPyi0B1RIZKvl9ksHTfELp0=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "9c7595826e2eeb2ba166430d03b5a9ca4e5c0e6c", + "rev": "441a5d7e6a3de3ed126f56975df6f5c072567c97", "type": "github" }, "original": { @@ -531,17 +528,18 @@ }, "nixpkgs": { "locked": { - "lastModified": 1685655444, - "narHash": "sha256-6EujQNAeaUkWvpEZZcVF8qSfQrNVWFNNGbUJxv/A5a8=", + "lastModified": 1687518131, + "narHash": "sha256-KirltRIc4SFfk8bTNudIqgKAALH5oqpW3PefmkfWK5M=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e635192892f5abbc2289eaac3a73cdb249abaefd", + "rev": "3d8a93602bc54ece7a4e689d9aea1a574e2bbc24", "type": "github" }, "original": { - "id": "nixpkgs", - "ref": "nixos-unstable", - "type": "indirect" + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs-lib": { @@ -582,11 +580,11 @@ }, "nixpkgs-lib_3": { "locked": { - "lastModified": 1687049841, - "narHash": "sha256-FBNZQfWtA7bb/rwk92mfiWc85x4hXta2OAouDqO5W8w=", + "lastModified": 1687654967, + "narHash": "sha256-ki8vItcjn8Z8n+QD9NEoCQbbbG7VzWy71hyOkFFwCkM=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "908af6d1fa3643c5818ea45aa92b21d6385fbbe5", + "rev": "b3ec8fb525fc0c8f08eff5ef93c684b4c6d0e777", "type": "github" }, "original": { @@ -611,6 +609,22 @@ "type": "github" } }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1687031877, + "narHash": "sha256-yMFcVeI+kZ6KD2QBrFPNsvBrLq2Gt//D0baHByMrjFY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e2e2059d19668dab1744301b8b0e821e3aae9c99", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-wayland": { "inputs": { "flake-compat": "flake-compat_3", @@ -621,11 +635,11 @@ ] }, "locked": { - "lastModified": 1687335538, - "narHash": "sha256-ynIteMhHUT2+Sx0G/fhz/kDNcmfy4c0Cl6h/w4gQdh4=", + "lastModified": 1687897098, + "narHash": "sha256-E2g7T5R2ZA5VV/R2pLUeOO2gs5iY3E3mDgBJJLhet6U=", "owner": "nix-community", "repo": "nixpkgs-wayland", - "rev": "3c7bda6de9e3163a5bf0fd6d847f8d071d56480e", + "rev": "cbaa46c8609f1d16d0b28e33ebe3826aeb454ea6", "type": "github" }, "original": { @@ -636,11 +650,26 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1686960236, - "narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=", + "lastModified": 1685655444, + "narHash": "sha256-6EujQNAeaUkWvpEZZcVF8qSfQrNVWFNNGbUJxv/A5a8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e635192892f5abbc2289eaac3a73cdb249abaefd", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1687807295, + "narHash": "sha256-7TUD0p0m4mZpIi1O+Cyk5NCqpJUnhv/CJOAuHOndjao=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "04af42f3b31dba0ef742d254456dc4c14eedac86", + "rev": "6b3d1b1cf13f407fef5e634b224d575eb7211975", "type": "github" }, "original": { @@ -650,13 +679,13 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { - "lastModified": 1687136808, - "narHash": "sha256-A3lphGpoCleIr6aoABaP/VkaEArh6/Q2U7Ox18UAJEA=", + "lastModified": 1687740418, + "narHash": "sha256-hZ51wbEaMFEo5MAOR9o+h7LNVxMIOCYABT5OwFesfCU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0d1c0755a8bce318ae64b95cdbd28377aa2edf29", + "rev": "4137dbc2737384c4cc9e2b5d3c4cfc6ba6e5f0cc", "type": "github" }, "original": { @@ -666,6 +695,55 @@ "type": "github" } }, + "nixpkgs_5": { + "locked": { + "lastModified": 1686979235, + "narHash": "sha256-gBlBtk+KrezFkfMrZw6uwTuA7YWtbFciiS14mEoTCo0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7cc30fd5372ddafb3373c318507d9932bd74aafe", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nu_scripts": { + "flake": false, + "locked": { + "lastModified": 1687693193, + "narHash": "sha256-HAsJHUjZcjzfqpBcDcXpX2hCPDvMkPgAPuslVJwlex0=", + "ref": "refs/heads/main", + "rev": "a2f82bd987e5f3f1a118281b290a753306acf4a1", + "revCount": 691, + "submodules": true, + "type": "git", + "url": "https://github.com/nushell/nu_scripts" + }, + "original": { + "submodules": true, + "type": "git", + "url": "https://github.com/nushell/nu_scripts" + } + }, + "nur": { + "locked": { + "lastModified": 1687899931, + "narHash": "sha256-jtpA4wL+lZdxaxqNwHYm7bBOjuBbg9pOyu5ickZhi08=", + "owner": "nix-community", + "repo": "nur", + "rev": "a8db99b305614449e80ba3eb4237d8b7d6e583b1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nur", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -699,8 +777,8 @@ }, "root": { "inputs": { + "bella-nur": "bella-nur", "catppuccin": "catppuccin", - "devshell": "devshell", "flake-parts": "flake-parts", "home-manager": "home-manager", "hyprland": "hyprland", @@ -709,9 +787,12 @@ "nh": "nh", "nil": "nil", "nix-gaming": "nix-gaming", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "nixpkgs-wayland": "nixpkgs-wayland", + "nu_scripts": "nu_scripts", + "nur": "nur", "rust-overlay": "rust-overlay", + "sops-nix": "sops-nix", "xdg-portal-hyprland": "xdg-portal-hyprland" } }, @@ -723,11 +804,11 @@ ] }, "locked": { - "lastModified": 1687314899, - "narHash": "sha256-zglbWHHXnqPUnG+oSQ0xKXR4a8hgGEwbEdGr/1Jgfm0=", + "lastModified": 1687833260, + "narHash": "sha256-1AC7fV+u2C6uGn+t36W6XuE3Bfg/ZXMkr/yPogdtnVg=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "417dc5995703ea9edcce098ad59bb4511271cb73", + "rev": "8af5d21ba69012d1cafaea3da40ac902e744a369", "type": "github" }, "original": { @@ -736,22 +817,26 @@ "type": "github" } }, - "systems": { + "sops-nix": { + "inputs": { + "nixpkgs": "nixpkgs_5", + "nixpkgs-stable": "nixpkgs-stable_2" + }, "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "lastModified": 1687398569, + "narHash": "sha256-e/umuIKFcFtZtWeX369Hbdt9r+GQ48moDmlTcyHWL28=", + "owner": "Mic92", + "repo": "sops-nix", + "rev": "2ff6973350682f8d16371f8c071a304b8067f192", "type": "github" }, "original": { - "owner": "nix-systems", - "repo": "default", + "owner": "Mic92", + "repo": "sops-nix", "type": "github" } }, - "systems_2": { + "systems": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -766,7 +851,7 @@ "type": "github" } }, - "systems_3": { + "systems_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -781,7 +866,7 @@ "type": "github" } }, - "systems_4": { + "systems_3": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -796,7 +881,7 @@ "type": "github" } }, - "systems_5": { + "systems_4": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", diff --git a/flake.nix b/flake.nix index 1ff8a8753..442ac7477 100755 --- a/flake.nix +++ b/flake.nix @@ -43,19 +43,6 @@ } ]; - devShells.default = inputs'.devshell.legacyPackages.mkShell { - name = "nyx"; - commands = (import ./lib/flake/devShell).shellCommands; - packages = with pkgs; [ - nil # nix ls - alejandra # formatter - git # flakes require git, and so do I - glow # markdown viewer - statix # lints and suggestions - deadnix # clean up unused nix code - ]; - }; - # provide the formatter for nix fmt formatter = pkgs.alejandra; @@ -94,11 +81,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - devshell = { - url = "github:numtide/devshell"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - # Home Manager home-manager = { url = "github:nix-community/home-manager"; @@ -118,8 +100,12 @@ inputs.rust-overlay.follows = "rust-overlay"; }; + # Amazing themeing catppuccin.url = "github:isabelroses/ctp-nix"; + # Secrets + sops-nix.url = "github:Mic92/sops-nix"; + # Hyprland packages hyprland = { url = "github:hyprwm/Hyprland"; @@ -141,6 +127,18 @@ url = "github:nix-community/lanzaboote"; inputs.nixpkgs.follows = "nixpkgs"; }; + + # nushell scripts + nu_scripts = { + type = "git"; + url = "https://github.com/nushell/nu_scripts"; + submodules = true; + flake = false; + }; + + # nur's + nur.url = "github:nix-community/nur"; + bella-nur.url = "github:isabelroses/nur"; }; nixConfig = { diff --git a/home/isabel/default.nix b/home/isabel/default.nix index d1f801a2e..1ed61675a 100644 --- a/home/isabel/default.nix +++ b/home/isabel/default.nix @@ -11,6 +11,7 @@ in { # external home-manager modules inputs.hyprland.homeManagerModules.default inputs.catppuccin.homeManagerModules.catppuccin + #inputs.bella-nur.homeManagerModules.default # home package sets ./packages @@ -20,6 +21,9 @@ in { # declarative system and program themes (qt/gtk) ./themes + + # dev shells + ./shells ]; config = { catppuccin.flavour = "mocha"; diff --git a/home/isabel/packages/cli/confs/default.nix b/home/isabel/packages/cli/confs/default.nix index dc6ec3615..8bebe6d8a 100644 --- a/home/isabel/packages/cli/confs/default.nix +++ b/home/isabel/packages/cli/confs/default.nix @@ -1,10 +1,11 @@ _: { imports = [ + ./nushell + ./bat.nix ./btop.nix ./fish.nix ./git.nix - ./lazygit.nix ./nix-shell.nix ./starship.nix ]; diff --git a/home/isabel/packages/cli/confs/fish.nix b/home/isabel/packages/cli/confs/fish.nix index c378fe607..63a1be90e 100644 --- a/home/isabel/packages/cli/confs/fish.nix +++ b/home/isabel/packages/cli/confs/fish.nix @@ -1,6 +1,7 @@ -{...}: { +{pkgs, ...}: { programs.fish = { enable = true; + catppuccin.enable = true; shellAliases = { ".." = "cd .."; "..." = "cd ../.."; @@ -27,6 +28,7 @@ doas = "doas --"; jctl = "journalctl -p 3 -xb"; # get error messages from journalctl lg = "lazygit"; + ssp = "~/shells/spawnshell.sh"; }; shellInit = '' starship init fish | source @@ -36,37 +38,6 @@ set TERMINAL "alacritty" export "MICRO_TRUECOLOR=1" export GPG_TTY=$(tty) - echo y | fish_config theme save theme - ''; - }; - xdg.configFile."fish/themes/theme.theme" = { - text = '' - fish_color_normal cdd6f4 - fish_color_command 89b4fa - fish_color_param f2cdcd - fish_color_keyword f38ba8 - fish_color_quote a6e3a1 - fish_color_redirection f5c2e7 - fish_color_end fab387 - fish_color_comment 7f849c - fish_color_error f38ba8 - fish_color_gray 6c7086 - fish_color_selection --background=313244 - fish_color_search_match --background=313244 - fish_color_option a6e3a1 - fish_color_operator f5c2e7 - fish_color_escape eba0ac - fish_color_autosuggestion 6c7086 - fish_color_cancel f38ba8 - fish_color_cwd f9e2af - fish_color_user 94e2d5 - fish_color_host 89b4fa - fish_color_host_remote a6e3a1 - fish_color_status f38ba8 - fish_pager_color_progress 6c7086 - fish_pager_color_prefix f5c2e7 - fish_pager_color_completion cdd6f4 - fish_pager_color_description 6c7086 ''; }; } diff --git a/home/isabel/packages/cli/confs/git.nix b/home/isabel/packages/cli/confs/git.nix index bf6dad829..e7bed9eb3 100644 --- a/home/isabel/packages/cli/confs/git.nix +++ b/home/isabel/packages/cli/confs/git.nix @@ -14,99 +14,118 @@ with lib; let in { config = mkIf ((builtins.elem device.type acceptedTypes) && (programs.cli.enable)) { home.packages = with pkgs; [ - gh # github command-line gh-cal # github activity stats in the CLI gist # manage github gists act # local github actions gitflow ]; - programs.git = { - enable = true; - package = pkgs.gitAndTools.gitFull; - userName = "isabel"; - userEmail = "isabel@isabelroses.com"; - signing = { - key = cfg.signingKey; - signByDefault = true; + programs = { + # github cli + gh = { + enable = true; + enableGitCredentialHelper = false; + extensions = []; + settings = { + git_protocol = "ssh"; + prompt = "enabled"; + }; }; - ignores = [ - ".cache/" - ".idea/" - "*.swp" - "*.elc" - ".~lock*" - "auto-save-list" - ".direnv/" - "node_modules" - "result" - "result-*" - ]; - extraConfig = { - init.defaultBranch = "main"; - branch.autosetupmerge = "true"; - pull.ff = "only"; + # lazygit which is cool + lazygit = { + enable = true; + catppuccin.enable = true; + }; - push = { - default = "current"; - followTags = true; + # normal git stuff + git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + userName = "isabel"; + userEmail = "isabel@isabelroses.com"; + signing = { + key = cfg.signingKey; + signByDefault = true; }; + ignores = [ + ".cache/" + ".idea/" + "*.swp" + "*.elc" + ".~lock*" + "auto-save-list" + ".direnv/" + "node_modules" + "result" + "result-*" + ]; + extraConfig = { + init.defaultBranch = "main"; - merge = { - stat = "true"; - conflictstyle = "diff3"; - }; + branch.autosetupmerge = "true"; + pull.ff = "only"; - core.whitespace = "fix,-indent-with-non-tab,trailing-space,cr-at-eol"; - color.ui = "auto"; + push = { + default = "current"; + followTags = true; + }; - repack.usedeltabaseoffset = "true"; + merge = { + stat = "true"; + conflictstyle = "diff3"; + }; - rebase = { - autoSquash = true; - autoStash = true; - }; + core.whitespace = "fix,-indent-with-non-tab,trailing-space,cr-at-eol"; + color.ui = "auto"; - rerere = { - autoupdate = true; - enabled = true; - }; + repack.usedeltabaseoffset = "true"; - url = { - "https://github.com/".insteadOf = "github:"; - "ssh://git@github.com/".pushInsteadOf = "github:"; - "https://gitlab.com/".insteadOf = "gitlab:"; - "ssh://git@gitlab.com/".pushInsteadOf = "gitlab:"; - "https://aur.archlinux.org/".insteadOf = "aur:"; - "ssh://aur@aur.archlinux.org/".pushInsteadOf = "aur:"; - "https://git.sr.ht/".insteadOf = "srht:"; - "ssh://git@git.sr.ht/".pushInsteadOf = "srht:"; - "https://codeberg.org/".insteadOf = "codeberg:"; - "ssh://git@codeberg.org/".pushInsteadOf = "codeberg:"; + rebase = { + autoSquash = true; + autoStash = true; + }; + + rerere = { + autoupdate = true; + enabled = true; + }; + + url = { + "https://github.com/".insteadOf = "github:"; + "ssh://git@github.com/".pushInsteadOf = "github:"; + "https://gitlab.com/".insteadOf = "gitlab:"; + "ssh://git@gitlab.com/".pushInsteadOf = "gitlab:"; + "https://aur.archlinux.org/".insteadOf = "aur:"; + "ssh://aur@aur.archlinux.org/".pushInsteadOf = "aur:"; + "https://git.sr.ht/".insteadOf = "srht:"; + "ssh://git@git.sr.ht/".pushInsteadOf = "srht:"; + "https://codeberg.org/".insteadOf = "codeberg:"; + "ssh://git@codeberg.org/".pushInsteadOf = "codeberg:"; + }; + }; + lfs.enable = true; + aliases = { + br = "branch"; + c = "commit -m"; + ca = "commit -am"; + co = "checkout"; + d = "diff"; + df = "!git hist | peco | awk '{print $2}' | xargs -I {} git diff {}^ {}"; + edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; vim `f`"; + fuck = "commit --amend -m"; + graph = "log --all --decorate --graph"; + ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)"; + pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)"; + af = "!git add $(git ls-files -m -o --exclude-standard | fzf -m)"; + st = "status"; + hist = '' + log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all + ''; + llog = '' + log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative + ''; }; - }; - lfs.enable = true; - aliases = { - br = "branch"; - c = "commit -m"; - ca = "commit -am"; - co = "checkout"; - d = "diff"; - df = "!git hist | peco | awk '{print $2}' | xargs -I {} git diff {}^ {}"; - edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; vim `f`"; - fuck = "commit --amend -m"; - graph = "log --all --decorate --graph"; - ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)"; - pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)"; - af = "!git add $(git ls-files -m -o --exclude-standard | fzf -m)"; - st = "status"; - hist = '' - log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all - ''; - llog = '' - log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative - ''; }; }; }; diff --git a/home/isabel/packages/cli/confs/lazygit.nix b/home/isabel/packages/cli/confs/lazygit.nix deleted file mode 100644 index af441c04f..000000000 --- a/home/isabel/packages/cli/confs/lazygit.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - osConfig, - lib, - pkgs, - inputs, - self, - ... -}: -with lib; let - programs = osConfig.modules.programs; - device = osConfig.modules.device; - - acceptedTypes = ["desktop" "laptop" "lite" "hybrid"]; -in { - config = mkIf ((builtins.elem device.type acceptedTypes) && (programs.cli.enable)) { - programs.lazygit = { - enable = true; - catppuccin.enable = true; - }; - }; -} diff --git a/home/isabel/packages/cli/confs/nushell/config.nu b/home/isabel/packages/cli/confs/nushell/config.nu new file mode 100644 index 000000000..206e097fe --- /dev/null +++ b/home/isabel/packages/cli/confs/nushell/config.nu @@ -0,0 +1,248 @@ +let catppuccin = { + latte: { + rosewater: "#dc8a78" + flamingo: "#dd7878" + pink: "#ea76cb" + mauve: "#8839ef" + red: "#d20f39" + maroon: "#e64553" + peach: "#fe640b" + yellow: "#df8e1d" + green: "#40a02b" + teal: "#179299" + sky: "#04a5e5" + sapphire: "#209fb5" + blue: "#1e66f5" + lavender: "#7287fd" + text: "#4c4f69" + subtext1: "#5c5f77" + subtext0: "#6c6f85" + overlay2: "#7c7f93" + overlay1: "#8c8fa1" + overlay0: "#9ca0b0" + surface2: "#acb0be" + surface1: "#bcc0cc" + surface0: "#ccd0da" + crust: "#dce0e8" + mantle: "#e6e9ef" + base: "#eff1f5" + } + frappe: { + rosewater: "#f2d5cf" + flamingo: "#eebebe" + pink: "#f4b8e4" + mauve: "#ca9ee6" + red: "#e78284" + maroon: "#ea999c" + peach: "#ef9f76" + yellow: "#e5c890" + green: "#a6d189" + teal: "#81c8be" + sky: "#99d1db" + sapphire: "#85c1dc" + blue: "#8caaee" + lavender: "#babbf1" + text: "#c6d0f5" + subtext1: "#b5bfe2" + subtext0: "#a5adce" + overlay2: "#949cbb" + overlay1: "#838ba7" + overlay0: "#737994" + surface2: "#626880" + surface1: "#51576d" + surface0: "#414559" + base: "#303446" + mantle: "#292c3c" + crust: "#232634" + } + macchiato: { + rosewater: "#f4dbd6" + flamingo: "#f0c6c6" + pink: "#f5bde6" + mauve: "#c6a0f6" + red: "#ed8796" + maroon: "#ee99a0" + peach: "#f5a97f" + yellow: "#eed49f" + green: "#a6da95" + teal: "#8bd5ca" + sky: "#91d7e3" + sapphire: "#7dc4e4" + blue: "#8aadf4" + lavender: "#b7bdf8" + text: "#cad3f5" + subtext1: "#b8c0e0" + subtext0: "#a5adcb" + overlay2: "#939ab7" + overlay1: "#8087a2" + overlay0: "#6e738d" + surface2: "#5b6078" + surface1: "#494d64" + surface0: "#363a4f" + base: "#24273a" + mantle: "#1e2030" + crust: "#181926" + } + mocha: { + rosewater: "#f5e0dc" + flamingo: "#f2cdcd" + pink: "#f5c2e7" + mauve: "#cba6f7" + red: "#f38ba8" + maroon: "#eba0ac" + peach: "#fab387" + yellow: "#f9e2af" + green: "#a6e3a1" + teal: "#94e2d5" + sky: "#89dceb" + sapphire: "#74c7ec" + blue: "#89b4fa" + lavender: "#b4befe" + text: "#cdd6f4" + subtext1: "#bac2de" + subtext0: "#a6adc8" + overlay2: "#9399b2" + overlay1: "#7f849c" + overlay0: "#6c7086" + surface2: "#585b70" + surface1: "#45475a" + surface0: "#313244" + base: "#1e1e2e" + mantle: "#181825" + crust: "#11111b" + } +} + +let stheme = $catppuccin.mocha + +let theme = { + separator: $stheme.overlay0 + leading_trailing_space_bg: $stheme.overlay0 + header: $stheme.green + date: $stheme.mauve + filesize: $stheme.blue + row_index: $stheme.pink + bool: $stheme.peach + int: $stheme.peach + duration: $stheme.peach + range: $stheme.peach + float: $stheme.peach + string: $stheme.green + nothing: $stheme.peach + binary: $stheme.peach + cellpath: $stheme.peach + hints: dark_gray + + shape_garbage: { fg: $stheme.crust bg: $stheme.red attr: b } + shape_bool: $stheme.blue + shape_int: { fg: $stheme.mauve attr: b} + shape_float: { fg: $stheme.mauve attr: b} + shape_range: { fg: $stheme.yellow attr: b} + shape_internalcall: { fg: $stheme.blue attr: b} + shape_external: { fg: $stheme.blue attr: b} + shape_externalarg: $stheme.text + shape_literal: $stheme.blue + shape_operator: $stheme.yellow + shape_signature: { fg: $stheme.green attr: b} + shape_string: $stheme.green + shape_filepath: $stheme.yellow + shape_globpattern: { fg: $stheme.blue attr: b} + shape_variable: $stheme.text + shape_flag: { fg: $stheme.blue attr: b} + shape_custom: {attr: b} +} + +let-env config = { + show_banner: false + cursor_shape: { + vi_normal: block + vi_insert: line + } + edit_mode: vi + render_right_prompt_on_last_line: true + rm: { + always_trash: true + } + color_config: $theme + keybindings: [ + { + name: completion_menu + modifier: none + keycode: tab + mode: [emacs vi_normal vi_insert] + event: { + until: [ + { send: menu name: completion_menu } + { send: menunext } + ] + } + } + { + name: completion_previous + modifier: shift + keycode: backtab + mode: [emacs, vi_normal, vi_insert] # Note: You can add the same keybinding to all modes by using a list + event: { send: menuprevious } + } + { + name: jump_to_start + keycode: char_h + modifier: shift + mode: [vi_normal] + event: { edit: MoveToLineStart } + } + { + name: jump_to_end + modifier: shift + keycode: char_l + mode: [vi_normal] + event: { edit: MoveToLineEnd } + } + ] + completions: { + algorithm: "fuzzy" + } + hooks: { + pre_prompt: [{ || + let direnv = (direnv export json | from json) + let direnv = if ($direnv | length) == 1 { $direnv } else { {} } + $direnv | load-env + }] + pre_execution: [{ || }] + } +} + +let-env PROMPT_INDICATOR_VI_INSERT = "I " +let-env PROMPT_INDICATOR_VI_NORMAL = "N " + +# Aliases +# ls to exa +alias ls = exa -al --color=always --icons --group-directories-first +alias la = exa -a --color=always --icons --group-directories-firt +alias ll = exa -abghHliS --icons --group-directories-first +alias lt = exa -aT --color=always --icons --group-directories-first + +# confirm +alias cp = cp -i +alias mv = mv -i +alias rm = rm -i +alias ln = ln -i + +alias df = df -h # human readblity +alias rs = sudo reboot +alias sysctl = sudo systemctl +alias doas = doas -- +alias jctl = journalctl -p 3 -xb # get error messages from journalctl +alias lg = lazygit +alias ssp = ~/shells/spawnshell.sh + + +use "~/.config/nushell/scripts/custom-completions/nix/nix-completions.nu" * +use "~/.config/nushell/scripts/custom-completions/git/git-completions.nu" * +use "~/.config/nushell/scripts/custom-completions/npm/npm-completions.nu" * +use "~/.config/nushell/scripts/custom-completions/just/just-completions.nu" * +use "~/.config/nushell/scripts/custom-completions/tealdeer/tldr-completions.nu" * +use "~/.config/nushell/scripts/custom-completions/btm/btm-completions.nu" * +use "~/.config/nushell/scripts/custom-completions/make/make-completions.nu" * + +source ~/.cache/starship/init.nu diff --git a/home/isabel/packages/cli/confs/nushell/default.nix b/home/isabel/packages/cli/confs/nushell/default.nix new file mode 100644 index 000000000..762aafa50 --- /dev/null +++ b/home/isabel/packages/cli/confs/nushell/default.nix @@ -0,0 +1,41 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}: { + programs.nushell = { + enable = true; + package = pkgs.nushell; + }; + + home.file = { + "${config.xdg.configHome}/nushell/config.nu" = lib.mkForce { + source = config.lib.file.mkOutOfStoreSymlink "/home/isabel/.setup/home/isabel/packages/cli/confs/nushell/config.nu"; + }; + "${config.xdg.configHome}/nushell/env.nu" = lib.mkForce { + source = config.lib.file.mkOutOfStoreSymlink "/home/isabel/.setup/home/isabel/packages/cli/confs/nushell/env.nu"; + }; + "${config.xdg.configHome}/nushell/history.txt" = { + source = config.lib.file.mkOutOfStoreSymlink "${config.xdg.dataHome}/history"; + }; + "${config.xdg.configHome}/nushell/env-nix.nu" = with lib; let + environmentVariables = { + EDITOR = "nvim"; + GIT_EDITOR = "nvim"; + VISUAL = "neovide"; + TERMINAL = "alacritty"; + }; + in { + text = '' + ${concatStringsSep "\n" + (mapAttrsToList (k: v: "let-env ${k} = ${v}") + environmentVariables)} + ''; + }; + "${config.xdg.configHome}/nushell/scripts" = { + source = inputs.nu_scripts; + }; + }; +} diff --git a/home/isabel/packages/cli/confs/nushell/env.nu b/home/isabel/packages/cli/confs/nushell/env.nu new file mode 100644 index 000000000..6fd23a9b1 --- /dev/null +++ b/home/isabel/packages/cli/confs/nushell/env.nu @@ -0,0 +1,44 @@ +mkdir ~/.cache/starship +starship init nu | str replace "term size -c" "term size" | save -f ~/.cache/starship/init.nu + +let-env SSH_AGENT_TIMEOUT = 300 +mkdir ~/.cache/ssh-agent/ + +if ("~/.cache/ssh-agent/agent" | path exists) { + let ssh_env = (open ~/.cache/ssh-agent/agent | from json) + + let nc = (do { ^nc -zU $ssh_env.SSH_AUTH_SOCK } | complete) + let sock_exit = $nc.exit_code + + if ($sock_exit == 0) { + $ssh_env | load-env + } else { + print "Starting new ssh agent" + + let ssh_env = (ssh-agent -c -t $env.SSH_AGENT_TIMEOUT + | lines + | first 2 + | parse "setenv {name} {value};" + | transpose -i -r -d) + + $ssh_env | to json | save -f ~/.cache/ssh-agent/agent + $ssh_env | load-env + } +} else { + print "Starting ssh agent" + + let ssh_env = (ssh-agent -c -t $env.SSH_AGENT_TIMEOUT + | lines + | first 2 + | parse "setenv {name} {value};" + | transpose -i -r -d) + + $ssh_env | to json | save ~/.cache/ssh-agent/agent + $ssh_env | load-env +} + +if ("~/.ssh/github" | path exists ) { + do { ssh-add ~/.ssh/github } out> /dev/null +} + +source ~/.config/nushell/env-nix.nu diff --git a/home/isabel/packages/cli/confs/starship.nix b/home/isabel/packages/cli/confs/starship.nix index 30434a436..fc5b3ab00 100644 --- a/home/isabel/packages/cli/confs/starship.nix +++ b/home/isabel/packages/cli/confs/starship.nix @@ -106,7 +106,8 @@ in { format = "[$symbol ](red)"; }; docker_context = { - format = "via [ $context](bold blue) "; + symbol = ""; + format = "[$symbol ](blue)"; }; java = { symbol = ""; @@ -131,7 +132,7 @@ in { style = "bold green"; }; git_status = { - format = "[\($all_status$ahead_behind\)]($style) "; + format = "[($all_status$ahead_behind)]($style) "; style = "bold green"; conflicted = "🏳"; up_to_date = " "; @@ -141,7 +142,7 @@ in { behind = "⇣$count"; stashed = "󰏗 "; modified = " "; - staged = "[++\($count\)](green)"; + staged = "[++($count)](green)"; renamed = "󰖷 "; deleted = " "; }; diff --git a/home/isabel/packages/cli/default.nix b/home/isabel/packages/cli/default.nix index 6ab14d3ef..42a903758 100644 --- a/home/isabel/packages/cli/default.nix +++ b/home/isabel/packages/cli/default.nix @@ -1,6 +1,5 @@ _: { imports = [ - ./shells ./confs ./shared.nix diff --git a/home/isabel/packages/cli/shared.nix b/home/isabel/packages/cli/shared.nix index 45dba7266..309009eba 100644 --- a/home/isabel/packages/cli/shared.nix +++ b/home/isabel/packages/cli/shared.nix @@ -20,6 +20,7 @@ in { dconf nitch exa + nur.repos.bella.bellado ]; }; } diff --git a/home/isabel/packages/gui/confs/editors/nvim/default.nix b/home/isabel/packages/gui/confs/editors/nvim/default.nix index c01df97dd..bcc7f5b18 100644 --- a/home/isabel/packages/gui/confs/editors/nvim/default.nix +++ b/home/isabel/packages/gui/confs/editors/nvim/default.nix @@ -1,20 +1,97 @@ { pkgs, + lib, config, + inputs, ... -}: { - home.packages = with pkgs; [ - neovim-unwrapped - ]; +}: +with lib; let + cfg = config.modules.programs.nvim; +in { + options.modules.programs.nvim = {enable = mkEnableOption "nvim";}; - programs.neovim = { - enable = true; - package = pkgs.neovim-unwrapped; - vimAlias = true; - viAlias = false; - vimdiffAlias = false; - withRuby = false; - withNodeJs = false; - withPython3 = false; + config = mkIf cfg.enable { + programs.neovim = { + enable = true; + package = pkgs.neovim-unwrapped; + vimAlias = true; + viAlias = false; + vimdiffAlias = false; + withRuby = false; + withNodeJs = false; + withPython3 = false; + extraPackages = with pkgs; [ + texlab # latex LSP + nil # nix language server + alejandra # nix formatter + ]; + plugins = with pkgs.vimPlugins; [ + copilot-lua + lsp_lines-nvim + vim-nix + nvim-ts-autotag + cmp-nvim-lsp-signature-help + cmp-buffer + comment-nvim + lsp_lines-nvim + null-ls-nvim + vim-fugitive + friendly-snippets + luasnip + rust-tools-nvim + crates-nvim + vim-illuminate + cmp_luasnip + nvim-cmp + impatient-nvim + indent-blankline-nvim + telescope-nvim + nvim-web-devicons + cmp-nvim-lsp + cmp-path + catppuccin-nvim + lspkind-nvim + nvim-lspconfig + hop-nvim + alpha-nvim + nvim-autopairs + nvim-colorizer-lua + nvim-ts-rainbow + gitsigns-nvim + neo-tree-nvim + toggleterm-nvim + todo-comments-nvim + (nvim-treesitter.withPlugins (plugins: + with plugins; [ + tree-sitter-python + tree-sitter-c + tree-sitter-nix + tree-sitter-cpp + tree-sitter-rust + tree-sitter-toml + tree-sitter-json + tree-sitter-lua + tree-sitter-go + tree-sitter-java + tree-sitter-typescript + tree-sitter-javascript + tree-sitter-cmake + tree-sitter-comment + tree-sitter-http + tree-sitter-regex + tree-sitter-dart + tree-sitter-make + tree-sitter-html + tree-sitter-css + tree-sitter-latex + tree-sitter-bibtex + tree-sitter-php + tree-sitter-sql + tree-sitter-zig + tree-sitter-dockerfile + tree-sitter-markdown + ])) + ]; + }; }; } diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/apps b/home/isabel/packages/gui/confs/eww/config/scripts/apps old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/bluetooth b/home/isabel/packages/gui/confs/eww/config/scripts/bluetooth old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/brightness b/home/isabel/packages/gui/confs/eww/config/scripts/brightness old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/events b/home/isabel/packages/gui/confs/eww/config/scripts/events old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/host/apps.js b/home/isabel/packages/gui/confs/eww/config/scripts/host/apps.js old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/host/battery.js b/home/isabel/packages/gui/confs/eww/config/scripts/host/battery.js old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/host/bluetooth.js b/home/isabel/packages/gui/confs/eww/config/scripts/host/bluetooth.js old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/host/common.js b/home/isabel/packages/gui/confs/eww/config/scripts/host/common.js old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/host/dbus.js b/home/isabel/packages/gui/confs/eww/config/scripts/host/dbus.js old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/host/host b/home/isabel/packages/gui/confs/eww/config/scripts/host/host old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/host/lib.js b/home/isabel/packages/gui/confs/eww/config/scripts/host/lib.js old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/host/main.js b/home/isabel/packages/gui/confs/eww/config/scripts/host/main.js old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/host/media.js b/home/isabel/packages/gui/confs/eww/config/scripts/host/media.js old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/host/network.js b/home/isabel/packages/gui/confs/eww/config/scripts/host/network.js old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/host/notifications.js b/home/isabel/packages/gui/confs/eww/config/scripts/host/notifications.js old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/hyprland b/home/isabel/packages/gui/confs/eww/config/scripts/hyprland old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/init b/home/isabel/packages/gui/confs/eww/config/scripts/init old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/launcher b/home/isabel/packages/gui/confs/eww/config/scripts/launcher old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/network b/home/isabel/packages/gui/confs/eww/config/scripts/network old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/night_light b/home/isabel/packages/gui/confs/eww/config/scripts/night_light old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/notifications b/home/isabel/packages/gui/confs/eww/config/scripts/notifications old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/osd b/home/isabel/packages/gui/confs/eww/config/scripts/osd old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/player b/home/isabel/packages/gui/confs/eww/config/scripts/player old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/power b/home/isabel/packages/gui/confs/eww/config/scripts/power old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/screenshot b/home/isabel/packages/gui/confs/eww/config/scripts/screenshot old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/theme b/home/isabel/packages/gui/confs/eww/config/scripts/theme old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/todo b/home/isabel/packages/gui/confs/eww/config/scripts/todo old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/scripts/volume b/home/isabel/packages/gui/confs/eww/config/scripts/volume old mode 100644 new mode 100755 diff --git a/home/isabel/packages/gui/confs/eww/config/yuck/widgets/bar_widgets.yuck b/home/isabel/packages/gui/confs/eww/config/yuck/widgets/bar_widgets.yuck index 920340e3a..cb32d3889 100644 --- a/home/isabel/packages/gui/confs/eww/config/yuck/widgets/bar_widgets.yuck +++ b/home/isabel/packages/gui/confs/eww/config/yuck/widgets/bar_widgets.yuck @@ -2,7 +2,7 @@ (button :class "button launcher" :onclick "${EWW_CONFIG_DIR}/scripts/launcher toggle_menu app_launcher" - (label :class "icon" :text "" :halign "center") + (label :class "icon" :text "" :halign "center") ) )) diff --git a/home/isabel/packages/gui/wayland.nix b/home/isabel/packages/gui/wayland.nix index fa86d2275..65d24b1f9 100644 --- a/home/isabel/packages/gui/wayland.nix +++ b/home/isabel/packages/gui/wayland.nix @@ -10,6 +10,7 @@ in { config = mkIf (env.isWayland) { home.packages = with pkgs; [ swappy + swaynotificationcenter ]; }; } diff --git a/home/isabel/packages/system/sops.nix b/home/isabel/packages/system/sops.nix new file mode 100644 index 000000000..406aa4383 --- /dev/null +++ b/home/isabel/packages/system/sops.nix @@ -0,0 +1,14 @@ +{config, ...}: { + sops = { + gnupg.home = config.programs.gpg.homedir; + defaultSopsFile = ../../../../secrets/secrets.yaml; + secrets = { + "gh-key" = { + path = "${config.home.homeDirectory}/.ssh/keys/github/gh"; + }; + "gh-key-pub" = { + path = "${config.home.homeDirectory}/.ssh/keys/github/gh.pub"; + }; + }; + }; +} diff --git a/home/isabel/packages/system/ssh.nix b/home/isabel/packages/system/ssh.nix index ff2f0b535..cf76508f1 100644 --- a/home/isabel/packages/system/ssh.nix +++ b/home/isabel/packages/system/ssh.nix @@ -5,49 +5,18 @@ _: { hashKnownHosts = true; compression = true; matchBlocks = let - commonIdFile = "~/.ssh/id_ed25519"; + commonIdFile = "~/.ssh/keys/id_ed25519"; in { - "aur" = { + "aur.archlinux.org" = { + user = "aur"; hostname = "aur.archlinux.org"; - identityFile = "~/.ssh/aur"; + identityFile = "~/.ssh/keys/aur/id.key"; }; - "builder" = { - hostname = "build.neushore.dev"; - user = "builder"; - identityFile = "~/.ssh/builder"; - port = 30; - }; - - "nix-builder" = { - hostname = "helios"; - user = "nix-builder"; - identityFile = "~/.ssh/builder"; - }; - - "frozendev" = { - hostname = "frzn.dev"; - user = "raf"; - identityFile = "~/.ssh/id_rsa"; - }; - - "notavps" = { - hostname = "cloud.notashelf.dev"; - user = "notashelf"; - identityFile = "~/.ssh/notavps"; - port = 2214; - }; - - "github" = { + "github.com" = { + user = "git"; hostname = "github.com"; - identityFile = "~/.ssh/github_rsa"; - }; - - "neushore" = { - hostname = "ssh.neushore.dev"; - user = "raf"; - identityFile = "~/.ssh/neushore"; - port = 30; + identityFile = "~/.ssh/keys/github/id.key"; }; }; }; diff --git a/home/isabel/packages/wm/hyprland/config.nix b/home/isabel/packages/wm/hyprland/config.nix index 8988e84ec..02df23e95 100644 --- a/home/isabel/packages/wm/hyprland/config.nix +++ b/home/isabel/packages/wm/hyprland/config.nix @@ -29,7 +29,7 @@ in { exec-once = wl-paste --type text --watch cliphist store #Stores only text data exec-once = wl-paste --type image --watch cliphist store #Stores only image data # exec-once = wlsunset -S 9:00 -s 19:30 - exec-once = bash ~/.config/eww/scripts/init + exec-once = ~/.config/eww/scripts/init exec-once = hyprctl setcursor ${pointer.name} ${toString pointer.size} diff --git a/home/isabel/packages/wm/hyprland/default.nix b/home/isabel/packages/wm/hyprland/default.nix index 569086bff..ce46d6e85 100644 --- a/home/isabel/packages/wm/hyprland/default.nix +++ b/home/isabel/packages/wm/hyprland/default.nix @@ -21,6 +21,7 @@ in { grim hyprpicker hyprland-share-picker + nur.repos.bella.catppuccin-hyprland ]; wayland.windowManager.hyprland = { enable = true; diff --git a/home/isabel/packages/cli/shells/default.nix b/home/isabel/shells/default.nix similarity index 100% rename from home/isabel/packages/cli/shells/default.nix rename to home/isabel/shells/default.nix diff --git a/home/isabel/packages/cli/shells/docker.nix b/home/isabel/shells/docker.nix similarity index 100% rename from home/isabel/packages/cli/shells/docker.nix rename to home/isabel/shells/docker.nix diff --git a/home/isabel/packages/cli/shells/node.nix b/home/isabel/shells/node.nix similarity index 100% rename from home/isabel/packages/cli/shells/node.nix rename to home/isabel/shells/node.nix diff --git a/home/isabel/packages/cli/shells/py.nix b/home/isabel/shells/py.nix similarity index 100% rename from home/isabel/packages/cli/shells/py.nix rename to home/isabel/shells/py.nix diff --git a/home/isabel/packages/cli/shells/rust.nix b/home/isabel/shells/rust.nix similarity index 63% rename from home/isabel/packages/cli/shells/rust.nix rename to home/isabel/shells/rust.nix index 178535695..87a1d0427 100644 --- a/home/isabel/packages/cli/shells/rust.nix +++ b/home/isabel/shells/rust.nix @@ -3,8 +3,10 @@ extras ? "", }: pkgs.mkShell { - nativeBuildInputs = with pkgs; [ + buildInputs = with pkgs; [ rustc + rustfmt + rust-analyzer cargo extras ]; diff --git a/home/isabel/shells/spawnshell.sh b/home/isabel/shells/spawnshell.sh new file mode 100755 index 000000000..b93953715 --- /dev/null +++ b/home/isabel/shells/spawnshell.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +if [[ "$#" -gt 1 ]]; then + extras="${@:2}" + nix-shell ~/shells/"$1".nix --arg extras "with import {}; [ $extras ]" +else + nix-shell ~/shells/"$1".nix +fi diff --git a/home/isabel/themes/gtk.nix b/home/isabel/themes/gtk.nix index c46aff6fe..e9d998617 100644 --- a/home/isabel/themes/gtk.nix +++ b/home/isabel/themes/gtk.nix @@ -43,7 +43,7 @@ in { enable = true; theme = { - name = "Catppuccin-Mocha-Standard-Sapphire-Dark"; + name = "Catppuccin-Mocha-Standard-Sapphire-dark"; package = pkgs.catppuccin-gtk.override { size = "standard"; accents = ["sapphire"]; diff --git a/lib/default.nix b/lib/default.nix index 12eed27cf..a658ea782 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -50,24 +50,5 @@ in inherit modules system; specialArgs = {inherit inputs lib self;} // args.specialArgs or {}; }; - - # mkIso is should be a set that extends mkSystem with necessary modules - # to create an iso image - - mkNixosIso = { - modules, - system, - ... - } @ args: - mkSystem { - inherit system; - specialArgs = {inherit inputs lib self;} // args.specialArgs or {}; - modules = - [ - "${inputs.nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix" - "${inputs.nixpkgs}/nixos/modules/installer/cd-dvd/channel.nix" - ] - ++ args.modules or []; - }; } ) diff --git a/lib/flake/devShell/default.nix b/lib/flake/devShell/default.nix deleted file mode 100644 index c73c90284..000000000 --- a/lib/flake/devShell/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - shellCommands = [ - { - help = "Run the configured formatter (default: alejandra)"; - name = "fmt"; - command = "nix fmt"; - } - - { - package = "alejandra"; - category = "formatter"; - } - { - package = "nixpkgs-fmt"; - category = "formatter"; - } - ]; - - env = [ - { - name = "FLAKE"; - value = builtins.exec "pwd"; - } - ]; -} diff --git a/modules/common/core/network/default.nix b/modules/common/core/network/default.nix index 34b9b43a8..78bf63c91 100644 --- a/modules/common/core/network/default.nix +++ b/modules/common/core/network/default.nix @@ -16,6 +16,10 @@ with lib; { }; networking = { + # use dhcpd + useDHCP = false; + useNetworkd = true; + # dns nameservers = [ # cloudflare, yuck diff --git a/modules/common/core/network/ssh.nix b/modules/common/core/network/ssh.nix index 2b5e3f012..2937f373c 100644 --- a/modules/common/core/network/ssh.nix +++ b/modules/common/core/network/ssh.nix @@ -22,9 +22,14 @@ hostKeys = [ { bits = 4096; - path = "/etc/ssh/id_rsa"; + path = "/etc/ssh/ssh_host_rsa_key"; type = "rsa"; } + { + bits = 4096; + path = "/etc/ssh/ssh_host_ed25519_key"; + type = "ed25519"; + } ]; }; } diff --git a/modules/common/core/nix/default.nix b/modules/common/core/nix/default.nix index 93a80ba53..5d6750c3f 100644 --- a/modules/common/core/nix/default.nix +++ b/modules/common/core/nix/default.nix @@ -24,6 +24,20 @@ with lib; { allowUnsupportedSystem = true; permittedInsecurePackages = []; }; + + overlays = with inputs; [ + rust-overlay.overlays.default + + (final: prev: { + nur = import nur { + nurpkgs = prev; + pkgs = prev; + repoOverrides = { + bella = inputs.bella-nur.packages.${prev.system}; + }; + }; + }) + ]; }; # faster rebuilding @@ -66,9 +80,9 @@ with lib; { # automatically optimise symlinks auto-optimise-store = true; # allow sudo users to mark the following values as trusted - allowed-users = ["@wheel" "nix-builder"]; + allowed-users = ["@wheel"]; # only allow sudo users to manage the nix store - trusted-users = ["@wheel" "nix-builder"]; + trusted-users = ["@wheel"]; # let the system decide the number of max jobs max-jobs = "auto"; # build inside sandboxed environments @@ -101,9 +115,6 @@ with lib; { keep-derivations = true; keep-outputs = true; - # use binary cache, its not gentoo - # external builders can also pick up those substituters - builders-use-substitutes = true; # substituters to use substituters = [ "https://cache.ngi0.nixos.org" # content addressed nix cache (TODO) diff --git a/modules/common/system/display/wayland/environment.nix b/modules/common/system/display/wayland/environment.nix index 0c305738b..25d2ab4a9 100644 --- a/modules/common/system/display/wayland/environment.nix +++ b/modules/common/system/display/wayland/environment.nix @@ -9,11 +9,6 @@ with lib; let env = config.modules.usrEnv; in { config = mkIf (sys.enable && env.isWayland) { - environment.etc."greetd/environments".text = '' - ${lib.optionalString (env.desktop == "Hyprland") "Hyprland"} - zsh - ''; - environment = { # Experimental wayland-native wine # https://nixos.wiki/wiki/Wine diff --git a/secrets.yaml b/secrets/secrets.yaml similarity index 100% rename from secrets.yaml rename to secrets/secrets.yaml