move more modules to home

This commit is contained in:
Tristan 2024-01-05 20:59:06 +00:00
parent 9f0cee2627
commit f893e3b8e2
18 changed files with 443 additions and 484 deletions

View file

@ -12,7 +12,7 @@ let
slurp = "${pkgs.slurp}/bin/slurp"; slurp = "${pkgs.slurp}/bin/slurp";
amixer = "${pkgs.alsa-utils}/bin/amixer"; amixer = "${pkgs.alsa-utils}/bin/amixer";
swaybg = "${pkgs.swaybg}/bin/swaybg"; swaybg = "${pkgs.swaybg}/bin/swaybg";
terminal = "${pkgs.foot}/bin/foot"; terminal = "${config.programs.terminal}/bin/${config.programs.terminal.pname}";
chafa = "${pkgs.chafa}/bin/chafa"; chafa = "${pkgs.chafa}/bin/chafa";
exiftool = "${pkgs.exiftool}/bin/exiftool"; exiftool = "${pkgs.exiftool}/bin/exiftool";
wc = "${pkgs.coreutils}/bin/wc"; wc = "${pkgs.coreutils}/bin/wc";
@ -30,6 +30,13 @@ in {
imports = [ imports = [
./graphical.nix ./graphical.nix
../../lib/programs/home/neovim/. ../../lib/programs/home/neovim/.
../../lib/modules/home/terminal.nix
../../lib/modules/home/scripts.nix
../../lib/scripts.nix
../../lib/modules/home/email.nix
../../lib/modules/home/editor.nix
../../lib/modules/home/mpd.nix
../../lib/modules/home/menu.nix
]; ];
programs.home-manager.enable = true; programs.home-manager.enable = true;

View file

@ -6,10 +6,6 @@ user: {
lib, lib,
... ...
}: { }: {
home-manager.users.${user}.imports = [
./home/.
];
nix = { nix = {
settings = { settings = {
experimental-features = ["nix-command" "flakes"]; experimental-features = ["nix-command" "flakes"];
@ -128,7 +124,6 @@ user: {
services.gvfs.enable = true; services.gvfs.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
foot
tealdeer tealdeer
alsa-utils alsa-utils
pcmanfm pcmanfm

View file

@ -28,33 +28,28 @@ nixpkgs.lib.nixosSystem {
} }
{ {
imports = [ imports = [
(import ./modules/terminal.nix {inherit user;})
(import ./modules/scripts.nix {inherit user;})
(import ./modules/editor.nix {inherit user;})
(import ./modules/keyboard.nix {inherit user;}) (import ./modules/keyboard.nix {inherit user;})
(import ./modules/display.nix {inherit user;}) (import ./modules/display.nix {inherit user;})
(import ./modules/work.nix {inherit user;}) (import ./modules/work.nix {inherit user;})
(import ./modules/menu.nix {inherit user;})
(import ./modules/email.nix {inherit user userName;})
(import ./modules/mpd.nix {inherit user;})
(import ./modules/git.nix {inherit user userName;}) (import ./modules/git.nix {inherit user userName;})
(import ./modules/laptop.nix {inherit user;}) (import ./modules/laptop.nix {inherit user;})
(import ./modules/personal.nix {inherit user;}) (import ./modules/personal.nix {inherit user;})
(import ./modules/gamer.nix {inherit user;}) (import ./modules/gamer.nix {inherit user;})
(import ./programs/hyprland.nix {inherit user;}) (import ./programs/hyprland.nix {inherit user;})
(import ../hardware/${name}.nix {inherit user;}) (import ../hardware/${name}.nix {inherit user;})
./scripts.nix
(import ../global/system.nix user) (import ../global/system.nix user)
]; ];
programs.menu.enable = true; home-manager.users.${user}.imports = [
../global/home/.
{
options.home.userFullname = nixpkgs.lib.mkOption { default = userName; };
}
];
roles.work.enable = work; roles.work.enable = work;
roles.git.enable = true; roles.git.enable = true;
programs.terminal.enable = true;
roles.personal.enable = !work; roles.personal.enable = !work;
roles.mpd.enable = true;
programs.editor.neovim = true;
programs.editor.enable = true;
} }
]; ];
} }

View file

@ -1,56 +0,0 @@
{user}: {
lib,
pkgs,
config,
...
}:
with lib; let
editor = config.programs.editor;
pkg = editor.package;
menu = config.programs.menu.package + config.programs.menu.dmenuCommand;
editorCmd = "NIXOS_OZONE_WL= ${pkg}/bin/${pkg.executableName}";
in {
options.programs = {
editor = {
enable = mkEnableOption "editor";
package = mkPackageOption pkgs "vscodium" {
example = "pkgs.vscode";
};
neovim = mkEnableOption "neovim mode";
};
};
config = mkIf editor.enable {
home-manager.users.${user}.imports = [
{
programs.vscode = {
enable = true;
package = editor.package;
extensions = [];
userSettings = {
"keyboard.dispatch" = "keyCode";
"terminal.integrated.sendKeybindingsToShell" = true;
"aws.telemetry" = false;
"gitlens.telemetry.enabled" = false;
"redhat.telemetry.enabled" = false;
"cSpell.language" = "en,en-GB";
};
};
}
];
programs.scripts = [
{
name = "open-code";
text = ''
code_dir=~/Documents/code
cd $code_dir
repo=$(ls | ${menu})
[ -e "$repo" ] && ${editorCmd} $repo
'';
install = false;
hotkeys = [{key = "C";}];
}
];
};
}

View file

@ -1,236 +0,0 @@
{
user,
userName,
}: {
lib,
pkgs,
config,
...
}:
with lib; let
cfg = config.roles.email;
terminal = config.programs.terminal.package;
termcmd = "${terminal}/bin/${terminal.pname}";
in {
options.roles = {
email = {
enable = mkEnableOption "email settings";
email = mkOption {
description = "email address";
};
terminal = mkOption {
type = types.bool;
default = true;
};
};
};
config = mkIf cfg.enable {
programs.scripts = [
{
name = "email";
text = ''
${termcmd} -e aerc
'';
install = false;
hotkeys = [{key = "E";}];
}
];
home-manager.users.${user}.imports = [
{
programs.git = {
userName = userName;
userEmail = cfg.email;
};
accounts.email.accounts.${cfg.email} = mkIf cfg.terminal {
notmuch.enable = true;
neomutt.enable = true;
aerc.enable = true;
mbsync.enable = true;
mbsync.create = "both";
userName = cfg.email;
realName = userName;
address = cfg.email;
primary = true;
passwordCommand = "${pkgs.rbw}/bin/rbw get privateemail";
smtp = {
host = "mail.privateemail.com";
port = 465;
tls.enable = true;
};
imap = {
host = "mail.privateemail.com";
port = 993;
tls.enable = true;
};
};
programs.notmuch.enable = cfg.terminal;
programs.neomutt = {
enable = cfg.terminal;
vimKeys = true;
sort = "reverse-date";
sidebar.enable = true;
};
programs.mbsync.enable = cfg.terminal;
services.mbsync.enable = cfg.terminal;
programs.aerc = {
enable = cfg.terminal;
extraBinds = ''
# Binds are of the form <key sequence> = <command to run>
# To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>"
# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
<C-t> = :term<Enter>
[messages]
Q = :quit<Enter>
T = :toggle-threads<Enter>
j = :next<Enter>
<Down> = :next<Enter>
<C-d> = :next 50%<Enter>
<C-f> = :next 100%<Enter>
<PgDn> = :next -s 100%<Enter>
k = :prev<Enter>
<Up> = :prev<Enter>
<C-u> = :prev 50%<Enter>
<C-b> = :prev<Enter>
<PgUp> = :prev -s 100%<Enter>
gg = :select 0<Enter>
G = :select -1<Enter>
J = :next-folder<Enter>
K = :prev-folder<Enter>
v = :mark -t<Enter>
V = :mark -v<Enter>
f = :flag<Enter>
F = :unflag<Enter>
t = :toggle-threads<Enter>
<Enter> = :view<Enter>
D = :mv Trash<Enter>
C = :compose<enter>
Rr = :reply<Enter>
Rq = :reply -q<Enter>
rr = :reply -a<Enter>
rq = :reply -aq<Enter>
rt = :unflag<Enter>:reply -a -Tthanks<Enter>
Rt = :unflag<Enter>:reply -qa -Tquoted_thanks<Enter>
a = :mv Archive<Enter>
c = :cf<space>
$ = :term<space>
! = :term<space>
| = :pipe<space>
ga = :flag<Enter>:pipe -mb git am -3<Enter>
gp = :term git push<Enter>
gl = :term git log<Enter>
/ = :search<space>
\ = :filter<space>
n = :next-result<Enter>
N = :prev-result<Enter>
o = :term mbsync -a<Enter>
q = :quit<Enter>
[view]
/ = :toggle-key-passthrough<Enter>/
q = :close<Enter>
| = :pipe -m<space>
S = :save<space>
H = :toggle-headers<Enter>
D = :mv Trash<Enter>
<C-k> = :prev-part<Enter>
<C-j> = :next-part<Enter>
J = :next<Enter>
K = :prev<Enter>
f = :forward<Enter>
Rr = :reply<Enter>
Rq = :reply -q<Enter>
rr = :reply -a<Enter>
rq = :reply -aq<Enter>
rt = :reply -Tthanks<Enter>
ga = :pipe -b git am -3<Enter>
gp = :term git push<Enter>
gl = :term git log<Enter>
[view::passthrough]
$noinherit = true
$ex = <C-x>
<Esc> = :toggle-key-passthrough<Enter>
[compose]
$ex = <C-x>
<C-k> = :prev-field<Enter>
<C-j> = :next-field<Enter>
<tab> = :next-field<Enter>
[compose::editor]
# Keybindings used when the embedded terminal is selected in the compose view
$noinherit = true
$ex = <C-x>
<C-t> = :term<Enter>
<C-k> = :prev-field<Enter>
<C-j> = :next-field<Enter>
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
[compose::review]
# Keybindings used when reviewing a message to be sent
y = :send<Enter>
n = :abort<Enter>
e = :edit<Enter>
a = :attach<space>
c = :encrypt<Enter>
s = :sign<Enter>
V = :header -f X-Sourcehut-Patchset-Update NEEDS_REVISION<Enter>
A = :header -f X-Sourcehut-Patchset-Update APPLIED<Enter>
R = :header -f X-Sourcehut-Patchset-Update REJECTED<Enter>
[terminal]
$noinherit = true
$ex = <C-x>
<C-t> = :term<Enter>
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
'';
extraConfig = {
general = {
pgp-provider = "gpg";
unsafe-accounts-conf = true;
};
ui = {};
viewer = {};
filters = {
"text/plain" = "colorize";
"text/calendar" = "calendar";
"message/delivery-status" = "colorize";
"message/rfc822" = "colorize";
"image/*" = "img2sixel";
"text/html" = "html | colorize";
};
};
};
}
];
};
}

View file

@ -0,0 +1,49 @@
{
lib,
pkgs,
config,
...
}: let
editor = config.programs.editor;
pkg = editor.package;
menu = config.programs.menu.package + config.programs.menu.dmenuCommand;
editorCmd = "NIXOS_OZONE_WL= ${pkg}/bin/${pkg.executableName}";
in {
options.programs = with lib; {
editor = {
package = mkPackageOption pkgs "vscodium" {
example = "pkgs.vscode";
};
};
};
config = {
programs.vscode = {
enable = true;
package = editor.package;
extensions = [];
userSettings = {
"keyboard.dispatch" = "keyCode";
"terminal.integrated.sendKeybindingsToShell" = true;
"aws.telemetry" = false;
"gitlens.telemetry.enabled" = false;
"redhat.telemetry.enabled" = false;
"cSpell.language" = "en,en-GB";
};
};
programs.scripts = [
{
name = "open-code";
text = ''
code_dir=~/Documents/code
cd $code_dir
repo=$(ls | ${menu})
[ -e "$repo" ] && ${editorCmd} $repo
'';
install = false;
hotkeys = [{key = "C";}];
}
];
};
}

228
lib/modules/home/email.nix Normal file
View file

@ -0,0 +1,228 @@
{
lib,
pkgs,
config,
...
}: let
cfg = config.roles.email;
terminal = config.programs.terminal;
termcmd = "${terminal}/bin/${terminal.pname}";
in {
options.roles = with lib; {
email = {
enable = mkEnableOption "email settings";
email = mkOption {
description = "email address";
};
terminal = mkOption {
type = types.bool;
default = true;
};
};
};
config = lib.mkIf cfg.enable {
programs.scripts = [
{
name = "email";
text = ''
${termcmd} -e aerc
'';
install = false;
hotkeys = [{key = "E";}];
}
];
programs.git = {
userName = config.home.userFullname;
userEmail = cfg.email;
};
accounts.email.accounts.${cfg.email} = lib.mkIf cfg.terminal {
notmuch.enable = true;
neomutt.enable = true;
aerc.enable = true;
mbsync.enable = true;
mbsync.create = "both";
userName = cfg.email;
realName = config.home.userFullname;
address = cfg.email;
primary = true;
passwordCommand = "${pkgs.rbw}/bin/rbw get privateemail";
smtp = {
host = "mail.privateemail.com";
port = 465;
tls.enable = true;
};
imap = {
host = "mail.privateemail.com";
port = 993;
tls.enable = true;
};
};
programs.notmuch.enable = cfg.terminal;
programs.neomutt = {
enable = cfg.terminal;
vimKeys = true;
sort = "reverse-date";
sidebar.enable = true;
};
programs.mbsync.enable = cfg.terminal;
services.mbsync.enable = cfg.terminal;
programs.aerc = {
enable = cfg.terminal;
extraBinds = ''
# Binds are of the form <key sequence> = <command to run>
# To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>"
# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
<C-t> = :term<Enter>
[messages]
Q = :quit<Enter>
T = :toggle-threads<Enter>
j = :next<Enter>
<Down> = :next<Enter>
<C-d> = :next 50%<Enter>
<C-f> = :next 100%<Enter>
<PgDn> = :next -s 100%<Enter>
k = :prev<Enter>
<Up> = :prev<Enter>
<C-u> = :prev 50%<Enter>
<C-b> = :prev<Enter>
<PgUp> = :prev -s 100%<Enter>
gg = :select 0<Enter>
G = :select -1<Enter>
J = :next-folder<Enter>
K = :prev-folder<Enter>
v = :mark -t<Enter>
V = :mark -v<Enter>
f = :flag<Enter>
F = :unflag<Enter>
t = :toggle-threads<Enter>
<Enter> = :view<Enter>
D = :mv Trash<Enter>
C = :compose<enter>
Rr = :reply<Enter>
Rq = :reply -q<Enter>
rr = :reply -a<Enter>
rq = :reply -aq<Enter>
rt = :unflag<Enter>:reply -a -Tthanks<Enter>
Rt = :unflag<Enter>:reply -qa -Tquoted_thanks<Enter>
a = :mv Archive<Enter>
c = :cf<space>
$ = :term<space>
! = :term<space>
| = :pipe<space>
ga = :flag<Enter>:pipe -mb git am -3<Enter>
gp = :term git push<Enter>
gl = :term git log<Enter>
/ = :search<space>
\ = :filter<space>
n = :next-result<Enter>
N = :prev-result<Enter>
o = :term mbsync -a<Enter>
q = :quit<Enter>
[view]
/ = :toggle-key-passthrough<Enter>/
q = :close<Enter>
| = :pipe -m<space>
S = :save<space>
H = :toggle-headers<Enter>
D = :mv Trash<Enter>
<C-k> = :prev-part<Enter>
<C-j> = :next-part<Enter>
J = :next<Enter>
K = :prev<Enter>
f = :forward<Enter>
Rr = :reply<Enter>
Rq = :reply -q<Enter>
rr = :reply -a<Enter>
rq = :reply -aq<Enter>
rt = :reply -Tthanks<Enter>
ga = :pipe -b git am -3<Enter>
gp = :term git push<Enter>
gl = :term git log<Enter>
[view::passthrough]
$noinherit = true
$ex = <C-x>
<Esc> = :toggle-key-passthrough<Enter>
[compose]
$ex = <C-x>
<C-k> = :prev-field<Enter>
<C-j> = :next-field<Enter>
<tab> = :next-field<Enter>
[compose::editor]
# Keybindings used when the embedded terminal is selected in the compose view
$noinherit = true
$ex = <C-x>
<C-t> = :term<Enter>
<C-k> = :prev-field<Enter>
<C-j> = :next-field<Enter>
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
[compose::review]
# Keybindings used when reviewing a message to be sent
y = :send<Enter>
n = :abort<Enter>
e = :edit<Enter>
a = :attach<space>
c = :encrypt<Enter>
s = :sign<Enter>
V = :header -f X-Sourcehut-Patchset-Update NEEDS_REVISION<Enter>
A = :header -f X-Sourcehut-Patchset-Update APPLIED<Enter>
R = :header -f X-Sourcehut-Patchset-Update REJECTED<Enter>
[terminal]
$noinherit = true
$ex = <C-x>
<C-t> = :term<Enter>
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
'';
extraConfig = {
general = {
pgp-provider = "gpg";
unsafe-accounts-conf = true;
};
ui = {};
viewer = {};
filters = {
"text/plain" = "colorize";
"text/calendar" = "calendar";
"message/delivery-status" = "colorize";
"message/rfc822" = "colorize";
"image/*" = "img2sixel";
"text/html" = "html | colorize";
};
};
};
};
}

34
lib/modules/home/menu.nix Normal file
View file

@ -0,0 +1,34 @@
{
lib,
pkgs,
config,
...
}: let
cfg = config.programs.menu;
terminal = config.programs.terminal;
termcmd = "${terminal}/bin/${terminal.pname}";
in {
options.programs = with lib; {
menu = {
package = mkPackageOption pkgs "wofi" {
example = "pkgs.dmenu-wayland";
};
dmenuCommand = mkOption {
default = "/bin/wofi --show dmenu";
example = "/bin/dmenu";
};
};
};
config = {
programs.wofi = lib.mkIf (cfg.package == pkgs.wofi) {
enable = true;
settings = {
term = termcmd;
insensitive = true;
};
};
home.packages = [cfg.package];
};
}

65
lib/modules/home/mpd.nix Normal file
View file

@ -0,0 +1,65 @@
{
lib,
pkgs,
config,
...
}:
with lib; let
cfg = config.roles.mpd;
in {
options.roles.mpd = {
enable = mkEnableOption "setup mpd client";
host = mkOption {default = "192.168.1.2";};
};
config = mkIf cfg.enable {
programs.ncmpcpp = {
enable = true;
settings.mpd_host = cfg.host;
bindings = [
{
key = "j";
command = "scroll_down";
}
{
key = "k";
command = "scroll_up";
}
{
key = "l";
command = "next_column";
}
{
key = "h";
command = "previous_column";
}
{
key = "J";
command = ["select_item" "scroll_down"];
}
{
key = "K";
command = ["select_item" "scroll_up"];
}
];
};
services.mpd-mpris = {
enable = true;
mpd.host = cfg.host;
};
programs.waybar.settings.mainBar.mpd.server = cfg.host;
systemd.user.services = {
snapclient = {
Unit = {
Description = "Snapclient";
};
Service = {
ExecStart = "${pkgs.snapcast}/bin/snapclient -h ${cfg.host}";
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
};
};
}

View file

@ -1,4 +1,4 @@
{user}: { {
lib, lib,
pkgs, pkgs,
config, config,
@ -54,8 +54,7 @@ with lib; let
installScripts = scripts: (map scriptToPackage (filter (s: s.install) scripts)); installScripts = scripts: (map scriptToPackage (filter (s: s.install) scripts));
bindScript = script: bindScript = script: (
(
map map
( (
hotkey: "${hotkey.modifier}, ${hotkey.key}, exec, ${scriptExec {inherit script hotkey;}}" hotkey: "${hotkey.modifier}, ${hotkey.key}, exec, ${scriptExec {inherit script hotkey;}}"
@ -71,11 +70,7 @@ in {
}; };
config = { config = {
home-manager.users.${user}.imports = [
{
home.packages = installScripts scripts; home.packages = installScripts scripts;
wayland.windowManager.hyprland.settings.bind = builtins.concatMap bindScript scripts; wayland.windowManager.hyprland.settings.bind = builtins.concatMap bindScript scripts;
}
];
}; };
} }

View file

@ -0,0 +1,23 @@
{
lib,
pkgs,
config,
...
}: let
term = config.programs.terminal;
in {
options.programs = {
terminal = lib.mkPackageOption pkgs "foot" {
example = "pkgs.alacritty";
};
};
config = {
programs.foot = lib.mkIf (term == pkgs.foot) {
enable = true;
server.enable = true;
};
home.packages = [term];
};
}

View file

@ -1,38 +0,0 @@
{user}: {
lib,
pkgs,
config,
...
}:
with lib; let
cfg = config.programs.menu;
terminal = config.programs.terminal.package;
termcmd = "${terminal}/bin/${terminal.pname}";
in {
options.programs = {
menu = {
enable = mkEnableOption "menu";
package = mkPackageOption pkgs "wofi" {
example = "pkgs.dmenu-wayland";
};
dmenuCommand = mkOption {
default = "/bin/wofi --show dmenu";
example = "/bin/dmenu";
};
};
};
config = mkIf cfg.enable {
home-manager.users.${user}.imports = [
{
programs.wofi = mkIf (cfg.package == pkgs.wofi) {
enable = true;
settings = {
term = termcmd;
insensitive = true;
};
};
}
];
};
}

View file

@ -1,69 +0,0 @@
{user}: {
lib,
pkgs,
config,
...
}:
with lib; let
cfg = config.roles.mpd;
in {
options.roles.mpd = {
enable = mkEnableOption "setup mpd client";
host = mkOption {default = "192.168.1.2";};
};
config = mkIf cfg.enable {
home-manager.users.${user}.imports = [
{
programs.ncmpcpp = {
enable = true;
settings.mpd_host = cfg.host;
bindings = [
{
key = "j";
command = "scroll_down";
}
{
key = "k";
command = "scroll_up";
}
{
key = "l";
command = "next_column";
}
{
key = "h";
command = "previous_column";
}
{
key = "J";
command = ["select_item" "scroll_down"];
}
{
key = "K";
command = ["select_item" "scroll_up"];
}
];
};
services.mpd-mpris = {
enable = true;
mpd.host = cfg.host;
};
programs.waybar.settings.mainBar.mpd.server = cfg.host;
systemd.user.services = {
snapclient = {
Unit = {
Description = "Snapclient";
};
Service = {
ExecStart = "${pkgs.snapcast}/bin/snapclient -h ${cfg.host}";
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
};
}
];
};
}

View file

@ -10,12 +10,6 @@ with lib; {
}; };
config = mkIf config.roles.personal.enable { config = mkIf config.roles.personal.enable {
roles.email = {
enable = true;
email = "tristan@tristans.cloud";
terminal = true;
};
roles.gamer.enable = true; roles.gamer.enable = true;
i18n.supportedLocales = [ i18n.supportedLocales = [
@ -26,6 +20,12 @@ with lib; {
home-manager.users.${user}.imports = [ home-manager.users.${user}.imports = [
{ {
roles.email = {
enable = true;
email = "tristan@tristans.cloud";
terminal = true;
};
services.nextcloud-client.enable = true; services.nextcloud-client.enable = true;
services.gnome-keyring.enable = true; services.gnome-keyring.enable = true;

View file

@ -1,31 +0,0 @@
{user}: {
lib,
pkgs,
config,
...
}:
with lib; let
cfg = config.programs.terminal;
in {
options.programs = {
terminal = {
enable = mkEnableOption "editor";
package = mkPackageOption pkgs "foot" {
example = "pkgs.alacritty";
};
};
};
config = mkIf cfg.enable {
home-manager.users.${user}.imports = [
{
programs.foot = mkIf (cfg.package == pkgs.foot) {
enable = true;
server.enable = true;
};
home.packages = [cfg.package];
}
];
};
}

View file

@ -10,6 +10,8 @@ with lib; {
}; };
config = mkIf config.roles.work.enable { config = mkIf config.roles.work.enable {
home-manager.users.${user}.imports = [
{
roles.email = { roles.email = {
enable = true; enable = true;
email = "tristan.beedell@cryoserver.com"; email = "tristan.beedell@cryoserver.com";
@ -17,12 +19,9 @@ with lib; {
}; };
programs.editor = { programs.editor = {
enable = true;
package = pkgs.vscode; package = pkgs.vscode;
}; };
home-manager.users.${user}.imports = [
{
home.packages = with pkgs; [ home.packages = with pkgs; [
onedrive onedrive
kubectl kubectl

View file

@ -4,7 +4,7 @@
lib, lib,
... ...
}: let }: let
terminal = config.programs.terminal.package; terminal = config.programs.terminal;
termcmd = "${terminal}/bin/${terminal.pname}"; termcmd = "${terminal}/bin/${terminal.pname}";
my-deps = { my-deps = {
notify-send = "${pkgs.libnotify}/bin/notify-send"; notify-send = "${pkgs.libnotify}/bin/notify-send";
@ -13,7 +13,6 @@
slurp = "${pkgs.slurp}/bin/slurp"; slurp = "${pkgs.slurp}/bin/slurp";
amixer = "${pkgs.alsa-utils}/bin/amixer"; amixer = "${pkgs.alsa-utils}/bin/amixer";
swaybg = "${pkgs.swaybg}/bin/swaybg"; swaybg = "${pkgs.swaybg}/bin/swaybg";
terminal = "${pkgs.foot}/bin/foot";
chafa = "${pkgs.chafa}/bin/chafa"; chafa = "${pkgs.chafa}/bin/chafa";
exiftool = "${pkgs.exiftool}/bin/exiftool"; exiftool = "${pkgs.exiftool}/bin/exiftool";
wc = "${pkgs.coreutils}/bin/wc"; wc = "${pkgs.coreutils}/bin/wc";
@ -159,7 +158,7 @@ in {
(lib.mkIf config.roles.mpd.enable { (lib.mkIf config.roles.mpd.enable {
name = "ncmpcpp"; name = "ncmpcpp";
text = '' text = ''
${my-deps.terminal} -e ncmpcpp ${termcmd} -e ncmpcpp
''; '';
hotkeys = [ hotkeys = [
{ {
@ -270,7 +269,7 @@ in {
} }
{ {
name = "terminal"; name = "terminal";
text = my-deps.terminal; text = termcmd;
hotkeys = [ hotkeys = [
{key = "RETURN";} {key = "RETURN";}
]; ];