367 lines
8.8 KiB
Nix
367 lines
8.8 KiB
Nix
{ pkgs
|
|
, lib
|
|
, config
|
|
, # these come in via home-manager.extraSpecialArgs and are specific to each node
|
|
nodeFlake
|
|
, packages'
|
|
, ...
|
|
}:
|
|
let
|
|
# pkgsMaster = nodeFlake.inputs.nixpkgs-master.legacyPackages.${pkgs.system};
|
|
pkgsUnstableSmall = import nodeFlake.inputs.nixpkgs-unstable-small { inherit (pkgs) system config; };
|
|
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/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
|
|
];
|
|
|
|
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-tree
|
|
|
|
# Version Control Systems
|
|
gitFull
|
|
# 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}}"
|
|
# )
|
|
# '';
|
|
# }))
|
|
|
|
# --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
|
|
|
|
|
|
|
|
# Virtualization
|
|
# virtmanager
|
|
|
|
# Remote Control Tools
|
|
remmina
|
|
# freerdp
|
|
|
|
|
|
|
|
# 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
|
|
tcpdump
|
|
iftop
|
|
iperf
|
|
bind
|
|
socat
|
|
nethogs
|
|
|
|
# Code Editing and Programming
|
|
# pkgsUnstableSmall.lapce
|
|
# pkgsUnstableSmall.helix
|
|
# pkgsUnstableSmall.nil
|
|
|
|
# Image/Graphic/Design Tools
|
|
gnome.eog
|
|
# gimp
|
|
# imagemagick
|
|
# exiv2
|
|
# graphviz
|
|
# inkscape
|
|
# qrencode
|
|
|
|
# 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
|
|
pcmanfm
|
|
# mendeley
|
|
evince
|
|
|
|
|
|
# File Synchronzation
|
|
maestral
|
|
rsync
|
|
|
|
# Filesystem Tools
|
|
# ntfs3g
|
|
# ddrescue
|
|
# ncdu
|
|
# hdparm
|
|
# binwalk
|
|
# gptfdisk
|
|
# gparted
|
|
# smartmontools
|
|
|
|
|
|
## Python
|
|
# packages'.myPython
|
|
|
|
# Misc Desktop Tools
|
|
# ltunify
|
|
# dex
|
|
coreutils
|
|
lsof
|
|
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
|
|
|
|
# snes9x
|
|
# snes9x-gtk
|
|
# this is a displaymanager!
|
|
# libretro.snes9x2010
|
|
# retroarchFull
|
|
])
|
|
++ (lib.lists.optionals (!pkgs.stdenv.targetPlatform.isAarch64) [
|
|
(pkgs.banana-accounting.overrideDerivation
|
|
(attrs:
|
|
with nodeFlake.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[@]}")
|
|
# '';
|
|
})
|
|
)
|
|
|
|
pkgsUnstableSmall.ledger-live-desktop
|
|
|
|
(pkgs.runCommand "logseq-wrapper"
|
|
{
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
} ''
|
|
makeWrapper ${pkgs.logseq}/bin/logseq $out/bin/logseq \
|
|
--set NIXOS_OZONE_WL ""
|
|
'')
|
|
# (logseq.override({ electron_25 = electron_26; }))
|
|
|
|
# unsupported on aarch64-linux
|
|
pkgs.androidenv.androidPkgs_9_0.platform-tools
|
|
pkgs.teamviewer
|
|
pkgs.discord
|
|
pkgsUnstableSmall.session-desktop
|
|
pkgsUnstableSmall.rustdesk
|
|
])
|
|
;
|
|
|
|
systemd.user.startServices = true;
|
|
services.syncthing.enable = true;
|
|
|
|
services.udiskie = {
|
|
enable = true;
|
|
automount = false;
|
|
notify = true;
|
|
};
|
|
|
|
# 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;
|
|
# };
|
|
# };
|
|
}
|