This commit is contained in:
2023-02-25 04:46:28 +00:00
parent 6e4afd914a
commit c0305a7ed8
38 changed files with 536 additions and 451 deletions

View File

@@ -1,171 +0,0 @@
{ config, pkgs, lib, ... }:
{
options.mymods.beets.enable = lib.mkEnableOption "Beets music manager";
config = lib.mkIf config.mymods.beets.enable {
home-manager.users."sstent" = {
# xdg.configFile."beets/discogs_token.test".source = "/run/secrets/discogs_json";
# xdg.configFile."beets/discogs_token.test".source = config.sops.secrets.discogs_json.path;
# xdg.configFile."beets/discogs_token.test".source = config.lib.file.mkOutOfStoreSymlink "${config.sops.secrets.discogs_json.path}";
home.activation.afterWriteBoundary = {
after = [ "writeBoundary" ];
before = [];
data = ''
if [ ! -L "~/.config/beets/t3" ]; then
echo "=> File doesn't exist"
ln -s /run/secrets/discogs_json ~/.config/beets/discogs_token.json
fi
'';
};
programs.beets = {
enable = true;
settings = {
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 claypools duo de twang","oysterhead","colonel claypools 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]";
};
albumtypes = {
bracket = "[]";
ignore_va = "compilation";
types = [
{ ep = "EP"; }
{ single = "Single"; }
{ soundtrack = "OST"; }
{ live = "Live"; }
{ compilation = "Anthology"; }
{ remix = "Remix"; }
];
};
aunique = {
bracket = "[]";
disambiguators = "media";
keys = "albumartist album";
};
copyartifacts = { extensions = ".cue .log .jpg .jpeg .png .txt"; };
directory = "/mnt/q/CleanMusic/";
embedart = { auto = true; };
extrafiles = {
paths = {
artworkdir = "$albumpath/Artwork";
"ext:cue" = "$albumpath/$disc_folder/Data/";
"ext:jpg" = "$albumpath/$disc_folder/";
"ext:log" = "$albumpath/$disc_folder/Data/";
};
patterns = {
all = "*.*";
artworkdir = [ "[sS]cans/" "[aA]rtwork/" "[aA]rt/" "[cC]over/" ];
};
};
fetchart = {
auto = true;
sources = "filesystem coverart itunes amazon albumart fanarttv";
};
import = {
autotag = true;
bell = false;
copy = true;
languages = "en";
log = "~/.config/beets/beet.log";
move = false;
write = true;
};
item_fields = {
isMultidisc = "1 if disctotal > 1 else 0";
myBitDepth = "('' if bitdepth != 24 else '[24bit - '+ media + ']')";
myDisc = "('' if disctotal <= 1 else str(disc) + ' - ')";
mySongartist =
"artist + ' - ' if artist != albumartist and artist != '' else ''";
};
library = "~/musiclibrary.db";
match = {
max_rec = {
album = "strong";
album_id = "strong";
albumdisambig = "strong";
artist = "strong";
catalognum = "strong";
country = "strong";
label = "strong";
media = "strong";
mediums = "strong";
missing_tracks = "medium";
source = "strong";
track_artist = "strong";
track_id = "strong";
track_index = "strong";
track_length = "strong";
track_title = "strong";
tracks = "strong";
unmatched_tracks = "medium";
year = "strong";
};
strong_rec_thresh = 5.0e-2;
};
missing = {
format_album = "$albumartist: ($year) $album $albumtype $atype";
format_item =
"$albumartist - $album [$albumtype]$atype: $track/$tracktotal $title";
};
musicbrainz = {
pass = "7ANCLPczDNFn6Sf65vdZ";
user = "shapechecker";
};
original_date = true;
paths = {
"albumtype:soundtrack" =
"Soundtracks/$albumartist - $album%aunique{} ($year)/$myDisc$track - $artist - $title";
comp =
"Compilations/$albumartist/($year) $album%aunique{}/$myDisc$track - $artist - $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";
};
per_disc_numbering = true;
plugins = [
"albumtypes"
"duplicates"
"fetchart"
"rewrite"
"missing"
"chroma"
"embedart"
"inline"
"discogs"
"mbcollection"
];
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";
};
};
};
};
};
}

View File

