{ lib , pkgs , config , inputs , self-overlay , ... }: with lib; let cfg = config.eboskma.desktop; bt = config.eboskma.bluetooth; in { # imports = [ ../../users/erwin.nix ../../users/root.nix ]; options.eboskma.desktop = { enable = mkEnableOption "Enable default desktop configuration"; home-manager = mkOption { type = types.bool; default = false; description = '' Enable home-manager for this desktop ''; }; terminal = mkOption { type = types.str; default = "foot"; description = "Terminal emulator to use. Specify the .desktop filename, e.g. 'foot' or 'Alacritty'"; }; }; config = mkIf cfg.enable { home-manager.users.erwin = mkIf cfg.home-manager { _module.args.flake-inputs = inputs; programs.home-manager.enable = true; programs.command-not-found.enable = true; services.blueman-applet.enable = bt.enable; home.username = "erwin"; home.homeDirectory = "/home/erwin"; home.sessionVariables = { EDITOR = "${pkgs.neovim}/bin/nvim"; }; nixpkgs.config = { allowUnfree = true; }; home.stateVersion = "21.11"; eboskma = { programs = { alacritty.enable = true; bat.enable = true; dropbox.enable = true; dunst.enable = false; emacs = { enable = true; daemon = true; }; electron = { enable = true; wayland = true; }; firefox = { enable = true; work = config.eboskma.base.work; }; fish.enable = true; foot.enable = true; git = { enable = true; name = "Erwin Boskma"; email = "erwin@datarift.nl"; signingKey = "EE7ADEFE1D943C7B"; }; gpg.enable = true; neovim.enable = true; obs-studio.enable = true; rofi.enable = true; vscode.enable = true; solvespace.enable = true; ssh.enable = true; sway.enable = true; tmux.enable = true; waybar.enable = true; zathura.enable = true; }; }; home.packages = with pkgs; [ bandwhich bitwarden bottom # inputs.cq-flake.packages.${pkgs.system}.cq-editor fd ffmpeg ffmpeg.bin git gnome.nautilus imagemagick imv iotop (jetbrains.clion.override { jdk = pkgs.jetbrains.jdk; }) kicad mpv nomachine-client pamedia pass quintom-cursor-theme procs ripgrep solo2-cli steam steamcmd steam-tui unzip xdg-utils wireshark wl-clipboard ] ++ (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]); 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"; }; 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 ]; }; gtk = { enable = true; theme = { name = "Arc-Dark"; package = pkgs.arc-theme; }; iconTheme = { name = "Papirus-Dark"; package = pkgs.papirus-icon-theme; }; gtk3 = { bookmarks = [ "file:///home/erwin/workspace" ]; extraConfig = { gtk-application-prefer-dark-theme = true; gtk-cursor-theme-name = "Quintom_Ink"; }; }; }; imports = [ { nixpkgs.overlays = [ self-overlay inputs.ha-now-playing.overlays.${pkgs.system} inputs.pamedia.overlays.${pkgs.system} inputs.emacs-overlay.overlay ]; } ../../home-manager/modules/alacritty ../../home-manager/modules/bat ../../home-manager/modules/dropbox ../../home-manager/modules/dunst ../../home-manager/modules/emacs ../../home-manager/modules/electron ../../home-manager/modules/firefox ../../home-manager/modules/fish ../../home-manager/modules/foot ../../home-manager/modules/git ../../home-manager/modules/gpg ../../home-manager/modules/neovim ../../home-manager/modules/obs-studio ../../home-manager/modules/rofi ../../home-manager/modules/vscode ../../home-manager/modules/solvespace ../../home-manager/modules/ssh ../../home-manager/modules/sway ../../home-manager/modules/tmux ../../home-manager/modules/waybar ../../home-manager/modules/zathura ]; }; programs = { dconf.enable = true; seahorse.enable = true; steam.enable = true; sway = { enable = true; wrapperFeatures = { gtk = true; base = true; }; extraPackages = with pkgs; [ swaylock-effects # swaylock swayidle swaynotificationcenter ]; }; }; xdg = { mime.enable = true; menus.enable = true; icons.enable = true; sounds.enable = true; autostart.enable = true; portal = { enable = true; wlr.enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; gtkUsePortal = true; }; }; services = { dbus.packages = [ pkgs.gcr ]; avahi.publish.workstation = true; gvfs.enable = true; pcscd.enable = true; ratbagd.enable = true; }; security = { pam.services.swaylock = { # text = '' # auth include login # ''; unixAuth = true; setLoginUid = true; enableGnomeKeyring = true; allowNullPassword = true; updateWtmp = true; startSession = true; }; pki.certificates = [ (builtins.readFile ./horus-ca.pem) ]; }; environment = { sessionVariables = { _JAVA_AWT_WM_NONREPARENTING = "1"; MOZ_ENABLE_WAYLAND = "1"; MOZ_DBUS_REMOTE = "1"; QT_QPA_PLATFORM = "wayland"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; QT_QPA_PLATFORMTHEME = "qt5ct"; SDL_VIDEODRIVER = "wayland"; SSH_AUTH_SOCK = ''''${XDG_RUNTIME_DIR}/gnupg/S.gpg-agent.ssh''; AMD_VULKAN_ICD = "RADV"; # NIXOS_OZONE_WL = "1"; }; etc = { "X11/xkb".source = "${pkgs.xkeyboard_config}/etc/X11/xkb"; }; systemPackages = with pkgs; [ piper ]; }; }; }