1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00

7 Commits

17 changed files with 111 additions and 35 deletions

View File

@@ -68,12 +68,19 @@ in {
};
};
environment.interactiveShellInit = ''
# Use XDG_RUNTIME_DIR for temporary files if available
if [ -d "$XDG_RUNTIME_DIR" ]; then
export TMPDIR="$XDG_RUNTIME_DIR"
fi
'';
environment.shellAliases = let
take = pkgs.writers.writeDash "take" ''
mkdir "$1" && cd "$1"
'';
cdt = pkgs.writers.writeDash "cdt" ''
cd "$(mktemp -d)"
cd $(mktemp -p "$XDG_RUNTIME_DIR" -d "cdt-XXXXXX")
pwd
'';
wcd = pkgs.writers.writeDash "wcd" ''

View File

@@ -306,7 +306,7 @@
openers =
let
as-pdf = pkgs.writers.writeDash "as-pdf" ''
d=$(mktemp -d)
d=$(mktemp -p "$XDG_RUNTIME_DIR" -d)
trap clean EXIT
clean() {
rm -rf "$d"

View File

@@ -41,7 +41,7 @@
${pkgs.restic}/bin/restic -r ${pkgs.lib.niveum.restic.repository} -p ${config.age.secrets.restic.path} "$@"
'')
(pkgs.writers.writeDashBin "restic-mount" ''
mountdir=$(mktemp -d)
mountdir=$(mktemp -p "$XDG_RUNTIME_DIR" -d "restic-mount-XXXXXXX")
trap clean EXIT
clean() {
rm -r "$mountdir"

View File

@@ -89,7 +89,7 @@
selection="$(${megatools "ls"} | ${pkgs.fzf}/bin/fzf)"
test -n "$selection" || exit 1
tmpdir="$(mktemp -d)"
tmpdir="$(mktemp -p "$XDG_RUNTIME_DIR" -d)"
trap clean EXIT
clean() {
rm -rf "$tmpdir"

View File

@@ -187,7 +187,7 @@ in
dconf.enable = true;
dconf.settings = {
# Change the default terminal for Nemo
"org/cinnamon/desktop/applications/terminal".exec = pkgs.lib.niveum.defaultApplications.terminal;
"org/cinnamon/desktop/applications/terminal".exec = lib.getExe pkgs.niveum-terminal;
};
};
}

View File

@@ -43,7 +43,7 @@ in {
sticky_history = true;
history_length = 20;
dmenu = "${pkgs.rofi}/bin/rofi -display-run dunst -show run";
browser = pkgs.lib.niveum.defaultApplications.browser;
browser = lib.getExe pkgs.niveum-browser;
verbosity = "mesg";
corner_radius = 0;
mouse_left_click = "do_action";

View File

@@ -216,9 +216,9 @@ in {
"${modifier}+w" = "layout tabbed";
"${modifier}+q" = "exec ${config.services.clipmenu.package}/bin/clipmenu";
"${modifier}+Return" = "exec ${pkgs.lib.niveum.defaultApplications.terminal}";
"${modifier}+t" = "exec ${pkgs.lib.niveum.defaultApplications.fileManager}";
"${modifier}+y" = "exec ${pkgs.lib.niveum.defaultApplications.browser}";
"${modifier}+Return" = "exec ${lib.getExe pkgs.niveum-terminal}";
"${modifier}+t" = "exec ${lib.getExe pkgs.niveum-filemanager}";
"${modifier}+y" = "exec ${lib.getExe pkgs.niveum-browser}";
"${modifier}+d" = "exec ${pkgs.writers.writeDash "run" ''exec rofi -modi run,ssh,window -show run''}";
"${modifier}+Shift+d" = "exec ${pkgs.notemenu}/bin/notemenu";

View File

@@ -1,11 +1,15 @@
{
pkgs,
lib,
config,
...
}: {
environment.variables.EDITOR = pkgs.lib.mkForce "nvim";
environment.shellAliases.vi = "nvim";
environment.shellAliases.vim = "nvim";
}: let
vim-kmein = (pkgs.vim-kmein.override {
# stylixColors = config.lib.stylix.colors;
colorscheme = "base16-gruvbox-dark-medium";
});
in {
environment.variables.EDITOR = lib.getExe vim-kmein;
environment.shellAliases.view = "nvim -R";
home-manager.users.me = {
@@ -34,11 +38,8 @@
};
environment.systemPackages = [
(pkgs.writers.writeDashBin "vim" ''neovim "$@"'')
(pkgs.vim-kmein.override {
# stylixColors = config.lib.stylix.colors;
colorscheme = "base16-gruvbox-dark-medium";
})
pkgs.vim-typewriter
vim-kmein
# language servers
pkgs.pyright

View File

@@ -155,6 +155,10 @@
};
overlays.default = final: prev: {
niveum-terminal = prev.alacritty;
niveum-browser = prev.firefox;
niveum-filemanager = prev.pcmanfm;
# wrapped from upstream
wrapScript =
{
@@ -264,6 +268,7 @@
noise-waves = prev.callPackage packages/noise-waves.nix { };
notemenu = prev.callPackage packages/notemenu.nix { };
obsidian-vim = prev.callPackage packages/obsidian-vim.nix { };
vim-typewriter = prev.callPackage packages/vim-typewriter.nix { };
polyglot = prev.callPackage packages/polyglot.nix { };
q = prev.callPackage packages/q.nix { };
qrpaste = prev.callPackage packages/qrpaste.nix { };
@@ -460,7 +465,7 @@
};
in
{
inherit (pkgs) auc swallow cheat-sh hc kpaste noise-waves trans stag qrpaste new-mac scanned default-gateway kirciuoklis tocharian-font image-convert-favicon image-convert-tolino heuretes mpv-tv mpv-iptv devanagari literature-quote booksplit manual-sort wttr emailmenu closest mpv-radio mpv-tuner cro nix-git text2pdf betacode brassica ipa polyglot jsesh gfs-fonts vim-kmein vimv brainmelter cyberlocker-tools pls untilport radio-news vg ttspaste depp fkill fzfmenu unicodmenu dmenu-randr notemenu man-pdf mansplain opustags q timer rfc gimp obsidian-vim devour go-webring random-zeno stardict-tools weechat-declarative klem radioStreams;
inherit (pkgs) auc swallow cheat-sh hc kpaste noise-waves trans stag qrpaste new-mac scanned default-gateway kirciuoklis tocharian-font image-convert-favicon image-convert-tolino heuretes mpv-tv mpv-iptv devanagari literature-quote booksplit manual-sort wttr emailmenu closest mpv-radio mpv-tuner cro nix-git text2pdf betacode brassica ipa polyglot jsesh gfs-fonts vim-kmein vimv brainmelter cyberlocker-tools pls untilport radio-news vg ttspaste depp fkill fzfmenu unicodmenu dmenu-randr notemenu man-pdf mansplain opustags q timer rfc gimp obsidian-vim devour go-webring random-zeno stardict-tools weechat-declarative klem radioStreams vim-typewriter ;
}
);
};

View File

@@ -69,12 +69,6 @@ in
};
};
defaultApplications = {
terminal = "alacritty";
browser = "${pkgs.firefox}/bin/firefox";
fileManager = "${pkgs.pcmanfm}/bin/pcmanfm";
};
retiolumAddresses = lib.mapAttrs (_: v: { inherit (v.retiolum) ipv4 ipv6; }) (
lib.filterAttrs (_: v: v ? "retiolum") systems
);

View File

@@ -4,7 +4,7 @@ chromium.override {
"--disable-sync"
"--no-default-browser-check"
"--no-first-run"
"--user-data-dir=$(${coreutils}/bin/mktemp -d)"
"--user-data-dir=$(${coreutils}/bin/mktemp -p $XDG_RUNTIME_DIR -d chromium-XXXXXX)"
"--incognito"
];
}

