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 ''; } 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 :bnext map :bprev ''; }; 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 ''; }