mirror of
https://github.com/nix-community/home-manager.git
synced 2026-01-11 17:39:37 +08:00
Compare commits
53 Commits
f894bc4ffd
...
release-25
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
44831a7eab | ||
|
|
3b955f5f0a | ||
|
|
6f656618eb | ||
|
|
f21d916778 | ||
|
|
07fc025fe1 | ||
|
|
f9fa795a29 | ||
|
|
54b2879ce6 | ||
|
|
4a44fb9f75 | ||
|
|
4fb695d108 | ||
|
|
7e96494bf4 | ||
|
|
fc3add429f | ||
|
|
0b9bf983db | ||
|
|
1e9c01bbbb | ||
|
|
7b5a978e00 | ||
|
|
9b9eb96dcd | ||
|
|
9555dfc96b | ||
|
|
fce051eaf8 | ||
|
|
adf195f021 | ||
|
|
c718918222 | ||
|
|
2e00ed310c | ||
|
|
8597e85e2c | ||
|
|
c262667906 | ||
|
|
c6a01e54af | ||
|
|
05d7a84f50 | ||
|
|
e5c04e12ab | ||
|
|
8fa7c99260 | ||
|
|
7155ba92cf | ||
|
|
b91b373bb0 | ||
|
|
d65bfb3a5b | ||
|
|
524da5f6c0 | ||
|
|
9b0873b46c | ||
|
|
501cfec827 | ||
|
|
366f00797b | ||
|
|
7942f52bd8 | ||
|
|
0288326507 | ||
|
|
dd2612ca5e | ||
|
|
8c3352d32f | ||
|
|
f69497fd57 | ||
|
|
e0c65f2577 | ||
|
|
9380e94095 | ||
|
|
6136aca7ac | ||
|
|
4c586c78e4 | ||
|
|
f7cf1c59a2 | ||
|
|
d457fa3c76 | ||
|
|
7aae0ee71a | ||
|
|
b949584034 | ||
|
|
282e1e029c | ||
|
|
afe9ce8b20 | ||
|
|
0d13ea58d5 | ||
|
|
529d2aac54 | ||
|
|
83665c39fa | ||
|
|
15a220935d | ||
|
|
d0bbd22148 |
942
.github/labeler.yml
vendored
942
.github/labeler.yml
vendored
@@ -1,377 +1,577 @@
|
||||
"mail":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/aerc*.nix
|
||||
- modules/programs/alot*.nix
|
||||
- tests/modules/programs/aerc/*
|
||||
- tests/modules/programs/alot/*
|
||||
- modules/programs/mujmap.nix
|
||||
- tests/modules/programs/mujmap/*
|
||||
- modules/programs/notmuch*.nix
|
||||
- modules/programs/neomutt*
|
||||
- tests/modules/programs/neomutt/*
|
||||
- modules/programs/getmail*
|
||||
- modules/*/mbsync*
|
||||
- tests/modules/programs/mbsync/*
|
||||
- modules/programs/himalaya.nix
|
||||
- tests/modules/programs/himalaya/*
|
||||
- modules/programs/thunderbird.nix
|
||||
- tests/modules/programs/thunderbird/*
|
||||
- modules/services/imapnotify*.nix
|
||||
- modules/programs/mu.nix
|
||||
- modules/programs/lieer.nix
|
||||
- modules/services/lieer.nix
|
||||
- modules/programs/msmtp*
|
||||
- modules/programs/offlineimap*.nix
|
||||
- modules/services/muchsync.nix
|
||||
|
||||
"neovim":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/neovim.nix
|
||||
- tests/modules/programs/neovim/**/*
|
||||
|
||||
"editors":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/neovim.nix
|
||||
- tests/modules/programs/neovim/**/*
|
||||
- modules/programs/vim*.nix
|
||||
- modules/programs/emacs.nix
|
||||
- modules/services/emacs.nix
|
||||
- modules/programs/helix.nix
|
||||
- modules/programs/kakoune.nix
|
||||
- modules/programs/lapce.nix
|
||||
- modules/programs/micro.nix
|
||||
- modules/programs/ne.nix
|
||||
- modules/programs/neovide.nix
|
||||
- modules/programs/vscode.nix
|
||||
- modules/programs/zed-editor.nix
|
||||
- tests/modules/programs/vim/**/*
|
||||
- tests/modules/programs/emacs/**/*
|
||||
- tests/modules/programs/helix/**/*
|
||||
|
||||
"program: firefox":
|
||||
"audio":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/firefox/**/*
|
||||
- tests/modules/programs/firefox/**/*
|
||||
- modules/misc/mozilla-messaging-hosts.nix
|
||||
- modules/programs/floorp.nix
|
||||
- modules/programs/librewolf.nix
|
||||
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/amberol.nix
|
||||
- modules/programs/beets.nix
|
||||
- modules/programs/cava.nix
|
||||
- modules/programs/cavalier.nix
|
||||
- modules/programs/cmus.nix
|
||||
- modules/programs/ncmpcpp.nix
|
||||
- modules/programs/ncspot.nix
|
||||
- modules/programs/spotify-player.nix
|
||||
- modules/programs/timidity.nix
|
||||
- modules/services/easyeffects.nix
|
||||
- modules/services/fluidsynth.nix
|
||||
- modules/services/librespot.nix
|
||||
- modules/services/listenbrainz-mpd.nix
|
||||
- modules/services/mopidy.nix
|
||||
- modules/services/mpd-discord-rpc.nix
|
||||
- modules/services/mpd-mpris.nix
|
||||
- modules/services/mpd.nix
|
||||
- modules/services/mpdris2.nix
|
||||
- modules/services/mpdscribble.nix
|
||||
- modules/services/mpris-proxy.nix
|
||||
- modules/services/pasystray.nix
|
||||
- modules/services/playerctld.nix
|
||||
- modules/services/pulseeffects.nix
|
||||
- modules/services/spotifyd.nix
|
||||
- tests/modules/services/mpd/**/*
|
||||
"automation":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/caffeine.nix
|
||||
- modules/services/darkman.nix
|
||||
- modules/services/devilspie2.nix
|
||||
- modules/services/espanso.nix
|
||||
- modules/services/keynav.nix
|
||||
- modules/services/skhd.nix
|
||||
"backup":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/borgmatic.nix
|
||||
- modules/programs/rclone.nix
|
||||
- modules/programs/restic.nix
|
||||
- modules/services/borgmatic.nix
|
||||
- tests/modules/programs/borgmatic/**/*
|
||||
- tests/modules/services/borgmatic/**/*
|
||||
"bars":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/eww.nix
|
||||
- modules/programs/sketchybar.nix
|
||||
- modules/programs/waybar.nix
|
||||
- modules/programs/xmobar.nix
|
||||
- modules/programs/yambar.nix
|
||||
- modules/services/polybar.nix
|
||||
- modules/services/taffybar.nix
|
||||
- tests/modules/programs/waybar/**/*
|
||||
- tests/modules/services/polybar/**/*
|
||||
"browsers":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/firefox/**/*
|
||||
- tests/modules/programs/firefox/**/*
|
||||
- modules/misc/mozilla-messaging-hosts.nix
|
||||
- modules/programs/floorp.nix
|
||||
- modules/programs/librewolf.nix
|
||||
- modules/programs/chromium.nix
|
||||
- modules/programs/qutebrowser.nix
|
||||
- tests/modules/programs/chromium/**/*
|
||||
- tests/modules/programs/qutebrowser/**/*
|
||||
|
||||
"shell":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/lib/zsh.nix
|
||||
- modules/programs/zsh*.nix
|
||||
- modules/programs/bash*.nix
|
||||
- modules/programs/fish.nix
|
||||
- modules/programs/nushell.nix
|
||||
- modules/programs/ion.nix
|
||||
- tests/modules/programs/zsh/**/*
|
||||
- tests/modules/programs/bash/**/*
|
||||
- tests/modules/programs/fish/**/*
|
||||
- tests/modules/programs/nushell/**/*
|
||||
- modules/programs/starship.nix
|
||||
- modules/programs/oh-my-posh.nix
|
||||
- modules/programs/powerline-go.nix
|
||||
|
||||
- any-glob-to-any-file:
|
||||
- modules/misc/mozilla-messaging-hosts.nix
|
||||
- modules/programs/chromium.nix
|
||||
- modules/programs/firefox/**/*
|
||||
- modules/programs/floorp.nix
|
||||
- modules/programs/librewolf.nix
|
||||
- modules/programs/qutebrowser.nix
|
||||
- tests/modules/programs/chromium/**/*
|
||||
- tests/modules/programs/firefox/**/*
|
||||
- tests/modules/programs/qutebrowser/**/*
|
||||
"calendar":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/khal*.nix
|
||||
- modules/*/vdirsyncer*.nix
|
||||
- modules/accounts/calendar.nix
|
||||
- modules/programs/qcal.nix
|
||||
- modules/programs/todoman.nix
|
||||
- tests/modules/programs/khal/**/*
|
||||
|
||||
"contacts":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/accounts/contacts.nix
|
||||
- modules/programs/khard.nix
|
||||
- modules/programs/abook.nix
|
||||
- tests/modules/programs/khard/**/*
|
||||
- tests/modules/programs/abook/**/*
|
||||
|
||||
"terminal":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/alacritty.nix
|
||||
- modules/programs/foot.nix
|
||||
- modules/programs/kitty.nix
|
||||
- modules/programs/wezterm.nix
|
||||
- modules/programs/termite.nix
|
||||
- modules/programs/terminator.nix
|
||||
- modules/programs/urxvt.nix
|
||||
- modules/programs/gnome-terminal.nix
|
||||
- modules/programs/rio.nix
|
||||
- modules/programs/ghostty.nix
|
||||
- tests/modules/programs/alacritty/**/*
|
||||
- tests/modules/programs/kitty/**/*
|
||||
- tests/modules/programs/foot/**/*
|
||||
|
||||
"file-manager":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/ranger.nix
|
||||
- modules/programs/lf.nix
|
||||
- modules/programs/nnn.nix
|
||||
- modules/programs/joshuto.nix
|
||||
- modules/programs/vifm.nix
|
||||
- modules/programs/xplr.nix
|
||||
- modules/programs/yazi.nix
|
||||
- tests/modules/programs/ranger/**/*
|
||||
- tests/modules/programs/lf/**/*
|
||||
- tests/modules/programs/nnn/**/*
|
||||
- tests/modules/programs/yazi/**/*
|
||||
|
||||
"git":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/git*.nix
|
||||
- modules/programs/lazygit.nix
|
||||
- modules/programs/gh*.nix
|
||||
- modules/programs/jujutsu.nix
|
||||
- modules/programs/sapling.nix
|
||||
- modules/services/git-sync.nix
|
||||
- tests/modules/programs/git/**/*
|
||||
|
||||
"media":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/mpv.nix
|
||||
- modules/programs/ncmpcpp.nix
|
||||
- modules/programs/cmus.nix
|
||||
- modules/programs/ncspot.nix
|
||||
- modules/programs/spotify-player.nix
|
||||
- modules/programs/foliate.nix
|
||||
- modules/programs/freetube.nix
|
||||
- modules/programs/yt-dlp.nix
|
||||
- modules/programs/kodi.nix
|
||||
- modules/programs/obs-studio.nix
|
||||
- modules/programs/feh.nix
|
||||
- modules/programs/imv.nix
|
||||
- modules/programs/pqiv.nix
|
||||
- modules/programs/swayimg.nix
|
||||
- modules/programs/zathura.nix
|
||||
- modules/programs/sioyek.nix
|
||||
- modules/services/mpd*.nix
|
||||
- modules/services/spotifyd.nix
|
||||
- modules/services/librespot.nix
|
||||
- tests/modules/programs/mpv/**/*
|
||||
- tests/modules/services/mpd/**/*
|
||||
|
||||
"wayland":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/waybar.nix
|
||||
- modules/programs/fuzzel.nix
|
||||
- modules/programs/tofi.nix
|
||||
- modules/programs/wofi.nix
|
||||
- modules/programs/anyrun.nix
|
||||
- modules/programs/swaylock.nix
|
||||
- modules/programs/wlogout.nix
|
||||
- modules/programs/waylogout.nix
|
||||
- modules/programs/swayr.nix
|
||||
- modules/services/swayidle.nix
|
||||
- modules/services/swayosd.nix
|
||||
- modules/services/swaync.nix
|
||||
- modules/services/wlsunset.nix
|
||||
- modules/services/wluma.nix
|
||||
- modules/services/wpaperd.nix
|
||||
- modules/services/swww.nix
|
||||
- modules/services/kanshi.nix
|
||||
- modules/services/way-displays.nix
|
||||
- modules/services/fnott.nix
|
||||
- modules/services/mako.nix
|
||||
- modules/services/hypridle.nix
|
||||
- modules/services/hyprpaper.nix
|
||||
- modules/services/hyprsunset.nix
|
||||
- modules/services/hyprpolkitagent.nix
|
||||
- modules/programs/hyprlock.nix
|
||||
- tests/modules/programs/waybar/**/*
|
||||
- tests/modules/programs/swaylock/**/*
|
||||
|
||||
"x11":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/rofi*.nix
|
||||
- modules/programs/i3*.nix
|
||||
- modules/programs/tint2.nix
|
||||
- modules/programs/xmobar.nix
|
||||
- modules/programs/eww.nix
|
||||
- modules/services/picom.nix
|
||||
- modules/services/polybar.nix
|
||||
- modules/services/dunst.nix
|
||||
- modules/services/screen-locker.nix
|
||||
- modules/services/betterlockscreen.nix
|
||||
- modules/services/xscreensaver.nix
|
||||
- modules/services/xidlehook.nix
|
||||
- modules/services/xsuspender.nix
|
||||
- modules/services/xsettingsd.nix
|
||||
- modules/services/stalonetray.nix
|
||||
- modules/services/trayer.nix
|
||||
- modules/services/taffybar.nix
|
||||
- tests/modules/programs/rofi/**/*
|
||||
- tests/modules/programs/i3*/**/*
|
||||
- tests/modules/services/picom/**/*
|
||||
- tests/modules/services/polybar/**/*
|
||||
|
||||
"cli-tools":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/bat.nix
|
||||
- modules/programs/eza.nix
|
||||
- modules/programs/lsd.nix
|
||||
- modules/programs/ripgrep*.nix
|
||||
- modules/programs/fd.nix
|
||||
- modules/programs/fzf.nix
|
||||
- modules/programs/skim.nix
|
||||
- modules/programs/jq*.nix
|
||||
- modules/programs/direnv.nix
|
||||
- modules/programs/zoxide.nix
|
||||
- modules/programs/atuin.nix
|
||||
- modules/programs/mcfly.nix
|
||||
- modules/programs/tealdeer.nix
|
||||
- modules/programs/htop.nix
|
||||
- modules/programs/btop.nix
|
||||
- modules/programs/bottom.nix
|
||||
- modules/programs/fastfetch.nix
|
||||
- modules/programs/hyfetch.nix
|
||||
- modules/programs/tmux.nix
|
||||
- modules/programs/zellij.nix
|
||||
- modules/programs/tmate.nix
|
||||
- modules/programs/dircolors.nix
|
||||
- modules/programs/thefuck.nix
|
||||
- modules/programs/navi.nix
|
||||
- modules/programs/just.nix
|
||||
- modules/programs/pls.nix
|
||||
- tests/modules/programs/tmux/**/*
|
||||
- tests/modules/programs/fzf/**/*
|
||||
|
||||
"password-manager":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/password-store.nix
|
||||
- modules/programs/browserpass.nix
|
||||
- modules/programs/keepassxc.nix
|
||||
- modules/programs/rbw.nix
|
||||
- modules/services/pass-secret-service.nix
|
||||
- tests/modules/programs/password-store/**/*
|
||||
- tests/modules/programs/keepassxc/**/*
|
||||
|
||||
"dev-tools":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/go.nix
|
||||
- modules/programs/java.nix
|
||||
- modules/programs/python*.nix
|
||||
- modules/programs/pyenv.nix
|
||||
- modules/programs/rbenv.nix
|
||||
- modules/programs/opam.nix
|
||||
- modules/programs/bun.nix
|
||||
- modules/programs/gradle.nix
|
||||
- modules/programs/sbt.nix
|
||||
- modules/programs/texlive.nix
|
||||
- modules/programs/ruff.nix
|
||||
- modules/programs/pylint.nix
|
||||
- modules/programs/mise.nix
|
||||
- modules/programs/nix-index.nix
|
||||
- modules/programs/nix-init.nix
|
||||
- modules/programs/nh.nix
|
||||
- modules/programs/bacon.nix
|
||||
- modules/programs/sqls.nix
|
||||
- modules/services/lorri.nix
|
||||
- tests/modules/programs/go/**/*
|
||||
- tests/modules/programs/java/**/*
|
||||
|
||||
"sync":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/syncthing.nix
|
||||
- modules/services/dropbox.nix
|
||||
- modules/services/nextcloud-client.nix
|
||||
- modules/services/owncloud-client.nix
|
||||
- modules/services/kdeconnect.nix
|
||||
- modules/services/unison.nix
|
||||
- tests/modules/services/syncthing/**/*
|
||||
- tests/modules/services/dropbox/**/*
|
||||
|
||||
"system":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/home-manager*.nix
|
||||
- modules/services/nix-gc.nix
|
||||
- modules/programs/home-manager.nix
|
||||
- modules/services/gpg-agent.nix
|
||||
- modules/programs/gpg.nix
|
||||
- modules/services/ssh-agent.nix
|
||||
- modules/programs/ssh.nix
|
||||
- modules/services/keybase.nix
|
||||
- modules/services/kbfs.nix
|
||||
- modules/services/yubikey-agent.nix
|
||||
- tests/modules/services/home-manager*/**/*
|
||||
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/*/vdirsyncer*.nix
|
||||
- modules/accounts/calendar.nix
|
||||
- modules/programs/khal*.nix
|
||||
- modules/programs/qcal.nix
|
||||
- tests/modules/programs/khal/**/*
|
||||
"clipboard":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/clipman.nix
|
||||
- modules/services/cliphist.nix
|
||||
- modules/services/clipmenu.nix
|
||||
- modules/services/copyq.nix
|
||||
- modules/services/parcellite.nix
|
||||
- modules/services/clipse.nix
|
||||
- tests/modules/services/clipman/**/*
|
||||
- tests/modules/services/copyq/**/*
|
||||
|
||||
"notification":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/dunst.nix
|
||||
- modules/services/mako.nix
|
||||
- modules/services/swaync.nix
|
||||
- modules/services/notify-osd.nix
|
||||
- modules/services/twmn.nix
|
||||
- modules/services/fnott.nix
|
||||
- modules/programs/noti.nix
|
||||
- tests/modules/services/dunst/**/*
|
||||
- tests/modules/services/mako/**/*
|
||||
|
||||
"backup":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/borgmatic.nix
|
||||
- modules/services/borgmatic.nix
|
||||
- modules/programs/rclone.nix
|
||||
- modules/programs/restic.nix
|
||||
- tests/modules/programs/borgmatic/**/*
|
||||
- tests/modules/services/borgmatic/**/*
|
||||
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/clipcat.nix
|
||||
- modules/services/cliphist.nix
|
||||
- modules/services/clipman.nix
|
||||
- modules/services/clipmenu.nix
|
||||
- modules/services/clipse.nix
|
||||
- modules/services/copyq.nix
|
||||
- modules/services/parcellite.nix
|
||||
- modules/services/pbgopy.nix
|
||||
- tests/modules/services/clipman/**/*
|
||||
- tests/modules/services/copyq/**/*
|
||||
"cli-tools":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/antidote.nix
|
||||
- modules/programs/atuin.nix
|
||||
- modules/programs/autojump.nix
|
||||
- modules/programs/bashmount.nix
|
||||
- modules/programs/bat.nix
|
||||
- modules/programs/bottom.nix
|
||||
- modules/programs/boxxy.nix
|
||||
- modules/programs/broot.nix
|
||||
- modules/programs/btop.nix
|
||||
- modules/programs/carapace.nix
|
||||
- modules/programs/dircolors.nix
|
||||
- modules/programs/direnv.nix
|
||||
- modules/programs/eza.nix
|
||||
- modules/programs/fastfetch.nix
|
||||
- modules/programs/fd.nix
|
||||
- modules/programs/fzf.nix
|
||||
- modules/programs/hstr.nix
|
||||
- modules/programs/htop.nix
|
||||
- modules/programs/hwatch.nix
|
||||
- modules/programs/hyfetch.nix
|
||||
- modules/programs/jq*.nix
|
||||
- modules/programs/just.nix
|
||||
- modules/programs/keychain.nix
|
||||
- modules/programs/less.nix
|
||||
- modules/programs/lesspipe.nix
|
||||
- modules/programs/lsd.nix
|
||||
- modules/programs/man.nix
|
||||
- modules/programs/mcfly.nix
|
||||
- modules/programs/navi.nix
|
||||
- modules/programs/nix-your-shell.nix
|
||||
- modules/programs/pay-respects.nix
|
||||
- modules/programs/pazi.nix
|
||||
- modules/programs/pet.nix
|
||||
- modules/programs/pistol.nix
|
||||
- modules/programs/pls.nix
|
||||
- modules/programs/readline.nix
|
||||
- modules/programs/ripgrep*.nix
|
||||
- modules/programs/scmpuff.nix
|
||||
- modules/programs/script-directory.nix
|
||||
- modules/programs/sesh.nix
|
||||
- modules/programs/skim.nix
|
||||
- modules/programs/superfile.nix
|
||||
- modules/programs/tealdeer.nix
|
||||
- modules/programs/television.nix
|
||||
- modules/programs/thefuck.nix
|
||||
- modules/programs/tmate.nix
|
||||
- modules/programs/tmux.nix
|
||||
- modules/programs/topgrade.nix
|
||||
- modules/programs/translate-shell.nix
|
||||
- modules/programs/uv.nix
|
||||
- modules/programs/watson.nix
|
||||
- modules/programs/z-lua.nix
|
||||
- modules/programs/zellij.nix
|
||||
- modules/programs/zk.nix
|
||||
- modules/programs/zoxide.nix
|
||||
- modules/programs/zplug.nix
|
||||
- tests/modules/programs/fzf/**/*
|
||||
- tests/modules/programs/tmux/**/*
|
||||
"contacts":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/accounts/contacts.nix
|
||||
- modules/programs/abook.nix
|
||||
- modules/programs/khard.nix
|
||||
- tests/modules/programs/abook/**/*
|
||||
- tests/modules/programs/khard/**/*
|
||||
"containers":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/podman-linux/**/*
|
||||
- modules/programs/distrobox.nix
|
||||
- modules/programs/docker-cli.nix
|
||||
"desktop-ui":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/avizo.nix
|
||||
- modules/services/blanket.nix
|
||||
- modules/services/flameshot.nix
|
||||
- modules/programs/gnome-shell.nix
|
||||
- modules/services/gromit-mpx.nix
|
||||
- modules/services/linux-wallpaperengine.nix
|
||||
- modules/services/random-background.nix
|
||||
- modules/services/volnoti.nix
|
||||
- modules/services/wob.nix
|
||||
- modules/services/wpaperd.nix
|
||||
"desktop-utilities":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/autorandr.nix
|
||||
- modules/services/blueman-applet.nix
|
||||
- modules/services/gnome-keyring.nix
|
||||
- modules/services/lxqt-policykit-agent.nix
|
||||
- modules/services/network-manager-applet.nix
|
||||
- modules/services/polkit-gnome.nix
|
||||
- modules/services/sctd.nix
|
||||
- modules/services/snixembed.nix
|
||||
- modules/services/status-notifier-watcher.nix
|
||||
- modules/services/systembus-notify.nix
|
||||
- modules/services/trayscale.nix
|
||||
- modules/services/udiskie.nix
|
||||
- modules/services/unclutter.nix
|
||||
- modules/services/xembed-sni-proxy.nix
|
||||
"dev-tools":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/bacon.nix
|
||||
- modules/programs/bun.nix
|
||||
- modules/programs/darcs.nix
|
||||
- modules/programs/earthly.nix
|
||||
- modules/programs/eclipse.nix
|
||||
- modules/programs/go.nix
|
||||
- modules/programs/gradle.nix
|
||||
- modules/programs/granted.nix
|
||||
- modules/programs/java.nix
|
||||
- modules/programs/jetbrains-remote.nix
|
||||
- modules/programs/kubecolor.nix
|
||||
- modules/programs/lazydocker.nix
|
||||
- modules/programs/matplotlib.nix
|
||||
- modules/programs/mercurial.nix
|
||||
- modules/programs/mergiraf.nix
|
||||
- modules/programs/mise.nix
|
||||
- modules/programs/mods.nix
|
||||
- modules/programs/mr.nix
|
||||
- modules/programs/nh.nix
|
||||
- modules/programs/nix-index.nix
|
||||
- modules/programs/nix-init.nix
|
||||
- modules/programs/numbat.nix
|
||||
- modules/programs/octant.nix
|
||||
- modules/programs/opam.nix
|
||||
- modules/programs/openstackclient.nix
|
||||
- modules/programs/pgcli.nix
|
||||
- modules/programs/piston-cli.nix
|
||||
- modules/programs/poetry.nix
|
||||
- modules/programs/pyenv.nix
|
||||
- modules/programs/pylint.nix
|
||||
- modules/programs/python*.nix
|
||||
- modules/programs/pywal.nix
|
||||
- modules/programs/rbenv.nix
|
||||
- modules/programs/ruff.nix
|
||||
- modules/programs/sagemath.nix
|
||||
- modules/programs/sbt.nix
|
||||
- modules/programs/sftpman.nix
|
||||
- modules/programs/smug.nix
|
||||
- modules/programs/sqls.nix
|
||||
- modules/programs/tex-fmt.nix
|
||||
- modules/programs/texlive.nix
|
||||
- modules/programs/vim-vint.nix
|
||||
- modules/programs/visidata.nix
|
||||
- modules/services/lorri.nix
|
||||
- tests/modules/programs/go/**/*
|
||||
- tests/modules/programs/java/**/*
|
||||
"editors":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/emacs.nix
|
||||
- modules/programs/helix.nix
|
||||
- modules/programs/kakoune.nix
|
||||
- modules/programs/lapce.nix
|
||||
- modules/programs/micro.nix
|
||||
- modules/programs/ne.nix
|
||||
- modules/programs/neovide.nix
|
||||
- modules/programs/neovim.nix
|
||||
- modules/programs/vim*.nix
|
||||
- modules/programs/vscode.nix
|
||||
- modules/programs/zed-editor.nix
|
||||
- modules/services/emacs.nix
|
||||
- tests/modules/programs/emacs/**/*
|
||||
- tests/modules/programs/helix/**/*
|
||||
- tests/modules/programs/neovim/**/*
|
||||
- tests/modules/programs/vim/**/*
|
||||
"file-manager":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/joshuto.nix
|
||||
- modules/programs/lf.nix
|
||||
- modules/programs/nnn.nix
|
||||
- modules/programs/ranger.nix
|
||||
- modules/programs/vifm.nix
|
||||
- modules/programs/xplr.nix
|
||||
- modules/programs/yazi.nix
|
||||
- tests/modules/programs/lf/**/*
|
||||
- tests/modules/programs/nnn/**/*
|
||||
- tests/modules/programs/ranger/**/*
|
||||
- tests/modules/programs/yazi/**/*
|
||||
"gaming":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/kodi.nix
|
||||
- modules/services/ludusavi.nix
|
||||
- modules/programs/lutris.nix
|
||||
- modules/programs/mangohud.nix
|
||||
- modules/programs/sm64ex.nix
|
||||
"git":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/gh*.nix
|
||||
- modules/programs/git*.nix
|
||||
- modules/programs/jujutsu.nix
|
||||
- modules/programs/lazygit.nix
|
||||
- modules/programs/sapling.nix
|
||||
- modules/services/git-sync.nix
|
||||
- tests/modules/programs/git/**/*
|
||||
"mail":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/*/mbsync*
|
||||
- modules/programs/aerc*.nix
|
||||
- modules/programs/alot*.nix
|
||||
- modules/programs/getmail*
|
||||
- modules/programs/himalaya.nix
|
||||
- modules/programs/lieer.nix
|
||||
- modules/programs/meli.nix
|
||||
- modules/programs/msmtp*
|
||||
- modules/programs/mu.nix
|
||||
- modules/programs/mujmap.nix
|
||||
- modules/programs/neomutt*
|
||||
- modules/programs/notmuch*.nix
|
||||
- modules/programs/offlineimap*.nix
|
||||
- modules/programs/thunderbird.nix
|
||||
- modules/services/imapnotify*.nix
|
||||
- modules/services/lieer.nix
|
||||
- modules/services/muchsync.nix
|
||||
- tests/modules/programs/aerc/*
|
||||
- tests/modules/programs/alot/*
|
||||
- tests/modules/programs/himalaya/*
|
||||
- tests/modules/programs/mbsync/*
|
||||
- tests/modules/programs/mujmap/*
|
||||
- tests/modules/programs/neomutt/*
|
||||
- tests/modules/programs/thunderbird/*
|
||||
"messaging":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/irssi.nix
|
||||
- modules/programs/senpai.nix
|
||||
- modules/programs/hexchat.nix
|
||||
- modules/programs/nheko.nix
|
||||
- modules/programs/iamb.nix
|
||||
- modules/programs/pidgin.nix
|
||||
- modules/services/pantalaimon.nix
|
||||
- tests/modules/programs/irssi/**/*
|
||||
- tests/modules/programs/nheko/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/chawan.nix
|
||||
- modules/programs/discocss.nix
|
||||
- modules/programs/element-desktop.nix
|
||||
- modules/programs/halloy.nix
|
||||
- modules/programs/havoc.nix
|
||||
- modules/programs/hexchat.nix
|
||||
- modules/programs/iamb.nix
|
||||
- modules/programs/irssi.nix
|
||||
- modules/programs/nheko.nix
|
||||
- modules/programs/pidgin.nix
|
||||
- modules/programs/senpai.nix
|
||||
- modules/programs/tiny.nix
|
||||
- modules/programs/vesktop.nix
|
||||
- modules/services/pantalaimon.nix
|
||||
- tests/modules/programs/irssi/**/*
|
||||
- tests/modules/programs/nheko/**/*
|
||||
"monitoring":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/activitywatch.nix
|
||||
- modules/services/batsignal.nix
|
||||
- modules/services/cbatticon.nix
|
||||
- modules/services/conky.nix
|
||||
- modules/services/glance.nix
|
||||
- modules/services/poweralertd.nix
|
||||
"notification":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/noti.nix
|
||||
- modules/services/dunst.nix
|
||||
- modules/services/fnott.nix
|
||||
- modules/services/mako.nix
|
||||
- modules/services/notify-osd.nix
|
||||
- modules/services/swaync.nix
|
||||
- modules/services/twmn.nix
|
||||
- tests/modules/services/dunst/**/*
|
||||
- tests/modules/services/mako/**/*
|
||||
"productivity":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/comodoro.nix
|
||||
- modules/programs/info.nix
|
||||
- modules/programs/joplin-desktop.nix
|
||||
- modules/programs/ledger.nix
|
||||
- modules/programs/newsboat.nix
|
||||
- modules/programs/obsidian.nix
|
||||
- modules/programs/onlyoffice.nix
|
||||
- modules/programs/pandoc.nix
|
||||
- modules/programs/papis.nix
|
||||
- modules/programs/pubs.nix
|
||||
- modules/programs/taskwarrior.nix
|
||||
- modules/programs/todoman.nix
|
||||
- modules/services/comodoro.nix
|
||||
- modules/services/rsibreak.nix
|
||||
- modules/services/safeeyes.nix
|
||||
- modules/services/taskwarrior-sync.nix
|
||||
"password-manager":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/browserpass.nix
|
||||
- modules/programs/keepassxc.nix
|
||||
- modules/programs/password-store.nix
|
||||
- modules/programs/rbw.nix
|
||||
- modules/services/pass-secret-service.nix
|
||||
- tests/modules/programs/keepassxc/**/*
|
||||
- tests/modules/programs/password-store/**/*
|
||||
"photo":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/feh.nix
|
||||
- modules/programs/gallery-dl.nix
|
||||
- modules/programs/imv.nix
|
||||
- modules/programs/pqiv.nix
|
||||
- modules/programs/swayimg.nix
|
||||
- modules/programs/wallust.nix
|
||||
"shell":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/lib/zsh.nix
|
||||
- modules/programs/bash*.nix
|
||||
- modules/programs/fish.nix
|
||||
- modules/programs/ion.nix
|
||||
- modules/programs/nushell.nix
|
||||
- modules/programs/oh-my-posh.nix
|
||||
- modules/programs/powerline-go.nix
|
||||
- modules/programs/starship.nix
|
||||
- modules/programs/zsh*.nix
|
||||
- tests/modules/programs/bash/**/*
|
||||
- tests/modules/programs/fish/**/*
|
||||
- tests/modules/programs/nushell/**/*
|
||||
- tests/modules/programs/zsh/**/*
|
||||
"sync":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/services/davmail.nix
|
||||
- modules/services/dropbox.nix
|
||||
- modules/services/etesync-dav.nix
|
||||
- modules/services/kdeconnect.nix
|
||||
- modules/services/megasync.nix
|
||||
- modules/services/nextcloud-client.nix
|
||||
- modules/programs/onedrive.nix
|
||||
- modules/services/owncloud-client.nix
|
||||
- modules/programs/rtorrent.nix
|
||||
- modules/services/syncthing.nix
|
||||
- modules/services/unison.nix
|
||||
- tests/modules/services/dropbox/**/*
|
||||
- tests/modules/services/syncthing/**/*
|
||||
"system":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/gpg.nix
|
||||
- modules/programs/home-manager.nix
|
||||
- modules/programs/ssh.nix
|
||||
- modules/services/gpg-agent.nix
|
||||
- modules/services/home-manager*.nix
|
||||
- modules/services/kbfs.nix
|
||||
- modules/services/keybase.nix
|
||||
- modules/services/nix-gc.nix
|
||||
- modules/services/ssh-agent.nix
|
||||
- modules/services/yubikey-agent.nix
|
||||
- tests/modules/services/home-manager*/**/*
|
||||
"system-tools":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/aria2.nix
|
||||
- modules/services/arrpc.nix
|
||||
- modules/services/cachix-agent.nix
|
||||
- modules/services/fusuma.nix
|
||||
- modules/services/grobi.nix
|
||||
- modules/services/hound.nix
|
||||
- modules/services/jankyborders.nix
|
||||
- modules/services/ollama.nix
|
||||
- modules/services/opensnitch-ui.nix
|
||||
- modules/services/osmscout-server.nix
|
||||
- modules/services/plan9port.nix
|
||||
- modules/services/psd.nix
|
||||
- modules/services/pueue.nix
|
||||
- modules/services/recoll.nix
|
||||
- modules/services/signaturepdf.nix
|
||||
- modules/services/tahoe-lafs.nix
|
||||
- modules/services/tldr-update.nix
|
||||
"terminal":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/alacritty.nix
|
||||
- modules/programs/foot.nix
|
||||
- modules/programs/ghostty.nix
|
||||
- modules/programs/gnome-terminal.nix
|
||||
- modules/programs/kitty.nix
|
||||
- modules/programs/ptyxis.nix
|
||||
- modules/programs/rio.nix
|
||||
- modules/programs/terminator.nix
|
||||
- modules/programs/termite.nix
|
||||
- modules/programs/urxvt.nix
|
||||
- modules/programs/waveterm.nix
|
||||
- modules/programs/wezterm.nix
|
||||
- tests/modules/programs/alacritty/**/*
|
||||
- tests/modules/programs/foot/**/*
|
||||
- tests/modules/programs/kitty/**/*
|
||||
"video":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/freetube.nix
|
||||
- modules/programs/mpv.nix
|
||||
- modules/programs/mpvpaper.nix
|
||||
- modules/programs/obs-studio.nix
|
||||
- modules/programs/streamlink.nix
|
||||
- modules/programs/yt-dlp.nix
|
||||
- modules/services/jellyfin-mpv-shim.nix
|
||||
- modules/services/plex-mpv-shim.nix
|
||||
- tests/modules/programs/mpv/**/*
|
||||
"remote-desktop":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/looking-glass-client.nix
|
||||
- modules/services/barrier.nix
|
||||
- modules/services/remmina.nix
|
||||
- modules/services/wayvnc.nix
|
||||
"wayland":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/anyrun.nix
|
||||
- modules/programs/bemenu.nix
|
||||
- modules/programs/fuzzel.nix
|
||||
- modules/programs/hyprlock.nix
|
||||
- modules/programs/kickoff.nix
|
||||
- modules/programs/onagre.nix
|
||||
- modules/programs/sway-easyfocus.nix
|
||||
- modules/programs/swaylock.nix
|
||||
- modules/programs/swayr.nix
|
||||
- modules/programs/tofi.nix
|
||||
- modules/programs/waybar.nix
|
||||
- modules/programs/waylogout.nix
|
||||
- modules/programs/wayprompt.nix
|
||||
- modules/programs/wlogout.nix
|
||||
- modules/programs/wofi.nix
|
||||
- modules/services/fnott.nix
|
||||
- modules/services/hypridle.nix
|
||||
- modules/services/hyprpaper.nix
|
||||
- modules/services/hyprpolkitagent.nix
|
||||
- modules/services/hyprsunset.nix
|
||||
- modules/services/kanshi.nix
|
||||
- modules/services/mako.nix
|
||||
- modules/services/shikane.nix
|
||||
- modules/services/swayidle.nix
|
||||
- modules/services/swaync.nix
|
||||
- modules/services/swayosd.nix
|
||||
- modules/services/swww.nix
|
||||
- modules/services/way-displays.nix
|
||||
- modules/services/wlsunset.nix
|
||||
- modules/services/wluma.nix
|
||||
- modules/services/wpaperd.nix
|
||||
- tests/modules/programs/swaylock/**/*
|
||||
- tests/modules/programs/waybar/**/*
|
||||
"window-managers":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/aerospace.nix
|
||||
- modules/programs/i3bar-river.nix
|
||||
- modules/programs/i3blocks.nix
|
||||
- modules/programs/i3status-rust.nix
|
||||
- modules/programs/i3status.nix
|
||||
- modules/services/window-managers/**/*
|
||||
"x11":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- modules/programs/i3*.nix
|
||||
- modules/programs/rofi*.nix
|
||||
- modules/programs/tint2.nix
|
||||
- modules/programs/xmobar.nix
|
||||
- modules/programs/yambar.nix
|
||||
- modules/services/betterlockscreen.nix
|
||||
- modules/services/dunst.nix
|
||||
- modules/services/dwm-status.nix
|
||||
- modules/services/picom.nix
|
||||
- modules/services/polybar.nix
|
||||
- modules/services/screen-locker.nix
|
||||
- modules/services/stalonetray.nix
|
||||
- modules/services/sxhkd.nix
|
||||
- modules/services/taffybar.nix
|
||||
- modules/services/trayer.nix
|
||||
- modules/services/xcape.nix
|
||||
- modules/services/xembed-sni-proxy.nix
|
||||
- modules/services/xidlehook.nix
|
||||
- modules/services/xscreensaver.nix
|
||||
- modules/services/xsettingsd.nix
|
||||
- modules/services/xsuspender.nix
|
||||
- tests/modules/programs/i3*/**/*
|
||||
- tests/modules/programs/rofi/**/*
|
||||
- tests/modules/services/picom/**/*
|
||||
- tests/modules/services/polybar/**/*
|
||||
|
||||
4
.github/workflows/github_pages.yml
vendored
4
.github/workflows/github_pages.yml
vendored
@@ -10,10 +10,10 @@ jobs:
|
||||
os: [ubuntu-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
- uses: cachix/install-nix-action@v31
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
nix_path: nixpkgs=channel:nixos-25.05
|
||||
- uses: cachix/cachix-action@v16
|
||||
with:
|
||||
name: nix-community
|
||||
|
||||
3
.github/workflows/labeler.yml
vendored
3
.github/workflows/labeler.yml
vendored
@@ -11,13 +11,14 @@ on:
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
issues: write
|
||||
|
||||
jobs:
|
||||
labels:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository_owner == 'nix-community'
|
||||
steps:
|
||||
- uses: actions/labeler@v5
|
||||
- uses: actions/labeler@v6
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
sync-labels: true
|
||||
|
||||
24
.github/workflows/test.yml
vendored
24
.github/workflows/test.yml
vendored
@@ -11,10 +11,11 @@ jobs:
|
||||
os: [ubuntu-latest, macos-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
- uses: cachix/install-nix-action@v31
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
# TODO: Adjust uninstall to not need channel
|
||||
nix_path: nixpkgs=channel:nixos-25.05
|
||||
extra_nix_config: |
|
||||
experimental-features = nix-command flakes
|
||||
- run: |
|
||||
@@ -22,15 +23,24 @@ jobs:
|
||||
echo "Error: literalExample should be replaced by literalExpression" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
- run: nix-build --show-trace -A docs.jsonModuleMaintainers
|
||||
- run: nix build --show-trace .#docs-jsonModuleMaintainers
|
||||
- run: ./format --ci
|
||||
- run: nix-shell --show-trace . -A install
|
||||
- run: yes | home-manager -I home-manager=. uninstall
|
||||
- name: Test init --switch with locked inputs
|
||||
run: |
|
||||
# Copy lock file to home directory for consistent testing
|
||||
mkdir -p ~/.config/home-manager
|
||||
cp flake.lock ~/.config/home-manager/
|
||||
nix run .#home-manager -- init --switch --override-input home-manager .
|
||||
# FIXME: nix broken on darwin
|
||||
if: matrix.os != 'macos-latest'
|
||||
- run: yes | nix run . -- uninstall
|
||||
# FIXME: nix broken on darwin
|
||||
if: matrix.os != 'macos-latest'
|
||||
- name: Run tests
|
||||
run: nix-build -j auto --show-trace --arg enableBig false --pure --option allow-import-from-derivation false tests -A build.all
|
||||
run: nix build -j auto --show-trace --option allow-import-from-derivation false --reference-lock-file flake.lock "./tests#test-all-no-big"
|
||||
env:
|
||||
GC_INITIAL_HEAP_SIZE: 4294967296
|
||||
- name: Run tests (with IFD)
|
||||
run: nix-build -j auto --show-trace --arg enableBig false --pure --arg enableLegacyIfd true tests -A build.all
|
||||
run: nix build -j auto --show-trace --reference-lock-file flake.lock "./tests#test-all-no-big"
|
||||
env:
|
||||
GC_INITIAL_HEAP_SIZE: 4294967296
|
||||
|
||||
4
.github/workflows/update-flake.yml
vendored
4
.github/workflows/update-flake.yml
vendored
@@ -11,11 +11,11 @@ jobs:
|
||||
if: github.event_name != 'schedule' || github.repository_owner == 'nix-community'
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
- name: Install Nix
|
||||
uses: cachix/install-nix-action@v31
|
||||
- name: Update flake.lock
|
||||
uses: DeterminateSystems/update-flake-lock@v24
|
||||
uses: DeterminateSystems/update-flake-lock@v27
|
||||
with:
|
||||
token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
|
||||
pr-labels: dependencies
|
||||
|
||||
8
flake.lock
generated
8
flake.lock
generated
@@ -2,16 +2,16 @@
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1746904237,
|
||||
"narHash": "sha256-3e+AVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ=",
|
||||
"lastModified": 1753345091,
|
||||
"narHash": "sha256-CdX2Rtvp5I8HGu9swBmYuq+ILwRxpXdJwlpg8jvN4tU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d89fc19e405cb2d55ce7cc114356846a0ee5e956",
|
||||
"rev": "3ff0e34b1383648053bba8ed03f201d3466f90c9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
description = "Home Manager for Nix";
|
||||
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
|
||||
outputs =
|
||||
{
|
||||
|
||||
@@ -16,7 +16,7 @@ in
|
||||
i18n.inputMethod.fcitx5 = {
|
||||
fcitx5-with-addons = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.libsForQt5.fcitx5-with-addons;
|
||||
default = pkgs.qt6Packages.fcitx5-with-addons;
|
||||
example = lib.literalExpression "pkgs.kdePackages.fcitx5-with-addons";
|
||||
description = ''
|
||||
The fcitx5 package to use.
|
||||
|
||||
@@ -33,7 +33,8 @@ in
|
||||
|
||||
options = {
|
||||
dconf = {
|
||||
enable = lib.mkEnableOption "dconf" // {
|
||||
enable = lib.mkOption {
|
||||
type = types.bool;
|
||||
# While technically dconf on darwin could work, our activation step
|
||||
# requires dbus, which only *lightly* supports Darwin in general, and
|
||||
# not at all in the way it's packaged in nixpkgs. Because of this, we
|
||||
@@ -42,6 +43,13 @@ in
|
||||
# re-enabled, unclear whether there's actual value in it though.
|
||||
default = !pkgs.stdenv.hostPlatform.isDarwin;
|
||||
visible = false;
|
||||
description = ''
|
||||
Whether to enable dconf settings.Add commentMore actions
|
||||
Note, if you use NixOS then you must add
|
||||
`programs.dconf.enable = true`
|
||||
to your system configuration. Otherwise you will see a systemd error
|
||||
message when your configuration is activated.
|
||||
'';
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
@@ -76,77 +84,70 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable (
|
||||
{
|
||||
home.packages = [ pkgs.dconf ];
|
||||
dbus.packages = [ pkgs.dconf ];
|
||||
home.sessionVariables.GIO_EXTRA_MODULES = "${pkgs.dconf.lib}/lib/gio/modules";
|
||||
}
|
||||
// lib.mkIf (cfg.settings != { }) {
|
||||
# Make sure the dconf directory exists.
|
||||
xdg.configFile."dconf/.keep".source = builtins.toFile "keep" "";
|
||||
config = lib.mkIf (cfg.enable && cfg.settings != { }) {
|
||||
# Make sure the dconf directory exists.
|
||||
xdg.configFile."dconf/.keep".source = builtins.toFile "keep" "";
|
||||
|
||||
home.extraBuilderCommands = ''
|
||||
mkdir -p $out/state/
|
||||
ln -s ${stateDconfKeys} $out/state/${stateDconfKeys.name}
|
||||
'';
|
||||
home.extraBuilderCommands = ''
|
||||
mkdir -p $out/state/
|
||||
ln -s ${stateDconfKeys} $out/state/${stateDconfKeys.name}
|
||||
'';
|
||||
|
||||
home.activation.dconfSettings = lib.hm.dag.entryAfter [ "installPackages" ] (
|
||||
let
|
||||
iniFile = pkgs.writeText "hm-dconf.ini" (toDconfIni cfg.settings);
|
||||
home.activation.dconfSettings = lib.hm.dag.entryAfter [ "installPackages" ] (
|
||||
let
|
||||
iniFile = pkgs.writeText "hm-dconf.ini" (toDconfIni cfg.settings);
|
||||
|
||||
statePath = "state/${stateDconfKeys.name}";
|
||||
statePath = "state/${stateDconfKeys.name}";
|
||||
|
||||
cleanup = pkgs.writeShellScript "dconf-cleanup" ''
|
||||
set -euo pipefail
|
||||
cleanup = pkgs.writeShellScript "dconf-cleanup" ''
|
||||
set -euo pipefail
|
||||
|
||||
${config.lib.bash.initHomeManagerLib}
|
||||
${config.lib.bash.initHomeManagerLib}
|
||||
|
||||
PATH=${
|
||||
lib.makeBinPath [
|
||||
pkgs.dconf
|
||||
pkgs.jq
|
||||
]
|
||||
}''${PATH:+:}$PATH
|
||||
PATH=${
|
||||
lib.makeBinPath [
|
||||
pkgs.dconf
|
||||
pkgs.jq
|
||||
]
|
||||
}''${PATH:+:}$PATH
|
||||
|
||||
oldState="$1"
|
||||
newState="$2"
|
||||
oldState="$1"
|
||||
newState="$2"
|
||||
|
||||
# Can't do cleanup if we don't know the old state.
|
||||
if [[ ! -f $oldState ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Reset all keys that are present in the old generation but not the new
|
||||
# one.
|
||||
jq -r -n \
|
||||
--slurpfile old "$oldState" \
|
||||
--slurpfile new "$newState" \
|
||||
'($old[] - $new[])[]' \
|
||||
| while read -r key; do
|
||||
verboseEcho "Resetting dconf key \"$key\""
|
||||
run $DCONF_DBUS_RUN_SESSION dconf reset "$key"
|
||||
done
|
||||
'';
|
||||
in
|
||||
''
|
||||
if [[ -v DBUS_SESSION_BUS_ADDRESS ]]; then
|
||||
export DCONF_DBUS_RUN_SESSION=""
|
||||
else
|
||||
export DCONF_DBUS_RUN_SESSION="${pkgs.dbus}/bin/dbus-run-session --dbus-daemon=${pkgs.dbus}/bin/dbus-daemon"
|
||||
# Can't do cleanup if we don't know the old state.
|
||||
if [[ ! -f $oldState ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ -v oldGenPath ]]; then
|
||||
${cleanup} \
|
||||
"$oldGenPath/${statePath}" \
|
||||
"$newGenPath/${statePath}"
|
||||
fi
|
||||
# Reset all keys that are present in the old generation but not the new
|
||||
# one.
|
||||
jq -r -n \
|
||||
--slurpfile old "$oldState" \
|
||||
--slurpfile new "$newState" \
|
||||
'($old[] - $new[])[]' \
|
||||
| while read -r key; do
|
||||
verboseEcho "Resetting dconf key \"$key\""
|
||||
run $DCONF_DBUS_RUN_SESSION dconf reset "$key"
|
||||
done
|
||||
'';
|
||||
in
|
||||
''
|
||||
if [[ -v DBUS_SESSION_BUS_ADDRESS ]]; then
|
||||
export DCONF_DBUS_RUN_SESSION=""
|
||||
else
|
||||
export DCONF_DBUS_RUN_SESSION="${pkgs.dbus}/bin/dbus-run-session --dbus-daemon=${pkgs.dbus}/bin/dbus-daemon"
|
||||
fi
|
||||
|
||||
run $DCONF_DBUS_RUN_SESSION ${pkgs.dconf}/bin/dconf load / < ${iniFile}
|
||||
if [[ -v oldGenPath ]]; then
|
||||
${cleanup} \
|
||||
"$oldGenPath/${statePath}" \
|
||||
"$newGenPath/${statePath}"
|
||||
fi
|
||||
|
||||
unset DCONF_DBUS_RUN_SESSION
|
||||
''
|
||||
);
|
||||
}
|
||||
);
|
||||
run $DCONF_DBUS_RUN_SESSION ${pkgs.dconf}/bin/dconf load / < ${iniFile}
|
||||
|
||||
unset DCONF_DBUS_RUN_SESSION
|
||||
''
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -169,6 +169,8 @@ in
|
||||
The location to put the GTK configuration file.
|
||||
'';
|
||||
};
|
||||
|
||||
force = lib.mkEnableOption "GTK 2 config force overwrite without creating a backup";
|
||||
};
|
||||
|
||||
gtk3 = {
|
||||
@@ -294,10 +296,14 @@ in
|
||||
cfg.cursorTheme
|
||||
];
|
||||
|
||||
home.file.${cfg2.configLocation}.text =
|
||||
lib.concatMapStrings (l: l + "\n") (lib.mapAttrsToList formatGtk2Option gtkIni)
|
||||
+ cfg2.extraConfig
|
||||
+ "\n";
|
||||
home.file.${cfg2.configLocation} = {
|
||||
text =
|
||||
lib.concatMapStrings (l: l + "\n") (lib.mapAttrsToList formatGtk2Option gtkIni)
|
||||
+ cfg2.extraConfig
|
||||
+ "\n";
|
||||
|
||||
inherit (cfg2) force;
|
||||
};
|
||||
|
||||
home.sessionVariables.GTK2_RC_FILES = cfg2.configLocation;
|
||||
|
||||
|
||||
9
modules/misc/news/2025/09/2025-09-15_18-14-27.nix
Normal file
9
modules/misc/news/2025/09/2025-09-15_18-14-27.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
time = "2025-09-15T22:14:27+00:00";
|
||||
condition = true;
|
||||
message = ''
|
||||
A new module is available: `programs.nvchecker`.
|
||||
|
||||
`nvchecker` checks if a new version of some software was released.
|
||||
'';
|
||||
}
|
||||
@@ -95,6 +95,7 @@ let
|
||||
./programs/direnv.nix
|
||||
./programs/discocss.nix
|
||||
./programs/distrobox.nix
|
||||
./programs/docker-cli.nix
|
||||
./programs/earthly.nix
|
||||
./programs/eclipse.nix
|
||||
./programs/element-desktop.nix
|
||||
@@ -137,6 +138,7 @@ let
|
||||
./programs/htop.nix
|
||||
./programs/hyfetch.nix
|
||||
./programs/hyprlock.nix
|
||||
./programs/hyprpanel.nix
|
||||
./programs/i3bar-river.nix
|
||||
./programs/i3blocks.nix
|
||||
./programs/i3status-rust.nix
|
||||
@@ -211,6 +213,7 @@ let
|
||||
./programs/notmuch.nix
|
||||
./programs/numbat.nix
|
||||
./programs/nushell.nix
|
||||
./programs/nvchecker.nix
|
||||
./programs/obs-studio.nix
|
||||
./programs/octant.nix
|
||||
./programs/offlineimap.nix
|
||||
@@ -317,6 +320,7 @@ let
|
||||
./programs/xmobar.nix
|
||||
./programs/xplr.nix
|
||||
./programs/yambar.nix
|
||||
./programs/yarn/default.nix
|
||||
./programs/yazi.nix
|
||||
./programs/yt-dlp.nix
|
||||
./programs/z-lua.nix
|
||||
|
||||
65
modules/programs/docker-cli.nix
Normal file
65
modules/programs/docker-cli.nix
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
mkIf
|
||||
mkEnableOption
|
||||
mkOption
|
||||
;
|
||||
|
||||
cfg = config.programs.docker-cli;
|
||||
|
||||
jsonFormat = pkgs.formats.json { };
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.friedrichaltheide ];
|
||||
|
||||
options.programs.docker-cli = {
|
||||
enable = mkEnableOption "management of docker client config";
|
||||
|
||||
configDir = mkOption {
|
||||
type = lib.types.str;
|
||||
default = ".docker";
|
||||
description = ''
|
||||
Folder relative to the user's home directory where the Docker CLI settings should be stored.
|
||||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = jsonFormat.type;
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
"proxies" = {
|
||||
"default" = {
|
||||
"httpProxy" = "http://proxy.example.org:3128";
|
||||
"httpsProxy" = "http://proxy.example.org:3128";
|
||||
"noProxy" = "localhost";
|
||||
};
|
||||
};
|
||||
'';
|
||||
description = ''
|
||||
Available configuration options for the Docker CLI see:
|
||||
<https://docs.docker.com/reference/cli/docker/#docker-cli-configuration-file-configjson-properties
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home = {
|
||||
sessionVariables = {
|
||||
DOCKER_CONFIG = "${config.home.homeDirectory}/${cfg.configDir}";
|
||||
};
|
||||
|
||||
file = {
|
||||
"${cfg.configDir}/config.json" = {
|
||||
source = jsonFormat.generate "config.json" cfg.settings;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
140
modules/programs/hyprpanel.nix
Normal file
140
modules/programs/hyprpanel.nix
Normal file
@@ -0,0 +1,140 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.programs.hyprpanel;
|
||||
jsonFormat = pkgs.formats.json { };
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.perchun ];
|
||||
|
||||
options.programs.hyprpanel = {
|
||||
enable = lib.mkEnableOption "HyprPanel";
|
||||
|
||||
package = lib.mkPackageOption pkgs "hyprpanel" { };
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = jsonFormat.type;
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
bar.battery.label = true;
|
||||
bar.bluetooth.label = false;
|
||||
bar.clock.format = "%H:%M:%S";
|
||||
bar.layouts = {
|
||||
"*" = {
|
||||
left = [
|
||||
"dashboard"
|
||||
"workspaces"
|
||||
"media"
|
||||
];
|
||||
middle = [ "windowtitle" ];
|
||||
right = [
|
||||
"volume"
|
||||
"network"
|
||||
"bluetooth"
|
||||
"notifications"
|
||||
];
|
||||
};
|
||||
};
|
||||
'';
|
||||
description = ''
|
||||
Configuration written to
|
||||
{file}`$XDG_CONFIG_HOME/hyprpanel/config.json`.
|
||||
|
||||
See <https://hyprpanel.com/configuration/settings.html#home-manager-module>
|
||||
for the full list of options.
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.enable = lib.mkEnableOption "HyprPanel systemd integration" // {
|
||||
default = true;
|
||||
};
|
||||
|
||||
dontAssertNotificationDaemons = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
description = ''
|
||||
Whether to check for other notification daemons.
|
||||
|
||||
You might want to set this to false, because hyprpanel's notification
|
||||
daemon is buggy and you may prefer something else.
|
||||
'';
|
||||
type = lib.types.bool;
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.dontAssertNotificationDaemons && !config.services.swaync.enable;
|
||||
message = ''
|
||||
Only one notification daemon can be enabled at once. You have enabled
|
||||
swaync and hyprpanel at once.
|
||||
|
||||
If you dont want to use hyprpanel's notification daemon, set
|
||||
`programs.hyprpanel.dontAssertNotificationDaemons` to true.
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
home.packages = [ cfg.package ];
|
||||
|
||||
programs.hyprpanel.settings = lib.mkIf config.services.hypridle.enable {
|
||||
# fix hypridle module if user uses systemd service
|
||||
bar.customModules.hypridle.startCommand = lib.mkDefault "systemctl --user start hypridle.service";
|
||||
bar.customModules.hypridle.stopCommand = lib.mkDefault "systemctl --user stop hypridle.service";
|
||||
bar.customModules.hypridle.isActiveCommand = lib.mkDefault "systemctl --user status hypridle.service | grep -q 'Active: active (running)' && echo 'yes' || echo 'no'";
|
||||
};
|
||||
|
||||
xdg.configFile.hyprpanel = lib.mkIf (cfg.settings != { }) {
|
||||
target = "hyprpanel/config.json";
|
||||
source = jsonFormat.generate "hyprpanel-config" (
|
||||
if cfg.settings ? theme && cfg.settings.theme ? name then
|
||||
lib.warn ''
|
||||
`settings.theme.name` option has been removed, because the
|
||||
hyprpanel module has been ported to downstream home-manager and
|
||||
implementing it would require IFD
|
||||
(https://nix.dev/manual/nix/2.26/language/import-from-derivation)
|
||||
|
||||
Replace it with:
|
||||
```nix
|
||||
programs.hyprpanel = {
|
||||
theme = {
|
||||
# paste content of https://github.com/Jas-SinghFSU/HyprPanel/blob/2c0c66a/themes/${cfg.settings.theme.name}.json
|
||||
};
|
||||
};
|
||||
```
|
||||
'' cfg.settings
|
||||
else
|
||||
cfg.settings
|
||||
);
|
||||
# hyprpanel replaces it with the same file, but without new line in the end
|
||||
force = true;
|
||||
};
|
||||
|
||||
systemd.user.services.hyprpanel = lib.mkIf cfg.systemd.enable {
|
||||
Unit = {
|
||||
Description = "Bar/Panel for Hyprland with extensive customizability";
|
||||
Documentation = "https://hyprpanel.com/getting_started/hyprpanel.html";
|
||||
PartOf = [ config.wayland.systemd.target ];
|
||||
After = [ config.wayland.systemd.target ];
|
||||
ConditionEnvironment = "WAYLAND_DISPLAY";
|
||||
X-Restart-Triggers = lib.optional (cfg.settings != { }) "${config.xdg.configFile.hyprpanel.source}";
|
||||
};
|
||||
|
||||
Service = {
|
||||
ExecStart = "${cfg.package}/bin/hyprpanel";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -SIGUSR2 $MAINPID";
|
||||
Restart = "on-failure";
|
||||
KillMode = "mixed";
|
||||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = [ config.wayland.systemd.target ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
113
modules/programs/nvchecker.nix
Normal file
113
modules/programs/nvchecker.nix
Normal file
@@ -0,0 +1,113 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
tomlFormat = pkgs.formats.toml { };
|
||||
cfg = config.programs.nvchecker;
|
||||
configDir =
|
||||
if pkgs.stdenv.hostPlatform.isDarwin then
|
||||
"${config.home.homeDirectory}/Library/Application Support/nvchecker"
|
||||
else
|
||||
"${config.xdg.configHome}/nvchecker";
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.mdaniels5757 ];
|
||||
options.programs.nvchecker = {
|
||||
enable = lib.mkEnableOption "nvchecker";
|
||||
package = lib.mkPackageOption pkgs "nvchecker" { nullable = true; };
|
||||
settings =
|
||||
let
|
||||
envDocs = ''
|
||||
Environment variables and `~` are expanded,
|
||||
and relative paths are relative to
|
||||
{file}`''${config.home.homeDirectory}/Library/Application Support/nvchecker/nvchecker/` (on Darwin)
|
||||
or {file}`''${config.xdg.configHome}/nvchecker/` (otherwise).
|
||||
'';
|
||||
in
|
||||
lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
freeformType = tomlFormat.type;
|
||||
options.__config__ = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
freeformType = tomlFormat.type;
|
||||
options = {
|
||||
oldver = lib.mkOption {
|
||||
# doesn't matter if absolute/relative or (not) in store
|
||||
type = lib.types.pathWith { };
|
||||
default = "old_ver.json";
|
||||
description = ''
|
||||
The file to store 'old' (i.e. installed) version information in.
|
||||
|
||||
${envDocs}
|
||||
'';
|
||||
};
|
||||
newver = lib.mkOption {
|
||||
# doesn't matter if absolute/relative or (not) in store
|
||||
type = lib.types.pathWith { };
|
||||
default = "new_ver.json";
|
||||
description = ''
|
||||
The file to store 'new' (i.e. available) versions in.
|
||||
|
||||
${envDocs}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
default = { };
|
||||
defaultText = lib.literalExpression ''
|
||||
{
|
||||
oldver = "old_ver.json";
|
||||
newver = "new_ver.json";
|
||||
};
|
||||
'';
|
||||
description = ''
|
||||
See <https://nvchecker.readthedocs.io/en/stable/usage.html#configuration-files>.
|
||||
|
||||
${envDocs}
|
||||
'';
|
||||
};
|
||||
};
|
||||
default = { };
|
||||
defaultText = lib.literalExpression ''
|
||||
__config__ = {
|
||||
oldver = "old_ver.json";
|
||||
newver = "new_ver.json";
|
||||
};
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
__config__ = {
|
||||
oldver = "my_custom_oldver.json";
|
||||
newver = "~/seperately_placed_newver.json";
|
||||
keyfile = "keyfile.toml";
|
||||
};
|
||||
|
||||
nvchecker = {
|
||||
source = "github";
|
||||
github = "lilydjwg/nvchecker";
|
||||
};
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Configuration written to
|
||||
{file}`$HOME/Library/Application Support/nvchecker/nvchecker.toml` (on Darwin) or
|
||||
{file}`$XDG_CONFIG_HOME/nvchecker/nvchecker.toml` (otherwise).
|
||||
See <https://nvchecker.readthedocs.io/en/stable/usage.html#configuration-files>
|
||||
for the full list of options.
|
||||
|
||||
${envDocs}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = lib.mkIf (cfg.package != null) [ cfg.package ];
|
||||
|
||||
home.file."${configDir}/nvchecker.toml".source = lib.mkIf (cfg.settings != { }) (
|
||||
tomlFormat.generate "nvchecker.toml" cfg.settings
|
||||
);
|
||||
};
|
||||
}
|
||||
@@ -46,7 +46,7 @@ let
|
||||
|
||||
userDir =
|
||||
if pkgs.stdenv.hostPlatform.isDarwin then
|
||||
"Library/Application Support/${configDir}/User"
|
||||
"${config.home.homeDirectory}/Library/Application Support/${configDir}/User"
|
||||
else
|
||||
"${config.xdg.configHome}/${configDir}/User";
|
||||
|
||||
@@ -350,7 +350,7 @@ in
|
||||
file_write="$file_write$([ "$file_write" != "" ] && echo "...")$profile"
|
||||
done
|
||||
|
||||
mkdir -p $(dirname "$file")
|
||||
mkdir -p "$(dirname "$file")"
|
||||
echo "{}" > "$file"
|
||||
fi
|
||||
|
||||
|
||||
53
modules/programs/yarn/default.nix
Normal file
53
modules/programs/yarn/default.nix
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
mkIf
|
||||
mkEnableOption
|
||||
mkOption
|
||||
;
|
||||
|
||||
cfg = config.programs.yarn;
|
||||
|
||||
yamlFormat = pkgs.formats.yaml { };
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.friedrichaltheide ];
|
||||
|
||||
options.programs.yarn = {
|
||||
enable = mkEnableOption "management of yarn config";
|
||||
|
||||
settings = mkOption {
|
||||
type = yamlFormat.type;
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
httpProxy = "http://proxy.example.org:3128";
|
||||
httpsProxy = "http://proxy.example.org:3128";
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Available configuration options for yarn see:
|
||||
<https://yarnpkg.com/configuration/yarnrc>
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home = {
|
||||
file =
|
||||
let
|
||||
yarnRcFileName = ".yarnrc.yml";
|
||||
in
|
||||
{
|
||||
"${yarnRcFileName}" = {
|
||||
source = yamlFormat.generate "${yarnRcFileName}" cfg.settings;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -31,7 +31,7 @@ in
|
||||
programs.zed-editor = {
|
||||
enable = lib.mkEnableOption "Zed, the high performance, multiplayer code editor from the creators of Atom and Tree-sitter";
|
||||
|
||||
package = lib.mkPackageOption pkgs "zed-editor" { };
|
||||
package = lib.mkPackageOption pkgs "zed-editor" { nullable = true; };
|
||||
|
||||
extraPackages = mkOption {
|
||||
type = with types; listOf package;
|
||||
@@ -128,7 +128,7 @@ in
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages =
|
||||
home.packages = mkIf (cfg.package != null) (
|
||||
if cfg.extraPackages != [ ] then
|
||||
[
|
||||
(pkgs.symlinkJoin {
|
||||
@@ -143,7 +143,8 @@ in
|
||||
})
|
||||
]
|
||||
else
|
||||
[ cfg.package ];
|
||||
[ cfg.package ]
|
||||
);
|
||||
|
||||
home.file = mkIf (cfg.installRemoteServer && (cfg.package ? remote_server)) (
|
||||
let
|
||||
@@ -184,5 +185,12 @@ in
|
||||
}
|
||||
) cfg.themes
|
||||
);
|
||||
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.extraPackages != [ ] -> cfg.package != null;
|
||||
message = "{option}programs.zed-editor.extraPackages requires non null {option}programs.zed-editor.package";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -210,7 +210,7 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
aw-watcher-windows = {
|
||||
aw-watcher-window = {
|
||||
package = pkgs.activitywatch;
|
||||
settings = {
|
||||
poll_time = 1;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"release": "25.05",
|
||||
"isReleaseBranch": false
|
||||
"isReleaseBranch": true
|
||||
}
|
||||
|
||||
@@ -85,6 +85,7 @@ let
|
||||
"lsd"
|
||||
"lieer"
|
||||
"mbsync"
|
||||
"meli"
|
||||
"mergiraf"
|
||||
"micro"
|
||||
"mise"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
pkgs ? import <nixpkgs> { },
|
||||
enableBig ? true,
|
||||
enableLegacyIfd ? false,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -142,6 +143,7 @@ let
|
||||
];
|
||||
|
||||
test.enableBig = enableBig;
|
||||
test.enableLegacyIfd = enableLegacyIfd;
|
||||
}
|
||||
)
|
||||
];
|
||||
@@ -190,6 +192,7 @@ import nmtSrc {
|
||||
./modules/programs/darcs
|
||||
./modules/programs/dircolors
|
||||
./modules/programs/direnv
|
||||
./modules/programs/docker-cli
|
||||
./modules/programs/earthly
|
||||
./modules/programs/emacs
|
||||
./modules/programs/eza
|
||||
@@ -377,6 +380,7 @@ import nmtSrc {
|
||||
./modules/programs/halloy
|
||||
./modules/programs/hexchat
|
||||
./modules/programs/hyprlock
|
||||
./modules/programs/hyprpanel
|
||||
./modules/programs/i3bar-river
|
||||
./modules/programs/i3blocks
|
||||
./modules/programs/i3status-rust
|
||||
@@ -389,6 +393,7 @@ import nmtSrc {
|
||||
./modules/programs/mpvpaper
|
||||
./modules/programs/ncmpcpp-linux
|
||||
./modules/programs/nh
|
||||
./modules/programs/nvchecker
|
||||
./modules/programs/onagre
|
||||
./modules/programs/onedrive
|
||||
./modules/programs/pqiv
|
||||
@@ -410,6 +415,7 @@ import nmtSrc {
|
||||
./modules/programs/wofi
|
||||
./modules/programs/xmobar
|
||||
./modules/programs/yambar
|
||||
./modules/programs/yarn
|
||||
./modules/programs/yt-dlp
|
||||
./modules/services/activitywatch
|
||||
./modules/services/avizo
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
{
|
||||
description = "Tests of Home Manager for Nix";
|
||||
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
|
||||
outputs =
|
||||
{ nixpkgs, ... }:
|
||||
@@ -51,8 +51,32 @@
|
||||
renameTestPkg = n: lib.nameValuePair "integration-test-${n}";
|
||||
in
|
||||
lib.mapAttrs' renameTestPkg tests;
|
||||
|
||||
testAllNoBig =
|
||||
let
|
||||
tests = import ./. {
|
||||
inherit pkgs;
|
||||
enableBig = false;
|
||||
};
|
||||
in
|
||||
lib.nameValuePair "test-all-no-big" tests.build.all;
|
||||
|
||||
testAllNoBigIfd =
|
||||
let
|
||||
tests = import ./. {
|
||||
inherit pkgs;
|
||||
enableBig = false;
|
||||
enableLegacyIfd = true;
|
||||
};
|
||||
in
|
||||
lib.nameValuePair "test-all-no-big-ifd" tests.build.all;
|
||||
in
|
||||
testPackages // integrationTestPackages
|
||||
testPackages
|
||||
// integrationTestPackages
|
||||
// (lib.listToAttrs [
|
||||
testAllNoBig
|
||||
testAllNoBigIfd
|
||||
])
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
4
tests/modules/programs/docker-cli/default.nix
Normal file
4
tests/modules/programs/docker-cli/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
docker-cli = ./example-config.nix;
|
||||
docker-cli-empty-config = ./empty-config.nix;
|
||||
}
|
||||
17
tests/modules/programs/docker-cli/empty-config.nix
Normal file
17
tests/modules/programs/docker-cli/empty-config.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfgDocker = config.programs.docker-cli;
|
||||
in
|
||||
{
|
||||
programs.docker-cli = {
|
||||
configDir = ".docker2";
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileNotRegex home-path/etc/profile.d/hm-session-vars.sh 'DOCKER_CONFIG'
|
||||
assertPathNotExists home-files/${cfgDocker.configDir}
|
||||
'';
|
||||
}
|
||||
9
tests/modules/programs/docker-cli/example-config.json
Normal file
9
tests/modules/programs/docker-cli/example-config.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"proxies": {
|
||||
"default": {
|
||||
"httpProxy": "http://proxy.example.org:3128",
|
||||
"httpsProxy": "http://proxy.example.org:3128",
|
||||
"noProxy": "localhost"
|
||||
}
|
||||
}
|
||||
}
|
||||
37
tests/modules/programs/docker-cli/example-config.nix
Normal file
37
tests/modules/programs/docker-cli/example-config.nix
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.docker-cli = {
|
||||
enable = true;
|
||||
|
||||
configDir = ".docker2";
|
||||
|
||||
settings = {
|
||||
"proxies" = {
|
||||
"default" = {
|
||||
"httpProxy" = "http://proxy.example.org:3128";
|
||||
"httpsProxy" = "http://proxy.example.org:3128";
|
||||
"noProxy" = "localhost";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nmt.script =
|
||||
let
|
||||
cfgDocker = config.programs.docker-cli;
|
||||
configTestPath = "home-files/${cfgDocker.configDir}/config.json";
|
||||
configHomePath = "/home/hm-user/${cfgDocker.configDir}";
|
||||
in
|
||||
''
|
||||
assertFileContains home-path/etc/profile.d/hm-session-vars.sh \
|
||||
'export DOCKER_CONFIG="${configHomePath}"'
|
||||
|
||||
assertPathNotExists home-files/.docker/config.json
|
||||
assertFileExists ${configTestPath}
|
||||
assertFileContent ${configTestPath} \
|
||||
${./example-config.json}
|
||||
'';
|
||||
}
|
||||
31
tests/modules/programs/hyprpanel/basic-config.json
Normal file
31
tests/modules/programs/hyprpanel/basic-config.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"bar": {
|
||||
"battery": {
|
||||
"label": true
|
||||
},
|
||||
"bluetooth": {
|
||||
"label": false
|
||||
},
|
||||
"clock": {
|
||||
"format": "%H:%M:%S"
|
||||
},
|
||||
"layouts": {
|
||||
"*": {
|
||||
"left": [
|
||||
"dashboard",
|
||||
"workspaces",
|
||||
"media"
|
||||
],
|
||||
"middle": [
|
||||
"windowtitle"
|
||||
],
|
||||
"right": [
|
||||
"volume",
|
||||
"network",
|
||||
"bluetooth",
|
||||
"notifications"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
34
tests/modules/programs/hyprpanel/basic-config.nix
Normal file
34
tests/modules/programs/hyprpanel/basic-config.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{ config, ... }:
|
||||
{
|
||||
programs.hyprpanel = {
|
||||
enable = true;
|
||||
package = config.lib.test.mkStubPackage { name = "hyprpanel"; };
|
||||
settings = {
|
||||
bar.battery.label = true;
|
||||
bar.bluetooth.label = false;
|
||||
bar.clock.format = "%H:%M:%S";
|
||||
bar.layouts = {
|
||||
"*" = {
|
||||
left = [
|
||||
"dashboard"
|
||||
"workspaces"
|
||||
"media"
|
||||
];
|
||||
middle = [ "windowtitle" ];
|
||||
right = [
|
||||
"volume"
|
||||
"network"
|
||||
"bluetooth"
|
||||
"notifications"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileContent \
|
||||
"home-files/.config/hyprpanel/config.json" \
|
||||
${./basic-config.json}
|
||||
'';
|
||||
}
|
||||
4
tests/modules/programs/hyprpanel/default.nix
Normal file
4
tests/modules/programs/hyprpanel/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
hyprpanel-basic-config = ./basic-config.nix;
|
||||
hyprpanel-with-hypridle = ./with-hypridle.nix;
|
||||
}
|
||||
38
tests/modules/programs/hyprpanel/with-hypridle.json
Normal file
38
tests/modules/programs/hyprpanel/with-hypridle.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"bar": {
|
||||
"battery": {
|
||||
"label": true
|
||||
},
|
||||
"bluetooth": {
|
||||
"label": false
|
||||
},
|
||||
"clock": {
|
||||
"format": "%H:%M:%S"
|
||||
},
|
||||
"customModules": {
|
||||
"hypridle": {
|
||||
"isActiveCommand": "systemctl --user status hypridle.service | grep -q 'Active: active (running)' && echo 'yes' || echo 'no'",
|
||||
"startCommand": "systemctl --user start hypridle.service",
|
||||
"stopCommand": "systemctl --user stop hypridle.service"
|
||||
}
|
||||
},
|
||||
"layouts": {
|
||||
"*": {
|
||||
"left": [
|
||||
"dashboard",
|
||||
"workspaces",
|
||||
"media"
|
||||
],
|
||||
"middle": [
|
||||
"windowtitle"
|
||||
],
|
||||
"right": [
|
||||
"volume",
|
||||
"network",
|
||||
"bluetooth",
|
||||
"notifications"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
35
tests/modules/programs/hyprpanel/with-hypridle.nix
Normal file
35
tests/modules/programs/hyprpanel/with-hypridle.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{ config, ... }:
|
||||
{
|
||||
services.hypridle.enable = true;
|
||||
programs.hyprpanel = {
|
||||
enable = true;
|
||||
package = config.lib.test.mkStubPackage { name = "hyprpanel"; };
|
||||
settings = {
|
||||
bar.battery.label = true;
|
||||
bar.bluetooth.label = false;
|
||||
bar.clock.format = "%H:%M:%S";
|
||||
bar.layouts = {
|
||||
"*" = {
|
||||
left = [
|
||||
"dashboard"
|
||||
"workspaces"
|
||||
"media"
|
||||
];
|
||||
middle = [ "windowtitle" ];
|
||||
right = [
|
||||
"volume"
|
||||
"network"
|
||||
"bluetooth"
|
||||
"notifications"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileContent \
|
||||
"home-files/.config/hyprpanel/config.json" \
|
||||
${./with-hypridle.json}
|
||||
'';
|
||||
}
|
||||
@@ -30,6 +30,7 @@
|
||||
mainProgram = stub;
|
||||
license = [ stub ];
|
||||
maintainers = [ stub ];
|
||||
teams = [ stub ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
};
|
||||
|
||||
27
tests/modules/programs/nvchecker/basic-config.nix
Normal file
27
tests/modules/programs/nvchecker/basic-config.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
configDir =
|
||||
if pkgs.stdenv.hostPlatform.isDarwin then
|
||||
"Library/Application Support/nvchecker"
|
||||
else
|
||||
".config/nvchecker";
|
||||
in
|
||||
{
|
||||
programs.nvchecker = {
|
||||
enable = true;
|
||||
settings = {
|
||||
__config__ = {
|
||||
keyfile = "keyfile.toml";
|
||||
};
|
||||
nvchecker = {
|
||||
source = "github";
|
||||
github = "lilydjwg/nvchecker";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileExists "home-files/${configDir}/nvchecker.toml"
|
||||
assertFileContent "home-files/${configDir}/nvchecker.toml" "${./basic-config.toml}"
|
||||
'';
|
||||
}
|
||||
8
tests/modules/programs/nvchecker/basic-config.toml
Normal file
8
tests/modules/programs/nvchecker/basic-config.toml
Normal file
@@ -0,0 +1,8 @@
|
||||
[__config__]
|
||||
keyfile = "keyfile.toml"
|
||||
newver = "new_ver.json"
|
||||
oldver = "old_ver.json"
|
||||
|
||||
[nvchecker]
|
||||
github = "lilydjwg/nvchecker"
|
||||
source = "github"
|
||||
4
tests/modules/programs/nvchecker/default.nix
Normal file
4
tests/modules/programs/nvchecker/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
nvchecker-basic-config = ./basic-config.nix;
|
||||
nvchecker-empty-config = ./empty-config.nix;
|
||||
}
|
||||
16
tests/modules/programs/nvchecker/empty-config.nix
Normal file
16
tests/modules/programs/nvchecker/empty-config.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
configDir =
|
||||
if pkgs.stdenv.hostPlatform.isDarwin then
|
||||
"Library/Application Support/nvchecker"
|
||||
else
|
||||
".config/nvchecker";
|
||||
in
|
||||
{
|
||||
programs.nvchecker.enable = true;
|
||||
|
||||
nmt.script = ''
|
||||
assertFileExists "home-files/${configDir}/nvchecker.toml"
|
||||
assertFileContent "home-files/${configDir}/nvchecker.toml" "${./empty-config.toml}"
|
||||
'';
|
||||
}
|
||||
3
tests/modules/programs/nvchecker/empty-config.toml
Normal file
3
tests/modules/programs/nvchecker/empty-config.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
[__config__]
|
||||
newver = "new_ver.json"
|
||||
oldver = "old_ver.json"
|
||||
@@ -1,6 +1,10 @@
|
||||
{ config, ... }:
|
||||
{
|
||||
programs = {
|
||||
thefuck.enable = true;
|
||||
thefuck = {
|
||||
enable = true;
|
||||
package = config.lib.test.mkStubPackage { outPath = "@thefuck@"; };
|
||||
};
|
||||
thefuck.enableBashIntegration = false;
|
||||
thefuck.enableFishIntegration = false;
|
||||
thefuck.enableZshIntegration = false;
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
{ config, ... }:
|
||||
{
|
||||
programs = {
|
||||
thefuck = {
|
||||
enable = true;
|
||||
package = config.lib.test.mkStubPackage { outPath = "@thefuck@"; };
|
||||
enableInstantMode = true;
|
||||
};
|
||||
bash.enable = true;
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
{ config, ... }:
|
||||
{
|
||||
programs = {
|
||||
thefuck.enable = true;
|
||||
thefuck = {
|
||||
enable = true;
|
||||
package = config.lib.test.mkStubPackage { outPath = "@thefuck@"; };
|
||||
};
|
||||
bash.enable = true;
|
||||
fish.enable = true;
|
||||
zsh.enable = true;
|
||||
|
||||
4
tests/modules/programs/yarn/default.nix
Normal file
4
tests/modules/programs/yarn/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
yarn = ./example-config.nix;
|
||||
yarn-empty-config = ./empty-config.nix;
|
||||
}
|
||||
12
tests/modules/programs/yarn/empty-config.nix
Normal file
12
tests/modules/programs/yarn/empty-config.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
programs.yarn = {
|
||||
settings = {
|
||||
httpProxy = "http://proxy.example.org:3128";
|
||||
httpsProxy = "http://proxy.example.org:3128";
|
||||
};
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertPathNotExists home-files/.yarnrc.yml
|
||||
'';
|
||||
}
|
||||
20
tests/modules/programs/yarn/example-config.nix
Normal file
20
tests/modules/programs/yarn/example-config.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
programs.yarn = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
httpProxy = "http://proxy.example.org:3128";
|
||||
httpsProxy = "http://proxy.example.org:3128";
|
||||
};
|
||||
};
|
||||
|
||||
nmt.script =
|
||||
let
|
||||
configPath = "home-files/.yarnrc.yml";
|
||||
in
|
||||
''
|
||||
assertFileExists ${configPath}
|
||||
assertFileContent ${configPath} \
|
||||
${./example-config.yml}
|
||||
'';
|
||||
}
|
||||
2
tests/modules/programs/yarn/example-config.yml
Normal file
2
tests/modules/programs/yarn/example-config.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
httpProxy: http://proxy.example.org:3128
|
||||
httpsProxy: http://proxy.example.org:3128
|
||||
Reference in New Issue
Block a user