dotfiles/home.nix

89 lines
2.4 KiB
Nix
Raw Normal View History

2023-05-01 00:26:39 +02:00
{ config, pkgs, lib, ... }:
2023-05-01 21:07:37 +02:00
let
chromeArgs =
"--force-dark-mode --enable-features=WebUIDarkMode --enable-smooth-scrolling --ozone-platform-hint=auto --ignore-gpu-blocklist --enable-gpu-rasterization --enable-zero-copy";
nixgl = import <nixgl> { };
nixGLWrap = pkg:
pkgs.runCommand "${pkg.name}-nixgl-wrapper" { } ''
mkdir $out
ln -s ${pkg}/* $out
rm $out/bin
mkdir $out/bin
for bin in ${pkg}/bin/*; do
wrapped_bin=$out/bin/$(basename $bin)
2023-05-02 21:34:51 +02:00
echo -e "#!/bin/bash\nexec ${lib.getExe nixgl.auto.nixGLDefault} $bin \$@" > $wrapped_bin
2023-05-01 21:07:37 +02:00
chmod +x $wrapped_bin
done
'';
2023-05-01 00:26:39 +02:00
in {
nixpkgs.config.allowUnfree = true;
targets.genericLinux.enable = true;
2023-05-01 21:07:37 +02:00
news.display = "silent";
2023-05-02 22:47:01 +02:00
imports = map (n: "${./programs}/${n}") (builtins.attrNames (builtins.readDir ./programs));
2023-05-01 00:26:39 +02:00
home = {
username = "thilo";
homeDirectory = "/home/thilo";
stateVersion = "22.11";
packages = [
pkgs.up
pkgs.rbenv
pkgs.cargo-update
pkgs.htop
pkgs.rustup
2023-05-01 21:07:37 +02:00
pkgs.nixfmt
2023-05-02 19:48:33 +02:00
pkgs.nodejs
pkgs.bun
pkgs.deno
pkgs.devbox
pkgs.tldr
pkgs.flutter
pkgs.direnv
(import (fetchTarball https://github.com/cachix/devenv/archive/v0.6.2.tar.gz)).default
2023-05-01 21:07:37 +02:00
(pkgs.nerdfonts.override {
fonts = [ "JetBrainsMono" "FiraCode" "FiraMono" ];
})
(nixGLWrap (pkgs.vivaldi.override {
2023-05-01 00:26:39 +02:00
proprietaryCodecs = true;
enableWidevine = true;
commandLineArgs = chromeArgs;
2023-05-01 21:07:37 +02:00
}))
(nixGLWrap
(pkgs.google-chrome.override { commandLineArgs = chromeArgs; }))
2023-05-01 00:26:39 +02:00
(pkgs.writeShellScriptBin "ssh-fix-permissions" ''
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
chmod 644 -f ~/.ssh/*.pub ~/.ssh/authorized_keys ~/.ssh/known_hosts
'')
];
file = {
".config/nano/nanorc".text = ''
set linenumbers
include "/usr/share/nano/*.nanorc"
'';
2023-05-01 00:26:39 +02:00
".ssh/config".source = ./dotfiles/ssh-config;
};
sessionVariables = {
2023-05-01 21:07:37 +02:00
2023-05-01 00:26:39 +02:00
};
activation = {
linkDesktopApplications = {
after = [ "writeBoundary" "createXdgUserDirectories" ];
before = [ ];
data = ''
2023-05-01 21:07:37 +02:00
for dir in ${config.home.homeDirectory}/.nix-profile/share/applications/*; do
chmod +x $(realpath $dir) -v
done
2023-05-01 00:26:39 +02:00
'';
};
};
2023-05-01 21:07:37 +02:00
};
2023-05-01 00:26:39 +02:00
xdg = {
enable = true;
mime.enable = true;
};
2023-05-02 22:47:01 +02:00
programs.home-manager.enable = true;
2023-05-01 21:07:37 +02:00
}