summaryrefslogtreecommitdiff
path: root/home
diff options
context:
space:
mode:
Diffstat (limited to 'home')
-rw-r--r--home/default.nix19
-rw-r--r--home/environ.nix20
-rw-r--r--home/i3-config.nix3
-rw-r--r--home/mail/.gitignore1
-rw-r--r--home/mail/default.nix72
-rw-r--r--home/mail/sieve/mail.sieve1
-rw-r--r--home/path.nix98
7 files changed, 141 insertions, 73 deletions
diff --git a/home/default.nix b/home/default.nix
index d6e8a81..0afdc7c 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -1,12 +1,11 @@
-{ self, nixpkgs, nixpkgsUnstable, nur, hm-isolation }:
{ lib, config, pkgs, ... }:
with lib; {
imports = [
- hm-isolation.homeManagerModule
./desktop.nix
./environ.nix
./graphics.nix
./isolation.nix
+ ./mail
./path.nix
];
@@ -15,17 +14,9 @@ with lib; {
};
config = {
- nixpkgs.overlays = [ nur.overlay self.overlay ];
-
- nix.registry = {
- "nixpkgs".flake = nixpkgs;
- "nixpkgsUnstable".flake = nixpkgsUnstable;
- "nur".flake = nur;
-
- "system".to = {
- type = "path";
- path = "/home/ale/nix";
- };
+ nix.registry."system".to = {
+ type = "path";
+ path = "${config.home.homeDirectory}/nix";
};
home = {
@@ -40,7 +31,7 @@ with lib; {
stateVersion = "21.11";
username = "ale";
- homeDirectory = "/home/ale";
+ homeDirectory = "/home/${config.home.username}";
sessionVariables = {
EDITOR = "nvim";
diff --git a/home/environ.nix b/home/environ.nix
index 5b20f51..b12093e 100644
--- a/home/environ.nix
+++ b/home/environ.nix
@@ -7,15 +7,17 @@ with lib; {
"d %t/vtmp 0700"
];
- home.file = let
- symlink = path: { source = config.lib.file.mkOutOfStoreSymlink path; };
- #TODO: No sirve, creo que por readline
- devNull = symlink "/dev/null";
- in {
- "vtmp" = symlink "/run/user/1000/vtmp";
- ".calc_history" = devNull;
- ".units_history" = devNull;
- };
+ home.file =
+ let
+ symlink = path: { source = config.lib.file.mkOutOfStoreSymlink path; };
+ #TODO: No sirve, creo que por readline
+ devNull = symlink "/dev/null";
+ in
+ {
+ "vtmp" = symlink "/run/user/1000/vtmp";
+ ".units_history" = devNull;
+ #TODO: .calc_history
+ };
programs = {
zsh = {
diff --git a/home/i3-config.nix b/home/i3-config.nix
index 18e94ce..999745b 100644
--- a/home/i3-config.nix
+++ b/home/i3-config.nix
@@ -171,6 +171,9 @@
# (No) Title Bars
for_window [class="^.*"] border pixel 5
+ # i3-msg exec --no-startup-id --class floating
+ for_window [class="floating"] floating enabled
+
exec --no-startup-id ${xautolock}/bin/xautolock -time 10 -locker '${i3lock-color}/bin/i3lock-color -fe -c222222'
#exec --no-startup-id /usr/local/bin/platform-graphical-login.sh
''
diff --git a/home/mail/.gitignore b/home/mail/.gitignore
new file mode 100644
index 0000000..1d9a3a0
--- /dev/null
+++ b/home/mail/.gitignore
@@ -0,0 +1 @@
+*.svbin
diff --git a/home/mail/default.nix b/home/mail/default.nix
new file mode 100644
index 0000000..a6fe8ff
--- /dev/null
+++ b/home/mail/default.nix
@@ -0,0 +1,72 @@
+{ config, lib, pkgs, ... }:
+with lib; {
+ config = mkIf (!config.home.isolation.active) {
+ accounts.email = {
+ maildirBasePath = "mail";
+
+ accounts.local = {
+ address = "alejandro@34project.org";
+ userName = "alejandro@34project.org";
+ realName = "Alejandro Soto";
+
+ primary = true;
+
+ # ${maildirBasePath}/${maildir.path}
+ maildir.path = "";
+ folders.inbox = "";
+
+ msmtp.enable = true;
+ neomutt.enable = true;
+
+ smtp = {
+ host = "smtp.34project.org";
+
+ tls = {
+ enable = true;
+ useStartTls = true;
+ };
+ };
+ };
+ };
+
+ programs = {
+ msmtp.enable = true;
+
+ neomutt = {
+ enable = true;
+ vimKeys = true;
+
+ settings = {
+ record = "+.Sent";
+ postponed = "+.Drafts";
+
+ use_threads = "flat";
+ index_format = "'%4C %Z %<[y?%<[m?%<[d?%[%H:%M ]&%[%a %d]>&%[%b %d]>&%[%m/%y ]> %-15.15L (%?l?%4l&%4c?) %s'";
+ };
+ };
+ };
+
+ # .dovecot.sieve tiene que ser un symlink tal que el readlink -f de su
+ # dirname (no del symlink en sí) sea la misma cadena que el readlink -f
+ # de ~/sieve. Dovecot verifica eso y tira "Invalid/unknown path to
+ # storage" si este check frágil falla. Ni siquiera
+ # mkOutOfStoreSymlink funciona. Ver código fuente de Dovecot:
+ # pigeonhole/src/lib-sieve/storage/file/sieve-file-storage-active.c
+ home =
+ let
+ sieve = pkgs.runCommandNoCCLocal "sieve" { src = ./sieve; } ''
+ cp -r $src $out
+ chmod -R u+w $out
+ find $out -name '*.sieve' -exec ${pkgs.dovecot_pigeonhole}/bin/sievec -c /dev/null {} \;
+ '';
+ in
+ {
+ file."sieve".source = sieve;
+
+ activation.sieve = hm.dag.entryBetween [ "linkGeneration" ] [ "writeBoundary" ] ''
+ $DRY_RUN_CMD ln -Tsf ${sieve}/mail.sieve .dovecot.sieve
+ $DRY_RUN_CMD ln -Tsf ${sieve}/mail.svbin .dovecot.svbin
+ '';
+ };
+ };
+}
diff --git a/home/mail/sieve/mail.sieve b/home/mail/sieve/mail.sieve
new file mode 100644
index 0000000..1bb3788
--- /dev/null
+++ b/home/mail/sieve/mail.sieve
@@ -0,0 +1 @@
+# This file has been lustrated.
diff --git a/home/path.nix b/home/path.nix
index 56678bb..2199b3e 100644
--- a/home/path.nix
+++ b/home/path.nix
@@ -1,53 +1,51 @@
{ config, lib, pkgs, ... }:
with lib; {
- home.packages = let
- py = pkgs.python39Packages;
- in [
- pkgs.file
- pkgs.killall
- pkgs.man-pages
- pkgs.man-pages-posix
- pkgs.tree
- pkgs.unzip
- pkgs.wget
- pkgs.zip
- ] ++ optionals (!config.home.isolation.active) [
- pkgs.calc
- pkgs.cloc
- pkgs.gcc
- pkgs.gnome.gnome-screenshot
- pkgs.gpicview
- pkgs.gruvbox-dark-icons-gtk
- pkgs.hack-font
- pkgs.i3-gaps
- py.ipython
- pkgs.jq
- pkgs.keepassxc
- pkgs.libreoffice-fresh
- pkgs.mosh
- pkgs.mpv
- pkgs.nmap
- pkgs.libsForQt5.okular
- pkgs.pavucontrol
- pkgs.pciutils
- py.python
- pkgs.rustup
- pkgs.local.scripts
- pkgs.socat
- pkgs.local.st
- pkgs.local.tmux-lift
- pkgs.units
- pkgs.usbutils
- pkgs.xclip # keepassxc-cli clip
- pkgs.xsel
- pkgs.xournalpp
- ];
-
- nixpkgs.config.allowUnfreePredicate = pkg: elem (getName pkg) [
- "anydesk"
- "mssql-tools"
- "quartus-prime-lite-unwrapped"
- "teams"
- "zoom"
- ];
+ home.packages =
+ let
+ py = pkgs.python39Packages;
+ in
+ [
+ pkgs.file
+ pkgs.killall
+ pkgs.man-pages
+ pkgs.man-pages-posix
+ pkgs.tree
+ pkgs.unzip
+ pkgs.wget
+ pkgs.zip
+ ] ++ optionals (!config.home.isolation.active) [
+ pkgs.calc
+ pkgs.cloc
+ pkgs.gcc
+ pkgs.gnome.gnome-screenshot
+ pkgs.gpicview
+ pkgs.gruvbox-dark-icons-gtk
+ pkgs.hack-font
+ pkgs.i3-gaps
+ py.ipython
+ pkgs.jq
+ pkgs.keepassxc
+ pkgs.libreoffice-fresh
+ pkgs.mosh
+ pkgs.mpv
+ pkgs.nmap
+ pkgs.libsForQt5.okular
+ pkgs.pavucontrol
+ pkgs.pciutils
+ py.python
+ pkgs.rustup
+ pkgs.local.scripts
+ pkgs.signal-desktop
+ pkgs.socat
+ pkgs.local.st
+ pkgs.tdesktop
+ pkgs.local.tmux-lift
+ pkgs.teams
+ pkgs.units
+ pkgs.usbutils
+ pkgs.xclip # keepassxc-cli clip
+ pkgs.xsel
+ pkgs.xournalpp
+ pkgs.zoom-us
+ ];
}