12 Commits

Author SHA1 Message Date
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
5dc4d57d7e fix(emacs): coerce makeWrapper args
All checks were successful
build / build (push) Successful in 2m11s
2026-03-31 13:00:48 -06:00
17fb45606b chore(msyds): enable prism, flatpak on sydpc 2026-03-31 13:00:48 -06:00
1825424cbb feat: gtav battleye workaround 2026-03-31 13:00:48 -06:00
af08b2f1b1 fix(emacs): use fcitx5-remote correctly 2026-03-31 13:00:48 -06:00
7bdbb985da fix(emacs): auctex tex-view-selection 2026-03-31 13:00:48 -06:00
5a87805660 fix(emacs): add syd/project require 2026-03-31 13:00:48 -06:00
1f0c248b24 fix(emacs): set eshell aliases file envvar
Some checks failed
build / build (push) Failing after 1m17s
2026-03-31 11:47:47 -06:00
31b61ddd73 feat(prism-launcher): init
All checks were successful
build / build (push) Successful in 2m5s
2026-03-30 18:27:54 -06:00
c0b60ff0e4 feat(emacs): toki pona ligatures
All checks were successful
build / build (push) Successful in 2m40s
2026-03-30 13:20:18 -06:00
15 changed files with 145 additions and 26 deletions

View File

@@ -19,8 +19,9 @@
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;
openssh.enable = true;
sydpkgs.overlay.enable = true;

View File

@@ -56,7 +56,12 @@ in {
Extra arguments to pass to the final wrapProgram call.
'';
default = [];
type = lib.types.listOf lib.types.str;
type = with lib.types;
listOf
(coercedTo
(oneOf [str package])
builtins.toString
str);
apply = lib.escapeShellArgs;
};
};

View File

@@ -0,0 +1,18 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.prism-launcher;
in {
options.sydnix.prism-launcher = {
enable = lib.mkEnableOption "Prism Launcher";
};
config = lib.mkIf cfg.enable {
home.packages = [
pkgs.prismlauncher
];
sydnix.impermanence.directories = [
".local/share/PrismLauncher"
];
};
}

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

@@ -51,6 +51,10 @@ in {
pkgs.nerd-fonts.victor-mono
pkgs.ibm-plex
];
extraWrapProgramArgs = [
"--set" "ESHELL_ALIASES_FILE"
config.home.sessionVariables.ESHELL_ALIASES_FILE
];
};
};
}

View File

@@ -2,7 +2,10 @@
(require 'syd/base)
(use-package auctex
(use-package auctex)
(use-package tex
:straight nil ; Part of auctex.
:config
(add-to-list 'TeX-view-program-selection '(output-pdf "Sioyek")))

View File

@@ -3,8 +3,8 @@
(require 'syd/base)
(use-package fcitx
:custom ((fcitx-remote-command "fcitx5-remote"))
:config
(setq fcitx-remote-command "fcitx5-remote")
(fcitx-aggressive-setup))
(provide 'syd/fcitx)

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

@@ -22,11 +22,16 @@
"/*" "/=" "/>" "//" "__" "~~" "(*" "*)"
"\\\\" "://"))
;; Sitelen pona glyphs.
(rx-let ((ideograph (any (#xF1900 . #xF198C))))
(rx-let ((ideograph (any (#xF1900 . #xF198C)))
(tok-punct (any "󱦜" "󱦝"))
(arrow (any "←-↙"))
(zwj ""))
(ligature-set-ligatures
'fundamental-mode
`(("󱦐" ,(rx (* ideograph)))
("󱥍" ,(rx "󱦗" (* ideograph))))))
`(("󱦐" ,(rx (* (or ideograph tok-punct))))
("󱥍" ,(rx "󱦗" (* (or ideograph tok-punct)) "󱦘"))
("󱥁" ,(rx zwj arrow))
("󱤑" ,(rx zwj ideograph)))))
(global-ligature-mode 1))
(provide 'syd/ligature)

View File

@@ -193,4 +193,38 @@ 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))))
(provide 'syd/prelude)

View File

@@ -1,6 +1,7 @@
;;; -*- lexical-binding: t; -*-
(require 'syd/base)
(require 'syd/keymaps)
(require 'syd/completion) ; For `consult'.
(require 'consult)

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

@@ -0,0 +1,17 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.gtav-battleye-hack;
in {
options.sydnix.gtav-battleye-hack = {
enable = lib.mkEnableOption
"Grand Theft Auto V Online BattlEye workaround";
};
config = lib.mkIf cfg.enable {
networking.hosts."0.0.0.0" = [
"paradise-s1.battleye.com"
"test-s1.battleye.com"
"paradiseenhanced-s1.battleye.com"
];
};
}

View File

@@ -46,6 +46,8 @@
kdeconnect.enable = true;
qalculate.enable = true;
toki-pona.enable = true;
prism-launcher.enable = on "sydpc";
flatpak.enable = on "sydpc";
sops = {
enable = true;
keyFile = "/persist/private-keys/age/crumb";