trying to get deploy-rs working by cleaning things up
This commit is contained in:
		
							parent
							
								
									a90c9eae0c
								
							
						
					
					
						commit
						5e158f6540
					
				
							
								
								
									
										21
									
								
								flake.lock
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								flake.lock
									
									
									
									
									
								
							|  | @ -35,26 +35,6 @@ | |||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "darwin": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "nixos" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1645007752, | ||||
|         "narHash": "sha256-FQZMiVP/1vgR7x+TWonMf0NZczrZ4ZjhSTj3rM+kglY=", | ||||
|         "owner": "LnL7", | ||||
|         "repo": "nix-darwin", | ||||
|         "rev": "c944b5ee82a829ddf7fa6bd9300bc2fe3d005fa1", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "LnL7", | ||||
|         "repo": "nix-darwin", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "deploy": { | ||||
|       "inputs": { | ||||
|         "flake-compat": "flake-compat", | ||||
|  | @ -398,7 +378,6 @@ | |||
|     "root": { | ||||
|       "inputs": { | ||||
|         "agenix": "agenix", | ||||
|         "darwin": "darwin", | ||||
|         "deploy": "deploy", | ||||
|         "digga": "digga", | ||||
|         "home": "home", | ||||
|  |  | |||
							
								
								
									
										39
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								flake.nix
									
									
									
									
									
								
							|  | @ -19,9 +19,6 @@ | |||
|       home.url = "github:nix-community/home-manager/release-21.11"; | ||||
|       home.inputs.nixpkgs.follows = "nixos"; | ||||
| 
 | ||||
|       darwin.url = "github:LnL7/nix-darwin"; | ||||
|       darwin.inputs.nixpkgs.follows = "nixos"; | ||||
| 
 | ||||
|       deploy.url = "github:serokell/deploy-rs"; | ||||
|       deploy.inputs.nixpkgs.follows = "nixos"; | ||||
| 
 | ||||
|  | @ -52,6 +49,9 @@ | |||
|     digga.lib.mkFlake | ||||
|       { | ||||
|         inherit self inputs; | ||||
|         supportedSystems = [ | ||||
|           "x86_64-linux" | ||||
|         ]; | ||||
| 
 | ||||
|         channelsConfig = { allowUnfree = true; }; | ||||
| 
 | ||||
|  | @ -97,7 +97,6 @@ | |||
|           imports = [ (digga.lib.importHosts ./hosts) ]; | ||||
|           hosts = { | ||||
|             /* set host specific properties here */ | ||||
|             NixOS = { }; | ||||
|             curve = { | ||||
|               channelName = "nixos"; | ||||
|               #modules = [ ]; # nixos-hardware.nixosModules.lenovo-thinkpad | ||||
|  | @ -116,9 +115,10 @@ | |||
|               base = [ core users.root users.anish ]; # TODO make anish non gui | ||||
|               sealight = [ base ]; # matrix rsshub backup wireguard website | ||||
|               mossnet = [ base ]; # shaarli wallabag nextcloud taskwarrior headphones  | ||||
|               home-manager = [ users.profiles.firefox users.profiles.desktop users.profiles.nvim ]; | ||||
|               graphical = [ base home-manager bluetooth music sync wireguard wifi ]; | ||||
|               curve = [ graphical users.profiles.email users.profiles.cal ]; | ||||
|               cube = [ base ]; | ||||
|               # home-manager = [ users.profiles.firefox users.profiles.desktop users.profiles.nvim ]; | ||||
|               graphical = [ base bluetooth music sync wireguard wifi desktop ]; | ||||
|               curve = [ graphical ]; | ||||
|               work = [ base home-manager ]; | ||||
|             }; | ||||
|           }; | ||||
|  | @ -126,17 +126,18 @@ | |||
| 
 | ||||
|         home = { | ||||
|           imports = [ (digga.lib.importExportableModules ./users/modules) ]; | ||||
|           exportedModules = [ ]; | ||||
|           # exportedModules = [ ]; | ||||
|           # modules = [ ]; | ||||
|           importables = rec { | ||||
|             profiles = digga.lib.rakeLeaves ./users/profiles; | ||||
|             suites = with profiles; rec { | ||||
|               hmBase = [ direnv git ]; | ||||
|               gui = [ hmBase profiles.firefox profiles.desktop ]; | ||||
|               hmBase = [ direnv git nvim ]; | ||||
|               gui = [ hmBase firefox desktop email cal ]; | ||||
|             }; | ||||
|           }; | ||||
|           users = { | ||||
|             nixos = { suites, ... }: { imports = suites.hmBase; }; | ||||
|             curve = { suites, ... }: { imports = suites.gui; }; | ||||
|             anish = { suites, ... }: { imports = suites.gui; }; | ||||
|           }; # digga.lib.importers.rakeLeaves ./users/hm; | ||||
|         }; | ||||
| 
 | ||||
|  | @ -144,18 +145,6 @@ | |||
| 
 | ||||
|         homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations; | ||||
| 
 | ||||
|         deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations | ||||
|           { | ||||
|             curve = { | ||||
|               profilesOrder = [ "system" "curve" ]; | ||||
|               profiles.anish = { | ||||
|                 user = "anish"; | ||||
|                 path = deploy.lib.x86_64-linux.activate.home-manager self.homeConfigurationsPortable.x86_64-linux.anish; | ||||
|               }; | ||||
|             }; | ||||
|           }; | ||||
| 
 | ||||
|         # checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy.lib; | ||||
|       } | ||||
|   ; | ||||
|         deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations { }; | ||||
|       }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,12 +0,0 @@ | |||
| { suites, ... }: | ||||
| { | ||||
|   ### root password is empty by default ### | ||||
|   imports = suites.base; | ||||
| 
 | ||||
|   boot.loader.systemd-boot.enable = true; | ||||
|   boot.loader.efi.canTouchEfiVariables = true; | ||||
| 
 | ||||
|   networking.networkmanager.enable = true; | ||||
| 
 | ||||
|   fileSystems."/" = { device = "/dev/disk/by-label/nixos"; }; | ||||
| } | ||||
|  | @ -1,3 +0,0 @@ | |||
| { | ||||
| 
 | ||||
| } | ||||
|  | @ -10,7 +10,7 @@ | |||
|   # Use the GRUB 2 boot loader. | ||||
|   boot.loader.grub.enable = true; | ||||
|   boot.loader.grub.version = 2; | ||||
|   boot.loader.grub.device = "/dev/vda"; # or "nodev" for efi only | ||||
|   boot.loader.grub.devices = [ "/dev/vda" ]; # or "nodev" for efi only | ||||
| 
 | ||||
|   networking.hostName = "cube"; # Define your hostname. | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,10 +6,6 @@ | |||
|     profiles.mossnet-hosts | ||||
|   ] ++ suites.curve; | ||||
| 
 | ||||
|   home-manager.users.anish = { self, suites, ... }: { | ||||
|     imports = [ ] ++ suites.hmBase; | ||||
|   }; | ||||
| 
 | ||||
|   fileSystems."/mnt/ftp" = { | ||||
|     device = "192.168.1.240:/home/ftp"; | ||||
|     fsType = "nfs"; | ||||
|  |  | |||
|  | @ -1,3 +0,0 @@ | |||
| { | ||||
| 
 | ||||
| } | ||||
|  | @ -1,54 +1,182 @@ | |||
| { config, pkgs, ... }: | ||||
| 
 | ||||
| { config, pkgs, lib, ... }: | ||||
| let | ||||
|   dracula-gtk = pkgs.fetchFromGitHub { | ||||
|     owner = "dracula"; | ||||
|     repo = "gtk"; | ||||
|     rev = "502f212d83bc67e8f0499574546b99ec6c8e16f9"; | ||||
|     sha256 = "1wx9nzq7cqyvpaq4j60bs8g7gh4jk8qg4016yi4c331l4iw1ymsa"; | ||||
|   }; | ||||
| in | ||||
| { | ||||
|   #imports = [ ./music.nix ] | ||||
|   #environment.systemPackages = with pkgs; [ | ||||
|   #  nheko | ||||
|   #  newsflash | ||||
|   #  sublime-music | ||||
|   #  tdesktop | ||||
|   #  obs-studio | ||||
|   #]; | ||||
|   #environment.systemPackages = with pkgs; [ | ||||
|   #   lightdm | ||||
|   #   dunst | ||||
|   #   libnotify | ||||
|   #   (polybar.override { | ||||
|   #     pulseSupport = true; | ||||
|   #     nlSupport = true; | ||||
|   #   }) | ||||
|   #]; | ||||
|   # | ||||
|   #services = { | ||||
|   #  picom.enable = true; | ||||
|   #  #redshift.enable = true; | ||||
|   #  xserver = { | ||||
|   #    enable = true; | ||||
|   #    displayManager = { | ||||
|   #      defaultSession = "none+bspwm"; | ||||
|   #      lightdm.enable = true; | ||||
|   #      lightdm.greeters.mini.enable = true; | ||||
|   #      lightdm.greeters.mini.user = "anish"; # TODO hardcoded | ||||
|   #    }; | ||||
|   #    windowManager.bspwm.enable = true; | ||||
|   #    windowManager.bspwm.configFile = "/home/anish/.bspwm/bspwmrc"; | ||||
|   #    windowManager.bspwm.sxhkd.configFile = "/home/anish/sxhkdrc"; | ||||
|   #    #windowManager.default = "bspwm"; | ||||
|   #  }; | ||||
|   #}; | ||||
|   # | ||||
|   #systemd.user.services."dunst" = { | ||||
|   #  enable = true; | ||||
|   #  description = ""; | ||||
|   #  wantedBy = [ "default.target" ]; | ||||
|   #  serviceConfig.Restart = "always"; | ||||
|   #  serviceConfig.RestartSec = 2; | ||||
|   #  serviceConfig.ExecStart = "${pkgs.dunst}/bin/dunst"; | ||||
|   #}; | ||||
|   #services.xserver.displayManager.lightdm.greeters.mini.extraConfig = ''                        | ||||
|   #    text-color = "#ff79c6" | ||||
|   #    password-background-color = "#1E2029" | ||||
|   #    window-color = "#181a23" | ||||
|   #    border-color = "#181a23" | ||||
|   #''; | ||||
|   # TODO modularize | ||||
|   #imports = [ ./xdg.nix ]; | ||||
| 
 | ||||
|   services = { | ||||
|     gnome.gnome-keyring.enable = true; | ||||
|     upower.enable = true; | ||||
| 
 | ||||
|     dbus = { | ||||
|       enable = true; | ||||
|       packages = [ pkgs.gnome3.dconf ]; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   security.pam.services.sddm.enableGnomeKeyring = true; | ||||
| 
 | ||||
|   environment.sessionVariables = rec { | ||||
|     XDG_CACHE_HOME = "\${HOME}/.cache"; | ||||
|     XDG_CONFIG_HOME = "\${HOME}/.config"; | ||||
|     XDG_BIN_HOME = "\${HOME}/.local/bin"; | ||||
|     XDG_DATA_HOME = "\${HOME}/.local/share"; | ||||
| 
 | ||||
|     PATH = [ | ||||
|       "\${XDG_BIN_HOME}" | ||||
|     ]; | ||||
|   }; | ||||
| 
 | ||||
|   nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ | ||||
|     "ripcord" | ||||
|     "vcv-rack" | ||||
|   ]; | ||||
| 
 | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     # TODO move somewhere meaningful | ||||
|     signal-desktop # bridge to sealight? | ||||
|     scrot | ||||
|     ripcord | ||||
|     feh | ||||
|     xkblayout-state | ||||
|     sublime-music | ||||
|     vcv-rack | ||||
|     zathura | ||||
|     calibre | ||||
|     nheko | ||||
|     mpv | ||||
|     scrot | ||||
|     newsflash | ||||
|     zeal | ||||
|     xclip | ||||
|     xdotool | ||||
|     rofi | ||||
|     rofimoji | ||||
|     obs-studio | ||||
|     lightdm | ||||
|     dunst | ||||
|     libnotify | ||||
|     (polybar.override { | ||||
|       pulseSupport = true; | ||||
|       nlSupport = true; | ||||
|     }) | ||||
|     papirus-icon-theme | ||||
|     calendar-cli | ||||
|     wyrd | ||||
|   ]; | ||||
| 
 | ||||
| 
 | ||||
|   location.provider = "geoclue2"; | ||||
|   services = { | ||||
|     redshift = { | ||||
|       enable = true; | ||||
|       temperature = { | ||||
|         day = 5500; | ||||
|         night = 3700; | ||||
|       }; | ||||
|     }; | ||||
|     xserver = { | ||||
|       enable = true; | ||||
|       layout = "us,dvorak"; | ||||
|       desktopManager.wallpaper.mode = "fill"; | ||||
|       displayManager = { | ||||
|         defaultSession = "none+bspwm"; | ||||
|         sessionCommands = '' | ||||
|           ${pkgs.xorg.xrdb}/bin/xrdb -merge <<EOF | ||||
|           #define blk  #1F2430 | ||||
|           #define bblk #F28779 | ||||
|           #define red  #A6CC70 | ||||
|           #define bred #FFCC66 | ||||
|           #define grn  #5CCFE6 | ||||
|           #define bgrn #F29E74 | ||||
|           #define ylw  #77A8D9 | ||||
|           #define bylw #5C6773 | ||||
|           #define blu  #707A8C | ||||
|           #define bblu #F27983 | ||||
|           #define mag  #BAE67E | ||||
|           #define bmag #FFD580 | ||||
|           #define cyn  #73D0FF | ||||
|           #define bcyn #FFA759 | ||||
|           #define wht  #95E6CB | ||||
|           #define bwht #CBCCC6 | ||||
|           #define bg blk | ||||
|           #define fg wht | ||||
|            | ||||
|           *.foreground:  fg | ||||
|           *.background:  bg | ||||
|           *.cursorColor: mag | ||||
|            | ||||
|           *.color0:  blk | ||||
|           *.color8:  bblk | ||||
|           *.color1:  red | ||||
|           *.color9:  bred | ||||
|           *.color2:  grn | ||||
|           *.color10: bgrn | ||||
|           *.color3:  ylw | ||||
|           *.color11: bylw | ||||
|           *.color4:  blu | ||||
|           *.color12: bblu | ||||
|           *.color5:  mag | ||||
|           *.color13: bmag | ||||
|           *.color6:  cyn | ||||
|           *.color14: bcyn | ||||
|           *.color7:  wht | ||||
|           *.color15: bwht | ||||
|            | ||||
|           ! greys | ||||
|           *.color234: #1E2029 | ||||
|           *.color235: #282a36 | ||||
|           *.color236: #373844 | ||||
|           *.color237: #44475a | ||||
|           *.color239: #565761 | ||||
|           *.color240: #6272a4 | ||||
|           *.color241: #b6b6b2 | ||||
|           EOF | ||||
| 
 | ||||
|           # hotplug | ||||
|           connect() { | ||||
|               xrandr --output HDMI-2 --same-as eDP-1 | ||||
|           } | ||||
| 
 | ||||
|           disconnect() { | ||||
|               xrandr --output HDMI-2 --off | ||||
|           } | ||||
| 
 | ||||
|           xrandr | grep "HDMI-2 connected" &>>/dev/null && connect || disconnect | ||||
|         ''; | ||||
|         lightdm.enable = true; | ||||
|         lightdm.greeters.mini.enable = true; | ||||
|         lightdm.greeters.mini.user = "anish"; # TODO hardcoded | ||||
|         lightdm.background = "/etc/nixos/users/profiles/desktop/background.jpg"; | ||||
|         lightdm.greeters.mini.extraConfig = '' | ||||
|           text-color = "#ff79c6" | ||||
|           password-background-color = "#1E2029" | ||||
|           window-color = "#181a23" | ||||
|           border-color = "#181a23" | ||||
|           active-monitor=1 | ||||
|         ''; | ||||
|       }; | ||||
|       windowManager.bspwm.enable = true; | ||||
|       #windowManager.bspwm.configFile = "/home/anish/.bspwm/bspwmrc"; | ||||
|       windowManager.bspwm.sxhkd.configFile = "/home/anish/.config/sxhkdrc"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   fonts.fonts = with pkgs; [ | ||||
|     fira-code | ||||
|     fira-code-symbols | ||||
|     hermit | ||||
|     #hack | ||||
|     siji | ||||
|     font-awesome-ttf | ||||
|     proggyfonts | ||||
|     (nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Iosevka" ]; }) | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
|  | @ -1,102 +1,101 @@ | |||
| {pkgs, config, ...}: | ||||
| { pkgs, config, age, ... }: | ||||
| 
 | ||||
| { | ||||
|   age.secrets.mossnet.file = "/etc/nixos/secrets/mossnet.age"; | ||||
|   age.secrets.mossnet.owner = "anish"; | ||||
|   home-manager.users.anish = { | ||||
|     home.packages = with pkgs; [ | ||||
|       khal | ||||
|       khard | ||||
|       vdirsyncer | ||||
|     ]; | ||||
|   #age.secrets.mossnet.file = "/etc/nixos/secrets/mossnet.age"; | ||||
|   #age.secrets.mossnet.owner = "anish"; | ||||
| 
 | ||||
|     xdg.configFile = { | ||||
|       "vdirsyncer/config".text = '' | ||||
|         [general] | ||||
|         status_path = "/home/anish/.config/vdirsyncer/status/"  | ||||
|   home.packages = with pkgs; [ | ||||
|     khal | ||||
|     khard | ||||
|     vdirsyncer | ||||
|   ]; | ||||
| 
 | ||||
|         [pair contacts] | ||||
|         a = "contacts_local" | ||||
|         b = "contacts_remote" | ||||
|         collections = ["from a", "from b"] | ||||
|         metadata = ["displayname"] | ||||
|   xdg.configFile = { | ||||
|     "vdirsyncer/config".text = '' | ||||
|       [general] | ||||
|       status_path = "/home/anish/.config/vdirsyncer/status/"  | ||||
| 
 | ||||
|         [storage contacts_local] | ||||
|         type = "filesystem" | ||||
|         path = "~/.contacts/" | ||||
|         fileext = ".vcf" | ||||
|       [pair contacts] | ||||
|       a = "contacts_local" | ||||
|       b = "contacts_remote" | ||||
|       collections = ["from a", "from b"] | ||||
|       metadata = ["displayname"] | ||||
| 
 | ||||
|         [storage contacts_remote] | ||||
|         type = "carddav" | ||||
|         url = "http://mossnet.lan/remote.php/dav/files/anish/" | ||||
|         username = "anish" | ||||
|         password.fetch = ["command", "cat", "/run/secrets/mossnet"] | ||||
|       [storage contacts_local] | ||||
|       type = "filesystem" | ||||
|       path = "~/.contacts/" | ||||
|       fileext = ".vcf" | ||||
| 
 | ||||
|         [pair calendar] | ||||
|         a = "calendar_local" | ||||
|         b = "calendar_remote" | ||||
|         collections = ["from a", "from b"] | ||||
|         metadata = ["displayname"] | ||||
|       [storage contacts_remote] | ||||
|       type = "carddav" | ||||
|       url = "http://mossnet.lan/remote.php/dav/files/anish/" | ||||
|       username = "anish" | ||||
|       password.fetch = ["command", "cat", "/run/secrets/mossnet"] | ||||
| 
 | ||||
|         [storage calendar_local] | ||||
|         type = "filesystem" | ||||
|         path = "~/.calendar/" | ||||
|         fileext = ".ics" | ||||
|       [pair calendar] | ||||
|       a = "calendar_local" | ||||
|       b = "calendar_remote" | ||||
|       collections = ["from a", "from b"] | ||||
|       metadata = ["displayname"] | ||||
| 
 | ||||
|         [storage calendar_remote] | ||||
|         type = "caldav" | ||||
|         url = "http://mossnet.lan/remote.php/dav/files/anish/" | ||||
|         username = "anish" | ||||
|         password.fetch = ["command", "cat", "/run/secrets/mossnet"] | ||||
|       ''; | ||||
|       [storage calendar_local] | ||||
|       type = "filesystem" | ||||
|       path = "~/.calendar/" | ||||
|       fileext = ".ics" | ||||
| 
 | ||||
|       "khal/config".text = '' | ||||
|         [calendars] | ||||
|       [storage calendar_remote] | ||||
|       type = "caldav" | ||||
|       url = "http://mossnet.lan/remote.php/dav/files/anish/" | ||||
|       username = "anish" | ||||
|       password.fetch = ["command", "cat", "/run/secrets/mossnet"] | ||||
|     ''; | ||||
| 
 | ||||
|         [[calendar_local]] | ||||
|         path = ~/.calendar/* | ||||
|         type = discover | ||||
|     "khal/config".text = '' | ||||
|       [calendars] | ||||
| 
 | ||||
|         [[contacts_local]] | ||||
|         path = ~/.contacts/* | ||||
|         type = birthdays | ||||
|       [[calendar_local]] | ||||
|       path = ~/.calendar/* | ||||
|       type = discover | ||||
| 
 | ||||
|         [locale] | ||||
|         timeformat = %H:%M | ||||
|         dateformat = %Y-%m-%d | ||||
|         longdateformat = %Y-%m-%d | ||||
|         datetimeformat = %Y-%m-%d %H:%M | ||||
|         longdatetimeformat = %Y-%m-%d %H:%M | ||||
|       ''; | ||||
|       [[contacts_local]] | ||||
|       path = ~/.contacts/* | ||||
|       type = birthdays | ||||
| 
 | ||||
|       "khard/khard.conf".text = '' | ||||
|         [addressbooks] | ||||
|         [[personal]] | ||||
|         path = ~/.contacts/* | ||||
|       [locale] | ||||
|       timeformat = %H:%M | ||||
|       dateformat = %Y-%m-%d | ||||
|       longdateformat = %Y-%m-%d | ||||
|       datetimeformat = %Y-%m-%d %H:%M | ||||
|       longdatetimeformat = %Y-%m-%d %H:%M | ||||
|     ''; | ||||
| 
 | ||||
|         [general] | ||||
|         debug = no | ||||
|         default_action = list | ||||
|         editor = nvim, -i, NONE | ||||
|         merge_editor = nvim, -d | ||||
|     "khard/khard.conf".text = '' | ||||
|       [addressbooks] | ||||
|       [[personal]] | ||||
|       path = ~/.contacts/* | ||||
| 
 | ||||
|         [contact table] | ||||
|         display = first_name | ||||
|         group_by_addressbook = no | ||||
|         reverse = no | ||||
|         show_nicknames = yes | ||||
|         show_uids = no | ||||
|         sort = last_name | ||||
|         localize_dates = yes | ||||
|         preferred_phone_number_type = pref, cell, home | ||||
|         preferred_email_address_type = pref, home, work | ||||
|       [general] | ||||
|       debug = no | ||||
|       default_action = list | ||||
|       editor = nvim, -i, NONE | ||||
|       merge_editor = nvim, -d | ||||
| 
 | ||||
|         [vcard] | ||||
|         private_objects = Jabber, | ||||
|         preferred_version = 3.0 | ||||
|         search_in_source_files = no | ||||
|         skip_unparsable = no | ||||
|       ''; | ||||
|     }; | ||||
|       [contact table] | ||||
|       display = first_name | ||||
|       group_by_addressbook = no | ||||
|       reverse = no | ||||
|       show_nicknames = yes | ||||
|       show_uids = no | ||||
|       sort = last_name | ||||
|       localize_dates = yes | ||||
|       preferred_phone_number_type = pref, cell, home | ||||
|       preferred_email_address_type = pref, home, work | ||||
| 
 | ||||
|       [vcard] | ||||
|       private_objects = Jabber, | ||||
|       preferred_version = 3.0 | ||||
|       search_in_source_files = no | ||||
|       skip_unparsable = no | ||||
|     ''; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -8,299 +8,126 @@ let | |||
|   }; | ||||
| in | ||||
| { | ||||
|   # TODO modularize | ||||
|   #imports = [ ./xdg.nix ]; | ||||
| 
 | ||||
|   services = { | ||||
|     gnome.gnome-keyring.enable = true; | ||||
|     upower.enable = true; | ||||
| 
 | ||||
|     dbus = { | ||||
|       enable = true; | ||||
|       packages = [ pkgs.gnome3.dconf ]; | ||||
|   xsession = { | ||||
|     enable = true; | ||||
|     pointerCursor = { | ||||
|       package = pkgs.capitaine-cursors; | ||||
|       name = "capitaine-cursors"; | ||||
|     }; | ||||
|   }; | ||||
|   # Install themes | ||||
|   home.packages = with pkgs; [ | ||||
|     ayu-theme-gtk | ||||
|     dracula-theme | ||||
|     capitaine-cursors | ||||
|     paper-icon-theme | ||||
|     papirus-icon-theme | ||||
|     libsForQt5.qtstyleplugin-kvantum | ||||
|     qt5ct | ||||
|     gtk-engine-murrine | ||||
|     gtk_engines | ||||
|   ]; | ||||
| 
 | ||||
|   security.pam.services.sddm.enableGnomeKeyring = true; | ||||
|   xresources.properties = { | ||||
|     "*.foreground" = "#95E6CB"; | ||||
|     "*.background" = "#1F2430"; | ||||
|     "*.cursorColor" = "#BAE67E"; | ||||
|     # Black | ||||
|     "*.color0" = "#1F2430"; | ||||
|     "*.color8" = "#F28779"; | ||||
|     # Red           | ||||
|     "*.color1" = "#A6CC70"; | ||||
|     "*.color9" = "#FFCC66"; | ||||
|     # Green         | ||||
|     "*.color2" = "#5CCFE6"; | ||||
|     "*.color10" = "#F29E74"; | ||||
|     # Yellow | ||||
|     "*.color3" = "#77A8D9"; | ||||
|     "*.color11" = "#5C6773"; | ||||
|     # Blue          | ||||
|     "*.color4" = "#707A8C"; | ||||
|     "*.color12" = "#F27983"; | ||||
|     # Magenta       | ||||
|     "*.color5" = "#BAE67E"; | ||||
|     "*.color13" = "#FFD580"; | ||||
|     # Cyan          | ||||
|     "*.color6" = "#73D0FF"; | ||||
|     "*.color14" = "#FFA759"; | ||||
|     # White         | ||||
|     "*.color7" = "#95E6CB"; | ||||
|     "*.color15" = "#CBCCC6"; | ||||
|     # Bold, Italic, Underline | ||||
|     "*.colorBD" = "#e6e1cf"; | ||||
|   }; | ||||
| 
 | ||||
|   home-manager.users.anish.xdg.enable = true; # This doesn't seem to do anything so we have below | ||||
|   home-manager.users.anish.xdg.configHome = "/home/anish/.config"; # TODO bad hard coded | ||||
|   home-manager.users.anish.xdg.configFile = { | ||||
|   # Move required config files around | ||||
|   xdg.enable = true; # This doesn't seem to do anything so we have below | ||||
|   xdg.configHome = "/home/anish/.config"; # TODO bad hardcode | ||||
|   xdg.configFile = { | ||||
|     "Kvantum/Dracula/Dracula.kvconfig".source = "${dracula-gtk}/kde/kvantum/Dracula-purple-solid/Dracula-purple-solid.kvconfig"; | ||||
|     "Kvantum/Dracula/Dracula.svg".source = "${dracula-gtk}/kde/kvantum/Dracula-purple-solid/Dracula-purple-solid.svg"; | ||||
|     "Kvantum/kvantum.kvconfig".text = "[General]\ntheme=Dracula"; | ||||
|   }; | ||||
|   environment.sessionVariables = rec { | ||||
|     XDG_CACHE_HOME = "\${HOME}/.cache"; | ||||
|     XDG_CONFIG_HOME = "\${HOME}/.config"; | ||||
|     XDG_BIN_HOME = "\${HOME}/.local/bin"; | ||||
|     XDG_DATA_HOME = "\${HOME}/.local/share"; | ||||
| 
 | ||||
|     PATH = [ | ||||
|       "\${XDG_BIN_HOME}" | ||||
|     ]; | ||||
|   home.file = { | ||||
|     ".config/bspwm/rc.d/polybar".source = ./run.sh; | ||||
|     ".config/bspwm/bspwmrc".source = ./bspwmrc; | ||||
|     ".config/sxhkdrc".source = ./sxhkdrc; | ||||
|     ".config/rofi/theme" = { | ||||
|       source = ./rofi; | ||||
|       recursive = true; | ||||
|     }; | ||||
|     ".config/polybar" = { | ||||
|       source = ./polybar; | ||||
|       recursive = true; | ||||
|     }; | ||||
|     ".config/dunst/dunstrc".source = ./dunstrc; | ||||
|     ".config/kitty/kitty.conf".source = ./kitty.conf; | ||||
|     ".config/kitty/ayu.conf".source = ./ayu-kitty.conf; | ||||
|     ".config/zathura/zathurarc".source = ./zathurarc; | ||||
|     ".background-image".source = ./background.jpg; | ||||
|     # gtk3 theme | ||||
|     ".config/gtk-3.0/settings.ini".text = '' | ||||
|       [Settings] | ||||
|       gtk-theme-name=Dracula | ||||
|       gtk-icon-theme-name=Paper | ||||
|       gtk-cursor-theme-name=Capitaine Cursors - White | ||||
|       gtk-fallback-icon-theme=gnome | ||||
|       gtk-application-prefer-dark-theme=true | ||||
|       gtk-xft-hinting=1 | ||||
|       gtk-xft-hintstyle=hintfull | ||||
|       gtk-xft-rgba=none | ||||
|     ''; | ||||
|     # GTK2 global theme (widget and icon theme) | ||||
|     ".config/gtk-2.0/gtkrc".text = '' | ||||
|       gtk-theme-name=Ayu-Mirage | ||||
|       gtk-icon-theme-name=Capitaine Cursors - White | ||||
|       gtk-font-name="Sans 10" | ||||
|     ''; | ||||
|     # TODO hardcoded | ||||
|     ".local/bin/passmenu".source = ./bin/passmenu; | ||||
|     ".local/bin/powermenu".source = ./bin/powermenu; | ||||
|     ".local/bin/screenshot".source = ./bin/screenshot; | ||||
|     # ".local/bin/hotplug-monitor.sh".source = ./bin/hotplug-monitor.sh; | ||||
|   }; | ||||
| 
 | ||||
|   nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ | ||||
|     "ripcord" | ||||
|     "vcv-rack" | ||||
|   ]; | ||||
| 
 | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     # TODO move somewhere meaningful | ||||
|     signal-desktop # bridge to sealight? | ||||
|     scrot | ||||
|     ripcord | ||||
|     feh | ||||
|     xkblayout-state | ||||
|     sublime-music | ||||
|     vcv-rack | ||||
|     zathura | ||||
|     calibre | ||||
|     nheko | ||||
|     mpv | ||||
|     scrot | ||||
|     newsflash | ||||
|     zeal | ||||
|     xclip | ||||
|     xdotool | ||||
|     rofi | ||||
|     rofimoji | ||||
|     obs-studio | ||||
|     lightdm | ||||
|     dunst | ||||
|     libnotify | ||||
|     (polybar.override { | ||||
|       pulseSupport = true; | ||||
|       nlSupport = true; | ||||
|     }) | ||||
|     papirus-icon-theme | ||||
|     calendar-cli | ||||
|     wyrd | ||||
|   ]; | ||||
| 
 | ||||
| 
 | ||||
|   location.provider = "geoclue2"; | ||||
|   services = { | ||||
|     redshift = { | ||||
|       enable = true; | ||||
|       temperature = { | ||||
|         day = 5500; | ||||
|         night = 3700; | ||||
|       }; | ||||
|     }; | ||||
|     xserver = { | ||||
|       enable = true; | ||||
|       layout = "us,dvorak"; | ||||
|       desktopManager.wallpaper.mode = "fill"; | ||||
|       displayManager = { | ||||
|         defaultSession = "none+bspwm"; | ||||
|         sessionCommands = '' | ||||
|           ${pkgs.xorg.xrdb}/bin/xrdb -merge <<EOF | ||||
|           #define blk  #1F2430 | ||||
|           #define bblk #F28779 | ||||
|           #define red  #A6CC70 | ||||
|           #define bred #FFCC66 | ||||
|           #define grn  #5CCFE6 | ||||
|           #define bgrn #F29E74 | ||||
|           #define ylw  #77A8D9 | ||||
|           #define bylw #5C6773 | ||||
|           #define blu  #707A8C | ||||
|           #define bblu #F27983 | ||||
|           #define mag  #BAE67E | ||||
|           #define bmag #FFD580 | ||||
|           #define cyn  #73D0FF | ||||
|           #define bcyn #FFA759 | ||||
|           #define wht  #95E6CB | ||||
|           #define bwht #CBCCC6 | ||||
|           #define bg blk | ||||
|           #define fg wht | ||||
|            | ||||
|           *.foreground:  fg | ||||
|           *.background:  bg | ||||
|           *.cursorColor: mag | ||||
|            | ||||
|           *.color0:  blk | ||||
|           *.color8:  bblk | ||||
|           *.color1:  red | ||||
|           *.color9:  bred | ||||
|           *.color2:  grn | ||||
|           *.color10: bgrn | ||||
|           *.color3:  ylw | ||||
|           *.color11: bylw | ||||
|           *.color4:  blu | ||||
|           *.color12: bblu | ||||
|           *.color5:  mag | ||||
|           *.color13: bmag | ||||
|           *.color6:  cyn | ||||
|           *.color14: bcyn | ||||
|           *.color7:  wht | ||||
|           *.color15: bwht | ||||
|            | ||||
|           ! greys | ||||
|           *.color234: #1E2029 | ||||
|           *.color235: #282a36 | ||||
|           *.color236: #373844 | ||||
|           *.color237: #44475a | ||||
|           *.color239: #565761 | ||||
|           *.color240: #6272a4 | ||||
|           *.color241: #b6b6b2 | ||||
|           EOF | ||||
| 
 | ||||
|           # hotplug | ||||
|           connect() { | ||||
|               xrandr --output HDMI-2 --same-as eDP-1 | ||||
|           } | ||||
| 
 | ||||
|           disconnect() { | ||||
|               xrandr --output HDMI-2 --off | ||||
|           } | ||||
| 
 | ||||
|           xrandr | grep "HDMI-2 connected" &>>/dev/null && connect || disconnect | ||||
|         ''; | ||||
|         lightdm.enable = true; | ||||
|         lightdm.greeters.mini.enable = true; | ||||
|         lightdm.greeters.mini.user = "anish"; # TODO hardcoded | ||||
|         lightdm.background = "/etc/nixos/users/profiles/desktop/background.jpg"; | ||||
|         lightdm.greeters.mini.extraConfig = '' | ||||
|           text-color = "#ff79c6" | ||||
|           password-background-color = "#1E2029" | ||||
|           window-color = "#181a23" | ||||
|           border-color = "#181a23" | ||||
|           active-monitor=1 | ||||
|         ''; | ||||
|       }; | ||||
|       windowManager.bspwm.enable = true; | ||||
|       #windowManager.bspwm.configFile = "/home/anish/.bspwm/bspwmrc"; | ||||
|       windowManager.bspwm.sxhkd.configFile = "/home/anish/.config/sxhkdrc"; | ||||
|     }; | ||||
|   qt = { | ||||
|     enable = true; | ||||
|     platformTheme = "gtk"; | ||||
|     style = { name = "qt5ct-style"; }; | ||||
|   }; | ||||
| 
 | ||||
|   fonts.fonts = with pkgs; [ | ||||
|     fira-code | ||||
|     fira-code-symbols | ||||
|     hermit | ||||
|     #hack | ||||
|     siji | ||||
|     font-awesome-ttf | ||||
|     proggyfonts | ||||
|     (nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Iosevka" ]; }) | ||||
|   ]; | ||||
| 
 | ||||
|   home-manager.users.anish = { | ||||
|     xsession = { | ||||
|       enable = true; | ||||
|       pointerCursor = { | ||||
|         package = pkgs.capitaine-cursors; | ||||
|         name = "capitaine-cursors"; | ||||
|       }; | ||||
|     }; | ||||
|     # Install themes | ||||
|     home.packages = with pkgs; [ | ||||
|       ayu-theme-gtk | ||||
|       dracula-theme | ||||
|       capitaine-cursors | ||||
|       paper-icon-theme | ||||
|       papirus-icon-theme | ||||
|       libsForQt5.qtstyleplugin-kvantum | ||||
|       qt5ct | ||||
|       gtk-engine-murrine | ||||
|       gtk_engines | ||||
|     ]; | ||||
| 
 | ||||
|     xresources.properties = { | ||||
|       "*.foreground" = "#95E6CB"; | ||||
|       "*.background" = "#1F2430"; | ||||
|       "*.cursorColor" = "#BAE67E"; | ||||
|       # Black | ||||
|       "*.color0" = "#1F2430"; | ||||
|       "*.color8" = "#F28779"; | ||||
|       # Red           | ||||
|       "*.color1" = "#A6CC70"; | ||||
|       "*.color9" = "#FFCC66"; | ||||
|       # Green         | ||||
|       "*.color2" = "#5CCFE6"; | ||||
|       "*.color10" = "#F29E74"; | ||||
|       # Yellow | ||||
|       "*.color3" = "#77A8D9"; | ||||
|       "*.color11" = "#5C6773"; | ||||
|       # Blue          | ||||
|       "*.color4" = "#707A8C"; | ||||
|       "*.color12" = "#F27983"; | ||||
|       # Magenta       | ||||
|       "*.color5" = "#BAE67E"; | ||||
|       "*.color13" = "#FFD580"; | ||||
|       # Cyan          | ||||
|       "*.color6" = "#73D0FF"; | ||||
|       "*.color14" = "#FFA759"; | ||||
|       # White         | ||||
|       "*.color7" = "#95E6CB"; | ||||
|       "*.color15" = "#CBCCC6"; | ||||
|       # Bold, Italic, Underline | ||||
|       "*.colorBD" = "#e6e1cf"; | ||||
|     }; | ||||
| 
 | ||||
|     # Move required config files around | ||||
|     home.file = { | ||||
|       ".config/bspwm/rc.d/polybar".source = ./run.sh; | ||||
|       ".config/bspwm/bspwmrc".source = ./bspwmrc; | ||||
|       ".config/sxhkdrc".source = ./sxhkdrc; | ||||
|       ".config/rofi/theme" = { | ||||
|         source = ./rofi; | ||||
|         recursive = true; | ||||
|       }; | ||||
|       ".config/polybar" = { | ||||
|         source = ./polybar; | ||||
|         recursive = true; | ||||
|       }; | ||||
|       ".config/dunst/dunstrc".source = ./dunstrc; | ||||
|       ".config/kitty/kitty.conf".source = ./kitty.conf; | ||||
|       ".config/kitty/ayu.conf".source = ./ayu-kitty.conf; | ||||
|       ".config/zathura/zathurarc".source = ./zathurarc; | ||||
|       ".background-image".source = ./background.jpg; | ||||
|       # gtk3 theme | ||||
|       ".config/gtk-3.0/settings.ini".text = '' | ||||
|         [Settings] | ||||
|         gtk-theme-name=Dracula | ||||
|         gtk-icon-theme-name=Paper | ||||
|         gtk-cursor-theme-name=Capitaine Cursors - White | ||||
|         gtk-fallback-icon-theme=gnome | ||||
|         gtk-application-prefer-dark-theme=true | ||||
|         gtk-xft-hinting=1 | ||||
|         gtk-xft-hintstyle=hintfull | ||||
|         gtk-xft-rgba=none | ||||
|       ''; | ||||
|       # GTK2 global theme (widget and icon theme) | ||||
|       ".config/gtk-2.0/gtkrc".text = '' | ||||
|         gtk-theme-name=Ayu-Mirage | ||||
|         gtk-icon-theme-name=Capitaine Cursors - White | ||||
|         gtk-font-name="Sans 10" | ||||
|       ''; | ||||
|       # TODO hardcoded | ||||
|       ".local/bin/passmenu".source = ./bin/passmenu; | ||||
|       ".local/bin/powermenu".source = ./bin/powermenu; | ||||
|       ".local/bin/screenshot".source = ./bin/screenshot; | ||||
|       # ".local/bin/hotplug-monitor.sh".source = ./bin/hotplug-monitor.sh; | ||||
|     }; | ||||
| 
 | ||||
|     qt = { | ||||
|       enable = true; | ||||
|       platformTheme = "gtk"; | ||||
|       style = { name = "qt5ct-style"; }; | ||||
|     }; | ||||
| 
 | ||||
|     # Compositor | ||||
|     services.picom = { | ||||
|       enable = true; | ||||
|       fade = true; | ||||
|       fadeDelta = 1; | ||||
|       fadeSteps = [ "0.01" "0.022" ]; | ||||
|       shadow = true; | ||||
|       shadowOffsets = [ (-10) (-10) ]; | ||||
|       shadowOpacity = "0.22"; | ||||
|       # activeOpacity = "1.00";  | ||||
|       # inactiveOpacity = "0.92";  | ||||
|       extraOptions = ''  | ||||
|   # Compositor | ||||
|   services.picom = { | ||||
|     enable = true; | ||||
|     fade = true; | ||||
|     fadeDelta = 1; | ||||
|     fadeSteps = [ "0.01" "0.022" ]; | ||||
|     shadow = true; | ||||
|     shadowOffsets = [ (-10) (-10) ]; | ||||
|     shadowOpacity = "0.22"; | ||||
|     # activeOpacity = "1.00";  | ||||
|     # inactiveOpacity = "0.92";  | ||||
|     extraOptions = ''  | ||||
|          shadow-radius = 12;   | ||||
|          # blur-background = true;   | ||||
|          # blur-background-frame = true;   | ||||
|  | @ -308,11 +135,10 @@ in | |||
|          blur-kern = "7x7box";  | ||||
|          blur-strength = 320;   | ||||
|        ''; | ||||
|     }; | ||||
| 
 | ||||
|     programs.autorandr.enable = true; | ||||
|     services.udiskie.automount = true; | ||||
| 
 | ||||
|     services.mpris-proxy.enable = true; # bluetooth media control | ||||
|   }; | ||||
| 
 | ||||
|   programs.autorandr.enable = true; | ||||
|   services.udiskie.automount = true; | ||||
| 
 | ||||
|   services.mpris-proxy.enable = true; # bluetooth media control | ||||
| } | ||||
|  |  | |||
|  | @ -1,295 +1,293 @@ | |||
| { pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   age.secrets.fastmail.file = "/etc/nixos/secrets/fastmail.age"; | ||||
|   age.secrets.fastmail.owner = "anish"; | ||||
|   home-manager.users.anish = { | ||||
|     services.mbsync = { | ||||
|       enable = true; | ||||
|       frequency = "*:0/30"; | ||||
|       #postExec = "${pkgs.notmuch}/bin/notmuch new"; | ||||
|     }; | ||||
|     programs.mbsync.enable = true; | ||||
|     programs.msmtp.enable = true; | ||||
|     programs.notmuch = { | ||||
|       enable = true; | ||||
|     }; | ||||
|     home.file.".mailcap".text = '' | ||||
|       text/html; firefox %s | ||||
|       application/pdf; zathura %s | ||||
|       image/png; feh %s | ||||
|       image/jpeg; feh %s | ||||
|     ''; | ||||
|     programs.neomutt = { | ||||
|       enable = true; | ||||
|       extraConfig = '' | ||||
|         # Shamelessly Stolen from https://gideonwolfe.com/posts/workflow/neomutt/intro/ | ||||
|         # set editor to neovim | ||||
|         set editor = "nvim +':set textwidth=0'" | ||||
|   #age.secrets.fastmail.file = "/etc/nixos/secrets/fastmail.age"; | ||||
|   #age.secrets.fastmail.owner = "anish"; | ||||
|   services.mbsync = { | ||||
|     enable = true; | ||||
|     frequency = "*:0/30"; | ||||
|     #postExec = "${pkgs.notmuch}/bin/notmuch new"; | ||||
|   }; | ||||
|   programs.mbsync.enable = true; | ||||
|   programs.msmtp.enable = true; | ||||
|   programs.notmuch = { | ||||
|     enable = true; | ||||
|   }; | ||||
|   home.file.".mailcap".text = '' | ||||
|     text/html; firefox %s | ||||
|     application/pdf; zathura %s | ||||
|     image/png; feh %s | ||||
|     image/jpeg; feh %s | ||||
|   ''; | ||||
|   programs.neomutt = { | ||||
|     enable = true; | ||||
|     extraConfig = '' | ||||
|       # Shamelessly Stolen from https://gideonwolfe.com/posts/workflow/neomutt/intro/ | ||||
|       # set editor to neovim | ||||
|       set editor = "nvim +':set textwidth=0'" | ||||
| 
 | ||||
|         #set virtual_spoolfile=yes | ||||
|         set folder="~/Mail/anish" | ||||
|         set mbox_type = Maildir | ||||
|         mailboxes `find ~/Mail/anish/* -maxdepth 0 -type d | grep -v "tmp\|new\|cur" | sed 's|/home/anish/Mail/|=\"|g' | sed 's|$|\"|g' | tr '\n' ' '` | ||||
|       #set virtual_spoolfile=yes | ||||
|       set folder="~/Mail/anish" | ||||
|       set mbox_type = Maildir | ||||
|       mailboxes `find ~/Mail/anish/* -maxdepth 0 -type d | grep -v "tmp\|new\|cur" | sed 's|/home/anish/Mail/|=\"|g' | sed 's|$|\"|g' | tr '\n' ' '` | ||||
|              | ||||
|         ## Folder with emails | ||||
|         #set folder = "~/Mail/anish" | ||||
|         # Type of mailbox | ||||
|         # Directory to poll for new mail | ||||
|         #set spoolfile = +Inbox | ||||
|         # Directory to save sent messages into | ||||
|         #set record = +Sent | ||||
|         # Sets the drafts folder | ||||
|         #set postponed = +Drafts | ||||
|         # File that headers will be cached | ||||
|         # set header_cache = ~/.cache/mutt | ||||
|       ## Folder with emails | ||||
|       #set folder = "~/Mail/anish" | ||||
|       # Type of mailbox | ||||
|       # Directory to poll for new mail | ||||
|       #set spoolfile = +Inbox | ||||
|       # Directory to save sent messages into | ||||
|       #set record = +Sent | ||||
|       # Sets the drafts folder | ||||
|       #set postponed = +Drafts | ||||
|       # File that headers will be cached | ||||
|       # set header_cache = ~/.cache/mutt | ||||
| 
 | ||||
|         set my_name = "Anish" | ||||
|         set imap_check_subscribed | ||||
|       set my_name = "Anish" | ||||
|       set imap_check_subscribed | ||||
| 
 | ||||
|         # Set preffered view modes | ||||
|         auto_view text/html text/calendar application/ics # view html automatically | ||||
|         alternative_order text/plain text/enriched text/html text/* | ||||
|       # Set preffered view modes | ||||
|       auto_view text/html text/calendar application/ics # view html automatically | ||||
|       alternative_order text/plain text/enriched text/html text/* | ||||
| 
 | ||||
|         # main options | ||||
|         #set envelope_from | ||||
|         #set edit_headers                     # show headers when composing | ||||
|         #set fast_reply                       # skip to compose when replying | ||||
|         #set askcc                            # ask for CC: | ||||
|         #set fcc_attach                       # save attachments with the body | ||||
|         #set forward_format = "Fwd: %s"       # format of subject when forwarding | ||||
|         #set forward_decode                   # decode when forwarding | ||||
|         #set attribution = "On %d, %n wrote:" # format of quoting header | ||||
|         #set reply_to                         # reply to Reply to: field | ||||
|         #set reverse_name                     # reply as whomever it was to | ||||
|         #set include                          # include message in replies | ||||
|         #set forward_quote                    # include message in forwards | ||||
|         #set text_flowed | ||||
|         #unset sig_dashes                     # no dashes before sig | ||||
|         #unset mime_forward                   # forward attachments as part of body | ||||
|         #unset help                           # No help bar at the top of index | ||||
|         ## set status_on_top                    # Status bar on top of index | ||||
|         #set tmpdir = ~/Programs/neomutt/temp # where to keep temp files | ||||
|       # main options | ||||
|       #set envelope_from | ||||
|       #set edit_headers                     # show headers when composing | ||||
|       #set fast_reply                       # skip to compose when replying | ||||
|       #set askcc                            # ask for CC: | ||||
|       #set fcc_attach                       # save attachments with the body | ||||
|       #set forward_format = "Fwd: %s"       # format of subject when forwarding | ||||
|       #set forward_decode                   # decode when forwarding | ||||
|       #set attribution = "On %d, %n wrote:" # format of quoting header | ||||
|       #set reply_to                         # reply to Reply to: field | ||||
|       #set reverse_name                     # reply as whomever it was to | ||||
|       #set include                          # include message in replies | ||||
|       #set forward_quote                    # include message in forwards | ||||
|       #set text_flowed | ||||
|       #unset sig_dashes                     # no dashes before sig | ||||
|       #unset mime_forward                   # forward attachments as part of body | ||||
|       #unset help                           # No help bar at the top of index | ||||
|       ## set status_on_top                    # Status bar on top of index | ||||
|       #set tmpdir = ~/Programs/neomutt/temp # where to keep temp files | ||||
| 
 | ||||
|         unset confirmappend      # don't ask, just do! | ||||
|         set quit                 # don't ask, just do!! | ||||
|         unset mark_old           # read/new is good enough for me | ||||
|         #set beep_new             # bell on new mails | ||||
|         set pipe_decode          # strip headers and eval mimes when piping | ||||
|         set thorough_search      # strip headers and eval mimes before searching | ||||
|         set timeout = 0 | ||||
|       unset confirmappend      # don't ask, just do! | ||||
|       set quit                 # don't ask, just do!! | ||||
|       unset mark_old           # read/new is good enough for me | ||||
|       #set beep_new             # bell on new mails | ||||
|       set pipe_decode          # strip headers and eval mimes when piping | ||||
|       set thorough_search      # strip headers and eval mimes before searching | ||||
|       set timeout = 0 | ||||
| 
 | ||||
|         # status bar, date format, finding stuff etc. | ||||
|         set status_chars = " *%A" | ||||
|         set status_format = "[ Folder: %f ] [%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]%>─%?p?( %p postponed )?" | ||||
|         set date_format = "%d.%m.%Y %H:%M" | ||||
|         #set sort = threads | ||||
|         #set sort_aux = reverse-last-date-received | ||||
|         #set uncollapse_jump | ||||
|         #set sort_re | ||||
|         set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*" | ||||
|         set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+" | ||||
|         set send_charset = "utf-8:iso-8859-1:us-ascii" | ||||
|         set charset = "utf-8" | ||||
|         set arrow_cursor = "no" # Change `color indicator` depending  | ||||
|       # status bar, date format, finding stuff etc. | ||||
|       set status_chars = " *%A" | ||||
|       set status_format = "[ Folder: %f ] [%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]%>─%?p?( %p postponed )?" | ||||
|       set date_format = "%d.%m.%Y %H:%M" | ||||
|       #set sort = threads | ||||
|       #set sort_aux = reverse-last-date-received | ||||
|       #set uncollapse_jump | ||||
|       #set sort_re | ||||
|       set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*" | ||||
|       set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+" | ||||
|       set send_charset = "utf-8:iso-8859-1:us-ascii" | ||||
|       set charset = "utf-8" | ||||
|       set arrow_cursor = "no" # Change `color indicator` depending  | ||||
| 
 | ||||
|         # notmuch shortcuts | ||||
|         # Points to the notmuch directory | ||||
|         set nm_default_url = "notmuch://$HOME/Mail/anish" | ||||
|         # Makes notmuch return threads rather than messages | ||||
|         set nm_query_type = "threads" | ||||
|         # Binding for notmuch search | ||||
|         bind index \\ vfolder-from-query | ||||
|       # notmuch shortcuts | ||||
|       # Points to the notmuch directory | ||||
|       set nm_default_url = "notmuch://$HOME/Mail/anish" | ||||
|       # Makes notmuch return threads rather than messages | ||||
|       set nm_query_type = "threads" | ||||
|       # Binding for notmuch search | ||||
|       bind index \\ vfolder-from-query | ||||
| 
 | ||||
|         # Pager View Options | ||||
|         set pager_index_lines = 10  # Shows 10 lines of index when pager is active | ||||
|         set pager_context = 3 | ||||
|         set pager_stop | ||||
|         set menu_scroll | ||||
|         set tilde | ||||
|         unset markers | ||||
|       # Pager View Options | ||||
|       set pager_index_lines = 10  # Shows 10 lines of index when pager is active | ||||
|       set pager_context = 3 | ||||
|       set pager_stop | ||||
|       set menu_scroll | ||||
|       set tilde | ||||
|       unset markers | ||||
| 
 | ||||
|         #set header_cache = "~/.cache/mutt" | ||||
|         #set message_cachedir = "~/.cache/mutt" | ||||
|       #set header_cache = "~/.cache/mutt" | ||||
|       #set message_cachedir = "~/.cache/mutt" | ||||
| 
 | ||||
|         set query_command = "khard email --parsable --search-in-source-files '%s'" | ||||
|       set query_command = "khard email --parsable --search-in-source-files '%s'" | ||||
| 
 | ||||
|         ### Color Settings | ||||
|         # Header colors: | ||||
|         color header blue default ".*" | ||||
|         color header brightmagenta default "^(From)" | ||||
|         color header brightcyan default "^(Subject)" | ||||
|         color header brightwhite default "^(CC|BCC)" | ||||
|       ### Color Settings | ||||
|       # Header colors: | ||||
|       color header blue default ".*" | ||||
|       color header brightmagenta default "^(From)" | ||||
|       color header brightcyan default "^(Subject)" | ||||
|       color header brightwhite default "^(CC|BCC)" | ||||
| 
 | ||||
|         mono bold bold | ||||
|         mono underline underline | ||||
|         mono indicator reverse | ||||
|         mono error bold | ||||
|         color normal default default | ||||
|         color indicator brightyellow default # currently selected message. default makes bar clear, disabled arrow to save space. | ||||
|         color sidebar_highlight red default | ||||
|         color sidebar_divider brightblack black | ||||
|         color sidebar_flagged red black | ||||
|         color sidebar_new green black | ||||
|         color normal brightyellow default | ||||
|         color error red default | ||||
|         color tilde black default | ||||
|         color message cyan default | ||||
|         color markers red white | ||||
|         color attachment white default | ||||
|         color search brightmagenta default | ||||
|         color status brightyellow black | ||||
|         color hdrdefault brightgreen default | ||||
|         color quoted green default | ||||
|         color quoted1 blue default | ||||
|         color quoted2 cyan default | ||||
|         color quoted3 yellow default | ||||
|         color quoted4 red default | ||||
|         color quoted5 brightred default | ||||
|         color signature brightgreen default | ||||
|         color bold black default | ||||
|         color underline black default | ||||
|         color normal default default | ||||
|       mono bold bold | ||||
|       mono underline underline | ||||
|       mono indicator reverse | ||||
|       mono error bold | ||||
|       color normal default default | ||||
|       color indicator brightyellow default # currently selected message. default makes bar clear, disabled arrow to save space. | ||||
|       color sidebar_highlight red default | ||||
|       color sidebar_divider brightblack black | ||||
|       color sidebar_flagged red black | ||||
|       color sidebar_new green black | ||||
|       color normal brightyellow default | ||||
|       color error red default | ||||
|       color tilde black default | ||||
|       color message cyan default | ||||
|       color markers red white | ||||
|       color attachment white default | ||||
|       color search brightmagenta default | ||||
|       color status brightyellow black | ||||
|       color hdrdefault brightgreen default | ||||
|       color quoted green default | ||||
|       color quoted1 blue default | ||||
|       color quoted2 cyan default | ||||
|       color quoted3 yellow default | ||||
|       color quoted4 red default | ||||
|       color quoted5 brightred default | ||||
|       color signature brightgreen default | ||||
|       color bold black default | ||||
|       color underline black default | ||||
|       color normal default default | ||||
| 
 | ||||
|         color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses | ||||
|         color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL | ||||
|         color body green default "\`[^\`]*\`" # Green text between ` and ` | ||||
|         color body brightblue default "^# \.*" # Headings as bold blue | ||||
|         color body brightcyan default "^## \.*" # Subheadings as bold cyan | ||||
|         color body brightgreen default "^### \.*" # Subsubheadings as bold green | ||||
|         color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow | ||||
|         color body brightcyan default "[;:][-o][)/(|]" # emoticons | ||||
|         color body brightcyan default "[;:][)(|]" # emoticons | ||||
|         color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon? | ||||
|         color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon? | ||||
|         color body red default "(BAD signature)" | ||||
|         color body cyan default "(Good signature)" | ||||
|         color body brightblack default "^gpg: Good signature .*" | ||||
|         color body brightyellow default "^gpg: " | ||||
|         color body brightyellow red "^gpg: BAD signature from.*" | ||||
|         mono body bold "^gpg: Good signature" | ||||
|         mono body bold "^gpg: BAD signature from.*" | ||||
|         color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" | ||||
|       color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses | ||||
|       color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL | ||||
|       color body green default "\`[^\`]*\`" # Green text between ` and ` | ||||
|       color body brightblue default "^# \.*" # Headings as bold blue | ||||
|       color body brightcyan default "^## \.*" # Subheadings as bold cyan | ||||
|       color body brightgreen default "^### \.*" # Subsubheadings as bold green | ||||
|       color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow | ||||
|       color body brightcyan default "[;:][-o][)/(|]" # emoticons | ||||
|       color body brightcyan default "[;:][)(|]" # emoticons | ||||
|       color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon? | ||||
|       color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon? | ||||
|       color body red default "(BAD signature)" | ||||
|       color body cyan default "(Good signature)" | ||||
|       color body brightblack default "^gpg: Good signature .*" | ||||
|       color body brightyellow default "^gpg: " | ||||
|       color body brightyellow red "^gpg: BAD signature from.*" | ||||
|       mono body bold "^gpg: Good signature" | ||||
|       mono body bold "^gpg: BAD signature from.*" | ||||
|       color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" | ||||
| 
 | ||||
|         # Default index colors: | ||||
|         color index yellow default '.*' | ||||
|         color index_author red default '.*' | ||||
|         color index_number blue default | ||||
|         color index_subject cyan default '.*' | ||||
|       # Default index colors: | ||||
|       color index yellow default '.*' | ||||
|       color index_author red default '.*' | ||||
|       color index_number blue default | ||||
|       color index_subject cyan default '.*' | ||||
| 
 | ||||
|         # For new mail: | ||||
|         color index brightyellow black "~N" | ||||
|         color index_author brightred black "~N" | ||||
|         color index_subject brightcyan black "~N" | ||||
|       # For new mail: | ||||
|       color index brightyellow black "~N" | ||||
|       color index_author brightred black "~N" | ||||
|       color index_subject brightcyan black "~N" | ||||
| 
 | ||||
|         color progress black cyan | ||||
|       color progress black cyan | ||||
| 
 | ||||
|         ### Mappings Settings | ||||
|       ### Mappings Settings | ||||
|                    | ||||
|         # General rebindings | ||||
|         bind attach <return> view-mailcap | ||||
|         bind attach l view-mailcap | ||||
|         bind editor <space> noop | ||||
|         bind pager c imap-fetch-mail | ||||
|         bind index G last-entry | ||||
|         bind index g noop | ||||
|         bind index gg first-entry | ||||
|         bind pager,attach h exit | ||||
|         bind pager j next-line | ||||
|         bind pager k previous-line | ||||
|         bind pager l view-attachments | ||||
|         bind index D delete-message | ||||
|         bind index U undelete-message | ||||
|         bind index L limit | ||||
|         bind index h noop | ||||
|         bind index l display-message | ||||
|         bind browser h goto-parent | ||||
|         bind browser l select-entry | ||||
|         bind pager,browser gg top-page | ||||
|         bind pager,browser G bottom-page | ||||
|         bind index,pager,browser d half-down | ||||
|         bind index,pager,browser u half-up | ||||
|         bind index,pager R group-reply | ||||
|         bind index \031 previous-undeleted  # Mouse wheel | ||||
|         bind index \005 next-undeleted    # Mouse wheel | ||||
|         bind pager \031 previous-line    # Mouse wheel | ||||
|         bind pager \005 next-line    # Mouse wheel | ||||
|         bind editor <Tab> complete-query | ||||
|       # General rebindings | ||||
|       bind attach <return> view-mailcap | ||||
|       bind attach l view-mailcap | ||||
|       bind editor <space> noop | ||||
|       bind pager c imap-fetch-mail | ||||
|       bind index G last-entry | ||||
|       bind index g noop | ||||
|       bind index gg first-entry | ||||
|       bind pager,attach h exit | ||||
|       bind pager j next-line | ||||
|       bind pager k previous-line | ||||
|       bind pager l view-attachments | ||||
|       bind index D delete-message | ||||
|       bind index U undelete-message | ||||
|       bind index L limit | ||||
|       bind index h noop | ||||
|       bind index l display-message | ||||
|       bind browser h goto-parent | ||||
|       bind browser l select-entry | ||||
|       bind pager,browser gg top-page | ||||
|       bind pager,browser G bottom-page | ||||
|       bind index,pager,browser d half-down | ||||
|       bind index,pager,browser u half-up | ||||
|       bind index,pager R group-reply | ||||
|       bind index \031 previous-undeleted  # Mouse wheel | ||||
|       bind index \005 next-undeleted    # Mouse wheel | ||||
|       bind pager \031 previous-line    # Mouse wheel | ||||
|       bind pager \005 next-line    # Mouse wheel | ||||
|       bind editor <Tab> complete-query | ||||
| 
 | ||||
| 
 | ||||
|         # sidebar mappings | ||||
|         bind index,pager \Ck sidebar-prev | ||||
|         bind index,pager \Cj sidebar-next | ||||
|         bind index,pager \Co sidebar-open | ||||
|         bind index,pager \Cp sidebar-prev-new | ||||
|         bind index,pager \Cn sidebar-next-new | ||||
|         bind index,pager B sidebar-toggle-visible | ||||
|       # sidebar mappings | ||||
|       bind index,pager \Ck sidebar-prev | ||||
|       bind index,pager \Cj sidebar-next | ||||
|       bind index,pager \Co sidebar-open | ||||
|       bind index,pager \Cp sidebar-prev-new | ||||
|       bind index,pager \Cn sidebar-next-new | ||||
|       bind index,pager B sidebar-toggle-visible | ||||
| 
 | ||||
|         # global index and pager shortcuts | ||||
|         bind index,pager @ compose-to-sender | ||||
|         bind index,pager D purge-message | ||||
|         bind index <tab> sync-mailbox | ||||
|         bind index <space> collapse-thread | ||||
|       # global index and pager shortcuts | ||||
|       bind index,pager @ compose-to-sender | ||||
|       bind index,pager D purge-message | ||||
|       bind index <tab> sync-mailbox | ||||
|       bind index <space> collapse-thread | ||||
| 
 | ||||
|         # Email completion bindings | ||||
|         bind editor <Tab> complete-query | ||||
|         bind editor ^T complete | ||||
|       # Email completion bindings | ||||
|       bind editor <Tab> complete-query | ||||
|       bind editor ^T complete | ||||
| 
 | ||||
|         # Press A to add contact to Khard address book | ||||
|         macro index,pager A \ | ||||
|         "<pipe-message>khard add-email<return>" \ | ||||
|         "add the sender email address to khard" | ||||
|       ''; | ||||
|     }; | ||||
|     services.imapnotify.enable = true; | ||||
|     home.packages = [ pkgs.neomutt pkgs.evolution ]; | ||||
|       # Press A to add contact to Khard address book | ||||
|       macro index,pager A \ | ||||
|       "<pipe-message>khard add-email<return>" \ | ||||
|       "add the sender email address to khard" | ||||
|     ''; | ||||
|   }; | ||||
|   services.imapnotify.enable = true; | ||||
|   home.packages = [ pkgs.neomutt pkgs.evolution ]; | ||||
| 
 | ||||
|     accounts.email = { | ||||
|       accounts.anish = { | ||||
|         primary = true; | ||||
|         address = "anish@lakhwara.com"; | ||||
|         #alias = [ "*@lakhwara.com" ]; | ||||
|         #gpg = { | ||||
|         #  key = ""; | ||||
|         #  signByDefault = true; | ||||
|         #}; | ||||
|         imap.host = "imap.fastmail.com"; | ||||
|         mbsync = { | ||||
|           enable = true; | ||||
|           create = "both"; | ||||
|           expunge = "both"; | ||||
|           remove = "both"; | ||||
|           extraConfig.local.subFolders = "Verbatim"; | ||||
|         }; | ||||
|         imapnotify = { | ||||
|           enable = true; | ||||
|           boxes = [ "Inbox" ]; | ||||
|           onNotify = "${pkgs.isync}/bin/mbsync anish && ${pkgs.notmuch}/bin/notmuch index"; | ||||
|           onNotifyPost = { | ||||
|             mail = "${pkgs.libnotify}/bin/notify-send -a mail 'email: new in %s'"; | ||||
|             #update = "${pkgs.libnotify}/bin/notify-send -a mail 'email: update %s'"; | ||||
|             #expunge = "${pkgs.libnotify}/bin/notify-send -a mail 'email: expunge %s'"; | ||||
|           }; | ||||
|         }; | ||||
|         msmtp.enable = true; | ||||
|         notmuch.enable = true; | ||||
|         realName = "Anish Lakhwara"; | ||||
|         signature = { | ||||
|           text = '' | ||||
|             Thanks, | ||||
|             Anish | ||||
|           ''; | ||||
|           showSignature = "append"; | ||||
|         }; | ||||
|         passwordCommand = "${pkgs.coreutils}/bin/cat /run/agenix/fastmail"; | ||||
|         smtp = { | ||||
|           host = "fastmail.com"; | ||||
|         }; | ||||
|         userName = "anish@lakhwara.com"; | ||||
|         neomutt = { | ||||
|           enable = true; | ||||
|   accounts.email = { | ||||
|     accounts.anish = { | ||||
|       primary = true; | ||||
|       address = "anish@lakhwara.com"; | ||||
|       #alias = [ "*@lakhwara.com" ]; | ||||
|       #gpg = { | ||||
|       #  key = ""; | ||||
|       #  signByDefault = true; | ||||
|       #}; | ||||
|       imap.host = "imap.fastmail.com"; | ||||
|       mbsync = { | ||||
|         enable = true; | ||||
|         create = "both"; | ||||
|         expunge = "both"; | ||||
|         remove = "both"; | ||||
|         extraConfig.local.subFolders = "Verbatim"; | ||||
|       }; | ||||
|       imapnotify = { | ||||
|         enable = true; | ||||
|         boxes = [ "Inbox" ]; | ||||
|         onNotify = "${pkgs.isync}/bin/mbsync anish && ${pkgs.notmuch}/bin/notmuch index"; | ||||
|         onNotifyPost = { | ||||
|           mail = "${pkgs.libnotify}/bin/notify-send -a mail 'email: new in %s'"; | ||||
|           #update = "${pkgs.libnotify}/bin/notify-send -a mail 'email: update %s'"; | ||||
|           #expunge = "${pkgs.libnotify}/bin/notify-send -a mail 'email: expunge %s'"; | ||||
|         }; | ||||
|       }; | ||||
|       msmtp.enable = true; | ||||
|       notmuch.enable = true; | ||||
|       realName = "Anish Lakhwara"; | ||||
|       signature = { | ||||
|         text = '' | ||||
|           Thanks, | ||||
|           Anish | ||||
|         ''; | ||||
|         showSignature = "append"; | ||||
|       }; | ||||
|       passwordCommand = "${pkgs.coreutils}/bin/cat /run/agenix/fastmail"; | ||||
|       smtp = { | ||||
|         host = "fastmail.com"; | ||||
|       }; | ||||
|       userName = "anish@lakhwara.com"; | ||||
|       neomutt = { | ||||
|         enable = true; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,105 +1,105 @@ | |||
| {pkgs, ... }: | ||||
| { pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   home-manager.users.anish = { | ||||
|     programs.browserpass.enable = true; | ||||
|     programs.browserpass.browsers = [ "firefox" ]; | ||||
|     #env.XDG_DEXSTOP_DIR = "$HOME/"; | ||||
|     programs.firefox.profiles.anish.userChrome = (builtins.readFile ./userChrome.css); | ||||
|     programs.firefox.profiles.anish.settings = { | ||||
|           "devtools.theme" = "dark"; | ||||
|           # Enable userContent.css and userChrome.css for our theme modules | ||||
|           "toolkit.legacyUserProfileCustomizations.stylesheets" = true; | ||||
|           # Stop creating ~/Downloads! | ||||
|           "browser.download.dir" = "/home/anish/downloads"; # TODO Don't hardcode this! | ||||
|           # Don't use the built-in password manager; a nixos user is more likely | ||||
|           # using an external one (you are using one, right?). | ||||
|           #"signon.rememberSignons" = false; | ||||
|           # Do not check if Firefox is the default browser | ||||
|           "browser.shell.checkDefaultBrowser" = false; | ||||
|           # Disable the "new tab page" feature and show a blank tab instead | ||||
|           # https://wiki.mozilla.org/Privacy/Reviews/New_Tab | ||||
|           # https://support.mozilla.org/en-US/kb/new-tab-page-show-hide-and-customize-top-sites#w_how-do-i-turn-the-new-tab-page-off | ||||
|           "browser.newtabpage.enabled" = false; | ||||
|           "browser.newtab.url" = "about:blank"; | ||||
|           # Disable Activity Stream | ||||
|           # https://wiki.mozilla.org/Firefox/Activity_Stream | ||||
|           "browser.newtabpage.activity-stream.enabled" = false; | ||||
|           # Disable new tab tile ads & preload | ||||
|           # http://www.thewindowsclub.com/disable-remove-ad-tiles-from-firefox | ||||
|           # http://forums.mozillazine.org/viewtopic.php?p=13876331#p13876331 | ||||
|           # https://wiki.mozilla.org/Tiles/Technical_Documentation#Ping | ||||
|           # https://gecko.readthedocs.org/en/latest/browser/browser/DirectoryLinksProvider.html#browser-newtabpage-directory-source | ||||
|           # https://gecko.readthedocs.org/en/latest/browser/browser/DirectoryLinksProvider.html#browser-newtabpage-directory-ping | ||||
|           "browser.newtabpage.enhanced" = false; | ||||
|           "browser.newtab.preload" = false; | ||||
|           "browser.newtabpage.directory.ping" = ""; | ||||
|           "browser.newtabpage.directory.source" = "data:text/plain,{}"; | ||||
|           # Disable some not so useful functionality. | ||||
|           "media.videocontrols.picture-in-picture.video-toggle.enabled" = false; | ||||
|           "extensions.htmlaboutaddons.recommendations.enabled" = false; | ||||
|           "extensions.htmlaboutaddons.discover.enabled" = false; | ||||
|           "extensions.pocket.enabled" = false; | ||||
|           "app.normandy.enabled" = false; | ||||
|           "app.normandy.api_url" = ""; | ||||
|           "extensions.shield-recipe-client.enabled" = false; | ||||
|           "app.shield.optoutstudies.enabled" = false; | ||||
|           # Disable battery API | ||||
|           # https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager | ||||
|           # https://bugzilla.mozilla.org/show_bug.cgi?id=1313580 | ||||
|           "dom.battery.enabled" = false; | ||||
|           # Disable "beacon" asynchronous HTTP transfers (used for analytics) | ||||
|           # https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon | ||||
|           "beacon.enabled" = false; | ||||
|           # Disable pinging URIs specified in HTML <a> ping= attributes | ||||
|           # http://kb.mozillazine.org/Browser.send_pings | ||||
|           "browser.send_pings" = false; | ||||
|           # Disable gamepad API to prevent USB device enumeration | ||||
|           # https://www.w3.org/TR/gamepad/ | ||||
|           # https://trac.torproject.org/projects/tor/ticket/13023 | ||||
|           "dom.gamepad.enabled" = false; | ||||
|           # Don't try to guess domain names when entering an invalid domain name in URL bar | ||||
|           # http://www-archive.mozilla.org/docs/end-user/domain-guessing.html | ||||
|           "browser.fixup.alternate.enabled" = false; | ||||
|           # Disable telemetry | ||||
|           # https://wiki.mozilla.org/Platform/Features/Telemetry | ||||
|           # https://wiki.mozilla.org/Privacy/Reviews/Telemetry | ||||
|           # https://wiki.mozilla.org/Telemetry | ||||
|           # https://www.mozilla.org/en-US/legal/privacy/firefox.html#telemetry | ||||
|           # https://support.mozilla.org/t5/Firefox-crashes/Mozilla-Crash-Reporter/ta-p/1715 | ||||
|           # https://wiki.mozilla.org/Security/Reviews/Firefox6/ReviewNotes/telemetry | ||||
|           # https://gecko.readthedocs.io/en/latest/browser/experiments/experiments/manifest.html | ||||
|           # https://wiki.mozilla.org/Telemetry/Experiments | ||||
|           # https://support.mozilla.org/en-US/questions/1197144 | ||||
|           # https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html#id1 | ||||
|           "toolkit.telemetry.enabled" = false; | ||||
|           "toolkit.telemetry.unified" = false; | ||||
|           "toolkit.telemetry.archive.enabled" = false; | ||||
|           "experiments.supported" = false; | ||||
|           "experiments.enabled" = false; | ||||
|           "experiments.manifest.uri" = ""; | ||||
|           # Disable health reports (basically more telemetry) | ||||
|           # https://support.mozilla.org/en-US/kb/firefox-health-report-understand-your-browser-perf | ||||
|           # https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/preferences.html | ||||
|           "datareporting.healthreport.uploadEnabled" = false; | ||||
|           "datareporting.healthreport.service.enabled" = false; | ||||
|           "datareporting.policy.dataSubmissionEnabled" = false; | ||||
|     }; | ||||
|   programs.browserpass.enable = true; | ||||
|   programs.browserpass.browsers = [ "firefox" ]; | ||||
|   #env.XDG_DEXSTOP_DIR = "$HOME/"; | ||||
|   programs.firefox.profiles.anish.userChrome = (builtins.readFile ./userChrome.css); | ||||
|   programs.firefox.profiles.anish.settings = { | ||||
|     "devtools.theme" = "dark"; | ||||
|     # Enable userContent.css and userChrome.css for our theme modules | ||||
|     "toolkit.legacyUserProfileCustomizations.stylesheets" = true; | ||||
|     # Stop creating ~/Downloads! | ||||
|     "browser.download.dir" = "/home/anish/downloads"; # TODO Don't hardcode this! | ||||
|     # Don't use the built-in password manager; a nixos user is more likely | ||||
|     # using an external one (you are using one, right?). | ||||
|     #"signon.rememberSignons" = false; | ||||
|     # Do not check if Firefox is the default browser | ||||
|     "browser.shell.checkDefaultBrowser" = false; | ||||
|     # Disable the "new tab page" feature and show a blank tab instead | ||||
|     # https://wiki.mozilla.org/Privacy/Reviews/New_Tab | ||||
|     # https://support.mozilla.org/en-US/kb/new-tab-page-show-hide-and-customize-top-sites#w_how-do-i-turn-the-new-tab-page-off | ||||
|     "browser.newtabpage.enabled" = false; | ||||
|     "browser.newtab.url" = "about:blank"; | ||||
|     # Disable Activity Stream | ||||
|     # https://wiki.mozilla.org/Firefox/Activity_Stream | ||||
|     "browser.newtabpage.activity-stream.enabled" = false; | ||||
|     # Disable new tab tile ads & preload | ||||
|     # http://www.thewindowsclub.com/disable-remove-ad-tiles-from-firefox | ||||
|     # http://forums.mozillazine.org/viewtopic.php?p=13876331#p13876331 | ||||
|     # https://wiki.mozilla.org/Tiles/Technical_Documentation#Ping | ||||
|     # https://gecko.readthedocs.org/en/latest/browser/browser/DirectoryLinksProvider.html#browser-newtabpage-directory-source | ||||
|     # https://gecko.readthedocs.org/en/latest/browser/browser/DirectoryLinksProvider.html#browser-newtabpage-directory-ping | ||||
|     "browser.newtabpage.enhanced" = false; | ||||
|     "browser.newtab.preload" = false; | ||||
|     "browser.newtabpage.directory.ping" = ""; | ||||
|     "browser.newtabpage.directory.source" = "data:text/plain,{}"; | ||||
|     # Disable some not so useful functionality. | ||||
|     "media.videocontrols.picture-in-picture.video-toggle.enabled" = false; | ||||
|     "extensions.htmlaboutaddons.recommendations.enabled" = false; | ||||
|     "extensions.htmlaboutaddons.discover.enabled" = false; | ||||
|     "extensions.pocket.enabled" = false; | ||||
|     "app.normandy.enabled" = false; | ||||
|     "app.normandy.api_url" = ""; | ||||
|     "extensions.shield-recipe-client.enabled" = false; | ||||
|     "app.shield.optoutstudies.enabled" = false; | ||||
|     # Disable battery API | ||||
|     # https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager | ||||
|     # https://bugzilla.mozilla.org/show_bug.cgi?id=1313580 | ||||
|     "dom.battery.enabled" = false; | ||||
|     # Disable "beacon" asynchronous HTTP transfers (used for analytics) | ||||
|     # https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon | ||||
|     "beacon.enabled" = false; | ||||
|     # Disable pinging URIs specified in HTML <a> ping= attributes | ||||
|     # http://kb.mozillazine.org/Browser.send_pings | ||||
|     "browser.send_pings" = false; | ||||
|     # Disable gamepad API to prevent USB device enumeration | ||||
|     # https://www.w3.org/TR/gamepad/ | ||||
|     # https://trac.torproject.org/projects/tor/ticket/13023 | ||||
|     "dom.gamepad.enabled" = false; | ||||
|     # Don't try to guess domain names when entering an invalid domain name in URL bar | ||||
|     # http://www-archive.mozilla.org/docs/end-user/domain-guessing.html | ||||
|     "browser.fixup.alternate.enabled" = false; | ||||
|     # Disable telemetry | ||||
|     # https://wiki.mozilla.org/Platform/Features/Telemetry | ||||
|     # https://wiki.mozilla.org/Privacy/Reviews/Telemetry | ||||
|     # https://wiki.mozilla.org/Telemetry | ||||
|     # https://www.mozilla.org/en-US/legal/privacy/firefox.html#telemetry | ||||
|     # https://support.mozilla.org/t5/Firefox-crashes/Mozilla-Crash-Reporter/ta-p/1715 | ||||
|     # https://wiki.mozilla.org/Security/Reviews/Firefox6/ReviewNotes/telemetry | ||||
|     # https://gecko.readthedocs.io/en/latest/browser/experiments/experiments/manifest.html | ||||
|     # https://wiki.mozilla.org/Telemetry/Experiments | ||||
|     # https://support.mozilla.org/en-US/questions/1197144 | ||||
|     # https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html#id1 | ||||
|     "toolkit.telemetry.enabled" = false; | ||||
|     "toolkit.telemetry.unified" = false; | ||||
|     "toolkit.telemetry.archive.enabled" = false; | ||||
|     "experiments.supported" = false; | ||||
|     "experiments.enabled" = false; | ||||
|     "experiments.manifest.uri" = ""; | ||||
|     # Disable health reports (basically more telemetry) | ||||
|     # https://support.mozilla.org/en-US/kb/firefox-health-report-understand-your-browser-perf | ||||
|     # https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/preferences.html | ||||
|     "datareporting.healthreport.uploadEnabled" = false; | ||||
|     "datareporting.healthreport.service.enabled" = false; | ||||
|     "datareporting.policy.dataSubmissionEnabled" = false; | ||||
|   }; | ||||
| 
 | ||||
|     # Override? | ||||
|     home.packages = with pkgs; [ | ||||
|           firefox-bin | ||||
|           (makeDesktopItem { | ||||
|             name = "firefox-private"; | ||||
|             desktopName = "Firefox (Private)"; | ||||
|             genericName = "Open a private Firefox window"; | ||||
|             icon = "firefox"; | ||||
|             exec = "${firefox-bin}/bin/firefox --private-window"; | ||||
|             categories = "Network"; | ||||
|           }) | ||||
|         ]; | ||||
|   # Override? | ||||
|   home.packages = with pkgs; [ | ||||
|     firefox-bin | ||||
|     (makeDesktopItem { | ||||
|       name = "firefox-private"; | ||||
|       desktopName = "Firefox (Private)"; | ||||
|       genericName = "Open a private Firefox window"; | ||||
|       icon = "firefox"; | ||||
|       exec = "${firefox-bin}/bin/firefox --private-window"; | ||||
|       categories = "Network"; | ||||
|     }) | ||||
|   ]; | ||||
| 
 | ||||
|     home.file = let cfgPath = ".mozilla/firefox"; in { | ||||
|   home.file = let cfgPath = ".mozilla/firefox"; in | ||||
|     { | ||||
|       "${cfgPath}/profiles.ini".text = '' | ||||
|         [Profile0] | ||||
|         Name=default | ||||
|  | @ -112,5 +112,4 @@ | |||
|       ''; | ||||
|       "${cfgPath}/anish.default/chrome/userChrome.css".source = ./userChrome.css; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -58,14 +58,14 @@ let | |||
|   python-with-my-packages = pkgs.python3.withPackages my-python-packages; | ||||
| in | ||||
| { | ||||
|   environment.variables.EDITOR = "nvim"; | ||||
|   environment.shellAliases = { | ||||
|     k = "cd ~/kitaab/vimwiki; vim -c :VimwikiIndex; cd $OLDPWD"; | ||||
|     kz = "cd ~/kitaab/vimwiki; vim -c :VimwikiIndex -c :ZettelNew; cd $OLDPWD"; | ||||
|   }; | ||||
|   #environment.variables.EDITOR = "nvim"; | ||||
|   #environment.shellAliases = { | ||||
|   #  k = "cd ~/kitaab/vimwiki; vim -c :VimwikiIndex; cd $OLDPWD"; | ||||
|   #  kz = "cd ~/kitaab/vimwiki; vim -c :VimwikiIndex -c :ZettelNew; cd $OLDPWD"; | ||||
|   #}; | ||||
| 
 | ||||
|   #environment.systemPackages = with customPlugins; [ tidal ]; | ||||
|   home-manager.users.anish.programs.neovim = { | ||||
|   programs.neovim = { | ||||
|     enable = true; | ||||
| 
 | ||||
|     extraConfig = '' | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue