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