mirror of
https://github.com/kmein/niveum
synced 2026-03-16 10:11:08 +01:00
Compare commits
7 Commits
2688d3d9ad
...
111d9aa8de
| Author | SHA1 | Date | |
|---|---|---|---|
| 111d9aa8de | |||
| 6c7645a9c8 | |||
| 1a8295a5a5 | |||
| 95e5a58f15 | |||
| b233c18709 | |||
| 8d3020ef84 | |||
| d058da7198 |
@@ -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" ''
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
...
|
||||
}:
|
||||
neovim.override {
|
||||
extraName = "-obsidian";
|
||||
configure = {
|
||||
customRC = ''
|
||||
source ${./vim-kmein/shared.vim}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
59
packages/vim-typewriter.nix
Normal file
59
packages/vim-typewriter.nix
Normal 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 "$@
|
||||
''
|
||||
Reference in New Issue
Block a user