{ pkgs , config , # these come in via home-manager.extraSpecialArgs and are specific to each node nodeFlake , packages' , # repoFlake, # repoFlakeInputs', ... }: let # pkgsMaster = nodeFlake.inputs.nixpkgs-master.legacyPackages.${pkgs.system}; pkgsUnstableSmall = import nodeFlake.inputs.nixpkgs-unstable-small { inherit (pkgs) system config; }; pkgs2211 = nodeFlake.inputs.nixpkgs-2211.legacyPackages.${pkgs.system}; in { imports = [ ../profiles/common.nix ../profiles/dotfiles.nix # FIXME: fix homeshick when no WAN connection is available # ../programs/homeshick.nix # ../profiles/gnome-desktop.nix ../profiles/sway-desktop.nix # ../profiles/experimental-desktop.nix ../programs/redshift.nix ../programs/gpg-agent.nix ../programs/pass.nix ../programs/espanso.nix ../programs/firefox.nix ../programs/chromium.nix ../programs/libreoffice.nix ../programs/neovim.nix ../programs/vscode # TODO: bump these to 23.05 and make it work (args: import ../programs/radicale.nix (args // { pkgs = pkgs2211; })) # (args: import ../programs/espanso.nix (args // {pkgs = pkgs2211;})) ]; home.sessionVariables.HM_CONFIG = "graphical-fullblown"; home.sessionVariables.GOPATH = "$HOME/src/go"; home.sessionVariables.PATH = pkgs.lib.concatStringsSep ":" [ "$HOME/.local/bin" "$PATH" ]; nixpkgs.config.permittedInsecurePackages = [ "electron-24.8.6" "electron-25.9.0" ]; home.packages = [ ] ++ (with pkgs; [ # Authentication cacert fprintd openssl mkpasswd # Nix package related tools patchelf nix-index nix-prefetch-scripts # nix-prefetch-github nix-tree # Version Control Systems gitFull pijul # gitless gitRepo git-lfs # Process/System Administration htop # gnome.gnome-tweaks xorg.xhost dmidecode evtest # Archive Managers sshfs-fuse p7zip zip unzip gzip lzop # Password Management gnupg # yubikey-manager yubikey-manager-qt yubikey-personalization yubikey-personalization-gui # gnome.gnome-keyring gcr gnome.seahorse # Language Support hunspellDicts.en-us hunspellDicts.de-de # Messaging/Communication # pidgin # hexchat # schildichat-desktop # insecure as of 2023-12-16 aspellDicts.en aspellDicts.de # skypeforlinux # pkgsUnstable.jitsi-meet-electron thunderbird evolution # gnome4.glib_networking # FIXME: depends on insecure openssl 1.1.1t # kotatogram-desktop tdesktop pkgsUnstableSmall.signal-desktop #(let # version = "6.20.0-beta.1"; #in # pkgsUnstableSmall.signal-desktop-beta.overrideAttrs (old: { # # inherit version; # # src = builtins.fetchurl { # # url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb"; # # sha256 = "0xkagnldagfxnpv4c23yd9w0kz1y719m1sj9vqn8mnr1zfn7j62a"; # # }; # preFixup = # old.preFixup # + '' # gappsWrapperArgs+=( # --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto}}" # --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform}}" # ) # ''; # })) pkgsUnstableSmall.session-desktop # --add-flags "--enable-features=UseOzonePlatform" # --add-flags "--ozone-platform=wayland" # (pkgsUnstableSmall.session-desktop.overrideAttrs (old: { # nativeBuildInputs = # old.nativeBuildInputs # ++ [ # pkgs.wrapGAppsHook # ]; # preFixup = # (old.preFixup or "") # + '' # gappsWrapperArgs+=( # --add-flags "--enable-features=UseOzonePlatform" # --add-flags "--ozone-platform=wayland" # # --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto}}" # # --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=WaylandWindowDecorations}}" # # --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform}}" # ) # ''; # })) #(pkgsUnstableSmall.session-desktop.overrideAttrs(old: { # nativeBuildInputs = old.nativeBuildInputs ++ [ # pkgs.wrapGAppsHook # ]; # # preFixup = (old.preFixup or "") + '' # gappsWrapperArgs+=( # --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland}}" # --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform}}" # ) # ''; # })) thunderbird # gnome.cheese discord # Virtualization # virtmanager # Remote Control Tools remmina freerdp teamviewer pkgsUnstableSmall.rustdesk # Audio/Video Players ffmpeg vlc v4l-utils audacity spotify yt-dlp (writeShellScriptBin "youtube-dl-audio" "${yt-dlp}/bin/yt-dlp --extract-audio --audio-format best --audio-quality 9 \${@:?}") libwebcam # Network Tools openvpn tcpdump iftop iperf bind socat # 2019-03-05: broken on 19.03 linssid iptraf-ng ipmitool iptables nftables wireshark wireguard-tools # Code Editing and Programming xclip xsel pkgsUnstableSmall.lapce pkgsUnstableSmall.helix pkgsUnstableSmall.nil # Image/Graphic/Design Tools gnome.eog gimp imagemagick exiv2 graphviz inkscape qrencode zbar feh # TODO: remove or move these: Modelling Tools # plantuml # umlet # staruml # eclipses.eclipse-modeling # dia # astah-community # Misc Development Tools qrcode jq cdrtools # Document Processing and Management gnome.nautilus xfce.thunar pcmanfm # mendeley evince (runCommand "logseq-wrapper" { nativeBuildInputs = [ makeWrapper ]; } '' makeWrapper ${logseq}/bin/logseq $out/bin/logseq \ --set NIXOS_OZONE_WL "" '') # (logseq.override({ electron_25 = electron_26; })) # File Synchronzation maestral maestral-gui rsync # Filesystem Tools ntfs3g ddrescue ncdu unetbootin hdparm testdisk # binwalk gptfdisk gparted smartmontools ## Android androidenv.androidPkgs_9_0.platform-tools ## Python packages'.myPython # Misc Desktop Tools ltunify # dex xorg.xbacklight coreutils lsof xdotool xdg_utils xdg-user-dirs dconf picocom glib.dev # contains gdbus tool alacritty wally-cli man-pages # Screen recording # gtk-recordmydesktop # can't select the window # qt-recordmydesktop # vokoscreen # shutter # kazam # doesn't start # xvidcap # doesn't keep the recording rectangle # obs-studio # shotcut # openshot-qt # introduces python: screenkey # avidemux # broken handbrake pkgsUnstableSmall.ledger-live-desktop (banana-accounting.overrideDerivation (attrs: with inputs'.nixpkgs-2211.legacyPackages; { # dontWrapGApps = true; srcs = builtins.fetchurl { # hosted via https://web3.storage url = "https://bafybeiabi4m2i4izummipbl5wzhwxjyjt2rylgsrahhkh7i63piwd37n4u.ipfs.w3s.link/mfpcksczayaqqx8fdacp0627zm36c001-bananaplus.tgz"; sha256 = "09666iqzqdw2526pf6bg5kd0hfw0wblw8ag636ki72dsiw6bmbf1"; }; # nativeBuildInputs = # attrs.nativeBuildInputs # ++ [ # qt5.qtbase # qt5.wrapQtAppsHook # ]; # buildInputs = # attrs.buildInputs # ++ [ # qt5.qtwayland # ]; # preFixup = # (attrs.preFixup or "") # + '' # qtWrapperArgs+=("''${gappsWrapperArgs[@]}") # ''; })) snes9x snes9x-gtk # this is a displaymanager! # libretro.snes9x2010 # retroarchFull ]); systemd.user.startServices = true; services.syncthing.enable = true; services.udiskie = { enable = true; automount = true; notify = true; }; # FIXME: doesn't work as the service can't seem to control its started PID services.dropbox = { enable = false; path = "${config.home.homeDirectory}/Dropbox-Hm"; }; # TODO: uncomment this when it's in stable home-manger # programs.joshuto = { # enable = true; # }; # systemd.user.services.maestral = { # Unit.Description = "Maestral daemon"; # Install.WantedBy = ["default.target"]; # Service = { # ExecStart = "${pkgs.maestral}/bin/maestral start -f"; # ExecStop = "${pkgs.maestral}/bin/maestral stop"; # Restart = "on-failure"; # Nice = 10; # }; # }; }