nixos-config/users/erwin/home.nix

457 lines
12 KiB
Nix
Raw Normal View History

2024-02-05 11:46:52 +01:00
{
pkgs,
config,
lib,
inputs,
...
}:
with lib;
let
cfg = config.eboskma.users.erwin;
2024-01-10 21:56:44 +01:00
homeCfg = config.home-manager.users.erwin;
bt = config.eboskma.bluetooth;
in
{
2024-02-05 11:46:52 +01:00
config = mkIf cfg.home {
home-manager.users.erwin = {
_module.args.flake-inputs = inputs;
2024-02-05 11:46:52 +01:00
eboskma = {
programs = {
alacritty.enable = false;
anyrun.enable = true;
atuin.enable = true;
bat.enable = true;
cargo = {
enable = true;
settings = {
registries.crates-io = {
protocol = "sparse";
2023-03-13 15:42:44 +01:00
};
};
2024-02-05 11:46:52 +01:00
};
2023-03-13 15:42:44 +01:00
2024-02-05 11:46:52 +01:00
dropbox.enable = true;
dunst.enable = false;
emacs = {
enable = true;
package = pkgs.emacs-unstable-pgtk;
daemon = true;
};
electron = {
enable = true;
wayland = true;
};
eww = {
enable = true;
};
firefox = {
enable = true;
work = config.eboskma.base.work;
};
fish.enable = true;
foot = {
enable = true;
server = false;
};
git = {
enable = true;
name = "Erwin Boskma";
email = "erwin@datarift.nl";
signingKey = "~/.ssh/id_ed25519_sk_personal.pub";
signingKeyFormat = "ssh";
};
gpg.enable = true;
mpd.enable = true;
neovim.enable = true;
nnn.enable = true;
nushell.enable = true;
obs-studio.enable = true;
rclone = {
enable = true;
mounts = [
{
remote = "org-roam";
local = "/home/erwin/org-roam";
remoteConfig = {
type = "sftp";
host = "zh2088.rsync.net";
user = "zh2088";
key_file = "~/.ssh/id_ed25519-rsync.net";
md5sum_command = "md5 -r";
sha2sum_command = "sha1 -r";
};
2024-02-05 11:46:52 +01:00
}
];
};
2024-04-22 17:42:31 +02:00
river = {
enable = true;
wallpaper = "${homeCfg.home.homeDirectory}/.wallpapers/river-2560.png";
};
2024-02-05 11:46:52 +01:00
rofi = {
enable = true;
package = pkgs.rofi-wayland;
terminal = homeCfg.wayland.windowManager.sway.config.terminal;
};
vscode.enable = true;
solvespace.enable = true;
ssh.enable = true;
starship.enable = true;
sway = {
enable = true;
2024-03-26 15:06:20 +01:00
package = pkgs.swayfx;
2024-02-05 11:46:52 +01:00
lock-wallpaper = "${homeCfg.home.homeDirectory}/.wallpapers/river-2560.png";
output = {
"DP-2" = {
bg = "${homeCfg.home.homeDirectory}/.wallpapers/river-2560.png fill";
mode = "2560x1440@165Hz";
adaptive_sync = "on";
max_render_time = "2";
};
};
2024-02-05 11:46:52 +01:00
input = {
"36125:40349:splitkb.com_Kyria_rev1" = {
xkb_layout = "us";
2024-04-22 17:42:31 +02:00
xkb_variant = "altgr-intl";
2024-02-05 11:46:52 +01:00
xkb_options = "lv3:ralt_switch_multikey,eurosign:5";
};
"1133:49291:Logitech_G502_HERO_SE" = {
natural_scroll = "enabled";
};
2024-07-11 16:44:19 +02:00
"1390:268:ELECOM_TrackBall_Mouse_HUGE_TrackBall" = {
natural_scroll = "enabled";
};
};
2024-02-05 11:46:52 +01:00
};
swaynotificationcenter.enable = true;
tea = {
enable = true;
settings = {
logins = [
{
name = "datarift";
url = "https://git.datarift.nl";
token = "abc";
default = true;
ssh_host = "git.datarift.nl";
user = "erwin";
}
];
2022-11-17 14:06:39 +01:00
};
};
2024-02-05 11:46:52 +01:00
tmux.enable = true;
waybar = {
enable = true;
sway = true;
};
2024-02-05 11:46:52 +01:00
zathura.enable = true;
zellij = {
enable = true;
copyCommand = "${pkgs.wl-clipboard}/bin/wl-copy";
};
};
2024-02-05 11:46:52 +01:00
};
2024-02-05 11:46:52 +01:00
home = {
username = "erwin";
homeDirectory = "/home/erwin";
2024-03-11 17:51:52 +01:00
sessionVariables = {
EDITOR = "${config.home-manager.users.erwin.eboskma.programs.emacs.package}/bin/emacsclient -c";
};
2023-09-13 14:50:03 +02:00
2024-03-11 17:51:52 +01:00
stateVersion = "24.05";
2024-02-05 11:46:52 +01:00
packages =
with pkgs;
[
atool
inputs.attic.packages.${pkgs.system}.attic-client
# bitwarden
bitwarden-cli
2024-02-05 11:46:52 +01:00
blink1-tool
bottles
2024-02-05 11:46:52 +01:00
bottom
dconf
2024-05-22 16:45:06 +02:00
dbeaver-bin
2024-07-03 11:30:12 +02:00
doggo
2024-02-05 11:46:52 +01:00
easyeffects
element-desktop
fd
2024-07-11 16:43:29 +02:00
freecad
2024-02-05 11:46:52 +01:00
ffmpeg_5-full
helvum
imagemagick
(imv.override {
withBackends = [
"libtiff"
"libjpeg"
"libpng"
"librsvg"
"libheif"
];
})
2024-02-05 11:46:52 +01:00
iotop
# (jetbrains.clion.override { jdk = pkgs.jetbrains.jdk; })
2024-02-05 11:46:52 +01:00
kicad
kubectl
kubernetes-helm
libnotify
libreoffice-fresh
minio-client
mpv
nautilus
2024-02-23 11:36:15 +01:00
nheko
2024-03-06 08:17:22 +01:00
(noson.overrideAttrs (_: {
qtWrapperArgs = "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.libpulseaudio ]}";
}))
2024-02-05 11:46:52 +01:00
pamedia
pass
pavucontrol
povray
procs
prusa-slicer
qgis
remmina
ripgrep
sshfs
2024-02-05 11:46:52 +01:00
steam
steamcmd
steam-tui
2024-06-17 10:41:21 +02:00
super-slicer-beta
2024-02-05 11:46:52 +01:00
units
unzip
vial
xdg-utils
# wineWowPackages.waylandFull
# winetricks
2024-02-05 11:46:52 +01:00
wl-clipboard
zeal
2024-07-11 16:43:29 +02:00
zed-editor
2024-02-05 11:46:52 +01:00
]
++ (with gst_all_1; [
gstreamer
gstreamer.dev
gst-plugins-base
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
gst-libav
gst-vaapi
]);
2024-01-10 21:56:44 +01:00
2024-02-05 11:46:52 +01:00
pointerCursor = {
2024-07-11 16:44:36 +02:00
name = "catppuccin-mocha-dark-cursors";
2024-03-20 18:33:33 +01:00
package = pkgs.catppuccin-cursors.mochaDark;
2024-02-05 11:46:52 +01:00
gtk.enable = true;
x11.enable = true;
};
2024-01-10 21:56:44 +01:00
2024-02-05 11:46:52 +01:00
file = {
wallpapers = {
source = ../../wallpapers;
target = ".wallpapers";
recursive = true;
2024-01-10 21:56:44 +01:00
};
2023-09-13 14:50:03 +02:00
};
2024-02-05 11:46:52 +01:00
};
2024-02-05 11:46:52 +01:00
xdg = {
enable = true;
mime.enable = true;
mimeApps = {
enable = true;
2024-02-05 11:46:52 +01:00
defaultApplications = {
"x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop";
"x-scheme-handler/chrome" = "firefox.desktop";
"x-scheme-handler/terminal" = "${cfg.terminal}.desktop";
"text/html" = "firefox.desktop";
"application/x-extension-htm" = "firefox.desktop";
"application/x-extension-html" = "firefox.desktop";
"application/x-extension-shtml" = "firefox.desktop";
"application/xhtml+xml" = "firefox.desktop";
"application/x-extension-xhtml" = "firefox.desktop";
"application/x-extension-xht" = "firefox.desktop";
"application/pdf" = "org.pwmt.zathura-pdf-mupdf.desktop";
};
2024-02-05 11:46:52 +01:00
associations = {
added = {
"image/jpeg" = "imv.desktop";
"image/png" = "imv.desktop";
"image/gif" = "imv.desktop";
"application/zip" = "org.gnome.FileRoller.desktop";
};
};
};
2024-02-05 11:46:52 +01:00
userDirs = {
enable = true;
createDirectories = true;
};
2024-02-09 20:43:09 +01:00
2024-03-20 18:33:33 +01:00
configFile = {
"gtk-4.0/assets".source = "${homeCfg.gtk.theme.package}/share/themes/${homeCfg.gtk.theme.name}/gtk-4.0/assets";
"gtk-4.0/gtk.css".source = "${homeCfg.gtk.theme.package}/share/themes/${homeCfg.gtk.theme.name}/gtk-4.0/gtk.css";
"gtk-4.0/gtk-dark.css".source = "${homeCfg.gtk.theme.package}/share/themes/${homeCfg.gtk.theme.name}/gtk-4.0/gtk-dark.css";
2024-02-09 20:43:09 +01:00
};
2024-02-05 11:46:52 +01:00
};
2024-02-05 11:46:52 +01:00
i18n.inputMethod = {
enabled = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-m17n
fcitx5-gtk
fcitx5-configtool
];
};
2024-02-05 11:46:52 +01:00
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
2024-02-05 11:46:52 +01:00
gtk = {
enable = true;
2024-03-20 18:33:33 +01:00
theme = {
2024-06-08 16:02:42 +02:00
name = "Orchis-Dark";
package = pkgs.orchis-theme.override {
2024-03-20 18:33:33 +01:00
tweaks = [
2024-06-08 16:02:42 +02:00
"compact"
"macos"
2024-03-20 18:33:33 +01:00
];
2024-06-08 16:02:42 +02:00
border-radius = 5;
2024-03-20 18:33:33 +01:00
};
};
2024-02-05 11:46:52 +01:00
iconTheme = {
name = "elementary";
package = pkgs.pantheon.elementary-icon-theme;
};
2022-12-17 13:32:57 +01:00
2024-02-05 11:46:52 +01:00
gtk3 = {
bookmarks = [ "file:///home/erwin/workspace" ];
extraConfig = {
gtk-application-prefer-dark-theme = 1;
2022-12-17 13:32:57 +01:00
};
};
2024-02-05 11:46:52 +01:00
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = 1;
2023-09-13 14:50:03 +02:00
};
2024-02-05 11:46:52 +01:00
};
2023-09-13 14:50:03 +02:00
2024-02-05 11:46:52 +01:00
programs = {
home-manager.enable = true;
command-not-found.enable = true;
};
2023-09-13 14:50:03 +02:00
2024-02-05 11:46:52 +01:00
services = {
blueman-applet.enable = bt.enable;
2023-09-13 14:50:03 +02:00
2024-02-05 11:46:52 +01:00
gnome-keyring = {
enable = true;
components = [
"pkcs11"
"ssh"
"secrets"
];
};
udiskie = {
enable = true;
tray = "auto";
notify = true;
settings = {
program_options = {
menu = "nested";
};
2024-02-05 11:46:52 +01:00
device_config = [
{
device_file = "/dev/loop*";
ignore = true;
}
];
};
2024-02-05 11:46:52 +01:00
};
2023-11-20 17:14:25 +01:00
2024-02-05 11:46:52 +01:00
cliphist = {
enable = true;
systemdTarget = "sway-session.target";
};
2024-02-05 11:46:52 +01:00
};
2024-02-05 11:46:52 +01:00
imports =
[
2022-11-14 18:49:06 +01:00
../../modules/options
2024-06-08 16:01:48 +02:00
inputs.anyrun.homeManagerModules.default
2024-02-05 11:46:52 +01:00
]
++ (map (mod: (../../home-manager/modules + "/${mod}")) (
builtins.attrNames (builtins.readDir ../../home-manager/modules)
));
};
2023-03-21 17:22:18 +01:00
2024-02-05 11:46:52 +01:00
# OBS control websocket
networking.firewall.allowedTCPPorts = [ 4455 ];
2023-03-21 17:22:18 +01:00
2024-02-05 11:46:52 +01:00
programs = {
steam = {
enable = true;
package = pkgs.steam.override { extraPkgs = sp: with sp; [ gamescope ]; };
2024-02-05 11:46:52 +01:00
gamescopeSession = {
2023-09-13 14:50:03 +02:00
enable = true;
args = [
2024-02-05 11:46:52 +01:00
"--rt"
"--output-width"
"2560"
"--output-height"
"1440"
2024-02-05 11:46:52 +01:00
"--adaptive-sync"
"--filter"
"fsr"
2024-02-05 11:46:52 +01:00
"--expose-wayland"
2023-09-13 14:50:03 +02:00
];
2024-02-05 11:46:52 +01:00
# env = config.environment.sessionVariables;
2023-09-13 14:50:03 +02:00
};
2024-02-05 11:46:52 +01:00
};
gamescope = {
enable = true;
capSysNice = true;
args = [
"--output-width"
"2560"
"--output-height"
"1440"
"--filter"
"fsr"
"--rt"
"--fullscreen"
];
};
bandwhich.enable = true;
noisetorch.enable = true;
2023-09-13 14:50:03 +02:00
2024-02-05 11:46:52 +01:00
wireshark = {
enable = true;
package = pkgs.wireshark;
2023-09-11 20:16:15 +02:00
};
2024-02-05 11:46:52 +01:00
};
2022-10-10 18:35:14 +02:00
2024-02-05 11:46:52 +01:00
services = {
ddccontrol.enable = true;
2023-12-06 08:34:55 +01:00
2024-02-05 11:46:52 +01:00
livebook = {
2024-02-09 20:38:40 +01:00
enableUserService = false;
environment = {
LIVEBOOK_TOKEN_ENABLED = false;
LIVEBOOK_IDENTITY_PROVIDER = "tailscale:/run/tailscale/tailscaled.sock";
LIVEBOOK_IP = "100.106.117.132";
};
environmentFile = config.sops.secrets.livebook-env.path;
2023-12-06 08:34:55 +01:00
};
};
2024-02-05 11:46:52 +01:00
users.groups.wireshark.members = [ "erwin" ];
};
}