Compare commits

...

9 Commits

Author SHA1 Message Date
9979cf0497 chore(msyds): enable zathura
All checks were successful
build / build (push) Successful in 3m46s
2026-04-11 10:29:24 -06:00
b7bb888e98 feat(zathura): init module 2026-04-11 10:25:49 -06:00
8bd1250ab4 fix(emacs): prevent garbage from entering vc 2026-04-11 10:25:16 -06:00
b4a26e1713 feat(tf2): enable IPC stuff 2026-04-11 10:18:56 -06:00
3c1b5191da feat(emacs): command to import systemd env 2026-04-11 10:16:35 -06:00
ed18e5f850 fix(clojure): persist gitlibs 2026-04-10 16:47:32 -06:00
a9f95a1675 feat(emacs): 파일 이름을 넣음
All checks were successful
build / build (push) Successful in 2m53s
2026-04-02 08:59:03 -06:00
ecfb399127 refactor(niri,xwayland-satellite): split out xwayland-satellite
All checks were successful
build / build (push) Successful in 6s
해결 #5
2026-03-31 14:45:56 -06:00
bf834370e5 chore(sydpc): qemu은 끔
All checks were successful
build / build (push) Successful in 1m40s
2026-03-31 14:42:46 -06:00
13 changed files with 146 additions and 22 deletions

View File

@@ -19,7 +19,7 @@
slippi.enable = true;
niri.enable = true;
stylix.enable = true;
qemu.enable = true;
# qemu.enable = true;
flatpak.enable = true;
gtav-battleye-hack.enable = true;
# gdm.enable = true;

View File

@@ -9,6 +9,7 @@ in {
config = lib.mkIf cfg.enable {
sydnix.impermanence.cache.directories = [
".m2" # Clojure dependencies.
".gitlibs"
];
};
}

View File

@@ -9,14 +9,6 @@ in {
type = lib.types.nullOr lib.types.path;
default = config.stylix.image;
};
# xwayland-satellite implements rootless Xwayland in a separate application,
# without the host compositor's involvement. It makes X11 windows appear as
# normal windows, just like a native Xwayland integration. While it is still
# somewhat experimental, it handles a lot of applications correctly, like
# Steam, games and Discord.
xwayland-satellite.enable =
lib.mkEnableOption "xwayland-satellite starting with Niri"
// { default = true; };
polkit.enable =
lib.mkEnableOption "Niri/Gnome Polkit" // { default = true; };
swaylock.enable =
@@ -67,26 +59,17 @@ in {
stylix.targets.swaylock.enable = cfg.swaylock.enable;
services.polkit-gnome.enable = cfg.polkit.enable;
sydnix.xwayland-satellite.enable = lib.mkDefault true;
# File-picker.
home.packages = [ pkgs.nautilus ];
systemd.user.services.xwayland-satellite =
lib.mkIf cfg.xwayland-satellite.enable {
Service.ExecStart =
["${pkgs.xwayland-satellite}/bin/xwayland-satellite"];
Unit.After = ["niri.service"];
Unit.PartOf = ["niri.service"];
Install.WantedBy = ["niri.service"];
};
programs.niri = {
settings = {
# Activates some Nixpkgs patches to help run Electron applications under
# Wayland.
environment = {
NIXOS_OZONE_WL = "1";
DISPLAY = ":0";
XDG_CURRENT_DESKTOP = "niri";
QT_QPA_PLATFORM = "wayland";
ELECTRON_OZONE_PLATFORM_HINT = "auto";

View File

@@ -3,3 +3,7 @@ exec loadouts/init
exec overrides/binds.cfg
exec overrides/settings.cfg
con_logfile console.log
ip 0.0.0.0
rcon_password monitor
net_start

View File

@@ -67,4 +67,6 @@
syd/grammatical-framework
syd/tabs
syd/lsp
syd/custom))
syd/custom
syd/transient
syd/bookmark))

View File

