dotfiles/user/home.nix

193 lines
4.4 KiB
Nix

{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "chris";
home.homeDirectory = "/home/chris";
# 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 = "22.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
programs.git = {
enable = true;
userName = "Chris Cochrun";
userEmail = "chris@cochrun.xyz";
};
home.packages = with pkgs; [
exa mpv yt-dlp rofi-emoji
nerdfonts latte-dock bat
libsForQt5.bismuth bc libnotify
rofi-wayland ripgrep
sysstat procs papirus-icon-theme
phinger-cursors plasma-hud kde-cli-tools
macchina meson ninja cmake gnumake
extra-cmake-modules gcc gzip
htop btop firefox kate kdialog openlp
easyeffects libreoffice-fresh vlc
neochat haskellPackages.greenclip
pulsemixer any-nix-shell wtype
spotdl kdenlive ffmpeg
];
programs.mu.enable = true;
# services.emacs = {
# enable = true;
# package = pkgs.emacsPgtkGcc;
# defaultEditor = true;
# };
programs.mbsync.enable = true;
programs.msmtp.enable = true;
services.mbsync.enable = true;
home.file.".mbsyncrc" = {
source = ./.mbsyncrc;
};
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
services.syncthing.enable = true;
services.kdeconnect.enable = true;
services.easyeffects.enable = true;
services.espanso = {
enable = true;
settings = {
matches = [
{ # dates
trigger = ":date";
replace = "{{mydate}}";
vars = [{
name = "mydate";
type = "date";
params = {format = "%m/%d/%Y";};
}];
}
{ # Shell commands
trigger = ":shell";
replace = "{{output}}";
vars = [{
name = "output";
type = "shell";
params = { cmd = "echo Hello from your shell";};
}];
}
{ # simple text
trigger = ":gml";
replace = "ccochrun21@gmail.com";
}
{
trigger = ":otl";
replace = "chris.cochrun@outlook.com";
}
{
trigger = ":tfcml";
replace = "chris@tfcconnection.org";
}
{
trigger = ":name";
replace = "Chris Cochrun";
}
];
};
};
home.file.".config/rofi" = {
source = ./rofi;
recursive = true;
};
programs.rbw.enable = true;
home.file.".config/rbw" = {
source = ./rbw;
recursive = true;
};
programs.fish.enable = true;
programs.fish.plugins = [
# {
# name = "oh-my-fish";
# src = pkgs.fetchFromGitHub {
# owner = "oh-my-fish";
# repo = "oh-my-fish";
# rev = "d428b723c8c18fef3b2a00b8b8b731177f483ad8";
# sha256 = "msItKEPe7uSUpDAfCfdYZjt5NyfM3KtOrLUTO9NGqlg=";
# };
# }
# {
# name = "plugin-foreign-env";
# src = pkgs.fetchFromGitHub {
# owner = "oh-my-fish";
# repo = "plugin-foreign-env";
# rev = "b3dd471bcc885b597c3922e4de836e06415e52dd";
# sha256 = "3h03WQrBZmTXZLkQh1oVyhv6zlyYsSDS7HTHr+7WjY8=";
# };
# }
];
home.file.".config/fish" = {
source = ./fish;
recursive = true;
};
programs.qutebrowser.enable = true;
home.file.".config/qutebrowser" = {
source = ./qutebrowser;
recursive = true;
};
home.file.".config/mpv" = {
source = ./mpv;
recursive = true;
};
home.file.".config/macchina" = {
source = ./macchina;
recursive = true;
};
home.file."scripts" = {
source = ./scripts;
recursive = true;
};
programs.starship.enable = true;
programs.zsh = {
enable = true;
enableAutosuggestions = true;
enableCompletion = true;
enableSyntaxHighlighting = true;
autocd = true;
dotDir = ".config/zsh";
shellAliases = {
ls = "exa -l";
la = "exa -la";
mpf = "mpv --profile=fast";
mps = "mpv --profile=slow";
ec = "emacsclient -t";
ecc = "emacsclient -c";
mkdir = "mkdir -pv";
upnix = "update-nix";
};
initExtra = ''
macchina
'';
};
}