History

  • [2025-06-20 Fri 13:12] 다시 바라 볼까? 아니. 당장은 노우.
  • [2025-04-07 Mon 22:43] 이거 요즘 고민이긴한데
  • [2024-05-30 Thu 12:34] 문서 새롭게 만들어서 정리. 당장 조나단리브 자료 보다가 닉스 - 다시 관심. 그러나 중요한 것은 아님.
  • [2023-05-12 Fri 22:19] NIX 쉘 테스트 및 이맥스 패키징

관련메타

BIBLIOGRAPHY

Dedovic, Stevan. (2021) 2025. “Sdedovic/Dotfiles Nix Home-Manager Stow.” https://github.com/sdedovic/dotfiles.

Eric Dallo. 2025. “Ericdallo/Dotfiles: Dotfiles for My Nixos System Based on Dracula Theme Clojure Doomemacs.” https://github.com/ericdallo/dotfiles.

Henrik Lissner. (2013) 2025. “Hlissner/Dotfiles #Nix.” https://github.com/hlissner/dotfiles.

Kiester, Fox. (2014) 2024. “Noctuid/Dotfiles.” https://github.com/noctuid/dotfiles.

MacRae, Calum. (2019) 2024. “Cmacrae/Config Nix Emacs.” https://github.com/cmacrae/config.

“Nix (Package Manager).” 2024. In Wikipedia. https://en.wikipedia.org/w/index.php?title=Nix_(package_manager)&oldid=1224556819.

(“Nix (Package Manager)” 2024)

2023 Emacs Distribution on Mac and Linux

  • [2023-05-09 Tue 06:01] NIX 는 이 자체로 새로운 시스템이다. 훌륭하다. 허나 진입장벽이 높다. 간단한 시스템이 필요하다. Brew 가 더 적합하다.

DONE Emacs on NIX pkgs

[2023-05-11 Thu 04:56]

  • 2023-05-12 Nix 로 emacs 를 설치해보았다. 28.2 안정화 버전은 아주 금새 동작한다. 생각보다 훨씬 훌륭하다.

백문이 불여일견

[2023-05-11 Thu 05:13]

아래 블로그에서 딱 기본을 해볼 수 있었다. 그러니까 감이 온다. 아 그렇구나. Emacs 도 마찬가지다. 말을 백번해봐야 감이 안온다. 그냥 화면 스크린샷을 보여주고 그 다음에 이야기를 하면 된다. 어짜피 스크린샷으로는 이게 뭐야! 할 것이다. 점진적으로 통합되어 가는 과정을 이야기하면서 이 프로그램 하나로 전체 삶이 가벼워 질 수 있음을 말하는 것이다. 좋은 글이다. 일단 더 나가보자.

Install Nix: the package manager 2.15.0

[2023-05-09 Tue 06:23] 리눅스에 닉스 패키지 매니저만 설치한다. 닉스 운영체제는 아니다. 싱글채널로 일단 가볍게 Download Nix / NixOS | Nix & NixOS

싱글 채널로 설치한다.
  sh <(curl -L https://nixos.org/nix/install) --no-daemon
 
  자동으로 zshrc 하단에 들어가더라.
  . /home/junghan/.nix-profile/etc/profile.d/nix.sh

DONE 궁금증 NIX Emacs 설치 어떤가? 좋아.

[2023-05-12 Fri 14:00] 진정 궁금하다. 배포 생각하는게 아니라. 패키지로 있는 Emacs 를 Direnv 으로 독립된 환경에서 동작 시킬 경우 컴파일 하는가? 아니면 설치하는가? 설치할 수도 있을 텐데 GUI 지원까지 본다면 덩치가 클 것 같다. 가능한가?

2023-05-12 대박이다. 지금 사용중이다. 신기한 것은 lucid 가 뭐지? 아무튼 매끄럽게 금새 설치 되서 동작한다.

emacs	GTK+를 사용하는 이맥스 버전
emacs-nox	X서버 지원 없는 이맥스 버전. "no X"
emacs-lucid	GTK+를 사용하지 않고, 루시드UI(고전적인 이맥스 UI에 가까움)를 제공하는 버전
Nix 맛보기

[2023-05-12 Fri 14:11] 위의 한글 블로그에 보면 닉스를 설치하고 디렉토리만들고 shell.nix 파일 생성 추가했다.

let
  pkgs = import <nixpkgs> {};
in pkgs.mkShell {
  nativeBuildInputs = [
    pkgs.python3
    pkgs.nodejs
  ];
}

그리고 nix-shell 을 실행하니까 위에서 정의한 패키지가 nix/store 에 설치 되었다.

그리고 niv 를 소개하길래 찾아본다. GitHub - nmattia/niv: Easy dependency management for Nix … 의존성 매니저란다.

설치는 하라는 대로 했다.

niv init

nix 폴더에 파일이 생성 된다. shell.nix 수정한다. niv 파일로 패키지를 읽어 오도록 한다.

그리고 direnv 를 연동하라고 한다.

direnv 알고 싶어 이 친구!

[2023-05-12 Fri 14:29]

direnv - Utility to set directory specific env variables.

정말 알고 싶었던 녀석이다. 문서에서는 매번 적절한 nix-shell 을 여는 게 불편하니까 활용한다고 한다.

문서에서 direnv 를 nix 활용해서 설치하자는 말을 한다.

$ nix-env -iA nixpkgs.direnv

jhnuc➜  nixfirst  ᐅ  direnv --version
2.25.2
jhnuc➜  nixfirst  ᐅ  nix-env -iA nixpkgs.direnv
installing 'direnv-2.32.2'
these 2 paths will be fetched (2.32 MiB download, 7.58 MiB unpacked):
  /nix/store/v1xrf8631ir4yj5plx6ygl64ckil7w5l-direnv-2.32.2
  /nix/store/492vd7iyr1npsailrb1c7v97l5h50qr9-iana-etc-20230316
copying path '/nix/store/492vd7iyr1npsailrb1c7v97l5h50qr9-iana-etc-20230316' from 'https://cache.nixos.org'...
copying path '/nix/store/v1xrf8631ir4yj5plx6ygl64ckil7w5l-direnv-2.32.2' from 'https://cache.nixos.org'...
building '/nix/store/md4b6vf44q4lqs0jflq1jzp0v91nq2xk-user-environment.drv'...
jhnuc➜  nixfirst  ᐅ

우분투 22.04 보다 버전이 높네. 우분투 패키지는 지웠다.

잠시만 그 다음에는 direnv 를 쉘에 등록해줘야 한다.

Setup | direnv bash/zsh 에 등록하자.

echo "use nix" &gt; .envrc Run \`direnv allow\` to approve its content direnv allow

한참 걸려서 패키지를 nix/store 에 받는다. 왜 다시 받지?! 아무튼 이제 신기한 세상이다.

폴더에 들어가면 로딩 되고, 나가면 언로딩 된다. 신기하다.

jhnuc➜  nixfirst  ᐅ  cd ..
direnv: unloading
jhnuc➜  git  ᐅ  which node
/home/junghan/.asdf/shims/node
jhnuc➜  git  ᐅ  cd nixfirst
direnv: loading ~/git/nixfirst/.envrc
direnv: using nix
jhnuc➜  nixfirst  ᐅ  which node
/nix/store/njh6p007ymbmcgas5l7sqqxfmm394zx1-nodejs-18.15.0/bin/node
jhnuc➜  nixfirst  ᐅ
Emacs 설치 (1) emacs

[2023-05-12 Fri 16:13] non nixos 에서는 아래와 같이 설치하라고 한다.

$ nix-env -iA nixpkgs.emacs

잠시만 이게 뭔가? NixOS Search 검색해보면 emacs 가 있다. 28.2 버전인데 일단 해보자. emacs 랑 emacs-gtk 랑 같은 것 아닌가?

nixpkgs/generic.nix at nixos-unstable · NixOS/nixpkgs · G… 여기에 나와 있다.

이걸 위와 같이 하지 말고, 파일에 넣어줘야지

파일에 넣어주고 나가자 마자 열심히 설치한다. 28.2 안정버전이니까 29.1 나오면 아마 바로 반영이 될 것이다.

컴파일 안하고 설치 한다면 .. 아 금방 설치했다. 그냥 설치하는 거라 빠르다. 컴파일 따위 없다. 그럼 된거다.

잠시만. 이걸 어떻게 테스트 해봐야 하는가?!

이맥스가 이렇게 있다. 근데 nix 이맥스를 실행해보려고 하는데 $ emacs —version 을 해보니 바로 nix 로 잡히는구나. 사실 nix 안에서 실행해야 하니 잘 찾아줘야 겠지.

emacs: /usr/bin/emacs /usr/lib/x86_64-linux-gnu/emacs /usr/lib/emacs /etc/emacs /usr/local/bin/emacs /usr/local/lib/emacs /usr/libexec/emacs /usr/share/emacs /nix/store/irjp5kdq5sgxa0d7qclf4h0l2ifzv14h-emacs-28.2/bin/emacs /usr/share/man/man1/emacs.1.gz /usr/share/info/emacs.info.gz

$ emacs —with-profile junghanacs28 이렇게 실행하면 될 것이다. 28.2 니까 chamacs 로 로딩이 된다. 잘되는구나. 하나 확인해야 하는 것은?! 아래 메시지다. locale 확인하자.

nixfirst ᐅ ./run-emacs.sh Warning: locale not supported by C library, locale unchanged

nix 에서 emacs 는 lucid 이고, emacs-gtk 는 gtk3 이다. 여튼 나는 gtk 만 사용해와서 몰랐던 것이다. 지금은 gtk 를 쓰는게 맞다고 본다. 아무튼 뭐가 되었든 특별할 것은 없다.

Emacs 설치 (2) emacs-gtk

[2023-05-13 Sat 18:13] emacs 패키지 말고 emacs-gtk 를 설치하자. 자동으로 설치하는구나. 보니까 아래의 패키지들을 추가로 설치한다고 한다. 그럼 그렇지.

이제 nix 디렉토리에 들어가서 emacs 를 실행하면 설치한 버전이 실행 될 거다.

jhnuc➜  nixfirst  ᐅ  cat shell.nix
let
  sources = import ./nix/sources.nix;
  pkgs = import sources.nixpkgs {};
in pkgs.mkShell {
  nativeBuildInputs = [
    pkgs.python3
    pkgs.nodejs
    pkgs.emacs-gtk
  ];
}
jhnuc➜  nixfirst  ᐅ  vi shell.nix
direnv: loading ~/git/nixfirst/.envrc
direnv: using nix
these 27 paths will be fetched (77.33 MiB download, 371.45 MiB unpacked):
  /nix/store/8ds9pxpx50bvg5r298d81dyxl1vqpav9-at-spi2-core-2.48.0
  /nix/store/apw35j0qs097y5nlv5fhqxiia93a29s2-avahi-0.8
  /nix/store/2jaclr2mrwkwhpgqs7l77k9z38kkvg4l-cups-2.4.2-lib
  /nix/store/bk6n7gdmg0dgzh5zb2v5bsiz1i4fr2v0-dconf-0.40.0-lib
  /nix/store/zma9w8mc3qdmwsxk8hd1mvm8a24iv7fv-emacs-28.2
  /nix/store/nhg3qhpxibsh6bpgcncimw0y6cjsqcx5-gobject-introspection-1.76.1
  /nix/store/xdrx0231mw02v0vhknzj00n4s9x5x47i-gsettings-desktop-schemas-44.0
  /nix/store/zjxrcqaz8m10nwf2jl7r4jb40ha3sisw-gtk+3-3.24.37
  /nix/store/1r1k5qi2a7l7dld3bdaw65vv45xyjxcs-iso-codes-4.11.0
  /nix/store/wx52kmb5ap5wybknw0c7r11w9m7vmadx-json-glib-1.6.6
  /nix/store/qbr2f598v05wn3wkxghk1rvd2ds1rmb0-libGL-1.6.0
  /nix/store/4204zdw9mxzjdy9dsfm2j36ampk0gslm-libXcomposite-0.4.5
  /nix/store/5ydir12z998xfrabqvvbfa84jmm4cb05-libXdamage-1.1.5
  /nix/store/d4fs71sh9jgigbnmxy3wjcf4gbkm37zl-libXi-1.8
  /nix/store/wjxyrh84l046y26y1i7xvz6nd7z3r48w-libXinerama-1.1.4
  /nix/store/lvwnnpp96r61mzgngh134n19jiifmfh5-libXrandr-1.5.2
  /nix/store/2pwq6a7xaljfjxydw3vm4nri2kz61hrg-libXtst-1.2.3
  /nix/store/pkv3bnaggcrrxrazrsmcmcjmzjnp7k7f-libdaemon-0.14
  /nix/store/dgj3s6vzx2lnpssdnaaw6c40cd9kyqxq-libepoxy-1.5.10
  /nix/store/3020d693rg5zbdal8yibcvrgadkv2gyf-libpsl-0.21.2
  /nix/store/qka2jj23c50f8v3bi9mdvxyc3gpi33hj-libsoup-2.74.3
  /nix/store/zpbc10dbycmi1crlfsnkvp16m5asw62m-libsoup-3.4.0
  /nix/store/vdkxhqw6655ijgr0ijapscj97dzgr0hm-libxkbcommon-1.5.0
  /nix/store/l0bkilnvckbapz30h0bmi80a83jrqknj-publicsuffix-list-unstable-2023-02-16
  /nix/store/i7r6kdh2f45klgd26dlz6ccqzzahag1p-tracker-3.5.0
  /nix/store/wq8y8h3k466rsal6qqlnflybb8p3ybri-wayland-1.21.0
  /nix/store/18kg67dfchk2l7ni9i0hrpbdspbxlrzw-xkeyboard-config-2.33
 
emacs-direnv

[2023-05-12 Fri 14:30] 이맥스에서 제대로 지원한다. 많은 분들이 활용하더이다. 스페이스맥스에는 없다. 별도로.

niv 사용법을 익힐 것

[2023-05-12 Fri 16:22]

DONE purcell/nix-emacs-ci

GitHub - purcell/nix-emacs-ci: Emacs installations for co… [2023-05-13 Sat 17:10]

끝판왕을 만났습니다. 이게 끝이군요. 어제 한 지점에서 아래 커맨드만 호출하면 리눅스와 맥에서 해당 버전으로 설치가 끝납니다. cachix 서비스로 무장되어 있답니다. 해보지요.

잠시만 이거 어디서 설치한거야?! 닉스로 들어가서 한거야?! 아니면
환경 변수 없이 한건가? 해당 디렉토리에 바인딩 되는가 아닌가가
나뉘는구나.

cachix use emacs-ci $ nix-env -iA emacs-release-snapshot -f https://github.com/purcell/nix-emacs-ci/archive/master.tar.gz

해보려면 일단 터미널을 띄워서 nixfirst 라고 만든 디렉토리로 들어 갑니다. 들어가면 direnv 가 자동으로 붙습니다.

$ cd git/nixfirst
direnv: loading ~/git/nixfirst/.envrc
direnv: using nix
direnv: export +AR +AS +CC +CONFIG_SHELL +CXX +DETERMINISTIC_BUILD +HOST_PATH +IN_NIX_SHELL +LD +NIX_BINTOOLS +NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu +NIX_BUILD_CORES +NIX_BUILD_TOP +NIX_CC +NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu +NIX_CFLAGS_COMPILE +NIX_ENFORCE_NO_NATIVE +NIX_HARDENING_ENABLE +NIX_LDFLAGS +NIX_STORE +NM +NODE_PATH +OBJCOPY +OBJDUMP +PYTHONHASHSEED +PYTHONNOUSERSITE +PYTHONPATH +RANLIB +READELF +SIZE +SOURCE_DATE_EPOCH +STRINGS +STRIP +TEMP +TEMPDIR +TMP +TMPDIR +_PYTHON_HOST_PLATFORM +_PYTHON_SYSCONFIGDATA_NAME +__structuredAttrs +buildInputs +buildPhase +builder +cmakeFlags +configureFlags +depsBuildBuild +depsBuildBuildPropagated +depsBuildTarget +depsBuildTargetPropagated +depsHostHost +depsHostHostPropagated +depsTargetTarget +depsTargetTargetPropagated +doCheck +doInstallCheck +mesonFlags +name +nativeBuildInputs +out +outputs +patches +phases +preferLocalBuild +propagatedBuildInputs +propagatedNativeBuildInputs +shell +shellHook +stdenv +strictDeps +system ~PATH ~XDG_DATA_DIRS

첫 번째 커맨드를 호출하니 열심히 뭔가 설치하는군요. 보니까 해당 서비스 관련 패키지입니다.

다음은 두번째 커맨드 입니다. emacs-ci 를 사용한다는 거겠죠.

jhnuc➜  nixfirst  ᐅ  cachix use emacs-ci
Configured https://emacs-ci.cachix.org binary cache in /home/junghan/.config/nix/nix.conf
jhnuc➜  nixfirst  ᐅ
 
jhnuc➜  nixfirst  ᐅ  cat ~/.config/nix/nix.conf
substituters = https://cache.nixos.org https://emacs-ci.cachix.org
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= emacs-ci.cachix.org-1:B5FVOrxhXXrOL0S+tQ7USrhjMT5iOPH+QN9q0NItom4=
jhnuc➜  nixfirst  ᐅ

이제 29 버전 (emacs-release-snapshot) 을 가져와 봅니다.

근데 왜 -f 뒤에 master.tar.gz 을 가져오는지?! 생각을 해봐야 겠네요. 잠시만!! 뭐야 벌써 끝났는데?!

보자. 저게 이맥스가 맞긴한데. 이래 쉽나?!

jhnuc➜  nixfirst  ᐅ  whereis emacs
emacs: /usr/bin/emacs /usr/lib/x86_64-linux-gnu/emacs /usr/lib/emacs /etc/emacs /usr/local/bin/emacs /usr/local/lib/emacs /usr/libexec/emacs /usr/share/emacs /nix/store/irjp5kdq5sgxa0d7qclf4h0l2ifzv14h-emacs-28.2/bin/emacs /nix/store/5c2znz0l0c2fsi1zpaqny0i26zdgdbd8-user-environment/bin/emacs /usr/share/man/man1/emacs.1.gz /usr/share/info/emacs.info.gz
 
jhnuc➜  nixfirst  ᐅ  /nix/store/5c2znz0l0c2fsi1zpaqny0i26zdgdbd8-user-environment/bin/emacs --version
GNU Emacs 29.0.90
Copyright (C) 2023 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
jhnuc➜  nixfirst  ᐅ  V

신기한게 nix shell 안들어가도 보이네?! 실행이 되나?! 뭐지?! 잠시만 아 확인했습니다. 허허.

설치는 정말 쉽네요. 전역으로 접근도 가능합니다. 다만, 쓸만한 구성이 아닙니다.

--prefix=/nix/store/ph4f8vjxg2r883hw2b2q7d415aa4d9kd-emacs-release-snapshot
--disable-build-details --with-modules --with-x=no --with-ns=no --with-xpm=no
--with-jpeg=no --with-png=no --with-gif=no --with-tiff=no

결론을 보자면, nix 공식 이맥스를 사용해야 한다. 리눅스라면 emacs-gtk 를 하면 된다. 끝.

이 버전은 지웠다.

$ nix-env —uninstall emacs-release-snapshot

jhnuc➜  nixfirst  ᐅ  nix-env --uninstall emacs-release-snapshot
uninstalling 'emacs-release-snapshot'
building '/nix/store/0jkgl1v20bpy7ci9sfcwklf5n4prasv6-user-environment.drv'...
jhnuc➜  nixfirst  ᐅ  emacs --version
GNU Emacs 28.2
Copyright (C) 2022 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
jhnuc➜  nixfirst  ᐅ  whereis emacs
emacs: /usr/bin/emacs /usr/lib/x86_64-linux-gnu/emacs /usr/lib/emacs /etc/emacs /usr/local/bin/emacs /usr/local/lib/emacs /usr/libexec/emacs /usr/share/emacs /nix/store/zma9w8mc3qdmwsxk8hd1mvm8a24iv7fv-emacs-28.2/bin/emacs /usr/share/man/man1/emacs.1.gz /usr/share/info/emacs.info.gz

놀라운 것이 있다. ~/.nix-profile/ 에 Desktop 파일도 지워졌다. 즉 그 파일들은 이 녀석이었다. 그러면 공식에서 받은 것들은 어디있나?!

jhnuc➜  nixfirst  ᐅ  ls ~/.nix-profile/share/
bash-completion  fish  man  zsh
jhnuc➜  nixfirst  ᐅ

DONE Desktop 파일을 만들어서 실행하려면 어떻게 하는가

[2023-05-13 Sat 18:18] nix 패키지로 설치하니 좋다. Direnv 로 디렉토리 들어가면 자동으로 실행되서 좋다. 근데 애플리케이션 Desktop 파일 만들어서 바로 실행하고 싶은데 방법은?

$ update-desktop-database

이걸 실행하면 Desktop 파일 정보를 업데이트 한다. desktop-file-utils 이란게 있다. 요게 그 역할을 해준다.

그리고 아래와 같이 파일이 있더라. 알아서 설치된 걸꺼다.

/home/junghan/.nix-profile/share/applications
jhnuc➜  applications  ᐅ  ls
emacsclient.desktop  emacsclient-mail.desktop  emacs.desktop  emacs-mail.desktop

여기서 문제가 있다. 저 파일 열어봐야 emacs 실행하는 것 뿐인데. 제대로라면 저 위치에 있는 Desktop 파일을 실행하면 Nix 버전이 실행되야 한다. 물론 될 것이다. 그럼 파일을 하나 만들어보자.

저 위치에 파일을 만들수가 없다. 흠. 다른 방법이 있을 것 같다. 정해진 방법으로 해야 nix 에 등록이 되겠지?! 찾아보자.

Nix - ArchWiki

  • Desktop integration For integrating Nix applications with your desktop environment, add the ~/.nix-profile/share directory to your HOME/.nix-profile/share:$XDG_DATA_DIRS.
  • Locale warnings The Nix wiki recommends running export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive. Alternatively, export the environment variable LC_ALL=C.

잠시만, 위에 XDG_DATA_DIRS 을 어디에 넣어줘야 할까?!

나는 싱글 유저 모드로 설치했다. 즉, 사용자 홈 폴더 아래에 있어야 한다. 또한 쉘과 관계 없이 환경 변수로 등록해야 한다.

그래서 ~/.config/environment.d/user.conf 파일로 등록했다.

# https://www.reddit.com/r/NixOS/comments/xjmpbh/integration_of_nix_on_desktop/
PATH=${PATH:+$PATH:}$HOME/.nix-profile/bin
XDG_DATA_DIRS=${XDG_DATA_DIRS:+$XDG_DATA_DIRS:}$HOME/.nix-profile/share/

잘 될 것 같은데?! 로그 아웃하고 돌아와보자. 안된다. 이 방법은 아니다.

잠시만! 재미있는 지점을 발견했다. 나는 환경 변수에 등록하려고 했는데 그렇게 해서 될게 아니었다.

jhnuc➜  nixfirst  ᐅ  env | grep XDG_DATA_DIRS
XDG_DATA_DIRS=/nix/store/fdqpyj613dr0v1l1lrzqhzay7sk4xg87-python3-3.10.10/share:/nix/store/njh6p007ymbmcgas5l7sqqxfmm394zx1-nodejs-18.15.0/share:/nix/store/zma9w8mc3qdmwsxk8hd1mvm8a24iv7fv-emacs-28.2/share:/nix/store/w1f6i3v6yibmn19hy0p5jp3kcji0lkv8-desktop-file-utils-0.26/share:/nix/store/2y0q33dmn7846bpqcnfch4a0q2q6dmya-patchelf-0.15.0/share:/home/junghan/.nix-profile/share:/usr/share/regolith:/usr/share/gnome:/home/junghan/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop:/home/junghan/.local/share

즉 완전히 샌드박스 되어 있다. 내가 찾는 Emacs 데스크탑 파일은 저기에 있다.

jhnuc➜  nixfirst  ᐅ  ls /nix/store/zma9w8mc3qdmwsxk8hd1mvm8a24iv7fv-emacs-28.2/share/applications
emacs-mail.desktop  emacs.desktop  emacsclient-mail.desktop  emacsclient.desktop
jhnuc➜  nixfirst  ᐅ

애플리케이션 런처에서 실행하려면 nix 환경으로 들어가야만 하는가?

desktop-file-install desktop-file-validate desktop-file-edit update-desktop-database

몇가지 샘플을 경험해 보려고 한다. 그래서 패키지를 몇개 넣었다. 생각보다 패키지 버전이 다 최신이다.

jhnuc➜  nixfirst  ᐅ  cat shell.nix
let
  sources = import ./nix/sources.nix;
  pkgs = import sources.nixpkgs {};
in pkgs.mkShell {
  nativeBuildInputs = [
    pkgs.python3
    pkgs.nodejs
    pkgs.emacs-gtk
    pkgs.desktop-file-utils
    pkgs.logseq
    pkgs.obsidian
    pkgs.neovim-gtk
    pkgs.neovim-qt
  ];
}

보자. 환경변수가 등록이 안되었으니 런처에서는 실행할 수가 없다.

jhnuc➜  nixfirst  ᐅ  env | grep XDG_DATA_DIRS
XDG_DATA_DIRS=/nix/store/fdqpyj613dr0v1l1lrzqhzay7sk4xg87-python3-3.10.10/share:/nix/store/njh6p007ymbmcgas5l7sqqxfmm394zx1-nodejs-18.15.0/share:/nix/store/zma9w8mc3qdmwsxk8hd1mvm8a24iv7fv-emacs-28.2/share:/nix/store/w1f6i3v6yibmn19hy0p5jp3kcji0lkv8-desktop-file-utils-0.26/share:/nix/store/yfrj5j50n1xlcbcv1620v963gpab8rd3-logseq-0.9.3/share:/nix/store/cgdk2q1dilfdxi9b2kalhn0n1di4paj9-obsidian-1.1.16/share:/nix/store/17xy961lc82jf9kgcs0lrin24d18dmyf-neovim-gtk-1.0.4/share:/nix/store/nbpmrk6dc2680b7nxvxzm535igxd1fbf-neovim-qt-0.2.17/share:/nix/store/2y0q33dmn7846bpqcnfch4a0q2q6dmya-patchelf-0.15.0/share:/home/junghan/.nix-profile/share:/usr/share/regolith:/usr/share/gnome:/home/junghan/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop:/home/junghan/.local/share

그렇다면 어떻게 할 수 있을까?! 홈매니저를 사용하라.

NIX Home-manager 에 답이 있다.

[2023-05-13 Sat 21:33] https://github.com/jeffkreeftmeijer/.emacs.d Manage user environments with Nix and Home Manager 이 글이 딱 답이 될 것 같다. 얽어보자.

flake 를 설치하거나 그냥 전통 방식으로 하면 된다. niv 도 전통 방식 중에 하나이다. 굳이 새로운 것을 따를 필요 없다. https://rycee.gitlab.io/home-manager/index.html#ch-usage 홈매니저에 여럿 내용이 있다. 일단 중단한다. 더 팔 여력은 없다.

DONE Brew :: Macos 전용으로 가자!

[2023-05-11 Thu 11:59] tshu 닷파일을 보니 컨셉이 좋은데 이게 빌드 시간이 너무 오래 걸린다. 말도 안된다. 이렇게 해서는 리눅스에서는 매력이 없다. 맥에서야 이렇게 한다고 하지만 별 의미 없다. 바보 같은 짓이다. 리눅스 서버는 괜찮겠다. 그냥 패키징해서 배포하는게 빠르겠다.

리눅스에서는 이렇게 해서 답이 없다. 너무 오래 걸린다. 중복이다. 다음과 같이 패키징이 최고다. 맥은 하나 만들어서 주면 알아서 쓸 것이다. 이건 맥으로 어렵지 않다고 본다.

특히 tshu 파일에 구성이 잘되어 있다.

DONE Emacs DEB Dockerfile 패키징

GitHub - junghan0611/emacs-gcc-29-deb: Dockerfile for bui…

패키징 성공 했습니다.

deb 로 설치할 생각 하지말고, 그냥 필요한 패키지를 설치하고 usr/local 에 넣어버려라. 그게 속편하다. 아니면 빌트인과 충돌이 난다. 즉 빌드 하지 않으면 방법이 없다는 말이다. 이 부분이 까다로운 것이다. 누가 쓰냐 이렇게 빌드 안할꺼라면. 개발자 아니면 못쓴다는 말인데 캘리 패키지는 충돌을 만든다. 까다롭다. 분명 캘리 패키지 없으면 문제가 없을 것 같다.

DONE evil-guide 쓰신 분의 dotfiles 에 답이 있다.

[2023-05-15 Mon 12:29]

이 분이 맥 리눅스 WSL 버전 통합해 놨다. https://github.com/noctuid/dotfiles - Nix for All and mouseless workflow

관련링크

관련코드

sdedovic/dotfiles nix home-manager stow

(Dedovic [2021] 2025) Dedovic, Stevan 2025

Nix for All and mouseless workflow

[2023-05-12 Fri 22:19] https://github.com/noctuid/dotfiles

(Kiester [2014] 2024)

cmacrae/config NIX EMACS

(MacRae [2019] 2024)

A collection of machine configurations, expressed in Nix

ericdallo/dotfiles: Dotfiles for my NixOS system based on Dracula theme clojure doomemacs

(Eric Dallo 2025)

Eric Dallo 2025

[2025-06-20 Fri 15:27] 홈매니저 활용 가능

Features

hlissner/dotfiles #nix

(Henrik Lissner [2013] 2025)

Henrik Lissner 2025

And I say hey, what’s going on?