infra/nix/home-manager/configuration/graphical-fullblown.nix

303 lines
7.1 KiB
Nix

{
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.${pkgs.system};
pkgsUnstableSmall = nodeFlake.inputs.nixpkgs-unstable-small.legacyPackages.${pkgs.system};
pkgs2211 = nodeFlake.inputs.nixpkgs-2211.legacyPackages.${pkgs.system};
# pkgs2211 = repoFlakeInputs'.nixpkgs-2211.legacyPackages;
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/espanso.nix
../programs/firefox.nix
../programs/chromium.nix
../programs/libreoffice.nix
../programs/neovim.nix
../programs/pass.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 = [
];
home.packages =
[]
++ (with pkgs; [
# Authentication
cacert
fprintd
openssl
mkpasswd
# Nix package related tools
patchelf
nix-index
nix-prefetch-scripts
# nix-prefetch-github
# 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
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
(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
discord
# Virtualization
# virtmanager
# Remote Control Tools
remmina
freerdp
teamviewer
rustdesk
# Audio/Video Players
ffmpeg
vlc
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 Editors
xclip
xsel
# 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
xfce.thunar
# mendeley
evince
((logseq.overrideAttrs (attrs: {
version = "nightly";
src = repoFlake.inputs.logseqNightly;
})).override (_: {
electron = pkgs.electron_24;
}))
# File Synchronzation
dropbox
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
pkgsUnstableSmall.ledger-live-desktop
]);
systemd.user.startServices = true;
services.syncthing.enable = true;
}