@@ -1,39 +0,0 @@
[projects/ansible-home]
name = ansible-home
checkout = git clone 'keybase://private/sstent/ansible-home' 'ansible-home'
fixups =
if ! git config remote.keybase.url > /dev/null; then
echo "NO KeyBase"…
fi
[projects/nomad]
name = nomad
checkout = git clone 'keybase://private/sstent/nomad' 'nomad'
[projects/containers]
name = containers
checkout = git clone 'git@github.com:sstent/containers.git' "$MR_REPO"
post_checkout = cd "$MR_REPO" && git remote add keybase keybase://private/sstent/containers
fixups =
if ! git config remote.keybase.url > /dev/null; then
echo "No KeyBase"
fi
[.config/nixpkgs]
name = nixpkgs
checkout = git clone 'git@github.com:sstent/nixpkgs.git' 'nixpkgs'
fixups =
if ! git config remote.keybase.url > /dev/null; then
echo "No KeyBase"
git remote add keybase keybase://private/sstent/nixpkgs
fi
[projects/gocast]
name = gocast
checkout = git clone 'git@github.com:sstent/gocast.git' 'gocast'
[projects/code]
checkout = git clone 'keybase://private/sstent/code' 'code'

View File

@@ -1,245 +0,0 @@
[server]
login = shapechecker
passw = 6EbCdhRR7yUdN5ImeY9S
server = ('server.slsknet.org', 2242)
interface =
ctcpmsgs = False
autosearch = []
autoreply =
portrange = (2234, 2239)
upnp = True
upnp_interval = 4
auto_connect_startup = True
userlist = []
banlist = []
ignorelist = []
ipignorelist = {}
ipblocklist = {}
autojoin = ['nicotine']
autoaway = 15
away = False
private_chatrooms = False
command_aliases = {}
[transfers]
incompletedir = /home/sstent/.local/share/nicotine/incomplete
downloaddir = /home/sstent/.local/share/nicotine/downloads
uploaddir = /home/sstent/.local/share/nicotine/received
usernamesubfolders = False
shared = []
buddyshared = []
uploadbandwidth = 50
uselimit = False
usealtlimits = False
uploadlimit = 1000
uploadlimitalt = 100
downloadlimit = 0
downloadlimitalt = 100
preferfriends = False
useupslots = False
uploadslots = 2
afterfinish =
afterfolder =
lock = True
reverseorder = False
fifoqueue = False
usecustomban = False
limitby = True
customban = Banned, don't bother retrying
usecustomgeoblock = False
customgeoblock = Sorry, your country is blocked
queuelimit = 10000
filelimit = 100
buddysharestrustedonly = False
friendsnolimits = False
groupdownloads = folder_grouping
groupuploads = folder_grouping
geoblock = False
geoblockcc = ['']
remotedownloads = True
uploadallowed = 2
autoclear_downloads = False
autoclear_uploads = False
uploadsinsubdirs = True
rescanonstartup = True
enablefilters = False
downloadregexp = (\\(.*\.url|albumart(_{........-....-....-....-............}_)?(_?(large|small))?\.jpg|desktop\.ini|folder\.jpg|thumbs\.db)$)
downloadfilters = [['desktop.ini', 1], ['folder.jpg', 1], ['*.url', 1], ['thumbs.db', 1], ['albumart(_{........-....-....-....-............}_)?(_?(large|small))?\\.jpg', 0]]
download_doubleclick = 2
upload_doubleclick = 2
downloadsexpanded = True
uploadsexpanded = True
[userinfo]
descr = ''
pic =
[userbrowse]
expand_folders = True
[words]
censored = []
autoreplaced = {'teh ': 'the ', 'taht ': 'that ', 'tihng': 'thing', 'youre': "you're", 'jsut': 'just', 'thier': 'their', 'tihs': 'this'}
censorfill = *
censorwords = False
replacewords = False
tab = True
cycle = False
dropdown = False
characters = 3
roomnames = False
buddies = True
roomusers = True
commands = True
aliases = True
onematch = False
[logging]
debug = False
debugmodes = []
debuglogsdir = /home/sstent/.local/share/nicotine/logs/debug
logcollapsed = True
transferslogsdir = /home/sstent/.local/share/nicotine/logs/transfers
rooms_timestamp = %H:%M:%S
private_timestamp = %Y-%m-%d %H:%M:%S
log_timestamp = %Y-%m-%d %H:%M:%S
privatechat = True
chatrooms = True
transfers = False
debug_file_output = False
roomlogsdir = /home/sstent/.local/share/nicotine/logs/rooms
privatelogsdir = /home/sstent/.local/share/nicotine/logs/private
readroomlogs = True
readroomlines = 15
readprivatelines = 15
rooms = ['nicotine']
[privatechat]
store = True
users = []
[columns]
file_search = {}
download = {}
upload = {}
user_browse = {}
buddy_list = {}
chat_room = {'nicotine': {}}
[searches]
expand_searches = True
group_searches = folder_grouping
maxresults = 150
enable_history = True
history = []
enablefilters = False
filters_visible = False
defilter = ['', '', '', '', False, '', '']
filtercc = []
filterin = []
filterout = []
filtersize = []
filterbr = []
filtertype = []
search_results = True
max_displayed_results = 1500
min_search_chars = 3
remove_special_chars = True
private_search_results = True
[ui]
dark_mode = False
header_bar = True
icontheme =
chatme = #908e8b
chatremote =
chatlocal =
chathilite = #5288ce
urlcolor = #5288ce
useronline = #16bb5c
useraway = #c9ae13
useroffline = #e04f5e
usernamehotspots = True
usernamestyle = bold
textbg =
search =
searchq = GREY
inputcolor =
spellcheck = True
exitdialog = 1
tab_default =
tab_hilite = #497ec2
tab_changed = #497ec2
tab_select_previous = True
tabmain = Top
tabrooms = Top
tabprivate = Top
tabinfo = Top
tabbrowse = Top
tabsearch = Top
tab_status_icons = True
globalfont = Normal
chatfont = Normal
tabclosers = True
searchfont = Normal
listfont = Normal
browserfont = Normal
transfersfont = Normal
last_tab_id =
modes_visible = {'search': True, 'downloads': True, 'uploads': True, 'userbrowse': True, 'userinfo': True, 'private': True, 'userlist': True, 'chatrooms': True, 'interests': True}
modes_order = ['search', 'downloads', 'uploads', 'userbrowse', 'userinfo', 'private', 'userlist', 'chatrooms', 'interests']
buddylistinchatrooms = tab
trayicon = True
startup_hidden = False
filemanager =
speechenabled = False
speechprivate = User %(user)s told you: %(message)s
speechrooms = In room %(room)s, user %(user)s said: %(message)s
speechcommand = flite -t $
width = 800
height = 600
xposition = -1
yposition = -1
maximized = True
urgencyhint = True
file_path_tooltips = True
reverse_file_paths = True
[private_rooms]
rooms = {}
[urls]
protocols = {}
[interests]
likes = []
dislikes = []
[players]
default =
npothercommand =
npplayer = mpris
npformatlist = []
npformat =
[notifications]
notification_window_title = True
notification_tab_colors = False
notification_popup_sound = False
notification_popup_file = True
notification_popup_folder = True
notification_popup_private_message = True
notification_popup_chatroom = False
notification_popup_chatroom_mention = True
[plugins]
enable = True
enabled = []
[statistics]
started_downloads = 0
completed_downloads = 0
downloaded_size = 0
started_uploads = 0
completed_uploads = 0
uploaded_size = 0

