feat: restructure and move apps into their own configs (#2)
This commit is contained in:
440
common/home.nix
440
common/home.nix
@@ -1,440 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: let
|
||||
hotedit = pkgs.writeShellApplication {
|
||||
name = "hotedit";
|
||||
# description = "Edit files from nix store by replacing them with a local copy";
|
||||
text = ''
|
||||
if [ "$#" -eq 0 ]; then
|
||||
echo "No arguments provided."
|
||||
exit 1
|
||||
elif [ "$#" -gt 1 ]; then
|
||||
echo "More than 1 argument provided."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if [ -L "$1" ]; then
|
||||
echo "The file is a symbolic link."
|
||||
mv "$1" "$1.bak"
|
||||
cp "$1.bak" "$1"
|
||||
chmod +rw "$1"
|
||||
else
|
||||
echo "The file is not a symbolic link."
|
||||
exit 1
|
||||
fi
|
||||
exec $EDITOR "$1"
|
||||
'';
|
||||
};
|
||||
in {
|
||||
imports =
|
||||
[
|
||||
inputs.nix-index-database.hmModules.nix-index
|
||||
# ./wezterm.nix
|
||||
# ./goread.nix
|
||||
# ./zellij.nix
|
||||
../modules
|
||||
./auth.nix
|
||||
./gui.nix
|
||||
./kitty.nix
|
||||
./ncmpcpp.nix
|
||||
./sops.nix
|
||||
./tmux.nix
|
||||
# ../neovim
|
||||
]
|
||||
++ lib.optionals device.isLinux [../linux]
|
||||
# ++ lib.optionals.device.isMac [../macos]
|
||||
# ++ lib.optionals device.isServer [../server];
|
||||
;
|
||||
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
(nixvim.makeNixvim (import ../neovim))
|
||||
_1password-cli
|
||||
alejandra
|
||||
ast-grep
|
||||
bottom
|
||||
btop
|
||||
cachix
|
||||
deploy-rs
|
||||
dust
|
||||
fd
|
||||
file
|
||||
fzf
|
||||
gnupg
|
||||
gpg-tui
|
||||
hotedit
|
||||
jq
|
||||
just
|
||||
macchina
|
||||
p7zip
|
||||
pandoc
|
||||
pfetch-rs
|
||||
pkg-config
|
||||
ripgrep
|
||||
sd
|
||||
tldr
|
||||
vcpkg-tool
|
||||
yt-dlp
|
||||
]
|
||||
++ lib.optionals (!device.isServer) [
|
||||
clang
|
||||
cmake
|
||||
d2
|
||||
devenv
|
||||
go
|
||||
hasklig
|
||||
jujutsu
|
||||
monaspace
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.hasklug
|
||||
nerd-fonts.symbols-only
|
||||
qmk
|
||||
ttyper
|
||||
yarn
|
||||
zed-editor
|
||||
]
|
||||
++ lib.optionals device.isLinux [
|
||||
dig
|
||||
gptfdisk
|
||||
handlr-regex
|
||||
handlr-xdg
|
||||
lsof
|
||||
ncpamixer
|
||||
rr
|
||||
sbctl
|
||||
usbutils
|
||||
ddcbacklight
|
||||
]
|
||||
++ lib.optionals device.isMac [];
|
||||
|
||||
xdg.enable = true;
|
||||
xdg.userDirs = {
|
||||
enable = device.isLinux;
|
||||
music = "${config.home.homeDirectory}/Nextcloud/Music";
|
||||
};
|
||||
|
||||
programs = {
|
||||
ssh = {
|
||||
enable = true;
|
||||
matchBlocks = {
|
||||
github = {
|
||||
user = "git";
|
||||
host = "github.com";
|
||||
};
|
||||
deoxys = {
|
||||
user = "servius";
|
||||
hostname = "deoxys";
|
||||
forwardAgent = true;
|
||||
};
|
||||
mirai = {
|
||||
user = "fs0c131y";
|
||||
hostname = "sh.darksailor.dev";
|
||||
forwardAgent = true;
|
||||
};
|
||||
ryu = {
|
||||
user = "servius";
|
||||
hostname = "ryu";
|
||||
forwardAgent = false;
|
||||
};
|
||||
};
|
||||
serverAliveInterval = 120;
|
||||
extraConfig =
|
||||
lib.strings.optionalString pkgs.stdenv.isDarwin
|
||||
''
|
||||
IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
|
||||
''
|
||||
+ lib.strings.optionalString (pkgs.stdenv.isLinux && !device.isServer) ''
|
||||
IdentityAgent ~/.1password/agent.sock
|
||||
'';
|
||||
};
|
||||
gh.enable = true;
|
||||
gh-dash.enable = true;
|
||||
atuin = {
|
||||
settings = {
|
||||
auto_sync = true;
|
||||
sync_frequency = "1m";
|
||||
sync_address = "https://atuin.darksailor.dev";
|
||||
};
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
direnv = {
|
||||
enable = true;
|
||||
# enableFishIntegration = true; // Auto enabled
|
||||
enableNushellIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
nix-index-database.comma.enable = true;
|
||||
helix = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "catppuccin_mocha";
|
||||
editor = {
|
||||
line-number = "relative";
|
||||
lsp.display-messages = true;
|
||||
};
|
||||
keys.normal = {
|
||||
space.space = "file_picker";
|
||||
space.w = ":w";
|
||||
space.q = ":q";
|
||||
esc = ["collapse_selection" "keep_primary_selection"];
|
||||
};
|
||||
};
|
||||
};
|
||||
git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
userName = "uttarayan21";
|
||||
userEmail = "email@uttarayan.me";
|
||||
extraConfig = {
|
||||
color.ui = true;
|
||||
core.editor = "nvim";
|
||||
core.pager = "${pkgs.delta}/bin/delta";
|
||||
interactive.diffFilter = "${pkgs.delta}/bin/delta --color-only";
|
||||
delta.navigate = true;
|
||||
merge.conflictStyle = "diff3";
|
||||
diff.colorMoved = "default";
|
||||
push.autoSetupRemote = true;
|
||||
user.signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJfKKrX8yeIHUUury0aPwMY6Ha+BJyUR7P0Gqid90ik/";
|
||||
gpg.format = "ssh";
|
||||
commit.gpgsign = true;
|
||||
pull = {
|
||||
rebase = true;
|
||||
};
|
||||
"gpg \"ssh\"".program =
|
||||
if pkgs.stdenv.isDarwin
|
||||
then "/Applications/1Password.app/Contents/MacOS/op-ssh-sign"
|
||||
else "${pkgs._1password-gui}/share/1password/op-ssh-sign";
|
||||
};
|
||||
};
|
||||
nix-index = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
fish = {
|
||||
enable = true;
|
||||
shellAbbrs = {
|
||||
vim = "nvim";
|
||||
vi = "nvim";
|
||||
nv = "neovide";
|
||||
g = "git";
|
||||
yy = "yazi";
|
||||
cd = "z";
|
||||
ls = "eza";
|
||||
cat = "bat";
|
||||
j = "just --choose";
|
||||
# t = "zellij a -c --index 0";
|
||||
t = "tmux";
|
||||
};
|
||||
shellAliases =
|
||||
{
|
||||
g = "git";
|
||||
}
|
||||
// lib.optionalAttrs pkgs.stdenv.isLinux {
|
||||
kmpv = "mpv --vo-kitty-use-shm=yes --vo=kitty --really-quiet";
|
||||
smpv = "mpv --vo-sixel-buffered=yes --vo=sixel --profile=sw-fast";
|
||||
};
|
||||
shellInit = ''
|
||||
set fish_greeting
|
||||
yes | fish_config theme save "Catppuccin Mocha"
|
||||
'';
|
||||
# ${pkgs.spotify-player}/bin/spotify_player generate fish | source
|
||||
interactiveShellInit = ''
|
||||
${pkgs.pfetch-rs}/bin/pfetch
|
||||
${lib.optionalString (device.isLinux && !device.isNix) "source /etc/profile.d/nix-daemon.fish"}
|
||||
'';
|
||||
};
|
||||
|
||||
nushell = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
cd = "z";
|
||||
yy = "yazi";
|
||||
cat = "bat";
|
||||
};
|
||||
extraConfig = ''
|
||||
${pkgs.pfetch-rs}/bin/pfetch
|
||||
'';
|
||||
package = pkgs.nushell;
|
||||
configFile.text = ''
|
||||
$env.config = {
|
||||
show_banner: false,
|
||||
}
|
||||
'';
|
||||
};
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
starship = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
settings = let
|
||||
flavour = "mocha"; # Replace with your preferred palette
|
||||
in
|
||||
{
|
||||
# Check https://starship.rs/config/#prompt
|
||||
format = "$all$character";
|
||||
palette = "catppuccin_${flavour}";
|
||||
character = {
|
||||
success_symbol = "[[OK](bold green) ❯](maroon)";
|
||||
error_symbol = "[❯](red)";
|
||||
vimcmd_symbol = "[❮](green)";
|
||||
};
|
||||
directory = {
|
||||
truncation_length = 4;
|
||||
style = "bold lavender";
|
||||
};
|
||||
}
|
||||
// builtins.fromTOML (builtins.readFile
|
||||
(pkgs.catppuccinThemes.starship + /palettes/${flavour}.toml));
|
||||
};
|
||||
eza = {
|
||||
enable = true;
|
||||
# enableAliases = true;
|
||||
git = true;
|
||||
icons = "auto";
|
||||
};
|
||||
# carapace = {
|
||||
# # enable = true;
|
||||
# # enableFishIntegration = true;
|
||||
# enableNushellIntegration = true;
|
||||
# };
|
||||
fzf = {
|
||||
enable = true;
|
||||
package = pkgs.fzf;
|
||||
enableFishIntegration = true;
|
||||
tmux.enableShellIntegration = true;
|
||||
};
|
||||
yazi = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
theme = builtins.fromTOML (builtins.readFile "${pkgs.catppuccinThemes.yazi}/themes/mocha.toml");
|
||||
};
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {theme = "catppuccin";};
|
||||
themes = {
|
||||
catppuccin = {
|
||||
src = "${pkgs.catppuccinThemes.bat}/themes";
|
||||
file = "Catppuccin Mocha.tmTheme";
|
||||
};
|
||||
};
|
||||
# extraPackages = with pkgs.bat-extras; [batman batgrep batwatch];
|
||||
};
|
||||
|
||||
home-manager = {enable = true;};
|
||||
aichat = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = false;
|
||||
settings = {
|
||||
save_session = true;
|
||||
model = "openai:gpt-4o";
|
||||
rag_embedding_model = "ollama:RobinBially/nomic-embed-text-8k";
|
||||
clients = [
|
||||
{
|
||||
type = "openai-compatible";
|
||||
name = "llama";
|
||||
api_base = "https://llama.darksailor.dev/api/v1";
|
||||
api_key_cmd = "cat ${config.sops.secrets."llama/api_key".path}";
|
||||
models = [
|
||||
{
|
||||
name = "qwen_2_5_1";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "openai-compatible";
|
||||
name = "ollama";
|
||||
api_base = "https://llama.darksailor.dev/api/ollama/v1";
|
||||
api_key_cmd = "cat ${config.sops.secrets."llama/api_key".path}";
|
||||
models = [
|
||||
{
|
||||
name = "RobinBially/nomic-embed-text-8k";
|
||||
type = "embedding";
|
||||
default_chunk_size = 8000;
|
||||
}
|
||||
{
|
||||
name = "mistral";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "openai";
|
||||
name = "openai";
|
||||
api_base = "https://api.openai.com/v1";
|
||||
api_key_cmd = "cat ${config.sops.secrets."openai/api_key".path}";
|
||||
models = [
|
||||
{
|
||||
name = "gpt-3.5-turbo";
|
||||
}
|
||||
{
|
||||
name = "gpt-4o";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
home = {
|
||||
username = device.user;
|
||||
homeDirectory =
|
||||
if device.isMac
|
||||
then lib.mkForce "/Users/${device.user}"
|
||||
else lib.mkForce "/home/${device.user}";
|
||||
|
||||
stateVersion = "23.11";
|
||||
|
||||
file = {
|
||||
".config/fish/themes".source = pkgs.catppuccinThemes.fish + "/themes";
|
||||
".cargo/config.toml".text =
|
||||
/*
|
||||
toml
|
||||
*/
|
||||
''
|
||||
[alias]
|
||||
lldb = ["with", "rust-lldb", "--"]
|
||||
t = ["nextest", "run"]
|
||||
|
||||
[net]
|
||||
git-fetch-with-cli = true
|
||||
|
||||
# [target.aarch64-apple-darwin]
|
||||
# linker = "clang"
|
||||
# rustflags = ["-C", "link-arg=-fuse-ld=${pkgs.mold}/bin/mold"]
|
||||
|
||||
[registries.catscii]
|
||||
index = "https://git.shipyard.rs/catscii/crate-index.git"
|
||||
|
||||
[http]
|
||||
user-agent = "shipyard J0/QFq2Sa5y6nTxJQAb8t+e/3qLSub1/sa3zn0leZv6LKG/zmQcoikT9U3xPwbzp8hQ="
|
||||
'';
|
||||
};
|
||||
|
||||
sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
SHELL = "${pkgs.fish}/bin/fish";
|
||||
CARGO_TARGET_DIR = "${config.xdg.cacheHome}/cargo/target";
|
||||
BROWSER =
|
||||
if device.isMac
|
||||
then "open"
|
||||
else "xdg-open";
|
||||
};
|
||||
sessionPath = ["${config.home.homeDirectory}/.cargo/bin"];
|
||||
};
|
||||
}
|
||||
79
home/default.nix
Normal file
79
home/default.nix
Normal file
@@ -0,0 +1,79 @@
|
||||
{
|
||||
inputs,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
[
|
||||
inputs.nix-index-database.hmModules.nix-index
|
||||
../modules
|
||||
./auth.nix
|
||||
./gui-programs
|
||||
./programs
|
||||
./scripts.nix
|
||||
]
|
||||
++ lib.optionals device.isLinux [./linux];
|
||||
# ++ lib.optionals.device.isMac [./macos];
|
||||
|
||||
xdg.enable = true;
|
||||
xdg.userDirs = {
|
||||
enable = device.isLinux;
|
||||
music = "${config.home.homeDirectory}/Nextcloud/Music";
|
||||
};
|
||||
|
||||
programs = {
|
||||
home-manager = {enable = true;};
|
||||
};
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
home = {
|
||||
username = device.user;
|
||||
homeDirectory =
|
||||
if device.isMac
|
||||
then lib.mkForce "/Users/${device.user}"
|
||||
else lib.mkForce "/home/${device.user}";
|
||||
|
||||
file = {
|
||||
".config/fish/themes".source = pkgs.catppuccinThemes.fish + "/themes";
|
||||
".cargo/config.toml".text =
|
||||
/*
|
||||
toml
|
||||
*/
|
||||
''
|
||||
[alias]
|
||||
lldb = ["with", "rust-lldb", "--"]
|
||||
t = ["nextest", "run"]
|
||||
|
||||
[net]
|
||||
git-fetch-with-cli = true
|
||||
|
||||
# [target.aarch64-apple-darwin]
|
||||
# linker = "clang"
|
||||
# rustflags = ["-C", "link-arg=-fuse-ld=${pkgs.mold}/bin/mold"]
|
||||
|
||||
[registries.catscii]
|
||||
index = "https://git.shipyard.rs/catscii/crate-index.git"
|
||||
|
||||
[http]
|
||||
user-agent = "shipyard J0/QFq2Sa5y6nTxJQAb8t+e/3qLSub1/sa3zn0leZv6LKG/zmQcoikT9U3xPwbzp8hQ="
|
||||
'';
|
||||
};
|
||||
|
||||
sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
SHELL = "${pkgs.bash}/bin/bash";
|
||||
CARGO_TARGET_DIR = "${config.xdg.cacheHome}/cargo/target";
|
||||
BROWSER =
|
||||
if device.isMac
|
||||
then "open"
|
||||
else "xdg-open";
|
||||
};
|
||||
sessionPath = ["${config.home.homeDirectory}/.cargo/bin"];
|
||||
|
||||
stateVersion = "23.11";
|
||||
};
|
||||
}
|
||||
3
home/gui-programs/cursor.nix
Normal file
3
home/gui-programs/cursor.nix
Normal file
@@ -0,0 +1,3 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.code-cursor];
|
||||
}
|
||||
16
home/gui-programs/default.nix
Normal file
16
home/gui-programs/default.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
[]
|
||||
++ (lib.optionals device.hasGui [
|
||||
./cursor.nix
|
||||
./firefox.nix
|
||||
./ghostty.nix
|
||||
./kitty.nix
|
||||
./vscodium.nix
|
||||
./wezterm.nix
|
||||
]);
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
...
|
||||
}: {
|
||||
programs.firefox = {
|
||||
enable = device.hasGui;
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
profiles.default = {
|
||||
# userChrome =
|
||||
# /*
|
||||
@@ -5,7 +5,7 @@
|
||||
...
|
||||
}: {
|
||||
programs.kitty = {
|
||||
enable = device.hasGui;
|
||||
enable = true;
|
||||
# enable = false;
|
||||
font = {
|
||||
# name = "FiraCode Nerd Font Mono";
|
||||
13
home/gui-programs/vscodium.nix
Normal file
13
home/gui-programs/vscodium.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{pkgs, ...}: {
|
||||
programs = {
|
||||
# Only for checking markdown previews
|
||||
vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
shd101wyy.markdown-preview-enhanced
|
||||
asvetliakov.vscode-neovim
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
...
|
||||
}: {
|
||||
programs.wezterm = {
|
||||
enable = device.hasGui;
|
||||
enable = true;
|
||||
extraConfig =
|
||||
/*
|
||||
lua
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
@@ -7,13 +6,12 @@
|
||||
imports =
|
||||
[]
|
||||
++ (lib.optionals device.hasGui [
|
||||
../common/firefox.nix
|
||||
../linux/hyprland.nix
|
||||
../linux/gtk.nix
|
||||
../linux/anyrun.nix
|
||||
../linux/ironbar
|
||||
../linux/foot.nix
|
||||
../linux/mpd.nix
|
||||
./hyprland.nix
|
||||
./gtk.nix
|
||||
./anyrun.nix
|
||||
./ironbar
|
||||
./foot.nix
|
||||
./mpd.nix
|
||||
]);
|
||||
|
||||
services.kdeconnect.enable = device.hasGui;
|
||||
@@ -4,11 +4,11 @@
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../modules/hyprpaper.nix
|
||||
../../modules/hyprpaper.nix
|
||||
];
|
||||
|
||||
programs.hyprpaper = let
|
||||
wallpapers = import ../utils/wallhaven.nix {inherit pkgs;};
|
||||
wallpapers = import ../../utils/wallhaven.nix {inherit pkgs;};
|
||||
in {
|
||||
enable = device.hasGui;
|
||||
# enable = true;
|
||||
@@ -157,6 +157,7 @@
|
||||
"$mainMod, Return, exec, ${pkgs.kitty}/bin/kitty"
|
||||
"$mainModShift, Return, exec, ${pkgs.foot}/bin/foot"
|
||||
"$mainModShift, Q, killactive,"
|
||||
"$mainModShift, s, exec, ${pkgs.hyprshot}/bin/hyprshot -m region"
|
||||
# "$mainMod, M, exit,"
|
||||
"$mainMod, t, togglefloating,"
|
||||
"$mainMod, f, fullscreen,"
|
||||
62
home/programs/aichat.nix
Normal file
62
home/programs/aichat.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
programs.
|
||||
aichat = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = false;
|
||||
settings = {
|
||||
save_session = true;
|
||||
model = "openai:gpt-4o";
|
||||
rag_embedding_model = "ollama:RobinBially/nomic-embed-text-8k";
|
||||
clients = [
|
||||
{
|
||||
type = "openai-compatible";
|
||||
name = "llama";
|
||||
api_base = "https://llama.darksailor.dev/api/v1";
|
||||
api_key_cmd = "cat ${config.sops.secrets."llama/api_key".path}";
|
||||
models = [
|
||||
{
|
||||
name = "qwen_2_5_1";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "openai-compatible";
|
||||
name = "ollama";
|
||||
api_base = "https://llama.darksailor.dev/api/ollama/v1";
|
||||
api_key_cmd = "cat ${config.sops.secrets."llama/api_key".path}";
|
||||
models = [
|
||||
{
|
||||
name = "RobinBially/nomic-embed-text-8k";
|
||||
type = "embedding";
|
||||
default_chunk_size = 8000;
|
||||
}
|
||||
{
|
||||
name = "mistral";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "openai";
|
||||
name = "openai";
|
||||
api_base = "https://api.openai.com/v1";
|
||||
api_key_cmd = "cat ${config.sops.secrets."openai/api_key".path}";
|
||||
models = [
|
||||
{
|
||||
name = "gpt-3.5-turbo";
|
||||
}
|
||||
{
|
||||
name = "gpt-4o";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
17
home/programs/atuin.nix
Normal file
17
home/programs/atuin.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.atuin = {
|
||||
settings = {
|
||||
auto_sync = true;
|
||||
sync_frequency = "1m";
|
||||
sync_address = "https://atuin.darksailor.dev";
|
||||
};
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
}
|
||||
19
home/programs/bat.nix
Normal file
19
home/programs/bat.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {theme = "catppuccin";};
|
||||
themes = {
|
||||
catppuccin = {
|
||||
src = "${pkgs.catppuccinThemes.bat}/themes";
|
||||
file = "Catppuccin Mocha.tmTheme";
|
||||
};
|
||||
};
|
||||
# extraPackages = with pkgs.bat-extras; [batman batgrep batwatch];
|
||||
};
|
||||
}
|
||||
13
home/programs/carapace.nix
Normal file
13
home/programs/carapace.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.
|
||||
carapace = {
|
||||
enable = false;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
}
|
||||
94
home/programs/default.nix
Normal file
94
home/programs/default.nix
Normal file
@@ -0,0 +1,94 @@
|
||||
{
|
||||
pkgs,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../modules
|
||||
./aichat.nix
|
||||
./atuin.nix
|
||||
./bat.nix
|
||||
./carapace.nix
|
||||
./direnv.nix
|
||||
./eza.nix
|
||||
./fish.nix
|
||||
./fzf.nix
|
||||
./gh.nix
|
||||
./git.nix
|
||||
./goread.nix
|
||||
./helix.nix
|
||||
./ncmpcpp.nix
|
||||
./neomutt.nix
|
||||
./newsboat.nix
|
||||
./nix-index.nix
|
||||
./nushell.nix
|
||||
./sops.nix
|
||||
./ssh.nix
|
||||
./starship.nix
|
||||
./tmux.nix
|
||||
./tuifeed.nix
|
||||
./yazi.nix
|
||||
./zellij.nix
|
||||
./zoxide.nix
|
||||
#./template.nix
|
||||
];
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
(nixvim.makeNixvim (import ../../neovim))
|
||||
_1password-cli
|
||||
alejandra
|
||||
ast-grep
|
||||
bottom
|
||||
btop
|
||||
cachix
|
||||
deploy-rs
|
||||
dust
|
||||
fd
|
||||
file
|
||||
fzf
|
||||
gnupg
|
||||
gpg-tui
|
||||
jq
|
||||
just
|
||||
macchina
|
||||
p7zip
|
||||
pandoc
|
||||
pfetch-rs
|
||||
pkg-config
|
||||
ripgrep
|
||||
sd
|
||||
tldr
|
||||
vcpkg-tool
|
||||
yt-dlp
|
||||
]
|
||||
++ lib.optionals (!device.isServer) [
|
||||
clang
|
||||
cmake
|
||||
d2
|
||||
devenv
|
||||
go
|
||||
hasklig
|
||||
jujutsu
|
||||
monaspace
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.hasklug
|
||||
nerd-fonts.symbols-only
|
||||
qmk
|
||||
ttyper
|
||||
yarn
|
||||
zed-editor
|
||||
]
|
||||
++ lib.optionals device.isLinux [
|
||||
dig
|
||||
gptfdisk
|
||||
handlr-regex
|
||||
handlr-xdg
|
||||
lsof
|
||||
ncpamixer
|
||||
rr
|
||||
sbctl
|
||||
usbutils
|
||||
ddcbacklight
|
||||
]
|
||||
++ lib.optionals device.isMac [];
|
||||
}
|
||||
13
home/programs/direnv.nix
Normal file
13
home/programs/direnv.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
# enableFishIntegration = lib.mkForce true; # Auto enabled
|
||||
enableNushellIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
}
|
||||
14
home/programs/eza.nix
Normal file
14
home/programs/eza.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.
|
||||
eza = {
|
||||
enable = true;
|
||||
# enableAliases = true;
|
||||
git = true;
|
||||
icons = "auto";
|
||||
};
|
||||
}
|
||||
40
home/programs/fish.nix
Normal file
40
home/programs/fish.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
shellAbbrs = {
|
||||
vim = "nvim";
|
||||
vi = "nvim";
|
||||
nv = "neovide";
|
||||
g = "git";
|
||||
yy = "yazi";
|
||||
cd = "z";
|
||||
ls = "eza";
|
||||
cat = "bat";
|
||||
j = "just --choose";
|
||||
# t = "zellij a -c --index 0";
|
||||
t = "tmux";
|
||||
};
|
||||
shellAliases =
|
||||
{
|
||||
g = "git";
|
||||
}
|
||||
// lib.optionalAttrs pkgs.stdenv.isLinux {
|
||||
kmpv = "mpv --vo-kitty-use-shm=yes --vo=kitty --really-quiet";
|
||||
smpv = "mpv --vo-sixel-buffered=yes --vo=sixel --profile=sw-fast";
|
||||
};
|
||||
shellInit = ''
|
||||
set fish_greeting
|
||||
yes | fish_config theme save "Catppuccin Mocha"
|
||||
'';
|
||||
# ${pkgs.spotify-player}/bin/spotify_player generate fish | source
|
||||
interactiveShellInit = ''
|
||||
${pkgs.pfetch-rs}/bin/pfetch
|
||||
${lib.optionalString (device.isLinux && !device.isNix) "source /etc/profile.d/nix-daemon.fish"}
|
||||
'';
|
||||
};
|
||||
}
|
||||
14
home/programs/fzf.nix
Normal file
14
home/programs/fzf.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.
|
||||
fzf = {
|
||||
enable = true;
|
||||
package = pkgs.fzf;
|
||||
enableFishIntegration = true;
|
||||
tmux.enableShellIntegration = true;
|
||||
};
|
||||
}
|
||||
11
home/programs/gh.nix
Normal file
11
home/programs/gh.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs = {
|
||||
gh.enable = true;
|
||||
gh-dash.enable = true;
|
||||
};
|
||||
}
|
||||
33
home/programs/git.nix
Normal file
33
home/programs/git.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
userName = "uttarayan21";
|
||||
userEmail = "email@uttarayan.me";
|
||||
extraConfig = {
|
||||
color.ui = true;
|
||||
core.editor = "nvim";
|
||||
core.pager = "${pkgs.delta}/bin/delta";
|
||||
interactive.diffFilter = "${pkgs.delta}/bin/delta --color-only";
|
||||
delta.navigate = true;
|
||||
merge.conflictStyle = "diff3";
|
||||
diff.colorMoved = "default";
|
||||
push.autoSetupRemote = true;
|
||||
user.signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJfKKrX8yeIHUUury0aPwMY6Ha+BJyUR7P0Gqid90ik/";
|
||||
gpg.format = "ssh";
|
||||
commit.gpgsign = true;
|
||||
pull = {
|
||||
rebase = true;
|
||||
};
|
||||
"gpg \"ssh\"".program =
|
||||
if pkgs.stdenv.isDarwin
|
||||
then "/Applications/1Password.app/Contents/MacOS/op-ssh-sign"
|
||||
else "${pkgs._1password-gui}/share/1password/op-ssh-sign";
|
||||
};
|
||||
};
|
||||
}
|
||||
23
home/programs/helix.nix
Normal file
23
home/programs/helix.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "catppuccin_mocha";
|
||||
editor = {
|
||||
line-number = "relative";
|
||||
lsp.display-messages = true;
|
||||
};
|
||||
keys.normal = {
|
||||
space.space = "file_picker";
|
||||
space.w = ":w";
|
||||
space.q = ":q";
|
||||
esc = ["collapse_selection" "keep_primary_selection"];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
home/programs/nix-index.nix
Normal file
14
home/programs/nix-index.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs = {
|
||||
nix-index-database.comma.enable = true;
|
||||
nix-index = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
24
home/programs/nushell.nix
Normal file
24
home/programs/nushell.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.nushell = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
cd = "z";
|
||||
yy = "yazi";
|
||||
cat = "bat";
|
||||
};
|
||||
extraConfig = ''
|
||||
${pkgs.pfetch-rs}/bin/pfetch
|
||||
'';
|
||||
package = pkgs.nushell;
|
||||
configFile.text = ''
|
||||
$env.config = {
|
||||
show_banner: false,
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
];
|
||||
sops = {
|
||||
defaultSopsFile = ../secrets/secrets.yaml;
|
||||
defaultSopsFile = ../../secrets/secrets.yaml;
|
||||
defaultSopsFormat = "yaml";
|
||||
age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
|
||||
secrets."llama/api_key" = {};
|
||||
40
home/programs/ssh.nix
Normal file
40
home/programs/ssh.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
matchBlocks = {
|
||||
github = {
|
||||
user = "git";
|
||||
host = "github.com";
|
||||
};
|
||||
deoxys = {
|
||||
user = "servius";
|
||||
hostname = "deoxys";
|
||||
forwardAgent = true;
|
||||
};
|
||||
mirai = {
|
||||
user = "fs0c131y";
|
||||
hostname = "sh.darksailor.dev";
|
||||
forwardAgent = true;
|
||||
};
|
||||
ryu = {
|
||||
user = "servius";
|
||||
hostname = "ryu";
|
||||
forwardAgent = false;
|
||||
};
|
||||
};
|
||||
serverAliveInterval = 120;
|
||||
extraConfig =
|
||||
lib.strings.optionalString pkgs.stdenv.isDarwin
|
||||
''
|
||||
IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
|
||||
''
|
||||
+ lib.strings.optionalString (pkgs.stdenv.isLinux && !device.isServer) ''
|
||||
IdentityAgent ~/.1password/agent.sock
|
||||
'';
|
||||
};
|
||||
}
|
||||
31
home/programs/starship.nix
Normal file
31
home/programs/starship.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
settings = let
|
||||
flavour = "mocha"; # Replace with your preferred palette
|
||||
in
|
||||
{
|
||||
# Check https://starship.rs/config/#prompt
|
||||
format = "$all$character";
|
||||
palette = "catppuccin_${flavour}";
|
||||
character = {
|
||||
success_symbol = "[[OK](bold green) ❯](maroon)";
|
||||
error_symbol = "[❯](red)";
|
||||
vimcmd_symbol = "[❮](green)";
|
||||
};
|
||||
directory = {
|
||||
truncation_length = 4;
|
||||
style = "bold lavender";
|
||||
};
|
||||
}
|
||||
// builtins.fromTOML (builtins.readFile
|
||||
(pkgs.catppuccinThemes.starship + /palettes/${flavour}.toml));
|
||||
};
|
||||
}
|
||||
9
home/programs/template.nix
Normal file
9
home/programs/template.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs = {
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
{...}: {
|
||||
imports = [../modules/tuifeed.nix];
|
||||
programs.tuifeed = {
|
||||
enable = false;
|
||||
config = {
|
||||
14
home/programs/yazi.nix
Normal file
14
home/programs/yazi.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.
|
||||
yazi = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
theme = builtins.fromTOML (builtins.readFile "${pkgs.catppuccinThemes.yazi}/themes/mocha.toml");
|
||||
};
|
||||
}
|
||||
12
home/programs/zoxide.nix
Normal file
12
home/programs/zoxide.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
}
|
||||
30
home/scripts.nix
Normal file
30
home/scripts.nix
Normal file
@@ -0,0 +1,30 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = [
|
||||
(pkgs.writeShellApplication
|
||||
{
|
||||
name = "hotedit";
|
||||
# description = "Edit files from nix store by replacing them with a local copy";
|
||||
text = ''
|
||||
if [ "$#" -eq 0 ]; then
|
||||
echo "No arguments provided."
|
||||
exit 1
|
||||
elif [ "$#" -gt 1 ]; then
|
||||
echo "More than 1 argument provided."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if [ -L "$1" ]; then
|
||||
echo "The file is a symbolic link."
|
||||
mv "$1" "$1.bak"
|
||||
cp "$1.bak" "$1"
|
||||
chmod +rw "$1"
|
||||
else
|
||||
echo "The file is not a symbolic link."
|
||||
exit 1
|
||||
fi
|
||||
exec $EDITOR "$1"
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -20,23 +20,18 @@ lib.attrsets.optionalAttrs device.hasGui {
|
||||
WantedBy = ["graphical-session.target"];
|
||||
};
|
||||
};
|
||||
imports = [./kitty.nix ./ghostty.nix];
|
||||
|
||||
programs = {
|
||||
# Only for checking markdown previews
|
||||
vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
shd101wyy.markdown-preview-enhanced
|
||||
asvetliakov.vscode-neovim
|
||||
imports = [
|
||||
./kitty.nix
|
||||
./firefox.nix
|
||||
./ghostty.nix
|
||||
./cursor.nix
|
||||
./vscodium.nix
|
||||
./wezterm.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs;
|
||||
[]
|
||||
++ lib.optionals pkgs.stdenv.isLinux [
|
||||
ghostty
|
||||
discord
|
||||
(mpv-unwrapped.wrapper {mpv = mpv-unwrapped.override {sixelSupport = true;};})
|
||||
abaddon
|
||||
@@ -59,6 +54,7 @@ lib.attrsets.optionalAttrs device.hasGui {
|
||||
steam-run
|
||||
via
|
||||
wl-clipboard
|
||||
zed-editor
|
||||
]
|
||||
++ lib.optionals pkgs.stdenv.isDarwin [
|
||||
];
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
device,
|
||||
...
|
||||
}: {
|
||||
# imports = [
|
||||
# # ./sketchybar.nix
|
||||
# ];
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
programs.sketchybar = {
|
||||
};
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
./goread.nix
|
||||
./hyprpaper.nix
|
||||
./aichat.nix
|
||||
./tuifeed.nix
|
||||
#./ghostty.nix
|
||||
# ./sketchybar.nix
|
||||
];
|
||||
|
||||
@@ -34,7 +34,7 @@ builtins.listToAttrs (builtins.map (device: {
|
||||
inherit inputs;
|
||||
inherit device;
|
||||
};
|
||||
users.${device.user}.imports = [../common/home.nix];
|
||||
users.${device.user}.imports = [../home];
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user