242 lines
6.2 KiB
Nix
242 lines
6.2 KiB
Nix
inputs:
|
|
{ config, pkgs, lib, ... }:
|
|
|
|
let
|
|
# TODO: find a better source
|
|
mimeTypes = pkgs.fetchurl {
|
|
url =
|
|
"https://raw.githubusercontent.com/eprints/eprints3.4/master/lib/mime.types";
|
|
sha256 = "0cdhq71wk5h3zcfrz8dyqc3vrjyikwjqsla855v036r54lch0kn2";
|
|
};
|
|
|
|
sc = pkgs.writeScript "sc.sh" ''
|
|
#!${pkgs.zsh}/bin/zsh
|
|
git commit -am "$*"
|
|
'';
|
|
in
|
|
{
|
|
programs.home-manager.enable = true;
|
|
|
|
home.packages = with pkgs; [
|
|
gnupg
|
|
zsh-powerlevel9k
|
|
fzf # also needed for fzf.vim
|
|
xclip # needed for nvim
|
|
nixpkgs-fmt
|
|
nixfmt
|
|
];
|
|
|
|
programs.vscode = {
|
|
package = pkgs.vscodium;
|
|
userSettings = {
|
|
"workbench.startupEditor" = "none";
|
|
|
|
"editor.bracketPairColorization.enabled" = true;
|
|
"editor.guides.bracketPairs" = "active";
|
|
|
|
"window.menuBarVisibility" = "toggle";
|
|
|
|
"workbench.sideBar.location" = "right";
|
|
|
|
"vim.overrideCopy" = true;
|
|
"vim.useSystemClipboard" = true;
|
|
"vim.easymotion" = true;
|
|
"vim.sneak" = true;
|
|
"vim.hlsearch" = true;
|
|
"vim.ignorecase" = true;
|
|
"vim.normalModeKeyBindings" = [
|
|
{
|
|
before = [ "<Tab>" ];
|
|
commands = [ "workbench.action.nextEditorInGroup" ];
|
|
}
|
|
{
|
|
before = [ "<S-Tab>" ];
|
|
commands = [ "workbench.action.previousEditorInGroup" ];
|
|
}
|
|
];
|
|
|
|
"nix.formatterPath" = "${pkgs.nixfmt}/bin/nixfmt";
|
|
"nix.serverPath" = "${pkgs.rnix-lsp}/bin/rnix-lsp";
|
|
"nix.enableLanguageServer" = true;
|
|
|
|
"rust-client.disableRustup" = true;
|
|
|
|
"editor.formatOnSave" = true;
|
|
|
|
# "vscode-dhall-lsp-server.executable" = "${pkgs.dhall-lsp-server}/bin/dhall-lsp-server";
|
|
# "purescript.pursExe" = "${pkgs.purescript}/bin/purs";
|
|
# "purescript.buildCommand" = "${pkgs.spago}/bin/spago build --purs-args --json-errors";
|
|
};
|
|
extensions = with pkgs.vscode-extensions; [
|
|
vscodevim.vim
|
|
jnoortheen.nix-ide
|
|
haskell.haskell
|
|
justusadam.language-haskell
|
|
dhall.dhall-lang
|
|
dhall.vscode-dhall-lsp-server
|
|
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
|
{
|
|
name = "rust";
|
|
publisher = "rust-lang";
|
|
version = "0.7.8";
|
|
sha256 = "sha256-Y33agSNMVmaVCQdYd5mzwjiK5JTZTtzTkmSGTQrSNg0=";
|
|
}
|
|
{
|
|
name = "vscode-autohide";
|
|
publisher = "sirmspencer";
|
|
version = "1.0.7";
|
|
sha256 = "sha256-VaG/eTE2BGbHAYgFdS31c47rgLZVjHGK+/U8MSYKDt8=";
|
|
}
|
|
{
|
|
name = "ide-purescript";
|
|
publisher = "nwolverson";
|
|
version = "0.25.11";
|
|
sha256 = "sha256-9MgPAVfIdA7frR4EUDqVJB0N/LZY4NQSXtsKhEueNeg=";
|
|
}
|
|
{
|
|
name = "language-purescript";
|
|
publisher = "nwolverson";
|
|
version = "0.2.8";
|
|
sha256 = "sha256-2uOwCHvnlQQM8s8n7dtvIaMgpW8ROeoUraM02rncH9o=";
|
|
}
|
|
];
|
|
};
|
|
|
|
programs.neovim = {
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
vimdiffAlias = true;
|
|
withNodeJs = true;
|
|
withPython3 = true;
|
|
plugins = with pkgs.vimPlugins; [
|
|
direnv-vim
|
|
fugitive
|
|
vim-nix
|
|
camelcasemotion
|
|
vim-indent-object
|
|
vim-commentary
|
|
vim-surround
|
|
{
|
|
plugin = vim-airline;
|
|
config = ''
|
|
if exists('g:started_by_firenvim')
|
|
let g:airline#extensions#tabline#enabled = 0
|
|
let g:airline_powerline_fonts = 0
|
|
else
|
|
let g:airline#extensions#tabline#enabled = 1
|
|
let g:airline_powerline_fonts = 1
|
|
endif
|
|
|
|
" remove c, which contains filename, without firevim it's in the buffer, with firevim I don't want to see it, so this can always be applied
|
|
let g:airline#extensions#default#layout = [
|
|
\ [ 'a', 'b' ],
|
|
\ [ 'x', 'y', 'z', 'error', 'warning' ]
|
|
\ ]
|
|
'';
|
|
}
|
|
vim-visual-multi
|
|
{
|
|
plugin = fzf-vim;
|
|
config = ''
|
|
map ; :Files<CR>
|
|
'';
|
|
}
|
|
(
|
|
pkgs.vimUtils.buildVimPlugin {
|
|
pname = "firenvim";
|
|
src = inputs.firenvim;
|
|
# yes im stupid
|
|
version = builtins.readFile (pkgs.runCommandNoCC "firenvim-version" { } ''
|
|
${pkgs.jq}/bin/jq -j .version < ${inputs.firenvim}/package.json > $out
|
|
'');
|
|
})
|
|
vim-gitgutter
|
|
];
|
|
extraConfig = ''
|
|
set encoding=utf-8
|
|
set hidden
|
|
set nobackup
|
|
set nowritebackup
|
|
set cmdheight=2
|
|
set updatetime=200
|
|
set shortmess+=c
|
|
" maybe should be number?
|
|
set signcolumn=yes
|
|
|
|
set clipboard+=unnamedplus
|
|
set mouse=a
|
|
|
|
map <Tab> :bnext<CR>
|
|
map <S-Tab> :bprev<CR>
|
|
'';
|
|
};
|
|
|
|
ezpcusr.uploadScript = pkgs.writeScript "upload_file.sh" ''
|
|
#!${pkgs.zsh}/bin/zsh
|
|
fileid=$(${pkgs.pwgen}/bin/pwgen 16 1)
|
|
|
|
filename=$(basename $1)
|
|
extension=$(echo "''${filename##*.}" | awk '{gsub(/^ +| +$/,"")} {print $0}')
|
|
if [[ "$extension" = "$filename" ]] then
|
|
extension=$(grep "$(file -b --mime-type $1)" ${mimeTypes} | awk '{print $2}')
|
|
fi
|
|
|
|
rsync -a --chmod=664 "$1" "wizbos.club:~/public/uploads/$fileid.$extension"
|
|
echo "https://p.gen2.space/uploads/$fileid.$extension"
|
|
'';
|
|
|
|
fonts.favFont = {
|
|
name = "Anonymice Nerd Font";
|
|
package = pkgs.nerdfonts.override { fonts = [ "AnonymousPro" ]; };
|
|
size = 11;
|
|
};
|
|
|
|
colors.baseColors = {
|
|
base00 = "282936";
|
|
base01 = "3a3c4e";
|
|
base02 = "4d4f68";
|
|
base03 = "626483";
|
|
base04 = "62d6e8";
|
|
base05 = "e9e9f4";
|
|
base06 = "f1f2f8";
|
|
base07 = "f7f7fb";
|
|
base08 = "ea51b2";
|
|
base09 = "b45bcf";
|
|
base0A = "00f769";
|
|
base0B = "ebff87";
|
|
base0C = "a1efe4";
|
|
base0D = "62d6e8";
|
|
base0E = "b45bcf";
|
|
base0F = "00f769";
|
|
};
|
|
|
|
services.gpg-agent = {
|
|
enableSshSupport = true;
|
|
enableExtraSocket = true;
|
|
};
|
|
|
|
home.sessionVariables = {
|
|
FZF_DEFAULT_COMMAND = "${pkgs.fd}/bin/fd --type f";
|
|
};
|
|
|
|
programs.fish.shellAliases = {
|
|
bp = "npm version patch && npm publish && git push";
|
|
sc = "${sc}";
|
|
};
|
|
|
|
xdg.configFile."nvim-qt/nvim-qt.conf".text = ''
|
|
ext_tabline=false
|
|
ext_popupmenu=false
|
|
'';
|
|
|
|
programs.git = {
|
|
signing.key = "70420458F2C01295";
|
|
signing.signByDefault = true;
|
|
enable = true;
|
|
lfs.enable = true;
|
|
userName = "notgne2";
|
|
userEmail = "gen2@gen2.space";
|
|
ignores = [ ".envrc" ];
|
|
};
|
|
}
|