diff options
| author | schererleander <leander@schererleander.de> | 2026-02-05 12:03:07 +0100 |
|---|---|---|
| committer | schererleander <leander@schererleander.de> | 2026-02-05 15:19:41 +0100 |
| commit | 3b13d9a2a367db84d48940460532c17a374bb488 (patch) | |
| tree | 599110a39c4baecf3991fe9a58d0103a43c38896 /modules/home | |
| parent | 46aa4842b98d9215baca00060c233f386a0c2188 (diff) | |
feat(modules): use dendritic pattern
Diffstat (limited to 'modules/home')
| -rw-r--r-- | modules/home/browsers/firefox/default.nix | 273 | ||||
| -rw-r--r-- | modules/home/cli/opencode/default.nix | 26 | ||||
| -rw-r--r-- | modules/home/cli/tmux/default.nix | 50 | ||||
| -rw-r--r-- | modules/home/editors/neovim/default.nix | 65 | ||||
| -rw-r--r-- | modules/home/editors/neovim/init.lua | 239 | ||||
| -rw-r--r-- | modules/home/editors/vscode/default.nix | 139 | ||||
| -rw-r--r-- | modules/home/editors/zed/default.nix | 52 | ||||
| -rw-r--r-- | modules/home/git/default.nix | 82 | ||||
| -rw-r--r-- | modules/home/gpg/default.nix | 62 | ||||
| -rw-r--r-- | modules/home/media/jellyfin-mpv-shim/default.nix | 38 | ||||
| -rw-r--r-- | modules/home/media/mpv/default.nix | 67 | ||||
| -rw-r--r-- | modules/home/media/nixcord/default.nix | 31 | ||||
| -rw-r--r-- | modules/home/media/spicetify/default.nix | 39 | ||||
| -rw-r--r-- | modules/home/productivity/anki/default.nix | 24 | ||||
| -rw-r--r-- | modules/home/productivity/latex/default.nix | 43 | ||||
| -rw-r--r-- | modules/home/shells/bash/default.nix | 40 | ||||
| -rw-r--r-- | modules/home/shells/zsh/default.nix | 72 | ||||
| -rw-r--r-- | modules/home/terminal/kitty.nix | 33 | ||||
| -rw-r--r-- | modules/home/zathura/default.nix | 37 |
19 files changed, 0 insertions, 1412 deletions
diff --git a/modules/home/browsers/firefox/default.nix b/modules/home/browsers/firefox/default.nix deleted file mode 100644 index 2cb0656..0000000 --- a/modules/home/browsers/firefox/default.nix +++ /dev/null @@ -1,273 +0,0 @@ -{ - pkgs, - inputs, - config, - lib, - ... -}: -let - - cfg = config.nx.browsers.firefox; - inherit (lib) - mkEnableOption - mkOption - types - mkIf - optionalString - optionalAttrs - ; -in -{ - - options.nx.browsers.firefox = { - enable = mkEnableOption "mozilla firefox"; - blockGoogle = mkOption { - description = "blocks google banner and other"; - type = types.bool; - default = true; - }; - transparent = mkOption { - description = "make firefox transparent"; - type = types.bool; - default = false; - }; - cleanHome = mkOption { - description = "clean up firefox home"; - type = types.bool; - default = true; - }; - hideRecommendations = mkOption { - description = "hide firefox recommendations"; - type = types.bool; - default = true; - }; - disablePasswordManager = mkOption { - description = "disable built-in browser password manager"; - type = types.bool; - default = true; - }; - }; - - config = mkIf cfg.enable { - programs.firefox = { - enable = true; - profiles.default = { - extensions = { - packages = with inputs.firefox-addons.packages.${pkgs.stdenv.hostPlatform.system}; [ - ublock-origin - istilldontcareaboutcookies - sponsorblock - decentraleyes - vimium-c - ]; - - force = true; - - settings."uBlock0@raymondhill.net".settings = { - UserMessaging = { - uiTheme = "dark"; - uiAccentCustom = true; - uiAccentCustom0 = "#2C2C2C"; - cloudStorageEnabled = false; - contextMenuEnabled = false; - }; - # Block annoying login with google banner - userFilters = optionalString cfg.blockGoogle '' - ||accounts.google.com/gsi/* - ''; - }; - }; - - search = { - default = "DuckDuckGo"; - engines = { - nix-packages = { - name = "Nix Packages"; - urls = [ - { - template = "https://search.nixos.org/packages"; - params = [ - { - name = "type"; - value = "packages"; - } - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = [ "@np" ]; - }; - - nixos-wiki = { - name = "NixOS Wiki"; - urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ]; - iconMapObj."16" = "https://wiki.nixos.org/favicon.ico"; - definedAliases = [ "@nw" ]; - }; - - bing.metaData.hidden = true; - google.metaData.alias = "@g"; - }; - force = true; - }; - - userChrome = optionalString cfg.transparent '' - /* Hide Back, Forward, Reload, Stop, All Tabs, Firefox View buttons */ - #back-button, - #forward-button, - #reload-button, - #stop-button, - #alltabs-button, - #firefox-view-button { - display: none !important; - } - - .titlebar-buttonbox-container { - display: none; - } - - #tabbrowser-tabs { - border-inline: none !important; - } - - /* Transparent background tabs (above url bar) */ - #navigator-toolbox { - -moz-appearance: -moz-vibrant-titlebar !important; - background: rgba(0, 0, 0, 0.8) !important; - } - - /* Transparent background (behind url bar) */ - #nav-bar { - background: none !important; - box-shadow: none !important; - border-top: 0px !important; - } - - .tab-background[selected="true"] { - background-color: #393e43 !important; - background-image: none !important; - } - - .tab-background { - background-color: var(--background) !important; - color: var(--foreground) !important; - box-shadow: none !important;; - } - - .tab-background[selected] { - background-color: rgba(0, 0, 0, 0.30) !important; - color: var(--foreground) !important; - box-shadow: none !important; - } - - /* Needed for transparency in general */ - :root { - --tabpanel-background-color: transparent !important; - --chrome-content-separator-color: transparent !important; - --toolbar-bgcolor: rgba(0, 0, 0, 0.9) !important; - --newtab-background-color: rgba(0, 0, 0, 0.9) !important; - --newtab-background-color-secondary: transparent !important; - --toolbar-field-background-color: rgba(120, 120, 120, 0.10) !important; - } - ''; - userContent = optionalString cfg.transparent '' - @-moz-document url-prefix("about:"), url("about:home") { - /* Transparent about:settings about:config about:policies */ - :root { - background: rgba(0, 0, 0, 0.0) !important; - } - } - - /* Transparent about:home */ - * { - --newtab-background-color: transparent !important; - --newtab-background-color-secondary: transparent !important; - } - - /* Transparent elements in about:* */ - * { - --in-content-page-background: transparent !important; - --background-color-box: rgba(0, 0, 0, 0.5) !important; - } - ''; - }; - - policies = { - DisableTelemetry = true; - DisableFirefoxStudies = true; - PasswordManagerEnabled = !cfg.disablePasswordManager; - OfferToSaveLogins = !cfg.disablePasswordManager; - DisplayBookmarksToolbar = "never"; - NoDefaultBookmarks = true; - - Homepage = optionalAttrs cfg.cleanHome { - URL = "about:blank"; - Locked = true; - StartPage = "homepage"; - }; - - NewTabPage = !cfg.cleanHome; - - PictureInPicture = { - Enabled = false; - }; - - EnableTrackingProtection = { - Value = true; - Locked = true; - Cryptomining = true; - Fingerprinting = true; - }; - - EncryptedMediaExtensions = { - Enabled = true; - Locked = true; - }; - - FirefoxHome = { - Search = true; - TopSites = true; - SponsoredTopSites = !cfg.cleanHome; - Highlights = true; - Pocket = !cfg.cleanHome; - SponsoredPocket = !cfg.cleanHome; - Locked = true; - }; - - UserMessaging = { - ExtensionRecommendations = !cfg.hideRecommendations; - FeatureRecommendations = !cfg.hideRecommendations; - Locked = true; - MoreFromMozilla = !cfg.hideRecommendations; - SkipOnboarding = true; - UrlbarInterventions = !cfg.hideRecommendations; - }; - - Preferences = { - # Disable fullscreen notification - "full-screen-api.warning.timeout" = "0"; - - # Disable annoying translation popup - "browser.translations.automaticallyPopup" = false; - - # Enable all extensions automatically - "extensions.autoDisableScopes" = 0; - - # Hide ctr-tab tab preview menu - "browser.ctrlTab.sortByRecentlyUsed" = false; - } - // optionalAttrs cfg.transparent { - # transparency - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "browser.tabs.allow_transparent_browser" = true; - "gfx.webrender.all" = true; - }; - }; - }; - }; -} diff --git a/modules/home/cli/opencode/default.nix b/modules/home/cli/opencode/default.nix deleted file mode 100644 index 48be861..0000000 --- a/modules/home/cli/opencode/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - config, - lib, - ... -}: -let - cfg = config.nx.cli.opencode; - inherit (lib) mkEnableOption mkIf; -in -{ - - options.nx.cli.opencode = { - enable = mkEnableOption "opencode open source ai coding agent"; - }; - - config = mkIf cfg.enable { - programs.opencode = { - enable = true; - settings = { - theme = "system"; - share = "disabled"; - autoupdate = false; - }; - }; - }; -} diff --git a/modules/home/cli/tmux/default.nix b/modules/home/cli/tmux/default.nix deleted file mode 100644 index 989851c..0000000 --- a/modules/home/cli/tmux/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: -let - inherit (lib) mkEnableOption mkIf; - cfg = config.nx.cli.tmux; - -in -{ - options.nx.cli.tmux = { - enable = mkEnableOption "tmux"; - }; - config = mkIf cfg.enable { - programs.tmux = { - enable = true; - keyMode = "vi"; - secureSocket = true; - terminal = "xterm-256color"; - extraConfig = '' - unbind C-b - set-option -g prefix C-a - bind-key C-a send-prefix - bind -n M-Left select-pane -L - bind -n M-Right select-pane -R - bind -n M-Up select-pane -U - bind -n M-Down select-pane -D - - # style - set -g status-position top - set -g status-justify absolute-centre - set -g status-style 'fg=color7 bg=default' - set -g status-right "" - # set -g status-right ' #(cd #{pane_current_path}; git rev-parse --abbrev-ref HEAD)' - # set -g status-right "" - set -g status-left '#S' - set -g status-left-style 'fg=color8' - set -g status-right-length 0 - set -g status-left-length 100 - setw -g window-status-current-style 'fg=colour6 bg=default bold' - setw -g window-status-current-format '#I:#W ' - setw -g window-status-style 'fg=color8' - - set -g mouse on - ''; - }; - }; -} diff --git a/modules/home/editors/neovim/default.nix b/modules/home/editors/neovim/default.nix deleted file mode 100644 index ef97f89..0000000 --- a/modules/home/editors/neovim/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -let - inherit (lib) mkEnableOption mkIf optionals; - cfg = config.nx.editors.neovim; -in -{ - options.nx.editors.neovim = { - enable = mkEnableOption "Neovim editor"; - }; - - config = mkIf cfg.enable { - programs.neovim = { - defaultEditor = true; - enable = true; - package = pkgs.neovim-unwrapped; - extraPackages = - with pkgs; - [ - tree-sitter - git - ripgrep - fd - gcc - ] - ++ (optionals true [ pkgs.gopls ]) - ++ (optionals true [ - pkgs.nil - pkgs.nixfmt - ]) - ++ (optionals true [ pkgs.lua-language-server ]) - ++ (optionals true [ pkgs.texlab ]) - ++ (optionals true [ pkgs.tinymist ]); - - plugins = with pkgs.vimPlugins; [ - gruvbox-nvim - mini-starter - gitsigns-nvim - nvim-autopairs - telescope-nvim - fidget-nvim - plenary-nvim - nvim-treesitter.withAllGrammars - nvim-lspconfig - nvim-cmp - cmp-nvim-lsp - cmp-buffer - cmp-path - cmp-cmdline - luasnip - cmp_luasnip - lspkind-nvim - ]; - - extraConfig = '' - luafile ${./init.lua} - ''; - }; - }; -} diff --git a/modules/home/editors/neovim/init.lua b/modules/home/editors/neovim/init.lua deleted file mode 100644 index 141eb3c..0000000 --- a/modules/home/editors/neovim/init.lua +++ /dev/null @@ -1,239 +0,0 @@ --- General settings -vim.g.mapleader = " " -vim.o.number = true -vim.o.relativenumber = true -vim.o.signcolumn = "yes" -vim.o.termguicolors = true -vim.o.wrap = false -vim.o.tabstop = 2 -vim.o.shiftwidth = 2 -vim.o.updatetime = 250 -vim.o.timeoutlen = 300 -vim.o.swapfile = false -vim.o.ignorecase = true -vim.o.smartcase = true -vim.o.winborder = "rounded" -vim.o.clipboard = "unnamedplus" - -local map = vim.keymap.set -map('n', '<leader>o', '<CMD>update<BAR>source %<CR>', { desc = 'Save & reload init.lua' }) -map('n', '<leader>w', '<CMD>write<CR>') -map('n', '<leader>q', '<CMD>quit<CR>') - - -require("mini.starter").setup({ - header = table.concat({ - " /l、 ", - "(゚、 。 7 ", - " l ~ ヽ ", - " じしf_,)ノ ", - }, "\n"), - footer = "", - content_hooks = { - require("mini.starter").gen_hook.adding_bullet("» "), - require("mini.starter").gen_hook.aligning("center", "center"), - }, -}) - -require("gitsigns").setup() -require("nvim-autopairs").setup() -require("fidget").setup() - -vim.cmd("colorscheme gruvbox") - -local hl = vim.api.nvim_set_hl -hl(0, 'Normal', { bg = 'none' }) -hl(0, 'NormalFloat', { bg = 'none' }) -hl(0, 'NormalNC', { bg = 'none' }) -hl(0, 'StatusLine', { bg = 'none' }) -hl(0, 'SignColumn', { bg = 'none' }) -hl(0, "DiagnosticError", { bg = "none" }) -hl(0, "DiagnosticSignError", { bg = "none" }) -hl(0, "DiagnosticSignHint", { bg = "none" }) -hl(0, "DiagnosticSignInfo", { bg = "none" }) -hl(0, "DiagnosticSignWarn", { bg = "none" }) - -hl(0, "Pmenu", { bg = "none" }) -hl(0, "PmenuSel", { bg = "none" }) -hl(0, "FloatBorder", { bg = "none" }) - -local status_ok, configs = pcall(require, "nvim-treesitter.configs") -if status_ok then - configs.setup({ - highlight = { enable = true }, - indent = { enable = true }, - }) -end - -local builtin = require('telescope.builtin') -local map = vim.keymap.set -map('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' }) -map('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' }) -map('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' }) -map('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' }) - - -local cmp = require("cmp") -cmp.setup({ - snippet = { - expand = function(args) - require('luasnip').lsp_expand(args.body) - end, - }, - mapping = cmp.mapping.preset.insert({ - ['<C-b>'] = cmp.mapping.scroll_docs(-4), - ['<C-f>'] = cmp.mapping.scroll_docs(4), - ['<C-Space>'] = cmp.mapping.complete(), - ['<C-e>'] = cmp.mapping.abort(), - ['<CR>'] = cmp.mapping.confirm({ select = true }), - ['<Tab>'] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - else - fallback() - end - end, { 'i', 's' }), - ['<S-Tab>'] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - else - fallback() - end - end, { 'i', 's' }), - }), - sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - { name = 'luasnip' }, - }, { - { name = 'buffer' }, - }) -}) - --- Add parentheses after selecting function or method -local cmp_autopairs = require('nvim-autopairs.completion.cmp') -cmp.event:on( - 'confirm_done', - cmp_autopairs.on_confirm_done() -) - -local capabilities = require('cmp_nvim_lsp').default_capabilities() - -vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('UserLspConfig', {}), - callback = function(ev) - local opts = { buffer = ev.buf, noremap = true, silent = true } - vim.keymap.set('n', '<leader>lf', function() vim.lsp.buf.format { async = true } end, opts) - end, -}) - --- Format on save for all languages with LSP support -vim.api.nvim_create_autocmd('BufWritePre', { - group = vim.api.nvim_create_augroup('FormatOnSave', {}), - callback = function() - local clients = vim.lsp.get_clients({ bufnr = 0 }) - for _, client in ipairs(clients) do - if client.supports_method('textDocument/formatting') then - vim.lsp.buf.format({ async = false }) - return - end - end - end, -}) - --- Native LSP setup (Neovim v0.11+) -vim.lsp.config('nixd', { - cmd = { 'nixd' }, - capabilities = capabilities, - settings = { - nixd = { - formatting = { - command = { "nixfmt" }, - }, - }, - }, -}) - -vim.lsp.config('nil_ls', { - cmd = { 'nil' }, - capabilities = capabilities, - settings = { - ['nil'] = { - nix = { - flake = { - autoArchive = true, - }, - }, - }, - }, -}) - -vim.lsp.config('lua_ls', { - cmd = { 'lua-language-server' }, - capabilities = capabilities, - settings = { - Lua = { - runtime = { - version = 'LuaJIT', - }, - diagnostics = { - globals = { 'vim', 'require' }, - }, - workspace = { - library = vim.api.nvim_get_runtime_file("", true), - }, - telemetry = { - enable = false, - }, - }, - }, -}) - -vim.lsp.config('pyright', { - cmd = { 'pyright-langserver', '--stdio' }, - capabilities = capabilities, -}) - -vim.lsp.config('tailwindcss', { - cmd = { 'tailwindcss-language-server', '--stdio' }, - capabilities = capabilities, -}) - -vim.lsp.config('gopls', { - cmd = { 'gopls' }, - capabilities = capabilities, - settings = { - gopls = { - analyses = { - unusedparams = true, - unusedwrite = true, - }, - staticcheck = true, - }, - }, -}) - -vim.lsp.config('rust_analyzer', { - cmd = { 'rust-analyzer' }, - capabilities = capabilities, -}) - -vim.lsp.config('ts_ls', { - cmd = { 'typescript-language-server', '--stdio' }, - capabilities = capabilities, -}) - --- Enable all configured servers -vim.lsp.enable('nixd') -vim.lsp.enable('nil_ls') -vim.lsp.enable('lua_ls') -vim.lsp.enable('pyright') -vim.lsp.enable('tailwindcss') -vim.lsp.enable('gopls') -vim.lsp.enable('rust_analyzer') -vim.lsp.enable('ts_ls') - -vim.diagnostic.config({ - virtual_text = { source = "if_many" }, - underline = true, - severity_sort = true, -}) diff --git a/modules/home/editors/vscode/default.nix b/modules/home/editors/vscode/default.nix deleted file mode 100644 index 9762d92..0000000 --- a/modules/home/editors/vscode/default.nix +++ /dev/null @@ -1,139 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -let - inherit (lib) - mkEnableOption - mkOption - types - mkIf - optionals - ; - cfg = config.nx.editors.vscode; -in -{ - options.nx.editors.vscode = { - enable = mkEnableOption "vscode editor"; - - useVSCodium = mkOption { - description = "Use vscodium instead of vscode"; - type = types.bool; - default = false; - }; - - theme = mkOption { - description = "Theme to use for vscode"; - type = types.enum [ - "minimal" - "dark" - "light" - ]; - default = "minimal"; - }; - - langs = { - cmake = mkOption { - description = "enable cmake integration"; - type = types.bool; - default = false; - }; - docker = mkOption { - description = "enable docker integration"; - type = types.bool; - default = false; - }; - python = mkOption { - description = "enable python integration"; - type = types.bool; - default = false; - }; - go = mkOption { - description = "enable go integration"; - type = types.bool; - default = false; - }; - rust = mkOption { - description = "enable rust integration"; - type = types.bool; - default = false; - }; - java = mkOption { - description = "enable java integration"; - type = types.bool; - default = false; - }; - lua = mkOption { - description = "enable lua integration"; - type = types.bool; - default = false; - }; - tailwindcss = mkOption { - description = "enable tailwindcss integration"; - type = types.bool; - default = false; - }; - }; - }; - - config = mkIf cfg.enable { - programs.vscode = { - enable = true; - package = if cfg.useVSCodium then pkgs.vscodium else pkgs.vscode; - mutableExtensionsDir = false; - profiles.default = { - enableUpdateCheck = true; - enableExtensionUpdateCheck = true; - - userSettings = { - "update.mode" = "none"; - "workbench.colorTheme" = - if cfg.theme == "minimal" then - "Minimal" - else if cfg.theme == "dark" then - "Default Dark Modern" - else - "Default Light Modern"; - "editor.fontFamily" = "monospace"; - "editor.tabSize" = 2; - "editor.minimap.enabled" = false; - "terminal.integrated.cursorStyle" = "underline"; - "terminal.integrated.cursorStyleInactive" = "underline"; - "terminal.integrated.fontFamily" = "monospace"; - "terminal.integrated.fontSize" = 13; - "git.autofetch" = true; - "window.controlsStyle" = "custom"; - }; - - extensions = - with pkgs.vscode-extensions; - [ - github.copilot - adpyke.codesnap - esbenp.prettier-vscode - ] - ++ (optionals cfg.langs.cmake [ ms-vscode.cmake-tools ]) - ++ (optionals cfg.langs.docker [ ms-azuretools.vscode-docker ]) - ++ (optionals cfg.langs.python [ ms-python.python ]) - ++ (optionals cfg.langs.go [ golang.go ]) - ++ (optionals cfg.langs.rust [ rust-lang.rust-analyzer ]) - ++ (optionals cfg.langs.java [ vscjava.vscode-maven ]) - ++ (optionals cfg.langs.lua [ sumneko.lua ]) - ++ (optionals cfg.langs.tailwindcss [ bradlc.vscode-tailwindcss ]) - ++ (optionals (cfg.theme == "minimal") ( - pkgs.vscode-utils.extensionsFromVscodeMarketplace [ - { - name = "minimalist-dark"; - publisher = "nichabosh"; - version = "1.0.0"; - sha256 = "sha256-lw+Scfada6DycLdRT2Cz+Fd12JucglIrw3uRd2ZhabQ="; - } - ] - )); - }; - }; - }; -} diff --git a/modules/home/editors/zed/default.nix b/modules/home/editors/zed/default.nix deleted file mode 100644 index 95c3be0..0000000 --- a/modules/home/editors/zed/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ - config, - lib, - ... -}: - -let - inherit (lib) mkEnableOption mkIf; - cfg = config.nx.editors.zed-editor; -in -{ - options.nx.editors.zed-editor = { - enable = mkEnableOption "zed editor"; - }; - - config = mkIf cfg.enable { - programs.zed-editor = { - enable = true; - extensions = [ "nix" ]; - userSettings = { - telemetry = { - metrics = false; - }; - title_bar = { - show_onboarding_banner = false; - show_project_items = false; - show_branch_name = false; - show_user_menu = false; - }; - tab_bar.show = false; - toolbar.quick_actions = false; - status_bar."experimental.show" = false; - project_panel = { - dock = "right"; - default_width = 400; - hide_root = true; - auto_fold_dirs = false; - starts_open = false; - git_status = false; - sticky_scroll = false; - scrollbar.show = "never"; - indent_guides.show = "never"; - }; - outline_panel = { - default_width = 300; - indent_guides.show = "never"; - }; - file_finder.modal_max_width = "large"; - }; - }; - }; -} diff --git a/modules/home/git/default.nix b/modules/home/git/default.nix deleted file mode 100644 index 2d0855e..0000000 --- a/modules/home/git/default.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ - config, - lib, - ... -}: -let - cfg = config.nx.programs.git; - inherit (lib) - mkEnableOption - mkOption - mkIf - types - ; -in -{ - options.nx.programs.git = { - enable = mkEnableOption "git"; - - userName = mkOption { - description = "Git username"; - type = types.str; - default = "Leander Scherer"; - }; - - userEmail = mkOption { - description = "Git email"; - type = types.str; - default = "leander@schererleander.de"; - }; - - signKey = mkOption { - description = "Sign key"; - type = types.nullOr types.str; - default = "A3502B180BC1D41A"; - }; - - signFlavor = mkOption { - description = "Sign key flavor"; - type = types.enum [ - "ssh" - "openpgp" - ]; - default = "openpgp"; - }; - }; - - config = mkIf cfg.enable { - programs.git = { - enable = true; - - signing = mkIf (cfg.signKey != null) { - key = cfg.signKey; - signByDefault = true; - }; - - ignores = [ - "*~" - ".DS_Store" - ".direnv" - ".envrc" - ]; - - settings = { - user.name = cfg.userName; - user.email = cfg.userEmail; - help.autocorrect = 20; - alias = { - st = "status"; - co = "checkout"; - br = "branch"; - }; - pull.rebase = true; - gpg.format = cfg.signFlavor; - url."git@github.com:".insteadOf = "https://github.com"; - }; - }; - programs.diff-highlight = { - enable = true; - enableGitIntegration = true; - }; - }; -} diff --git a/modules/home/gpg/default.nix b/modules/home/gpg/default.nix deleted file mode 100644 index af08ae3..0000000 --- a/modules/home/gpg/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -let - inherit (lib) - mkOption - types - mkIf - ; - cfg = config.nx.programs.gpg; -in -{ - - options.nx.programs.gpg = { - enable = mkOption { - description = "GNU Privacy Guard"; - type = types.bool; - default = config.nx.programs.git.enable; - }; - - gpgKey = mkOption { - description = "default gpg key"; - type = types.nullOr types.str; - default = ""; - }; - - pinentry = mkOption { - description = "pinentry flavor"; - type = types.enum [ - "curses" - "gnome3" - "qt" - "mac" - ]; - default = if pkgs.stdenv.isDarwin then "mac" else "curses"; - }; - }; - - config = lib.mkIf cfg.enable { - programs.gpg = { - enable = true; - #settings.default-key = mkIf (cfg.gpgKey != null) cfg.gpgKey; - }; - - services.gpg-agent = { - enable = true; - pinentry.package = - if cfg.pinentry == "gnome3" then - pkgs.pinentry-gnome3 - else if cfg.pinentry == "qt" then - pkgs.pinentry-qt - else if cfg.pinentry == "mac" then - pkgs.pinentry_mac - else - pkgs.pinentry-curses; - }; - }; -} diff --git a/modules/home/media/jellyfin-mpv-shim/default.nix b/modules/home/media/jellyfin-mpv-shim/default.nix deleted file mode 100644 index 6594a70..0000000 --- a/modules/home/media/jellyfin-mpv-shim/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ config, lib, ... }: -let - cfg = config.nx.media.jellyfin-mpv-shim; - inherit (lib) mkEnableOption mkIf optionalAttrs; -in -{ - options.nx.media.jellyfin-mpv-shim = { - enable = mkEnableOption "Jellyfin MPV Shim"; - }; - - config = mkIf cfg.enable { - systemd.user.services.jellyfin-mpv-shim.Service.Environment = [ - "ENABLE_HDR_WSI=1" - ]; - - services.jellyfin-mpv-shim = { - enable = true; - settings = { - player_name = "mpv-shim"; - allow_transcode_to_h256 = true; - }; - mpvConfig = { - vo = "gpu-next"; - gpu-api = "vulkan"; - target-colorspace-hint = "yes"; - target-peak = 500; - } - // (optionalAttrs false { - target-trc = "pq"; - target-prim = "bt.2020"; - #target-peak = 406; - #tone-mapping = "spline"; - #tone-mapping-mode = "rgb"; - inverse-tone-mapping = "yes"; - }); - }; - }; -} diff --git a/modules/home/media/mpv/default.nix b/modules/home/media/mpv/default.nix deleted file mode 100644 index f6ac360..0000000 --- a/modules/home/media/mpv/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ config, lib, ... }: -let - cfg = config.nx.media.mpv; - inherit (lib) - mkEnableOption - types - optional - mkIf - mkOption - ; -in -{ - options.nx.media.mpv = { - enable = mkEnableOption "a free, open source, and cross-platform media player"; - hdrExpansion = mkEnableOption "SDR to HDR inverse tone mapping"; - targetPeak = mkOption { - description = "Peak brightness of the display"; - type = types.int; - default = 500; # For MO27Q28G - }; - }; - config = mkIf cfg.enable { - programs.mpv = { - enable = true; - config = { - vo = "gpu-next"; - gpu-api = "vulkan"; - target-peak = cfg.targetPeak; - target-colorspace-hint = "yes"; - }; - profiles = { - # Dolby Vision profile - "DOVI" = { - profile-restore = "copy"; - profile-cond = "p[\"video-dec-params/gamma\"] == \"auto\""; - target-trc = "pq"; - target-prim = "bt.2020"; - target-peak = cfg.targetPeak; - tone-mapping-mode = "auto"; - }; - - # SDR look while in HDR - "SDR" = { - profile-restore = "copy"; - target-trc = "pq"; - target-prim = "bt.2020"; - target-peak = 207; - tone-mapping = "bt.2390"; - tone-mapping-mode = "rgb"; - inverse-tone-mapping = "yes"; - }; - - # SDR to HDR inverse tone mapping - "SDR_HDR_EFFECT" = { - profile-restore = "copy"; - target-trc = "pq"; - target-prim = "bt.2020"; - target-peak = 406; - tone-mapping = "spline"; - tone-mapping-mode = "rgb"; - inverse-tone-mapping = "yes"; - }; - }; - defaultProfiles = optional cfg.hdrExpansion "HDR_MODE:SDR_HDR_EFFECT"; - }; - }; -} diff --git a/modules/home/media/nixcord/default.nix b/modules/home/media/nixcord/default.nix deleted file mode 100644 index e2390a3..0000000 --- a/modules/home/media/nixcord/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - config, - lib, - ... -}: -let - cfg = config.nx.media.nixcord; - inherit (lib) mkEnableOption mkIf; -in -{ - options.nx.media.nixcord = { - enable = mkEnableOption "nixcord and setup"; - }; - config = mkIf cfg.enable { - programs.nixcord = { - enable = true; - config = { - themeLinks = [ - "https://refact0r.github.io/system24/theme/system24.theme.css" - ]; - frameless = true; - plugins = { - alwaysAnimate.enable = false; - imageLink.enable = true; - imageZoom.enable = true; - translate.enable = true; - }; - }; - }; - }; -} diff --git a/modules/home/media/spicetify/default.nix b/modules/home/media/spicetify/default.nix deleted file mode 100644 index e72f7f3..0000000 --- a/modules/home/media/spicetify/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - config, - lib, - pkgs, - inputs, - ... -}: - -let - spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; - cfg = config.nx.media.spicetify; - inherit (lib) mkEnableOption mkIf; -in -{ - options.nx.media.spicetify = { - enable = mkEnableOption "Command-line tool to customize the official Spotify client"; - }; - - config = mkIf cfg.enable { - nixpkgs.config.allowUnfree = true; - programs.spicetify = { - enable = true; - enabledSnippets = with spicePkgs.snippets; [ - pointer - sonicDancing - modernScrollbar - nyanCatProgressBar - declutterNowPlayingBar - ]; - - enabledExtensions = with spicePkgs.extensions; [ - keyboardShortcut - ]; - - theme = spicePkgs.themes.sleek; - colorScheme = "Coral"; - }; - }; -} diff --git a/modules/home/productivity/anki/default.nix b/modules/home/productivity/anki/default.nix deleted file mode 100644 index 6a95f83..0000000 --- a/modules/home/productivity/anki/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - config, - lib, - ... -}: -let - cfg = config.nx.productivity.anki; - inherit (lib) mkEnableOption mkIf; -in -{ - options.nx.productivity.anki = { - enable = mkEnableOption "Anki free and open-source flashcard program"; - }; - config = mkIf cfg.enable { - programs.anki = { - enable = true; - #style = "native"; - #addons = with pkgs.ankiAddons; [ - # anki-connect - # review-heatmap - #]; - }; - }; -} diff --git a/modules/home/productivity/latex/default.nix b/modules/home/productivity/latex/default.nix deleted file mode 100644 index 6f37138..0000000 --- a/modules/home/productivity/latex/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - config, - options, - pkgs, - lib, - ... -}: -let - cfg = config.nx.productivity.latex; - inherit (lib) mkEnableOption mkIf; -in -{ - options.nx.productivity.latex = { - enable = mkEnableOption "LaTeX typesetting system"; - }; - - config = mkIf cfg.enable { - programs.texlive = { - enable = true; - # See https://mynixos.com/search?q=texlivepackages.collection for more collections - # and https://mynixos.com/search?q=texlivepackages for more individual packages. - extraPackages = tpkgs: { - inherit (tpkgs) - collection-basic - collection-latex - collection-latexrecommended - biblatex - ; - }; - }; - - home.packages = with pkgs; [ - biber - ]; - - programs.pandoc = { - enable = true; - defaults = { - pdf-engine = "pdfetex"; - }; - }; - }; -} diff --git a/modules/home/shells/bash/default.nix b/modules/home/shells/bash/default.nix deleted file mode 100644 index d224442..0000000 --- a/modules/home/shells/bash/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -let - inherit (lib) mkEnableOption mkIf; - cfg = config.nx.shells.bash; -in -{ - options.nx.shells.bash = { - enable = mkEnableOption "bash shell"; - }; - - config = mkIf cfg.enable { - home.packages = with pkgs; [ - zoxide - ]; - - programs.bash = { - enable = true; - enableCompletion = true; - initExtra = '' - # view man pages with nvim - export MANPAGER="nvim +Man!" - - # vim keybindings - set -o vi - - # zoxide smarter cd command - eval "$(zoxide init bash)" - ''; - shellAliases = { - ls = "ls --color=auto"; - }; - }; - }; -} diff --git a/modules/home/shells/zsh/default.nix b/modules/home/shells/zsh/default.nix deleted file mode 100644 index 5da67c9..0000000 --- a/modules/home/shells/zsh/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -let - inherit (lib) mkEnableOption mkIf; - cfg = config.nx.shells.zsh; -in -{ - options.nx.shells.zsh = { - enable = mkEnableOption "zsh shell"; - }; - - config = mkIf cfg.enable { - home.packages = with pkgs; [ - zoxide - ]; - - programs.zsh = { - enable = true; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - initContent = '' - # view man pages with nvim - export MANPAGER="nvim +Man!" - - # Directory completion with trailing slash - zstyle ':completion:*' list-dirs-first true - zstyle ':completion:*' special-dirs true - zstyle ':completion:*' squeeze-slashes true - zstyle ':completion:*' add-space false - - # Case-insensitive completion - zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' - # vim keybindings - bindkey -v - - # Auto cd - type directory name to cd into it - setopt AUTO_CD - - # Complete .. to ../ for directory navigation - setopt AUTO_PARAM_SLASH - - # zoxide smarter cmd command - eval "$(zoxide init zsh)" - ''; - shellAliases = { - ls = "ls --color=auto"; - }; - - zplug = { - enable = true; - plugins = [ - { name = "mafredri/zsh-async"; } - { - name = "sindresorhus/pure"; - tags = [ - "as:theme" - "use:pure.zsh" - ]; - } - { name = "zdharma-continuum/fast-syntax-highlighting"; } - { name = "zsh-users/zsh-autosuggestions"; } - ]; - }; - }; - }; -} diff --git a/modules/home/terminal/kitty.nix b/modules/home/terminal/kitty.nix deleted file mode 100644 index 35d5648..0000000 --- a/modules/home/terminal/kitty.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - config, - lib, - ... -}: - -{ - options.nx.terminal.kitty.enable = lib.mkEnableOption "Enable kitty"; - config = lib.mkIf config.nx.terminal.kitty.enable { - programs.kitty = { - enable = true; - shellIntegration.enableFishIntegration = true; - font = { - name = "monospace"; - size = 11; - }; - settings = { - cursor_shape = "underline"; - cursor_blink_interval = "-1"; - cursor_stop_blinking_after = "15.0"; - - background_opacity = "0.3"; - - enable_audio_bell = false; - bell_on_tab = false; - - window_border_width = "0"; - window_margin_width = "4"; - window_padding_width = "5"; - }; - }; - }; -} diff --git a/modules/home/zathura/default.nix b/modules/home/zathura/default.nix deleted file mode 100644 index 2334fc7..0000000 --- a/modules/home/zathura/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ - config, - lib, - ... -}: -let - cfg = config.nx.programs.zathura; - inherit (lib) mkEnableOption mkIf; -in -{ - options.nx.programs.zathura = { - enable = mkEnableOption "zathura document viewer"; - }; - - config = mkIf cfg.enable { - programs.zathura = { - enable = true; - options = { - recolor-lightcolor = "rgba(0, 0, 0, 0)"; - recolor-darkcolor = "rgba(255, 255, 255, 1)"; - recolor = true; - adjust-open = "width"; - guioptions = "none"; - zoom-center = true; - page-padding = 0; - pages-per-row = 1; - scroll-page-aware = true; - }; - - mappings = { - i = "recolor"; - j = "navigate previous"; - k = "navigate next"; - }; - }; - }; -} |
