2020-10-12 00:47:07 -07:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
|
{
|
|
|
|
# Let Home Manager install and manage itself.
|
|
|
|
programs.home-manager.enable = true;
|
|
|
|
|
2021-04-11 23:31:11 -07:00
|
|
|
imports = (import ./programs);
|
|
|
|
|
2023-02-11 14:52:08 -08:00
|
|
|
# nixpkgs.overlays = [
|
2022-08-07 22:50:23 -07:00
|
|
|
# (import (builtins.fetchTarball {
|
|
|
|
# url = https://github.com/nix-community/neovim-nightly-overlay/archive/master.tar.gz;
|
|
|
|
# }))
|
2023-02-11 14:52:08 -08:00
|
|
|
# ];
|
2021-07-11 22:50:49 -07:00
|
|
|
|
2022-08-08 00:37:22 -07:00
|
|
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
|
|
|
"vscode"
|
|
|
|
];
|
|
|
|
|
2021-04-11 23:31:11 -07:00
|
|
|
home = {
|
2022-12-10 11:46:19 -08:00
|
|
|
stateVersion = "22.11";
|
2021-04-11 23:31:11 -07:00
|
|
|
sessionVariables = {
|
|
|
|
EDITOR = "nvim";
|
|
|
|
VISUAL = "$EDITOR";
|
|
|
|
};
|
2022-08-07 22:50:23 -07:00
|
|
|
packages = with pkgs; [
|
2022-10-08 11:48:26 -07:00
|
|
|
( python310.withPackages (ps: with ps; [ pip flake8 black ]) )
|
2023-02-23 18:44:46 -08:00
|
|
|
jdk17
|
2022-08-07 22:50:23 -07:00
|
|
|
any-nix-shell
|
|
|
|
aspell
|
|
|
|
bloop
|
|
|
|
cabal-install
|
2022-10-08 11:48:26 -07:00
|
|
|
cabal2nix
|
2022-08-07 22:50:23 -07:00
|
|
|
cachix
|
|
|
|
cmake
|
|
|
|
coursier
|
|
|
|
curlFull
|
2023-02-28 18:38:05 -08:00
|
|
|
delta
|
2022-08-07 22:50:23 -07:00
|
|
|
exa
|
|
|
|
fd
|
|
|
|
ffmpeg
|
2022-09-18 15:10:19 -07:00
|
|
|
font-awesome
|
2022-08-07 22:50:23 -07:00
|
|
|
gitAndTools.diff-so-fancy
|
2022-10-08 11:48:26 -07:00
|
|
|
ghc
|
|
|
|
ghcid
|
2023-02-24 18:19:14 -08:00
|
|
|
glow
|
2022-08-07 22:50:23 -07:00
|
|
|
gnupg
|
|
|
|
go
|
2022-12-10 11:46:19 -08:00
|
|
|
graphviz
|
2022-10-08 11:48:26 -07:00
|
|
|
haskell-language-server
|
2022-08-07 22:50:23 -07:00
|
|
|
hugo
|
|
|
|
luajit
|
|
|
|
luajitPackages.luarocks
|
|
|
|
luajitPackages.luasocket
|
|
|
|
lorri
|
2023-02-24 18:19:14 -08:00
|
|
|
marksman
|
2022-08-07 22:50:23 -07:00
|
|
|
maven
|
|
|
|
multimarkdown
|
|
|
|
mypy
|
2023-02-11 14:52:08 -08:00
|
|
|
# ncdu
|
2022-08-07 22:50:23 -07:00
|
|
|
neofetch
|
|
|
|
neovim
|
|
|
|
niv
|
|
|
|
nix-index
|
|
|
|
nixfmt
|
2022-10-08 11:48:26 -07:00
|
|
|
nix-prefetch-git
|
2023-02-11 14:52:08 -08:00
|
|
|
nodejs
|
2022-08-07 22:50:23 -07:00
|
|
|
nodePackages.pyright
|
|
|
|
nodePackages.typescript-language-server
|
|
|
|
nodePackages.vscode-html-languageserver-bin
|
|
|
|
nodePackages.vscode-json-languageserver
|
|
|
|
nodePackages.yaml-language-server
|
|
|
|
openssl
|
|
|
|
pandoc
|
|
|
|
patchelf
|
2022-12-10 11:46:19 -08:00
|
|
|
pijul
|
2023-01-04 18:12:50 -08:00
|
|
|
prettyping
|
2022-08-07 22:50:23 -07:00
|
|
|
rclone
|
|
|
|
readline
|
|
|
|
ripgrep
|
|
|
|
ripgrep-all
|
|
|
|
rnix-lsp
|
2022-09-18 15:10:19 -07:00
|
|
|
rust-analyzer
|
2022-08-07 22:50:23 -07:00
|
|
|
rustup
|
|
|
|
sbt
|
|
|
|
scala-cli
|
|
|
|
shellcheck
|
|
|
|
sqlite
|
|
|
|
stylua
|
|
|
|
stack
|
|
|
|
tealdeer
|
2022-09-18 15:10:19 -07:00
|
|
|
tectonic
|
|
|
|
texlab
|
2022-08-07 22:50:23 -07:00
|
|
|
tig
|
|
|
|
tokei
|
|
|
|
tree
|
|
|
|
tree-sitter
|
|
|
|
wget
|
|
|
|
xz
|
|
|
|
yq
|
|
|
|
];
|
2020-10-12 00:47:07 -07:00
|
|
|
};
|
|
|
|
|
2021-04-11 11:19:06 -07:00
|
|
|
programs.bat = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
|
2021-09-07 08:04:39 -07:00
|
|
|
programs.direnv = {
|
2021-04-11 11:19:06 -07:00
|
|
|
enable = true;
|
2021-09-07 08:04:39 -07:00
|
|
|
nix-direnv.enable = true;
|
2021-04-11 11:19:06 -07:00
|
|
|
};
|
|
|
|
|
2021-09-07 08:04:39 -07:00
|
|
|
programs.fzf = {
|
2021-04-11 11:19:06 -07:00
|
|
|
enable = true;
|
|
|
|
enableFishIntegration = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.gh = {
|
|
|
|
enable = true;
|
2021-11-07 13:24:41 -08:00
|
|
|
settings = {
|
|
|
|
editor = "nvim";
|
|
|
|
git_protocol = "ssh";
|
|
|
|
};
|
2021-04-11 11:19:06 -07:00
|
|
|
};
|
|
|
|
|
2023-02-11 14:52:08 -08:00
|
|
|
programs.gitui = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
|
2020-10-12 00:47:07 -07:00
|
|
|
programs.htop = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.jq = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
|
2021-08-04 22:37:43 -07:00
|
|
|
programs.kitty = {
|
|
|
|
enable = true;
|
2023-02-14 22:15:53 -08:00
|
|
|
theme = "Tokyo Night";
|
2021-08-05 22:58:46 -07:00
|
|
|
font = {
|
|
|
|
name = "FiraCode Nerd Font Mono Retina";
|
|
|
|
size = 16;
|
|
|
|
};
|
2021-08-04 22:37:43 -07:00
|
|
|
settings = {
|
2021-08-05 22:58:46 -07:00
|
|
|
copy_on_select = true;
|
2021-08-26 18:11:00 -07:00
|
|
|
enabled_layouts = "*";
|
2021-08-05 22:58:46 -07:00
|
|
|
macos_quit_when_last_window_closed = true;
|
2021-09-02 22:13:27 -07:00
|
|
|
scrollback_lines = 10000;
|
2021-08-04 22:37:43 -07:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2020-10-12 00:47:07 -07:00
|
|
|
programs.starship = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
2021-06-23 22:52:33 -07:00
|
|
|
command_timeout = 1000;
|
2021-06-07 21:08:10 -07:00
|
|
|
character = {
|
|
|
|
success_symbol = " [λ](bold green)";
|
|
|
|
error_symbol = " [λ](bold red)";
|
|
|
|
};
|
2020-10-12 00:47:07 -07:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2021-09-07 08:04:39 -07:00
|
|
|
programs.vscode = {
|
|
|
|
enable = true;
|
|
|
|
extensions = [
|
|
|
|
pkgs.vscode-extensions.scalameta.metals
|
|
|
|
pkgs.vscode-extensions.usernamehw.errorlens
|
|
|
|
pkgs.vscode-extensions.redhat.java
|
|
|
|
pkgs.vscode-extensions.xyz.local-history
|
|
|
|
pkgs.vscode-extensions.yzhang.markdown-all-in-one
|
|
|
|
pkgs.vscode-extensions.svsool.markdown-memo
|
|
|
|
pkgs.vscode-extensions.github.vscode-pull-request-github
|
|
|
|
pkgs.vscode-extensions.github.github-vscode-theme
|
|
|
|
pkgs.vscode-extensions.jnoortheen.nix-ide
|
|
|
|
pkgs.vscode-extensions.timonwong.shellcheck
|
2021-10-11 00:24:25 -07:00
|
|
|
pkgs.vscode-extensions.skyapps.fish-vscode
|
|
|
|
pkgs.vscode-extensions.baccata.scaladex-search
|
|
|
|
pkgs.vscode-extensions.davidanson.vscode-markdownlint
|
2021-09-07 08:04:39 -07:00
|
|
|
];
|
|
|
|
userSettings = {
|
2021-10-11 00:52:14 -07:00
|
|
|
editor.fontFamily = "FiraCode Nerd Font Mono Retina";
|
|
|
|
editor.fontSize = 16;
|
2021-09-07 08:04:39 -07:00
|
|
|
telemetry.enableTelemetry = false;
|
2021-10-11 00:24:25 -07:00
|
|
|
workbench.colorTheme = "Solarized Light";
|
|
|
|
workbench.iconTheme = "vscode-icons";
|
2021-09-07 08:04:39 -07:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2020-10-12 00:47:07 -07:00
|
|
|
programs.fish = {
|
|
|
|
enable = true;
|
|
|
|
|
2021-10-04 21:32:23 -07:00
|
|
|
functions = {
|
|
|
|
gitignore = "curl -sL https://www.gitignore.io/api/$argv";
|
|
|
|
};
|
|
|
|
|
2020-10-12 00:47:07 -07:00
|
|
|
plugins = [
|
|
|
|
{
|
|
|
|
name = "bass";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "edc";
|
|
|
|
repo = "bass";
|
2023-02-11 21:35:00 -08:00
|
|
|
rev = "2fd3d2157d5271ca3575b13daec975ca4c10577a";
|
2020-10-12 00:47:07 -07:00
|
|
|
sha256 = "0ppmajynpb9l58xbrcnbp41b66g7p0c9l2nlsvyjwk6d16g4p4gy";
|
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "foreign-env";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "oh-my-fish";
|
|
|
|
repo = "plugin-foreign-env";
|
2023-02-11 21:35:00 -08:00
|
|
|
rev = "3ee95536106c11073d6ff466c1681cde31001383";
|
2020-10-12 00:47:07 -07:00
|
|
|
sha256 = "00xqlyl3lffc5l0viin1nyp819wf81fncqyz87jx8ljjdhilmgbs";
|
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "bobthefish";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "oh-my-fish";
|
|
|
|
repo = "theme-bobthefish";
|
2023-02-11 21:35:00 -08:00
|
|
|
rev = "2dcfcab653ae69ae95ab57217fe64c97ae05d8de";
|
2020-10-12 00:47:07 -07:00
|
|
|
sha256 = "1fssb5bqd2d7856gsylf93d28n3rw4rlqkhbg120j5ng27c7v7lq";
|
|
|
|
};
|
|
|
|
}
|
|
|
|
];
|
|
|
|
|
|
|
|
loginShellInit = ''
|
2020-11-09 14:25:57 -08:00
|
|
|
set -xg TERM xterm-256color
|
2020-10-12 00:47:07 -07:00
|
|
|
if test -e /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
|
|
fenv source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
|
|
|
end
|
|
|
|
|
|
|
|
if test -e /nix/var/nix/profiles/default/etc/profile.d/nix.sh
|
|
|
|
fenv source /nix/var/nix/profiles/default/etc/profile.d/nix.sh
|
|
|
|
end
|
|
|
|
|
|
|
|
if test -e $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh
|
|
|
|
fenv source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh
|
|
|
|
end
|
|
|
|
|
2021-11-07 13:24:41 -08:00
|
|
|
set -xg PATH $HOME/bin $HOME/.cargo/bin $PATH
|
2020-10-12 00:47:07 -07:00
|
|
|
|
2021-09-07 08:04:39 -07:00
|
|
|
set -xg PATH /Users/salar/.luarocks/bin:/nix/store/95wpywsjf5iiw77f6n9rw347lk1sly15-luarocks-3.2.1/bin:/Users/salar/bin:/Users/salar/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/nix/store/3qp71mhrpxxg080yc82k51nx7b5hkajr-kitty-0.21.2/Applications/kitty.app/Contents/MacOS $PATH
|
|
|
|
|
2023-01-04 18:12:50 -08:00
|
|
|
set -xg PATH "/Users/salar/Library/Application Support/Coursier/bin" $PATH
|
|
|
|
|
2021-10-04 23:02:19 -07:00
|
|
|
set -xg JAVA_HOME /Users/salar/.nix-profile
|
2020-10-12 00:47:07 -07:00
|
|
|
|
2021-07-14 22:49:03 -07:00
|
|
|
set -xg JDTLS_CONFIG /Users/salar/.config/jdt-language-server/config_mac
|
2021-07-14 22:46:35 -07:00
|
|
|
|
2021-07-14 22:49:03 -07:00
|
|
|
set -xg JAR /Users/salar/.config/jdt-language-server/plugins/org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar
|
2021-07-14 22:46:35 -07:00
|
|
|
|
|
|
|
set -xg WORKSPACE /Users/salar/Projects
|
|
|
|
|
2020-11-09 14:25:57 -08:00
|
|
|
set -xg NIX_PATH $HOME/.nix-defexpr/channels $NIX_PATH
|
|
|
|
|
2020-10-12 08:14:13 -07:00
|
|
|
set -xg FZF_DEFAULT_OPTS "--preview='bat {} --color=always'" \n
|
2021-02-11 19:34:44 -08:00
|
|
|
|
|
|
|
set -xg TOOLCHAINS swift
|
2021-06-23 22:52:33 -07:00
|
|
|
|
|
|
|
set -xg XDG_CONFIG_HOME $HOME/.config
|
2021-09-07 08:04:39 -07:00
|
|
|
|
|
|
|
set -xg LUA_PATH "/nix/store/95wpywsjf5iiw77f6n9rw347lk1sly15-luarocks-3.2.1/share/lua/5.1/?.lua;/nix/store/95wpywsjf5iiw77f6n9rw347lk1sly15-luarocks-3.2.1/share/lua/5.1/?/init.lua;/Users/salar/.luarocks/share/lua/5.1/?.lua;/Users/salar/.luarocks/share/lua/5.1/?/init.lua"
|
|
|
|
|
|
|
|
set -xg LUA_CPATH "?.so;/nix/store/95wpywsjf5iiw77f6n9rw347lk1sly15-luarocks-3.2.1/share/lua/5.1/?/init.lua;/Users/salar/.luarocks/lib/lua/5.1/?.so;/nix/store/95wpywsjf5iiw77f6n9rw347lk1sly15-luarocks-3.2.1/lib/lua/5.1/?.so"
|
2020-10-12 00:47:07 -07:00
|
|
|
'';
|
|
|
|
|
2021-11-07 13:24:41 -08:00
|
|
|
interactiveShellInit = ''
|
2020-10-12 00:47:07 -07:00
|
|
|
eval (direnv hook fish)
|
|
|
|
any-nix-shell fish --info-right | source
|
|
|
|
'';
|
|
|
|
|
|
|
|
shellAliases = {
|
2023-03-01 22:06:10 -08:00
|
|
|
addsshmac="ssh-add ~/.ssh/id_ed25519 --apple-use-keychain --apple-load-keychain";
|
2020-10-12 00:47:07 -07:00
|
|
|
cat="bat";
|
2023-02-11 21:04:42 -08:00
|
|
|
# du="ncdu --color dark -rr -x";
|
2021-06-23 22:52:33 -07:00
|
|
|
fzfp="fzf --preview 'bat --style=numbers --color=always --line-range :500 {}'";
|
2020-10-12 00:47:07 -07:00
|
|
|
ping="prettyping";
|
|
|
|
".." = "cd ..";
|
|
|
|
pj="python -m json.tool";
|
2021-02-11 19:34:44 -08:00
|
|
|
l="exa --long --header --git --all";
|
2020-10-12 00:47:07 -07:00
|
|
|
g="git";
|
|
|
|
gl="git log";
|
|
|
|
gc="git commit -m";
|
|
|
|
gca="git commit -am";
|
|
|
|
gws="git status";
|
2023-02-11 21:04:42 -08:00
|
|
|
gu="gitui";
|
2021-04-11 12:01:46 -07:00
|
|
|
ghauth="gh auth login --with-token < ~/.ghauth";
|
2021-10-04 21:32:23 -07:00
|
|
|
giscala="gitignore scala,vim,java,sbt > .gitignore";
|
2020-10-12 00:47:07 -07:00
|
|
|
gforksync="git fetch upstream && git merge upstream/master && git push origin master";
|
|
|
|
grep="grep --color=auto";
|
|
|
|
new-sbt="sbt new scala/scala-seed.g8";
|
2023-02-14 22:15:53 -08:00
|
|
|
nixc="cd ~/.config/nixpkgs";
|
2022-08-13 12:00:34 -07:00
|
|
|
nixre="nix build && sudo ./result/activate";
|
2021-06-23 22:52:33 -07:00
|
|
|
nixinfo="nix-shell -p nix-info --run \"nix-info -m\"";
|
2020-10-12 00:47:07 -07:00
|
|
|
nixgc="nix-collect-garbage -d";
|
|
|
|
nixq="nix-env -qa";
|
2022-08-13 12:00:34 -07:00
|
|
|
nixupdate="sudo nix-channel --update";
|
2020-10-12 00:47:07 -07:00
|
|
|
nixversion="nix eval nixpkgs.lib.version";
|
2021-06-23 22:52:33 -07:00
|
|
|
rmxcodederived="rm -fr ~/Library/Developer/Xcode/DerivedData";
|
2020-11-09 14:25:57 -08:00
|
|
|
v="nvim";
|
2023-02-11 21:04:42 -08:00
|
|
|
wezk="wezterm show-keys --lua";
|
2020-10-12 00:47:07 -07:00
|
|
|
sshfre1="ssh salar@fre1.softinio.net";
|
2023-02-11 14:52:08 -08:00
|
|
|
sshfre2="ssh -p 2022 salar@fre2.softinio.net";
|
2023-02-28 18:38:05 -08:00
|
|
|
sshhcloud1="ssh salar@hcloud1.softinio.net";
|
|
|
|
sshhcloud1r="ssh root@hcloud1.softinio.net";
|
2020-10-12 00:47:07 -07:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-01-04 18:12:50 -08:00
|
|
|
# pijul config
|
|
|
|
xdg.configFile."pijul/config.toml".text = lib.mkAfter ''
|
|
|
|
[author]
|
|
|
|
name = "softinio"
|
|
|
|
full_name = "Salar Rahmanian"
|
|
|
|
email = "code@softinio.com"
|
|
|
|
'';
|
|
|
|
|
2021-07-11 15:06:37 -07:00
|
|
|
# Neovim Configuration
|
2023-02-11 14:52:08 -08:00
|
|
|
xdg.configFile."nvim".source = builtins.fetchGit {
|
|
|
|
url = "https://git.softinio.com/softinio/nvim-config.git";
|
2023-03-01 22:02:48 -08:00
|
|
|
rev = "b873a14c3adc0815a51a54fa96f4d2fcfc1e93ba";
|
2023-02-11 14:52:08 -08:00
|
|
|
};
|
2020-10-12 00:47:07 -07:00
|
|
|
}
|
2023-02-11 14:52:08 -08:00
|
|
|
|