View File

@@ -12,8 +12,8 @@ writers.writeBashBin "fzfmenu" ''
PATH=$PATH:${lib.makeBinPath [st fzf dash]}
input=$(mktemp -u --suffix .fzfmenu.input)
output=$(mktemp -u --suffix .fzfmenu.output)
input=$(mktemp -p "$XDG_RUNTIME_DIR" -u --suffix .fzfmenu.input)
output=$(mktemp -p "$XDG_RUNTIME_DIR" -u --suffix .fzfmenu.output)
mkfifo "$input"
mkfifo "$output"
chmod 600 "$input" "$output"

View File

@@ -5,6 +5,7 @@
...
}:
neovim.override {
extraName = "-obsidian";
configure = {
customRC = ''
source ${./vim-kmein/shared.vim}

View File

@@ -6,6 +6,7 @@
gnused,
curl,
nur,
downloadDirectory ? "~/mobile/audio/Musik/radiomitschnitt"
}: let
playlistAPI = "https://radio.lassul.us";
@@ -104,8 +105,19 @@ in
writers.writeDashBin "pls" ''
case "$1" in
good|like|cool|nice|noice|top|yup|yass|yes|+)
${curl}/bin/curl -sS -XPOST "${playlistAPI}/good"
response=$(${curl}/bin/curl -sS -XPOST "${playlistAPI}/good")
echo ${lib.escapeShellArg (lib.concatStringsSep "\n" messages.good)} | shuf -n1 | ${sendIRC}
# Download the song if a download URL is provided in the string (youtu.be)
downloadUrl=$(echo "$response" | grep -oE 'https?://(www\.)?(youtube\.com|youtu\.be)/[^\s]+')
if [ -n "$downloadUrl" ]; then
echo "Downloading song from URL: $downloadUrl"
mkdir -p ${lib.escapeShellArg downloadDirectory}
cd ${lib.escapeShellArg downloadDirectory}
${download} "$downloadUrl"
else
echo "No download URL found in the response: $response"
fi
;;
skip|next|bad|sucks|no|nope|flop|-)
${curl}/bin/curl -sS -XPOST "${playlistAPI}/skip"

