2022-03-10 21:52:12 +01:00
|
|
|
{
|
|
|
|
|
pkgs,
|
|
|
|
|
lib,
|
|
|
|
|
config,
|
|
|
|
|
options,
|
|
|
|
|
...
|
|
|
|
|
}: let
|
2020-10-24 13:27:36 +02:00
|
|
|
inherit (lib.strings) makeBinPath;
|
2020-10-30 11:05:26 +01:00
|
|
|
inherit (import <niveum/lib>) localAddresses kieran;
|
2022-09-23 23:31:14 +02:00
|
|
|
scripts = import <niveum/packages/scripts> {inherit pkgs lib;};
|
2020-06-10 17:37:25 +02:00
|
|
|
in {
|
2019-04-19 03:11:51 +02:00
|
|
|
imports = [
|
|
|
|
|
<home-manager/nixos>
|
2020-10-30 11:05:26 +01:00
|
|
|
<niveum/modules/system-dependent.nix>
|
2020-10-18 17:26:19 +02:00
|
|
|
{
|
2022-03-10 21:52:12 +01:00
|
|
|
boot.supportedFilesystems = ["ntfs"];
|
2020-10-18 17:26:19 +02:00
|
|
|
}
|
2020-09-23 00:32:28 +02:00
|
|
|
{
|
|
|
|
|
nix.nixPath = [
|
|
|
|
|
"/var/src"
|
|
|
|
|
"nixpkgs-overlays=${toString ../overlays}"
|
|
|
|
|
];
|
|
|
|
|
}
|
2019-11-05 21:59:51 +01:00
|
|
|
{
|
|
|
|
|
nixpkgs = {
|
2020-04-09 17:51:16 +02:00
|
|
|
config = {
|
|
|
|
|
allowUnfree = true;
|
|
|
|
|
packageOverrides = pkgs: {
|
2022-01-23 11:44:31 +01:00
|
|
|
dmenu = pkgs.writers.writeDashBin "dmenu" ''exec ${pkgs.rofi}/bin/rofi -dmenu "$@"'';
|
2020-10-28 21:56:14 +01:00
|
|
|
gfs-fonts = pkgs.callPackage <niveum/packages/gfs-fonts.nix> {};
|
2022-01-11 19:56:31 +01:00
|
|
|
tocharian-font = pkgs.callPackage <niveum/packages/tocharian-font.nix> {};
|
2022-03-10 21:52:12 +01:00
|
|
|
iolanguage = pkgs.callPackage <niveum/packages/iolanguage.nix> {};
|
|
|
|
|
ix = pkgs.callPackage <niveum/packages/ix.nix> {};
|
2020-04-09 17:51:16 +02:00
|
|
|
};
|
2022-11-30 09:19:30 +01:00
|
|
|
permittedInsecurePackages = [
|
|
|
|
|
"qtwebkit-5.212.0-alpha4"
|
|
|
|
|
];
|
2020-04-09 17:51:16 +02:00
|
|
|
};
|
2019-04-19 03:11:51 +02:00
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
boot.cleanTmpDir = true;
|
|
|
|
|
boot.loader.timeout = 1;
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
home-manager.users.me = {
|
|
|
|
|
programs.zathura = {
|
|
|
|
|
enable = true;
|
2019-11-19 07:47:33 +01:00
|
|
|
options = {
|
|
|
|
|
selection-clipboard = "clipboard";
|
2022-07-15 08:47:26 +02:00
|
|
|
recolor-keephue = true;
|
2019-11-19 07:47:33 +01:00
|
|
|
# first-page-column = "1:1"; # makes side-by-side mode start on the left side
|
|
|
|
|
};
|
2019-04-19 03:11:51 +02:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
users.mutableUsers = false;
|
|
|
|
|
|
2019-08-26 17:27:09 +02:00
|
|
|
users.defaultUserShell = pkgs.zsh;
|
|
|
|
|
|
2019-04-19 03:11:51 +02:00
|
|
|
users.users.me = {
|
|
|
|
|
name = "kfm";
|
2020-10-30 11:05:26 +01:00
|
|
|
description = kieran.name;
|
2022-03-10 21:52:12 +01:00
|
|
|
hashedPassword = "$6$w9hXyGFl/.IZBXk$5OiWzS1G.5hImhh1YQmZiCXYNAJhi3X6Y3uSLupJNYYXPLMsQpx2fwF4Xr2uYzGMV8Foqh8TgUavx1APD9rcb/";
|
2019-08-26 17:27:09 +02:00
|
|
|
isNormalUser = true;
|
2020-12-18 10:27:34 +01:00
|
|
|
uid = 1000;
|
2019-04-19 03:11:51 +02:00
|
|
|
};
|
2021-04-05 08:33:11 +02:00
|
|
|
|
|
|
|
|
home-manager.users.me.xdg.enable = true;
|
2021-12-01 17:38:47 +01:00
|
|
|
home-manager.users.me.dconf.enable = false;
|
2019-04-19 03:11:51 +02:00
|
|
|
}
|
|
|
|
|
{
|
2022-03-10 21:52:12 +01:00
|
|
|
environment.interactiveShellInit = "export PATH=$PATH:$HOME/projects/niveum";
|
2020-06-10 17:37:25 +02:00
|
|
|
environment.shellAliases = let
|
2019-09-24 16:46:04 +02:00
|
|
|
wcd = pkgs.writers.writeDash "wcd" ''
|
2019-10-26 19:43:29 +02:00
|
|
|
cd "$(readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" | xargs dirname)/.."
|
2019-08-23 18:27:06 +02:00
|
|
|
'';
|
2019-09-24 16:46:04 +02:00
|
|
|
where = pkgs.writers.writeDash "where" ''
|
2019-10-26 19:43:29 +02:00
|
|
|
readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" | xargs dirname
|
2019-08-23 18:27:06 +02:00
|
|
|
'';
|
2019-09-24 16:46:04 +02:00
|
|
|
take = pkgs.writers.writeDash "take" ''
|
2019-08-23 18:27:06 +02:00
|
|
|
mkdir "$1" && cd "$1"
|
|
|
|
|
'';
|
2022-03-23 19:07:07 +01:00
|
|
|
cdt = pkgs.writers.writeDash "cdt" ''
|
|
|
|
|
cd "$(mktemp -d)"
|
|
|
|
|
pwd
|
|
|
|
|
'';
|
2022-09-23 23:31:14 +02:00
|
|
|
swallow = command: "${scripts.swallow}/bin/swallow ${command}";
|
2019-08-22 09:44:11 +02:00
|
|
|
in {
|
2022-10-06 10:05:11 +02:00
|
|
|
"ß" = "${pkgs.util-linux}/bin/setsid";
|
2019-09-24 16:46:04 +02:00
|
|
|
cat = "${pkgs.bat}/bin/bat --style=plain";
|
2022-03-10 21:52:12 +01:00
|
|
|
chromium-incognito = "chromium --user-data-dir=$(mktemp -d /tmp/chr.XXXXXX) --no-first-run --incognito";
|
2020-11-23 15:26:50 +01:00
|
|
|
cp = "cp --interactive";
|
2022-10-06 10:17:46 +02:00
|
|
|
ip = "${pkgs.iproute2}/bin/ip -c";
|
2022-03-10 21:52:12 +01:00
|
|
|
l = "ls --color=auto --time-style=long-iso --almost-all";
|
2020-12-11 18:43:41 +01:00
|
|
|
ls = "ls --color=auto --time-style=long-iso";
|
2020-11-23 15:26:50 +01:00
|
|
|
ll = "ls --color=auto --time-style=long-iso -l";
|
|
|
|
|
la = "ls --color=auto --time-style=long-iso --almost-all -l";
|
|
|
|
|
mv = "mv --interactive";
|
2019-11-05 21:59:51 +01:00
|
|
|
nixi = "nix repl '<nixpkgs>'";
|
2019-09-24 16:46:04 +02:00
|
|
|
ns = "nix-shell --run zsh";
|
2022-10-06 10:22:55 +02:00
|
|
|
o = "${pkgs.xdg-utils}/bin/xdg-open";
|
2020-04-23 13:15:48 +02:00
|
|
|
pbcopy = "${pkgs.xclip}/bin/xclip -selection clipboard -in";
|
|
|
|
|
pbpaste = "${pkgs.xclip}/bin/xclip -selection clipboard -out";
|
2020-11-23 15:26:50 +01:00
|
|
|
rm = "rm --interactive";
|
2020-04-23 13:15:48 +02:00
|
|
|
s = "${pkgs.systemd}/bin/systemctl";
|
2019-08-23 18:27:06 +02:00
|
|
|
take = "source ${take}";
|
2022-03-23 19:07:07 +01:00
|
|
|
cdt = "source ${cdt}";
|
|
|
|
|
vit = "$EDITOR $(mktemp)";
|
2019-09-24 16:46:04 +02:00
|
|
|
tmux = "${pkgs.tmux}/bin/tmux -2";
|
2022-08-30 19:32:27 +02:00
|
|
|
sxiv = swallow "${pkgs.nsxiv}/bin/nsxiv";
|
2020-06-22 08:44:09 +02:00
|
|
|
zathura = swallow "${pkgs.zathura}/bin/zathura";
|
2020-04-23 13:15:48 +02:00
|
|
|
us = "${pkgs.systemd}/bin/systemctl --user";
|
2019-09-24 16:46:04 +02:00
|
|
|
wcd = "source ${wcd}";
|
2021-02-06 13:44:38 +01:00
|
|
|
im = "${pkgs.openssh}/bin/ssh weechat@makanek -t tmux attach-session -t IM";
|
2019-09-24 16:46:04 +02:00
|
|
|
where = "source ${where}";
|
2022-05-07 11:26:51 +02:00
|
|
|
yt = "${pkgs.yt-dlp}/bin/yt-dlp --add-metadata -ic"; # Download video link
|
|
|
|
|
yta = "${pkgs.yt-dlp}/bin/yt-dlp --add-metadata -xic"; # Download with audio
|
2019-04-19 03:11:51 +02:00
|
|
|
};
|
|
|
|
|
}
|
2022-07-29 21:30:28 +02:00
|
|
|
{
|
|
|
|
|
i18n = {
|
|
|
|
|
defaultLocale = "en_DK.UTF-8";
|
|
|
|
|
supportedLocales = ["all"];
|
|
|
|
|
};
|
|
|
|
|
}
|
2019-04-19 03:11:51 +02:00
|
|
|
{
|
|
|
|
|
services.xserver = {
|
|
|
|
|
enable = true;
|
2020-10-24 11:49:34 +02:00
|
|
|
displayManager = {
|
2019-09-14 18:43:23 +02:00
|
|
|
autoLogin = {
|
|
|
|
|
enable = true;
|
|
|
|
|
user = config.users.users.me.name;
|
|
|
|
|
};
|
2020-10-24 11:49:34 +02:00
|
|
|
lightdm = {
|
2019-05-02 15:28:17 +02:00
|
|
|
enable = true;
|
2020-10-24 11:49:34 +02:00
|
|
|
greeters.gtk = {
|
|
|
|
|
enable = true;
|
2022-03-10 21:52:12 +01:00
|
|
|
indicators = ["~spacer" "~host" "~spacer" "~session" "~power"];
|
2020-10-24 11:49:34 +02:00
|
|
|
};
|
2019-05-02 15:28:17 +02:00
|
|
|
};
|
2019-04-19 03:11:51 +02:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
security.wrappers = {
|
2021-12-01 17:38:47 +01:00
|
|
|
pmount = {
|
2022-05-11 11:23:21 +02:00
|
|
|
setuid = true;
|
2021-12-13 11:58:00 +01:00
|
|
|
owner = "root";
|
2022-05-11 11:23:21 +02:00
|
|
|
group = "root";
|
2021-12-01 17:38:47 +01:00
|
|
|
source = "${pkgs.pmount}/bin/pmount";
|
|
|
|
|
};
|
|
|
|
|
pumount = {
|
2022-05-11 11:23:21 +02:00
|
|
|
setuid = true;
|
2021-12-13 11:58:00 +01:00
|
|
|
owner = "root";
|
2022-05-11 11:23:21 +02:00
|
|
|
group = "root";
|
2021-12-01 17:38:47 +01:00
|
|
|
source = "${pkgs.pmount}/bin/pumount";
|
|
|
|
|
};
|
2019-04-19 03:11:51 +02:00
|
|
|
};
|
|
|
|
|
}
|
2022-03-10 21:52:12 +01:00
|
|
|
{programs.command-not-found.enable = true;}
|
2020-04-26 20:21:39 +02:00
|
|
|
{
|
2022-12-13 14:38:14 +01:00
|
|
|
home-manager.users.me = {
|
|
|
|
|
services.gpg-agent = rec {
|
|
|
|
|
enable = true;
|
|
|
|
|
enableZshIntegration = true;
|
|
|
|
|
defaultCacheTtl = 2 * 60 * 60;
|
|
|
|
|
maxCacheTtl = 4 * defaultCacheTtl;
|
|
|
|
|
};
|
|
|
|
|
};
|
2020-04-26 20:21:39 +02:00
|
|
|
|
2020-11-23 15:28:22 +01:00
|
|
|
environment.systemPackages = [
|
|
|
|
|
pkgs.gnupg
|
2022-03-13 10:29:21 +01:00
|
|
|
(pkgs.pass.withExtensions (e: [e.pass-otp e.pass-import e.pass-genphrase]))
|
2020-11-14 13:24:25 +01:00
|
|
|
];
|
2020-04-26 20:21:39 +02:00
|
|
|
}
|
2020-07-19 16:18:07 +02:00
|
|
|
{
|
|
|
|
|
services.atd.enable = true;
|
|
|
|
|
}
|
2020-07-19 07:57:44 +02:00
|
|
|
{
|
2021-06-01 19:14:00 +02:00
|
|
|
services.getty = {
|
2020-07-19 07:57:44 +02:00
|
|
|
greetingLine = lib.mkForce "";
|
|
|
|
|
helpLine = lib.mkForce "";
|
|
|
|
|
};
|
|
|
|
|
}
|
2020-10-24 13:27:36 +02:00
|
|
|
{
|
2022-03-13 10:31:19 +01:00
|
|
|
networking.hosts =
|
|
|
|
|
lib.mapAttrs' (name: address: {
|
|
|
|
|
name = address;
|
|
|
|
|
value = ["${name}.local"];
|
|
|
|
|
})
|
|
|
|
|
localAddresses;
|
2020-10-24 13:27:36 +02:00
|
|
|
}
|
2022-06-28 15:27:36 +02:00
|
|
|
{
|
|
|
|
|
home-manager.users.me.home.stateVersion = "22.05";
|
|
|
|
|
}
|
2020-09-23 00:32:28 +02:00
|
|
|
./alacritty.nix
|
2022-01-18 21:29:30 +01:00
|
|
|
./backup.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./bash.nix
|
2021-07-30 08:40:54 +02:00
|
|
|
./beets.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./bluetooth.nix
|
|
|
|
|
./ccc.nix
|
2021-04-07 20:10:48 +02:00
|
|
|
./khal.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./chromium.nix
|
2022-11-29 22:49:51 +01:00
|
|
|
./clipboard.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./cloud.nix
|
|
|
|
|
./compton.nix
|
|
|
|
|
./direnv.nix
|
|
|
|
|
./distrobump.nix
|
|
|
|
|
./docker.nix
|
|
|
|
|
./dunst.nix
|
|
|
|
|
./flix.nix
|
|
|
|
|
./fonts.nix
|
|
|
|
|
./fzf.nix
|
|
|
|
|
./git.nix
|
|
|
|
|
./hledger.nix
|
|
|
|
|
./htop.nix
|
|
|
|
|
./hu-berlin.nix
|
|
|
|
|
./i3.nix
|
|
|
|
|
./keyboard.nix
|
2021-10-07 00:29:50 +02:00
|
|
|
./lb.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./mpv.nix
|
2020-09-30 11:40:49 +02:00
|
|
|
./mime.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./neovim.nix
|
2021-10-07 00:43:44 +02:00
|
|
|
./neomutt.nix
|
2021-01-01 02:48:37 +01:00
|
|
|
./nix.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./newsboat.nix
|
2023-02-03 13:36:40 +01:00
|
|
|
# ./flameshot-once.nix
|
2021-12-31 13:21:22 +01:00
|
|
|
./packages.nix
|
|
|
|
|
./stardict.nix
|
2022-02-02 18:07:08 +01:00
|
|
|
./polkit.nix
|
2021-01-26 22:59:57 +01:00
|
|
|
./power-action.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./printing.nix
|
2022-05-24 11:11:52 +02:00
|
|
|
# ./openweathermap.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./wallpaper.nix
|
|
|
|
|
./redshift.nix
|
|
|
|
|
./retiolum.nix
|
|
|
|
|
./rofi.nix
|
2020-10-28 20:25:59 +01:00
|
|
|
./spacetime.nix
|
2021-04-07 09:19:00 +02:00
|
|
|
./seafile.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./ssh.nix
|
2020-10-28 21:43:33 +01:00
|
|
|
./sshd.nix
|
2023-01-06 15:32:20 +01:00
|
|
|
./sound.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./sudo.nix
|
2022-08-30 19:32:27 +02:00
|
|
|
./nsxiv.nix
|
2022-05-10 20:52:07 +02:00
|
|
|
./themes.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./tmux.nix
|
2022-11-06 10:17:17 +01:00
|
|
|
# ./traadfri.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./unclutter.nix
|
|
|
|
|
./vscode.nix
|
2020-10-19 18:57:29 +02:00
|
|
|
./watson.nix
|
2020-09-23 00:32:28 +02:00
|
|
|
./zsh.nix
|
2022-03-29 20:10:12 +02:00
|
|
|
./tor.nix
|
2023-01-01 14:53:43 +01:00
|
|
|
./mastodon-bot.nix
|
2019-04-19 03:11:51 +02:00
|
|
|
];
|
|
|
|
|
}
|