nixfiles/home-manager/users/notgne2.nix
2025-11-20 12:15:48 -07:00

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
'';
}