diff --git a/.direnv/flake-profile b/.direnv/flake-profile index 4e45b4a..1448496 120000 --- a/.direnv/flake-profile +++ b/.direnv/flake-profile @@ -1 +1 @@ -flake-profile-22-link \ No newline at end of file +flake-profile-26-link \ No newline at end of file diff --git a/.direnv/flake-profile-22-link b/.direnv/flake-profile-26-link similarity index 100% rename from .direnv/flake-profile-22-link rename to .direnv/flake-profile-26-link diff --git a/common/nixos-wayland.nix b/common/nixos-wayland.nix index 60430e9..8095ec3 100644 --- a/common/nixos-wayland.nix +++ b/common/nixos-wayland.nix @@ -313,11 +313,11 @@ output "HDMI-A-1" { } #################### end from nwg-display - set $disp2 "DP-1" - set $disp1 "eDP-1" + set $disp2 "eDP-1" + set $disp1 "DP-1" workspace 7 output eDP-1 - workspace 0 output HEADLESS-1 + workspace 0 output eDP-1 ### Input configuration input type:keyboard { @@ -397,7 +397,7 @@ output "HDMI-A-1" { bindsym Escape mode "default" } - bindsym --locked $mod+d exec wlr-randr --output eDP-1 --on + bindsym --locked $mod+d exec wlr-randr --output eDP-1 --on --right-of DP-1 bindsym --locked $mod+Shift+d exec wlr-randr --output eDP-1 --off bindsym $mod+Shift+Return exec $term @@ -502,11 +502,15 @@ output "HDMI-A-1" { bindsym $mod+Shift+0 move container to workspace number 10 # default display outputs for workspaces with fallback to disp1 - workspace 1 output $disp2 $disp1 - workspace 6 output $disp2 $disp1 - workspace 4 output $disp2 $disp1 - workspace 8 output $disp2 $disp1 - workspace 9 output $disp2 $disp1 + workspace 1 output eDP-1 + workspace 6 output eDP-1 + workspace 4 output eDP-1 + workspace 8 output eDP-1 + workspace 9 output DP-1 + #assign [title="SCI display"] 3 + for_window [title="SCI display"] move container to workspace 9, fullscreen enable + + workspace 7 output eDP-1 workspace 0 output eDP-1 diff --git a/doomdir/config.el b/doomdir/config.el index 5811728..303f615 100644 --- a/doomdir/config.el +++ b/doomdir/config.el @@ -157,6 +157,10 @@ (setq emms-source-file-default-directory "~/work/music/" emms-player-list '(emms-player-mpv)) ) +(when (featurep 'dbusbind) + (after! emms + (require 'emms-mpris) + (emms-mpris-enable))) ;;; infrasonic (use-package! infrasonic) @@ -302,6 +306,80 @@ ) +;;; the file buffer opening I used to have in zed +(defun my-toggle-dired-current-dir () + "Toggle between Dired for the current file's directory and the original file." + (interactive) + (if (eq major-mode 'dired-mode) + ;; If in Dired, cleanly kill the buffer and jump back + (quit-window t) + ;; Otherwise, check if visiting a file, then open its directory + (if (buffer-file-name) + (dired (file-name-directory (buffer-file-name))) + (message "Current buffer is not visiting a file.")))) + +;; Doom Emacs keybinding macro for Ctrl+Shift+P +(map! "C-S-p" #'my-toggle-dired-current-dir) + + + + +;;; open the config.el file directly instead of the whole config folder +(map! :leader + :desc "Open Doom config.el" + "f p" (lambda () + (interactive) + (find-file (expand-file-name "config.el" doom-private-dir)))) + + + + +;;; xwidget don't ask when killing a buffer +(after! xwidget + (remove-hook 'kill-buffer-query-functions #'xwidget-kill-buffer-query-function) +) + + + +;;; markdown stuff +(use-package! md-mode + :mode ("\\.md\\'" . md-mode)) +(after! md-mode + (define-key md-mode-map (kbd "C-h") 'md-mode-goto-heading) +) + + +;;; evil - use visial line for down/up +(after! evil + (define-key evil-motion-state-map (kbd "j") 'evil-next-visual-line) + (define-key evil-motion-state-map (kbd "k") 'evil-previous-visual-line) +) + +;;; workspace setup +(after! persp-mode + ;; Automatically create a "main" workspace for miscellaneous tasks + (setq +workspaces-main "things") + ;; Prevent emacsclient from forcing everything into a generic or new blank workspace + (setq persp-emacsclient-init-frame-behaviour-override nil) + + (defun my/switch-to-project-workspace-on-client (frame) + "When an emacsclient frame is created, check if a file/folder was passed, +and automatically switch to its matching Doom project workspace." + (with-selected-frame frame + ;; Only execute if a target file or directory is actually loaded + (when-let* ((target-path (or (buffer-file-name) default-directory)) + ;; Ask Projectile to find if this path belongs to a known project root + (project-root (projectile-project-root target-path))) + ;; Instruct Doom to switch to the project's named workspace + (+workspace-switch project-root t) + ;; Update Projectile's current project state for that workspace context + (setq projectile-project-root project-root)))) + + ;; Hook this function to run every time an emacsclient connection spawns a frame + (add-hook 'after-make-frame-functions #'my/switch-to-project-workspace-on-client) +) + + ;;; scratch @@ -314,4 +392,7 @@ (emms-insert-url "https://tunes.c2vi.dev/rest/stream.view?u=c2vi&t=59248d02914f93abee797adcf0f14d6a&s=8a3988f950895ee7bd87e17651e65eb1&v=1.16.1&c=infrasonic&f=json&id=0FnN5Sb3mCItKdIiJZcG7x") (message emms-playlist-buffer) + (+workspace-current-name) + (selected-frame) + ) diff --git a/doomdir/init.el b/doomdir/init.el index 8e01249..7934eb8 100644 --- a/doomdir/init.el +++ b/doomdir/init.el @@ -154,7 +154,7 @@ ;;lean ; for folks with too much to prove ;;ledger ; be audit you can be ;;lua ; one-based indices? one-based indices - markdown ; writing docs for people to ignore + (markdown +grip) ; writing docs for people to ignore ;;nim ; python + lisp at the speed of c ;;nix ; I hereby declare "nix geht mehr!" ;;ocaml ; an objective camel diff --git a/doomdir/packages.el b/doomdir/packages.el index 893e516..9032044 100644 --- a/doomdir/packages.el +++ b/doomdir/packages.el @@ -66,3 +66,12 @@ :recipe (:host github :repo "systemfreund/supersonic.el" ) :pin "8d422489ffc84cc3907232afb51349c576c26cba" ) +(package! textui + :recipe (:host github :repo "yibie/textui") + :pin "8b3010d0f251b52dd1867c741d18bf66e405922d" +) + +(package! md-mode + :recipe (:host github :repo "yibie/md-mode") + :pin "d9e7e1d83a8601a9bda2fd604f6a0881a4f9a838" +) diff --git a/flake.lock b/flake.lock index 11d8252..8ff3d0c 100644 --- a/flake.lock +++ b/flake.lock @@ -2519,11 +2519,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1780921813, - "narHash": "sha256-yqQ4OmdWs691nfjxKcrDrbnjeQQwlXnmLj8IG0AbWyU=", + "lastModified": 1792001584, + "narHash": "sha256-gRpyAAsKEsREyOa7J6WngNpmbbR4VjUB8MeFZHmXWDo=", "ref": "refs/heads/master", - "rev": "c57849f748ba20134f79b76e42e0c85786dd637f", - "revCount": 203, + "rev": "105eca862da9d8e54ad68c30d308f7c937861552", + "revCount": 212, "type": "git", "url": "https://git.ppc.social/ppc/ppc" }, @@ -4463,11 +4463,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1774709303, - "narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=", + "lastModified": 1782467914, + "narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8110df5ad7abf5d4c0f6fb0f8f978390e77f9685", + "rev": "e73de5be04e0eff4190a1432b946d469c794e7b4", "type": "github" }, "original": { diff --git a/hosts/mac.nix b/hosts/mac.nix index 3fb7498..e468709 100644 --- a/hosts/mac.nix +++ b/hosts/mac.nix @@ -24,10 +24,12 @@ in { inputs.mize.nixosModules.default ]; mize.enable = true; - mize.debugBinary = "/data/external/config/target/debug/mac-os"; - mize.debugConfigFile = "/home/me/host/mize-config.toml"; + mize.debugBinary = "/home/me/here/mize"; + mize.debugConfigFile = "/home/me/host/mize/config.toml"; systemd.user.services.mize.environment.LOG= "trace"; - systemd.user.services.mize.serviceConfig.EnvironmentFile = "/home/me/host/mize/daemon.env"; + systemd.user.services.mize.environment.MIZE_CONFIG_FILES = lib.mkForce "/home/me/host/mize/config.toml:/home/me/host/mize/daemon-config.toml"; + + programs.nix-ld.enable = true; # https://nixos.wiki/wiki/OBS_Studio @@ -192,7 +194,7 @@ in { enable = true; systemd = true; settings = { - authorized_fingerprints."f1:f2:c8:38:fd:e9:34:2f:a0:79:49:b4:ca:d6:4e:c6:31:10:42:1b:9f:ba:61:6f:41:9a:b7:ce:1a:32:47:a1" = "main"; + authorized_fingerprints."35:02:e0:1c:64:de:a8:08:6a:65:d3:5a:20:ed:68:0f:c9:0a:50:bd:b7:03:4d:da:e9:c7:22:f5:79:48:0d:69" = "main"; port = 4410; clients = [ { diff --git a/hosts/main/bashrc b/hosts/main/bashrc index fd0da59..8956fb8 100644 --- a/hosts/main/bashrc +++ b/hosts/main/bashrc @@ -6,6 +6,7 @@ export SVDIR=$CONFIG_DIR/hosts/main/services export BASH_ENV=$CONFIG_DIR/hosts/main/bashrc export HOSTNAME=main export DOOMDIR="$CONFIG_DIR/doomdir" +export MIZE_SRC=$CONFIG_DIR/mize mkdir -p $LOG_DIR # arch path @@ -76,6 +77,8 @@ function get_config() { myconfig["ssh.bin"]="/bin/ssh" myconfig["mize.configFile"]="$CONFIG_DIR/hosts/main/" myconfig["mize.secretsFile"]="~/secrets/mize-config.toml" + myconfig["mize.startDev"]="true" + myconfig["mize.backtrace"]="true" # nixos case if [[ "$DISTRO" == "nixos" ]]; then diff --git a/hosts/main/bin/em b/hosts/main/bin/em index 47bf2c5..8f58ed3 100755 --- a/hosts/main/bin/em +++ b/hosts/main/bin/em @@ -1,3 +1,3 @@ #!/bin/bash -exec emacsclient "$@" +exec emacsclient -c -n "$PWD/$1" diff --git a/hosts/main/bin/emacs-server b/hosts/main/bin/emacs-server index 257b56e..87f5de9 100755 --- a/hosts/main/bin/emacs-server +++ b/hosts/main/bin/emacs-server @@ -10,4 +10,4 @@ export DOOMDIR="$CONFIG_DIR/doomdir" echo $DOOMDIR echo ------------- -exec emacs --init-directory $CONFIG_DIR/src/doom --fg-daemon "$@" +exec nixGL emacs --init-directory $CONFIG_DIR/src/doom --fg-daemon "$@" diff --git a/hosts/main/bin/mize b/hosts/main/bin/mize index e947505..c615b0d 100755 --- a/hosts/main/bin/mize +++ b/hosts/main/bin/mize @@ -8,8 +8,19 @@ if [[ -v IS_RUNIT ]]; then fi export LD_LIBRARY_PATH=/nix/store/992h4k1s2c0ma186wyc7a3080wrh1cc6-xdotool-4.20260303.1/lib:/nix/store/rsdvlq7wb59hdiwhhvkhx2xvxdkalkzc-webkitgtk-2.52.4+abi=4.1/lib:/nix/store/90ln3xz5m2x3r0ykad4mkg9gnwgrjpzg-pango-1.57.1/lib:/nix/store/l0vl4dali2mvbpi30a8da1f71jl85myg-openssl-3.6.2/lib:/nix/store/s2bjqqzdjs4ji71qm1wwnkiy7g3afdz6-at-spi2-core-2.60.4/lib:/nix/store/fzhjg6xris850npqr92g4m4pskj88brn-atkmm-2.28.5/lib:/nix/store/4zwifnznmqsg3zl8y5yyfafwp4sws6rs-cairo-1.18.4/lib:/nix/store/rgr3i966i5wnblv62fvkid3v3lxy1ivb-gdk-pixbuf-2.44.6/lib:/nix/store/7dl2py4dnp4ffj92r1lq0i54ik1v8kzn-glib-2.88.1/lib:/nix/store/7c73fgj9w0k8qrpq3j1h8h976bk7gqsp-gtk+3-3.24.52/lib:/nix/store/49i3fhgpfffwh3xm3j58ma4z7221sqbq-harfbuzz-13.2.1/lib:/nix/store/na21ka09652cgigpv9wlw904wpq8bnvz-librsvg-2.62.1/lib:/nix/store/jc4y9v7ci45vas65kyl00pzpam3dnbfk-libsoup-3.6.6/lib:/nix/store/3kncz3fkk7sv9xc61x096jnbxvxfnx1k-libxkbcommon-1.13.1/lib:/nix/store/a4h98420m9h8c84r2igrpdd94xsrc9b6-alsa-lib-1.2.15.3/lib:/nix/store/hngmi01i8wgi25a0byrxcn4ysz5j79mw-gcc-15.2.0-lib/lib:/nix/store/xpzd2xmvqpkv1la78qkfpybkfwak27xd-libxcb-1.17.0/lib:/nix/store/6y2b9qs1npwsvcsl9m66hjarzj0yagb4-pipewire-1.6.5/lib:/nix/store/clvzgv5kqq953s4azqhkg3ddgpvgl9wc-wayland-1.25.0/lib:/nix/store/8gyg3xn9i8xdz42yhbl0d3vmmz8phcs0-bzip2-1.0.8/lib +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONFIG_DIR/mize/target/debug +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/nix/store/k7bh855izql4rli5hh0s5lsphzc0gnc2-rust-mixed/lib/rustlib/x86_64-unknown-linux-gnu/lib/ + +get_config mize.startDev START_DEV +get_config mize.backtrace RUST_BACKTRACE +export RUST_BACKTRACE + +if [[ "$START_DEV" == "true" ]] then + exec /home/me/work/config/mize/target/debug/mize --config $CONFIG_DIR/hosts/main/mize.toml --secrets $SECRETS_DIR/mize-secrets.toml "$@" +else + exec /home/me/mize --config $CONFIG_DIR/hosts/main/mize.toml --secrets $SECRETS_DIR/mize-secrets.toml "$@" +fi -exec /home/me/work/config/mize/target/debug/mize --config $CONFIG_DIR/hosts/main/mize.toml --secrets $SECRETS_DIR/mize-secrets.toml "$@" # alias sci="cargo run --manifest-path ~/work/config/mize/Cargo.toml --bin mize -- --config $CONFIG_DIR/hosts/main/mize.toml --secrets $SECRETS_DIR/mize-secrets.toml run sci" # alias mr="cargo run --manifest-path ~/work/config/mize/Cargo.toml --bin mize -- --config $CONFIG_DIR/hosts/main/mize.toml --secrets $SECRETS_DIR/mize-secrets.toml run" diff --git a/hosts/main/hyprland.lua b/hosts/main/hyprland.lua index 2087153..04e8add 100644 --- a/hosts/main/hyprland.lua +++ b/hosts/main/hyprland.lua @@ -212,6 +212,21 @@ hl.monitor({ scale = 1, }) +-- toggle display +hl.bind(mod .. " + D", function() + hl.monitor({ + output = "eDP-1", + disabled = false + }) +end) +hl.bind(mod .. " + SHIFT + D", function() + hl.monitor({ + output = "eDP-1", + disabled = true + }) +end) + + -- ppc ne hl.bind("F12", hl.dsp.exec_cmd("mize run sci ne")) hl.bind("F11", hl.dsp.exec_cmd("mize run sci ne -b")) diff --git a/hosts/main/mize.toml b/hosts/main/mize.toml index 14dd570..c08f2e7 100644 --- a/hosts/main/mize.toml +++ b/hosts/main/mize.toml @@ -3,8 +3,13 @@ data_dir = "/home/me/work/app-data/mize/misc" store = "/home/me/work/app-data/mize" spacetime.url = "100.88.46.87:8005" namespace = "priv.c2vi.dev" +log.level = "debug" -enable = [ "cli", "auth", "sci.timetrack", "sci", "c2vi", "spacetime", "dev" ] +part_path = "/home/me/work/config/mize/target/debug/" +mize.src = "/home/me/work/config/mize" +parts = [ "cli" ] +#parts = [ "cli", "auth", "spacetime", "sci", "c2vi", "dev" ] +enable = [ "cli", "auth", "spacetime", "sci", "c2vi", "dev", "sci.timetrack" ] timetrack.dailyNotesPath = "/home/me/work/things/nico/daily" diff --git a/hosts/main/services/elephant/supervise/pid b/hosts/main/services/elephant/supervise/pid index ba3343d..b9650fd 100644 --- a/hosts/main/services/elephant/supervise/pid +++ b/hosts/main/services/elephant/supervise/pid @@ -1 +1 @@ -1158 +1068 diff --git a/hosts/main/services/elephant/supervise/status b/hosts/main/services/elephant/supervise/status index 11915ee..94599f8 100644 Binary files a/hosts/main/services/elephant/supervise/status and b/hosts/main/services/elephant/supervise/status differ diff --git a/hosts/main/services/emacs/supervise/pid b/hosts/main/services/emacs/supervise/pid index 1b66bc1..4f80702 100644 --- a/hosts/main/services/emacs/supervise/pid +++ b/hosts/main/services/emacs/supervise/pid @@ -1 +1 @@ -1159 +20922 diff --git a/hosts/main/services/emacs/supervise/status b/hosts/main/services/emacs/supervise/status index 524af35..b62f058 100644 Binary files a/hosts/main/services/emacs/supervise/status and b/hosts/main/services/emacs/supervise/status differ diff --git a/hosts/main/services/hyprland/supervise/pid b/hosts/main/services/hyprland/supervise/pid index d94081a..00146f2 100644 --- a/hosts/main/services/hyprland/supervise/pid +++ b/hosts/main/services/hyprland/supervise/pid @@ -1 +1 @@ -1160 +1066 diff --git a/hosts/main/services/hyprland/supervise/status b/hosts/main/services/hyprland/supervise/status index 9b15cde..23a5cac 100644 Binary files a/hosts/main/services/hyprland/supervise/status and b/hosts/main/services/hyprland/supervise/status differ diff --git a/mize b/mize index a7db7da..387c312 160000 --- a/mize +++ b/mize @@ -1 +1 @@ -Subproject commit a7db7da9d22e9c65e1a58b7ef3cdfeed3dec79a3 +Subproject commit 387c31259ddd51d8e62e5bf0e207e7b056cad8fd diff --git a/mods/bashrc-common b/mods/bashrc-common index d1faf63..35f0adc 100644 --- a/mods/bashrc-common +++ b/mods/bashrc-common @@ -12,7 +12,7 @@ cd ~ alias mg="mize get" alias mr="mize run" alias ms="mize set" -alias md="mize run dev" +alias md="mize dev" alias sci="mize run sci" ### nix build hosts @@ -190,7 +190,7 @@ cb() { # rech function rech(){ - python3 -c "print($@)" + python3 -c "from math import *; print($@)" } diff --git a/random-pkgs.nix b/random-pkgs.nix index 203cb87..927e6db 100644 --- a/random-pkgs.nix +++ b/random-pkgs.nix @@ -18,6 +18,11 @@ in rec { src = /home/me/work/config/gitignore/runc; }); + myEmacs = pkgsUnstable.emacs-pgtk.override { + withXwidgets = true; + }; + + qtrs = pkgs.stdenv.mkDerivation { name = "qt rust bindings"; diff --git a/zed/keymap.json b/zed/keymap.json index a6ca6eb..73e71b4 100644 --- a/zed/keymap.json +++ b/zed/keymap.json @@ -108,13 +108,13 @@ }, }, { - "context": "((os != macos && Editor) && edit_prediction_conflict)", + "context": "((os != macos && Editor) && (edit_prediction && (showing_completions || in_leading_whitespace)))", "bindings": { //"ctrl-l": "editor::AcceptEditPrediction" }, }, { - "context": "((os != macos && Editor) && edit_prediction_conflict)", + "context": "((os != macos && Editor) && (edit_prediction && (showing_completions || in_leading_whitespace)))", "bindings": { "ctrl-i": "editor::AcceptEditPrediction", }, diff --git a/zed/settings.json b/zed/settings.json index 185a154..07c4420 100644 --- a/zed/settings.json +++ b/zed/settings.json @@ -285,13 +285,14 @@ "rust-analyzer": { "initialization_options": { "cargo": { - "features": "all" + "features": "all", + "targetDir": "zed-target" }, "check": { "features": "all" }, "rust": { - "analyzerTargetDir": true + "analyzerTargetDir": "target/analyzer" } } },