Compare commits

...

3 commits

Author SHA1 Message Date
87f08c462a fc-scripts: init at 20260202
collection of useful scripts from the FlyingCircus crew
2026-02-18 18:36:47 +01:00
eab86cf718 unify overlays
We used to have overlay definitions in home/overlays and
packages/default. Let's unify them.
Using the exposed overlay from the flake required some changes in the
home-manager config though.
2026-02-18 18:36:16 +01:00
3160908c0b darwin: regularly run angrr as timer job 2026-02-18 16:39:25 +01:00
6 changed files with 197 additions and 159 deletions

View file

@ -27,6 +27,7 @@ in
sandbox = "relaxed"; sandbox = "relaxed";
}; };
}; };
services.angrr.timer.enable = true;
# List packages installed in system profile. To search by name, run: # List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget # $ nix-env -qaP | grep wget

View file

@ -109,6 +109,7 @@
# Optionally use extraSpecialArgs # Optionally use extraSpecialArgs
# to pass through arguments to home.nix # to pass through arguments to home.nix
extraSpecialArgs = { extraSpecialArgs = {
# XXX: can we use the inputInjection pattern here as well instead?
inherit inputs; inherit inputs;
}; };
}; };

View file

@ -1,123 +1,133 @@
{ {
pkgs, pkgs,
lib,
inputs, inputs,
config, config,
... ...
}: }:
with pkgs;
let let
cfg = config.schmittlauch.packages; cfg = config.schmittlauch.packages;
unstable = inputs.nixos-unstable.legacyPackages.${stdenv.hostPlatform.system}; unstable = inputs.nixos-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
nur = inputs.nur.legacyPackages.${stdenv.hostPlatform.system}; nur = inputs.nur.legacyPackages.${pkgs.stdenv.hostPlatform.system};
graphicsApps = [ graphicsApps =
inkscape with pkgs;
exiftool [
] inkscape
++ (with gimp3Plugins; [ exiftool
#fourier # broken ]
#lqrPlugin # broken ++ (with gimp3Plugins; [
]) #fourier # broken
++ lib.optionals pkgs.stdenv.isLinux [ #lqrPlugin # broken
darktable ])
gimp3 ++ lib.optionals pkgs.stdenv.isLinux [
hugin darktable
#luminanceHDR # FIXME, build failure gimp3
xournalpp hugin
] #luminanceHDR # FIXME, build failure
++ lib.optionals pkgs.stdenv.isDarwin [ xournalpp
gimp2 ]
]; ++ lib.optionals pkgs.stdenv.isDarwin [
gimp2
];
multimediaApps = [ multimediaApps =
mpv with pkgs;
] [
++ lib.optionals pkgs.stdenv.isDarwin [ vlc-bin ] mpv
++ lib.optionals pkgs.stdenv.isLinux [ ]
vlc ++ lib.optionals pkgs.stdenv.isDarwin [ vlc-bin ]
amarok ++ lib.optionals pkgs.stdenv.isLinux [
clementine vlc
kdePackages.elisa amarok
musescore clementine
tenacity kdePackages.elisa
#nur.repos.fooker.studio-link musescore
]; tenacity
#nur.repos.fooker.studio-link
];
cliApps = [ cliApps =
coreutils with pkgs;
myVim [
htop coreutils
tmux myVim
httpie htop
rsync tmux
ponysay httpie
gti rsync
tree ponysay
lsof gti
mosh tree
openssh lsof
sshfs-fuse mosh
sshuttle openssh
cryfs sshfs-fuse
gnupg sshuttle
unar cryfs
lzop gnupg
p7zip unar
pwgen lzop
pandoc p7zip
pdfgrep pwgen
# zig dependency breaks occasionally, stay on C version for now pandoc
ncdu_1 pdfgrep
dos2unix # zig dependency breaks occasionally, stay on C version for now
unzip ncdu_1
fswatch dos2unix
jq unzip
age fswatch
lnav jq
spacer age
lnav
spacer
nix-output-monitor # putting this here as a plain `nix` alternative nix-output-monitor # putting this here as a plain `nix` alternative
]
++ lib.optionals pkgs.stdenv.isLinux [
xclip
smbnetfs # for FUSE smb mounting
psmisc # for killall
torsocks
agrep
reptyr # re-bind running program to other tty
];
nixHelpers = [ fc-scripts # this might turn out to be useful even in non-work environments?
]
++ lib.optionals pkgs.stdenv.isLinux [
xclip
smbnetfs # for FUSE smb mounting
psmisc # for killall
torsocks
agrep
reptyr # re-bind running program to other tty
];
nixHelpers = with pkgs; [
nixpkgs-review nixpkgs-review
nixfmt nixfmt
nix-top nix-top
statix statix
]; ];
devTools = [ devTools =
curl with pkgs;
httpie [
gcc curl
shellcheck httpie
mtr gcc
ripgrep shellcheck
fd mtr
pre-commit ripgrep
scriv fd
pre-commit
scriv
# Haskell # Haskell
ghc ghc
cabal2nix cabal2nix
] ]
++ lib.optionals pkgs.stdenv.isLinux [ ++ lib.optionals pkgs.stdenv.isLinux [
gdb gdb
strace strace
ltrace ltrace
valgrind valgrind
zeal zeal
]; ];
pythonTools = with python3Packages; [ pythonTools = with pkgs.python3Packages; [
python # to shadow old macOS python python # to shadow old macOS python
ipython ipython
uv uv
@ -131,16 +141,16 @@ let
mypy mypy
]; ];
games = [ games = with pkgs; [
superTuxKart superTuxKart
#hedgewars #hedgewars
]; ];
desktopCommon = [ desktopCommon = with pkgs; [
keepassxc keepassxc
]; ];
desktopLinux = [ desktopLinux = with pkgs; [
firefox firefox
chromium chromium
kdePackages.falkon kdePackages.falkon
@ -187,31 +197,33 @@ let
chromedriver chromedriver
]; ];
kdeTools = [ kdeTools =
okteta with pkgs;
] [
++ (with kdePackages; [ okteta
okular ]
gwenview ++ (with kdePackages; [
yakuake okular
dolphin gwenview
spectacle yakuake
kate dolphin
kleopatra spectacle
qdirstat kate
ark kleopatra
kwalletmanager qdirstat
#ktouch # TODO: unbreak ark
kcharselect kwalletmanager
konversation #ktouch # TODO: unbreak
krdc kcharselect
skanlite konversation
akonadiconsole krdc
tokodon # mastodon client skanlite
networkmanager-qt akonadiconsole
kcrash tokodon # mastodon client
breeze-gtk networkmanager-qt
]); kcrash
breeze-gtk
]);
in in
{ {
options.schmittlauch.packages = { options.schmittlauch.packages = {
@ -248,7 +260,7 @@ in
++ (lib.optional cfg.kde kdeTools) ++ (lib.optional cfg.kde kdeTools)
); );
nixpkgs.overlays = import ../overlays.nix; nixpkgs.overlays = lib.attrValues inputs.self.overlays;
nixpkgs.config = { nixpkgs.config = {
permittedInsecurePackages = [ permittedInsecurePackages = [

View file

@ -1,31 +0,0 @@
[
(self: super: {
myVim = super.neovim.override {
configure = {
packages.myVimPackage = with self.pkgs.vimPlugins; {
# loaded on start
start = [
ale
base16-vim
LanguageClient-neovim
ctrlp
direnv-vim
fugitive
haskell-vim
jedi-vim
nerdtree
nerdtree-git-plugin
supertab
vim-dirdiff
vim-pandoc
vim-pandoc-syntax
vim-nix
vim-jinja
which-key-nvim
];
};
customRC = builtins.readFile ./vimrc;
};
};
})
]

View file

@ -5,4 +5,32 @@ final: prev: {
spsdk = python-prev.spsdk.overridePythonAttrs { doCheck = false; }; spsdk = python-prev.spsdk.overridePythonAttrs { doCheck = false; };
}; };
}; };
fc-scripts = final.callPackage ./fc-scripts.nix { };
myVim = prev.neovim.override {
configure = {
packages.myVimPackage = with final.pkgs.vimPlugins; {
# loaded on start
start = [
ale
base16-vim
LanguageClient-neovim
ctrlp
direnv-vim
fugitive
haskell-vim
jedi-vim
nerdtree
nerdtree-git-plugin
supertab
vim-dirdiff
vim-pandoc
vim-pandoc-syntax
vim-nix
vim-jinja
which-key-nvim
];
};
customRC = builtins.readFile ../home/vimrc;
};
};
} }

27
packages/fc-scripts.nix Normal file
View file

@ -0,0 +1,27 @@
{
fetchFromGitHub,
runCommand,
python3,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation {
pname = "fc-scripts";
version = "20260202";
src = fetchFromGitHub {
owner = "flyingcircusio";
repo = "scripts";
rev = "887f066006829fc3ee44b3cfbe748c578ea2e7c1";
hash = "sha256-mrL/dULb0NKw8cH9ferzfDdRjhWANrWQg/u7FNCtzWw=";
};
buildInputs = [ python3 ];
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp *.py $out/bin/
runHook postInstall
'';
}