dotfiles

Artifact [dabd184ff7]
Login

Artifact [dabd184ff7]

Artifact dabd184ff714f18e17ae29d745d0e812f008fdd3:


{ lib, config, pkgs, ... }:
{
  # Let Home Manager install and manage itself.
  programs.home-manager.enable = true;
  nixpkgs.config.allowUnfree = true;

  imports = [ 
    ./lib/ipfs.nix
    ./lib/syncthing.nix
  ];

  home.packages = with pkgs; [
    # shell
    ripgrep

    # dev
    fd

    # comms
    element-desktop
    signal-desktop

    # media
    quodlibet-full

    # misc
    par2cmdline
    fossil
    xclip
  ];

  home.shellAliases = {
    "ls" = "${pkgs.exa}/bin/exa";
  };

  programs.broot.enable = true;
  programs.direnv.enable = true;

  programs.bash =  {
    enable = true;
    enableVteIntegration = true;
    historyFile = "${config.xdg.dataHome}/bash/history";
  };

  programs.zsh = {
    enable = true;
    dotDir = ".config/zsh";
    history.path  = "${config.xdg.dataHome}/zsh/history";
    initExtraFirst = builtins.readFile ./shell/.zshrc;
    oh-my-zsh = {
      enable = true;
      custom = "${config.xdg.configHome}/zsh/custom";
      plugins = [
        "scw"
        "sudo"
        "git"
        "zsh-syntax-highlighting" # MUST BE LAST!
        ];
      theme = "candy";
    };
  };
  xdg.configFile."zsh/custom".source = ./shell/zsh_custom;

  programs.tmux = {
    enable = true;
    extraConfig = ''
set -g status on
set -g pane-base-index 1
set -g base-index 1
set -g set-titles on
set -g default-terminal "screen-256color"
set-option -g set-titles-string "#{pane_current_command}"
set-option -g history-limit 1024
set-option -g visual-activity on
set-option -g status-position bottom
set-option -g renumber-windows on
set-window-option -g monitor-activity off

# Status
set -g status-left ""
set -g status-right "#[fg=colour176,bold,bg=colour236,bold] %B #[fg=colour146,bold,bg=colour236,bold]%d, #[fg=colour173,bold,bg=colour236,bold]%Y#[fg=default] #[fg=colour234,bold,bg=colour12,bold] %R "
set -g status-right-length 100
set -g status-bg default
setw -g window-status-format "#[fg=colour236,bold,bg=colour180,bold] #I #[fg=colour180,bold,bg=colour236,bold] #W "
setw -g window-status-current-format "#[fg=colour180,bold,bg=colour236,bold] #I #[fg=colour236,bold,bg=colour180,bold] #W "
    '';
  };

  home.file = {
    # dotfiles in the home directory
    ".config/nix/nix.conf".source = ./config/.config/nix/nix.conf;
  };
}