feat: switch to ghostty and helix overlay

This commit is contained in:
Jet 2026-04-28 16:49:21 -07:00
parent aab27ee0d0
commit 00e0688d11
No known key found for this signature in database
8 changed files with 286 additions and 106 deletions

View file

@ -56,9 +56,16 @@
systemd.services.opencode-tailnet = {
description = "Expose OpenCode on the tailnet";
after = [ "network-online.target" "tailscaled.service" "tailscale-set-operator.service" ];
after = [
"network-online.target"
"tailscaled.service"
"tailscale-set-operator.service"
];
wants = [ "network-online.target" ];
requires = [ "tailscaled.service" "tailscale-set-operator.service" ];
requires = [
"tailscaled.service"
"tailscale-set-operator.service"
];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
@ -136,11 +143,11 @@
"L+ /usr/bin/bwrap - - - - ${pkgs.bubblewrap}/bin/bwrap"
];
# Set Kitty as default terminal
# Set Ghostty as default terminal
xdg.terminal-exec = {
enable = true;
settings = {
default = [ "kitty.desktop" ];
default = [ "ghostty.desktop" ];
};
};

262
flake.lock generated
View file

@ -1,5 +1,21 @@
{
"nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1761588595,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@ -21,36 +37,63 @@
"type": "github"
}
},
"flake-utils": {
"ghostty": {
"inputs": {
"systems": "systems"
"flake-compat": "flake-compat",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"systems": "systems",
"zig": "zig",
"zon2nix": "zon2nix"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"lastModified": 1777322026,
"narHash": "sha256-HHHgWuBssEBMfV5hOFdFxp0WUXiwfl20NfkjU/ZNuC8=",
"owner": "ghostty-org",
"repo": "ghostty",
"rev": "6590196661f769dd8f2b3e85d6c98262c4ec5b3b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"owner": "ghostty-org",
"ref": "main",
"repo": "ghostty",
"type": "github"
}
},
"helix": {
"inputs": {
"nixpkgs": "nixpkgs_2",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1776999445,
"narHash": "sha256-vu2S5gnSTS4aDz25mr4yCrKh9sspPVlgD5KQQVHA4AM=",
"owner": "helix-editor",
"repo": "helix",
"rev": "3beb268068d23294a26b47eab43b0a13a2a3a951",
"type": "github"
},
"original": {
"owner": "helix-editor",
"ref": "master",
"repo": "helix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"ghostty",
"nixpkgs"
]
},
"locked": {
"lastModified": 1777086106,
"narHash": "sha256-hlNpIN18pw3xo34Lsrp6vAMUPn0aB/zFBqL0QXI1Pmk=",
"lastModified": 1770586272,
"narHash": "sha256-Ucci8mu8QfxwzyfER2DQDbvW9t1BnTUJhBmY7ybralo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "5826802354a74af18540aef0b01bc1320f82cc17",
"rev": "b1f916ba052341edc1f80d4b2399f1092a4873ca",
"type": "github"
},
"original": {
@ -60,6 +103,26 @@
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1777411657,
"narHash": "sha256-P7XjzOo8Cbuj5eBSO1LaQ1hOy3ir8rtUB64EFZ6kKiQ=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "af59809e9413ec8adb9597a8636491af356fe525",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_3": {
"inputs": {
"nixpkgs": [
"zen-browser",
@ -87,11 +150,11 @@
]
},
"locked": {
"lastModified": 1776829403,
"narHash": "sha256-oHVcvP2Ahhj1KUsEzp+2BQF55/r5VSa3QxdPdwE1p00=",
"lastModified": 1777181277,
"narHash": "sha256-yVJbd07ortDRAttDFmDV5p220aOLTHgVAx//0nW/xW8=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "c43246d4e9e506178b69baed075d797ec2d873e2",
"rev": "b8eb7acee0f7604fe1bf6a5b3dcf5254369180fa",
"type": "github"
},
"original": {
@ -117,11 +180,24 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1776877367,
"narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=",
"lastModified": 1770537093,
"narHash": "sha256-XV30uo8tXuxdzuV8l3sojmlPRLd/8tpMsOp4lNzLGUo=",
"rev": "fef9403a3e4d31b0a23f0bacebbec52c248fbb51",
"type": "tarball",
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre942631.fef9403a3e4d/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1775036866,
"narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "0726a0ecb6d4e08f6adced58726b95db924cef57",
"rev": "6201e203d09599479a3b3450ed24fa81537ebc4e",
"type": "github"
},
"original": {
@ -131,7 +207,23 @@
"type": "github"
}
},
"nixpkgs_2": {
"nixpkgs_3": {
"locked": {
"lastModified": 1777268161,
"narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1776683584,
"narHash": "sha256-NuTLMrr10Tng72hurYG8jYQ4XKK8wnpJmOGcPiis96g=",
@ -155,11 +247,11 @@
]
},
"locked": {
"lastModified": 1777134654,
"narHash": "sha256-rMHFp8VNmSUsP8wDCtJkGQdL9Zt3xGxKBL3H9ei9xPM=",
"lastModified": 1777415702,
"narHash": "sha256-07yiaZbPdDD8vfOFd2ZecTD73BTR3OUsuUBv6kNh+IY=",
"owner": "nix-community",
"repo": "NUR",
"rev": "9aa454f559e8d602df96d6a142c18cfdc4518851",
"rev": "23dbd0a9fb72a35e4b5b0679b0f4b947a7b25db9",
"type": "github"
},
"original": {
@ -170,14 +262,14 @@
},
"opencode": {
"inputs": {
"nixpkgs": "nixpkgs_2"
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1777130202,
"narHash": "sha256-uhZtQ3/TywnFWTU1ceJOWkDXO4p8ZZWTHHOjaQnyObk=",
"lastModified": 1777409456,
"narHash": "sha256-pHBexdcc9uDODYx7zF0VU2WOfbh0UtBHrsifedzPwgE=",
"owner": "anomalyco",
"repo": "opencode",
"rev": "62651c7114c8fe1b3ec9a2868f32abfc6278993f",
"rev": "ae8904c4ffbb369955127ec39965d4c49cb4bab4",
"type": "github"
},
"original": {
@ -189,17 +281,40 @@
},
"root": {
"inputs": {
"home-manager": "home-manager",
"ghostty": "ghostty",
"helix": "helix",
"home-manager": "home-manager_2",
"nix-index-database": "nix-index-database",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_3",
"nur": "nur",
"opencode": "opencode",
"t3code": "t3code",
"zen-browser": "zen-browser"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"helix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775358767,
"narHash": "sha256-f2eC+WIfhjevCPQILuV08i/kmKZzYZpUvkom/33VxCA=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "20fd44bc663daa53a2575e01293e24e681d62244",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"flake": false,
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -214,45 +329,98 @@
"type": "github"
}
},
"t3code": {
"zen-browser": {
"inputs": {
"flake-utils": "flake-utils",
"home-manager": "home-manager_3",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1776969145,
"narHash": "sha256-MY0lwul1fA1jI/Ka9EuaHBOA9Da1Q+PCHP7p2dYWNx0=",
"owner": "Sawrz",
"repo": "t3code-nix",
"rev": "967c9a5c10a7bae21063a127cdb4131af684e734",
"lastModified": 1777356688,
"narHash": "sha256-fOhJpz7QAkBWAAih72CmnIfIN0pHfuZjhZQ/hBLNWxo=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "b3c972b3d8537a9cf7a0db96b164c9c3e580884a",
"type": "github"
},
"original": {
"owner": "Sawrz",
"repo": "t3code-nix",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"type": "github"
}
},
"zen-browser": {
"zig": {
"inputs": {
"home-manager": "home-manager_2",
"flake-compat": [
"ghostty",
"flake-compat"
],
"nixpkgs": [
"ghostty",
"nixpkgs"
],
"systems": [
"ghostty",
"systems"
]
},
"locked": {
"lastModified": 1776789209,
"narHash": "sha256-G6B7Q4TXn7MZ1mB+f9rymjsYF5PLWoSvmbxijb/99bw=",
"owner": "mitchellh",
"repo": "zig-overlay",
"rev": "14fe971844e841297ddd2ce9783d6892b467af39",
"type": "github"
},
"original": {
"owner": "mitchellh",
"repo": "zig-overlay",
"type": "github"
}
},
"zig_2": {
"inputs": {
"nixpkgs": [
"ghostty",
"zon2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1777084302,
"narHash": "sha256-qHE5XpgtRedzND5xzaqzbSOw4amse0aA4/BaVI4ONcU=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "f6bab88f8566ddc13fb5e5500bd6c720b61d5321",
"lastModified": 1777234348,
"narHash": "sha256-fKw44a4qbUuI5eTG8k0gPbqMV5TOrjYF35PBzsYgd2U=",
"ref": "refs/heads/main",
"rev": "2c781c0609ecda600ab98f98cca417bbd981bd53",
"revCount": 1677,
"type": "git",
"url": "https://codeberg.org/jcollie/zig-overlay.git"
},
"original": {
"type": "git",
"url": "https://codeberg.org/jcollie/zig-overlay.git"
}
},
"zon2nix": {
"inputs": {
"nixpkgs": [
"ghostty",
"nixpkgs"
],
"zig": "zig_2"
},
"locked": {
"lastModified": 1777314365,
"narHash": "sha256-eLxQaD0wc96Neqkln8wHS0rNq/chPODifFkhwrwilEU=",
"owner": "jcollie",
"repo": "zon2nix",
"rev": "a5a1d412ad1ab6305511997bbc92b3a9dd6cb784",
"type": "github"
},
"original": {
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"owner": "jcollie",
"ref": "main",
"repo": "zon2nix",
"type": "github"
}
}

View file

@ -5,6 +5,8 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
ghostty.url = "github:ghostty-org/ghostty/main";
helix.url = "github:helix-editor/helix/master";
opencode = {
url = "github:anomalyco/opencode/dev";
};
@ -21,10 +23,6 @@
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
t3code = {
url = "github:Sawrz/t3code-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
@ -36,33 +34,36 @@
...
}:
let
mkHost = hostname: nixpkgs.lib.nixosSystem {
modules = [
{ nixpkgs.hostPlatform = "x86_64-linux"; }
./hosts/${hostname}
nixos-hardware.nixosModules.framework-amd-ai-300-series
home-manager.nixosModules.home-manager
inputs.nix-index-database.nixosModules.default
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
home-manager.extraSpecialArgs = {
inherit inputs hostname;
};
home-manager.users.jet = import ./home.nix;
}
{
nixpkgs.overlays = [
inputs.nur.overlays.default
inputs.t3code.overlays.default
(final: prev: {
opencode = opencode.packages.${prev.stdenv.hostPlatform.system}.opencode;
})
];
}
];
};
mkHost =
hostname:
nixpkgs.lib.nixosSystem {
modules = [
{ nixpkgs.hostPlatform = "x86_64-linux"; }
./hosts/${hostname}
nixos-hardware.nixosModules.framework-amd-ai-300-series
home-manager.nixosModules.home-manager
inputs.nix-index-database.nixosModules.default
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
home-manager.extraSpecialArgs = {
inherit inputs hostname;
};
home-manager.users.jet = import ./home.nix;
}
{
nixpkgs.overlays = [
inputs.nur.overlays.default
inputs.ghostty.overlays.default
inputs.helix.overlays.default
(final: prev: {
opencode = opencode.packages.${prev.stdenv.hostPlatform.system}.opencode;
})
];
}
];
};
in
{
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt;

View file

@ -9,7 +9,7 @@
home.sessionVariables = {
BROWSER = "zen";
TERMINAL = "kitty";
TERMINAL = "ghostty";
};
xdg.userDirs = {

View file

@ -1,18 +1,23 @@
{ pkgs, homeLib, hostname, ... }:
{
pkgs,
homeLib,
hostname,
...
}:
let
autostartEntries =
if hostname == "framework-work" then
[
"${homeLib.zenStartup}/share/applications/zen-startup.desktop"
"${homeLib.kittyZellijStartup}/share/applications/kitty-zellij-startup.desktop"
"${homeLib.ghosttyZellijStartup}/share/applications/ghostty-zellij-startup.desktop"
"${pkgs.slack}/share/applications/slack.desktop"
"${homeLib.betterbirdStartup}/share/applications/betterbird-startup.desktop"
]
else
[
"${homeLib.zenStartup}/share/applications/zen-startup.desktop"
"${homeLib.kittyZellijStartup}/share/applications/kitty-zellij-startup.desktop"
"${homeLib.ghosttyZellijStartup}/share/applications/ghostty-zellij-startup.desktop"
"${homeLib.signalStartup}/share/applications/signal-startup.desktop"
"${pkgs.slack}/share/applications/slack.desktop"
"${homeLib.betterbirdStartup}/share/applications/betterbird-startup.desktop"

View file

@ -309,11 +309,11 @@ let
terminal = false;
categories = [ "Network" ];
};
kittyZellijStartup = pkgs.makeDesktopItem {
name = "kitty-zellij-startup";
desktopName = "Kitty Zellij Startup";
comment = "Open Kitty and attach to the main Zellij session";
exec = "${pkgs.kitty}/bin/kitty --start-as=fullscreen ${zellijPersistentSession}/bin/zellij-persistent-session";
ghosttyZellijStartup = pkgs.makeDesktopItem {
name = "ghostty-zellij-startup";
desktopName = "Ghostty Zellij Startup";
comment = "Open Ghostty and attach to the main Zellij session";
exec = "${pkgs.ghostty}/bin/ghostty --fullscreen=true -e ${zellijPersistentSession}/bin/zellij-persistent-session";
terminal = false;
categories = [
"TerminalEmulator"
@ -358,8 +358,8 @@ in
betterbirdStartup
betterbird
email
ghosttyZellijStartup
greptileSkills
kittyZellijStartup
name
nasaApodWallpaper
signalStartup

View file

@ -48,7 +48,6 @@
qbittorrent-enhanced
signal-desktop
slack
t3code
tor-browser
vesktop
vlc

View file

@ -58,29 +58,29 @@
'';
};
programs.kitty = {
programs.ghostty = {
enable = true;
settings = {
hide_window_decorations = "yes";
draw_minimal_borders = "yes";
font_family = "CommitMono Nerd Font";
font_size = "12";
confirm_os_window_close = "0";
enable_audio_bell = "no";
window-decoration = false;
font-family = "CommitMono Nerd Font";
font-size = 12;
confirm-close-surface = false;
bell-features = "no-audio";
theme = "GitHub Dark High Contrast";
fullscreen = true;
};
themeFile = "GitHub_Dark_High_Contrast";
};
xdg.desktopEntries.kitty = {
name = "Kitty";
xdg.desktopEntries.ghostty = {
name = "Ghostty";
genericName = "Terminal Emulator";
exec = "${pkgs.kitty}/bin/kitty --start-as=fullscreen ${homeLib.zellijPersistentSession}/bin/zellij-persistent-session";
icon = "kitty";
exec = "${pkgs.ghostty}/bin/ghostty --fullscreen=true -e ${homeLib.zellijPersistentSession}/bin/zellij-persistent-session";
icon = "com.mitchellh.ghostty";
type = "Application";
categories = [
"System"
"TerminalEmulator"
];
comment = "Fast, featureful, GPU based terminal emulator";
comment = "Fast, native terminal emulator";
};
}