Compare commits

..

No commits in common. "main" and "integration" have entirely different histories.

16 changed files with 116 additions and 979 deletions

File diff suppressed because it is too large Load diff

View file

@ -65,12 +65,6 @@
inputs.nixpkgs.follows = "unstable"; inputs.nixpkgs.follows = "unstable";
}; };
# Tangled (atproto tools)
tangled = {
url = "git+https://tangled.org/@tangled.org/core";
inputs.nixpkgs.follows = "nixpkgs";
};
# Others # Others
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
rust-overlay = { rust-overlay = {
@ -79,10 +73,6 @@
}; };
tidalcycles.url = "github:mitchmindtree/tidalcycles.nix"; tidalcycles.url = "github:mitchmindtree/tidalcycles.nix";
tidalcycles.inputs.nixpkgs.follows = "unstable"; tidalcycles.inputs.nixpkgs.follows = "unstable";
autohide-tdrop = {
url = "github:I-Want-ToBelieve/autohide-tdrop";
inputs.nixpkgs.follows = "nixpkgs";
};
# TODO hundred rabbits software # TODO hundred rabbits software
# TODO needs secrets # TODO needs secrets
# dhyan.url = "git+ssh://gitea@git.sealight.xyz/aynish/dhyan?ref=main"; # dhyan.url = "git+ssh://gitea@git.sealight.xyz/aynish/dhyan?ref=main";
@ -94,8 +84,8 @@
outputs = { self, nixpkgs, unstable, nixos-hardware, home-manager, deploy-rs outputs = { self, nixpkgs, unstable, nixos-hardware, home-manager, deploy-rs
, agenix, disko, basant, grasp, nix-matrix-appservices, nur, tidalcycles , agenix, disko, basant, grasp, nix-matrix-appservices, nur, tidalcycles
, rust-overlay, vimwikicli, autohide-tdrop, darwin, nix-homebrew, homebrew-bundle , rust-overlay, vimwikicli, darwin, nix-homebrew, homebrew-bundle
, homebrew-core, homebrew-cask, jovian, tangled, ... }@inputs: , homebrew-core, homebrew-cask, jovian, ... }@inputs:
let let
forAllSystems = nixpkgs.lib.genAttrs [ forAllSystems = nixpkgs.lib.genAttrs [
"aarch64-linux" "aarch64-linux"
@ -111,7 +101,6 @@
}; };
vimwikiOverlay = final: prev: { vimwikiOverlay = final: prev: {
vimwiki-cli = vimwikicli.packages.${prev.system}.vimwiki-cli; vimwiki-cli = vimwikicli.packages.${prev.system}.vimwiki-cli;
autohide-tdrop = autohide-tdrop.packages.${prev.system}.default;
}; };
nixpkgsFor = forAllSystems (system: nixpkgsFor = forAllSystems (system:
@ -127,7 +116,6 @@
"vcv-rack" "vcv-rack"
"SunVox" "SunVox"
"renoise" "renoise"
"bitwig-studio-unwrapped"
]; ];
}; };
overlays = [ overlays = [
@ -153,7 +141,6 @@
# ]; # ];
overlays = [ overlays = [
agenix.overlays.default agenix.overlays.default
tangled.overlays.default # atproto tools only on lite deployments
self.overlays.additions self.overlays.additions
self.overlays.modifications self.overlays.modifications
tidalcycles.overlays.default # needed for nvim which comes pre-installed lol tidalcycles.overlays.default # needed for nvim which comes pre-installed lol

View file

@ -301,12 +301,11 @@
nepl = "n repl '<nixpkgs>'"; nepl = "n repl '<nixpkgs>'";
srch = "ns nixpkgs"; srch = "ns nixpkgs";
orch = "ns override"; orch = "ns override";
# Impure for bitwig on linux, not sure what it's for in darwin
nrb = '' nrb = ''
if [[ "$OSTYPE" == "darwin"* ]]; then if [[ "$OSTYPE" == "darwin"* ]]; then
cd ~/usr/helm && sudo darwin-rebuild switch --impure --flake ".#Anishs-MacBook-Pro" && cd $OLDPWD cd ~/usr/helm && sudo darwin-rebuild switch --impure --flake ".#Anishs-MacBook-Pro" && cd $OLDPWD
else else
cd /tmp && sudo nixos-rebuild switch --flake --impure '/home/anish/usr/helm#curve' && cd $OLDPWD cd /tmp && sudo nixos-rebuild switch --flake '/home/anish/usr/helm#curve' && cd $OLDPWD
fi fi
''; '';
nrt = "cd /tmp; sudo nixos-rebuild test --flake '/home/anish/usr/helm#curve'; cd $OLDPWD"; nrt = "cd /tmp; sudo nixos-rebuild test --flake '/home/anish/usr/helm#curve'; cd $OLDPWD";

View file

@ -9,8 +9,9 @@ mouse_map left click ungrabbed mouse_click_url_or_select
confirm_os_window_close 0 confirm_os_window_close 0
enable_audio_bell no enable_audio_bell no
# Ctrl+V for paste # Ctrl+V for paste
map ctrl+v paste_from_clipboard map ctrl+v paste_from_clipboard
mouse_map middle release ungrabbed paste_from_clipboard
-- Allows zen-mode.nvim to increase font size
-- allow_remote_control socket-only
-- listen_on unix:/tmp/kitty

View file

@ -2,35 +2,12 @@
@import "config.rasi" @import "config.rasi"
textbox {
vertical-align: 0.5;
horizontal-align: 0.5;
}
listview { listview {
columns: 9; columns: 4;
lines: 7;
cycle: true;
dynamic: true;
layout: vertical;
flow: horizontal;
reverse: false;
fixed-height: true;
fixed-columns: true;
}
element {
orientation: vertical;
}
element-text {
vertical-align: 0.5;
horizontal-align: 0.5;
font: "FiraCode Nerd Font 24";
} }
textbox-icon { textbox-icon {
str: "❇️ "; str: "🎑";
} }
prompt { prompt {

View file

@ -16,7 +16,7 @@ super + Return
kitty kitty
ctrl + super + Return ctrl + super + Return
tdrop -n tdrop_kitty --post-create-hook "autohide-tdrop &" -ma -h 60% -w 70% -x 15% -y 32 kitty --class=tdrop_kitty xst -e bash -c "(tmux ls | grep -qEv 'attached|scratch' && tmux at) || tmux"
super + space super + space
rofi -show drun -modi drun,run -show-icons -theme theme/appmenu.rasi rofi -show drun -modi drun,run -show-icons -theme theme/appmenu.rasi
@ -25,7 +25,7 @@ super + Tab
rofi -show window -show-icons -theme theme/windowmenu.rasi rofi -show window -show-icons -theme theme/windowmenu.rasi
super + e super + e
rofimoji --selector-args "-theme theme/emojimenu.rasi" --skin-tone moderate --action copy --hidden-descriptions rofimoji --selector-args "-theme theme/emojimenu.rasi" --skin-tone moderate --action copy
super + a super + a
paste paste

View file

@ -0,0 +1,8 @@
{ pkgs }:
# Remove the conditional entirely for now to test
pkgs.vimUtils.buildVimPlugin {
pname = "amp-nvim";
version = "unstable";
src = /Users/anishlakhwara/usr/amp.nvim;
}

View file

@ -0,0 +1,5 @@
-- amp.nvim configuration
require('amp').setup({
auto_start = true,
log_level = "info"
})

View file

@ -11,16 +11,6 @@ let
}; };
}; };
amp-nvim = pkgs.vimUtils.buildVimPlugin {
name = "amp-nvim";
src = pkgs.fetchFromGitHub {
owner = "sourcegraph";
repo = "amp.nvim";
rev = "main";
sha256 = "Sm/SQEIZlnqu/sD+MhZzgGm3bf+HnADOOimZ2Q++MXU=";
};
};
my-lspsaga = pkgs.vimUtils.buildVimPlugin { my-lspsaga = pkgs.vimUtils.buildVimPlugin {
name = "lspsaga.nvim"; name = "lspsaga.nvim";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
@ -113,6 +103,7 @@ let
doInstallCheck = false; doInstallCheck = false;
nvimRequireCheck = "none"; nvimRequireCheck = "none";
}; };
amp-nvim = import ./amp-plugin.nix { inherit pkgs; };
}; };
my-python-packages = python-packages: with python-packages; [ my-python-packages = python-packages: with python-packages; [
@ -233,7 +224,6 @@ in
nnoremap <leader>fb <cmd>Telescope buffers<cr> nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr> nnoremap <leader>fh <cmd>Telescope help_tags<cr>
nnoremap <leader>ft <cmd>Telescope tags<cr> nnoremap <leader>ft <cmd>Telescope tags<cr>
nnoremap <leader>fr <cmd>lua KitaabRecent()<cr>
" exit normal mode in terminal " exit normal mode in terminal
:tnoremap <C-n> <C-\><C-n> :tnoremap <C-n> <C-\><C-n>
@ -327,10 +317,10 @@ in
let g:fzf_layout = { 'window': { 'width': 0.8, 'height': 0.8 } } let g:fzf_layout = { 'window': { 'width': 0.8, 'height': 0.8 } }
" lsp commands " lsp commands
nnoremap gd :lua vim.lsp.buf.definition()<CR> nnoremap <leader>vgd :lua vim.lsp.buf.definition()<CR>
nnoremap gI :lua require('telescope.builtin').lsp_implementation()<CR> nnoremap <leader>vi :lua require('telescope.builtin').lsp_implementation()<CR>
nnoremap gK :lua vim.lsp.buf.signature_help()<CR> nnoremap <leader>vsh :lua vim.lsp.buf.signature_help()<CR>
nnoremap gr :lua require('telescope.builtin').lsp_references()<CR> nnoremap <leader>vrr :lua require('telescope.builtin').lsp_references()<CR>
" nnoremap <leader>vrn :lua vim.lsp.buf.rename()<CR> " nnoremap <leader>vrn :lua vim.lsp.buf.rename()<CR>
" nnoremap <leader>vh :lua vim.lsp.buf.hover()<CR> " nnoremap <leader>vh :lua vim.lsp.buf.hover()<CR>
" nnoremap <leader>vca :lua vim.lsp.buf.code_action()<CR> " nnoremap <leader>vca :lua vim.lsp.buf.code_action()<CR>
@ -339,9 +329,9 @@ in
" nnoremap <leader>va :lua require('telescope.builtin').lsp_code_actions(require('telescope.themes').get_cursor())<cr> " nnoremap <leader>va :lua require('telescope.builtin').lsp_code_actions(require('telescope.themes').get_cursor())<cr>
" lspsaga stuff doesn't work " lspsaga stuff doesn't work
nnoremap <leader>vd :Lspsaga peek_definition<CR> nnoremap <leader>vd :Lspsaga peek_definition<CR>
nnoremap <leader>cr :Lspsaga rename<CR><CR> nnoremap <leader>vrn :Lspsaga rename<CR><CR>
nnoremap K :Lspsaga hover_doc<CR> nnoremap <leader>vh :Lspsaga hover_doc<CR>
nnoremap <leader>ca :Lspsaga code_action<CR> nnoremap <leader>vca :Lspsaga code_action<CR>
nnoremap <leader>vsd :Lspsaga show_line_diagnostics<CR> nnoremap <leader>vsd :Lspsaga show_line_diagnostics<CR>
nnoremap <leader>vs :Dasht<Space> nnoremap <leader>vs :Dasht<Space>
nnoremap <leader>vn :Lspsaga diagnostic_jump_prev<CR> nnoremap <leader>vn :Lspsaga diagnostic_jump_prev<CR>
@ -929,7 +919,7 @@ in
map("n", "<leader>zl", "<Cmd>ZkLinks<CR>", opts) map("n", "<leader>zl", "<Cmd>ZkLinks<CR>", opts)
-- Preview a linked note. -- Preview a linked note.
map("n", "<leader>ck", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts) map("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts)
-- Open the code actions for a visual selection. -- Open the code actions for a visual selection.
map("v", "<leader>za", ":'<,'>lua vim.lsp.buf.range_code_action()<CR>", opts) map("v", "<leader>za", ":'<,'>lua vim.lsp.buf.range_code_action()<CR>", opts)
@ -1031,110 +1021,6 @@ in
vim.keymap.set('n', '<M-S-k>', '<Cmd>resize +2<CR>', {silent = true}) vim.keymap.set('n', '<M-S-k>', '<Cmd>resize +2<CR>', {silent = true})
vim.keymap.set('n', '<M-S-l>', '<Cmd>vertical resize +2<CR>', {silent = true}) vim.keymap.set('n', '<M-S-l>', '<Cmd>vertical resize +2<CR>', {silent = true})
-- Kitaab recent files (only date-based files, sorted reverse)
function KitaabRecent()
local pickers = require('telescope.pickers')
local finders = require('telescope.finders')
local conf = require('telescope.config').values
-- Use current working directory
local kitaab_path = vim.fn.getcwd()
-- Get all files (depth 1, exclude directories)
local files = vim.fn.readdir(kitaab_path, function(name)
return vim.fn.isdirectory(kitaab_path .. '/' .. name) == 0
end)
-- Filter to only date-based files (starting with digit)
local date_files = {}
for _, filename in ipairs(files) do
if filename:match('^%d') then
table.insert(date_files, filename)
end
end
-- Sort in reverse (most recent first)
table.sort(date_files, function(a, b) return a > b end)
pickers.new({}, {
prompt_title = 'Kitaab Recent',
finder = finders.new_table({
results = date_files,
entry_maker = function(entry)
return {
value = kitaab_path .. '/' .. entry,
display = entry,
ordinal = entry,
path = kitaab_path .. '/' .. entry,
}
end
}),
previewer = conf.file_previewer({}),
sorter = conf.generic_sorter({}),
}):find()
end
-- Setup amp.nvim
require('amp').setup({
auto_start = true,
log_level = "info"
})
-- Amp commands
vim.api.nvim_create_user_command("AmpSend", function(opts)
local message = opts.args
if message == "" then
print("Please provide a message to send")
return
end
local amp_message = require("amp.message")
amp_message.send_message(message)
end, {
nargs = "*",
desc = "Send a message to Amp",
})
vim.api.nvim_create_user_command("AmpSendBuffer", function(opts)
local buf = vim.api.nvim_get_current_buf()
local lines = vim.api.nvim_buf_get_lines(buf, 0, -1, false)
local content = table.concat(lines, "\n")
local amp_message = require("amp.message")
amp_message.send_message(content)
end, {
nargs = "?",
desc = "Send current buffer contents to Amp",
})
vim.api.nvim_create_user_command("AmpPromptSelection", function(opts)
local lines = vim.api.nvim_buf_get_lines(0, opts.line1 - 1, opts.line2, false)
local text = table.concat(lines, "\n")
local amp_message = require("amp.message")
amp_message.send_to_prompt(text)
end, {
range = true,
desc = "Add selected text to Amp prompt",
})
vim.api.nvim_create_user_command("AmpPromptRef", function(opts)
local bufname = vim.api.nvim_buf_get_name(0)
if bufname == "" then
print("Current buffer has no filename")
return
end
local relative_path = vim.fn.fnamemodify(bufname, ":.")
local ref = "@" .. relative_path
if opts.line1 ~= opts.line2 then
ref = ref .. "#L" .. opts.line1 .. "-" .. opts.line2
elseif opts.line1 > 1 then
ref = ref .. "#L" .. opts.line1
end
local amp_message = require("amp.message")
amp_message.send_to_prompt(ref)
end, {
range = true,
desc = "Add file reference (with selection) to Amp prompt",
})
EOF EOF
''; '';
@ -1253,11 +1139,12 @@ in
# custom # custom
yuck-vim yuck-vim
nvim-parinfer nvim-parinfer
amp-nvim
# vim-processing # vim-processing
] ++ lib.optionals pkgs.stdenv.isLinux [ ] ++ lib.optionals pkgs.stdenv.isLinux [
# Linux-only plugins # Linux-only plugins
vim-tidal # requires SuperCollider which is Linux-only vim-tidal # requires SuperCollider which is Linux-only
] ++ lib.optionals (customPlugins.amp-nvim != null) [
customPlugins.amp-nvim
]; ];
withPython3 = true; withPython3 = true;
extraPython3Packages = pkgs: with pkgs; [ tasklib six packaging ]; extraPython3Packages = pkgs: with pkgs; [ tasklib six packaging ];
@ -1265,4 +1152,3 @@ in
}; };
} }

View file

@ -18,7 +18,6 @@
../profiles/wallabag ../profiles/wallabag
../profiles/finance ../profiles/finance
../profiles/sync/website ../profiles/sync/website
../profiles/sync/music
../profiles/grasp ../profiles/grasp
# ../profiles/archivebox # ../profiles/archivebox
# ../profiles/woodpecker-agent # ../profiles/woodpecker-agent

View file

@ -23,15 +23,12 @@
settings.PermitRootLogin = "no"; settings.PermitRootLogin = "no";
}; };
hardware.keyboard.qmk.enable = true;
services.udev.packages = with pkgs; [ via ];
# import profiling tools # import profiling tools
programs.systemtap.enable = true; programs.systemtap.enable = true;
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
virtualisation.docker.storageDriver = "btrfs"; virtualisation.docker.storageDriver = "btrfs";
environment.systemPackages = with pkgs; [ docker-compose via ]; environment.systemPackages = with pkgs; [ docker-compose ];
# Speed up boot by removing dependency on network # Speed up boot by removing dependency on network
systemd = { systemd = {
@ -72,7 +69,7 @@
# lazy enable of ports necessary for KDE connect which is installed via cli home profile (for some reason?) # lazy enable of ports necessary for KDE connect which is installed via cli home profile (for some reason?)
networking.firewall = { networking.firewall = {
allowedTCPPorts = [ 22 4173 3000 ]; # allow ssh and vibekanban allowedTCPPorts = [ 22 4173 ]; # allow ssh
allowedTCPPortRanges = [{ allowedTCPPortRanges = [{
from = 1714; from = 1714;
to = 1764; to = 1764;

View file

@ -98,7 +98,6 @@ in {
# tic-80 # tic-80
ytfzf ytfzf
yt-dlp yt-dlp
# autohide-tdrop
]; ];
xdg.portal = { xdg.portal = {

View file

@ -1,6 +1,5 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
environment.systemPackages = [ pkgs.ffmpeg ];
mossnet.gonic.enable = true; mossnet.gonic.enable = true;
mossnet.gonic.settings = '' mossnet.gonic.settings = ''
music-path /mnt/two/music/ music-path /mnt/two/music/

View file

@ -29,7 +29,6 @@
# ardour # ardour
# reaper # reaper
# renoise # renoise
bitwig-studio
]; ];
services.pulseaudio.enable = false; services.pulseaudio.enable = false;

View file

@ -5,19 +5,16 @@
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
path = [ path = [
pkgs.coreutils pkgs.coreutils
pkgs.openssh
pkgs.gawk
pkgs.rsync pkgs.rsync
pkgs.beets
]; ];
script = builtins.readFile ./get-music.sh; script = builtins.readFile ./get-music.sh;
serviceConfig = { serviceConfig = {
User = "anish"; User = "anish";
}; };
}; };
systemd.timers.get-music-sync = { systemd.timers.get-music-timer = {
wantedBy = [ "timers.target" ]; wantedBy = [ "timers.target" ];
partOf = [ "get-music-sync.service" ]; partOf = [ "get-music-sync.service" ];
timerConfig.OnCalendar = [ "hourly" ]; timerConfig.OnCalendar = [ "daily" ];
}; };
} }

64
hosts/profiles/sync/music/get-music.sh Executable file → Normal file
View file

@ -1,61 +1,9 @@
#!/usr/bin/env bash #!/usr/bin/env bash
rsync -r --ignore-existing --log-file=/data/incoming/download-log hypercube@talos.feralhosting.com:private/transmission/data/* /data/incoming
set -euo pipefail # you need to set defaults for beets
# if already imported -> Skip
# Auto accept changes
# also install it lmao
#beet import /data/incoming
REMOTE_HOST="aynish@talos.feralhosting.com"
REMOTE_PATH="private/transmission/data/"
LOCAL_PATH="/mnt/two/incoming"
TRACKING_FILE="/mnt/two/incoming/.downloaded_albums"
LOG_FILE="/mnt/two/incoming/download-log"
# Create tracking file if it doesn't exist
touch "$TRACKING_FILE"
# Get list of albums on remote server
echo "$(date): Checking for new albums on seedbox..." >>"$LOG_FILE"
REMOTE_ALBUMS=$(rsync --dry-run --list-only "$REMOTE_HOST:$REMOTE_PATH" | grep '^d' | awk '{$1=$2=$3=$4=""; sub(/^ +/, ""); print}' | grep -v '^\.') || true
if [ -z "$REMOTE_ALBUMS" ]; then
echo "$(date): No albums found on remote server" >>"$LOG_FILE"
exit 0
fi
# Check each album against tracking file
NEW_ALBUMS=""
while IFS= read -r album; do
if [ -n "$album" ] && ! grep -qF "$album" "$TRACKING_FILE"; then
NEW_ALBUMS="$NEW_ALBUMS$album\n"
echo "$(date): Found new album: $album" >>"$LOG_FILE"
fi
done <<<"$REMOTE_ALBUMS"
if [ -z "$NEW_ALBUMS" ]; then
echo "$(date): No new albums to download" >>"$LOG_FILE"
exit 0
fi
# Download new albums only
echo "$(date): Starting download of new albums..." >>"$LOG_FILE"
while IFS= read -r album; do
if [ -n "$album" ]; then
echo "$(date): Downloading $album" >>"$LOG_FILE"
if rsync -r --log-file="$LOG_FILE" "$REMOTE_HOST:$REMOTE_PATH$album/" "$LOCAL_PATH/$album/"; then
echo "$album" >>"$TRACKING_FILE"
echo "$(date): Successfully downloaded $album" >>"$LOG_FILE"
# Import to beets
echo "$(date): Importing $album to beets..." >>"$LOG_FILE"
# Set umask to allow group read/write access
umask 002
if beet -p fetchart import -m -l /home/anish/music.log -q -g "$LOCAL_PATH/$album"; then
echo "$(date): Successfully imported $album to beets" >>"$LOG_FILE"
else
echo "$(date): Failed to import $album to beets" >>"$LOG_FILE"
fi
else
echo "$(date): Failed to download $album" >>"$LOG_FILE"
fi
fi
done <<<"$(echo -e "$NEW_ALBUMS")"
echo "$(date): Music sync completed" >>"$LOG_FILE"