2023-02-12 23:33:57 +01:00
|
|
|
|
{ inputs, outputs, lib, pkgs, config, ... }:
|
2022-11-20 16:23:58 +01:00
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
# Home Manager needs a bit of information about you and the
|
|
|
|
|
# paths it should manage.
|
|
|
|
|
home = {
|
|
|
|
|
username = "nix-on-droid";
|
|
|
|
|
# username = "reo101";
|
|
|
|
|
homeDirectory = "/data/data/com.termux.nix/files/home";
|
2022-12-04 20:55:48 +01:00
|
|
|
|
stateVersion = "22.11";
|
2022-11-20 16:23:58 +01:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Let Home Manager install and manage itself.
|
|
|
|
|
programs.home-manager.enable = true;
|
|
|
|
|
|
|
|
|
|
home.packages = with pkgs; [
|
|
|
|
|
# neovim
|
|
|
|
|
# clang
|
|
|
|
|
gcc
|
|
|
|
|
|
|
|
|
|
diffutils
|
|
|
|
|
findutils
|
|
|
|
|
utillinux
|
|
|
|
|
tzdata
|
|
|
|
|
hostname
|
|
|
|
|
man
|
|
|
|
|
ncurses
|
|
|
|
|
gnugrep
|
|
|
|
|
gnupg
|
|
|
|
|
gnused
|
|
|
|
|
gnutar
|
|
|
|
|
bzip2
|
|
|
|
|
gzip
|
|
|
|
|
xz
|
|
|
|
|
zip
|
|
|
|
|
unzip
|
|
|
|
|
|
2022-11-24 01:16:02 +01:00
|
|
|
|
direnv
|
|
|
|
|
nix-direnv
|
|
|
|
|
|
2022-11-20 16:23:58 +01:00
|
|
|
|
# Bling
|
|
|
|
|
onefetch
|
|
|
|
|
neofetch
|
|
|
|
|
|
|
|
|
|
# Utils
|
|
|
|
|
ripgrep
|
|
|
|
|
|
|
|
|
|
# Passwords
|
|
|
|
|
pass
|
|
|
|
|
passExtensions.pass-otp
|
|
|
|
|
|
|
|
|
|
# Dhall
|
|
|
|
|
dhall
|
|
|
|
|
dhall-lsp-server
|
|
|
|
|
|
2022-11-21 13:42:45 +01:00
|
|
|
|
# Zig
|
|
|
|
|
zigpkgs.master
|
2022-11-21 14:36:23 +01:00
|
|
|
|
inputs.zls-overlay.packages.aarch64-linux.default
|
2022-11-21 13:42:45 +01:00
|
|
|
|
];
|
2022-11-20 16:23:58 +01:00
|
|
|
|
|
2022-11-21 08:52:42 +01:00
|
|
|
|
nixpkgs = {
|
|
|
|
|
overlays = [
|
2022-11-21 13:42:45 +01:00
|
|
|
|
inputs.neovim-nightly-overlay.overlay
|
|
|
|
|
inputs.zig-overlay.overlays.default
|
2022-11-21 14:36:23 +01:00
|
|
|
|
# inputs.zls-overlay.???
|
2022-11-21 08:52:42 +01:00
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
config.allowUnfree = true;
|
|
|
|
|
};
|
|
|
|
|
|
2022-11-20 16:23:58 +01:00
|
|
|
|
programs.neovim = {
|
|
|
|
|
enable = true;
|
2022-11-21 08:52:42 +01:00
|
|
|
|
package = pkgs.neovim-nightly;
|
2022-11-20 16:23:58 +01:00
|
|
|
|
# defaultEditor = true;
|
|
|
|
|
|
|
|
|
|
viAlias = true;
|
|
|
|
|
vimAlias = true;
|
|
|
|
|
vimdiffAlias = true;
|
|
|
|
|
|
|
|
|
|
withPython3 = false;
|
|
|
|
|
withNodeJs = false;
|
|
|
|
|
withRuby = false;
|
|
|
|
|
|
|
|
|
|
# neovimRcContent = "";
|
|
|
|
|
|
|
|
|
|
extraPackages = with pkgs; [
|
2023-02-12 23:33:57 +01:00
|
|
|
|
tree-sitter
|
|
|
|
|
rnix-lsp
|
|
|
|
|
# sumneko-lua-language-server
|
|
|
|
|
# stylua
|
|
|
|
|
# texlab
|
|
|
|
|
# rust-analyzer
|
2022-11-20 16:23:58 +01:00
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
|
2022-11-24 01:16:02 +01:00
|
|
|
|
programs.zsh = {
|
|
|
|
|
enable = true;
|
|
|
|
|
enableCompletion = true;
|
|
|
|
|
defaultKeymap = "viins";
|
|
|
|
|
|
|
|
|
|
shellAliases = {
|
|
|
|
|
# ll = "ls -l";
|
|
|
|
|
# update = "sudo nixos-rebuild switch";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
history = {
|
|
|
|
|
size = 10000;
|
|
|
|
|
path = "${config.xdg.dataHome}/zsh/history";
|
|
|
|
|
};
|
|
|
|
|
|
2022-11-25 17:20:19 +01:00
|
|
|
|
initExtra = ''
|
2023-02-07 03:32:12 +01:00
|
|
|
|
export SHELL="${pkgs.zsh}/bin/zsh"
|
|
|
|
|
|
2022-11-24 01:16:02 +01:00
|
|
|
|
eval "$(direnv hook zsh)"
|
|
|
|
|
'';
|
|
|
|
|
|
|
|
|
|
plugins = [
|
|
|
|
|
{
|
|
|
|
|
name = "zsh-nix-shell";
|
|
|
|
|
file = "nix-shell.plugin.zsh";
|
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
|
owner = "chisui";
|
|
|
|
|
repo = "zsh-nix-shell";
|
|
|
|
|
rev = "v0.5.0";
|
|
|
|
|
sha256 = "0za4aiwwrlawnia4f29msk822rj9bgcygw6a8a6iikiwzjjz0g91";
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
|
2022-11-21 09:08:33 +01:00
|
|
|
|
programs.starship = {
|
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
|
|
settings = {
|
|
|
|
|
# Get editor completions based on the config schema
|
|
|
|
|
"$schema" = "https://starship.rs/config-schema.json";
|
|
|
|
|
|
|
|
|
|
# Use custom format
|
|
|
|
|
format = ''
|
|
|
|
|
[╭───────┨](bold green)[nix-on-droid](bright-white)[@](bold yellow)$hostname[┠───────>](bold green)$status$cmd_duration$git_branch$git_status$git_state$git_commit
|
|
|
|
|
[│](bold green)$time$jobs: $directory$package
|
|
|
|
|
[╰─](bold green)$character
|
|
|
|
|
'';
|
|
|
|
|
|
|
|
|
|
# ${custom.local}\
|
|
|
|
|
# ${custom.local_root}\
|
|
|
|
|
# ${custom.ssh}\
|
|
|
|
|
# ${custom.ssh_root}\
|
|
|
|
|
|
|
|
|
|
add_newline = true;
|
|
|
|
|
|
|
|
|
|
character = {
|
|
|
|
|
success_symbol = "[→](bold green)";
|
|
|
|
|
error_symbol = "[→](red)";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
git_branch = {
|
|
|
|
|
symbol = "🌱 ";
|
|
|
|
|
truncation_length = 15;
|
|
|
|
|
truncation_symbol = "…"; # …
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
git_commit = {
|
|
|
|
|
commit_hash_length = 6;
|
|
|
|
|
tag_symbol = "🔖 ";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
git_state = {
|
|
|
|
|
format = "[\($state( $progress_current of $progress_total)\)]($style) ";
|
|
|
|
|
cherry_pick = "[🍒 PICKING](bold red)";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
git_status = {
|
|
|
|
|
# conflicted = "🏳";
|
|
|
|
|
# ahead = "🏎💨";
|
|
|
|
|
# behind = "😰";
|
|
|
|
|
# diverged = "😵";
|
|
|
|
|
# untracked = "🤷";
|
|
|
|
|
# stashed = "📦";
|
|
|
|
|
# modified = "📝";
|
|
|
|
|
# staged = '[++\($count\)](green)';
|
|
|
|
|
# renamed = "👅";
|
|
|
|
|
# deleted = "🗑";
|
|
|
|
|
format = "[\\[$all_status$ahead_behind\\]]($style) ";
|
|
|
|
|
conflicted = "=[\($count\)](green) ";
|
|
|
|
|
ahead = "⇡[\($count\)](green) ";
|
|
|
|
|
behind = "⇣[\($count\)](green) ";
|
|
|
|
|
diverged = "⇕[\($count\)](green) ";
|
|
|
|
|
untracked = "?[\($count\)](green) ";
|
|
|
|
|
stashed = "$[\($count\)](green) ";
|
|
|
|
|
modified = "![\($count\)](green) ";
|
|
|
|
|
staged = "+[\($count\)](green) ";
|
|
|
|
|
renamed = "»[\($count\)](green) ";
|
|
|
|
|
deleted = "✘[\($count\)](green) ";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
status = {
|
|
|
|
|
style = "bg:blue fg:red";
|
|
|
|
|
symbol = "🔴";
|
|
|
|
|
format = "[\[$symbol $common_meaning$signal_name$maybe_int\]]($style) ";
|
|
|
|
|
map_symbol = true;
|
|
|
|
|
disabled = false;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
time = {
|
|
|
|
|
disabled = false;
|
|
|
|
|
format = "🕙[$time]($style) ";
|
|
|
|
|
# format = '🕙[\[ $time \]]($style) ';
|
|
|
|
|
time_format = "%T";
|
|
|
|
|
utc_time_offset = "+3";
|
|
|
|
|
# time_range = "10:00:00-14:00:00";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
cmd_duration = {
|
|
|
|
|
min_time = 2000; # miliseconds
|
|
|
|
|
# show_notifications = true;
|
|
|
|
|
min_time_to_notify = 45000; # miliseconds
|
|
|
|
|
format = "took [$duration](bold yellow) ";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
hostname = {
|
|
|
|
|
ssh_only = false;
|
|
|
|
|
format = "[$hostname](bold fg:#CC59B0)";
|
|
|
|
|
disabled = false;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
username = {
|
|
|
|
|
disabled = false;
|
|
|
|
|
style_user = "white bold";
|
|
|
|
|
style_root = "red bold";
|
|
|
|
|
format = "[$user]($style)[@](bold yellow)";
|
|
|
|
|
show_always = true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
directory = {
|
|
|
|
|
read_only = "🔒";
|
|
|
|
|
read_only_style = "bold white";
|
|
|
|
|
style = "fg:#A7F3E4";
|
|
|
|
|
truncate_to_repo = false;
|
|
|
|
|
truncation_length = 5;
|
|
|
|
|
truncation_symbol = "…/";
|
|
|
|
|
home_symbol = "🏡";
|
|
|
|
|
format = "[$read_only]($read_only_style)[$path]($style) ";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
directory.substitutions = {
|
|
|
|
|
".config" = " ";
|
|
|
|
|
"nvim" = "";
|
|
|
|
|
"emacs" = "𝓔";
|
|
|
|
|
"doom" = "𝓔";
|
|
|
|
|
"Projects" = "💻";
|
|
|
|
|
"FMI" = "🏫";
|
|
|
|
|
"Home" = "🏠";
|
|
|
|
|
"CPP" = "";
|
|
|
|
|
"Java" = "";
|
|
|
|
|
"Python" = "";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Language Environments
|
|
|
|
|
package = {
|
|
|
|
|
style = "bold fg:#5E5E5E";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
python = {
|
|
|
|
|
style = "bold fg:#5E5E5E";
|
|
|
|
|
symbol = "[](bold yellow) ";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
nodejs = {
|
|
|
|
|
style = "bold fg:#5E5E5E";
|
|
|
|
|
symbol = "[⬢](bold green) ";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Custom
|
|
|
|
|
jobs = {
|
|
|
|
|
format = "[ $symbol$number ]($style)";
|
|
|
|
|
style = "bg:#587744 fg:bright-white";
|
|
|
|
|
symbol = "⚙";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
custom.local = {
|
2023-02-12 23:33:57 +01:00
|
|
|
|
shell = [ "zsh" "-d" "-f" ];
|
2022-11-21 09:08:33 +01:00
|
|
|
|
when = ''[[ -z "$SSH_CLIENT" ]] && [[ `whoami` != "root" ]]'';
|
|
|
|
|
format = "[$symbol$output]($style)[@](bold yellow)";
|
|
|
|
|
command = "whoami";
|
|
|
|
|
style = "fg:bright-white";
|
|
|
|
|
symbol = "";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
custom.local_root = {
|
2023-02-12 23:33:57 +01:00
|
|
|
|
shell = [ "zsh" "-d" "-f" ];
|
2022-11-21 09:08:33 +01:00
|
|
|
|
when = ''[[ -z "$SSH_CLIENT" ]] && [[ `whoami` == "root" ]]'';
|
|
|
|
|
format = "[ $output ]($style)[@](bold yellow)";
|
|
|
|
|
command = "whoami";
|
|
|
|
|
style = "bg:red fg:bright-white";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
custom.ssh = {
|
2023-02-12 23:33:57 +01:00
|
|
|
|
shell = [ "zsh" "-d" "-f" ];
|
2022-11-21 09:08:33 +01:00
|
|
|
|
when = ''[[ -n "$SSH_CLIENT" ]] && [[ `whoami` != "root" ]]'';
|
|
|
|
|
format = "[ $symbol$output ]($style)[@](bold yellow)";
|
|
|
|
|
command = "whoami";
|
|
|
|
|
style = "bg:blue fg:bright-white";
|
|
|
|
|
# style = "bg:#FD7208 fg:bright-white";
|
|
|
|
|
symbol = "⌁";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
custom.ssh_root = {
|
2023-02-12 23:33:57 +01:00
|
|
|
|
shell = [ "zsh" "-d" "-f" ];
|
2022-11-21 09:08:33 +01:00
|
|
|
|
when = ''[[ -n "$SSH_CLIENT" ]] && [[ `whoami` == "root" ]]'';
|
|
|
|
|
format = "[ $symbol$output ]($style)[@](bold yellow)";
|
|
|
|
|
command = "whoami";
|
|
|
|
|
style = "bg:red fg:bright-white";
|
|
|
|
|
symbol = "⌁";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2022-11-20 16:23:58 +01:00
|
|
|
|
home.file = {
|
|
|
|
|
".config/nvim" = {
|
|
|
|
|
recursive = true;
|
|
|
|
|
source = /data/data/com.termux.nix/files/home/.local/src/reovim;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
programs.git = {
|
|
|
|
|
enable = true;
|
|
|
|
|
userName = "reo101";
|
|
|
|
|
# userName = "Pavel Atanasov";
|
|
|
|
|
userEmail = "pavel.atanasov2001@gmail.com";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
services.gpg-agent = {
|
|
|
|
|
enable = true;
|
|
|
|
|
defaultCacheTtl = 1800;
|
|
|
|
|
enableSshSupport = true;
|
|
|
|
|
};
|
2022-11-24 01:16:02 +01:00
|
|
|
|
|
|
|
|
|
# Using nix-direnv
|
|
|
|
|
# services.lorri = {
|
|
|
|
|
# enable = true;
|
|
|
|
|
# };
|
2022-11-20 16:23:58 +01:00
|
|
|
|
}
|