mirror of
https://forge.katzen.cafe/schrottkatze/nix-configs.git
synced 2026-09-30 06:39:07 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d506f48b6f | ||
|
|
f061fa446f | ||
|
|
b973e36ebb | ||
|
|
43b0c0d9b1 |
10 changed files with 721 additions and 498 deletions
1141
Cargo.lock
generated
1141
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
1
justfile
1
justfile
|
|
@ -6,6 +6,7 @@ init-live:
|
|||
test: init-live
|
||||
sudo nixos-rebuild test --flake . --log-format multiline
|
||||
|
||||
buid: build
|
||||
build: init-live
|
||||
sudo nixos-rebuild switch --flake . --log-format multiline
|
||||
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@ let
|
|||
# stolen: https://github.com/MultisampledNight/core/blob/678f176cb24f5dc4b5dc629cfd3e643487be01bb/system/packages/layaway/default.nix#L7-L25
|
||||
layaway = pkgs.rustPlatform.buildRustPackage rec {
|
||||
pname = "layaway";
|
||||
version = "0.2.0";
|
||||
version = "0.2.1";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
src = pkgs.fetchFromCodeberg {
|
||||
owner = "MultisampledNight";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
rev = "e3c25e8c887c61f22b7bf321d71f1d74f8ec960f";
|
||||
hash = "sha256-SzAuVFEy56svasO3+1p6ysBRrIQd0UZX++/P4ZuwWm0=";
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ in
|
|||
pkgs.typst
|
||||
|
||||
# `typed` dependencies
|
||||
pkgs.zathura
|
||||
pkgs.mupdf
|
||||
pkgs.inotify-tools
|
||||
];
|
||||
|
|
|
|||
|
|
@ -38,5 +38,5 @@
|
|||
};
|
||||
|
||||
# TODO: Proper switch
|
||||
users.defaultUserShell = pkgs.elvish;
|
||||
users.defaultUserShell = pkgs.nushell;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Needed for nu_scripts background_task
|
||||
services.pueue = {
|
||||
|
|
@ -17,18 +17,17 @@
|
|||
target = ".config/nushell/shell-startup.nu";
|
||||
};
|
||||
programs.nushell = {
|
||||
enable = false;
|
||||
# package = config.users.defaultUserShell;
|
||||
enable = true;
|
||||
configFile.source = ./nu/config.nu;
|
||||
envFile.source = ./nu/env.nu;
|
||||
extraConfig = ''
|
||||
plugin add ${pkgs.nushellPlugins.query}/bin/nu_plugin_query;
|
||||
plugin add ${pkgs.nushellPlugins.polars}/bin/nu_plugin_polars;
|
||||
plugin add ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats;
|
||||
# plugin add ${pkgs.nushellPlugins.query}/bin/nu_plugin_query;
|
||||
# plugin add ${pkgs.nushellPlugins.polars}/bin/nu_plugin_polars;
|
||||
# plugin add ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats;
|
||||
|
||||
plugin use query;
|
||||
plugin use polars;
|
||||
plugin use formats;
|
||||
# plugin use query;
|
||||
# plugin use polars;
|
||||
# plugin use formats;
|
||||
|
||||
source ${./nu/custom_commands.nu};
|
||||
source ${./nu/aliases.nu};
|
||||
|
|
|
|||
|
|
@ -1,8 +1,17 @@
|
|||
alias gnix = cd ~/nix-configs/;
|
||||
alias grepo = cd ~/Documents/repos/;
|
||||
|
||||
alias wh = wormhole-rs;
|
||||
|
||||
alias b = broot;
|
||||
|
||||
alias gg = gitui;
|
||||
alias ga = git add;
|
||||
alias gc = git commit;
|
||||
alias gca = git commit --all;
|
||||
alias gp = git push;
|
||||
alias gl = git pull;
|
||||
alias gs = git status;
|
||||
alias clip = xclip -selection c;
|
||||
|
||||
alias cr = cargo run;
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ def glog [
|
|||
}
|
||||
|
||||
# open typst IDE ish setup
|
||||
def typed [
|
||||
def typed_legacy [
|
||||
name: string
|
||||
] {
|
||||
const DEFAULT_TYPST_FILE = "#import \"@local/typst-configs:0.1.0\": generic, sf;\n#show: generic.with();"
|
||||
|
|
@ -44,7 +44,7 @@ def typed [
|
|||
} else if ($"($name).pdf" | path exists) {
|
||||
typst compile $"($name).typ"
|
||||
}
|
||||
mprocs --names Editor,Viewer,Notify $"hx '($name).typ'" $"while true; do mupdf-x11 '($name).pdf' && break; done" $"bash -c 'while inotifywait -e modify \'($name).pdf\' ; do pkill -HUP mupdf; done'"
|
||||
mprocs --names Editor,Viewer,Notify $"hx '($name).typ'" $"while true; do mupdf '($name).pdf' && break; done" $"bash -c 'while inotifywait -e modify \'($name).pdf\' ; do pkill -HUP mupdf; done'"
|
||||
}
|
||||
|
||||
# figure out when the next event is
|
||||
|
|
@ -93,7 +93,7 @@ def "dp ccchh" [] {
|
|||
}
|
||||
|
||||
def "dp gay" [] {
|
||||
layaway "dp3 + edp1/bottom,center + dp5/right,top"
|
||||
layaway "dp3 + edp1/bottom,center + dp5/left,top"
|
||||
# manual fix for lack of frequency in layaway, else monitor just turns off
|
||||
swaymsg "output DP-3 position 0 0 scale 1 transform normal resolution 1920x1080@60Hz"
|
||||
bars "LEN G27c-10"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ edition = "2021"
|
|||
|
||||
[dependencies]
|
||||
chrono = "0.4.38"
|
||||
clap = { version = "4.5.4", features = ["derive", "env"] }
|
||||
clap = { workspace = true, features = ["derive", "env"] }
|
||||
owo-colors = "4.0.0"
|
||||
temp-file = "0.1.8"
|
||||
termsize = "0.1.9"
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
#![feature(lock_value_accessors)]
|
||||
use std::{
|
||||
fs,
|
||||
hint::spin_loop,
|
||||
io,
|
||||
path::Path,
|
||||
process::{Command, exit},
|
||||
process::{Command, Stdio, exit},
|
||||
sync::{
|
||||
Arc, Condvar, Mutex,
|
||||
atomic::{AtomicBool, AtomicU32, Ordering},
|
||||
|
|
@ -48,14 +50,22 @@ fn main() -> std::io::Result<()> {
|
|||
|
||||
let pdf_path_ = pdf_path.clone();
|
||||
let mupdf_pid_ = Arc::clone(&mupdf_pid);
|
||||
let viewer = args.viewer.unwrap_or("mupdf-x11".to_string());
|
||||
let viewer = args.viewer.unwrap_or("zathura".to_string());
|
||||
|
||||
let pair_mupdf = pair.clone();
|
||||
thread::spawn(move || {
|
||||
let mut mupdf = Command::new(&viewer);
|
||||
mupdf.arg(&pdf_path_);
|
||||
mupdf
|
||||
.arg(&pdf_path_)
|
||||
.stdout(Stdio::null())
|
||||
.stderr(Stdio::null());
|
||||
|
||||
loop {
|
||||
if !fs::exists(&pdf_path_).unwrap() {
|
||||
spin_loop();
|
||||
continue;
|
||||
}
|
||||
|
||||
let Ok(mut mupdf) = mupdf.spawn() else {
|
||||
break;
|
||||
};
|
||||
|
|
@ -75,34 +85,6 @@ fn main() -> std::io::Result<()> {
|
|||
}
|
||||
});
|
||||
|
||||
let pdf_path_ = pdf_path.clone();
|
||||
let mupdf_pid_ = Arc::clone(&mupdf_pid);
|
||||
thread::spawn(move || {
|
||||
let (tx, rx) = channel::<notify::Result<Event>>();
|
||||
let mut watcher = notify::recommended_watcher(tx).unwrap();
|
||||
|
||||
let _ = watcher.watch(Path::new(&pdf_path_), RecursiveMode::NonRecursive);
|
||||
|
||||
loop {
|
||||
let p = rx.recv();
|
||||
|
||||
match p {
|
||||
Ok(Ok(e)) if e.kind.is_modify() || e.kind.is_create() => {
|
||||
let mupdf_pid = mupdf_pid_.load(Ordering::Relaxed);
|
||||
if mupdf_pid != 0 {
|
||||
let mut kill = Command::new("kill");
|
||||
|
||||
let _ = kill.arg("-1").arg(mupdf_pid.to_string()).spawn();
|
||||
}
|
||||
}
|
||||
Ok(Ok(e)) if e.kind.is_remove() => {
|
||||
let _ = watcher.watch(Path::new(&pdf_path_), RecursiveMode::NonRecursive);
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// the editor?
|
||||
let pair_editor = pair.clone();
|
||||
let editor_pid_ = editor_pid.clone();
|
||||
|
|
|
|||
Loading…
Reference in a new issue