7 Commits

Author SHA1 Message Date
Noah Masur
a6e15b71cd update packages and fix helix language 2025-11-21 10:32:55 -07:00
Noah Masur
2e4467b6ea try to make builds work 2025-11-21 10:32:55 -07:00
Noah Masur
431ebd732c use alacritty for i3 terminal on macos 2025-11-21 10:32:55 -07:00
Noah Masur
2d576bd25d improve helix language server selection 2025-11-21 10:32:55 -07:00
Noah Masur
a1615eda67 try improvements to helix git blame and bring yazi to zellij 2025-11-21 10:32:55 -07:00
Noah Masur
444582a5a5 try adding jiratui to homebrew 2025-11-21 10:32:55 -07:00
Noah Masur
fbabdadb32 add bash to aws-ec2 launch script 2025-11-21 10:32:55 -07:00
11 changed files with 140 additions and 81 deletions

80
flake.lock generated
View File

@@ -22,11 +22,11 @@
]
},
"locked": {
"lastModified": 1763136804,
"narHash": "sha256-6p2ljK42s0S8zS0UU59EsEqupz0GVCaBYRylpUadeBM=",
"lastModified": 1763505477,
"narHash": "sha256-nJRd4LY2kT3OELfHqdgWjvToNZ4w+zKCMzS2R6z4sXE=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "973db96394513fd90270ea5a1211a82a4a0ba47f",
"rev": "3bda9f6b14161becbd07b3c56411f1670e19b9b5",
"type": "github"
},
"original": {
@@ -43,11 +43,11 @@
]
},
"locked": {
"lastModified": 1762276996,
"narHash": "sha256-TtcPgPmp2f0FAnc+DMEw4ardEgv1SGNR3/WFGH0N19M=",
"lastModified": 1763651264,
"narHash": "sha256-8vvwZbw0s7YvBMJeyPVpWke6lg6ROgtts5N2/SMCcv4=",
"owner": "nix-community",
"repo": "disko",
"rev": "af087d076d3860760b3323f6b583f4d828c1ac17",
"rev": "e86a89079587497174ccab6d0d142a65811a4fd9",
"type": "github"
},
"original": {
@@ -148,29 +148,6 @@
"type": "github"
}
},
"helix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": [
"rust-overlay"
]
},
"locked": {
"lastModified": 1762973522,
"narHash": "sha256-CFyvvZvKDkTFF7niIQp5hhks5OR1u10H3e89chURCkg=",
"owner": "helix-editor",
"repo": "helix",
"rev": "948ac05aa0db64e0e5d00710db36eb244076e988",
"type": "github"
},
"original": {
"owner": "helix-editor",
"repo": "helix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -178,11 +155,11 @@
]
},
"locked": {
"lastModified": 1762964643,
"narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=",
"lastModified": 1763416652,
"narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "827f2a23373a774a8805f84ca5344654c31f354b",
"rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312",
"type": "github"
},
"original": {
@@ -292,27 +269,27 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1735563628,
"narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=",
"lastModified": 1763622513,
"narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798",
"rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.05",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1762977756,
"narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
"lastModified": 1763421233,
"narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
"rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648",
"type": "github"
},
"original": {
@@ -346,11 +323,11 @@
]
},
"locked": {
"lastModified": 1763178083,
"narHash": "sha256-J2anD4lJGnsnbZeSVRjY8b9UdQueQnbrjEuHoUtwb40=",
"lastModified": 1763739770,
"narHash": "sha256-h2SZiOwmR/IG5om+/5v1mu/4w9dTGqA/naTm4bUFn/Y=",
"owner": "nix-community",
"repo": "nur",
"rev": "cb44dde82a279a626f8b3283fdcf52849d3ab3d4",
"rev": "9cfdb9c199ebf780c36a9998d27547563c7b2aaf",
"type": "github"
},
"original": {
@@ -363,7 +340,6 @@
"inputs": {
"darwin": "darwin",
"disko": "disko",
"helix": "helix",
"home-manager": "home-manager",
"mac-app-util": "mac-app-util",
"nix2vim": "nix2vim",
@@ -382,11 +358,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1763174172,
"narHash": "sha256-u6dcvXk2K6eYVYhmfiN3xmhIf3yUo5KPwm79UOD37Jo=",
"lastModified": 1763692705,
"narHash": "sha256-tCKCyMYU0Vy+ph/xswlNsYXXjnFVweWBV+ew/5FS9tA=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "89af6762b01409edbb595888a69311e8e5954110",
"rev": "6fbf5d328dce1828d887b8ee7d44a785196a34e7",
"type": "github"
},
"original": {
@@ -466,11 +442,11 @@
]
},
"locked": {
"lastModified": 1762908663,
"narHash": "sha256-HqdYfzBaidYX+EYAcXDFCggXJPZBv2fusMwhc7/4+cI=",
"lastModified": 1763738061,
"narHash": "sha256-VpNRcInaj1MOya8NmcqhFmdO7KGO7SSZelJQmPl6HoQ=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "debc562c48c445f9f08778ecb9fc6b35197623ad",
"rev": "3bcc267c4e0efa023b98b9c5cfbe11b88ec2dc8f",
"type": "github"
},
"original": {
@@ -506,11 +482,11 @@
"zenyd-mpv-scripts": {
"flake": false,
"locked": {
"lastModified": 1707704915,
"narHash": "sha256-9P/8q/OZXfaJMS08acQP4h3/zUA5mKRQee0JmkXcz1w=",
"lastModified": 1763726510,
"narHash": "sha256-lyzcUgo46eGqI563RfmkXZGoQ5fERCpn2zc+VE/mDgY=",
"owner": "zenyd",
"repo": "mpv-scripts",
"rev": "9bdce0050144cb24f92475f7bdd77180e0e4c26b",
"rev": "a1470f01cae24f06365fbe05e5295d906d7438fe",
"type": "github"
},
"original": {

View File

@@ -8,7 +8,7 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# Used for specific stable packages
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
# Used for MacOS system config
darwin = {
@@ -75,12 +75,12 @@
inputs.rust-overlay.follows = "rust-overlay";
};
# Text editor
helix = {
url = "github:helix-editor/helix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.rust-overlay.follows = "rust-overlay";
};
# # Text editor
# helix = {
# url = "github:helix-editor/helix";
# inputs.nixpkgs.follows = "nixpkgs";
# inputs.rust-overlay.follows = "rust-overlay";
# };
# # Nextcloud Apps
# nextcloud-news = {

View File

@@ -67,7 +67,7 @@ lib
inputs.nur.overlays.default
inputs.nix2vim.overlay
inputs.zellij-switch.overlays.default
inputs.helix.overlays.default
# inputs.helix.overlays.default
]
++ (importOverlays ../overlays);

View File

@@ -38,6 +38,7 @@
};
brews = [
"trash" # Delete files and folders to trash instead of rm
"jiratui" # Terminal program to manage Jira
];
casks = [
"1password" # 1Password will not launch from Nix on macOS

View File

@@ -2,6 +2,12 @@ inputs: _final: prev: {
awscli2 = prev.awscli2.overrideAttrs (
finalAttrs: previousAttrs: {
src = prev.fetchFromGitHub {
owner = "aws";
repo = "aws-cli";
rev = "2.31.27";
hash = "sha256-NnAEdbIZVri9Bi0KBlcZIVox+LbuD0/hBdtYB/UFHeo=";
};
disabledTestPaths = previousAttrs.disabledTestPaths ++ [
"tests/unit/customizations"
];

View File

@@ -6,17 +6,17 @@
# Specify AWS_PROFILE and AWS_REGION before running this script
aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" |
jq -r \
'.Reservations[]
--filters "Name=instance-state-name,Values=running" |
jq -r \
'.Reservations[]
| .Instances[]
| .InstanceId + " - " +
(.PrivateIpAddress // "n/a") + " - " +
(.PublicIpAddress // "n/a") + " - " +
(.Tags // [] | from_entries | .Name // "n/a")' |
fzf \
--height 100% \
--layout reverse \
--header $'Press Enter to start SSM session\nInstance ID - Private IP - Public IP - Name' \
--preview "aws ec2 describe-instances --instance-ids \"\$(echo {} | cut -d' ' -f1)\" | jq -r '.Reservations[].Instances[0]'" \
--bind "enter:become(aws ssm start-session --target \$(echo {} | cut -d' ' -f1))"
fzf \
--height 100% \
--layout reverse \
--header $'Press Enter to start SSM session\nInstance ID - Private IP - Public IP - Name' \
--preview "aws ec2 describe-instances --instance-ids \"\$(echo {} | cut -d' ' -f1)\" | jq -r '.Reservations[].Instances[0]'" \
--bind "enter:become(aws ssm start-session --document-name 'AWS-StartInteractiveCommand' --parameters '{\"command\": [\"bash\"]}' --target \$(echo {} | cut -d' ' -f1))"

View File

@@ -16,7 +16,8 @@ in
config = lib.mkIf cfg.enable {
# Set the i3 terminal
nmasur.presets.services.i3.terminal = config.programs.ghostty.package;
nmasur.presets.services.i3.terminal =
if pkgs.stdenv.isDarwin then pkgs.alacritty else config.programs.ghostty.package;
programs.ghostty = {
enable = true;

View File

@@ -7,6 +7,62 @@
let
cfg = config.nmasur.presets.programs.helix;
blame_file_pretty = pkgs.writeShellScriptBin "blame_file_pretty" ''
# Source: https://gist.github.com/gloaysa/828707f067e3bb20da18d72fa5d4963a
# Utility for Helix: open the patch for the commit that last touched the current line.
# If the line isnt committed yet, it shows the working-tree diff for THIS file only.
# The script writes the diff to /tmp and prints the absolute path to stdout
# Adjust `context` to see more/fewer unchanged lines around the change (default: 3).
#
# usage: git-file_pretty.sh <file> <line> [context_lines]
# Helix mapping example:
# B = ':open %sh{ ~/.config/helix/utils/git-blame-commit.sh "%{buffer_name}" %{cursor_line} 3 }'
file="$1"
line="$2"
ctx="''${3:-3}"
# blame the exact line
porc="$(git blame -L "$line",+1 --porcelain -- "$file")" || exit 1
sha="$(printf '%s\n' "$porc" | awk 'NR==1{print $1}')"
commit_path="$(printf '%s\n' "$porc" | awk '/^filename /{print substr($0,10); exit}')"
out="/tmp/hx-blame_$(basename "$file")_''${sha:-wt}.diff"
if [ -z "$sha" ] || [ "$sha" = 0000000000000000000000000000000000000000 ] || [ "$sha" = "^" ]; then
# uncommitted line working tree diff for this file
git --no-pager diff --no-color -U"$ctx" -- "$file" > "$out"
else
# committed line only this files patch in that commit
git --no-pager show --no-color -M -C -U"$ctx" "$sha" -- "''${commit_path:-$file}" > "$out"
fi
# "return" the path for :open %sh{}
printf '%s' "$out"
'';
blame_line_pretty = pkgs.writeShellScriptBin "blame_line_pretty" ''
# Source: https://gist.github.com/gloaysa/828707f067e3bb20da18d72fa5d4963a
# Utility for Helix: pretty-print blame info for the line under the cursor.
# Quite basic.
#
# usage: blame_line_pretty <file> <line>
# Helix mapping example:
# b = ":run-shell-command ~/.config/helix/utils/blame_line_pretty.sh %{buffer_name} %{cursor_line}"
file="$1"; line="$2"
out="$(git blame -L "$line",+1 --porcelain -- "$file")" || return 1
sha="$(printf '%s\n' "$out" | awk 'NR==1{print $1}')"
author="$(printf '%s\n' "$out" | awk -F'author ' '/^author /{print $2; exit}')"
epoch="$(printf '%s\n' "$out" | awk '/^author-time /{print $2; exit}')"
# dd-mm-yyyy (macOS `date -r`; fallback to gdate if present)
date="$( (date -r "$epoch" +%d-%m-%Y\ %H:%M 2>/dev/null) || (gdate -d "@$epoch" +%d-%m-%Y\ %H:%M 2>/dev/null) || printf '%s' "$epoch")"
summary="$(printf '%s\n' "$out" | awk -F'summary ' '/^summary /{print $2; exit}')"
change="$(printf '%s\n' "$out" | tail -n 1)"
printf "%s\n%s\n%s\n%s\n%s\n" "$sha" "$author" "$date" "$summary" "$change"
'';
in
{
@@ -62,6 +118,11 @@ in
command = lib.getExe pkgs.marksman;
};
language-server.rumdl = {
command = lib.getExe pkgs.rumdl;
args = [ "server" ];
};
language-server.terraform-ls = {
command = "${lib.getExe pkgs.terraform-ls}";
args = [ "serve" ];
@@ -87,10 +148,16 @@ in
{
name = "markdown";
auto-format = false;
language-servers = [ "marksman" ];
language-servers = [
"marksman"
"rumdl"
];
formatter = {
command = lib.getExe pkgs.mdformat;
args = [ "-" ];
command = lib.getExe pkgs.rumdl;
args = [
"fmt"
"-"
];
};
# Allows return key to continue the token on the next line
comment-tokens = [
@@ -102,9 +169,14 @@ in
];
}
{
name = "tfvars";
name = "terraform";
scope = "source.tf";
auto-format = true;
language-servers = [ "terraform-ls" ];
file-types = [
"tf"
"tfvars"
];
formatter = {
command = lib.getExe pkgs.terraform;
args = [
@@ -116,9 +188,9 @@ in
{
name = "hcl";
auto-format = true;
language-servers = [ "terraform-ls" ];
file-types = [ "hcl" ];
formatter = {
command = lib.getExe pkgs.terraform;
command = "${pkgs.packer}/bin/packer";
args = [
"fmt"
"-"
@@ -179,7 +251,9 @@ in
];
# Commandline git blame
space.B = ":echo %sh{git log -n1 --date=short --pretty=format:'%%h %%ad %%s' $(git blame -L %{cursor_line},+1 \"%{buffer_name}\" | cut -d' ' -f1)}";
# space.B = ":echo %sh{git log -n1 --date=short --pretty=format:'%%h %%ad %%s' $(git blame -L %{cursor_line},+1 \"%{buffer_name}\" | cut -d' ' -f1)}";
space.B = '':open %sh{ ${blame_line_pretty}/bin/blame_line_pretty "%{buffer_name}" %{cursor_line} 3 }'';
space.i = '':open %sh{ ${blame_file_pretty}/bin/blame_file_pretty "%{buffer_name}" %{cursor_line} 3 }'';
# Extend selection above
X = "select_line_above";
@@ -247,7 +321,7 @@ in
completion-replace = true; # Replace whole word with completion
trim-trailing-whitespace = true;
rainbow-brackets = true; # Make it easier to match parentheses
# rainbow-brackets = true; # Make it easier to match parentheses
# Show whitespace visible to the user
# Waiting for trailing whitespace option ideally

View File

@@ -29,6 +29,7 @@ in
pkgs.pop # Send emails from a TUI
pkgs.crush # AI LLM Agent
pkgs.gemini-cli # AI LLM Agent
];

View File

@@ -34,7 +34,7 @@ in
pkgs.pandoc # Convert text documents
pkgs.qrencode # Generate qr codes
pkgs.spacer # Output lines in terminal
pkgs.tealdeer # Cheatsheets
pkgs.stable.tealdeer # Cheatsheets
pkgs.tree # Print tree in terminal
pkgs.vimv-rs # Batch rename files
pkgs.yazi # TUI file explorer
@@ -66,7 +66,7 @@ in
helix.enable = lib.mkDefault true;
jujutsu.enable = lib.mkDefault true;
lazygit.enable = lib.mkDefault true;
neovim.enable = lib.mkDefault true;
# neovim.enable = lib.mkDefault true;
nix-index.enable = lib.mkDefault true;
nixpkgs.enable = lib.mkDefault true;
notes.enable = lib.mkDefault true;

View File

@@ -21,7 +21,7 @@ in
];
home.packages = [
pkgs.visidata # CSV inspector
pkgs.stable.visidata # CSV inspector
pkgs.dos2unix # Convert Windows text files
pkgs.inetutils # Includes telnet
pkgs.gnupg # Encryption