diff --git a/beets_config_yaml b/beets_config_yaml new file mode 100755 index 0000000..1c5973c --- /dev/null +++ b/beets_config_yaml @@ -0,0 +1,221 @@ +directory: /mnt/q/CleanMusic/ +library: ~/musiclibrary.db + +# format_album: $albumartist - $album - $atype +# format_album: $genre - $albumartist [$year] - $album + +missing: + format_item: '$albumartist - $album [$albumtype]$atype: $track/$tracktotal $title' + format_album: '$albumartist: ($year) $album $albumtype $atype' + +paths: +# For the normal albums and eps. Used when none of the other paths should be used +# Interpreten/boysetsfire/(2000) After the Eulogy [Album]/02 - Rookie.flac +# Interpreten/Oliver Koletzki/(2019) We Are All Lost/1 - 02 - Oliver Koletzki; Monolink - We Are All Lost.flac + # default: %if{$artist_grouping,$artist_grouping/}$albumartist/$year - $album $atype%aunique{media}[%upper{$format}${bitdepth}]%if{$media,[$media]}/%if{$isMultidisc,$disc - }$track - $mySongartist$title + default: %if{$artist_grouping,$artist_grouping/}$first_artist/$year - $album $atype%aunique{media}[%upper{$format}${bitdepth}]%if{$media,[$media]}/%if{$isMultidisc,$disc - }$track - $mySongartist$title + +# For sampler and compilations. Used when 'comp:true' is set +# Compilations/Giegling/(2017) Planet Giegling/03 - Kettenkarussell - Walk With Me.flac + comp: Compilations/$albumartist/($year) $album%aunique{}/$myDisc$track - $artist - $title + +# For single songs. Used when 'singleton:true' is set +# singleton: + +# For Soundtracks. Used when 'albumtype:soundtrack' +# Soundtracks/Trent Reznor & Atticus Ross/Watchmen_ Volume 1 (Music From the HBO Series) (2019)/04 - Trent Reznor & Atticus Ross - Nun With a Motherf_&_ing Gun.flac + albumtype:soundtrack: Soundtracks/$albumartist - $album%aunique{} ($year)/$myDisc$track - $artist - $title + + +plugins: + - albumtypes + - duplicates + - fetchart + - rewrite + - missing + - chroma + - embedart + - inline + - discogs + - mbcollection + # - hook + +rewrite: + artist Björk & Tríó Guðmundar Ingólfssonar: Björk + artist Brant Bjork and The Low Desert Punk Band: Brant Bjork + artist King Gizzard & The Lizard Wizard with Mild High Club: King Gizzard & The Lizard Wizard + artist Kyuss _ Queens of the Stone Age: Kyuss + artist Professor Elemental & Tom Caruana: Professor Elemental + artist Resin Dogs Feat Spikey Tee: Resin Dogs + artist Sepultura _ Exodus: Sepultura + artist The Knife in collaboration with Mount Sims and Planningtorock: The Knife + artist Unida _ Dozer: Unida + + + +musicbrainz: + user: shapechecker + pass: 7ANCLPczDNFn6Sf65vdZ + +fetchart: +# #minwidth: 800 +# #maxwidth: 800 +# #enforce_ratio: yes + auto: yes + sources: filesystem coverart itunes amazon albumart fanarttv + +# Set the file permissions +# permissions: +# file: 666 +# dir: 777 + +import: + write: yes + copy: yes + move: no + autotag: yes + bell: no + log: ~/beet/beet.log + languages: en + +# Use the original release date of an album when a re-release is added +original_date: yes +# Start counting track numbers back at one for each disc +per_disc_numbering: yes + +# Activates the embed art plugin and adds the cover to the audio files metadata +embedart: + auto: yes + +albumtypes: + types: + - ep: 'EP' + - single: 'Single' + - soundtrack: 'OST' + - live: 'Live' + - compilation: 'Anthology' + - remix: 'Remix' + ignore_va: compilation + bracket: '[]' + + +album_fields: + artist_grouping: | + albumartist_dev = ["devin townsend", "devin townsend project","punky brüster","strapping young lad"] + DevinFolder = "_Devin Townsend Projects" + if albumartist.lower() in albumartist_dev: + return DevinFolder + albumartist_les = ["primus", "les claypool","les claypool and the holy mackerel","les claypool’s duo de twang","oysterhead","colonel claypool’s bucket of bernie brains","the les claypool frog brigade","the claypool lennon delirium"] + LesFolder = "_Les Claypool Projects" + if albumartist.lower() in albumartist_les: + return LesFolder + atype: | + atypes = ['EP', 'Single','Live'] + for atype in atypes: + if atype.lower() == albumtype.lower(): + return f' [{atype}]' + first_artist: albumartist.split(', ',1)[0:1][0] +# Custom user defined variables which can be used at the 'paths' section. 'inline' plugin required +# Each line is a small python script which should return a string or an int +item_fields: +# 'Nine Inch Nails - ' or '' depending if the artist differs from the album artist + mySongartist: artist + ' - ' if artist != albumartist and artist != '' else '' + +# Release with multiple discs? For boolean operations + isMultidisc: 1 if disctotal > 1 else 0 + +# # Changes the case of the album type +# # myAlbumType: ('' if albumtype == '' else ' [' + ('EP' if albumtype == 'ep' else albumtype.capitalize()) + ']') +# myAlbumType: ('' if albumtype == '' elif albumtype == 'album' ' [' + ('EP' if albumtype == 'ep' else albumtype.capitalize()) + ']') + +# '1 - ' or '' depending if there are multiple discs or not + myDisc: ('' if disctotal <= 1 else str(disc) + ' - ') + myBitDepth: ('' if bitdepth != 24 else '[24bit - '+ media + ']') + # primary_album_artist: albumartist.split(', ',1)[0:1][0] + + # primary_album_artist: | + # import json + # import requests + # query_url="https://musicbrainz.org/ws/2/artist/{0}?inc=aliases&fmt=json".format(mb_albumartistid) + # try: + # primary_albumartist= requests.get(query_url).json()["sort-name"] + # except: + # if albumartist_sort: + # print("MusicBrainz lookup for primary albumartist failed! Falling back on local sort-name.") + # return albumartist_sort + # else: + # print("MusicBrainz lookup for primary albumartist failed, and local sort-name not found! Using local artist name as-is.") + # return albumartist + # else: + # return primary_albumartist + +aunique: + keys: albumartist album + disambiguators: media + bracket: '[]' + + +extrafiles: + patterns: + all: '*.*' + artworkdir: + - '[sS]cans/' + - '[aA]rtwork/' + - '[aA]rt/' + - '[cC]over/' + paths: + artworkdir: $albumpath/Artwork + ext:log: $albumpath/$disc_folder/Data/ + ext:cue: $albumpath/$disc_folder/Data/ + ext:jpg: $albumpath/$disc_folder/ + + +copyartifacts: + extensions: .cue .log .jpg .jpeg .png .txt + + + #none, low, medium, strong +match: + strong_rec_thresh: 0.05 + max_rec: + source: strong + artist: strong + album: strong + media: strong + mediums: strong + year: strong + country: strong + label: strong + catalognum: strong + albumdisambig: strong + album_id: strong + tracks: strong + missing_tracks: medium + unmatched_tracks: medium + track_title: strong + track_artist: strong + track_index: strong + track_length: strong + track_id: strong + +# hook: +# hooks: +# # Output on exit: +# # beets just exited! +# # have a nice day! +# - event: cli_exit +# command: echo "beets just exited!" +# - event: cli_exit +# command: echo "have a nice day!" + +# # Output on item import: +# # importing "" +# # Where is the item being imported +# - event: item_imported +# command: echo "importing \"{item.path}\"" + +# # Output on write: +# # writing to "" +# # Where is the file being written to +# - event: write +# command: echo "writing to $({item.path} | cut -d/ -f 1-5)" \ No newline at end of file diff --git a/flake.nix b/flake.nix index 5a49a2c..f4739a6 100644 --- a/flake.nix +++ b/flake.nix @@ -15,7 +15,7 @@ system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; in { - homeConfigurations.sstent = home-manager.lib.homeManagerConfiguration { + homeConfigurations."sstent@StuPC" = home-manager.lib.homeManagerConfiguration { inherit pkgs; # Specify your home configuration modules here, for example, diff --git a/home.nix b/home.nix index 7ecd1f9..53e65e7 100644 --- a/home.nix +++ b/home.nix @@ -38,12 +38,14 @@ #git-run mr perl + beets ]; services.keybase.enable = true; services.kbfs.enable = true; home.file.".mrconfig".source = ./mrconfig; +xdg.configFile."beets/config.yaml".source = ./beets_config_yaml; programs.bash = { enable = true;