Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from nix-community:master #8

Merged
merged 131 commits into from
Dec 19, 2024
Merged
Changes from 1 commit
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
802b3cb
espanso: use `launcher` command on Linux
talal Oct 19, 2024
122f705
firefox: change container.json version to 5
Oct 18, 2024
892a644
nh: add module
JohnRTitor Apr 23, 2024
fe56302
zoxide: fix fzf bash-completion conflict
talhaHavadar Oct 11, 2024
1e27f21
flake.lock: Update
home-manager-bot Oct 20, 2024
5ec753a
modules/neovim: fix config generation (#5976)
khaneliman Oct 21, 2024
5765fe4
accounts/calendar: fix defaultText rendering
SuperSandro2000 Oct 23, 2024
a4353cc
accounts/contacts: fix defaultText rendering
SuperSandro2000 Oct 23, 2024
0a0b1b1
maintainers: remove omernaveedxyz
Oct 25, 2024
454e8d6
granted: use assume directly
wcarlsen Oct 23, 2024
eea1bc6
gpg-agent: use $TTY parameter in zsh integration
DrymarchonShaun Oct 24, 2024
c7cfdb3
spotify-player: add support for actions
diniamo Sep 29, 2024
82378b3
htop: use attrsOf instead of attrs as settings type
Luflosi Jun 21, 2024
4462935
nixgl: add module
Smona Apr 30, 2024
bbd4254
nixgl: make desktop files point to wrapped exe
Smona Jun 19, 2024
b9fe747
nixgl: use makeWrapper and update docs
Smona Jun 19, 2024
199cf56
nixgl: use -q to silence grep
Smona Jun 27, 2024
d0c036c
nixgl: ensure makeWrapper is present during build
Smona Jun 27, 2024
7dee0dc
nixgl: reference lib directly
Smona Jul 1, 2024
e61f879
nixgl: Improve option documentation
Smona Aug 10, 2024
7a58797
nixgl: API rework for flexibility and dual-GPU
exzombie Jul 10, 2024
8bd6e0a
nixgl: add support for channel-based configuration
exzombie Oct 2, 2024
5feb9db
nixgl: add module
rycee Oct 25, 2024
c77c3bb
yazi: enable shell integration values by default
no-mood Oct 21, 2024
6cc03e3
nix-gc: add `randomizedDelaySec` option
ambroisie Oct 21, 2024
c0e2315
git-credential-oauth: add extraFlags option
tomodachi94 Oct 25, 2024
0c0268a
eza: add color option
nyadiia Oct 23, 2024
93435d2
direnv: add support for mise integration
shikanime Oct 25, 2024
05d9bee
git-credential-oauth: fix use of mkIf and add tests
tomodachi94 Oct 27, 2024
e834140
flake.lock: Update
home-manager-bot Oct 27, 2024
8ca921e
git-credential-oauth: fix ordering of git extraConfig
KostaGorod Nov 1, 2024
1743615
podman: add module
n-hass Dec 22, 2023
2c6a9b3
git: fix maintenance service
sinavir Nov 3, 2024
8f6ca78
flake.lock: Update
home-manager-bot Nov 3, 2024
2f607e0
docs: home.sessionVariable clarification
Nov 2, 2024
7309007
news: fix typo
GaetanLepage Nov 10, 2024
60bb110
helix: fix wrapping of extraPackages
mrnossiom Nov 10, 2024
149a48d
flake.lock: Update
home-manager-bot Nov 13, 2024
40746b5
alacritty: fix test for nixpkgs update
RedEtherbloom Nov 6, 2024
7e42a37
spotify-player: fix test for nixpkgs update
RedEtherbloom Nov 6, 2024
ee8ff6d
espanso: fix test for nixpkgs update
RedEtherbloom Nov 6, 2024
cd21d2e
git-sync: fix crash when whitespace in path
RedEtherbloom Oct 31, 2024
3c044ae
git-sync: add example to repository option
RedEtherbloom Oct 31, 2024
35b0550
kanshi: add package to home.packages
GaetanLepage Nov 13, 2024
1d0862e
feh: add themes option (#6074)
gmvar Nov 14, 2024
400e3c0
nixos: always run home-manager on NixOS activation (#5780)
Enzime Nov 16, 2024
192f123
nixos: add `key` to shared module to allow disabling it (#6017)
Enzime Nov 16, 2024
d154a55
aerc: add support of account gpg config (#5298)
janydoe Nov 16, 2024
c7c2517
{gtk, dunst}: replace `pkgs.gnome.adwaita-icon-theme` with `pkgs.adwa…
Nanotwerp Nov 16, 2024
1bd5616
lib/file-type: Make `force` option visible (#6003)
amarshall Nov 16, 2024
5056a1c
version: allow 25.05 as state version
oneingan Nov 17, 2024
aecd341
firefox: improve search engine disclaimer generation
kkoniuszy Jul 27, 2024
0918bb0
ci: make dependabot consider release-24.11
rycee Nov 17, 2024
05d3b62
home-manager: prepare 25.05-pre
rycee Nov 17, 2024
f3a2ff6
zsh-abbr: update source path (#6084)
ilaumjd Nov 17, 2024
1846299
librewolf: use mkFirefoxModule
chayleaf Jul 29, 2024
0bd5e9c
librewolf: hide bookmarks option
chayleaf Aug 6, 2024
094265f
Translate using Weblate (Italian)
ardubev16 Nov 18, 2024
705cf37
Translate using Weblate (Ukrainian)
wadsaek Nov 18, 2024
a42fa14
syncthing: expand declarative configuration
karaolidis Aug 31, 2024
d37f154
flake.lock: Update
home-manager-bot Nov 19, 2024
a46e702
espanso: fix test failure
rycee Nov 19, 2024
8cf9cb2
tests: fix integration test
rycee Nov 22, 2024
445d721
home-cursor: add hyprcursor support
arminius-smh Aug 2, 2024
16fe781
conky: update systemd exec path to config package
0x006E Nov 22, 2024
ba9367b
emacs: add darwin service
klchen0112 Nov 22, 2024
92fef25
podman: install package and create config files
dawidd6 Nov 23, 2024
67cd481
flake.lock: Update
github-actions[bot] Nov 24, 2024
bd58a11
hyprpaper: fix service when no config file
sebaszv Nov 24, 2024
5e2f47c
hypridle: fix service when no config file
sebaszv Nov 23, 2024
9ae941a
abook: remove platform linux assertion
someone-stole-my-name Nov 24, 2024
f9fd45c
volnoti: add self to maintainers
tomodachi94 Aug 10, 2024
98bf8de
volnoti: use cfg.package instead of pkgs
tomodachi94 Aug 10, 2024
83002f1
mopidy: restart the systemd service on failure
jwillikers Nov 24, 2024
4d8d8c3
zed-editor: add extraPackages option
ninelore Nov 24, 2024
a995363
mopidy: restart service on config changes
jwillikers Nov 12, 2024
0941a2e
flake.lock: Update
home-manager-bot Nov 28, 2024
f83dc9f
tmux: set `sensibleOnTop = false` as a default
gen740 Nov 28, 2024
2139685
kdeconnect: upgrade default version
RedEtherbloom Nov 28, 2024
de7d67b
mopidy: make makeWrapper a native build input
jwillikers Nov 6, 2024
b721965
mopidy: ignore collisions between extensions
jwillikers Nov 6, 2024
2f7739d
kakoune: add colorSchemePackage option
philipwilk Jul 20, 2024
819f682
lorri: fix ReadWritePaths for new gcroots behavior
kmicklas Nov 29, 2024
8eeda28
flake.lock: Update
home-manager-bot Dec 1, 2024
4964f3c
home-manager: prepare 24.11 release
rycee Nov 22, 2024
441fae8
zsh-abbr: add package option
NovaViper Dec 1, 2024
7f78e2d
yazi: update keymap config
GaetanLepage Dec 1, 2024
e71e678
nix-your-shell: add module
terlar Jul 18, 2024
8632735
kubecolor: add module
ajgon Oct 3, 2024
c1fee8d
alot: make package used by module configurable
paumr Dec 1, 2024
d2e2bda
nix-your-shell: fix creating required directory
feathecutie Dec 2, 2024
873e39d
podman-container: fix tests and failing podman 5.3.0 service
GaetanLepage Dec 2, 2024
bf23fe4
tmux: add 'focusEvents'
ambroisie Nov 28, 2024
092b81b
atuin: configure daemon using systemd and launchd
water-sucks Oct 8, 2024
33c236f
atuin: add water-sucks as maintainer
water-sucks Oct 8, 2024
c56aa0f
atuin: assert version >= 18.2.0 when daemon is enabled
water-sucks Oct 19, 2024
f8bc330
atuin: capitalize mentions of "atuin"
water-sucks Nov 16, 2024
dfdf59b
atuin: make daemon log level configurable
water-sucks Nov 16, 2024
92e644a
atuin: configure daemon using systemd and launchd
rycee Dec 4, 2024
256ec26
flake.lock: Update
home-manager-bot Dec 4, 2024
5b5de43
kakoune: fix color scheme package XDG file
philipwilk Dec 4, 2024
7080328
Translate using Weblate (Finnish)
Ricky-Tigg Dec 3, 2024
8f4f57f
qt: update tooling for Plasma 6
lopter Sep 7, 2024
6c3a7a0
qt: reduce test closure
rycee Dec 4, 2024
30f66ea
xresources: use `profileExtra` instead of `initExtra`
rycee Dec 4, 2024
b1c19f1
home-cursor: use `profileExtra` instead of `initExtra`
rycee Dec 4, 2024
ad48eb2
etesync-dav: update default server URL
LorenzBischof Nov 23, 2024
3a7fc9c
zsh: make autosuggest strategy accept more options
NovaViper Dec 4, 2024
1cd17a2
mangohud: fix a non-working example
KucharczykL Dec 4, 2024
86ee129
starship: add `enableInteractive` option for fish
eljamm Jul 24, 2024
0daaded
starship: replace `eval` with `source` for fish
eljamm Jul 24, 2024
65912bc
imapnotify: provide an option for setting PATH
lheckemann Aug 16, 2024
953521f
fcitx5: fix package reference in test
rycee Dec 6, 2024
0b42cc1
cmus: reduce test closure
rycee Dec 6, 2024
63eb786
xresources: simplify tests
rycee Dec 6, 2024
d00c6f6
nix: simplify tests
rycee Dec 6, 2024
f63c15c
isync/mbsync: update module for 1.5.0 changes (#5918)
KarlJoad Dec 9, 2024
9ebaa80
thunderbird: set the correct SMTP server for aliases (#6177)
alois31 Dec 9, 2024
77a792a
atuin: Do not hard code prefix for daemon socket path
mmlb Dec 9, 2024
e952e94
atuin: Prepare for daemon socket path in 18.4.0
mmlb Dec 9, 2024
8772bae
nushell: allow installing plugins
aidalgol Dec 7, 2024
c6a5fbf
qt: install kio when qt.platformTheme = "kde"
alyraffauf Dec 10, 2024
f26aa4b
gpg-agent: fix GCR DBus package note
axelkar Dec 8, 2024
6e5b2d9
home-manager: support username with special chars (#5609)
DDoSolitary Dec 11, 2024
15151bb
gpg: fix hash of test (#6200)
teto Dec 12, 2024
e526fd2
gnome-shell: fix extensions' default (#6199)
teto Dec 12, 2024
3066cc5
kanshi: dont write config in absence of nix settings (#6198)
teto Dec 12, 2024
66c5d8b
zed-editor: fix always generating settings.json
DaRacci Dec 12, 2024
83ecd50
docs: fix typo in 24.11 release notes
BuriedInTheGround Dec 16, 2024
832920a
thunderbird: add profileVersion
khaneliman Dec 19, 2024
1395379
home-manager: improve path handling when building news
rycee Dec 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
podman: add module
Adds a new Podman module for creating user containers and networks as
systemd services. These are installed to the user's
`$XDG_CONFIG/systemd/user` directory.
  • Loading branch information
n-hass authored and rycee committed Nov 1, 2024
commit 1743615b61c7285976f85b303a36cdf88a556503
16 changes: 16 additions & 0 deletions modules/lib/maintainers.nix
Original file line number Diff line number Diff line change
@@ -43,6 +43,12 @@
github = "Avimitin";
githubId = 30021675;
};
bamhm182 = {
name = "bamhm182";
email = "bamhm182@gmail.com";
github = "bamhm182";
githubId = 920269;
};
blmhemu = {
name = "blmhemu";
email = "19410501+blmhemu@users.noreply.github.com";
@@ -288,6 +294,16 @@
github = "NitroSniper";
githubId = 44097331;
};
n-hass = {
name = "Nicholas Hassan";
email = "nick@hassan.host";
github = "n-hass";
githubId = 72363381;
keys = [{
longkeyid = "rsa4096/0xFC95AB946A781EE7";
fingerprint = "FDEE 6116 DBA7 8840 7323 4466 A371 5973 2728 A6A6";
}];
};
seylerius = {
email = "sable@seyleri.us";
name = "Sable Seyler";
14 changes: 14 additions & 0 deletions modules/misc/news.nix
Original file line number Diff line number Diff line change
@@ -1813,6 +1813,20 @@ in {
systems" section in the Home Manager mantual for more.
'';
}

{
time = "2024-11-01T19:44:59+00:00";
condition = hostPlatform.isLinux;
message = ''
A new module is available: 'services.podman'.

Podman is a daemonless container engine that lets you manage
containers, pods, and images.

This Home Manager module allows you to define containers that will run
as systemd services.
'';
}
];
};
}
1 change: 1 addition & 0 deletions modules/modules.nix
Original file line number Diff line number Diff line change
@@ -352,6 +352,7 @@ let
./services/plan9port.nix
./services/playerctld.nix
./services/plex-mpv-shim.nix
./services/podman-linux
./services/polybar.nix
./services/poweralertd.nix
./services/psd.nix
99 changes: 99 additions & 0 deletions modules/services/podman-linux/activation.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
{ config, podman-lib, ... }:

{
cleanup = ''
PATH=$PATH:${podman-lib.newuidmapPaths}
export VERBOSE=true

DRYRUN_ENABLED() {
return $([ -n "''${DRY_RUN:-}" ] && echo 0 || echo 1)
}

VERBOSE_ENABLED() {
return $([ -n "''${VERBOSE:-}" ] && echo 0 || echo 1)
}

cleanup() {
local resourceType=$1
local manifestFile="${config.xdg.configHome}/podman/$2"
local extraListCommands="''${3:-}"
[[ $resourceType = "container" ]] && extraListCommands+=" -a"

[ ! -f "$manifestFile" ] && VERBOSE_ENABLED && echo "Manifest does not exist: $manifestFile" && return 0

VERBOSE_ENABLED && echo "Cleaning up ''${resourceType}s not in manifest..." || true

loadManifest "$manifestFile"

formatString="{{.Name}}"
[[ $resourceType = "container" ]] && formatString="{{.Names}}"

local listOutput=$(${config.services.podman.package}/bin/podman $resourceType ls $extraListCommands --filter 'label=nix.home-manager.managed=true' --format "$formatString")

IFS=$'\n' read -r -d "" -a podmanResources <<< "$listOutput" || true

if [ ''${#podmanResources[@]} -eq 0 ]; then
VERBOSE_ENABLED && echo "No ''${resourceType}s available to process." || true
else
for resource in "''${podmanResources[@]}"; do
if ! isResourceInManifest "$resource"; then
removeResource "$resourceType" "$resource"
else
VERBOSE_ENABLED && echo "Keeping managed $resourceType: $resource" || true
fi
done
fi
}

isResourceInManifest() {
local resource="$1"
for manifestEntry in "''${resourceManifest[@]}"; do
if [ "$resource" = "$manifestEntry" ]; then
return 0 # Resource found in manifest
fi
done
return 1 # Resource not found in manifest
}

# Function to fill resourceManifest from the manifest file
loadManifest() {
local manifestFile="$1"
VERBOSE_ENABLED && echo "Loading manifest from $manifestFile..." || true
IFS=$'\n' read -r -d "" -a resourceManifest <<< "$(cat "$manifestFile")" || true
}

removeResource() {
local resourceType="$1"
local resource="$2"
echo "Removing orphaned $resourceType: $resource"
commands=()
case "$resourceType" in
"container")
commands+="${config.services.podman.package}/bin/podman $resourceType stop $resource"
commands+="${config.services.podman.package}/bin/podman $resourceType rm -f $resource"
;;
"network")
commands+="${config.services.podman.package}/bin/podman $resourceType rm $resource"
;;
esac
for command in "''${commands[@]}"; do
command=$(echo $command | tr -d ';&|`')
DRYRUN_ENABLED && echo "Would run: $command" && continue || true
VERBOSE_ENABLED && echo "Running: $command" || true
if [[ "$(eval "$command")" != "$resource" ]]; then
echo -e "\tCommand failed: ''${command}"
usedByContainers=$(${config.services.podman.package}/bin/podman container ls -a --filter "$resourceType=$resource" --format "{{.Names}}")
echo -e "\t$resource in use by containers: $usedByContainers"
fi
done
}

resourceManifest=()
[[ "$@" == *"--verbose"* ]] && VERBOSE="true"
[[ "$@" == *"--dry-run"* ]] && DRY_RUN="true"

for type in "container" "network"; do
cleanup "$type" "''${type}s.manifest"
done
'';
}
Loading