dotfiles/home.nix

94 lines
2.5 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
2023-05-03 00:43:33 +02:00
chromeArgs = lib.strings.concatStringsSep " " [
"--force-dark-mode"
"--enable-features=WebUIDarkMode"
"--enable-smooth-scrolling"
"--ozone-platform-hint=auto"
"--ignore-gpu-blocklist"
"--enable-gpu-rasterization"
"--enable-zero-copy"
];
2023-05-01 21:07:37 +02:00
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-03 00:43:33 +02:00
imports = map (n: "${./programs}/${n}")
(builtins.attrNames (builtins.readDir ./programs));
2023-05-02 22:47:01 +02:00
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
2023-05-03 00:43:33 +02:00
(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-03 01:25:19 +02:00
(pkgs.writeShellScriptBin "ssh-fix-permissions" (builtins.readFile ./scripts/ssh-fix-permissions.sh))
(pkgs.writeShellScriptBin "yt-dlp-audio" (builtins.readFile ./scripts/yt-dlp-audio.sh))
2023-05-01 00:26:39 +02:00
];
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
}