415 lines
12 KiB
Nix
415 lines
12 KiB
Nix
{ pkgs, config, lib, inputs, ... }:
|
|
with lib; let
|
|
cfg = config.eboskma.users.erwin;
|
|
homeCfg = config.home-manager.users.erwin;
|
|
bt = config.eboskma.bluetooth;
|
|
|
|
ewwDaemon =
|
|
let
|
|
path = lib.makeBinPath (with pkgs; [ ha-now-playing jaq pamedia bash helvum pavucontrol ]);
|
|
in
|
|
pkgs.writeShellScript "eww-daemon" ''
|
|
export PATH=${path}:''${PATH}
|
|
|
|
${homeCfg.eboskma.programs.eww.package}/bin/eww $@
|
|
'';
|
|
in
|
|
{
|
|
config =
|
|
mkIf cfg.home {
|
|
home-manager.users.erwin = {
|
|
_module.args.flake-inputs = inputs;
|
|
|
|
eboskma = {
|
|
programs = {
|
|
alacritty.enable = false;
|
|
anyrun.enable = true;
|
|
atuin.enable = true;
|
|
bat.enable = true;
|
|
cargo = {
|
|
enable = true;
|
|
settings = {
|
|
registries.crates-io = {
|
|
protocol = "sparse";
|
|
};
|
|
};
|
|
};
|
|
|
|
dropbox.enable = true;
|
|
dunst.enable = false;
|
|
emacs = {
|
|
enable = true;
|
|
package = pkgs.emacs-unstable-pgtk;
|
|
# .override {
|
|
# treeSitterPlugins = builtins.attrValues (filterAttrs (_: isDerivation) pkgs.tree-sitter-grammars);
|
|
# }
|
|
daemon = true;
|
|
};
|
|
electron = {
|
|
enable = true;
|
|
wayland = true;
|
|
};
|
|
eww = {
|
|
enable = true;
|
|
package = pkgs.eww-wayland;
|
|
};
|
|
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";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
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;
|
|
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";
|
|
};
|
|
};
|
|
input = {
|
|
"36125:40349:splitkb.com_Kyria_rev1" = {
|
|
xkb_layout = "us";
|
|
xkb_options = "lv3:ralt_switch_multikey,eurosign:5";
|
|
};
|
|
"1133:49291:Logitech_G502_HERO_SE" = {
|
|
natural_scroll = "enabled";
|
|
};
|
|
};
|
|
startup = [
|
|
{ command = "${ewwDaemon} --restart open bar-home"; always = true; }
|
|
];
|
|
};
|
|
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";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
tmux.enable = true;
|
|
waybar.enable = false;
|
|
zathura.enable = true;
|
|
zellij = {
|
|
enable = true;
|
|
copyCommand = "${pkgs.wl-clipboard}/bin/wl-copy";
|
|
};
|
|
};
|
|
};
|
|
|
|
home = {
|
|
username = "erwin";
|
|
homeDirectory = "/home/erwin";
|
|
sessionVariables = { };
|
|
|
|
stateVersion = "21.11";
|
|
|
|
packages = with pkgs;
|
|
[
|
|
ardour
|
|
atool
|
|
inputs.attic.packages.${pkgs.system}.attic-client
|
|
bitwarden
|
|
blink1-tool
|
|
bottom
|
|
dconf
|
|
dbeaver
|
|
easyeffects
|
|
element-desktop
|
|
fd
|
|
ffmpeg_5-full
|
|
gnome.nautilus
|
|
helvum
|
|
horizon-eda
|
|
imagemagick
|
|
imv
|
|
iotop
|
|
(jetbrains.clion.override { jdk = pkgs.jetbrains.jdk; })
|
|
kicad
|
|
kubectl
|
|
kubernetes-helm
|
|
libnotify
|
|
libreoffice-fresh
|
|
minio-client
|
|
mpv
|
|
nomachine-client
|
|
nordzy-cursor-theme
|
|
(noson.overrideAttrs (_: { qtWrapperArgs = ''--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.libpulseaudio ]}''; }))
|
|
pamedia
|
|
pass
|
|
pavucontrol
|
|
povray
|
|
quintom-cursor-theme
|
|
procs
|
|
prusa-slicer
|
|
qgis
|
|
remmina
|
|
ripgrep
|
|
scid-vs-pc
|
|
signal-desktop
|
|
steam
|
|
steamcmd
|
|
steam-tui
|
|
stellarium
|
|
# super-slicer-latest
|
|
units
|
|
unzip
|
|
vial
|
|
xdg-utils
|
|
wl-clipboard
|
|
zeal
|
|
]
|
|
++ (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]);
|
|
|
|
pointerCursor = {
|
|
name = "elementary";
|
|
package = pkgs.pantheon.elementary-gtk-theme;
|
|
gtk.enable = true;
|
|
x11.enable = true;
|
|
};
|
|
|
|
|
|
file = {
|
|
wallpapers = {
|
|
source = ../../wallpapers;
|
|
target = ".wallpapers";
|
|
recursive = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
xdg = {
|
|
enable = true;
|
|
mime.enable = true;
|
|
mimeApps = {
|
|
enable = true;
|
|
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";
|
|
};
|
|
associations = {
|
|
added = {
|
|
"image/jpeg" = "imv.desktop";
|
|
"image/png" = "imv.desktop";
|
|
"image/gif" = "imv.desktop";
|
|
"application/zip" = "org.gnome.FileRoller.desktop";
|
|
};
|
|
};
|
|
};
|
|
userDirs = {
|
|
enable = true;
|
|
createDirectories = true;
|
|
};
|
|
};
|
|
|
|
i18n.inputMethod = {
|
|
enabled = "fcitx5";
|
|
fcitx5.addons = with pkgs; [ fcitx5-m17n fcitx5-gtk fcitx5-configtool ];
|
|
};
|
|
|
|
dconf.settings = {
|
|
"org/gnome/desktop/interface" = {
|
|
color-scheme = "prefer-dark";
|
|
};
|
|
};
|
|
|
|
gtk = {
|
|
enable = true;
|
|
theme = {
|
|
name = "elementary";
|
|
package = pkgs.pantheon.elementary-gtk-theme;
|
|
};
|
|
|
|
iconTheme = {
|
|
name = "elementary";
|
|
package = pkgs.pantheon.elementary-icon-theme;
|
|
};
|
|
|
|
gtk3 = {
|
|
bookmarks = [
|
|
"file:///home/erwin/workspace"
|
|
];
|
|
extraConfig = {
|
|
gtk-application-prefer-dark-theme = 1;
|
|
gtk-cursor-theme-name = "elementary";
|
|
};
|
|
};
|
|
|
|
gtk4.extraConfig = {
|
|
gtk-application-prefer-dark-theme = 1;
|
|
gtk-cursor-theme-name = "elementary";
|
|
};
|
|
};
|
|
|
|
programs = {
|
|
home-manager.enable = true;
|
|
command-not-found.enable = true;
|
|
};
|
|
|
|
services = {
|
|
blueman-applet.enable = bt.enable;
|
|
|
|
gnome-keyring = {
|
|
enable = true;
|
|
components = [ "pkcs11" "ssh" "secrets" ];
|
|
};
|
|
|
|
udiskie = {
|
|
enable = true;
|
|
tray = "auto";
|
|
notify = true;
|
|
settings = {
|
|
program_options = {
|
|
menu = "nested";
|
|
};
|
|
device_config = [
|
|
{
|
|
device_file = "/dev/loop*";
|
|
ignore = true;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
cliphist = {
|
|
enable = true;
|
|
systemdTarget = "sway-session.target";
|
|
};
|
|
};
|
|
|
|
imports = [
|
|
../../modules/options
|
|
inputs.anyrun.nixosModules.home-manager
|
|
] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules)));
|
|
};
|
|
|
|
|
|
# OBS control websocket
|
|
networking.firewall.allowedTCPPorts = [ 4455 ];
|
|
|
|
programs = {
|
|
steam = {
|
|
enable = true;
|
|
package = pkgs.steam.override {
|
|
extraPkgs = sp: with sp; [ gamescope ];
|
|
};
|
|
|
|
gamescopeSession = {
|
|
enable = true;
|
|
args = [
|
|
"--rt"
|
|
"--output-width"
|
|
"2560"
|
|
"--output-height"
|
|
"1440"
|
|
"--adaptive-sync"
|
|
"--filter"
|
|
"fsr"
|
|
"--expose-wayland"
|
|
];
|
|
# env = config.environment.sessionVariables;
|
|
};
|
|
};
|
|
gamescope = {
|
|
enable = true;
|
|
capSysNice = true;
|
|
args = [
|
|
"--output-width"
|
|
"2560"
|
|
"--output-height"
|
|
"1440"
|
|
"--filter"
|
|
"fsr"
|
|
"--rt"
|
|
"--fullscreen"
|
|
];
|
|
};
|
|
bandwhich.enable = true;
|
|
noisetorch.enable = true;
|
|
|
|
wireshark = {
|
|
enable = true;
|
|
package = pkgs.wireshark;
|
|
};
|
|
};
|
|
|
|
services = {
|
|
ddccontrol.enable = true;
|
|
|
|
livebook = {
|
|
enableUserService = true;
|
|
environmentFile = pkgs.writeText "livebook-env" ''
|
|
LIVEBOOK_TOKEN_ENABLED=false
|
|
LIVEBOOK_IDENTITY_PROVIDER=tailscale:/run/tailscale/tailscaled.sock
|
|
LIVEBOOK_IP=100.106.117.132
|
|
'';
|
|
};
|
|
};
|
|
|
|
users.groups.wireshark.members = [ "erwin" ];
|
|
};
|
|
}
|