{ config, pkgs, pkgs-small, nix-colors, username, ... }: let in { imports = [ nix-colors.homeManagerModules.default ./modules/dunst.nix ./modules/waybar.nix ./modules/ranger.nix ./hyperland ]; colorScheme = nix-colors.colorSchemes.gruvbox-material-dark-hard; # TODO please change the username & home directory to your own home.username = "${username}"; home.homeDirectory = "/home/${username}"; # Packages that should be installed to the user profile. home.packages = with pkgs; [ pkgs-small.kitty eza git git-lfs obsidian jq direnv kdePackages.okular zip ant tmux nixd # Nix language server for vscode nixfmt-rfc-style signal-desktop teams-for-linux slack jetbrains-toolbox nextcloud-client pkgs-small.presenterm font-awesome nerd-fonts.jetbrains-mono nerd-fonts.caskaydia-cove nerd-fonts.fira-code (pkgs.appimageTools.wrapType2 { name = "atlassify"; pname = "atlassify"; version = "1.17.0"; src = fetchurl { url = "https://github.com/setchy/atlassify/releases/download/v1.17.0/Atlassify-1.17.0.AppImage"; hash = "sha256-mfcxrd9axnmQMofth1M5ov2a4ppFE0ga0Gxjwbx2v9o="; }; extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ libsecret ]; }) (pkgs.stdenv.mkDerivation { pname = "flowkeeper"; version = "0.9.1"; src = pkgs.fetchurl { url = "https://github.com/flowkeeper-org/fk-desktop/releases/download/v0.9.1/Flowkeeper"; sha256 = "sha256-HCEG7LSM7h2Yz6BbvQ0KdmfYnKZOG+TZxMvE5o8gYiA="; }; dontUnpack = true; installPhase = '' install -Dm755 $src $out/bin/flowkeeper ''; meta = { description = "Flowkeeper time tracker"; platforms = pkgs.lib.platforms.linux; }; }) ]; programs.ssh = { enable = true; extraConfig = '' Host * IdentityAgent "~/.1password/agent.sock" ''; }; programs.git = { enable = true; lfs.enable = true; }; programs.bash = { enable = true; historyIgnore = [ "l" "ls" "ll" "cd" "exit" ]; historyControl = [ "erasedups" ]; shellAliases = { grep = "grep --color=auto"; ".." = "cd .."; "cdm" = "cd ~/mibex-plugins/monorepo"; }; initExtra = '' # Custom colored bash prompt PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' ''; profileExtra = '' # Include user's private bin if present if [ -d "$HOME/.local/bin" ] ; then PATH="$HOME/.local/bin:$PATH" fi ''; }; programs.atuin = { enable = true; settings = { auto_sync = true; sync_frequency = "5m"; sync_address = "https://atuin.christianott.ch"; search_mode = "fuzzy"; }; }; programs.starship = { enable = true; enableBashIntegration = true; }; # This value determines the home Manager release that your # configuration is compatible with. This helps avoid breakage # when a new home Manager release introduces backwards # incompatible changes. # # You can update home Manager without changing this value. See # the home Manager release notes for a list of state version # changes in each release. home.stateVersion = "23.11"; # Let home Manager install and manage itself. # programs.home-manager.enable = true; }