mirror of
https://github.com/kmein/niveum
synced 2026-03-16 10:11:08 +01:00
use shared config from niphas
This commit is contained in:
@@ -1,127 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
darwin = lib.strings.hasSuffix "-darwin" pkgs.stdenv.hostPlatform.system;
|
||||
in
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.htop
|
||||
pkgs.w3m
|
||||
pkgs.wget
|
||||
# ARCHIVE TOOLS
|
||||
pkgs.unzip
|
||||
pkgs.unrar
|
||||
pkgs.p7zip
|
||||
pkgs.sshuttle
|
||||
pkgs.zip
|
||||
# MONITORS
|
||||
pkgs.iftop # interface bandwidth monitor
|
||||
pkgs.lsof # list open files
|
||||
# SHELL
|
||||
pkgs.sqlite
|
||||
pkgs.fd # better find
|
||||
pkgs.tree
|
||||
pkgs.parallel # for parallel, since moreutils shadows task spooler
|
||||
pkgs.ripgrep # better grep
|
||||
pkgs.rlwrap
|
||||
pkgs.progress # display progress bars for pipes
|
||||
pkgs.file # determine file type
|
||||
pkgs.gdu # ncurses disk usage (ncdu is broken)
|
||||
pkgs.rmlint # remove duplicate files
|
||||
pkgs.jq # json toolkit
|
||||
pkgs.jless # less(1) for json
|
||||
pkgs.fq # toolkit for yaml, xml and binaries
|
||||
pkgs.bc # calculator
|
||||
pkgs.pari # gp -- better calculator
|
||||
pkgs.ts
|
||||
pkgs.vimv
|
||||
pkgs.vg
|
||||
pkgs.fkill
|
||||
pkgs.cyberlocker-tools
|
||||
pkgs.untilport
|
||||
pkgs.kpaste
|
||||
# HARDWARE
|
||||
pkgs.pciutils # for lspci
|
||||
]
|
||||
++ lib.optionals (!darwin) [
|
||||
pkgs.usbutils # for lsusb
|
||||
pkgs.lshw # for lshw
|
||||
pkgs.iotop # I/O load monitor
|
||||
pkgs.psmisc # for killall, pstree
|
||||
];
|
||||
|
||||
security.wrappers = {
|
||||
pmount = {
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${pkgs.pmount}/bin/pmount";
|
||||
};
|
||||
pumount = {
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${pkgs.pmount}/bin/pumount";
|
||||
};
|
||||
};
|
||||
|
||||
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 -p "$XDG_RUNTIME_DIR" -d "cdt-XXXXXX")
|
||||
pwd
|
||||
'';
|
||||
wcd = pkgs.writers.writeDash "wcd" ''
|
||||
cd "$(readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" | xargs dirname)/.."
|
||||
'';
|
||||
where = pkgs.writers.writeDash "where" ''
|
||||
readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" | xargs dirname
|
||||
'';
|
||||
in
|
||||
{
|
||||
nixi = "nix repl nixpkgs";
|
||||
take = "source ${take}";
|
||||
wcd = "source ${wcd}";
|
||||
where = "source ${where}";
|
||||
# temporary files and directories
|
||||
cdt = "source ${cdt}";
|
||||
vit = "$EDITOR $(mktemp)";
|
||||
# file safety
|
||||
mv = "${pkgs.coreutils}/bin/mv --interactive";
|
||||
rm = "${pkgs.coreutils}/bin/rm --interactive";
|
||||
cp = "${pkgs.coreutils}/bin/cp --interactive";
|
||||
# colours
|
||||
cat = "${pkgs.bat}/bin/bat --theme=ansi --style=plain";
|
||||
l = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso --almost-all";
|
||||
ls = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso";
|
||||
ll = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso -l";
|
||||
la = "${pkgs.coreutils}/bin/ls --color=auto --time-style=long-iso --almost-all -l";
|
||||
}
|
||||
// (
|
||||
if darwin then
|
||||
{ }
|
||||
else
|
||||
{
|
||||
"ß" = "${pkgs.util-linux}/bin/setsid";
|
||||
ip = "${pkgs.iproute2}/bin/ip -c";
|
||||
# systemd
|
||||
s = "${pkgs.systemd}/bin/systemctl";
|
||||
us = "${pkgs.systemd}/bin/systemctl --user";
|
||||
j = "${pkgs.systemd}/bin/journalctl";
|
||||
uj = "${pkgs.systemd}/bin/journalctl --user";
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -1,35 +1,7 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
in
|
||||
{
|
||||
environment.variables.TERMINAL = "alacritty";
|
||||
|
||||
home-manager.users.me = {
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
keyboard.bindings = [
|
||||
{
|
||||
key = "Plus";
|
||||
mods = "Control";
|
||||
action = "IncreaseFontSize";
|
||||
}
|
||||
{
|
||||
key = "Minus";
|
||||
mods = "Control";
|
||||
action = "DecreaseFontSize";
|
||||
}
|
||||
{
|
||||
key = "Key0";
|
||||
mods = "Control";
|
||||
action = "ResetFontSize";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -18,44 +18,45 @@
|
||||
];
|
||||
};
|
||||
|
||||
services.displayManager.autoLogin.enable = lib.mkForce false;
|
||||
|
||||
# if we have multiple users, they should be able to log in through a greeter
|
||||
programs.regreet =
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
niphas-wallpaper =
|
||||
let
|
||||
wallpaper =
|
||||
pkgs.runCommand "textured-monochrome-wallpaper.png"
|
||||
backgroundColor = config.lib.stylix.colors.withHashtag.base06;
|
||||
foregroundColor = config.lib.stylix.colors.withHashtag.base01;
|
||||
width = 1920;
|
||||
height = 1080;
|
||||
|
||||
svgUrl = "https://applicative.systems/_astro/logo-full.D8zRvqBZ.svg";
|
||||
logoSvg = prev.fetchurl {
|
||||
url = svgUrl;
|
||||
hash = "sha256-qXDIEZsAPn4eUJ3kb5U6L3PMUCtWGYqhqyIaBt7FntE=";
|
||||
};
|
||||
in
|
||||
prev.runCommand "applicative-wallpaper.png"
|
||||
{
|
||||
buildInputs = [ pkgs.imagemagick ];
|
||||
nativeBuildInputs = [ prev.imagemagick ];
|
||||
}
|
||||
''
|
||||
magick -size 2560x1440 plasma:fractal \
|
||||
-colorspace Gray \
|
||||
-normalize \
|
||||
-fill ${lib.escapeShellArg config.lib.stylix.colors.withHashtag.base00} -colorize 100% \
|
||||
-attenuate 0.15 +noise Gaussian \
|
||||
# 1. We use -background to set the canvas color
|
||||
# 2. We use -fuzz and -opaque to replace the logo's internal colors
|
||||
# 3. We use -gravity and -extent to center it on a wallpaper-sized canvas
|
||||
|
||||
convert \
|
||||
-background none \
|
||||
-density 300 \
|
||||
"${logoSvg}" \
|
||||
-fuzz 100% -fill "${foregroundColor}" -opaque black \
|
||||
-resize 800x800 \
|
||||
-gravity center \
|
||||
-background "${backgroundColor}" \
|
||||
-extent ${toString width}x${toString height} \
|
||||
$out
|
||||
'';
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
background = {
|
||||
path = wallpaper;
|
||||
fit = "Fill";
|
||||
};
|
||||
appearance.greeting_msg = "स्वागतम्";
|
||||
widget.clock.format = "%F %H:%M";
|
||||
};
|
||||
font = {
|
||||
inherit (config.stylix.fonts.sansSerif) name;
|
||||
size = config.stylix.fonts.sizes.applications;
|
||||
};
|
||||
iconTheme = {
|
||||
inherit (config.home-manager.users.me.gtk.iconTheme) package name;
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
|
||||
services.getty.autologinOnce = lib.mkForce false;
|
||||
|
||||
# to run nspawn in nix sandbox
|
||||
nix.settings = {
|
||||
@@ -65,8 +66,6 @@
|
||||
"auto-allocate-uids"
|
||||
"cgroups"
|
||||
];
|
||||
extra-sandbox-paths = [ "/dev/net" ]; # needed for tests of VPNs
|
||||
|
||||
trusted-users = [ config.users.users.applicative.name ];
|
||||
};
|
||||
|
||||
@@ -86,82 +85,4 @@
|
||||
commands = [ "ALL" ];
|
||||
}
|
||||
];
|
||||
|
||||
home-manager.users.applicative =
|
||||
let
|
||||
mainGitConfig = (import ./git.nix {
|
||||
inherit pkgs lib config;
|
||||
}).home-manager.users.me.programs.git;
|
||||
mainAlacrittyConfig = (import ./alacritty.nix {
|
||||
inherit pkgs lib config;
|
||||
}).home-manager.users.me.programs.alacritty;
|
||||
in
|
||||
lib.recursiveUpdate
|
||||
(import ./graphical/home-manager.nix {
|
||||
inherit lib pkgs config;
|
||||
})
|
||||
{
|
||||
xdg.enable = true;
|
||||
home.stateVersion = "25.11";
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
inherit (mainGitConfig.settings) alias;
|
||||
};
|
||||
};
|
||||
|
||||
programs.alacritty = mainAlacrittyConfig;
|
||||
|
||||
services.hyprpaper =
|
||||
let
|
||||
# asgWallpaper = pkgs.fetchurl {
|
||||
# url = "http://c.krebsco.de/asg-wallpaper.png";
|
||||
# hash = "sha256-XLp8XcUgFgDKW5Qae0//0Xw9lhribcevQTVSQvClEB4=";
|
||||
# };
|
||||
|
||||
backgroundColor = config.lib.stylix.colors.withHashtag.base06;
|
||||
foregroundColor = config.lib.stylix.colors.withHashtag.base01;
|
||||
width = 1920;
|
||||
height = 1080;
|
||||
|
||||
svgUrl = "https://applicative.systems/_astro/logo-full.D8zRvqBZ.svg";
|
||||
logoSvg = pkgs.fetchurl {
|
||||
url = svgUrl;
|
||||
hash = "sha256-qXDIEZsAPn4eUJ3kb5U6L3PMUCtWGYqhqyIaBt7FntE=";
|
||||
};
|
||||
|
||||
asgWallpaper =
|
||||
pkgs.runCommand "applicative-wallpaper.png"
|
||||
{
|
||||
nativeBuildInputs = [ pkgs.imagemagick ];
|
||||
}
|
||||
''
|
||||
# 1. We use -background to set the canvas color
|
||||
# 2. We use -fuzz and -opaque to replace the logo's internal colors
|
||||
# 3. We use -gravity and -extent to center it on a wallpaper-sized canvas
|
||||
|
||||
convert \
|
||||
-background none \
|
||||
-density 300 \
|
||||
"${logoSvg}" \
|
||||
-fuzz 100% -fill "${foregroundColor}" -opaque black \
|
||||
-resize 800x800 \
|
||||
-gravity center \
|
||||
-background "${backgroundColor}" \
|
||||
-extent ${toString width}x${toString height} \
|
||||
$out
|
||||
'';
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
ipc = false;
|
||||
splash = true;
|
||||
preload = [ "${asgWallpaper}" ];
|
||||
wallpaper = [ ",${asgWallpaper}" ];
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -87,11 +87,6 @@ in
|
||||
swallow = command: "${pkgs.swallow}/bin/swallow ${command}";
|
||||
in
|
||||
{
|
||||
o = "${pkgs.xdg-utils}/bin/xdg-open";
|
||||
ns = "nix-shell --run zsh";
|
||||
pbcopy = "${pkgs.wl-clipboard}/bin/wl-copy";
|
||||
pbpaste = "${pkgs.wl-clipboard}/bin/wl-paste";
|
||||
tmux = "${pkgs.tmux}/bin/tmux -2";
|
||||
sxiv = swallow "${pkgs.nsxiv}/bin/nsxiv";
|
||||
zathura = swallow "${pkgs.zathura}/bin/zathura";
|
||||
im = "${pkgs.openssh}/bin/ssh weechat@makanek -t tmux attach-session -t IM";
|
||||
@@ -153,15 +148,6 @@ in
|
||||
home-manager.backupFileExtension = "bak";
|
||||
}
|
||||
{
|
||||
systemd.user.services.udiskie = {
|
||||
after = [ "udisks2.service" ];
|
||||
wants = [ "udisks2.service" ];
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.udiskie}/bin/udiskie --verbose --no-config --notify";
|
||||
};
|
||||
};
|
||||
services.udisks2.enable = true;
|
||||
programs.dconf.enable = true;
|
||||
home-manager.users.me = {
|
||||
dconf.enable = true;
|
||||
@@ -175,31 +161,26 @@ in
|
||||
./stylix.nix
|
||||
./alacritty.nix
|
||||
./backup.nix
|
||||
./bash.nix
|
||||
./bluetooth.nix
|
||||
./aerc.nix
|
||||
./khal.nix
|
||||
./browser.nix
|
||||
./clipboard.nix
|
||||
./cloud.nix
|
||||
./direnv.nix
|
||||
./fonts.nix
|
||||
./fzf.nix
|
||||
./git.nix
|
||||
./hledger.nix
|
||||
./htop.nix
|
||||
./uni.nix
|
||||
# ./i3.nix
|
||||
./graphical
|
||||
./i3status-rust.nix
|
||||
./keyboard
|
||||
./kdeconnect.nix
|
||||
{ services.upower.enable = true; }
|
||||
./lb.nix
|
||||
./mpv.nix
|
||||
./mime.nix
|
||||
./neovim.nix
|
||||
./newsboat.nix
|
||||
./editor.nix
|
||||
./flameshot.nix
|
||||
./packages.nix
|
||||
./virtualization.nix
|
||||
@@ -211,17 +192,19 @@ in
|
||||
./ssh.nix
|
||||
./sound.nix
|
||||
./sudo.nix
|
||||
./tmux.nix
|
||||
./unclutter.nix
|
||||
./vscode.nix
|
||||
./wallpaper.nix
|
||||
./zsh.nix
|
||||
{
|
||||
home-manager.users.me.home.file.".zshrc".text = ''
|
||||
# nothing to see here
|
||||
'';
|
||||
}
|
||||
{
|
||||
programs.zsh.interactiveShellInit = ''
|
||||
hash -d nixos=/etc/nixos niveum=${config.users.users.me.home}/sync/src/niveum
|
||||
'';
|
||||
|
||||
home-manager.users.me = {
|
||||
xdg.userDirs =
|
||||
let
|
||||
|
||||
@@ -4,20 +4,7 @@
|
||||
config,
|
||||
...
|
||||
}:
|
||||
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.vi = "nvim";
|
||||
environment.shellAliases.vim = "nvim";
|
||||
environment.shellAliases.view = "nvim -R";
|
||||
|
||||
home-manager.users.me = {
|
||||
editorconfig = {
|
||||
enable = true;
|
||||
@@ -46,7 +33,6 @@ in
|
||||
environment.systemPackages = [
|
||||
pkgs.vim-typewriter
|
||||
pkgs.dawn-editor
|
||||
vim-kmein
|
||||
|
||||
# language servers
|
||||
pkgs.pyright
|
||||
@@ -1,27 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.fzf = {
|
||||
fuzzyCompletion = true;
|
||||
keybindings = true;
|
||||
};
|
||||
|
||||
home-manager.users.me = {
|
||||
programs.fzf =
|
||||
let
|
||||
defaultCommand = "${pkgs.fd}/bin/fd --type f --strip-cwd-prefix --follow --no-ignore-vcs --exclude .git";
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
defaultCommand = defaultCommand;
|
||||
defaultOptions = [ "--height=40%" ];
|
||||
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
|
||||
changeDirWidgetOptions = [
|
||||
"--preview='${pkgs.tree}/bin/tree -L 1 {}'"
|
||||
"--bind=space:toggle-preview"
|
||||
"--preview-window=hidden"
|
||||
];
|
||||
fileWidgetCommand = defaultCommand;
|
||||
fileWidgetOptions = [ "--preview='head -$LINES {}'" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -4,50 +4,12 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.mr
|
||||
pkgs.gitFull
|
||||
pkgs.git-crypt
|
||||
pkgs.gitflow
|
||||
pkgs.gh
|
||||
pkgs.git-extras
|
||||
# pkgs.git-trim
|
||||
pkgs.git-absorb
|
||||
pkgs.gitstats
|
||||
pkgs.patch
|
||||
pkgs.patchutils
|
||||
];
|
||||
|
||||
environment.shellAliases = {
|
||||
gf = "git-flow";
|
||||
g = "git";
|
||||
};
|
||||
|
||||
home-manager.users.me = {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
package = pkgs.gitFull;
|
||||
settings.alias = {
|
||||
br = "branch";
|
||||
co = "checkout";
|
||||
ci = "commit";
|
||||
cm = "commit -m";
|
||||
amend = "commit --amend";
|
||||
st = "status -s";
|
||||
unstage = "reset HEAD --";
|
||||
diffs = "diff --staged";
|
||||
pushf = "push --force-with-lease";
|
||||
last = "log -1 HEAD";
|
||||
logs = "log --pretty=oneline";
|
||||
graph = "log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all";
|
||||
};
|
||||
ignores = pkgs.lib.niveum.ignorePaths;
|
||||
settings.user.name = pkgs.lib.niveum.kieran.name;
|
||||
settings.user.email = pkgs.lib.niveum.kieran.email;
|
||||
settings.pull.ff = "only";
|
||||
settings.rebase.autoStash = true;
|
||||
settings.merge.autoStash = true;
|
||||
settings.push.autoSetupRemove = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ in
|
||||
pkgs.xdg-desktop-portal-hyprland
|
||||
];
|
||||
|
||||
services.displayManager.autoLogin = {
|
||||
services.getty.autologinOnce = {
|
||||
enable = true;
|
||||
user = config.users.users.me.name;
|
||||
};
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
age.secrets = {
|
||||
miniflux-api-token = {
|
||||
file = ../secrets/miniflux-api-token.age;
|
||||
owner = config.users.users.me.name;
|
||||
group = config.users.users.me.group;
|
||||
mode = "400";
|
||||
};
|
||||
};
|
||||
|
||||
home-manager.users.me = {
|
||||
programs.i3status-rust = {
|
||||
enable = true;
|
||||
bars.bottom = {
|
||||
icons = "awesome6";
|
||||
settings = {
|
||||
theme.overrides =
|
||||
let
|
||||
colours = config.lib.stylix.colors.withHashtag;
|
||||
in
|
||||
{
|
||||
idle_bg = colours.base00;
|
||||
idle_fg = colours.base05;
|
||||
good_bg = colours.base00;
|
||||
good_fg = colours.base0B;
|
||||
warning_bg = colours.base00;
|
||||
warning_fg = colours.base0A;
|
||||
critical_bg = colours.base00;
|
||||
critical_fg = colours.base09;
|
||||
info_bg = colours.base00;
|
||||
info_fg = colours.base04;
|
||||
separator_bg = colours.base00;
|
||||
separator = " ";
|
||||
};
|
||||
};
|
||||
blocks = [
|
||||
{
|
||||
block = "music";
|
||||
format = "{$icon $combo $play |}";
|
||||
separator = " – ";
|
||||
}
|
||||
{
|
||||
block = "net";
|
||||
format = " $icon HU";
|
||||
missing_format = "";
|
||||
device = "ppp0";
|
||||
}
|
||||
{
|
||||
block = "net";
|
||||
format = " $icon FU";
|
||||
missing_format = "";
|
||||
device = "tun0";
|
||||
}
|
||||
{
|
||||
block = "battery";
|
||||
format = "$icon $percentage $time";
|
||||
device = "DisplayDevice";
|
||||
driver = "upower";
|
||||
}
|
||||
{
|
||||
block = "sound";
|
||||
}
|
||||
{
|
||||
block = "disk_space";
|
||||
format = "$icon $available";
|
||||
}
|
||||
{
|
||||
block = "memory";
|
||||
format = "$icon $mem_used.eng(prefix:G)";
|
||||
}
|
||||
{ block = "load"; }
|
||||
{
|
||||
block = "time";
|
||||
format = "$icon $timestamp.datetime(f:'%Y-%m-%d (%W %a) %H:%M', l:de_DE)";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
(pkgs.writers.writeDashBin "miniflux-watch-later" ''
|
||||
miniflux_api_token=$(cat ${config.age.secrets.miniflux-api-token.path})
|
||||
random_feed_item=$(
|
||||
${pkgs.curl}/bin/curl -u "$miniflux_api_token" --basic -s 'https://feed.kmein.de/v1/entries?starred=true&limit=0' \
|
||||
| ${pkgs.jq}/bin/jq -r '.entries[].id' \
|
||||
| ${pkgs.coreutils}/bin/shuf -n1
|
||||
)
|
||||
${pkgs.xdg-utils}/bin/xdg-open "https://feed.kmein.de/starred/entry/$random_feed_item"
|
||||
'')
|
||||
];
|
||||
}
|
||||
@@ -176,14 +176,11 @@ in
|
||||
di-fm-key-file = config.age.secrets.di-fm-key.path;
|
||||
})
|
||||
# kmein.slide
|
||||
termdown
|
||||
termdown # countdown timer in terminal
|
||||
image-convert-tolino
|
||||
rfc
|
||||
tag
|
||||
timer
|
||||
nix-prefetch-git
|
||||
nix-git
|
||||
nixfmt-rfc-style
|
||||
comma
|
||||
par
|
||||
qrencode
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.tmuxp
|
||||
pkgs.reptyr # move programs over to a tmux session
|
||||
];
|
||||
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
keyMode = "vi";
|
||||
clock24 = true;
|
||||
terminal = "screen-256color";
|
||||
baseIndex = 1;
|
||||
aggressiveResize = true;
|
||||
escapeTime = 50;
|
||||
historyLimit = 7000;
|
||||
shortcut = "b";
|
||||
extraConfig = ''
|
||||
set -g mouse on
|
||||
|
||||
unbind *
|
||||
bind * list-clients
|
||||
|
||||
# naVIgate
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
# Use C-h and C-l to cycle through panes
|
||||
bind -r C-h select-window -t :-
|
||||
bind -r C-l select-window -t :+
|
||||
|
||||
setw -g monitor-activity on
|
||||
set -g visual-activity on
|
||||
|
||||
set -g status-interval 2
|
||||
set -g status-left-length 32
|
||||
set -g status-right-length 150
|
||||
|
||||
set -g status-position bottom
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,98 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
promptColours.success = "cyan";
|
||||
promptColours.failure = "red";
|
||||
in
|
||||
{
|
||||
programs.zsh =
|
||||
let
|
||||
zsh-completions = pkgs.fetchFromGitHub {
|
||||
owner = "zsh-users";
|
||||
repo = "zsh-completions";
|
||||
rev = "cf565254e26bb7ce03f51889e9a29953b955b1fb";
|
||||
sha256 = "1yf4rz99acdsiy0y1v3bm65xvs2m0sl92ysz0rnnrlbd5amn283l";
|
||||
};
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestions.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
syntaxHighlighting.highlighters = [
|
||||
"main"
|
||||
"brackets"
|
||||
"pattern"
|
||||
"line"
|
||||
];
|
||||
interactiveShellInit = ''
|
||||
setopt INTERACTIVE_COMMENTS CORRECT
|
||||
setopt MULTIOS
|
||||
setopt AUTO_NAME_DIRS
|
||||
setopt AUTOCD CDABLE_VARS
|
||||
setopt HIST_IGNORE_ALL_DUPS
|
||||
setopt VI
|
||||
setopt AUTO_MENU
|
||||
setopt COMPLETE_IN_WORD
|
||||
setopt ALWAYS_TO_END
|
||||
unsetopt NOMATCH
|
||||
unsetopt MENU_COMPLETE
|
||||
|
||||
zstyle ':completion:*:*:*:*:*' menu select
|
||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z-_}={A-Za-z_-}' 'r:|=*' 'l:|=* r:|=*'
|
||||
zstyle ':completion:*' special-dirs true
|
||||
zstyle ':completion:*' list-colors \'\'
|
||||
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
|
||||
zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w"
|
||||
zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
|
||||
|
||||
export KEYTIMEOUT=1
|
||||
|
||||
hash -d nixos=/etc/nixos niveum=${config.users.users.me.home}/sync/src/niveum
|
||||
|
||||
autoload -U zmv run-help edit-command-line
|
||||
|
||||
fpath=(${zsh-completions}/src $fpath)
|
||||
'';
|
||||
promptInit = ''
|
||||
autoload -Uz vcs_info
|
||||
zstyle ':vcs_info:*' enable git
|
||||
zstyle ':vcs_info:*' check-for-changes true
|
||||
zstyle ':vcs_info:*' stagedstr '%F{green}+%f'
|
||||
zstyle ':vcs_info:*' unstagedstr '%F{red}~%f'
|
||||
zstyle ':vcs_info:*' use-prompt-escapes true
|
||||
zstyle ':vcs_info:*' formats "%c%u%F{cyan}%b%f"
|
||||
zstyle ':vcs_info:*' actionformats "(%a) %c%u%F{cyan}%b%f"
|
||||
|
||||
precmd () {
|
||||
vcs_info
|
||||
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ] || [ -n "$SSH_CONNECTION" ]; then
|
||||
RPROMPT="$(hostname)"
|
||||
else
|
||||
RPROMPT="$vcs_info_msg_0_"
|
||||
fi
|
||||
if [[ -n $IN_NIX_SHELL ]]; then
|
||||
PROMPT='%B%~%b %(?.%F{${promptColours.success}}.%F{${promptColours.failure}})λ%f '
|
||||
else
|
||||
PROMPT='%B%~%b %(?.%F{${promptColours.success}}.%F{${promptColours.failure}})%#%f '
|
||||
fi
|
||||
print -Pn "\e]2;%n@%M:%~\a" # title bar prompt
|
||||
}
|
||||
|
||||
zle-keymap-select zle-line-init () {
|
||||
case $KEYMAP in
|
||||
vicmd) print -n '\e]12;green\a';;
|
||||
viins|main) print -n '\e]12;gray\a';;
|
||||
esac
|
||||
}
|
||||
|
||||
zle -N zle-line-init
|
||||
zle -N zle-keymap-select
|
||||
zle -N edit-command-line
|
||||
bindkey -M vicmd v edit-command-line
|
||||
'';
|
||||
};
|
||||
}
|
||||
94
flake.lock
generated
94
flake.lock
generated
@@ -121,7 +121,7 @@
|
||||
"stockholm",
|
||||
"nixpkgs"
|
||||
],
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
"treefmt-nix": "treefmt-nix_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768927382,
|
||||
@@ -445,6 +445,26 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niphas": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"treefmt-nix": "treefmt-nix",
|
||||
"wrappers": "wrappers"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770197728,
|
||||
"narHash": "sha256-7KFx0gTPGaQf4dwTG3Y+SB67X9OD/gYx2/JIoUa2GOU=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "740a76f6ce13f7339bf26b8e591db46e72085226",
|
||||
"revCount": 29,
|
||||
"type": "git",
|
||||
"url": "https://code.kmein.de/kfm/niphas"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://code.kmein.de/kfm/niphas"
|
||||
}
|
||||
},
|
||||
"nix-index-database": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -525,16 +545,15 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1769598131,
|
||||
"narHash": "sha256-e7VO/kGLgRMbWtpBqdWl0uFg8Y2XWFMdz0uUJvlML8o=",
|
||||
"lastModified": 1770134715,
|
||||
"narHash": "sha256-bugJ+uTtL38KIh3M9vwXjTT3kt203MQbhD6ro1FcYsU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fa83fd837f3098e3e678e6cf017b2b36102c7211",
|
||||
"rev": "2482bf09c2d388464c9fe0a49a39b42932fed967",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -570,6 +589,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1769598131,
|
||||
"narHash": "sha256-e7VO/kGLgRMbWtpBqdWl0uFg8Y2XWFMdz0uUJvlML8o=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fa83fd837f3098e3e678e6cf017b2b36102c7211",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_2",
|
||||
@@ -640,10 +675,11 @@
|
||||
"menstruation-backend": "menstruation-backend",
|
||||
"menstruation-telegram": "menstruation-telegram",
|
||||
"naersk": "naersk",
|
||||
"niphas": "niphas",
|
||||
"nix-index-database": "nix-index-database",
|
||||
"nix-topology": "nix-topology",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-old": "nixpkgs-old",
|
||||
"nur": "nur",
|
||||
"retiolum": "retiolum",
|
||||
@@ -652,7 +688,7 @@
|
||||
"stylix": "stylix",
|
||||
"telebots": "telebots",
|
||||
"tinc-graph": "tinc-graph",
|
||||
"treefmt-nix": "treefmt-nix_2",
|
||||
"treefmt-nix": "treefmt-nix_3",
|
||||
"voidrice": "voidrice",
|
||||
"wallpapers": "wallpapers",
|
||||
"wetter": "wetter"
|
||||
@@ -916,6 +952,27 @@
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"niphas",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769691507,
|
||||
"narHash": "sha256-8aAYwyVzSSwIhP2glDhw/G0i5+wOrren3v6WmxkVonM=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "28b19c5844cc6e2257801d43f2772a4b4c050a1b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"stockholm",
|
||||
@@ -937,7 +994,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix_2": {
|
||||
"treefmt-nix_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
@@ -1008,6 +1065,27 @@
|
||||
"repo": "wetter",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"wrappers": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"niphas",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770112394,
|
||||
"narHash": "sha256-H8d0WplmDeuvOM4bsHNt77T6OWiSJMaTP6UG1XyMNxA=",
|
||||
"owner": "Lassulus",
|
||||
"repo": "wrappers",
|
||||
"rev": "23625835eb91d925c498780f5a37442ead1ae8e5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Lassulus",
|
||||
"repo": "wrappers",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
19
flake.nix
19
flake.nix
@@ -12,6 +12,7 @@
|
||||
nix-index-database.url = "github:nix-community/nix-index-database";
|
||||
nixpkgs-old.url = "github:NixOS/nixpkgs/50fc86b75d2744e1ab3837ef74b53f103a9b55a0";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
niphas.url = "git+https://code.kmein.de/kfm/niphas";
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||
nur.url = "github:nix-community/NUR";
|
||||
retiolum.url = "github:krebs/retiolum";
|
||||
@@ -76,6 +77,7 @@
|
||||
tinc-graph,
|
||||
nix-topology,
|
||||
nixos-hardware,
|
||||
niphas,
|
||||
treefmt-nix,
|
||||
autorenkalender,
|
||||
telebots,
|
||||
@@ -231,7 +233,7 @@
|
||||
auc = prev.callPackage packages/auc.nix { };
|
||||
cheat-sh = prev.callPackage packages/cheat-sh.nix { };
|
||||
brassica = prev.callPackage packages/brassica.nix { }; # TODO upstream
|
||||
dawn-editor = prev.callPackage packages/dawn.nix {};
|
||||
dawn-editor = prev.callPackage packages/dawn.nix { };
|
||||
text2pdf = prev.callPackage packages/text2pdf.nix { }; # TODO upstream
|
||||
wttr = prev.callPackage packages/wttr.nix { }; # TODO upstream
|
||||
jsesh = prev.callPackage packages/jsesh.nix { }; # TODO upstream
|
||||
@@ -359,7 +361,12 @@
|
||||
let
|
||||
profiles.default = [
|
||||
{ nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; }
|
||||
{ nixpkgs.overlays = [ self.overlays.default ]; }
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
self.overlays.default
|
||||
niphas.overlays.default
|
||||
];
|
||||
}
|
||||
{
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
@@ -374,15 +381,19 @@
|
||||
agenix.nixosModules.default
|
||||
retiolum.nixosModules.retiolum
|
||||
nix-topology.nixosModules.default
|
||||
niphas.nixosModules.nix
|
||||
niphas.nixosModules.shell
|
||||
configs/mycelium.nix
|
||||
configs/tor.nix
|
||||
configs/retiolum.nix
|
||||
configs/spacetime.nix
|
||||
configs/nix.nix
|
||||
configs/sshd.nix
|
||||
configs/admin-essentials.nix
|
||||
];
|
||||
profiles.desktop = [
|
||||
niphas.nixosModules.editor
|
||||
niphas.nixosModules.git
|
||||
niphas.nixosModules.udiskie
|
||||
niphas.nixosModules.desktop
|
||||
home-manager.nixosModules.home-manager
|
||||
nix-index-database.nixosModules.default
|
||||
nur.modules.nixos.default
|
||||
|
||||
Reference in New Issue
Block a user