{ config, lib, pkgs, ... }: let sources = import ./npins; background-path = ".config/sway/background.png"; sway_config = pkgs.substitute { src = ./home/sway_config; substitutions = [ "--replace" "@backgroundImagePath@" "${config.home.homeDirectory}/${background-path}" ]; }; in { home = { file = { ${background-path}.source = config.stylix.image; ".profile".enable = false; }; homeDirectory = "/home/${config.home.username}"; packages = [ pkgs.aaaaxy #pkgs.acpi (pkgs.callPackage "${sources.agenix}/pkgs/agenix.nix" {}) #pkgs.alacritty pkgs.anki #(import "${sources.anki-cli}/package.nix") #pkgs.c3term #pkgs.brightnessctl #pkgs.dust pkgs.fluffychat #pkgs.fzf #pkgs.gdb pkgs.glow #pkgs.grim #pkgs.hexdump pkgs.http-server #pkgs.jmtpfs pkgs.mindustry-wayland #pkgs.nasm pkgs.nix-output-monitor pkgs.npins #pkgs.pciutils #pkgs.ranger pkgs.rip2 #pkgs.ripgrep #pkgs.slurp #pkgs.tokei #pkgs.tree #pkgs.usbutils #pkgs.wget #pkgs.xxd ]; stateVersion = "26.05"; username = "andromeda"; }; imports = [ (import sources.nvf).homeManagerModules.nvf (import sources.stylix).homeModules.stylix ]; programs = { firefox = { enable = true; package = pkgs.firefox.override { cfg.enableTridactylNative = true; }; profiles.default = { extensions = { force = true; packages = [(import sources.NUR {inherit pkgs;}).repos.rycee.firefox-addons.tridactyl]; }; settings = { "extensions.autoDisableScopes" = 0; "intl.accepted_languages" = "de_DE"; }; }; }; gh.enable = true; gpg.enable = true; home-manager.enable = true; nvf = { enable = true; settings.vim = { startPlugins = [pkgs.vimPlugins.parinfer-rust]; autocomplete.nvim-cmp.enable = false; formatter.conform-nvim = { enable = true; setupOpts.format_on_save = { lsp_format = "fallback"; timeout_ms = 5000; }; }; lsp.otter-nvim.enable = true; git.enable = true; keymaps = [ { key = ""; mode = ["i" "n" "v" "c"]; action = ""; } { key = ""; mode = ["i" "n" "v" "c"]; action = ""; } { key = ""; mode = ["i" "n" "v" "c"]; action = ""; } { key = ""; mode = ["i" "n" "v" "c"]; action = ""; } { key = "jj"; mode = ["i"]; action = ""; } { key = "kk"; mode = ["i"]; action = ""; } { key = "jk"; mode = ["i"]; action = ""; } { key = "kj"; mode = ["i"]; action = ""; } { key = ""; mode = ["i"]; action = ""; } ]; languages = { nix = { enable = true; format.enable = true; lsp.enable = true; }; haskell = { enable = true; lsp.enable = true; }; rust = { enable = true; format.enable = true; lsp.enable = true; treesitter.enable = true; }; }; lineNumberMode = "relative"; options = { tabstop = 2; shiftwidth = 2; expandtab = true; smarttab = true; foldmethod = "indent"; number = true; colorcolumn = "80"; }; statusline.lualine.enable = true; syntaxHighlighting = true; }; }; ssh.enable = true; }; services.gpg-agent = { enable = true; pinentry.package = pkgs.pinentry-curses; }; stylix = { base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-hard.yaml"; enable = true; fonts = { emoji = { name = "Noto Color Emoji"; package = pkgs.noto-fonts-color-emoji; }; monospace = { name = "Miracode"; package = pkgs.miracode; }; serif = config.stylix.fonts.sansSerif; sizes = { applications = 10; terminal = 10; }; }; image = "${pkgs.nixos-artwork.wallpapers.gear}/share/backgrounds/nixos/nix-wallpaper-gear.png"; polarity = "dark"; cursor = { name = "Hackneyed"; package = pkgs.hackneyed; size = 16; }; }; wayland.windowManager.sway.enable = true; xdg = { configFile = { "sway/config".source = lib.mkForce sway_config; }; portal = { enable = true; extraPortals = [pkgs.xdg-desktop-portal-shana]; }; }; }