Files
nixos/home/profiles/gui.nix
Simon Gardling bcdfd8cdf5 flare: add patched flare-signal with five local feature patches
- patches/flare/000{1..5}-*.patch: typing indicators, formatted
  messages, edited messages, multi-select with delete-for-me, and
  in-channel message search. Mirror the matching commits in
  ~/projects/forks/flare and apply cleanly on top of upstream 0.20.4
  (which is what nixpkgs ships).
- home/profiles/gui.nix: include a flare-signal override that appends
  the patches via overrideAttrs. None of them touch Cargo.lock so the
  cargoDeps hash stays valid; signal-desktop stays alongside it.
2026-04-30 18:41:35 -04:00

252 lines
5.2 KiB
Nix

{
pkgs,
lib,
inputs,
config,
...
}:
{
imports = [
./no-gui.nix
../progs/ghostty.nix
../progs/emacs.nix
# ../progs/trezor.nix # - broken
../progs/flatpak.nix
../progs/zen
];
nixpkgs.config.allowUnfreePredicate =
pkg:
builtins.elem (lib.getName pkg) [
"apple_cursor"
"grayjay"
];
home.packages =
with pkgs;
lib.concatLists [
# libreoffice
[
libreoffice
hunspell # spellcheck
hunspellDicts.en_US # spellcheck dictionary
]
# browsers
[
tor-browser
grayjay
]
# music library management
[
picard
puddletag
lrcget
]
# image editing
[
darktable
rawtherapee
hugin
gimp3
pinta
]
[
#calculator
gnome-calculator
# audio editing
audacity
#fonts
noto-fonts
noto-fonts-color-emoji
liberation_ttf
#for ebook reading
foliate
#audio mixer (pavucontrol but for pipewire)
pwvucontrol
# minecraft launcher
prismlauncher
mpv
mumble
system76-keyboard-configurator
#jellyfin
finamp # music player
delfin # jellyfin client
signal-desktop
# alternative GTK signal client; carries five local feature patches
# under patches/flare/ on top of upstream 0.20.4 (typing indicators,
# formatted messages, edited messages, multi-select with delete-for-me,
# and in-channel message search).
(pkgs.flare-signal.overrideAttrs (old: {
patches = (old.patches or [ ]) ++ [
../../patches/flare/0001-feat-typing-Implement-typing-indicators.patch
../../patches/flare/0002-feat-messages-Implement-formatted-messages.patch
../../patches/flare/0003-feat-messages-Implement-edited-messages.patch
../../patches/flare/0004-feat-messages-Multi-select-messages-and-delete-for-m.patch
../../patches/flare/0005-feat-messages-In-channel-message-search.patch
../../patches/flare/0006-feat-messages-Show-This-message-was-deleted.-placeho.patch
];
}))
# accounting
# gnucash
# image tools
inkscape
nomacs
# partitioning utilities
gparted
gnome-disk-utility
# small nicities
wl-clipboard # wl-copy & wl-paste
libnotify # notifications library
xdg-utils # xdg utils
wireshark
nautilus
nufraw-thumbnailer
gdk-pixbuf
enblend-enfuse
# simple screen recording on wayland
wl-screenrec
# wayland-compatible color picker
hyprpicker
blender
ghidra-bin
# for mod organizer 2
zenity
p7zip
# password manager
keepassxc
freecad-wayland
localsend
# openstreetmap
josm
# in unstable ATM, gotta wait for it to hit stable
# video-trimmer
]
# all the fonts
(builtins.filter lib.isDerivation (builtins.attrValues nerd-fonts))
];
# programs.zed-editor = {
# enable = true;
# userSettings = {
# ui_font_size = 16;
# buffer_font_size = 16;
# theme = {
# mode = "system";
# light = "Gruvbox Dark Hard";
# dark = "One Dark";
# };
# };
# extensions = [
# "nix"
# "sql"
# "CSV"
# "assembly"
# ];
# };
# make chromium-based stuff use wayland
home.file.".config/chromium-flags.conf".text = "--ozone-platform-hint=auto";
# dark mode
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
home.sessionVariables = {
LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath [
pkgs.stdenv.cc.cc
]}";
};
# allow extra fonts to be detected by fontconfig
fonts.fontconfig.enable = true;
# gtk application theming
gtk = {
enable = true;
# make gtk3 applications look like libadwaita applications!
theme = {
package = pkgs.adw-gtk3;
name = "adw-gtk3-dark";
};
# gtk4 apps use libadwaita natively, no theme package needed
gtk4.theme = null;
iconTheme = {
package = pkgs.adwaita-icon-theme;
name = "Adwaita";
};
};
# qt application theming - BROKEN and on fire
# qt = {
# enable = true;
# platformTheme = {
# name = "adwaita";
# package = [
# pkgs.adwaita-qt
# pkgs.adwaita-qt6
# ];
# };
# style = {
# name = "adwaita-dark";
# package = pkgs.adwaita-qt;
# };
# };
# macOS cursor!
home.pointerCursor = {
gtk.enable = true;
package = pkgs.apple-cursor;
name = "macOS";
size = 24;
};
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///system" ];
uris = [ "qemu:///system" ];
};
};
# macOS-style clipboard aliases — depend on wl-clipboard, so scoped here
# rather than in the shared fish config.
programs.fish.shellAliases = {
pbcopy = "${pkgs.wl-clipboard}/bin/wl-copy";
pbpaste = "${pkgs.wl-clipboard}/bin/wl-paste";
};
}