View File

@@ -1,8 +1,7 @@
{...}: {
imports = [
# New module organization
./sstent.nix
./beets.nix
# Add your reusable home-manager modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
# These should be stuff you would like to share with others, not your personal configurations.
];
}
{
# List your module files here
# my-module = import ./my-module.nix;
}

View File

@@ -1,13 +0,0 @@
{ lib, config, pkgs, ... }:
{
options.mymods.nicotine.enable = lib.mkEnableOption "Enable Nicotine";
# config.home-manager = lib.mkIf config.mymods.nicotine.enable {
# home.packages = with pkgs; [
# nicotine-plus
# ];
# xdg.configFile."nicotine/config.old".source = ./configs/nicotine;
# };
}

View File

@@ -1,7 +0,0 @@
{ pkgs }:
pkgs.python3.withPackages (p: with p; [
requests # HTTP library
setuptools # setup.py
paramiko # ssh library
])

View File

@@ -1,194 +0,0 @@
{ lib, config, pkgs, ... }: {
options.mymods.user_sstent.enable = lib.mkEnableOption "Create sstent user";
config = lib.mkIf config.mymods.user_sstent.enable {
users.users = {
sstent = {
initialPassword = "farscape5";
isNormalUser = true;
openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+D4o3mL4BQsRr0UIhB1hn0brSTIJ9Lr0m2fMMVGF3tIuEihnmwGTeAX78q5/bmoo4gZy7G+CHal54S1lY8LY1KvmIDCpPJ8848HvLbTiTX3qZ7Mjaav+Ox9eHMwX+7zkPwdhfP8TDvmNe12j1GEKBhAm+FhdBQCbEV7cbm1SkX0+WBGoVvI2qbRm1RF0mOuTAmO3Lr2YeAcKJ21YxwNMv1Qrj7oxGYH9rLHLNwZ/0soIdTC9cikl4DHyvCs4HRYcVw36uuCVc/AyIT2GeETRapAQr8nzT89Haa1IThgZ9ztjSsSSOtrUhxatlMIfTIpVjl/gWq7GLfqd/ei/evTal sstent@StuPC"
];
extraGroups = [ "wheel" "video" ];
};
};
security.sudo.wheelNeedsPassword = false;
home-manager.users."sstent" = {
home.username = "sstent";
home.homeDirectory = "/home/sstent";
home.stateVersion = "23.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.packages = with pkgs; [
autossh
azure-cli
ansible
sshpass
(import ./packages/python-packages.nix { pkgs = pkgs; })
pyinfra
sshpass
nmap
nomad_1_4
consul
terraform
wget
curl
socat
p7zip
#git-run
mr
perl
# beets
qemu_kvm
nixos-generators
nixfmt
deploy-rs
];
services.keybase.enable = true;
services.kbfs.enable = true;
home.file.".mrconfig".source = configs/mrconfig;
# xdg.configFile."beets/config.yaml".source = ./beets_config.yaml;
programs = {
dircolors.enable = true;
go.enable = true;
gpg.enable = true;
htop.enable = true;
jq.enable = true;
less.enable = true;
man.enable = true;
nix-index.enable = true;
yt-dlp.enable = true;
bash = {
enable = true;
historyControl = ["ignorespace"];
shellOptions = [ "histappend" ];
sessionVariables = {
DOCKER_HOST="tcp://192.168.1.223:2375";
NOMAD_ADDR="http://192.168.1.250:4646";
TERM="xterm-256color";
ANSIBLE_HOST_KEY_CHECKING="False";
HSTR_CONFIG="hicolor";
PROMPT_COMMAND="history -a;"; # ensure synchronization between bash memory and history file
SSH_AUTH_SOCK="/home/sstent/.ssh/wsl-ssh-agent.sock";
};
bashrcExtra = ''
if [ -e /home/sstent/.nix-profile/etc/profile.d/nix.sh ]; then . /home/sstent/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer
ssh-add -l
export PATH=$PATH:/bin #Fix for wslpath
'';
};
# zsh = {
# enable = true;
# shellAliases = {
# ll = "ls -l";
# update = "sudo nixos-rebuild switch";
# };
# # history = {
# # size = 10000;
# # path = "${config.xdg.dataHome}/zsh/history";
# # };
# oh-my-zsh = {
# enable = true;
# plugins = [ "git" "thefuck" ];
# theme = "robbyrussell";
# };
# };
git = {
enable = true;
userName = "sstent";
userEmail = "stuart.stent@gmail.com";
};
ssh = {
enable = true;
matchBlocks = {
"odroid*" = {
user = "root";
};
};
};
};
systemd.user = lib.mkIf config.wsl.enable {
startServices = true;
services.ssh-proxy = lib.mkIf config.wsl.enable {
Unit = { Description = "WSL Proxy"; };
Service = {
ExecStart = "${pkgs.writeShellScript "start-proxy" ''
set -x
${pkgs.coreutils}/bin/rm -f /home/sstent/.ssh/wsl-ssh-agent.sock
${pkgs.util-linux}/bin/setsid ${pkgs.socat}/bin/socat UNIX-LISTEN:/home/sstent/.ssh/wsl-ssh-agent.sock,fork EXEC:"${pkgs.npiperelay}/bin/npiperelay.exe -ei -s //./pipe/openssh-ssh-agent",nofork
''}";
};
#Install = { WantedBy = [ "default.target" ]; };
};
};
}; ### endf home-manager
};
#######If Gnome
# config = lib.mkIf config.mymods.gnome.enable {
# programs.bash.enable = true;
# programs.firefox.enable = true;
# programs.gnome-terminal.enable = true;
# programs.gnome-terminal.profile = {
# "f2afd3c7-cb35-4d08-b6c2-523b444be64d" = {
# visibleName = "Stu";
# showScrollbar = true;
# default = true;
# font = "DejaVu Sans Mono 12";
# colors = {
# backgroundColor = "rgb(23,20,33)";
# foregroundColor = "rgb(208,207,204)";
# palette = [
# "#272224"
# "#FF473D"
# "#3DCCB2"
# "#FF9600"
# "#3B7ECB"
# "#F74C6D"
# "#00B5FC"
# "#3E3E3E"
# "#52494C"
# "#FF6961"
# "#85E6D4"
# "#FFB347"
# "#779ECB"
# "#F7A8B8"
# "#55CDFC"
# "#EEEEEC"
# ];
# };
# };
# };
# xdg.configFile."gnome-initial-setup-done".text = "yes";
# xdg.configFile."gtk-3.0/bookmarks".text = ''
# file:///mnt/Public Public
# '';
# dconf.settings = {
# # ...
# "org/gnome/shell" = {
# favorite-apps = [
# "firefox.desktop"
# "org.gnome.Terminal.desktop"
# "org.gnome.Nautilus.desktop"
# ];
# };
# "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; };
# };
# };
}