From 29e17cb6b167cf4ce1329c21ce31e48363786c83 Mon Sep 17 00:00:00 2001 From: Evie Litherland-Smith Date: Fri, 17 May 2024 16:14:50 +0100 Subject: [PATCH] Move some packages out of nixos config, add nyxt back TODO add bookmarks programatically to nyxt --- home/default.nix | 11 ++++ programs/nyxt/bookmarks.lisp | 122 +++++++++++++++++++++++++++++++++++ programs/nyxt/config.lisp | 65 +++++++++++++++++++ programs/nyxt/default.nix | 42 ++++++++++++ programs/sway/default.nix | 11 +++- 5 files changed, 249 insertions(+), 2 deletions(-) create mode 100644 programs/nyxt/bookmarks.lisp create mode 100644 programs/nyxt/config.lisp create mode 100644 programs/nyxt/default.nix diff --git a/home/default.nix b/home/default.nix index 3607cdd..129dd9d 100644 --- a/home/default.nix +++ b/home/default.nix @@ -9,6 +9,7 @@ ../programs/sway/default.nix ../programs/shell/default.nix ../programs/emacs/default.nix + ../programs/nyxt/default.nix ../programs/firefox/default.nix ../programs/cava/default.nix ../programs/obs/default.nix @@ -21,6 +22,7 @@ ../scripts/default.nix ]; programs.home-manager.enable = true; + nixpkgs.config.allowUnfree = true; services = { gpg-agent.pinentryFlavor = "gtk2"; avizo.enable = true; @@ -98,6 +100,15 @@ fd ripgrep ffmpeg + mpv + xarchiver + libreoffice-fresh + inkscape + webcord + signal-desktop + whatsapp-for-linux + teams-for-linux + nomachine-client ]; stateVersion = "23.05"; }; diff --git a/programs/nyxt/bookmarks.lisp b/programs/nyxt/bookmarks.lisp new file mode 100644 index 0000000..2296cb1 --- /dev/null +++ b/programs/nyxt/bookmarks.lisp @@ -0,0 +1,122 @@ +( + ;; Personal + + ;; Messaging + ( :url "https://web.whatsapp.com/" + :title "WhatApp Web" + :tags ("personal" "messaging")) + ( :url "https://discord.com/app" + :title "Discord" + :tags ("personal" "messaging")) + ;; Server + ( :url "https://xenia.me.uk" + :title "Home Page" + :tags ("personal" "server")) + ( :url "https://git.xenia.me.uk" + :title "Forgejo" + :tags ("personal" "server" "dev" "git")) + ( :url "https://blog.xenia.me.uk" + :title "Blog" + :tags ("personal" "server")) + ;; Dev + ( :url "https://github.com" + :title "GitHub" + :tags ("personal" "dev" "git")) + ;; EV + ( :url "https://abetterrouteplanner.com/" + :title "ABRP - A Better Route Planner" + :tags ("personal" "ev" "map")) + ;; Documentation + ( :url "https://nixos-and-flakes.thiscute.world/" + :title "NixOS and Flakes" + :tags ("personal" "documentation")) + ( :url "https://nix-community.github.io/home-manager/options.xhtml" + :title "Home Manager Configuration Options" + :tags ("personal" "documentation")) + ( :url "https://mipmip.github.io/home-manager-option-search/" + :title "Home Manager Option Search" + :tags ("personal" "documentation")) + ;; Awesome Repos + ( :url "https://github.com/emacs-tw/awesome-emacs" + :title "Awesome Emacs" + :tags ("personal" "awesome" "git")) + ;; Miscellaneous + ( :url "https://www.colorhexa.com/" + :title "Colour Encyclopedia" + :tags ("personal" "miscellaneous")) + + ;; Work + + ( :url "https://nucleus.ukaea.uk/" + :title "Nucleus" + :tags ("work")) + ( :url "https://marval.service.ukaea.uk/MSMSelfService/Index.aspx" + :title "Marval Helpdesk" + :tags ("work")) + ( :url "https://ubw.unit4cloud.com/uk_aea_prod_web/Login/Login.aspx" + :title "Unit4 Business World" + :tags ("work")) + ;; Dev + ( :url "https://git.ccfe.ac.uk/" + :title "GitLab (CCFE)" + :tags ("work" "dev" "git")) + ;; JET + ( :url "http://w3.jet.uk/" + :title "JET Homepage" + :tags ("work" "jet")) + ( :url "https://users.euro-fusion.org/pages/physics-summary/LatestSession.php" + :title "JET Physics Summary" + :tags ("work" "jet")) + ( :url "https://www.jspo.jet.uk/pages/operations/jpecreports_2023.html" + :title "JSPO JPEC Reports" + :tags ("work" "jet")) + ( :url "https://dvcm.jetdata.eu/" + :title "DVCM Homepage" + :tags ("work" "jet")) + ;; JET Data Services + ( :url "https://data.jet.uk/" + :title "JET Data Services" + :tags ("work" "jet" "data")) + ( :url "https://data.jet.uk/ppf/browse/ppfquery" + :title "PPF Query" + :tags ("work" "jet" "data")) + ( :url "https://data.jet.uk/reqco/myrequests" + :title "ReqCo" + :tags ("work" "jet" "data")) + ;; MAST-U + ( :url "https://users.mastu.ukaea.uk/home" + :title "MAST-U Users Page" + :tags ("work" "mast-u")) + ( :url "https://intranet.ccfe.ac.uk/mastu-handbook" + :title "MAST-U Diagnostic Handbook" + :tags ("work" "mast-u")) + ;; OpenWiki + ( :url "https://wiki.jetdata.eu/open/index.php?title=Main_Page" + :title "OpenWiki Homepage" + :tags ("work" "openwiki")) + ( :url "https://wiki.jetdata.eu/open/index.php?title=Diagnostic_Coordinator_Wiki" + :title "Diagnostic Coordinator Wiki" + :tags ("work" "openwiki")) + ( :url "https://wiki.jetdata.eu/open/index.php?title=Spectroscopy_Group:index" + :title "Spectroscopy Group Wiki" + :tags ("work" "openwiki")) + ( :url "https://wiki.jetdata.eu/open/index.php?title=CXS:Topic3" + :title "KS5 Wiki" + :tags ("work" "openwiki")) + ( :url "https://wiki.jetdata.eu/open/index.php?title=KT3_Journals" + :title "KT3 Wiki" + :tags ("work" "openwiki")) + ;; Office + ( :url "https://outlook.office.com/calendar/view/workweek" + :title "Outlook Calendar" + :tags ("work" "microsoft" "office")) + ( :url "https://teams.microsoft.com/v2" + :title "Microsoft Teams" + :tags ("work" "microsoft" "office")) + ( :url "https://ukaeauk-my.sharepoint.com/personal/evie_litherland-smith_ukaea_uk/" + :title "OneDrive" + :tags ("work" "microsoft" "office")) + ( :url "https://ukaeauk.sharepoint.com/" + :title "Sharepoint" + :tags ("work" "microsoft" "office")) + ) diff --git a/programs/nyxt/config.lisp b/programs/nyxt/config.lisp new file mode 100644 index 0000000..4b0b2ac --- /dev/null +++ b/programs/nyxt/config.lisp @@ -0,0 +1,65 @@ +(define-configuration buffer + ((default-modes + (pushnew 'nyxt/mode/emacs:emacs-mode %slot-value%)) + (default-modes + (pushnew 'nyxt/mode/blocker:blocker-mode %slot-value%)))) + +(define-configuration status-buffer + ((glyph-mode-presentation-p t) + (display-tabs-by-last-access-p nil))) + +(define-configuration :emacs-mode ((glyph "ε"))) +(define-configuration :force-https-mode ((glyph "ϕ"))) +(define-configuration :user-script-mode ((glyph "u"))) +(define-configuration :blocker-mode ((glyph "β"))) +(define-configuration :proxy-mode ((glyph "π"))) +(define-configuration :reduce-tracking-mode ((glyph "τ"))) +(define-configuration :certificate-exception-mode ((glyph "χ"))) +(define-configuration :style-mode ((glyph "ϕ"))) +(define-configuration :cruise-control-mode ((glyph "σ"))) + +(define-configuration :document-mode + "Extend with custom keybinds" + ((keyscheme-map + (keymaps:define-keyscheme-map "custom" (list :import %slot-value%) + nyxt/keyscheme:emacs (list + "C-c u" 'copy-username + "C-c p" 'copy-password))))) + +(define-configuration :autofill-mode + "Add autofill functions for passwords" + ((autofills + (list + (nyxt/mode/autofill:make-autofill + :name "name" + :fill "Evie Litherland-Smith") + (nyxt/mode/autofill:make-autofill + :name "email" + :fill "evie@xenia.me.uk"))))) + +(defvar *my-search-engines* + (list + '("osm" "https://www.openstreetmap.org/search?query=~a" "https://www.openstreetmap.org/") + '("rust" "https://doc.rust-lang.org/std/index.html?search=~a" "https://doc.rust-lang.org/std/index.html") + '("crates" "https://crates.io/search?q=~a" "https://crates.io/") + '("py" "https://docs.python.org/3/search.html?q=~a" "https://docs.python.org/3") + '("pypi" "https://pypi.org/search/?q=~a" "https://pypi.org/") + '("nixwiki" "https://nixos.wiki/index.php?search=~a&go=Go" "https://nixos.wiki/") + '("archwiki" "https://wiki.archlinux.org/index.php?search=~a" "https://wiki.archlinux.org/") + '("github" "https://github.com/search?utf8=✓&q=~a&type=repositories" "https://github.com/") + '("flathub" "https://flathub.org/apps/search?q=~a" "https://flathub.org/") + '("doi" "https://dx.doi.org/~a" "https://dx.doi.org/") + '("wiki" "https://en.wikipedia.org/w/index.php?search=~a" "https://en.wikipedia.org/") + '("ddg" "https://duckduckgo.com/?q=~a" "https://duckduckgo.com/")) + "List of search engines.") + +(define-configuration context-buffer + "Go through the search engines above and make-search-engine out of them." + ((search-engines + (mapcar (lambda (engine) (apply 'make-search-engine engine)) + *my-search-engines*)))) + +(define-configuration browser + ((restore-session-on-startup-p nil))) + +(setf (uiop/os:getenv "GTK_THEME") "Adwaita:dark") diff --git a/programs/nyxt/default.nix b/programs/nyxt/default.nix new file mode 100644 index 0000000..1fafe63 --- /dev/null +++ b/programs/nyxt/default.nix @@ -0,0 +1,42 @@ +{ + config, + pkgs, + fonts, + accentColour ? "base07", + ... +}: { + home.packages = [pkgs.nyxt]; + xdg = { + configFile = { + "nyxt/config.lisp".text = with config.scheme.withHashtag; '' + ;; Import custom configuration + (nyxt::load-lisp "${./config.lisp}") + ;; Define custom theme + (define-configuration browser + ((theme (make-instance 'theme:theme + :dark-p t + :font-family "${fonts.sansSerif.name}" + :monospace-font-family "${fonts.monospace.name}" + :background-color "${base00}" + :on-background-color "${base05}" + :primary-color "${config.scheme.withHashtag.${accentColour}}" + :on-primary-color "${base01}" + :secondary-color "${base03}" + :on-secondary-color "${base05}" + :accent-color "${cyan}" + :on-accent-color "${base01}" + :action-color "${cyan}" + :on-action-color "${base01}" + :success-color "${green}" + :on-success-color "${base01}" + :highlight-color "${magenta}" + :on-highlight-color "${base01}" + :warning-color "${yellow}" + :on-warning-color "${base01}" + :codeblock-color "${base02}" + :on-codeblock-color "${base05}")))) + ''; + }; + # dataFile."nyxt/bookmarks.lisp".source = ./bookmarks.lisp; + }; +} diff --git a/programs/sway/default.nix b/programs/sway/default.nix index 66b6dd8..e96794e 100644 --- a/programs/sway/default.nix +++ b/programs/sway/default.nix @@ -16,6 +16,11 @@ ./wlogout/default.nix ]; home.packages = with pkgs; [ + swaybg + (writeShellScriptBin "restart-swaybg" '' + pkill -9 -f swaybg + ${pkgs.swaybg}/bin/swaybg -m fill -i ${../../wallpapers/default.jpg} + '') (writeShellScriptBin "protonmail-setup-bridge" '' pkill -9 -f protonmail-bridge ${protonmail-bridge}/bin/protonmail-bridge -c @@ -30,7 +35,9 @@ ]; wayland.windowManager.sway = { enable = true; - package = null; + package = + pkgs.swayfx.overrideAttrs + (old: {passthru.providedSessions = ["sway"];}); swaynag.enable = true; systemd.enable = true; xwayland = true; @@ -92,9 +99,9 @@ }; startup = [ {command = "${pkgs.swaynotificationcenter}/bin/swaync";} - {command = "${pkgs.swaybg}/bin/swaybg -m fill -i ${../../wallpapers/default.jpg}";} {command = "${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1";} {command = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n";} + {command = "restart-swaybg";} ]; window = { border = 1;