{ config, pkgs, lib, ... }: { home.username = "muhh"; home.homeDirectory = "/home/muhh"; home.packages = with pkgs; [ # # It is sometimes useful to fine-tune packages, for example, by applying # # overrides. You can do that directly here, just don't forget the # # parentheses. Maybe you want to install Nerd Fonts with a limited number of # # fonts? # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) # # You can also create simple shell scripts directly inside your # # configuration. For example, this adds a command 'my-hello' to your # # environment: # (pkgs.writeShellScriptBin "my-hello" '' # echo "Hello, ${config.home.username}!" # '') _1password _1password-gui brightnessctl curl distrobox git neovide (nerdfonts.override { fonts = [ "Iosevka" ]; }) obsidian qutebrowser tmux wget wl-clipboard zellij zulip-term ]; # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. home.file = { # # Building this configuration will create a copy of 'dotfiles/screenrc' in # # the Nix store. Activating the configuration will then make '~/.screenrc' a # # symlink to the Nix store copy. # ".screenrc".source = dotfiles/screenrc; # # You can also set the file content immediately. # ".gradle/gradle.properties".text = '' # org.gradle.console=verbose # org.gradle.daemon.idletimeout=3600000 # ''; }; # You can also manage environment variables but you will have to manually # source # # ~/.nix-profile/etc/profile.d/hm-session-vars.sh # # or # # /etc/profiles/per-user/muhh/etc/profile.d/hm-session-vars.sh # # if you don't want to manage your shell through Home Manager. home.sessionVariables = { EDITOR = "nvim"; }; programs = { atuin = { enable = true; enableFishIntegration = true; }; bat = { enable = true; config.theme = "Catppuccin-mocha"; themes = { Catppuccin-mocha = { src = pkgs.fetchFromGitHub { owner = "catppuccin"; repo = "bat"; rev = "main"; sha256 = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw="; }; file = "Catppuccin-mocha.tmTheme"; }; }; }; btop = { enable = true; }; fish = { enable = true; loginShellInit = '' if test (tty) = /dev/tty1 exec sway end ''; shellAliases = { cat = "bat"; }; }; fzf = { enable = true; enableFishIntegration = true; }; git = { enable = true; userEmail = "markus@heurung.net"; userName = "Markus Heurung"; extraConfig = { apply.whitespace = "warn"; color = { diff = "auto"; status = "auto"; branch = "auto"; ui = "always"; }; fetch.prune = true; init.defaultBranch = "main"; pull.ff = "only"; push.default = "current"; status.submodule = "1"; user.useConfigOnly = true; }; delta = { enable = true; options = { light = false; line-numbers = true; navigate = true; }; }; ignores = [ "*~" ".DS_Store" ".sublime-*" "*.swp" ]; }; keychain = { enable = true; enableFishIntegration = true; }; kitty = { enable = true; shellIntegration.enableFishIntegration = true; font = { name = "Iosevka Nerd Font"; size = 14; }; keybindings = { "ctrl+shift+g" = "show_last_command_output"; "ctrl+alt+enter" = "launch --cwd=current"; "ctrl+alt+t" = "launch --type=tab --cwd=current"; "ctrl+h" = "neighboring_window left"; "ctrl+j" = "neighboring_window bottom"; "ctrl+k" = "neighboring_window top"; "ctrl+l" = "neighboring_window right"; "ctrl+shift+h" = "move_window left"; "ctrl+shift+j" = "move_window down"; "ctrl+shift+k" = "move_window up"; "ctrl+shift+l" = "move_window right"; "ctrl+shift+z" = "next_layout"; }; settings = { background_opacity = "0.95"; dynamic_background_opacity = true; enabled_layouts = "tall:bias=50;full_size=1"; scrollback_lines = 10000; scrollback_pager_history_size = 4096; strip_trailing_space = "smart"; tab_bar_min_tabs = 1; tab_bar_edge = "bottom"; tab_powerline_style = "slanted"; tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}"; }; theme = "Catppuccin-Mocha"; }; lsd = { enable = true; enableAliases = true; }; nixvim = { enable = true; vimAlias = true; viAlias = true; clipboard.providers.wl-copy.enable = true; colorschemes = { catppuccin = { enable = true; flavour = "mocha"; showBufferEnd = true; }; }; globals.mapleader = " "; globals.maplocalleader = " "; keymaps = [ { key = "ff"; action = "Telescope find_files"; } { key = "fg"; action = "Telescope live_grep"; } { key = "fb"; action = "Telescope buffers"; } { key = "fh"; action = "Telescope help_tags"; } { key = "\\"; action = "Neotree toggle"; } ]; options = { expandtab = true; ignorecase = true; number = true; relativenumber = true; shiftwidth = 2; smartcase = true; tabstop = 2; }; plugins = { lightline.enable = true; gitblame.enable = true; gitsigns.enable = true; lsp = { enable = true; servers = { }; }; neo-tree = { enable = true; enableGitStatus = true; gitStatusAsync = true; enableModifiedMarkers = true; closeIfLastWindow = true; }; /* obsidian = { enable = true; dir = "~/muhhmory"; dailyNotes = { folder = "~/muhhmory/Journal/Daily Pages"; template = "Daily Page.md"; }; templates = { subdir = "Templates"; }; }; */ surround.enable = true; telescope = { enable = true; extensions = { file_browser.enable = true; fzf-native.enable = true; }; }; }; extraPlugins = with pkgs.vimPlugins; [ vim-nix ]; }; ripgrep.enable = true; starship = { enable = true; enableFishIntegration = true; }; swaylock.enable = true; zoxide = { enable = true; }; }; services = { espanso = { enable = true; package = pkgs.espanso-wayland; matches = { base = { matches = [ { trigger = ";dat"; replace = "{{mydate}}"; vars = [ { name = "mydate"; type = "date"; params.format = "%F"; } ]; } ]; }; }; }; playerctld.enable = true; swayidle = { enable = true; }; }; wayland.windowManager = { sway = { enable = true; config = { gaps = { smartBorders = "on"; }; input = { "type:keyboard" = { xkb_variant = "eu"; xkb_options = "compose:ralt"; }; "type:touchpad" = { tap = "enabled"; natural_scroll = "enabled"; dwt = "enabled"; accel_profile = "adaptive"; pointer_accel = "0.5"; }; }; keybindings = let modifier = config.wayland.windowManager.sway.config.modifier; in lib.mkOptionDefault { "XF86AudioRaiseVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"; "XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"; "XF86AudioMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; "XF86MonBrightnessUp" = "exec brightnessctl set 10%+"; "XF86MonBrightnessDown" = "exec brightnessctl set 10%-"; "XF86AudioPlay" = "exec playerctl play-pause"; "XF86AudioNext" = "exec playerctl next"; "XF86AudioPrev" = "exec playerctl previous"; }; modifier = "Mod4"; seat = { "*" = { hide_cursor = "5000"; }; }; terminal = "kitty"; window = { titlebar = false; }; }; }; }; # leave things below alone. home.stateVersion = "23.05"; programs.home-manager.enable = true; }