diff --git a/.latexmkrc b/.latexmkrc
index c8935a0d616f11e9f53c24b78097fbc711ac1b93..2264563650e406c66d95a468d6664638e5175a5a 100644
--- a/.latexmkrc
+++ b/.latexmkrc
@@ -1,12 +1,13 @@
-# use pdflatex
-$pdf_mode = 1;
+# list of files in this project
+# @default_files = ('file.tex', 'file.tex');
 
-# use bibtex
-$bibtex_use = 2;
-$clean_ext .= " run.xml";
+# generall settings:
+$aux_dir = '.aux/'; # use and auxilary folder for temp files
+$pdf_mode = 1; # use pdflatex
+$bibtex_use = 2; # use biber
 
-# use and auxilary folder for temp files
-$aux_dir = './.aux/';
+push @generated_exts, "run.xml"; # biber creates this file
+push @generated_exts, "lol"; # the listings package creates this file
 
 # put the ./src subfolder on searchpath
 ensure_path( 'TEXINPUTS', './src//' );
@@ -17,7 +18,9 @@ set_tex_cmds( '-synctex=1 -interaction=nonstopmode %O %S' );
 # create glossaries:
 add_cus_dep( 'acn', 'acr', 0, 'makeglossaries' );
 add_cus_dep( 'glo', 'gls', 0, 'makeglossaries' );
-$clean_ext .= " acr acn alg glo gls glg ist";
+push @generated_exts, 'glo', 'gls', 'glg';
+push @generated_exts, 'acn', 'acr', 'alg';
+$clean_ext .= ' %R.ist %R.xdy';
 sub makeglossaries {
 	my ($base_name, $path) = fileparse( $_[0] );
 	my @args = ( "-q", "-d", $path, $base_name );
@@ -25,9 +28,6 @@ sub makeglossaries {
 	return system "makeglossaries", "-d", $path, $base_name;
 }
 
-# Listings files
-$clean_ext .= " lol";  # clean tempfile for List of Listings
-
 # simple svg dependencies via InkScape
 add_cus_dep( 'svg', 'pdf', 0, 'runInkscape' );
 sub runInkscape {