# /etc/nixos/configuration.nix
{ config, pkgs, ... }:
{
# ...
# If you are using an SSD it may be useful to enable TRIM support as well as set filesystem flags to improve the SSD performance:
fileSystems."/".options = [ "noatime" "nodiratime" "discard" ];
}
# /etc/nixos/configuration.nix
{ config, pkgs, ... }:
{
# ...
# Zsh
programs.zsh.enable = true;
users.users.jakub.shell = pkgs.zsh;
}
# /etc/nixos/configuration.nix
{ config, pkgs, ... }:
{
# ...
# Docker
virtualisation.docker.enable = true;
users.extraGroups.docker.members = [ "jakub" ];
}
# /etc/nixos/configuration.nix
{ config, pkgs, ... }:
{
# ...
# Virtualbox
virtualisation.virtualbox.host.enable = true;
users.extraGroups.vboxusers.members = [ "jakub" ];
}
# /etc/nixos/configuration.nix
{ config, pkgs, ... }:
{
# ...
# Enable CUPS to print documents.
services.printing.enable = true;
services.printing.drivers = [
pkgs.gutenprint
pkgs.gutenprintBin
pkgs.canon-cups-ufr2
];
# https://nixos.wiki/wiki/Printing
services.avahi = {
enable = true;
nssmdns = true;
openFirewall = true;
};
}
- driver: IPP Everywhere
- connection: socket://printer.home
# /etc/nixos/configuration.nix
{ config, pkgs, ... }:
{
# ...
# Nix settings
nix.settings = {
# Enable flakes and new 'nix' command
experimental-features = "nix-command flakes";
# Deduplicate and optimize nix store
auto-optimise-store = true;
# Allowed users - needed for Home manager
allowed-users = [ "@wheel" ];
};
}
nix-channel --add https://github.com/nix-community/home-manager/archive/release-23.11.tar.gz home-manager
nix-channel --update
nix-shell '<home-manager>' -A install
Taken from: https://github.com/Misterio77/nix-starter-configs
# ~/.config/home-manager/home.nix
{
inputs,
lib,
config,
pkgs,
...
}: {
imports = [
# ...
./systemd.nix
];
}
# ~/.config/home-manager/systemd.nix
{
inputs,
lib,
config,
pkgs,
...
}: {
systemd.user.services.foo = {
Unit = { Description = "Foo service"; };
Service = {
Type = "oneshot";
WorkingDirectory = "/home/jakub/foo-app";
ExecStart = "/home/jakub/Work/foo-app/foo run";
};
};
systemd.user.timers.foo = {
Unit = { Description = "Foo timer"; };
Timer = {
OnCalendar = "*-*-* *:00:00";
Unit = "foo.service";
};
Install = { WantedBy = [ "timers.target" ]; };
};
}