{ config, osConfig, pkgs, lib, ... }: let isGnomeEnabled = osConfig.my.desktop.enableGnome; in lib.mkMerge [ { home.packages = with pkgs; [ keepassxc insync telegram-desktop simple-scan wireguard-tools element-desktop iotop lsof wirelesstools thefuck alejandra arduino uucp screen kdiff3 youtube-music jetbrains-toolbox dotnet-sdk_8 cargo rustc gcc rustfmt clippy cargo-generate ]; programs = { home-manager.enable = true; fzf.enable = true; mangohud.enable = true; zsh = { initExtra = '' eval "$(direnv hook zsh)"; eval $(thefuck --alias); ''; shellAliases = { my-apply = "sudo nixos-rebuild boot"; my-switch = "sudo nixos-rebuild switch"; my-update = "sudo nixos-rebuild boot --upgrade"; my-pull = "git -C ~/Repos/nixos-configuration pull --rebase"; my-fmt = "alejandra ."; my-test = "sudo nixos-rebuild test"; my-direnvallow = "echo \"use nix\" > .envrc && direnv allow"; my-ip4 = "ip addr show | grep 192"; }; history = { size = 10000; path = "${config.xdg.dataHome}/zsh/history"; expireDuplicatesFirst = true; }; oh-my-zsh = { enable = true; theme = "agnoster"; plugins = ["git" "sudo" "docker" "systemadmin" "thefuck"]; }; }; git = { enable = true; userName = "Vinzenz Schroeter"; userEmail = "vinzenz.f.s@gmail.com"; aliases = { prettylog = "log --pretty=oneline --graph"; spring-clean = "!git branch --merged | xargs -n 1 -r git branch -d"; }; extraConfig = { pull.ff = "only"; merge.tool = "kdiff3"; push.autoSetupRemote = "true"; }; }; vscode = { enable = true; package = pkgs.vscodium; enableUpdateCheck = false; extensions = with pkgs.vscode-extensions; [ bbenoist.nix ms-python.python kamadorueda.alejandra #samuelcolvin.jinjahtml editorconfig.editorconfig #KnisterPeter.vscode-github yzhang.markdown-all-in-one redhat.vscode-yaml pkief.material-icon-theme mhutchie.git-graph rust-lang.rust-analyzer bungcip.better-toml ]; userSettings = { "git.autofetch" = true; "update.mode" = "none"; "editor.fontFamily" = "'Fira Code', 'Droid Sans Mono', 'monospace', monospace"; "editor.fontLigatures" = true; "editor.formatOnSave" = true; "editor.formatOnSaveMode" = "modificationsIfAvailable"; "editor.minimap.autohide" = true; "diffEditor.diffAlgorithm" = "advanced"; "explorer.excludeGitIgnore" = true; "markdown.extension.tableFormatter.normalizeIndentation" = true; "markdown.extension.toc.orderedList" = false; "telemetry.telemetryLevel" = "off"; "redhat.telemetry.enabled" = false; "workbench.startupEditor" = "readme"; "workbench.enableExperiments" = false; "workbench.iconTheme" = "material-icon-theme"; "rust-analyzer.checkOnSave.command" = "clippy"; "extensions.autoUpdate" = false; "extensions.autoCheckUpdates" = false; }; }; direnv = { enable = true; nix-direnv.enable = true; }; chromium = { enable = true; extensions = [ { # ublock origin id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } { id = "dcpihecpambacapedldabdbpakmachpb"; updateUrl = "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/updates.xml"; } ]; }; eza = { enable = true; git = true; icons = true; enableAliases = true; extraOptions = [ "--group-directories-first" "--header" ]; }; # checked https://rycee.gitlab.io/home-manager/options.html until "programs.notmuch" }; editorconfig = { enable = true; settings = { "*" = { charset = "utf-8"; end_of_line = "lf"; trim_trailing_whitespace = true; insert_final_newline = true; max_line_width = 120; indent_style = "space"; indent_size = 4; }; "*.nix" = { indent_size = 2; }; }; }; } (lib.mkIf isGnomeEnabled { home.packages = with pkgs; [ fractal ]; }) ]