summaryrefslogtreecommitdiff
path: root/hm/shell
diff options
context:
space:
mode:
Diffstat (limited to 'hm/shell')
-rw-r--r--hm/shell/cli.nix146
-rw-r--r--hm/shell/fish.nix39
-rw-r--r--hm/shell/foot.nix20
3 files changed, 170 insertions, 35 deletions
diff --git a/hm/shell/cli.nix b/hm/shell/cli.nix
index da9c64e..a9e8397 100644
--- a/hm/shell/cli.nix
+++ b/hm/shell/cli.nix
@@ -10,33 +10,75 @@ in
{
options.hm.shell.cli.enable = lib.mkEnableOption "modern cli tools";
config = lib.mkIf cfg.enable {
+ programs.yazi = {
+ # TODO
+ enable = true;
+ shellWrapperName = "y";
+ };
+ # TODO
+ programs.fzf = {
+ enable = true;
+ enableFishIntegration = true;
+ };
programs.zoxide = {
enable = true;
+ enableFishIntegration = true;
options = [ "--cmd cd" ];
};
programs.bat = {
enable = true;
- config.theme = "gruvbox-dark";
+ config = {
+ theme = "gruvbox-dark";
+ style = "numbers";
+ pager = "less -RSFK";
+ wrap = "never";
+ tabs = "2";
+ };
+ extraPackages = [ pkgs.bat-extras.core ];
+ };
+ programs.fd = {
+ enable = true;
+ hidden = true;
+ ignores = [
+ ".git/"
+ "*.bak"
+ ];
};
+ programs.ripgrep-all.enable = true;
+ programs.btop = {
+ enable = true;
+ package = pkgs.btop.override { rocmSupport = true; };
+ settings = {
+ presets = "cpu:1:default,proc:0:default cpu:0:default,gpu0:0:default,mem:0:default";
+ vim_keys = true;
+ update_ms = 1000;
+ proc_gradient = false;
+ proc_filter_kernel = true;
+ show_uptime = false;
+ freq_mode = "average";
+ mem_graphs = false;
+ show_disks = false;
- programs.fzf.enable = true;
- programs.fd.enable = true;
- programs.ripgrep.enable = true;
- programs.yazi.enable = true;
- programs.btop.enable = true;
+ proc_gpu_summary = true;
+ };
+ };
programs.fastfetch = {
enable = true;
settings = {
display = {
- size = {
- binaryPrefix = "iec";
- };
separator = "  ";
+ color = {
+ keys = "blue";
+ title = "cyan";
+ };
};
multithreading = true;
modules = [
"title"
- "separator"
+ {
+ type = "separator";
+ string = "━";
+ }
"os"
{
type = "command";
@@ -61,10 +103,23 @@ in
];
};
};
- # programs.direnv = {
- # enable = true;
- # nix-direnv.enable = true;
- # };
+ programs.direnv = {
+ enable = true;
+ enableFishIntegration = true;
+ nix-direnv.enable = true;
+ config = {
+ global = {
+ load_dotenv = true;
+ strict_env = true;
+ hide_env_diff = true;
+ };
+ whitelist = {
+ prefix = [
+ "~/proj"
+ ];
+ };
+ };
+ };
programs.nix-your-shell = {
enable = true;
enableFishIntegration = true;
@@ -72,18 +127,65 @@ in
};
programs.bottom = {
enable = true;
+ settings = {
+ flags = {
+ basic = true;
+
+ current_usage = true;
+ unnormalized_cpu = false;
+ hide_k_threads = true;
+
+ process_memory_as_value = true;
+ enable_cache_memory = true;
+ network_use_bytes = true;
+ network_use_binary_prefix = true;
+
+ battery = true;
+ show_table_scroll_position = true;
+ hide_table_gap = true;
+
+ theme = "gruvbox";
+ };
+ processes.columns = [
+ "PID"
+ "Name"
+ "CPU%"
+ "Mem%"
+ "GPU%"
+ "GMem%"
+ "User"
+ ];
+ disk.columns = [
+ "Disk"
+ "Mount"
+ "Free"
+ "Total"
+ "R/s"
+ "W/s"
+ ];
+ };
};
programs.tealdeer = {
enable = true;
- enableAutoUpdates = true;
+ settings = {
+ updates.auto_update = true;
+ style = {
+ description.foreground = "white";
+ example_text.foreground = "cyan";
+ command_name.foreground = "yellow";
+ example_variable.foreground = "green";
+ example_code.foreground = "blue";
+ };
+ };
+ };
+ programs.pls = {
+ enable = true;
+ enableFishIntegration = true;
+ };
+ programs.nix-index = {
+ enable = true;
+ enableFishIntegration = true;
};
- # programs.lazygit = {
- # enable = true;
- # enableFishIntegration = true;
- # };
- programs.riff.enable = true;
- programs.pls.enable = true;
- programs.nix-index.enable = true;
home.packages = with pkgs; [
sd
diff --git a/hm/shell/fish.nix b/hm/shell/fish.nix
index d7f7248..20b9a95 100644
--- a/hm/shell/fish.nix
+++ b/hm/shell/fish.nix
@@ -13,14 +13,33 @@ in
programs.fish = {
enable = true;
+ functions = {
+ rga-fzf = {
+ body = ''
+ set -l RG_PREFIX "rga --files-with-matches --smart-case"
+ set -l file (
+ FZF_DEFAULT_COMMAND="$RG_PREFIX '$argv[1]'" \
+ fzf --sort \
+ --preview='test -n {}; and rga --pretty --context 5 {q} {}' \
+ --phony -q "$argv[1]" \
+ --bind "change:reload:$RG_PREFIX {q}" \
+ --preview-window="70%:wrap"
+ )
+
+ if test -n "$file"
+ echo "Opening $file..."
+ xdg-open "$file"
+ end
+ '';
+ };
+ };
+
interactiveShellInit = ''
set fish_greeting
fastfetch
'';
shellAliases = {
- update = "git add . && git commit -m \"$1\" && nix flake update && nh os switch .";
-
ns = "nix-search -p";
nd = "nix develop .";
nos = "nh os switch .";
@@ -60,10 +79,10 @@ in
name = "pisces";
src = pkgs.fishPlugins.pisces.src;
}
- {
- name = "fzf-fish";
- src = pkgs.fishPlugins.fzf-fish.src;
- }
+ # {
+ # name = "fzf-fish";
+ # src = pkgs.fishPlugins.fzf-fish.src;
+ # }
{
name = "fish-you-should-use";
src = pkgs.fishPlugins.fish-you-should-use.src;
@@ -72,10 +91,10 @@ in
name = "colored-man-pages";
src = pkgs.fishPlugins.colored-man-pages.src;
}
- {
- name = "fifc";
- src = pkgs.fishPlugins.fifc.src;
- }
+ # {
+ # name = "fifc";
+ # src = pkgs.fishPlugins.fifc.src;
+ # }
];
};
};
diff --git a/hm/shell/foot.nix b/hm/shell/foot.nix
index 3143d12..91dbfa0 100644
--- a/hm/shell/foot.nix
+++ b/hm/shell/foot.nix
@@ -9,7 +9,7 @@ let
cfg = config.hm.shell.foot;
footTheme = pkgs.runCommand "gruvbox-dark" { } ''
- sed 's/\[colors-dark\]/\[colors\]/g' ${
+ sed -e 's/\[colors-dark\]/\[colors\]/g' ${
pkgs.fetchurl {
url = "https://codeberg.org/dnkl/foot/raw/branch/master/themes/gruvbox-dark";
sha256 = "sha256-hlmLklG/vAEDy8I+k13+o4ZR6Cq6lTxOconjf9M75eo=";
@@ -22,7 +22,7 @@ in
enable = lib.mkEnableOption "foot terminal emulator";
fontSize = lib.mkOption {
type = lib.types.int;
- default = 14;
+ default = 13;
description = "Font size for the foot terminal";
};
};
@@ -34,12 +34,26 @@ in
settings = {
main = {
font = "JetBrainsMonoNFM-Regular:size=${toString cfg.fontSize}";
- box-drawings-uses-font-glyphs = true;
include = "${footTheme}";
+ word-delimiters = ",│`|:\"'()[]{}<>./";
+ selection-target = "both";
+ dpi-aware = "yes";
};
+
+ search-bindings = {
+ find-prev = "Control+p";
+ find-next = "Control+n";
+ commit = "Return";
+ };
+
scrollback = {
lines = 10000;
+ multiplier = 3.0;
+ indicator-position = "none";
};
+
+ security.osc52 = "enabled";
+ url.osc8-underline = "always";
};
};
};