234 lines
6 KiB
Nix
234 lines
6 KiB
Nix
inputs: {
|
|
options,
|
|
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";
|
|
};
|
|
in {
|
|
home.packages = with pkgs; [
|
|
bat
|
|
fzf
|
|
xclip
|
|
alejandra
|
|
pwgen
|
|
ncdu
|
|
zip
|
|
];
|
|
|
|
programs =
|
|
{
|
|
home-manager.enable = true;
|
|
|
|
zed-editor = {
|
|
extensions = [
|
|
"elm"
|
|
"nix"
|
|
];
|
|
extraPackages = with pkgs; [package-version-server];
|
|
userKeymaps = [
|
|
{
|
|
context = "vim_mode == normal";
|
|
bindings = {
|
|
"tab" = "pane::ActivateNextItem";
|
|
"shift-tab" = "pane::ActivatePrevItem";
|
|
};
|
|
}
|
|
];
|
|
userSettings = {
|
|
vim_mode = true;
|
|
show_whitespaces = "boundary";
|
|
soft_wrap = "editor_width";
|
|
load_direnv = "shell_hook";
|
|
telemetry = {
|
|
diagnostics = false;
|
|
metrics = false;
|
|
};
|
|
node = {
|
|
path = lib.getExe pkgs.nodejs;
|
|
npm_path = lib.getExe' pkgs.nodejs "npm";
|
|
};
|
|
languages.Nix.formatter.external = {
|
|
command = "alejandra";
|
|
arguments = ["--quiet" "--"];
|
|
};
|
|
lsp = {
|
|
elm-language-server.initialization_options = {
|
|
"elmReviewDiagnostics" = "warning";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
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
|
|
transparent-nvim
|
|
{
|
|
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>
|
|
'';
|
|
}
|
|
firenvim
|
|
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>
|
|
'';
|
|
};
|
|
|
|
git = {
|
|
signing.key = null;
|
|
signing.signByDefault = true;
|
|
iniContent = {
|
|
gpg.format = "ssh";
|
|
gpg.ssh.defaultKeyCommand = toString (pkgs.writeShellScript "git-ssh-key" ''
|
|
echo -n 'key::'
|
|
${pkgs.openssh}/bin/ssh-add -L | ${pkgs.gnugrep}/bin/grep -v 'no-touch-required'
|
|
'');
|
|
};
|
|
enable = true;
|
|
lfs.enable = true;
|
|
userName = "notgne2";
|
|
userEmail = "gen2@gen2.space";
|
|
ignores = [".envrc"];
|
|
extraConfig.push.autoSetupRemote = true;
|
|
};
|
|
}
|
|
// (lib.optionalAttrs (options.programs ? nixcord) {
|
|
nixcord = {
|
|
package = pkgs.vencord;
|
|
|
|
discord.enable = false;
|
|
|
|
vesktop = {
|
|
enable = true;
|
|
package = pkgs.vesktop;
|
|
};
|
|
|
|
config = {
|
|
transparent = true;
|
|
frameless = true;
|
|
disableMinSize = true;
|
|
# enabledThemes = [];
|
|
plugins = {
|
|
ircColors.enable = true;
|
|
whoReacted.enable = true;
|
|
alwaysTrust.enable = true;
|
|
anonymiseFileNames = {
|
|
enable = true;
|
|
anonymiseByDefault = true;
|
|
consistent = "file";
|
|
method = "consistent";
|
|
};
|
|
newGuildSettings = {
|
|
enable = true;
|
|
|
|
messages = "only@Mentions";
|
|
|
|
everyone = true;
|
|
role = true;
|
|
events = true;
|
|
};
|
|
copyEmojiMarkdown = {
|
|
enable = true;
|
|
};
|
|
fakeNitro = {
|
|
enableEmojiBypass = false;
|
|
enableStickerBypass = false;
|
|
enableStreamQualityBypass = true;
|
|
};
|
|
noPendingCount = {
|
|
enable = true;
|
|
hideFriendRequestsCount = true;
|
|
hideMessageRequestCount = true;
|
|
hidePremiumOffersCount = true;
|
|
};
|
|
platformIndicators.enable = true;
|
|
userVoiceShow.enable = true;
|
|
};
|
|
};
|
|
dorion = {
|
|
enable = false;
|
|
package = pkgs.dorion;
|
|
|
|
theme = "stylix";
|
|
themes = ["stylix"];
|
|
|
|
useNativeTitlebar = true;
|
|
|
|
# theme = "dark";
|
|
# zoom = "1.1";
|
|
blur = "acrylic"; # "none", "blur", or "acrylic"
|
|
sysTray = true;
|
|
openOnStartup = false;
|
|
# autoClearCache = true;
|
|
# rpcServer = true;
|
|
rpcProcessScanner = true;
|
|
pushToTalk = true;
|
|
pushToTalkKeys = ["RControl"];
|
|
desktopNotifications = true;
|
|
unreadBadge = true;
|
|
};
|
|
};
|
|
});
|
|
|
|
home.sessionVariables = {
|
|
FZF_DEFAULT_COMMAND = "${pkgs.fd}/bin/fd --type f";
|
|
};
|
|
|
|
xdg.configFile."nvim-qt/nvim-qt.conf".text = ''
|
|
ext_tabline=false
|
|
ext_popupmenu=false
|
|
'';
|
|
}
|