2024-10-22 18:53:09 +05:30
|
|
|
{
|
|
|
|
inputs,
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}:
|
2022-09-27 13:08:52 +05:30
|
|
|
|
2022-10-15 22:10:18 +05:30
|
|
|
let
|
2024-10-18 17:41:54 +05:30
|
|
|
leanHaskellBinary = pkgs.haskell.lib.compose.overrideCabal (old: {
|
|
|
|
isLibrary = false;
|
|
|
|
doHaddock = false;
|
|
|
|
enableLibraryProfiling = false;
|
|
|
|
enableSharedLibraries = false;
|
|
|
|
enableSeparateBinOutput = true;
|
|
|
|
});
|
2024-10-22 18:53:09 +05:30
|
|
|
opaComplete = name: pkgs.haskellPackages.generateOptparseApplicativeCompletions [ name ];
|
2022-10-15 22:10:18 +05:30
|
|
|
nixPackages = with pkgs; [
|
|
|
|
config.nix.package
|
|
|
|
niv
|
|
|
|
nix
|
2023-11-20 13:03:25 +05:30
|
|
|
nix-tree
|
2024-10-18 17:41:54 +05:30
|
|
|
nixfmt-rfc-style
|
2024-02-06 22:04:23 +05:30
|
|
|
nvd
|
2024-08-30 12:18:11 +05:30
|
|
|
nixd
|
2022-10-15 22:10:18 +05:30
|
|
|
statix
|
2023-10-06 19:05:40 +05:30
|
|
|
cachix
|
2024-08-25 15:27:46 +05:30
|
|
|
nix-output-monitor
|
2022-10-15 22:10:18 +05:30
|
|
|
];
|
2024-11-16 21:01:56 +05:30
|
|
|
networkingPackages = with pkgs; [
|
|
|
|
curl
|
|
|
|
dig
|
|
|
|
httpie
|
|
|
|
openssh
|
|
|
|
mosh
|
|
|
|
];
|
2024-10-22 18:53:09 +05:30
|
|
|
cmdLineUtilPackages = with pkgs; [
|
|
|
|
bash
|
|
|
|
broot
|
|
|
|
coreutils-full
|
|
|
|
fd
|
2024-11-20 12:38:53 +05:30
|
|
|
glow
|
2024-10-22 18:53:09 +05:30
|
|
|
gnugrep
|
|
|
|
less
|
|
|
|
ranger
|
|
|
|
tree
|
|
|
|
unixtools.watch
|
|
|
|
];
|
2022-10-15 22:10:18 +05:30
|
|
|
miscPackages = with pkgs; [
|
2024-10-08 17:27:54 +05:30
|
|
|
as-tree
|
2023-11-20 19:38:27 +05:30
|
|
|
binutils
|
2024-09-07 10:34:54 +05:30
|
|
|
brotli
|
2023-04-27 19:32:40 +05:30
|
|
|
cabal2nix
|
2024-10-18 17:41:54 +05:30
|
|
|
(opaComplete "cabal-plan" (leanHaskellBinary haskellPackages.cabal-plan))
|
2024-11-20 12:38:53 +05:30
|
|
|
(leanHaskellBinary (
|
|
|
|
import ../packages/pandoc-cli-3.5.nix {
|
|
|
|
system = pkgs.system;
|
|
|
|
nixpkgs = inputs.nixpkgs;
|
|
|
|
}
|
|
|
|
))
|
2022-09-27 13:08:52 +05:30
|
|
|
cloc
|
2022-09-27 17:58:53 +05:30
|
|
|
comma
|
2024-03-08 20:42:06 +05:30
|
|
|
difftastic
|
2022-09-27 13:08:52 +05:30
|
|
|
dua
|
|
|
|
entr
|
2024-01-31 23:03:01 +05:30
|
|
|
hyperfine
|
2024-09-07 10:34:54 +05:30
|
|
|
git-absorb
|
2022-09-27 13:08:52 +05:30
|
|
|
graphviz-nox
|
2022-12-10 15:38:45 +05:30
|
|
|
iterm2
|
2024-11-01 20:12:20 +05:30
|
|
|
jless
|
2022-12-07 11:32:44 +05:30
|
|
|
just
|
2022-09-27 13:08:52 +05:30
|
|
|
micro
|
2024-05-02 19:05:26 +05:30
|
|
|
fastfetch
|
2022-10-05 23:16:17 +05:30
|
|
|
proselint
|
2022-09-27 17:58:53 +05:30
|
|
|
shellcheck
|
2022-11-27 23:25:08 +05:30
|
|
|
typos
|
2024-12-30 12:20:36 +05:30
|
|
|
typos-lsp
|
2024-11-01 20:12:20 +05:30
|
|
|
xmlformat
|
2022-10-15 22:10:18 +05:30
|
|
|
];
|
|
|
|
fonts = with pkgs; [
|
2022-09-27 13:08:52 +05:30
|
|
|
fira-mono
|
|
|
|
inconsolata
|
|
|
|
jetbrains-mono
|
|
|
|
nanum-gothic-coding
|
|
|
|
roboto-mono
|
|
|
|
source-code-pro
|
2022-10-14 14:51:28 +05:30
|
|
|
(pkgs.callPackage ../packages/dm-mono.nix { dm-mono-src = "${inputs.dm-mono-font}"; })
|
2024-11-30 10:42:37 +05:30
|
|
|
monaspace
|
|
|
|
nerd-fonts.iosevka
|
2024-10-22 18:53:09 +05:30
|
|
|
];
|
|
|
|
in
|
|
|
|
{
|
|
|
|
imports = [
|
|
|
|
./fish.nix
|
|
|
|
./git.nix
|
|
|
|
./starship.nix
|
|
|
|
./vscode.nix
|
2024-11-26 20:33:25 +05:30
|
|
|
./zed.nix
|
2022-09-27 13:08:52 +05:30
|
|
|
];
|
2022-10-15 22:10:18 +05:30
|
|
|
|
|
|
|
home.packages = nixPackages ++ networkingPackages ++ cmdLineUtilPackages ++ miscPackages ++ fonts;
|
2022-09-27 13:08:52 +05:30
|
|
|
|
2023-11-24 16:35:04 +05:30
|
|
|
programs = {
|
2025-01-07 09:34:37 +05:30
|
|
|
tmux = {
|
|
|
|
enable = true;
|
|
|
|
clock24 = true;
|
|
|
|
historyLimit = 100000000;
|
|
|
|
mouse = true;
|
|
|
|
shell = "/etc/profiles/per-user/abhinav/bin/fish";
|
|
|
|
terminal = "tmux-256color";
|
|
|
|
plugins = with pkgs; [tmuxPlugins.better-mouse-mode];
|
|
|
|
extraConfig = ''
|
|
|
|
set -g status off
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2023-11-24 16:35:04 +05:30
|
|
|
htop = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
hide_kernel_threads = true;
|
|
|
|
hide_threads = true;
|
|
|
|
hide_userland_threads = true;
|
|
|
|
highlight_base_name = true;
|
|
|
|
show_program_path = false;
|
|
|
|
sort_direction = false;
|
|
|
|
sort_key = "PERCENT_CPU";
|
|
|
|
tree_view = true;
|
|
|
|
};
|
2022-09-27 13:08:52 +05:30
|
|
|
};
|
|
|
|
|
2024-09-07 12:38:30 +05:30
|
|
|
eza = {
|
|
|
|
enable = true;
|
|
|
|
git = true;
|
|
|
|
};
|
2022-09-27 13:08:52 +05:30
|
|
|
|
2023-11-24 16:35:04 +05:30
|
|
|
direnv = {
|
|
|
|
enable = true;
|
2024-10-22 18:53:09 +05:30
|
|
|
nix-direnv = {
|
|
|
|
enable = true;
|
|
|
|
};
|
2023-11-24 16:35:04 +05:30
|
|
|
};
|
2022-09-27 13:08:52 +05:30
|
|
|
|
2023-11-24 16:35:04 +05:30
|
|
|
nix-index = {
|
|
|
|
enable = true;
|
|
|
|
enableFishIntegration = true;
|
|
|
|
};
|
2022-09-27 13:08:52 +05:30
|
|
|
|
2023-11-24 16:35:04 +05:30
|
|
|
bat = {
|
|
|
|
enable = true;
|
|
|
|
config = {
|
|
|
|
italic-text = "always";
|
|
|
|
paging = "always";
|
|
|
|
tabs = "2";
|
|
|
|
theme = "DarkNeon";
|
|
|
|
};
|
2022-09-27 13:08:52 +05:30
|
|
|
};
|
|
|
|
|
2023-11-24 16:35:04 +05:30
|
|
|
fzf = {
|
|
|
|
enable = true;
|
|
|
|
enableFishIntegration = true;
|
|
|
|
fileWidgetCommand = "fd --type f --no-ignore";
|
2024-10-22 18:53:09 +05:30
|
|
|
historyWidgetOptions = [
|
|
|
|
"--reverse"
|
|
|
|
"--sort"
|
|
|
|
"--exact"
|
|
|
|
];
|
2023-11-24 16:35:04 +05:30
|
|
|
};
|
2022-09-27 13:08:52 +05:30
|
|
|
|
2023-11-24 16:35:04 +05:30
|
|
|
micro = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
autoindent = true;
|
|
|
|
colorcolumn = 100;
|
|
|
|
colorscheme = "gruvbox";
|
|
|
|
diffgutter = true;
|
|
|
|
hlsearch = true;
|
|
|
|
mkparents = true;
|
|
|
|
savecursor = true;
|
|
|
|
softwrap = true;
|
|
|
|
tabsize = 2;
|
|
|
|
tabstospaces = true;
|
|
|
|
# plugins
|
|
|
|
manipulator = true;
|
|
|
|
};
|
2022-09-27 13:08:52 +05:30
|
|
|
};
|
2023-06-11 10:43:58 +05:30
|
|
|
|
2023-11-24 16:35:04 +05:30
|
|
|
zoxide.enable = true;
|
2025-01-02 13:00:19 +05:30
|
|
|
|
|
|
|
ghostty = {
|
|
|
|
enable = true;
|
|
|
|
enableFishIntegration = true;
|
|
|
|
enableBashIntegration = true;
|
|
|
|
installBatSyntax = false;
|
|
|
|
settings = {
|
|
|
|
background-opacity = 0.95;
|
2025-01-07 09:34:37 +05:30
|
|
|
command = "/etc/profiles/per-user/abhinav/bin/tmux new";
|
2025-01-02 13:00:19 +05:30
|
|
|
copy-on-select = true;
|
|
|
|
font-family = "PragmataPro Mono";
|
|
|
|
font-size = 14;
|
|
|
|
macos-titlebar-style = "hidden";
|
2025-01-07 09:34:37 +05:30
|
|
|
minimum-contrast = 1.05;
|
|
|
|
mouse-hide-while-typing = true;
|
2025-01-02 13:00:19 +05:30
|
|
|
quick-terminal-position = "right";
|
|
|
|
quit-after-last-window-closed = false;
|
|
|
|
scrollback-limit = 100000000;
|
|
|
|
shell-integration = "detect";
|
|
|
|
theme = "ayu";
|
|
|
|
keybind = [
|
|
|
|
"global:cmd+shift+a=toggle_quick_terminal"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
2023-11-24 16:35:04 +05:30
|
|
|
};
|
2022-09-27 13:08:52 +05:30
|
|
|
}
|