Move some packages out of nixos config, add nyxt back

TODO add bookmarks programatically to nyxt
This commit is contained in:
Evie Litherland-Smith 2024-05-17 16:14:50 +01:00
parent 46156f1a92
commit 29e17cb6b1
5 changed files with 249 additions and 2 deletions

View file

@ -9,6 +9,7 @@
../programs/sway/default.nix ../programs/sway/default.nix
../programs/shell/default.nix ../programs/shell/default.nix
../programs/emacs/default.nix ../programs/emacs/default.nix
../programs/nyxt/default.nix
../programs/firefox/default.nix ../programs/firefox/default.nix
../programs/cava/default.nix ../programs/cava/default.nix
../programs/obs/default.nix ../programs/obs/default.nix
@ -21,6 +22,7 @@
../scripts/default.nix ../scripts/default.nix
]; ];
programs.home-manager.enable = true; programs.home-manager.enable = true;
nixpkgs.config.allowUnfree = true;
services = { services = {
gpg-agent.pinentryFlavor = "gtk2"; gpg-agent.pinentryFlavor = "gtk2";
avizo.enable = true; avizo.enable = true;
@ -98,6 +100,15 @@
fd fd
ripgrep ripgrep
ffmpeg ffmpeg
mpv
xarchiver
libreoffice-fresh
inkscape
webcord
signal-desktop
whatsapp-for-linux
teams-for-linux
nomachine-client
]; ];
stateVersion = "23.05"; stateVersion = "23.05";
}; };

View file

@ -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"))
)

65
programs/nyxt/config.lisp Normal file
View file

@ -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")

42
programs/nyxt/default.nix Normal file
View file

@ -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;
};
}

View file

@ -16,6 +16,11 @@
./wlogout/default.nix ./wlogout/default.nix
]; ];
home.packages = with pkgs; [ 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" '' (writeShellScriptBin "protonmail-setup-bridge" ''
pkill -9 -f protonmail-bridge pkill -9 -f protonmail-bridge
${protonmail-bridge}/bin/protonmail-bridge -c ${protonmail-bridge}/bin/protonmail-bridge -c
@ -30,7 +35,9 @@
]; ];
wayland.windowManager.sway = { wayland.windowManager.sway = {
enable = true; enable = true;
package = null; package =
pkgs.swayfx.overrideAttrs
(old: {passthru.providedSessions = ["sway"];});
swaynag.enable = true; swaynag.enable = true;
systemd.enable = true; systemd.enable = true;
xwayland = true; xwayland = true;
@ -92,9 +99,9 @@
}; };
startup = [ startup = [
{command = "${pkgs.swaynotificationcenter}/bin/swaync";} {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.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1";}
{command = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n";} {command = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n";}
{command = "restart-swaybg";}
]; ];
window = { window = {
border = 1; border = 1;