291 lines
5.9 KiB
Nix
291 lines
5.9 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
# these come in via home-manager.extraSpecialArgs and are specific to each node
|
|
nodeFlake,
|
|
repoFlake,
|
|
...
|
|
}:
|
|
let
|
|
pkgsUnstable =
|
|
pkgs.pkgsUnstable
|
|
or (import nodeFlake.inputs.nixpkgs-unstable { inherit (pkgs) system config overlays; });
|
|
|
|
pkgsLogseq =
|
|
pkgs.pkgsLogseq
|
|
or (import repoFlake.inputs.nixpkgs-logseq { inherit (pkgs) system config overlays; });
|
|
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.packages = [ pkgsUnstable.markdown-oxide ]; }
|
|
];
|
|
|
|
home.sessionVariables.HM_CONFIG = "graphical-fullblown";
|
|
home.sessionVariables.GOPATH = "$HOME/src/go";
|
|
home.sessionVariables.PATH = pkgs.lib.concatStringsSep ":" [
|
|
"$HOME/.local/bin"
|
|
"$PATH"
|
|
];
|
|
|
|
nixpkgs.config.allowInsecurePredicate =
|
|
pkg:
|
|
builtins.elem (lib.getName pkg) [
|
|
"electron-28.3.3"
|
|
"electron-27.3.11"
|
|
];
|
|
|
|
nixpkgs.config.permittedInsecurePackages = [
|
|
"electron-28.3.3"
|
|
"electron-27.3.11"
|
|
];
|
|
|
|
nixpkgs.config.allowUnfree = [
|
|
"electron-28.3.3"
|
|
"electron-27.3.11"
|
|
];
|
|
|
|
# nixpkgs.config.allowUnfreePredicate = pkg:
|
|
# builtins.elem (lib.getName pkg) [
|
|
# "smartgithg"
|
|
# "electron-27.3.11"
|
|
# ];
|
|
|
|
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
|
|
pkgsUnstable.element-desktop
|
|
aspellDicts.en
|
|
aspellDicts.de
|
|
# skypeforlinux
|
|
# pkgsUnstable.jitsi-meet-electron
|
|
thunderbird-128
|
|
# betterbird
|
|
|
|
# FIXME: depends on insecure openssl 1.1.1t
|
|
# kotatogram-desktop
|
|
pkgsUnstable.tdesktop
|
|
# TODO: remove or reuse this depending on whether waydroid signal works
|
|
pkgsUnstable.signal-desktop
|
|
|
|
# Virtualization
|
|
virt-manager
|
|
|
|
# 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
|
|
libcamera
|
|
snapshot
|
|
|
|
# Network Tools
|
|
tcpdump
|
|
iftop
|
|
iperf
|
|
bind
|
|
socat
|
|
nethogs
|
|
|
|
# Code Editing and Programming
|
|
# TODO(remove or use): pkgsUnstable.lapce
|
|
# TODO(remve or use): pkgsUnstable.helix
|
|
|
|
# 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
|
|
xournalpp
|
|
|
|
# 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
|
|
# shotcut
|
|
# openshot-qt
|
|
# introduces python: screenkey
|
|
|
|
# avidemux # broken
|
|
# handbrake
|
|
|
|
# snes9x
|
|
# snes9x-gtk
|
|
# this is a displaymanager!
|
|
# libretro.snes9x2010
|
|
# retroarchFull
|
|
|
|
pkgsLogseq.logseq
|
|
])
|
|
++ (lib.lists.optionals (!pkgs.stdenv.targetPlatform.isAarch64) [
|
|
pkgsUnstable.ledger-live-desktop
|
|
|
|
# unsupported on aarch64-linux
|
|
pkgs.androidenv.androidPkgs_9_0.platform-tools
|
|
pkgs.teamviewer
|
|
pkgs.discord
|
|
pkgsUnstable.session-desktop
|
|
pkgsUnstable.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;
|
|
# };
|
|
# };
|
|
}
|