View File

@@ -6,7 +6,7 @@
nsxiv,
}:
writers.writeDashBin "qrpaste" ''
file="$(${mktemp}/bin/mktemp --tmpdir)"
file="$(${mktemp}/bin/mktemp -p "$XDG_RUNTIME_DIR" qrpaste-XXXXXX.png)"
trap clean EXIT
clean() {
rm "$file"

View File

@@ -10,6 +10,8 @@
...
}: (neovim.override {
configure = {
vimAlias = true;
viAlias = true;
customRC = ''
source ${./shared.vim}
source ${./init.vim}
@@ -41,11 +43,6 @@
copilot-vim
goyo
limelight-vim
vimPlugins.mdwa-nvim
vimPlugins.vim-ernest
fzf-vim
fzfWrapper
supertab

View File

@@ -0,0 +1,59 @@
{
neovim,
vimPlugins,
writers,
wmctrl,
...
}:
let
vim-typewriter = neovim.override {
extraName = "-typewriter";
configure = {
customRC = ''
source ${./vim-kmein/shared.vim}
function! s:goyo_enter()
let b:quitting = 0
let b:quitting_bang = 0
autocmd QuitPre <buffer> let b:quitting = 1
cabbrev <buffer> q! let b:quitting_bang = 1 <bar> q!
Limelight
endfunction
function! s:goyo_leave()
Limelight!
" Quit Vim if this is the only remaining buffer
if b:quitting && len(filter(range(1, bufnr('$')), 'buflisted(v:val)')) == 1
if b:quitting_bang
qa!
else
qa
endif
endif
endfunction
let g:limelight_conceal_ctermfg = 'gray'
let g:limelight_conceal_guifg = 'DarkGray'
let g:limelight_default_coefficient = 0.5
let g:limelight_paragraph_span = 0
autocmd! User GoyoEnter call <SID>goyo_enter()
autocmd! User GoyoLeave call <SID>goyo_leave()
autocmd VimEnter * Goyo
'';
packages.nvim.start = [
vimPlugins.goyo
vimPlugins.limelight-vim
vimPlugins.mdwa-nvim
vimPlugins.vim-ernest
];
};
};
in
writers.writeDashBin "vim-typewriter" ''
# tell the window manager to fullscreen the nvim window
${wmctrl}/bin/wmctrl -r :ACTIVE: -b add,fullscreen
${vim-typewriter}/bin/nvim "$@
''