2023-09-12 08:44:05 -06:00
|
|
|
{ config
|
|
|
|
, lib
|
|
|
|
, pkgs
|
|
|
|
, xinlib
|
2023-10-11 07:37:34 -06:00
|
|
|
, isUnstable
|
2023-11-22 09:31:57 -07:00
|
|
|
, inputs
|
2023-09-12 08:44:05 -06:00
|
|
|
, ...
|
|
|
|
}:
|
|
|
|
let
|
2023-11-22 09:31:57 -07:00
|
|
|
inherit (builtins) toJSON;
|
|
|
|
inherit (inputs.traygent.packages.${pkgs.system}) traygent;
|
2024-01-03 13:00:36 -07:00
|
|
|
inherit (inputs.beyt.packages.${pkgs.system}) beyt;
|
2023-09-12 08:44:05 -06:00
|
|
|
firefox = import ../configs/firefox.nix { inherit pkgs; };
|
|
|
|
rage = pkgs.writeScriptBin "rage" (import ../bins/rage.nix { inherit pkgs; });
|
2024-05-24 11:22:53 -06:00
|
|
|
myEmacs = pkgs.callPackage ../configs/emacs.nix { inherit isUnstable; };
|
2023-07-11 09:12:50 -06:00
|
|
|
rpr =
|
|
|
|
pkgs.writeScriptBin "rpr"
|
2023-09-12 08:44:05 -06:00
|
|
|
(import ../bins/rpr.nix { inherit (pkgs) hut gh tea; });
|
2024-07-31 10:41:48 -06:00
|
|
|
|
|
|
|
editorScript = pkgs.writeShellScriptBin "emacseditor" ''
|
|
|
|
if [ -z "$1" ]; then
|
|
|
|
exec ${myEmacs}/bin/emacsclient --create-frame --alternate-editor ${myEmacs}/bin/emacs
|
|
|
|
else
|
|
|
|
exec ${myEmacs}/bin/emacsclient --alternate-editor ${myEmacs}/bin/emacs "$@"
|
|
|
|
fi
|
|
|
|
'';
|
2023-07-11 09:12:50 -06:00
|
|
|
jobs = [
|
|
|
|
];
|
2023-10-11 07:37:34 -06:00
|
|
|
fontSet = with pkgs; [
|
|
|
|
go-font
|
|
|
|
#(callPackage ../pkgs/kurinto.nix {})
|
|
|
|
];
|
2023-11-22 09:31:57 -07:00
|
|
|
traygentCmds = toJSON [
|
|
|
|
{
|
2024-05-09 09:22:07 -06:00
|
|
|
command_path = "${pkgs.ksshaskpass}/bin/ksshaskpass";
|
|
|
|
#command_path = "${pkgs.ssh-askpass-fullscreen}/bin/ssh-askpass-fullscreen";
|
2023-11-22 09:31:57 -07:00
|
|
|
event = "sign";
|
|
|
|
msg_format = "Allow access to key %q?";
|
|
|
|
exit_code = 0;
|
|
|
|
}
|
|
|
|
{
|
|
|
|
command_path = "${pkgs.kdialog}/bin/kdialog";
|
|
|
|
command_args = [ "--title" "traygent" "--passivepopup" "SSH Key Added" "5" ];
|
|
|
|
event = "added";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
command_path = "${pkgs.kdialog}/bin/kdialog";
|
|
|
|
command_args = [ "--title" "traygent" "--passivepopup" "SSH Key Removed" "5" ];
|
|
|
|
event = "removed";
|
|
|
|
}
|
|
|
|
];
|
2023-07-11 09:12:50 -06:00
|
|
|
in
|
2023-09-12 08:44:05 -06:00
|
|
|
with lib; {
|
2023-12-08 06:44:22 -07:00
|
|
|
imports = [ ./gnome.nix ./kde.nix ./xfce.nix ];
|
2022-08-25 12:21:35 -06:00
|
|
|
|
2023-09-12 08:44:05 -06:00
|
|
|
options = {
|
|
|
|
pulse = {
|
|
|
|
enable = mkOption {
|
|
|
|
description = "Enable PulseAudio";
|
|
|
|
default = false;
|
|
|
|
example = true;
|
|
|
|
type = types.bool;
|
2022-08-25 12:21:35 -06:00
|
|
|
};
|
2023-09-12 08:44:05 -06:00
|
|
|
};
|
|
|
|
pipewire = {
|
|
|
|
enable = mkOption {
|
|
|
|
description = "Enable PipeWire";
|
|
|
|
default = true;
|
|
|
|
example = true;
|
|
|
|
type = types.bool;
|
2022-08-25 12:21:35 -06:00
|
|
|
};
|
|
|
|
};
|
2023-09-12 08:44:05 -06:00
|
|
|
};
|
2022-08-25 12:21:35 -06:00
|
|
|
|
2023-09-12 08:44:05 -06:00
|
|
|
config = mkMerge [
|
|
|
|
(mkIf (config.kde.enable || config.gnome.enable || config.xfce.enable) {
|
|
|
|
services = {
|
2024-06-30 17:26:58 -06:00
|
|
|
xserver.enable = true;
|
2024-06-26 12:03:51 -06:00
|
|
|
lock-action.enable = true;
|
2023-09-12 08:44:05 -06:00
|
|
|
pcscd.enable = true;
|
|
|
|
};
|
2023-05-20 13:05:58 -06:00
|
|
|
|
2023-09-12 08:44:05 -06:00
|
|
|
documentation.enable = true;
|
2023-08-30 08:00:34 -06:00
|
|
|
|
2023-09-12 08:44:05 -06:00
|
|
|
# TODO: TEMP FIX
|
|
|
|
systemd.services.NetworkManager-wait-online.serviceConfig.ExecStart =
|
|
|
|
lib.mkForce [ "" "${pkgs.networkmanager}/bin/nm-online -q" ];
|
2024-07-02 06:12:18 -06:00
|
|
|
fonts = {
|
|
|
|
packages = fontSet;
|
|
|
|
};
|
2023-11-22 09:31:57 -07:00
|
|
|
environment = {
|
|
|
|
etc."traygent.json" = { text = traygentCmds; };
|
|
|
|
sessionVariables = {
|
|
|
|
SSH_AUTH_SOCK = "$HOME/.traygent";
|
2024-06-28 08:37:31 -06:00
|
|
|
OLLAMA_HOST = "https://ollama.otter-alligator.ts.net";
|
2023-11-22 09:31:57 -07:00
|
|
|
};
|
2024-07-31 10:41:48 -06:00
|
|
|
variables.EDITOR = mkOverride 900 "emacseditor";
|
2023-11-22 09:31:57 -07:00
|
|
|
systemPackages = with pkgs; (xinlib.filterList [
|
2024-01-19 08:24:34 -07:00
|
|
|
alacritty
|
2024-07-12 10:31:46 -06:00
|
|
|
(aspellWithDicts (dicts: with dicts; [ en en-computers es de ]))
|
2023-11-22 09:31:57 -07:00
|
|
|
bc
|
2024-01-03 13:00:36 -07:00
|
|
|
beyt
|
2023-11-22 09:31:57 -07:00
|
|
|
black
|
2024-05-22 19:46:13 -06:00
|
|
|
drawterm-wayland
|
2023-11-22 09:31:57 -07:00
|
|
|
exiftool
|
|
|
|
go-font
|
|
|
|
govulncheck
|
2024-04-02 07:46:19 -06:00
|
|
|
keepassxc
|
2024-07-17 07:03:37 -06:00
|
|
|
mpv
|
2023-11-22 09:31:57 -07:00
|
|
|
pcsctools
|
|
|
|
plan9port
|
|
|
|
rage
|
|
|
|
rpr
|
|
|
|
traygent
|
|
|
|
vlc
|
|
|
|
zeal
|
2023-05-20 13:05:58 -06:00
|
|
|
|
2024-05-24 11:15:37 -06:00
|
|
|
myEmacs
|
2024-07-31 10:41:48 -06:00
|
|
|
editorScript
|
2023-11-22 09:31:57 -07:00
|
|
|
(callPackage ../configs/helix.nix { })
|
|
|
|
]);
|
|
|
|
};
|
2023-05-20 13:05:58 -06:00
|
|
|
|
2024-07-02 06:11:44 -06:00
|
|
|
programs = {
|
2024-08-13 07:29:28 -06:00
|
|
|
ladybird.enable = true;
|
2024-07-02 06:11:44 -06:00
|
|
|
} // firefox.programs;
|
2023-05-20 18:31:25 -06:00
|
|
|
|
2023-09-12 08:44:05 -06:00
|
|
|
systemd.user.services =
|
2024-04-04 09:29:49 -06:00
|
|
|
lib.listToAttrs (builtins.map xinlib.jobToUserService jobs);
|
2023-09-12 08:44:05 -06:00
|
|
|
security.rtkit.enable = true;
|
|
|
|
})
|
|
|
|
(mkIf config.pipewire.enable {
|
|
|
|
services.pipewire = {
|
|
|
|
enable = true;
|
|
|
|
pulse.enable = true;
|
|
|
|
jack.enable = true;
|
|
|
|
alsa.enable = true;
|
|
|
|
};
|
|
|
|
})
|
|
|
|
];
|
|
|
|
}
|