diff --git a/README.org b/README.org index 1143ebf..da58a52 100644 --- a/README.org +++ b/README.org @@ -30,7 +30,7 @@ To set up without cloning the repository, run: * Email setup ** Proton *** Bridge -Run src_bash{protonmail-setup-bridge} to automate this process. +Run src_bash{protonmail-bridge-setup} to automate this process. Run bridge in CLI mode to login, wait for initial sync and get app password #+begin_src bash diff --git a/programs/desktop/default.nix b/programs/desktop/default.nix index 0064758..6ebb23f 100644 --- a/programs/desktop/default.nix +++ b/programs/desktop/default.nix @@ -2,19 +2,7 @@ config, pkgs, ... -}: let - protonmail-setup-bridge = with pkgs; (writeShellScriptBin "protonmail-setup-bridge" '' - pkill -9 -f protonmail-bridge - ${protonmail-bridge}/bin/protonmail-bridge -c - swaymsg exec "${protonmail-bridge}/bin/protonmail-bridge -n" - ''); - davmail-setup = with pkgs; (writeShellScriptBin "davmail-setup" '' - systemctl --user restart davmail # Ensure config file is present - systemctl --user stop davmail - ${davmail}/bin/davmail -n ~/.davmail.properties - systemctl --user restart davmail - ''); -in { +}: { imports = [ ./plasma6/default.nix ./alacritty/default.nix @@ -23,60 +11,23 @@ in { libreoffice-fresh inkscape webcord - protonmail-setup-bridge - davmail-setup ]; services.syncthing.enable = true; programs.mpv.enable = true; - # gtk = { - # enable = true; - # iconTheme = { - # package = pkgs.papirus-icon-theme.override {color = "violet";}; - # name = - # if config.scheme.variant == "light" - # then "Papirus-Light" - # else "Papirus-Dark"; - # }; - # cursorTheme = { - # package = pkgs.volantes-cursors; - # name = - # if config.scheme.variant == "light" - # then "volantes_cursors" - # else "volantes_light_cursors"; - # size = 32; - # }; - # theme = { - # package = pkgs.gnome.gnome-themes-extra; - # name = - # if config.scheme.variant == "light" - # then "Adwaita" - # else "Adwaita-dark"; - # }; - # }; - # qt = { - # enable = true; - # style = { - # package = pkgs.adwaita-qt; - # name = - # if config.scheme.variant == "light" - # then "adwaita" - # else "adwaita-dark"; - # }; - # }; xdg = { - # mime.enable = true; - # mimeApps = let - # defaultApplications = import ./mimeapps.nix; - # in { - # enable = true; - # inherit defaultApplications; - # associations = { - # added = defaultApplications; - # removed = { - # "x-scheme-handler/zoomus" = config.xdg.mimeApps.defaultApplications."x-scheme-handler/http"; - # }; - # }; - # }; + mime.enable = true; + mimeApps = let + defaultApplications = import ./mimeapps.nix; + in { + enable = true; + inherit defaultApplications; + associations = { + added = defaultApplications; + removed = { + "x-scheme-handler/zoomus" = config.xdg.mimeApps.defaultApplications."x-scheme-handler/http"; + }; + }; + }; userDirs = { enable = true; createDirectories = true; @@ -85,24 +36,4 @@ in { }; }; }; - # xresources.properties = with config.scheme.withHashtag; { - # "*background" = base00; - # "*foreground" = base05; - # "*color0" = base00; - # "*color1" = red; - # "*color2" = green; - # "*color3" = yellow; - # "*color4" = blue; - # "*color5" = magenta; - # "*color6" = cyan; - # "*color7" = base04; - # "*color8" = base01; - # "*color9" = red; - # "*color10" = green; - # "*color11" = yellow; - # "*color12" = blue; - # "*color13" = magenta; - # "*color14" = cyan; - # "*color15" = base05; - # }; } diff --git a/programs/desktop/mimeapps.nix b/programs/desktop/mimeapps.nix index d434ed4..30c6da4 100644 --- a/programs/desktop/mimeapps.nix +++ b/programs/desktop/mimeapps.nix @@ -25,6 +25,7 @@ in { "text/x-log" = emacs; "text/x-lua" = emacs; "text/x-makefile" = emacs; + "text/x-cmake" = emacs; "text/x-python" = emacs; "text/x-python3" = emacs; "text/x-readme" = emacs; @@ -40,6 +41,8 @@ in { "application/xhtml+xml" = emacs; "application/oxps" = emacs; "application/x-shellscript" = emacs; + "application/x-docbook+xml" = emacs; + "application/x-yaml" = emacs; "application/pdf" = ["evince.desktop"]; "application/epub+zip" = ["evince.desktop"]; @@ -58,6 +61,8 @@ in { "x-scheme-handler/about" = browser; "x-scheme-handler/chrome" = browser; "x-scheme-handler/webcal" = browser; + "x-scheme-handler/geo" = ["openstreetmap-geo-handler.desktop"]; + "x-scheme-handler/mailto" = ["emacsclient-mail.desktop"]; "x-scheme-handler/unknown" = emacs; "x-scheme-handler/prusaslicer" = ["PrusaSlicerURLProtocol.desktop"]; diff --git a/programs/desktop/plasma6/default.nix b/programs/desktop/plasma6/default.nix index 1632e87..fdda171 100644 --- a/programs/desktop/plasma6/default.nix +++ b/programs/desktop/plasma6/default.nix @@ -104,13 +104,6 @@ }; }; - startup.startupScript = { - "protonmail-bridge" = { - priority = 3; - text = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n"; - }; - }; - kwin = { virtualDesktops = { rows = 2; diff --git a/services/email/default.nix b/services/email/default.nix index b5fa51a..1c23037 100644 --- a/services/email/default.nix +++ b/services/email/default.nix @@ -3,6 +3,14 @@ hostname, ... }: { + home.packages = with pkgs; [ + protonmail-bridge + (writeShellScriptBin "protonmail-bridge-setup" '' + systemctl --user stop protonmail-bridge + ${protonmail-bridge}/bin/protonmail-bridge -c + systemctl --user restart protonmail-bridge + '') + ]; accounts.email = { maildirBasePath = "Mail"; accounts = let @@ -78,4 +86,17 @@ }; }; }; + systemd.user.services.protonmail-bridge = { + Unit = { + Description = "Proton Mail Bridge"; + Wants = ["network-online.target"]; + After = ["network-online.target"]; + }; + Service = { + Environment = ["PATH=/run/current-system/sw/bin/:$PATH"]; + Restart = "always"; + ExecStart = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n"; + }; + Install.WantedBy = ["default.target"]; + }; } diff --git a/services/email/work.nix b/services/email/work.nix index 0ce07ff..f7b0d30 100644 --- a/services/email/work.nix +++ b/services/email/work.nix @@ -5,6 +5,14 @@ ... }: { imports = [./default.nix]; + home.packages = with pkgs; [ + (writeShellScriptBin "davmail-setup" '' + systemctl --user restart davmail # Ensure config file is present + systemctl --user stop davmail + ${davmail}/bin/davmail -n ~/.davmail.properties + systemctl --user restart davmail + '') + ]; accounts.email.accounts.outlook = let host = "127.0.0.1"; tls.enable = false;