diff options
Diffstat (limited to 'home')
| -rw-r--r-- | home/default.nix | 19 | ||||
| -rw-r--r-- | home/environ.nix | 20 | ||||
| -rw-r--r-- | home/i3-config.nix | 3 | ||||
| -rw-r--r-- | home/mail/.gitignore | 1 | ||||
| -rw-r--r-- | home/mail/default.nix | 72 | ||||
| -rw-r--r-- | home/mail/sieve/mail.sieve | 1 | ||||
| -rw-r--r-- | home/path.nix | 98 |
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 + ]; } |