@@ -0,0 +1,10 @@
;;; -*- lexical-binding: t; -*-
(require 'syd/base)
(use-package bookmark
:straight nil
:custom ((bookmark-default-file
(file-name-concat syd-data-dir "bookmarks"))))
(provide 'syd/bookmark)

View File

@@ -69,7 +69,8 @@
(general-def
:prefix-map 'syd-leader-insert-map
"u" #'insert-char
"e" #'emoji-insert)
"e" #'emoji-insert
"p" #'syd-insert-file-name)
;; This is necessary to properly rebind `universal-argument'.
;; `universal-argument-more' is a command that provides additional prefixes

View File

@@ -193,4 +193,55 @@ form."
(cons mode (intern (concat (match-string 1 s) "-ts-mode"))))
(error "Symbol `%c' is not a mode." mode))))
(defun syd--insert-file-name-annotation (x)
(concat
" "
(propertize " " 'display `(space :align-to (- right ,(+ 1 (length x)))))
x))
(defun syd-insert-file-name ()
(interactive)
(let* ((path (read-file-name "Path: " nil nil 'confirm))
(proj-root (project-root (project-current)))
(alts
`((,(file-relative-name path proj-root) . "Project-relative")
(,(file-relative-name path default-directory) . "File-relative")
(,path . "Absolute")
("... (choose a dir)")))
(choice
(completing-read
"Variant: "
(lambda (s p flag)
(pcase flag
('metadata
`(metadata
(annotation-function
. ,(lambda (s)
(when-let* ((desc (cdr (assoc s alts))))
(syd--insert-file-name-annotation
desc))))))
(_ (all-completions s (mapcar #'car alts) p)))))))
(if (equal choice "... (choose a root)")
(insert (file-relative-name
path (read-file-name "Relative to: " nil nil
'confirm)))
(insert choice))))
(defun syd-import-systemd-environment ()
(interactive)
(with-temp-buffer
(shell-command "systemctl --user show-environment" (current-buffer))
(goto-char (point-min))
(while (re-search-forward
(rx bol (group (+ (not "=")))
"="
(or (and "$'" (group (* (not "'"))) "'")
(group (* any)))
eol)
nil t)
(let ((var (match-string 1))
(val (or (match-string 2)
(match-string 3))))
(setenv var val)))))
(provide 'syd/prelude)

View File

@@ -0,0 +1,10 @@
;;; -*- lexical-binding: t; -*-
(require 'syd/base)
(use-package transient
:straight nil
:custom ((transient-history-file
(file-name-concat syd-data-dir "transient/history.el"))))
(provide 'syd/transient)

View File

@@ -0,0 +1,14 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.users.msyds.zathura;
in {
options.sydnix.users.msyds.zathura = {
enable = lib.mkEnableOption "Zathura";
};
config = lib.mkIf cfg.enable {
programs.zathura = {
enable = true;
};
};
}

View File

@@ -0,0 +1,38 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.xwayland-satellite;
in {
options.sydnix.xwayland-satellite = {
# xwayland-satellite implements rootless Xwayland in a separate
# application, without the host compositor's involvement. It makes
# X11 windows appear as normal windows, just like a native
# Xwayland integration. While it is still somewhat experimental,
# it handles a lot of applications correctly, like Steam, games
# and Discord.
enable = lib.mkEnableOption "XWayland outside your Wayland";
};
config = lib.mkIf cfg.enable {
systemd.user.services.xwayland-satellite =
let xwayland-satellite =
pkgs.xwayland-satellite.override { withSystemd = true; };
in {
Unit = {
Description = "Xwayland outside your Wayland";
BindsTo = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
Requisite = [ "graphical-session.target" ];
};
Service = {
Type = "notify";
NotifyAccess = "all";
ExecStart = lib.getExe xwayland-satellite;
StandardOutput = "journal";
ExecStartPost = "systemctl --user set-environment DISPLAY=:0";
ExecStop = "systemctl --user unset-environment DISPLAY";
};
Install.WantedBy = [ "graphical-session.target" ];
};
};
}

View File

@@ -12,6 +12,13 @@ in {
enableDynamicTheming = false;
};
# Start after xwayland-satellite, if possible. So DMS can start
# with the DISPLAY env var set.
systemd.user.services.dms = {
wants = ["xwayland-satellite.service"];
after = ["xwayland-satellite.service"];
};
services.displayManager.dms-greeter = {
enable = true;
compositor.name = assert config.sydnix.niri.enable; "niri";

View File

@@ -48,6 +48,7 @@
toki-pona.enable = true;
prism-launcher.enable = on "sydpc";
flatpak.enable = on "sydpc";
drawing-tablet.enable = on "sydpc";
sops = {
enable = true;
keyFile = "/persist/private-keys/age/crumb";
@@ -66,6 +67,7 @@
fcitx5.enable = true;
anki.enable = true;
mumble.enable = true;
rnote.enable = on "sydpc";
};
users.msyds = {
discord.enable = true;
@@ -76,7 +78,8 @@
syncthing.enable = true;
fonts.enable = true;
dank-material-shell.enable = true;
sioyek.enable = true;
sioyek.enable = on "fruitbook";
zathura.enable = on "sydpc";
};
};