Move some stuff to modules
This commit is contained in:
parent
61640c0580
commit
08b0fbcd0c
30 changed files with 427 additions and 406 deletions
276
home-manager/default.nix
Normal file
276
home-manager/default.nix
Normal file
|
@ -0,0 +1,276 @@
|
|||
{ pkgs, lib, config, inputs, flake, ... }: {
|
||||
imports = [
|
||||
./neovim
|
||||
./firefox
|
||||
./tidal.nix
|
||||
./gnome.nix
|
||||
./gnome.nix
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
inputs.nix-index-database.hmModules.nix-index
|
||||
];
|
||||
|
||||
xsession.enable = true;
|
||||
|
||||
xdg = {
|
||||
userDirs.enable = true;
|
||||
|
||||
mimeApps = {
|
||||
enable = true;
|
||||
|
||||
defaultApplications =
|
||||
let
|
||||
applications = {
|
||||
telegram = {
|
||||
mimeApp = "org.telegram.desktop.desktop";
|
||||
mimeTypes = [ "x-scheme-handler/tg" ];
|
||||
};
|
||||
|
||||
librewolf = {
|
||||
mimeApp = "librewolf.desktop";
|
||||
|
||||
mimeTypes = [
|
||||
"x-scheme-handler/http"
|
||||
"text/html"
|
||||
"application/xhtml+xml"
|
||||
"x-scheme-handler/https"
|
||||
"application/pdf"
|
||||
];
|
||||
};
|
||||
|
||||
gnomeTextEditor = {
|
||||
mimeApp = "org.gnome.TextEditor.desktop";
|
||||
mimeTypes = [ "text/plain" ];
|
||||
};
|
||||
|
||||
loupe = {
|
||||
mimeApp = "org.gnome.Loupe.desktop";
|
||||
mimeTypes = [
|
||||
"image/jpeg"
|
||||
"image/png"
|
||||
"image/gif"
|
||||
"image/webp"
|
||||
"image/tiff"
|
||||
"image/x-tga"
|
||||
"image/vnd-ms.dds"
|
||||
"image/x-dds"
|
||||
"image/bmp"
|
||||
"image/vnd.microsoft.icon"
|
||||
"image/vnd.radiance"
|
||||
"image/x-exr"
|
||||
"image/x-portable-bitmap"
|
||||
"image/x-portable-graymap"
|
||||
"image/x-portable-pixmap"
|
||||
"image/x-portable-anymap"
|
||||
"image/x-qoi"
|
||||
"image/svg+xml"
|
||||
"image/svg+xml-compressed"
|
||||
"image/avif"
|
||||
"image/heic"
|
||||
"image/jxl"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
mimeTypesForApp = { mimeApp, mimeTypes }: map
|
||||
(
|
||||
mimeType: { "${mimeType}" = mimeApp; }
|
||||
)
|
||||
mimeTypes;
|
||||
in
|
||||
lib.zipAttrs (lib.flatten (map mimeTypesForApp (builtins.attrValues applications)));
|
||||
};
|
||||
};
|
||||
|
||||
home = {
|
||||
username = "pim";
|
||||
homeDirectory = "/home/pim";
|
||||
stateVersion = "23.05";
|
||||
|
||||
packages = (with pkgs; [
|
||||
jellyfin-media-player
|
||||
virt-manager
|
||||
]) ++ (with pkgs.unstable; [
|
||||
attic-client
|
||||
dbeaver-bin
|
||||
devenv
|
||||
bottles-unwrapped
|
||||
gimp
|
||||
hexchat
|
||||
impression
|
||||
insomnia
|
||||
keepassxc
|
||||
krita
|
||||
libreoffice
|
||||
# logseq # Has insecure electron dependency
|
||||
moonlight-qt
|
||||
nicotine-plus
|
||||
qFlipper
|
||||
signal-desktop
|
||||
strawberry
|
||||
telegram-desktop
|
||||
vlc
|
||||
vorta
|
||||
wireshark
|
||||
# nheko # Has insecure olm dependency
|
||||
handbrake
|
||||
feishin
|
||||
]);
|
||||
};
|
||||
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
chromium.enable = true;
|
||||
bat.enable = true;
|
||||
|
||||
fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
alacritty = {
|
||||
enable = true;
|
||||
settings.shell = {
|
||||
program = lib.getExe config.programs.tmux.package;
|
||||
args = [ "attach" ];
|
||||
};
|
||||
};
|
||||
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
|
||||
atuin = {
|
||||
enable = true;
|
||||
flags = [ "--disable-up-arrow" ];
|
||||
enableFishIntegration = true;
|
||||
|
||||
settings = {
|
||||
auto_sync = true;
|
||||
sync_frequency = "5m";
|
||||
sync_address = "https://atuin.kun.is";
|
||||
};
|
||||
};
|
||||
|
||||
fish = {
|
||||
enable = true;
|
||||
|
||||
interactiveShellInit = ''
|
||||
set -U fish_greeting
|
||||
'';
|
||||
|
||||
shellAbbrs = {
|
||||
htop = "btop";
|
||||
gp = "git push";
|
||||
gco = "git checkout";
|
||||
gd = "git diff";
|
||||
gc = "git commit";
|
||||
gpl = "git pull";
|
||||
gb = "git branch";
|
||||
ga = "git add";
|
||||
gl = "git log";
|
||||
gs = "git status";
|
||||
tf = "tofu";
|
||||
};
|
||||
};
|
||||
|
||||
starship = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableTransience = true;
|
||||
settings.nix_shell.heuristic = true;
|
||||
};
|
||||
|
||||
nix-index = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
tmux = {
|
||||
enable = true;
|
||||
shell = lib.getExe config.programs.fish.package;
|
||||
shortcut = "a";
|
||||
clock24 = true;
|
||||
newSession = true;
|
||||
mouse = true;
|
||||
escapeTime = 10;
|
||||
terminal = "screen-256color";
|
||||
|
||||
extraConfig = ''
|
||||
unbind _
|
||||
bind _ split-window -h
|
||||
unbind -
|
||||
bind - split-window -v
|
||||
unbind h
|
||||
bind h select-pane -L
|
||||
unbind j
|
||||
bind j select-pane -D
|
||||
unbind k
|
||||
bind k select-pane -U
|
||||
unbind l
|
||||
bind l select-pane -R
|
||||
'';
|
||||
};
|
||||
|
||||
ssh = {
|
||||
enable = true;
|
||||
extraConfig = "User root";
|
||||
|
||||
matchBlocks.github = lib.hm.dag.entryBefore [ "*" ] {
|
||||
hostname = "github.com";
|
||||
user = "pizzapim";
|
||||
identitiesOnly = true;
|
||||
};
|
||||
};
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Pim Kunis";
|
||||
userEmail = "pim@kunis.nl";
|
||||
|
||||
extraConfig = {
|
||||
push.autoSetupRemote = true;
|
||||
commit.verbose = true;
|
||||
pull.rebase = true;
|
||||
init.defaultBranch = "master";
|
||||
};
|
||||
};
|
||||
|
||||
# Currently, it is not possible to have Home Manager manage Liberwolf extensions.
|
||||
# There is a draft PR which addresses this:
|
||||
# https://github.com/nix-community/home-manager/pull/3339
|
||||
# The extensions I currently use are:
|
||||
# - ublock-origin (already installed by librewolf)
|
||||
# - cookie-autodelete
|
||||
# - clearurls
|
||||
# - istilldontcareaboutcookies
|
||||
# - keepassxc-browser
|
||||
# - redirector
|
||||
# - violentmonkey
|
||||
# - boring-rss
|
||||
# - kagi-search
|
||||
# - refined-github
|
||||
librewolf = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
"identity.fxaccounts.enabled" = true;
|
||||
"privacy.clearOnShutdown.history" = false;
|
||||
"privacy.clearOnShutdown.downloads" = false;
|
||||
"browser.translations.automaticallyPopup" = false;
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"privacy.clearOnShutdown.cookies" = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sops = {
|
||||
age.keyFile = "${config.xdg.configHome}/sops/age/keys.txt";
|
||||
defaultSopsFile = "${flake}/secrets/pim.yaml";
|
||||
|
||||
secrets = {
|
||||
"keepassxc".path = "${config.xdg.configHome}/keepassxc/keepassxc.ini";
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue