diff --git a/.gitignore b/.gitignore index b3df9d4..9dec873 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ !machines/enka/dunst/ !machines/enka/firefox/ !machines/enka/fuzzel/ +!machines/enka/ghostty/ !machines/enka/git/ !machines/enka/greetd/ !machines/enka/gtk/ diff --git a/flake.lock b/flake.lock index 5f62b12..ca3629b 100644 --- a/flake.lock +++ b/flake.lock @@ -22,6 +22,22 @@ } }, "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1648199409, + "narHash": "sha256-JwPKdC2PoVBkG6E+eWw3j6BMR6sL3COpYWfif7RVb8Y=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "64a525ee38886ab9028e6f61790de0832aa3ef03", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { "flake": false, "locked": { "lastModified": 1673956053, @@ -37,6 +53,162 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1656065134, + "narHash": "sha256-oc6E6ByIw3oJaIyc67maaFcnjYOz1mMcOtHxbEf9NwQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "bee6a7250dd1b01844a2de7e02e4df7d8a0a206c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "ghostty": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs", + "nixpkgs-unstable": "nixpkgs-unstable", + "nixpkgs-zig-0-12": "nixpkgs-zig-0-12", + "zig": "zig", + "zls-master": "zls-master" + }, + "locked": { + "lastModified": 1701896048, + "narHash": "sha256-S34sh0F46ARmLNvU98iVIUDCr4/9L1n+IaE2j01H5AQ=", + "ref": "refs/heads/main", + "rev": "f6ce92a31aa51ee65bf43d40ca2b7da4187ea163", + "revCount": 4070, + "type": "git", + "url": "ssh://git@github.com/RGBCube/ghostty" + }, + "original": { + "type": "git", + "url": "ssh://git@github.com/RGBCube/ghostty" + } + }, + "ghosttyModule": { + "locked": { + "lastModified": 1695482156, + "narHash": "sha256-PFyViLT7eCi/jN6fZ9kFUZF4mYye9Mplm/SEwhUvCDM=", + "owner": "clo4", + "repo": "ghostty-hm-module", + "rev": "3ccb4b02eb84316e7ccbf007a6e29495f7e6bee4", + "type": "github" + }, + "original": { + "owner": "clo4", + "repo": "ghostty-hm-module", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "ghostty", + "zls-master", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1694102001, + "narHash": "sha256-vky6VPK1n1od6vXbqzOXnekrQpTL4hbPAwUhT5J9c9E=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "9e21c80adf67ebcb077d75bd5e7d724d21eeafd6", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "homeManager": { "inputs": { "nixpkgs": [ @@ -60,8 +232,8 @@ "hyprland": { "inputs": { "hyprland-protocols": "hyprland-protocols", - "nixpkgs": "nixpkgs", - "systems": "systems", + "nixpkgs": "nixpkgs_4", + "systems": "systems_2", "wlroots": "wlroots", "xdph": "xdph" }, @@ -106,7 +278,7 @@ }, "hyprpicker": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1698684516, @@ -122,6 +294,18 @@ "type": "github" } }, + "langref": { + "flake": false, + "locked": { + "narHash": "sha256-mYdDCBdNEIeMbavdhSo8qXqW+3fqPC8BAich7W3umrI=", + "type": "file", + "url": "https://raw.githubusercontent.com/ziglang/zig/63bd2bff12992aef0ce23ae4b344e9cb5d65f05d/doc/langref.html.in" + }, + "original": { + "type": "file", + "url": "https://raw.githubusercontent.com/ziglang/zig/63bd2bff12992aef0ce23ae4b344e9cb5d65f05d/doc/langref.html.in" + } + }, "libgit2": { "flake": false, "locked": { @@ -156,10 +340,10 @@ }, "nixSuper": { "inputs": { - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_4", "libgit2": "libgit2", "lowdown-src": "lowdown-src", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_6", "nixpkgs-regression": "nixpkgs-regression" }, "locked": { @@ -178,16 +362,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1700612854, - "narHash": "sha256-yrQ8osMD+vDLGFX7pcwsY/Qr5PUd6OmDMYJZzZi0+zc=", - "owner": "NixOS", + "lastModified": 1691950488, + "narHash": "sha256-iUNEeudc4dGjx+HsHccnGiuZUVE/nhjXuQ1DVCsHIUY=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "19cbff58383a4ae384dea4d1d0c823d72b49d614", + "rev": "720e61ed8de116eec48d6baea1d54469b536b985", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable", + "owner": "nixos", + "ref": "release-23.05", "repo": "nixpkgs", "type": "github" } @@ -208,7 +392,87 @@ "type": "github" } }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1688221086, + "narHash": "sha256-cdW6qUL71cNWhHCpMPOJjlw0wzSRP0pVlRn2vqX/VVg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "cd99c2b3c9f160cd004318e0697f90bbd5960825", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-zig-0-12": { + "locked": { + "lastModified": 1701575450, + "narHash": "sha256-I3hNRC+3F9RI0YL0YSUpmibCPKr+prCSJ2FWW5cuekA=", + "owner": "vancluever", + "repo": "nixpkgs", + "rev": "fd803506dbed295c45931f4f5938c28e3484dee7", + "type": "github" + }, + "original": { + "owner": "vancluever", + "ref": "vancluever-zig-0-12", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_2": { + "locked": { + "lastModified": 1689088367, + "narHash": "sha256-Y2tl2TlKCWEHrOeM9ivjCLlRAKH3qoPUE/emhZECU14=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5c9ddb86679c400d6b7360797b8a22167c2053f8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1697915759, + "narHash": "sha256-WyMj5jGcecD+KC8gEs+wFth1J1wjisZf8kVZH13f1Zo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "51d906d2341c9e866e48c2efcaac0f2d70bfd43e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1700612854, + "narHash": "sha256-yrQ8osMD+vDLGFX7pcwsY/Qr5PUd6OmDMYJZzZi0+zc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "19cbff58383a4ae384dea4d1d0c823d72b49d614", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1683014792, "narHash": "sha256-6Va9iVtmmsw4raBc3QKvQT2KT/NGRWlvUlJj46zN8B8=", @@ -224,7 +488,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_6": { "locked": { "lastModified": 1700342017, "narHash": "sha256-HaibwlWH5LuqsaibW3sIVjZQtEM/jWtOHX4Nk93abGE=", @@ -240,7 +504,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_7": { "locked": { "lastModified": 1701436327, "narHash": "sha256-tRHbnoNI8SIM5O5xuxOmtSLnswEByzmnQcGGyNRjxsE=", @@ -259,11 +523,13 @@ "root": { "inputs": { "fenix": "fenix", + "ghostty": "ghostty", + "ghosttyModule": "ghosttyModule", "homeManager": "homeManager", "hyprland": "hyprland", "hyprpicker": "hyprpicker", "nixSuper": "nixSuper", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_7", "themes": "themes", "tools": "tools" } @@ -286,6 +552,21 @@ } }, "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -302,11 +583,11 @@ }, "themes": { "locked": { - "lastModified": 1701683909, - "narHash": "sha256-R8QFQVQBTTSO/yRBExUhZUL6pmv4FqM71q9c68V+NTQ=", + "lastModified": 1701897893, + "narHash": "sha256-FP9zfdbGWohmACYSew6Aox497Px2Otq7idIZ/lkNTiU=", "owner": "RGBCube", "repo": "ThemeNix", - "rev": "1024c2e2ee9d59de606a9f293fea8c72deeb5842", + "rev": "8e52c2f4fa9e01ed61085c0e7b318821baf5fdb7", "type": "github" }, "original": { @@ -382,8 +663,75 @@ "repo": "xdg-desktop-portal-hyprland", "type": "github" } + }, + "zig": { + "inputs": { + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1701476523, + "narHash": "sha256-CVl4WGElFbc2Y1D0KjDafpMbtuBF4Aj/BpCvN9Xmvhk=", + "owner": "mitchellh", + "repo": "zig-overlay", + "rev": "50127f6531873f5d9f28392b03d224e67dd40c37", + "type": "github" + }, + "original": { + "owner": "mitchellh", + "repo": "zig-overlay", + "type": "github" + } + }, + "zig-overlay": { + "inputs": { + "flake-compat": "flake-compat_3", + "flake-utils": "flake-utils_4", + "nixpkgs": [ + "ghostty", + "zls-master", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1698149298, + "narHash": "sha256-c+o5oUprm8wnJWV8wpBVMlSptSIYy7hCk/vJHjVH4KU=", + "owner": "mitchellh", + "repo": "zig-overlay", + "rev": "bbc407a319659eed86d97989ef50cc82e3677c45", + "type": "github" + }, + "original": { + "owner": "mitchellh", + "repo": "zig-overlay", + "type": "github" + } + }, + "zls-master": { + "inputs": { + "flake-utils": "flake-utils_3", + "gitignore": "gitignore", + "langref": "langref", + "nixpkgs": "nixpkgs_3", + "zig-overlay": "zig-overlay" + }, + "locked": { + "lastModified": 1698376060, + "narHash": "sha256-05v6eGCEJ08v4GQwRtS3l537ZHFmhuWUY4PkuzMjuz8=", + "owner": "zigtools", + "repo": "zls", + "rev": "4607ec816ace6188c4d24f4d4f0fb320714c7063", + "type": "github" + }, + "original": { + "owner": "zigtools", + "ref": "master", + "repo": "zls", + "type": "github" + } } }, "root": "root", "version": 7 -} \ No newline at end of file +} diff --git a/flake.nix b/flake.nix index 29df03b..10c92af 100644 --- a/flake.nix +++ b/flake.nix @@ -66,6 +66,14 @@ url = "github:hyprwm/hyprpicker"; }; + ghostty = { + url = "git+ssh://git@github.com/RGBCube/ghostty"; + }; + + ghosttyModule = { + url = "github:clo4/ghostty-hm-module"; + }; + fenix = { url = "github:nix-community/fenix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -86,6 +94,7 @@ nixSuper, nixpkgs, homeManager, + ghosttyModule, fenix, tools, themes, @@ -95,7 +104,7 @@ upkgs = tools.recursiveUpdateMap (name: { ${name} = inputs.${name}.packages.${system}.default; - }) [ "hyprland" "hyprpicker" ]; + }) [ "hyprland" "hyprpicker" "ghostty" ]; lib = nixpkgs.lib; @@ -150,7 +159,7 @@ }; }; - defaultConfiguration = host: with abstractions; systemConfiguration { + defaultConfiguration = host: { config, ... }: with abstractions; systemConfiguration { nix.gc = { automatic = true; dates = "daily"; @@ -197,7 +206,7 @@ }; specialArgs = abstractions // { - inherit upkgs ulib theme; + inherit upkgs ulib theme ghosttyModule; }; importConfigurations = tools.recursiveUpdateMap (host: { diff --git a/machines/enka/default.nix b/machines/enka/default.nix index 19e579e..3706556 100644 --- a/machines/enka/default.nix +++ b/machines/enka/default.nix @@ -22,6 +22,7 @@ ./dunst ./firefox ./fuzzel + ./ghostty ./git ./greetd ./gtk diff --git a/machines/enka/ghostty/default.nix b/machines/enka/ghostty/default.nix new file mode 100644 index 0000000..2f08273 --- /dev/null +++ b/machines/enka/ghostty/default.nix @@ -0,0 +1,20 @@ +{ pkgs, upkgs, theme, homeConfiguration, enabled, ghosttyModule, ... }: + +homeConfiguration "nixos" { + imports = [ ghosttyModule.homeModules.default ]; + + programs.ghostty = enabled { + package = upkgs.ghostty; + + shellIntegration.enable = false; + + settings = with theme.font; { + font-size = size.normal; + font-family = mono.name; + + config-file = [ + (toString (pkgs.writeText "base16-config" theme.ghosttyConfig)) + ]; + }; + }; +}