Compare commits

...

132 commits
nvim ... main

Author SHA1 Message Date
Evie Litherland-Smith 10e0902cdc Revert "Change default terminal to foot (from alacritty)"
This reverts commit c3078cad8d.
2025-01-31 15:43:26 +00:00
Evie Litherland-Smith 0337f6a179 Swap image-roll for ristretto, clapper for mpv 2025-01-31 15:41:31 +00:00
Evie Litherland-Smith 83ae24f6b5 Bookmarks: add we are wayland now 2025-01-31 15:35:02 +00:00
Evie Litherland-Smith dd03beae03 Update awesome wayland bookmark for new fork 2025-01-31 14:45:22 +00:00
Evie Litherland-Smith f85f0e2ea5 Add dejavu_fonts for compatibility 2025-01-31 13:55:56 +00:00
Evie Litherland-Smith 5183d9d314 Increase waybar font size 2025-01-31 13:55:48 +00:00
Evie Litherland-Smith 97eeccc41d Remove setting work homepage 2025-01-31 13:44:15 +00:00
Evie Litherland-Smith 70ef1c7285 Switch back to using greetd, has some issues with sddm 2025-01-31 13:41:14 +00:00
Evie Litherland-Smith c60a80d7d1 Remove SSH_ASKPASS_REQUIRE, update IP address for Legion 2025-01-31 11:44:10 +00:00
Evie Litherland-Smith b5f35b8d3b Remove teams-for-linux
Firefox teams seems to support video calls now
2025-01-31 09:00:30 +00:00
Evie Litherland-Smith aba6ec3577 Vanguard: assign workspace 2 to secondary monitor 2025-01-31 08:57:33 +00:00
Evie Litherland-Smith 8a04709dc7 Switch back to firefox as default browser 2025-01-31 08:55:11 +00:00
Evie Litherland-Smith 06c425341e Switch to using SDDM instead of greetd
Switch back to one-light for everything

Only install teams-for-linux on work machines
2025-01-31 08:40:26 +00:00
Evie Litherland-Smith 64904a62f1 Remove gammastep tray icon 2025-01-31 07:33:51 +00:00
Evie Litherland-Smith 4ef1c5825a Remove Whatsapp-For-Linux, cleanup some programs I don't need all the time 2025-01-31 07:31:50 +00:00
Evie Litherland-Smith 05ee091ca0 Swap nautilus for thunar 2025-01-31 07:26:06 +00:00
Evie Litherland-Smith 9dad0c1299 Kanata: swap shift and alt 2025-01-31 07:00:36 +00:00
Evie Litherland-Smith 16f830ac3d Remove calibre 2025-01-30 15:46:04 +00:00
Evie Litherland-Smith c2ba18a8b8 Kanata: swap shift and ctrl 2025-01-30 15:43:01 +00:00
Evie Litherland-Smith 44b5f19d00 Emacs remove forge package 2025-01-30 14:34:03 +00:00
Evie Litherland-Smith 01523cefbc Add matplotlibrc file 2025-01-30 14:33:46 +00:00
Evie Litherland-Smith 3c121fda80 Remove year from waybar calendar module 2025-01-30 11:57:39 +00:00
Evie Litherland-Smith a30e2098ee Remove opacity from applications, tweak for desktop and popups 2025-01-30 07:48:51 +00:00
Evie Litherland-Smith 654fce8bb2 Add Picard to files workspace 2025-01-30 07:42:28 +00:00
Evie Litherland-Smith b8c69c12a2 Revert "Only autostart Signal and WhatsApp on Vanguard instead of everything"
This reverts commit 9a9b0489e9.
2025-01-30 07:10:27 +00:00
Evie Litherland-Smith b1ba5a186e Adjust some nyxt colours for better legibility 2025-01-29 13:52:39 +00:00
Evie Litherland-Smith f0ad447a54 Add icons for calendar and clock (centred this time!) 2025-01-29 11:53:50 +00:00
Evie Litherland-Smith cd9f4aeeba Waybar formatting updates
Split pulseaudio into 2 modules, remove most of the padding since it's
unnecessary, update colours for modules
2025-01-29 10:46:08 +00:00
Evie Litherland-Smith 972a3ce0c9 Add initial config.nu that disables startup banner 2025-01-29 08:15:09 +00:00
Evie Litherland-Smith 806ca8085c Add nushell-ts-mode package for Emacs 2025-01-29 08:13:22 +00:00
Evie Litherland-Smith 1b60fdc6db Add starship indicator for nushell again 2025-01-29 08:13:13 +00:00
Evie Litherland-Smith c3fbff2c6a Fix definition of xdg.configFile in Vanguard config 2025-01-29 07:57:38 +00:00
Evie Litherland-Smith c3078cad8d Change default terminal to foot (from alacritty) 2025-01-29 06:59:25 +00:00
Evie Litherland-Smith 3c84bb18b2 Change argument to nyxt bind 2025-01-29 06:25:33 +00:00
Evie Litherland-Smith 6dba7a30c5 Update mimeapps to use emacs instead of emacsclient 2025-01-28 11:36:15 +00:00
Evie Litherland-Smith c4577301a6 Don't float nautilus windows 2025-01-28 11:31:30 +00:00
Evie Litherland-Smith ebe37c815e Always add uv package to pyshell 2025-01-28 11:21:12 +00:00
Evie Litherland-Smith 194bb8bca9 Remove localip module from starship 2025-01-28 11:21:03 +00:00
Evie Litherland-Smith 9a9b0489e9 Only autostart Signal and WhatsApp on Vanguard instead of everything 2025-01-28 08:50:22 +00:00
Evie Litherland-Smith 99e53cde3e Remove server from normal substituters, only needed for system rebuild 2025-01-27 11:53:02 +00:00
Evie Litherland-Smith e9554a867e Fix NYXT theme colours 2025-01-27 11:20:48 +00:00
Evie Litherland-Smith 25d6d2d8e4 Disable emacsclient, use standard emacs as EDITOR 2025-01-27 09:38:04 +00:00
Evie Litherland-Smith dd4da4905b Switch mimeapps to use nyxt as default browser 2025-01-27 09:37:06 +00:00
Evie Litherland-Smith bef6dfd7f8 Temporarily disable autoUpgrade
Switch back on when server is up again
2025-01-27 09:36:43 +00:00
Evie Litherland-Smith 9134af7810 Add Calibre to files workspace 2025-01-26 08:32:20 +00:00
Evie Litherland-Smith d96643b8ec Remove ollama 2025-01-23 18:59:41 +00:00
Evie Litherland-Smith ed8438d14e Swap flake8 for pyflakes in default python env 2025-01-23 16:45:21 +00:00
Evie Litherland-Smith df728cd2e3 Change opacity values to be hex-friendly 2025-01-23 16:39:23 +00:00
Evie Litherland-Smith e97fec025c Enable reduced tracking mode in nyxt by default 2025-01-23 14:42:14 +00:00
Evie Litherland-Smith 6d2c70a81c Adjust default opacity of system 2025-01-23 14:42:03 +00:00
Evie Litherland-Smith a7dffef879 Revert "Adjust kanata and hyprland terminal bind"
This reverts commit 23c91f4412.
2025-01-23 13:54:55 +00:00
Evie Litherland-Smith 23c91f4412 Adjust kanata and hyprland terminal bind 2025-01-23 13:46:51 +00:00
Evie Litherland-Smith 7f3ce3297b Add astropy to default python environment 2025-01-23 11:35:54 +00:00
Evie Litherland-Smith 710b1d3ec4 Remove consult-eglot 2025-01-23 07:01:07 +00:00
Evie Litherland-Smith c644d1157d Tweak nyxt colours 2025-01-23 06:43:57 +00:00
Evie Litherland-Smith 662efe95e8 Switch to onedark theme for personal, one-light for work 2025-01-23 06:29:02 +00:00
Evie Litherland-Smith 913ac8dbc0 NYXT: restore session on startup, add nixpkgs search engine 2025-01-22 09:40:51 +00:00
Evie Litherland-Smith abf667606a Re-enable Ollama service on Vanguard 2025-01-22 07:25:32 +00:00
Evie Litherland-Smith 4ccd7e80cf Add preview commands to fzf widgets 2025-01-22 06:39:08 +00:00
Evie Litherland-Smith 3626eee4bc Remove some icons from starship config
Move extra (shell) into default.nix
2025-01-21 11:09:52 +00:00
Evie Litherland-Smith 460b5eea1c pyshell: add glib (as well as glibc), option for extraLibs 2025-01-21 10:25:10 +00:00
Evie Litherland-Smith dbb69ee11d Use python3Full as default in pyshell.nix 2025-01-21 10:13:28 +00:00
Evie Litherland-Smith 323dde4139 Swap pyright back for pylsp 2025-01-21 10:00:22 +00:00
Evie Litherland-Smith a2dd8d1bcf Set platformTheme for Qt 2025-01-21 07:48:05 +00:00
Evie Litherland-Smith cf2567eff9 Change common hyprland program binds 2025-01-21 07:30:45 +00:00
Evie Litherland-Smith 76091294f9 Revert "Remove firefox homepage"
This reverts commit 7c0447f65c.
2025-01-20 10:38:31 +00:00
Evie Litherland-Smith cdbcdeac23 Emacs: remove dashboard package 2025-01-20 10:28:58 +00:00
Evie Litherland-Smith aafa49aaac Stop using onedark on Vanguard 2025-01-20 08:13:18 +00:00
Evie Litherland-Smith 1ddf2584da Enable wireguard service for Northstar 2025-01-20 08:08:12 +00:00
Evie Litherland-Smith 757df8e35c Enable wireguard service on Vanguard 2025-01-20 08:02:06 +00:00
Evie Litherland-Smith b3fca3a547 Remove protonup and protondown aliases 2025-01-20 07:10:02 +00:00
Evie Litherland-Smith f4e4e72287 Add calibre 2025-01-18 19:36:33 +00:00
Evie Litherland-Smith fd955db244 Use onedark theme on Vanguard again 2025-01-18 08:27:54 +00:00
Evie Litherland-Smith 1f7a3279df Remove library from sync-git script
Moved library into Zotero using WebDAV to transfer
2025-01-17 12:09:42 +00:00
Evie Litherland-Smith 698985a967 Add WebDAV server 2025-01-17 11:46:00 +00:00
Evie Litherland-Smith 4b5dc42e87 Remove grouping rule for chat windows 2025-01-17 09:25:55 +00:00
Evie Litherland-Smith 1249509bae Add Zotero progress window to floating rule 2025-01-16 17:57:56 +00:00
Evie Litherland-Smith 84d48fc137 Add Zotero to workspace 4 rule 2025-01-16 14:28:18 +00:00
Evie Litherland-Smith c61215261a Float and center Zotero settings window 2025-01-16 14:27:11 +00:00
Evie Litherland-Smith 181510cd60 Add Zotero reference management software to desktop programs 2025-01-16 14:21:47 +00:00
Evie Litherland-Smith a6da35d7d1 Hyprland back to master layout, set rule to group chat program windows
Remove .pre-commit-config.yaml
2025-01-16 10:48:16 +00:00
Evie Litherland-Smith 0f0908b564 Revert "Add mount-protondrive script"
This reverts commit 7ec88d955e.
2025-01-16 08:00:00 +00:00
Evie Litherland-Smith 10ca2d59ce Add IRC to ensure-pass 2025-01-16 07:46:55 +00:00
Evie Litherland-Smith 4be4006501 Revert "Change hyprland bind to open firefox again"
This reverts commit f0d6058404.
2025-01-16 07:24:44 +00:00
Evie Litherland-Smith 1b71f5430b Re-add setting PASSWORD_STORE_DIR for protonmail-bridge 2025-01-16 07:23:37 +00:00
Evie Litherland-Smith 2b4722bfe7 Revert "Update ensure-pass and sync-git for password manager changes"
This reverts commit c572a97607.
2025-01-16 07:22:39 +00:00
Evie Litherland-Smith c8591630ec Revert "Remove password-store to use proton-pass instead"
This reverts commit 65a6e2e514.
2025-01-16 07:20:12 +00:00
Evie Litherland-Smith 83e0cd986c Merge branch 'main' of https://git.xenia.me.uk/pixelifytica/nixos 2025-01-15 13:35:00 +00:00
Evie Litherland-Smith 2fc329e227 Add ipython with config 2025-01-15 13:34:46 +00:00
Evie Litherland-Smith 5fa999541b Change prompt symbol to λ 2025-01-15 06:37:26 +00:00
Evie Litherland-Smith 3f18d732d6 Add visual-fill-column back 2025-01-14 17:17:23 +00:00
Evie Litherland-Smith 1a5557ed0a Back to using one-light for all devices 2025-01-14 08:02:00 +00:00
Evie Litherland-Smith 5e5c0783b9 Fix version selection for bind to open hyprland wiki 2025-01-14 08:01:04 +00:00
Evie Litherland-Smith f0d6058404 Change hyprland bind to open firefox again 2025-01-14 06:46:36 +00:00
Evie Litherland-Smith 16332b9184 Add toolbox (container dev program) 2025-01-13 17:08:03 +00:00
Evie Litherland-Smith e8d527b820 Revert "Hyprland switch back to master layout"
This reverts commit 7f3ebefac7.
2025-01-13 14:10:50 +00:00
Evie Litherland-Smith 4b9056ae8c Set SSH_ASKPASS_REQUIRE to prefer 2025-01-13 09:33:53 +00:00
Evie Litherland-Smith cadc1b79b9 Remove setting PASSWORD_STORE_DIR for protonmail-bridge
Remove proton-pass standalone GUI, only need it for initial import to
seahorse and websites otherwise
2025-01-13 09:07:22 +00:00
Evie Litherland-Smith 901846c0eb Revert "Replace protonmail-bridge with protonmail-bridge-gui"
This reverts commit f972333362.
2025-01-13 09:06:17 +00:00
Evie Litherland-Smith f972333362 Replace protonmail-bridge with protonmail-bridge-gui 2025-01-13 07:34:26 +00:00
Evie Litherland-Smith c572a97607 Update ensure-pass and sync-git for password manager changes 2025-01-13 07:00:06 +00:00
Evie Litherland-Smith 7ec88d955e Add mount-protondrive script 2025-01-13 06:39:03 +00:00
Evie Litherland-Smith 65a6e2e514 Remove password-store to use proton-pass instead 2025-01-12 17:14:39 +00:00
Evie Litherland-Smith 517352beb7 Reapply "Change workspace binds for Vanguard"
This reverts commit b817e9d8e1.
2025-01-12 13:27:38 +00:00
Evie Litherland-Smith b817e9d8e1 Revert "Change workspace binds for Vanguard"
This reverts commit 32f6640071.
2025-01-12 06:20:04 +00:00
Evie Litherland-Smith 241ef0730f Shutdown satisfactory server 2025-01-11 15:35:13 +00:00
Evie Litherland-Smith e288600f5f Add notebooks (work) directory to sync-git script 2025-01-10 16:56:57 +00:00
Evie Litherland-Smith 18438c02d3 Emacs: remove delight and ligature packages 2025-01-10 13:53:22 +00:00
Evie Litherland-Smith 8fe65143a7 Add dust and czkawka to default installed programs, for file management 2025-01-10 10:44:06 +00:00
Evie Litherland-Smith d484048d27 Add NYXT back to workspace 2 rule 2025-01-10 10:34:49 +00:00
Evie Litherland-Smith 5cc9b0eac3 Remove yamllint, eslint, julia-mode and pandoc-mode 2025-01-10 09:15:47 +00:00
Evie Litherland-Smith b12192c062 Flatten programming directory a bit
Remove python and lua directories, combine into default

Swap pylsp for pyright language server
2025-01-09 10:08:46 +00:00
Evie Litherland-Smith a999a6b89f Update pyshell.nix to create venv if it doesn't exist 2025-01-09 09:50:21 +00:00
Evie Litherland-Smith 92ca3261d9 Switch to using texlive full scheme
Kept finding packages I was missing...

Add engrave-faces package for Emacs to fontify src blocks when
exporting
2025-01-08 17:24:58 +00:00
Evie Litherland-Smith 332abdac90 Add scipy to default python environment 2025-01-08 15:17:25 +00:00
Evie Litherland-Smith 7c0447f65c Remove firefox homepage 2025-01-08 11:22:34 +00:00
Evie Litherland-Smith 32f6640071 Change workspace binds for Vanguard 2025-01-07 17:47:21 +00:00
Evie Litherland-Smith f7c94a461c Switch to Zsh as default shell 2025-01-07 15:15:47 +00:00
Evie Litherland-Smith 144458bb5d Set hyfetch preset based on light_dark
Trans flag only looks good with my dark theme colours so use rainbow
if light theme
2025-01-07 08:26:27 +00:00
Evie Litherland-Smith 36825e26a5 Add and switch to modified build of Iosevka font
Update Makefile for building and copying new fonts

Adjust padding of parts of waybar, using variable width glyphs in
Iosevka font
2025-01-07 08:18:05 +00:00
Evie Litherland-Smith 07b383cf3e Slightly increase default font sizes 2025-01-07 06:40:55 +00:00
Evie Litherland-Smith fd2be9449c Add ligature Emacs package 2025-01-07 06:00:55 +00:00
Evie Litherland-Smith 26adee2d0a Change to onedark as default, keep one-light for work machines 2025-01-07 06:00:22 +00:00
Evie Litherland-Smith 27f7469742 Remove emacs-all-the-icons-fonts 2025-01-07 05:08:21 +00:00
Evie Litherland-Smith c4cd32416b Emacs add nix-ts-mode package 2025-01-06 15:58:47 +00:00
Evie Litherland-Smith e0c36ff8bd Enable Samba service for work machines 2025-01-06 15:41:33 +00:00
Evie Litherland-Smith 18772f16a4 Add cameractrls-gtk4 package 2025-01-06 10:15:16 +00:00
Evie Litherland-Smith d90b337e5d flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/4005c3ff7505313cbc21081776ad0ce5dfd7a3ce?narHash=sha256-VIAjBr1qGcEbmhLwQJD6TABppPMggzOvqFsqkDoMsAY%3D' (2024-12-25)
  → 'github:nixos/nixpkgs/cbd8ec4de4469333c82ff40d057350c30e9f7d36?narHash=sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60%3D' (2025-01-05)
• Updated input 'stylix':
    'github:danth/stylix/9015d5d0d5d100f849129c43d257b827d300b089?narHash=sha256-fp1iV2JldCSvz%2B7ODzXYUkQ%2BH7zyiWw5E0MQ4ILC4vw%3D' (2024-12-13)
  → 'github:danth/stylix/5204b085385c0bfaa1eb1bb0f8dc81922012128d?narHash=sha256-MWe3RXEV9dov1wFZraWagVAxynPo/VceStIYfNRgqG4%3D' (2025-01-04)
• Added input 'stylix/git-hooks':
    'github:cachix/git-hooks.nix/cd1af27aa85026ac759d5d3fccf650abe7e1bbf0?narHash=sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf%2BInnSMT4jlMU%3D' (2024-11-11)
• Added input 'stylix/git-hooks/flake-compat':
    follows 'stylix/flake-compat'
• Added input 'stylix/git-hooks/gitignore':
    'github:hercules-ci/gitignore.nix/637db329424fd7e46cf4185293b9cc8c88c95394?narHash=sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs%3D' (2024-02-28)
• Added input 'stylix/git-hooks/gitignore/nixpkgs':
    follows 'stylix/git-hooks/nixpkgs'
• Added input 'stylix/git-hooks/nixpkgs':
    follows 'stylix/nixpkgs'
• Added input 'stylix/git-hooks/nixpkgs-stable':
    follows 'stylix/git-hooks/nixpkgs'
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/9e09d30a644c57257715902efbb3adc56c79cf28?narHash=sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q%2BT0BVeZE%3D' (2024-12-25)
  → 'github:numtide/treefmt-nix/13c913f5deb3a5c08bb810efd89dc8cb24dd968b?narHash=sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw%3D' (2025-01-06)
• Updated input 'treefmt-nix/nixpkgs':
    'github:nixos/nixpkgs/2c15aa59df0017ca140d9ba302412298ab4bf22a?narHash=sha256-9hbb1rqGelllb4kVUCZ307G2k3/UhmA8PPGBoyuWaSw%3D' (2024-12-02)
  → 'github:nixos/nixpkgs/0e82ab234249d8eee3e8c91437802b32c74bb3fd?narHash=sha256-zExSA1i/b%2B1NMRhGGLtNfFGXgLtgo%2BdcuzHzaWA6w3Q%3D' (2024-12-30)
2025-01-06 09:27:15 +00:00
Evie Litherland-Smith f0cc42a1ae Switch back to using nm-connection-editor and blueman-manager
Adjust positioning to be on the bottom left corner, to fit better with
waybar position
2025-01-06 09:26:11 +00:00
Evie Litherland-Smith 44a2cb9c6b Remove Emacs all-the-icons package 2025-01-06 07:48:03 +00:00
Evie Litherland-Smith 495c9928d1 Emacs add doom-modeline and dashboard packages
Add all-the-icons packages with font, experimenting if the spacing is
better than nerd-icons
2025-01-06 07:10:28 +00:00
Evie Litherland-Smith 91e8a53322 Change kanata caps tab to esc (remove caps entirely) 2025-01-06 07:10:10 +00:00
44 changed files with 861 additions and 725 deletions

View file

@ -1,5 +0,0 @@
repos:
- repo: https://github.com/gitleaks/gitleaks
rev: v8.18.4
hooks:
- id: gitleaks

View file

@ -7,10 +7,12 @@ default: build
build: build:
nix build --no-link --keep-going .#nixosConfigurations.$(HOST).config.system.build.toplevel nix build --no-link --keep-going .#nixosConfigurations.$(HOST).config.system.build.toplevel
server: fonts:
nix build --no-link --max-jobs 1 .#iosevka-custom-aile .#iosevka-custom-etoile .#iosevka-custom-nerdfont
server: fonts
nixos-rebuild build --flake .#Legion nixos-rebuild build --flake .#Legion
nix copy ./result --to ssh://legion nix copy ./result --to ssh://legion && rm ./result
rm ./result
flathub: flathub:
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

View file

@ -119,6 +119,59 @@
"type": "github" "type": "github"
} }
}, },
"git-hooks": {
"inputs": {
"flake-compat": [
"stylix",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"stylix",
"nixpkgs"
],
"nixpkgs-stable": [
"stylix",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"stylix",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -159,11 +212,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1735141468, "lastModified": 1736061677,
"narHash": "sha256-VIAjBr1qGcEbmhLwQJD6TABppPMggzOvqFsqkDoMsAY=", "narHash": "sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "4005c3ff7505313cbc21081776ad0ce5dfd7a3ce", "rev": "cbd8ec4de4469333c82ff40d057350c30e9f7d36",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -175,11 +228,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1733097829, "lastModified": 1735554305,
"narHash": "sha256-9hbb1rqGelllb4kVUCZ307G2k3/UhmA8PPGBoyuWaSw=", "narHash": "sha256-zExSA1i/b+1NMRhGGLtNfFGXgLtgo+dcuzHzaWA6w3Q=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2c15aa59df0017ca140d9ba302412298ab4bf22a", "rev": "0e82ab234249d8eee3e8c91437802b32c74bb3fd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -205,6 +258,7 @@
"base16-vim": "base16-vim", "base16-vim": "base16-vim",
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"git-hooks": "git-hooks",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"home-manager": [ "home-manager": [
"home-manager" "home-manager"
@ -218,11 +272,11 @@
"tinted-tmux": "tinted-tmux" "tinted-tmux": "tinted-tmux"
}, },
"locked": { "locked": {
"lastModified": 1734110444, "lastModified": 1736019457,
"narHash": "sha256-fp1iV2JldCSvz+7ODzXYUkQ+H7zyiWw5E0MQ4ILC4vw=", "narHash": "sha256-MWe3RXEV9dov1wFZraWagVAxynPo/VceStIYfNRgqG4=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "9015d5d0d5d100f849129c43d257b827d300b089", "rev": "5204b085385c0bfaa1eb1bb0f8dc81922012128d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -302,11 +356,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1735135567, "lastModified": 1736154270,
"narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=", "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "9e09d30a644c57257715902efbb3adc56c79cf28", "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -30,9 +30,22 @@
... ...
}: }:
let let
treefmt = treefmt-nix.lib.evalModule nixpkgs.legacyPackages.x86_64-linux ./treefmt.nix; pkgs = nixpkgs.legacyPackages.x86_64-linux;
treefmt = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
in in
{ {
packages.x86_64-linux =
let
fonts = pkgs.callPackage ./system/fonts.nix { };
in
{
inherit (fonts)
iosevka-custom
iosevka-custom-aile
iosevka-custom-etoile
iosevka-custom-nerdfont
;
};
formatter.x86_64-linux = treefmt.config.build.wrapper; formatter.x86_64-linux = treefmt.config.build.wrapper;
checks.x86_64-linux.formatting = treefmt.config.build.check self; checks.x86_64-linux.formatting = treefmt.config.build.check self;
nixosConfigurations = { nixosConfigurations = {

View file

@ -9,9 +9,10 @@
./services/nix-serve.nix ./services/nix-serve.nix
./services/sshd.nix ./services/sshd.nix
./services/syncthing.nix ./services/syncthing.nix
./services/webdav.nix
./services/xandikos.nix ./services/xandikos.nix
# ./services/minecraft.nix # ./services/minecraft.nix
./services/satisfactory/default.nix # ./services/satisfactory/default.nix
]; ];
boot.loader = { boot.loader = {
systemd-boot.enable = true; systemd-boot.enable = true;

View file

@ -5,5 +5,6 @@
home.stateVersion = "23.05"; home.stateVersion = "23.05";
wayland.windowManager.hyprland.settings.monitor = [ "eDP-1,preferred,auto,1.25" ]; wayland.windowManager.hyprland.settings.monitor = [ "eDP-1,preferred,auto,1.25" ];
}; };
networking.wg-quick.interfaces.wg0.configFile = "/etc/wireguard/gb-mnc-wg-001.conf";
system.stateVersion = "23.05"; system.stateVersion = "23.05";
} }

View file

@ -9,7 +9,6 @@
./desktop.nix ./desktop.nix
./steam.nix ./steam.nix
]; ];
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/onedark.yaml";
home-manager.users.${username} = { home-manager.users.${username} = {
imports = [ ./home/swww/default.nix ]; imports = [ ./home/swww/default.nix ];
home = { home = {
@ -63,9 +62,7 @@
workspace = [ workspace = [
"2, monitor:desc:${secondary}" "2, monitor:desc:${secondary}"
"3, monitor:desc:${secondary}" "3, monitor:desc:${secondary}"
"4, monitor:desc:${primary}"
"5, monitor:desc:${primary}" "5, monitor:desc:${primary}"
"6, monitor:desc:${primary}"
"7, monitor:desc:${primary}" "7, monitor:desc:${primary}"
]; ];
}; };
@ -91,5 +88,6 @@
}; };
}; };
services.hardware.openrgb.enable = true; services.hardware.openrgb.enable = true;
networking.wg-quick.interfaces.wg0.configFile = "/etc/wireguard/gb-mnc-wg-001.conf";
system.stateVersion = "23.05"; system.stateVersion = "23.05";
} }

View file

@ -18,19 +18,12 @@
enable = true; enable = true;
package = pkgs.nixVersions.latest; package = pkgs.nixVersions.latest;
settings = { settings = {
cores = 0; trusted-users = [ username ];
max-jobs = "auto";
trusted-users = [
"root"
username
];
experimental-features = [ experimental-features = [
"nix-command" "nix-command"
"flakes" "flakes"
]; ];
auto-optimise-store = true; auto-optimise-store = true;
substituters = [ "https://nix.xenia.me.uk" ];
trusted-public-keys = [ "nix.xenia.me.uk:tlgwOaG5KMLjQUk2YaErS8mAG69ZCr3PaHXZYi+Y5eI=" ];
}; };
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
channel.enable = true; channel.enable = true;
@ -39,16 +32,6 @@
options = "--delete-older-than 3d"; options = "--delete-older-than 3d";
}; };
optimise.automatic = true; optimise.automatic = true;
registry.my-nixos = {
from = {
type = "indirect";
id = "my-nixos";
};
to = {
type = "git";
url = "https://git.xenia.me.uk/pixelifytica/nixos.git?ref=main";
};
};
extraOptions = '' extraOptions = ''
keep-outputs = false keep-outputs = false
keep-derivations = false keep-derivations = false
@ -67,7 +50,7 @@
"nomachine-client" "nomachine-client"
]; ];
system.autoUpgrade = { system.autoUpgrade = {
enable = true; enable = false; # TEMP disable until server is back up
persistent = true; persistent = true;
allowReboot = false; allowReboot = false;
flake = "git+${config.nix.registry.my-nixos.to.url}"; flake = "git+${config.nix.registry.my-nixos.to.url}";
@ -110,6 +93,7 @@
isNormalUser = true; isNormalUser = true;
group = "users"; group = "users";
description = "Evie Litherland-Smith"; description = "Evie Litherland-Smith";
shell = pkgs.zsh;
extraGroups = [ extraGroups = [
"networkmanager" "networkmanager"
"wheel" "wheel"
@ -134,6 +118,7 @@
imports = [ imports = [
./home/shell/default.nix ./home/shell/default.nix
./home/scripts/default.nix ./home/scripts/default.nix
./home/gpg/default.nix
]; ];
home = { home = {
inherit username; inherit username;
@ -165,12 +150,14 @@
dig dig
wireguard-tools wireguard-tools
librespeed-cli librespeed-cli
dust
quickemu quickemu
distrobox distrobox
]; ];
localBinInPath = true; localBinInPath = true;
}; };
programs = { programs = {
zsh.enable = true;
command-not-found.enable = false; command-not-found.enable = false;
ssh.startAgent = true; ssh.startAgent = true;
nano = { nano = {
@ -214,30 +201,43 @@
base16Scheme = lib.mkDefault "${pkgs.base16-schemes}/share/themes/one-light.yaml"; base16Scheme = lib.mkDefault "${pkgs.base16-schemes}/share/themes/one-light.yaml";
polarity = config.lib.stylix.scheme.variant; polarity = config.lib.stylix.scheme.variant;
opacity = { opacity = {
applications = 0.9; applications = 1.0;
desktop = 0.7; terminal = 0.8125; # 0x0.D
popups = 0.5; desktop = 0.75; # 0x0.C
terminal = 0.9; popups = 0.6875; # 0x0.B
}; };
cursor = { cursor = {
package = pkgs.volantes-cursors; package = pkgs.volantes-cursors;
name = "volantes_cursors"; name = "volantes_cursors";
size = 32; size = 32;
}; };
fonts = { fonts =
monospace = { let
package = pkgs.nerdfonts.override { fonts = [ "DejaVuSansMono" ]; }; fpkgs = pkgs.callPackage ./fonts.nix { };
name = "DejaVuSansM Nerd Font"; in
{
serif = {
package = fpkgs.iosevka-custom-etoile;
name = "Iosevka Custom Etoile";
};
sansSerif = {
package = fpkgs.iosevka-custom-aile;
name = "Iosevka Custom Aile";
};
monospace = {
package = fpkgs.iosevka-custom-nerdfont;
name = "IosevkaCustom Nerd Font Propo";
};
sizes = {
applications = 12;
desktop = 14;
popups = 16;
terminal = 12;
};
}; };
sizes = {
applications = 10;
desktop = 12;
popups = 14;
terminal = 10;
};
};
}; };
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
dejavu_fonts # Compatibility
liberation_ttf # Documents liberation_ttf # Documents
lmodern # LaTeX lmodern # LaTeX
(nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; }) (nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; })

View file

@ -23,7 +23,10 @@
systemPackages = with pkgs; [ systemPackages = with pkgs; [
libsecret libsecret
libnotify libnotify
libarchive
xdg-utils xdg-utils
imagemagick
ffmpeg
hunspell hunspell
hunspellDicts.en_GB-large hunspellDicts.en_GB-large
wl-clipboard wl-clipboard
@ -31,19 +34,14 @@
grim grim
slurp slurp
swappy swappy
nautilus xfce.ristretto
libreoffice
evince
image-roll
imagemagick
clapper
g4music g4music
ffmpeg
picard picard
zotero
evince
libreoffice
webcord webcord
signal-desktop signal-desktop
whatsapp-for-linux
teams-for-linux
nomachine-client nomachine-client
]; ];
}; };
@ -60,24 +58,36 @@
}; };
programs = { programs = {
dconf.enable = true; dconf.enable = true;
xfconf.enable = true;
noisetorch.enable = true; noisetorch.enable = true;
seahorse.enable = true; seahorse.enable = true;
file-roller.enable = true; file-roller.enable = true;
hyprland.enable = true; thunar = {
xwayland.enable = true; enable = true;
plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
];
};
hyprland = {
enable = true;
xwayland.enable = true;
};
}; };
gtk.iconCache.enable = true; gtk.iconCache.enable = true;
qt = { qt = {
enable = true; enable = true;
platformTheme = "gnome";
style = if config.lib.stylix.scheme.variant == "light" then "adwaita" else "adwaita-dark"; style = if config.lib.stylix.scheme.variant == "light" then "adwaita" else "adwaita-dark";
}; };
services = { services = {
xserver.xkb.layout = "gb";
gnome.gnome-keyring.enable = true; gnome.gnome-keyring.enable = true;
flatpak.enable = true; flatpak.enable = true;
printing.enable = true; printing.enable = true;
tumbler.enable = true; tumbler.enable = true;
udisks2.enable = true; udisks2.enable = true;
gnome.sushi.enable = true; blueman.enable = config.hardware.bluetooth.enable;
gvfs = { gvfs = {
enable = true; enable = true;
package = pkgs.gnome.gvfs; package = pkgs.gnome.gvfs;
@ -111,10 +121,6 @@
}; };
}; };
}; };
xserver = {
enable = true;
xkb.layout = "gb";
};
}; };
xdg.portal = { xdg.portal = {
enable = true; enable = true;
@ -131,21 +137,21 @@
{ {
imports = [ imports = [
./home/hyprland.nix ./home/hyprland.nix
./home/terminal/default.nix ./home/terminal.nix
./home/browser/firefox.nix ./home/browser/firefox.nix
./home/browser/nyxt.nix
./home/emacs/default.nix ./home/emacs/default.nix
./home/email/default.nix ./home/email/default.nix
./home/calendar/default.nix ./home/calendar/default.nix
./home/password-store/default.nix ./home/password-store/default.nix
]; ];
home.file.${config.gtk.gtk2.configLocation}.force = true; home.file.${config.gtk.gtk2.configLocation}.force = true;
programs.mpv.enable = true;
services = { services = {
syncthing.enable = true; syncthing.enable = true;
gammastep = { gammastep = {
inherit (osConfig.location) latitude longitude provider; inherit (osConfig.location) latitude longitude provider;
enable = true; enable = true;
tray = true; tray = false;
}; };
}; };
gtk = { gtk = {
@ -199,44 +205,24 @@
early_exit=false early_exit=false
fill_shape=false fill_shape=false
''; '';
# WhatsApp config # Matplotlib default figure sizes and font settings
"whatsapp-for-linux/settings.conf" = "matplotlib/matplotlibrc".text =
let let
inherit (config.lib.stylix.scheme) variant; inherit (config.stylix) fonts;
in in
{ ''
force = true; font.family: sans-serif
text = '' font.serif: ${fonts.serif.name}, DejaVu Serif
[web] font.sans-serif: ${fonts.sansSerif.name}, DejaVu Sans
allow-permissions=true font.monospace: ${fonts.monospace.name}, DejaVu Sans Mono
hw-accel=2 figure.figsize: 8, 6
figure.dpi: 150
[general] figure.autolayout: True
notification-sounds=true savefig.dpi: 300
close-to-tray=true '';
start-in-tray=true
[appearance]
prefer-dark-theme=${if variant == "dark" then "true" else "false"}
'';
};
# Teams config
"teams-for-linux/config.json" = {
force = true;
text = builtins.toJSON {
awayOnSystemIdle = true;
closeAppOnCross = false;
followSystemTheme = true;
notificationMethod = "electron";
optInTeamsV2 = true;
spellCheckerLanguages = [ "en_GB" ];
};
};
# Autostart some programs # Autostart some programs
"autostart/signal-desktop.desktop".source = "autostart/signal-desktop.desktop".source =
"${pkgs.signal-desktop}/share/applications/signal-desktop.desktop"; "${pkgs.signal-desktop}/share/applications/signal-desktop.desktop";
"autostart/com.github.eneshecan.WhatsAppForLinux.desktop".source =
"${pkgs.whatsapp-for-linux}/share/applications/com.github.eneshecan.WhatsAppForLinux.desktop";
}; };
}; };
}; };

139
system/fonts.nix Normal file
View file

@ -0,0 +1,139 @@
{
stdenv,
findutils,
iosevka,
nerd-font-patcher,
}:
let
custom-build-plan = {
noCvSs = false;
exportGlyphNames = false;
widths.Normal = {
shape = 500;
menu = 5;
css = "normal";
};
weights = {
Regular = {
shape = 400;
menu = 400;
css = 400;
};
Bold = {
shape = 700;
menu = 700;
css = 700;
};
};
slopes = {
Upright = {
angle = 0;
shape = "upright";
menu = "upright";
css = "normal";
};
Italic = {
angle = 9.4;
shape = "italic";
menu = "italic";
css = "italic";
};
};
variants.design = {
capital-g = "toothless-corner-serifless-hooked";
capital-j = "serifed-both-sides";
capital-k = "curly-serifless";
capital-p = "closed-motion-serifed";
capital-q = "crossing";
capital-r = "curly-serifless";
capital-u = "tailed-serifless";
capital-z = "straight-serifless-with-horizontal-crossbar";
a = "double-storey-tailed";
d = "tailed-serifless";
e = "rounded";
f = "tailed-crossbar-at-x-height";
g = "double-storey-open";
h = "tailed-serifless";
i = "tailed-serifed";
j = "serifed";
k = "cursive-serifless";
l = "tailed-serifed";
m = "tailed-serifless";
n = "tailed-serifless";
q = "diagonal-tailed-serifless";
u = "tailed-serifless";
y = "cursive-serifless";
z = "straight-serifless-with-horizontal-crossbar";
lower-delta = "flat-top";
lower-lambda = "tailed-turn";
lower-xi = "flat-top";
lower-chi = "semi-chancery-straight-serifless";
zero = "tall-slashed";
one = "no-base";
two = "straight-neck-serifless";
three = "flat-top-serifless";
four = "semi-open-serifless";
five = "oblique-arched-serifless";
six = "open-contour";
seven = "bend-serifless-crossbar";
eight = "two-circles";
nine = "open-contour";
asterisk = "hex-low";
underscore = "high";
caret = "high";
paren = "normal";
brace = "straight";
number-sign = "slanted";
ampersand = "closed";
at = "fourfold";
percent = "dots";
question = "corner";
lig-ltgteq = "flat";
lig-neq = "more-slanted";
lig-equal-chain = "without-notch";
lig-hyphen-chain = "without-notch";
lig-double-arrow-bar = "without-notch";
lig-single-arrow-bar = "without-notch";
};
};
in
rec {
iosevka-custom = iosevka.override {
set = "Custom";
privateBuildPlan = custom-build-plan // {
family = "Iosevka Custom";
spacing = "normal";
serifs = "sans";
};
};
iosevka-custom-aile = iosevka.override {
set = "CustomAile";
privateBuildPlan = custom-build-plan // {
family = "Iosevka Custom Aile";
spacing = "quasi-proportional";
serifs = "sans";
};
};
iosevka-custom-etoile = iosevka.override {
set = "CustomEtoile";
privateBuildPlan = custom-build-plan // {
family = "Iosevka Custom Etoile";
spacing = "quasi-proportional";
serifs = "slab";
};
};
iosevka-custom-nerdfont = stdenv.mkDerivation {
name = "${iosevka-custom.name}-nerd-font-patched";
src = iosevka-custom;
nativeBuildInputs = [
findutils
nerd-font-patcher
];
buildPhase = ''
find \( -name \*.ttf -o -name \*.otf \) -execdir nerd-font-patcher --variable-width-glyphs --careful --complete --boxdrawing --no-progressbars {} \;
'';
installPhase = ''
cp -a . $out
'';
};
}

View file

@ -76,7 +76,7 @@
}, },
{ {
"name": "Awesome Wayland", "name": "Awesome Wayland",
"url": "https://github.com/natpen/awesome-wayland", "url": "https://github.com/rcalixte/awesome-wayland",
"tags": ["Software", "Repositories"] "tags": ["Software", "Repositories"]
}, },
{ {
@ -89,6 +89,11 @@
"url": "https://github.com/reHackable/awesome-reMarkable", "url": "https://github.com/reHackable/awesome-reMarkable",
"tags": ["Software", "Repositories"] "tags": ["Software", "Repositories"]
}, },
{
"name": "We Are Wayland Now!",
"url": "https://wearewaylandnow.com/",
"tags": ["Software"]
},
{ {
"name": "NixOS Wiki", "name": "NixOS Wiki",
"url": "https://nixos.wiki", "url": "https://nixos.wiki",

View file

@ -2,7 +2,9 @@
((default-modes ((default-modes
(pushnew 'nyxt/mode/emacs:emacs-mode %slot-value%)) (pushnew 'nyxt/mode/emacs:emacs-mode %slot-value%))
(default-modes (default-modes
(pushnew 'nyxt/mode/blocker:blocker-mode %slot-value%)))) (pushnew 'nyxt/mode/blocker:blocker-mode %slot-value%))
(default-modes
(pushnew 'nyxt/mode/reduce-tracking:reduce-tracking-mode %slot-value%))))
(define-configuration status-buffer (define-configuration status-buffer
((glyph-mode-presentation-p t) ((glyph-mode-presentation-p t)
@ -46,6 +48,7 @@
'("crates" "https://crates.io/search?q=~a" "https://crates.io/") '("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") '("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/") '("pypi" "https://pypi.org/search/?q=~a" "https://pypi.org/")
'("nixpkgs" "https://search.nixos.org/packages?type=packages&query=~a" "https://search.nixos.org/packages")
'("archwiki" "https://wiki.archlinux.org/index.php?search=~a" "https://wiki.archlinux.org/") '("archwiki" "https://wiki.archlinux.org/index.php?search=~a" "https://wiki.archlinux.org/")
'("nixwiki" "https://wiki.nixos.org/w/index.php?search=~a" "https://wiki.nixos.org") '("nixwiki" "https://wiki.nixos.org/w/index.php?search=~a" "https://wiki.nixos.org")
'("github" "https://github.com/search?utf8=✓&q=~a&type=repositories" "https://github.com/") '("github" "https://github.com/search?utf8=✓&q=~a&type=repositories" "https://github.com/")
@ -58,8 +61,7 @@
(define-configuration context-buffer (define-configuration context-buffer
"Go through the search engines above and make-search-engine out of them." "Go through the search engines above and make-search-engine out of them."
((search-engines ((search-engines
(mapcar (lambda (engine) (apply 'make-search-engine engine)) (mapcar (lambda (engine) (apply 'make-search-engine engine)) *my-search-engines*))))
*my-search-engines*))))
(define-configuration browser (define-configuration browser
((restore-session-on-startup-p nil))) ((restore-session-on-startup-p t)))

View file

@ -18,33 +18,32 @@
;; Define custom theme ;; Define custom theme
(define-configuration browser (define-configuration browser
((theme (make-instance 'theme:theme ((theme (make-instance 'theme:theme
:dark-p ${if variant == "light" then "nil" else "t"}
:font-family "${fonts.sansSerif.name}" :font-family "${fonts.sansSerif.name}"
:monospace-font-family "${fonts.monospace.name}" :monospace-font-family "${fonts.monospace.name}"
:text-color "${scheme.base05}" :text-color "${scheme.base05}"
:contrast-text-color "${scheme.base01}" :contrast-text-color "${scheme.base01}"
:background-color "${scheme.base00}" :background-color "${scheme.base00}"
:primary-color "${scheme.base02}" :primary-color "${scheme.base04}"
:secondary-color "${scheme.base03}" :secondary-color "${scheme.base03}"
:tertiary-color "${scheme.base04}" :tertiary-color "${scheme.base02}"
:quaternary-color "${scheme.base04}" :quaternary-color "${scheme.base02}"
:accent-color "${scheme.base0E}" :accent-color "${accent}"
:action-color "${scheme.cyan}" :action-color "${scheme.cyan}"
:success-color "${scheme.green}" :success-color "${scheme.green}"
:warning-color "${scheme.yellow}" :warning-color "${scheme.yellow}"
:highlight-color "${scheme.base01}" :highlight-color "${scheme.base04}"
:codeblock-color "${scheme.base01}" :codeblock-color "${scheme.base01}"
;; :on-background-color "${scheme.base05}" :on-background-color "${scheme.base05}"
;; :on-primary-color "${scheme.base05}" :on-primary-color "${scheme.base00}"
;; :on-secondary-color "${scheme.base05}" :on-secondary-color "${scheme.base01}"
;; :on-tertiary-color "${scheme.base05}" :on-tertiary-color "${scheme.base04}"
;; :on-quaternary-color "${scheme.base05}" :on-quaternary-color "${scheme.base04}"
;; :on-accent-color "${scheme.base01}" :on-accent-color "${scheme.base01}"
;; :on-action-color "${scheme.base01}" :on-action-color "${scheme.base01}"
;; :on-success-color "${scheme.base01}" :on-success-color "${scheme.base01}"
;; :on-warning-color "${scheme.base01}" :on-warning-color "${scheme.base01}"
;; :on-highlight-color "${scheme.base01}" :on-highlight-color "${scheme.base01}"
;; :on-codeblock-color "${scheme.base05}" :on-codeblock-color "${scheme.base05}"
)))) ))))
''; '';
}; };
@ -53,8 +52,8 @@
# Make a string of lisp-style list of strings, from nix-style # Make a string of lisp-style list of strings, from nix-style
# list # list
convertTags = tags: "(" + (builtins.foldl' (x: y: x + " \"" + y + "\"") "" tags) + " )"; convertTags = tags: "(" + (builtins.foldl' (x: y: x + " \"" + y + "\"") "" tags) + " )";
# Take bookmarks as returned from JSON file and convert to NYXT # Take bookmarks as returned from JSON file and convert to
# expected format # NYXT expected format
convertBookmark = convertBookmark =
{ {
name, name,
@ -64,10 +63,10 @@
"(:url \"${url}\" :title \"${name}\" :tags ${convertTags tags})\n"; "(:url \"${url}\" :title \"${name}\" :tags ${convertTags tags})\n";
in in
( (
# Fold all entries in bookmarks.json into single string of NYXT # Fold all entries in bookmarks.json into single string of
# format bookmarks, each entry on a new line and with 2 space # NYXT format bookmarks, each entry on a new line and with 2
# indentation, just for visual clarity if reading the outputted # space indentation, just for visual clarity if reading the
# file # outputted file
"(\n" "(\n"
+ (builtins.foldl' (x: y: x + " " + convertBookmark y) "" ( + (builtins.foldl' (x: y: x + " " + convertBookmark y) "" (
builtins.fromJSON (builtins.readFile ./bookmarks.json) builtins.fromJSON (builtins.readFile ./bookmarks.json)

View file

@ -1,6 +1,4 @@
{ {
config,
lib,
pkgs, pkgs,
... ...
}: }:
@ -12,13 +10,7 @@
../texlive/default.nix ../texlive/default.nix
../programming/default.nix ../programming/default.nix
]; ];
services.emacs = { home.sessionVariables.EDITOR = "emacs";
enable = lib.mkDefault true;
package = config.programs.emacs.finalPackage;
defaultEditor = true;
client.enable = true;
socketActivation.enable = true;
};
programs.emacs = { programs.emacs = {
enable = true; enable = true;
package = pkgs.emacs30.override { package = pkgs.emacs30.override {
@ -37,5 +29,7 @@
mupdf-headless mupdf-headless
poppler_utils poppler_utils
graphviz-nox graphviz-nox
toolbox
]; ];
} }

View file

@ -4,11 +4,12 @@ with epkgs;
# EViL Mode # EViL Mode
evil evil
# UI and Appearance # UI and Appearance
delight
nerd-icons nerd-icons
nerd-icons-dired nerd-icons-dired
nerd-icons-ibuffer nerd-icons-ibuffer
nerd-icons-corfu nerd-icons-corfu
doom-modeline
visual-fill-column
# Email and Calendar # Email and Calendar
khalel khalel
mu4e mu4e
@ -25,7 +26,6 @@ with epkgs;
corfu-terminal corfu-terminal
cape cape
consult consult
consult-eglot
tempel tempel
tempel-collection tempel-collection
rainbow-delimiters rainbow-delimiters
@ -34,18 +34,15 @@ with epkgs;
treesit-auto treesit-auto
apheleia apheleia
flymake-shellcheck flymake-shellcheck
flymake-yamllint
flymake-clippy flymake-clippy
flymake-eslint
magit magit
forge
nix-mode nix-mode
julia-mode nix-ts-mode
julia-ts-mode nushell-ts-mode
python-docstring python-docstring
python-pytest python-pytest
engrave-faces
auctex auctex
markdown-mode markdown-mode
pandoc-mode
scad-mode scad-mode
] ]

View file

@ -248,21 +248,21 @@
"pin, org.kde.polkit-kde-authentication-agent-1|Pinentry|pinentry-qt|gcr-prompter" "pin, org.kde.polkit-kde-authentication-agent-1|Pinentry|pinentry-qt|gcr-prompter"
"dimaround, org.kde.polkit-kde-authentication-agent-1|Pinentry|pinentry-qt|gcr-prompter" "dimaround, org.kde.polkit-kde-authentication-agent-1|Pinentry|pinentry-qt|gcr-prompter"
"stayfocused, org.kde.polkit-kde-authentication-agent-1|Pinentry|pinentry-qt|gcr-prompter" "stayfocused, org.kde.polkit-kde-authentication-agent-1|Pinentry|pinentry-qt|gcr-prompter"
# Audio control panel # PulseAudio, Network and Bluetooth control panels
"float, pavucontrol" "float, pavucontrol|nm-connection-editor|.blueman-manager-wrapped"
"size 800 600, pavucontrol" "size 800 600, pavucontrol|nm-connection-editor|.blueman-manager-wrapped"
"move onscreen 100%-820 50,pavucontrol" "move onscreen 50 100%-615,pavucontrol|nm-connection-editor|.blueman-manager-wrapped"
# File browser and picker dialog # File picker dialog
"float, org.gnome.Nautilus|xdg-desktop-portal-gtk" "float, xdg-desktop-portal-gtk"
"size 800 600, org.gnome.Nautilus|xdg-desktop-portal-gtk" "size 800 600, xdg-desktop-portal-gtk"
"center, org.gnome.Nautilus|xdg-desktop-portal-gtk" "center, xdg-desktop-portal-gtk"
# Matplotlib plots # Matplotlib plots
"float, Matplotlib" "float, Matplotlib"
# Workspace rules # Workspace rules
"workspace 2, (firefox)" # Browser "workspace 2, (firefox)" # Browser
"workspace 3, (signal|whatsapp-for-linux|WebCord|teams-for-linux|twinkle)" # Messaging "workspace 3, (signal|WebCord|teams-for-linux|twinkle)" # Messaging
"workspace 4, (libreoffice|soffice)(.*)" # Documents "workspace 4, (Zotero|libreoffice|soffice|org.musicbrainz.Picard)(.*)" # Files
"workspace 5, (Nxplayer.bin)" # Remote Desktop "workspace 5, (Nxplayer.bin)" # Remote Desktop
"workspace 6, (PrusaSlicer)" # 3D Printing "workspace 6, (PrusaSlicer)" # 3D Printing
"workspace 7, (steam_app|steam|lutris|page.kramo.Cartridges|org.prismlauncher.PrismLauncher|explorer.exe|gw2-64.exe|rsi launcher.exe)" # Gaming "workspace 7, (steam_app|steam|lutris|page.kramo.Cartridges|org.prismlauncher.PrismLauncher|explorer.exe|gw2-64.exe|rsi launcher.exe)" # Gaming
@ -281,15 +281,16 @@
"center, title:Library,class:firefox" "center, title:Library,class:firefox"
"pin, title:Picture-in-Picture,class:firefox" "pin, title:Picture-in-Picture,class:firefox"
# NautilusPreviewer (Sushi)
"float, class:org.gnome.NautilusPreviewer"
"center, class:org.gnome.NautilusPreviewer"
# Electron file picker dialog # Electron file picker dialog
"float, title:Open Files,class:electron" "float, title:Open Files,class:electron"
"size 800 600, title:Open Files,class:electron" "size 800 600, title:Open Files,class:electron"
"center, title:Open Files,class:electron" "center, title:Open Files,class:electron"
# Zotero settings window
"float, title:(Zotero Settings|Progress),class:Zotero"
"size 800 600, title:(Zotero Settings|Progress),class:Zotero"
"center, title:(Zotero Settings|Progress),class:Zotero"
# Inhibit idle when watching videos # Inhibit idle when watching videos
"idleinhibit fullscreen, class:firefox|com.github.rafostar.Clapper" "idleinhibit fullscreen, class:firefox|com.github.rafostar.Clapper"
@ -327,7 +328,7 @@
++ [ ++ [
# See https://wiki.hyprland.org/Configuring/Keywords/ for more # See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Open Hyprland wiki at correct version number # Open Hyprland wiki at correct version number
"CTRL_SHIFT, H, exec, xdg-open \"https://wiki.hyprland.org/$(${config.wayland.windowManager.hyprland.finalPackage}/bin/hyprctl version -j | ${pkgs.jq}/bin/jq $args.tag | ${pkgs.gnused}/bin/sed s/v// | ${pkgs.gnused}/bin/sed s/\\\"//g)\"" "CTRL_SHIFT, H, exec, xdg-open \"https://wiki.hyprland.org/$(${config.wayland.windowManager.hyprland.finalPackage}/bin/hyprctl version -j | ${pkgs.jq}/bin/jq $args.tag | ${pkgs.gnused}/bin/sed s/v// | ${pkgs.gnused}/bin/sed s/\\\"//g | ${pkgs.gnugrep}/bin/grep -Po \"[0-9]+\.[0-9]+\").0\""
"SUPER, F1, exec, ${config.programs.hyprlock.package}/bin/hyprlock" "SUPER, F1, exec, ${config.programs.hyprlock.package}/bin/hyprlock"
"SUPER, P, exec, ${config.programs.wlogout.package}/bin/wlogout" "SUPER, P, exec, ${config.programs.wlogout.package}/bin/wlogout"
@ -344,11 +345,11 @@
"SUPER SHIFT, Z, exec, exec ${config.services.mako.package}/bin/makoctl dismiss -a" "SUPER SHIFT, Z, exec, exec ${config.services.mako.package}/bin/makoctl dismiss -a"
# Common program shortcuts # Common program shortcuts
"SUPER, Space, exec, ${config.programs.fuzzel.package}/bin/fuzzel" "SUPER, D, exec, ${config.programs.fuzzel.package}/bin/fuzzel"
"SUPER, Return, exec, ${config.programs.alacritty.package}/bin/alacritty" "SUPER, C, exec, ${config.programs.alacritty.package}/bin/alacritty"
"SUPER SHIFT, Return, exec, ${config.programs.emacs.finalPackage}/bin/emacsclient -c" "SUPER, E, exec, ${config.programs.emacs.finalPackage}/bin/emacs"
"SUPER, W, exec, ${pkgs.nyxt}/bin/nyxt --no-socket" "SUPER, W, exec, ${config.programs.firefox.finalPackage}/bin/firefox"
"SUPER, F, exec, ${pkgs.nautilus}/bin/nautilus" "SUPER, F, exec, thunar"
# Misc useful binds # Misc useful binds
",Print,exec,${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.swappy}/bin/swappy -f -" ",Print,exec,${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.swappy}/bin/swappy -f -"

View file

@ -1,23 +1,46 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
imports = [ home.packages =
./python/default.nix let
./lua/default.nix pythonEnv = (
]; pkgs.python312.withPackages (
home.packages = with pkgs; [ ps: with ps; [
## Linters ipython
shellcheck python-lsp-server
yamllint pyflakes
isort
numpy
scipy
astropy
xarray
netcdf4
matplotlib
]
)
);
luaEnv = (pkgs.luajit.withPackages (ps: [ (ps.callPackage ./luarocks/scilua.nix { }) ]));
in
with pkgs;
[
## Language Environments
pythonEnv
luaEnv
## Formatters ## Linters
nixfmt-rfc-style shellcheck
shfmt ruff
nodePackages.prettier
nodePackages.prettier-plugin-toml
## Language servers ## Formatters
nixd nixfmt-rfc-style
rust-analyzer shfmt
nodePackages.typescript-language-server stylua
]; nodePackages.prettier
## Language servers
nixd
lua-language-server
rust-analyzer
];
home.file.".ipython/profile_default/ipython_config.json".source = ./ipython_config.json;
xdg.configFile."ruff/pyproject.toml".source = ./ruff.toml;
} }

View file

@ -0,0 +1,15 @@
{
"Application": { "log_datefmt": "%Y-%m-%d %H:%M:%S" },
"InteractiveShell": {
"color_info": true
},
"InteractiveShellApp": {
"exec_PYTHONSTARTUP": false,
"exec_lines": ["%load_ext autoreload", "%autoreload 2 --print"]
},
"TerminalInteractiveShell": {
"editing_mode": "emacs",
"mouse_support": false,
"true_color": true
}
}

View file

@ -1,8 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
(luajit.withPackages (ps: [ (ps.callPackage ./luarocks/scilua.nix { }) ]))
lua-language-server
stylua
];
}

View file

@ -1,18 +1,20 @@
{ {
pkgs ? import <nixpkgs> { }, pkgs ? import <nixpkgs> { },
python3 ? pkgs.python3, python3 ? pkgs.python3Full,
extraPackages ? with pkgs; [ uv ], extraPackages ? [ ],
extraLibs ? [ ],
}: }:
let let
inherit (pkgs) lib; inherit (pkgs) lib;
ldlibs = lib.makeLibraryPath ( ldlibs = lib.makeLibraryPath (
with pkgs; (with pkgs; [
[
stdenv.cc.cc stdenv.cc.cc
glib
glibc glibc
zlib zlib
zstd zstd
] ])
++ extraLibs
); );
pythonWrapped = pkgs.symlinkJoin { pythonWrapped = pkgs.symlinkJoin {
name = "python"; name = "python";
@ -24,8 +26,12 @@ let
}; };
in in
pkgs.mkShellNoCC { pkgs.mkShellNoCC {
packages = [ pythonWrapped ] ++ extraPackages; packages = [
pythonWrapped
pkgs.uv
] ++ extraPackages;
shellHook = '' shellHook = ''
[ ! -d .venv ] && ${pythonWrapped}/bin/python3 -m venv .venv
[ -f .venv/bin/activate ] && source .venv/bin/activate [ -f .venv/bin/activate ] && source .venv/bin/activate
''; '';
} }

View file

@ -1,24 +0,0 @@
{ pkgs, ... }:
let
pythonEnv = (
pkgs.python312.withPackages (
ps: with ps; [
python-lsp-server
isort
flake8
mypy
numpy
xarray
netcdf4
matplotlib
]
)
);
in
{
home.packages = [
pkgs.ruff
pythonEnv
];
xdg.configFile."ruff/pyproject.toml".source = ./ruff.toml;
}

View file

@ -24,3 +24,9 @@ HOST="api.github.com"
USER="pixelifytica^forge" USER="pixelifytica^forge"
secret-tool clear host "$HOST" user "$USER" secret-tool clear host "$HOST" user "$USER"
pass show "api/$HOST" | head -n1 | secret-tool store --label="Forge GitHub Token" host "$HOST" user "$USER" pass show "api/$HOST" | head -n1 | secret-tool store --label="Forge GitHub Token" host "$HOST" user "$USER"
# IRC
HOST="irc.libera.chat"
USER="xenia3"
secret-tool clear host "$HOST" user "$USER"
pass show "social/$HOST" | head -n1 | secret-tool store --label="IRC libera.chat" host "$HOST" user "$USER"

View file

@ -1,6 +1,6 @@
HOSTS=("$@") HOSTS=("$@")
# Config files # Config files
for TARGET in ".inputrc" ".config/starship.toml"; do for TARGET in ".inputrc" ".config/starship.toml" ".ipython/profile_default/ipython_config.json"; do
SOURCE="$HOME/$TARGET" SOURCE="$HOME/$TARGET"
echo "--- $SOURCE ---" echo "--- $SOURCE ---"
TMP_TARGET=/tmp/rsync-local-config TMP_TARGET=/tmp/rsync-local-config

View file

@ -1,13 +1,27 @@
# Clone ~/.config/emacs/ if it doesn't exist, pull otherwise
EMACS_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/emacs"
EMACS_URL="https://git.xenia.me.uk/pixelifytica/emacs.git"
if [ -d "$EMACS_DIR" ]; then
git -C "$EMACS_DIR" remote set-url origin "$EMACS_URL"
git -C "$EMACS_DIR" pull --ff --ff-only
else
git clone "$EMACS_URL" "$EMACS_DIR"
fi
# Cleanup legacy Emacs config file/directory
[ -f "$HOME/.emacs" ] && rm "$HOME/.emacs"
[ -d "$HOME/.emacs.d" ] && rm -r "$HOME/.emacs.d"
# Sync common directories, setting url to ensure it's up-to-date first # Sync common directories, setting url to ensure it's up-to-date first
SYNC_DIRS=( SYNC_DIRS=(
"$HOME/.password-store/" "$HOME/.password-store/"
"$HOME/Documents/org/" "$HOME/Documents/org/"
"$HOME/Documents/library/" "$HOME/Documents/notebooks/"
) )
SYNC_URLS=( SYNC_URLS=(
"https://git.xenia.me.uk/pixelifytica/pass.git" "https://git.xenia.me.uk/pixelifytica/pass.git"
"https://git.xenia.me.uk/pixelifytica/org.git" "https://git.xenia.me.uk/pixelifytica/org.git"
"https://git.xenia.me.uk/pixelifytica/library.git" "git@git.ccfe.ac.uk:elitherl/notebooks.git"
) )
for i in "${!SYNC_DIRS[@]}"; do for i in "${!SYNC_DIRS[@]}"; do
@ -29,17 +43,3 @@ for i in "${!SYNC_DIRS[@]}"; do
git status --porcelain git status --porcelain
) )
done done
# Clone ~/.config/emacs/ if it doesn't exist, pull otherwise
EMACS_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/emacs"
EMACS_URL="https://git.xenia.me.uk/pixelifytica/emacs.git"
if [ -d "$EMACS_DIR" ]; then
git -C "$EMACS_DIR" remote set-url origin "$EMACS_URL"
git -C "$EMACS_DIR" pull --ff --ff-only
else
git clone "$EMACS_URL" "$EMACS_DIR"
fi
# Cleanup legacy Emacs config file/directory
[ -f "$HOME/.emacs" ] && rm "$HOME/.emacs"
[ -d "$HOME/.emacs.d" ] && rm -r "$HOME/.emacs.d"

View file

@ -0,0 +1 @@
$env.config.show_banner = false

View file

@ -9,18 +9,56 @@
./git.nix ./git.nix
./ssh.nix ./ssh.nix
./starship.nix ./starship.nix
./extras.nix
]; ];
home.shellAliases = { home = {
sync-all = "sync-git; vdirsyncer sync; mbsync -a"; packages = with pkgs; [
sync-and-shutdown = "sync-all && shutdown now"; asciiquarium-transparent
protonup = "sudo wg-quick up protonvpn && sudo wg"; pipes
protondown = "sudo wg-quick down protonvpn"; cbonsai
];
shellAliases = {
sync-all = "sync-git; vdirsyncer sync; mbsync -a";
sync-and-shutdown = "sync-all && shutdown now";
};
}; };
programs = { programs = {
# Shells # Shells
bash.enable = true; bash.enable = true;
nushell.enable = true; nushell = {
enable = true;
configFile.source = ./config.nu;
};
zsh = {
enable = true;
enableCompletion = true;
autocd = true;
autosuggestion.enable = true;
defaultKeymap = "emacs";
syntaxHighlighting = {
enable = true;
highlighters = [
"brackets"
"cursor"
];
};
historySubstringSearch.enable = true;
history = {
extended = true;
share = true;
ignoreDups = true;
ignoreAllDups = true;
ignoreSpace = true;
expireDuplicatesFirst = true;
};
initExtra = ''
## completion config and styling
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
zstyle ':completion:*' menu 'select=long-list'
## transient prompt
source ${./transient.zsh}
'';
};
# CLI programs and utilities # CLI programs and utilities
btop.enable = true; btop.enable = true;
carapace.enable = true; carapace.enable = true;
@ -63,7 +101,9 @@
enable = true; enable = true;
defaultCommand = "${pkgs.fd}/bin/fd --type f"; defaultCommand = "${pkgs.fd}/bin/fd --type f";
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d"; changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
changeDirWidgetOptions = [ "--preview '${pkgs.tree}/bin/tree -C {} | head -200'" ];
fileWidgetCommand = "${pkgs.fd}/bin/fd --type f"; fileWidgetCommand = "${pkgs.fd}/bin/fd --type f";
fileWidgetOptions = [ "--preview '${pkgs.bat}/bin/bat -f {}'" ];
colors = { colors = {
bg = lib.mkForce "-1"; bg = lib.mkForce "-1";
"bg+" = lib.mkForce "-1"; "bg+" = lib.mkForce "-1";
@ -71,8 +111,8 @@
}; };
hyfetch = { hyfetch = {
enable = true; enable = true;
settings = { settings = rec {
preset = "pansexual"; preset = if light_dark == "dark" then "transgender" else "rainbow";
mode = "rgb"; mode = "rgb";
light_dark = config.lib.stylix.scheme.variant; light_dark = config.lib.stylix.scheme.variant;
lightness = 0.4; lightness = 0.4;

View file

@ -1,8 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
asciiquarium-transparent
pipes
cbonsai
];
}

View file

@ -21,11 +21,7 @@
"git*".user = "git"; "git*".user = "git";
"legion" = { "legion" = {
user = "pixelifytica"; user = "pixelifytica";
hostname = "192.168.0.31"; hostname = "192.168.1.225";
};
"vanguard" = {
user = "pixelifytica";
hostname = "192.168.0.90";
}; };
"ionos" = { "ionos" = {
user = "root"; user = "root";

View file

@ -5,18 +5,11 @@
enableTransience = true; enableTransience = true;
settings = { settings = {
add_newline = false; add_newline = false;
aws.symbol = "󰸏 ";
buf.symbol = " ";
c.symbol = " ";
character = { character = {
success_symbol = "[>](bold green)"; success_symbol = "[λ](bold green)";
error_symbol = "[>](bold red)"; error_symbol = "[λ](bold red)";
}; };
command_timeout = 2000; command_timeout = 2000;
conda.symbol = " ";
container.symbol = " ";
crystal.symbol = " ";
dart.symbol = " ";
directory = { directory = {
read_only = " 󰌾"; read_only = " 󰌾";
truncation_length = 2; truncation_length = 2;
@ -24,10 +17,6 @@
truncate_to_repo = false; truncate_to_repo = false;
}; };
direnv.disabled = false; direnv.disabled = false;
docker_context.symbol = " ";
elixir.symbol = " ";
elm.symbol = " ";
fennel.symbol = " ";
fossil_branch.symbol = " "; fossil_branch.symbol = " ";
git_branch = { git_branch = {
symbol = " "; symbol = " ";
@ -57,96 +46,20 @@
untracked = " "; untracked = " ";
typechanged = " "; typechanged = " ";
}; };
golang.symbol = " ";
guix_shell.symbol = " ";
haskell.symbol = " ";
haxe.symbol = " ";
hg_branch.symbol = " "; hg_branch.symbol = " ";
hostname = { hostname.ssh_symbol = "󰢹 ";
ssh_only = false;
ssh_symbol = "󰢹 ";
};
java.symbol = " ";
jobs.symbol = "󰈏 "; jobs.symbol = "󰈏 ";
julia.symbol = " ";
kotlin.symbol = " ";
line_break.disabled = false; line_break.disabled = false;
localip.disabled = false; memory_usage.disabled = false;
lua.symbol = " ";
memory_usage = {
disabled = false;
symbol = "󰍛 ";
};
meson.symbol = "󰔷 ";
nim.symbol = "󰆥 ";
nix_shell.symbol = " ";
nodejs.symbol = " ";
ocaml.symbol = " ";
os = { os = {
disabled = false; disabled = false;
format = "on [$symbol]($style) "; format = "on [$symbol]($style) ";
symbols = {
Alpaquita = " ";
Alpine = " ";
Amazon = " ";
Android = " ";
Arch = " ";
Artix = " ";
CentOS = " ";
Debian = " ";
DragonFly = " ";
Emscripten = " ";
EndeavourOS = " ";
Fedora = " ";
FreeBSD = " ";
Garuda = "󰛓 ";
Gentoo = " ";
HardenedBSD = "󰞌 ";
Illumos = "󰈸 ";
Linux = " ";
Mabox = " ";
Macos = " ";
Manjaro = " ";
Mariner = " ";
MidnightBSD = " ";
Mint = " ";
NetBSD = " ";
NixOS = " ";
OpenBSD = "󰈺 ";
openSUSE = " ";
OracleLinux = "󰌷 ";
Pop = " ";
Raspbian = " ";
Redhat = " ";
RedHatEnterprise = " ";
Redox = "󰀘 ";
Solus = "󰠳 ";
SUSE = " ";
Ubuntu = " ";
Unknown = " ";
Windows = "󰍲 ";
};
}; };
package.symbol = "󰏗 "; python.python_binary = "python3";
perl.symbol = " ";
php.symbol = " ";
pijul_channel.symbol = " ";
python = {
python_binary = "python3";
symbol = " ";
};
rlang.symbol = "󰟔 ";
ruby.symbol = " ";
rust.symbol = " ";
scala.symbol = " ";
shell = { shell = {
disabled = false; disabled = false;
format = "using [$indicator]($style) "; format = "using [$indicator]($style) ";
nu_indicator = "ν"; nu_indicator = "ν";
bash_indicator = "";
powershell_indicator = "";
cmd_indicator = "";
unknown_indicator = "";
}; };
status = { status = {
disabled = false; disabled = false;
@ -159,12 +72,7 @@
sigint_symbol = " "; sigint_symbol = " ";
signal_symbol = " "; signal_symbol = " ";
}; };
sudo = { sudo.disabled = false;
disabled = false;
symbol = "󱑷 ";
};
swift.symbol = " ";
zig.symbol = " ";
}; };
}; };
} }

31
system/home/shell/transient.zsh Executable file
View file

@ -0,0 +1,31 @@
#!/usr/bin/env zsh
zle-line-init() {
emulate -L zsh
[[ $CONTEXT == start ]] || return 0
while true; do
zle .recursive-edit
local -i ret=$?
[[ $ret == 0 && $KEYS == $'\4' ]] || break
[[ -o ignore_eof ]] || exit 0
done
local saved_prompt=$PROMPT
local saved_rprompt=$RPROMPT
PROMPT='λ '
RPROMPT=''
zle .reset-prompt
PROMPT=$saved_prompt
RPROMPT=$saved_rprompt
if ((ret)); then
zle .send-break
else
zle .accept-line
fi
return ret
}
zle -N zle-line-init

View file

@ -27,16 +27,16 @@ in
imports = [ ./default.nix ]; imports = [ ./default.nix ];
systemd.user = { systemd.user = {
services.dynamic-wallpaper = { services.dynamic-wallpaper = {
Unit = { Unit = {
Description = "Change wallpaper based on time of day"; Description = "Change wallpaper based on time of day";
Wants = [ "swww-daemon.service" ]; Wants = [ "swww-daemon.service" ];
After = [ "swww-daemon.service" ]; After = [ "swww-daemon.service" ];
};
Service = {
Type = "oneshot";
ExecStart = "${dynamicWallpaper}/bin/dynamic-wallpaper";
};
}; };
Service = {
Type = "oneshot";
ExecStart = "${dynamicWallpaper}/bin/dynamic-wallpaper";
};
};
timers.dynamic-wallpaper.Timer = { timers.dynamic-wallpaper.Timer = {
OnCalendar = "*:0"; OnCalendar = "*:0";
Unit = "dynamic-wallpaper.service"; Unit = "dynamic-wallpaper.service";

View file

@ -1,4 +0,0 @@
{ ... }:
{
imports = [ ./alacritty.nix ];
}

View file

@ -2,18 +2,7 @@
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
(texlive.combine { (texlive.combine {
inherit (texlive) inherit (texlive) scheme-full;
scheme-medium
dvisvgm
dvipng
wrapfig
amsmath
ulem
hyperref
capt-of
listings
bera
;
latex-beamer-ukaea.pkgs = [ (callPackage ./latex-beamer-ukaea/default.nix { }) ]; latex-beamer-ukaea.pkgs = [ (callPackage ./latex-beamer-ukaea/default.nix { }) ];
}) })
]; ];

View file

@ -10,270 +10,254 @@
programs.waybar = { programs.waybar = {
enable = true; enable = true;
systemd.enable = true; systemd.enable = true;
settings.main = settings.main = {
let name = "main";
terminal = "${config.programs.alacritty.package}/bin/alacritty -e"; layer = "top";
in position = "left";
{ # Layout
name = "main"; "modules-left" = [
layer = "top"; "hyprland/workspaces"
position = "left"; "mpris"
# Layout ];
"modules-left" = [ "modules-center" = [ ];
"hyprland/workspaces" "modules-right" = [
"mpris" "custom/notification"
]; "pulseaudio#source"
"modules-center" = [ ]; "pulseaudio#sink"
"modules-right" = [ "network"
"custom/notification" "bluetooth"
"pulseaudio" "custom/calendar-icon"
"network" "clock#calendar"
"bluetooth" "custom/clock-icon"
"clock#calendar" "clock"
"clock" "backlight"
"backlight" "battery"
"battery" "custom/weather"
"custom/weather" "systemd-failed-units"
"systemd-failed-units" "tray"
"tray" ];
]; # Module config
# Module config "hyprland/workspaces" = {
"hyprland/workspaces" = { format = "{icon}";
format = "{icon}"; format-icons = {
format-icons = { "1" = "󰆍";
"1" = "󰆍"; "2" = "󰖟";
"2" = "󰖟"; "3" = "󰭹";
"3" = "󰭹"; "4" = "󱧶";
"4" = "󱧶"; "5" = "󰢹";
"5" = "󰢹"; "6" = "󰐫";
"6" = "󰐫"; "7" = "󰊴";
"7" = "󰊴"; default = "󰀻";
default = "󰀻";
};
all-outputs = false;
persistent-workspaces = {
"1" = [ ];
"2" = [ ];
"3" = [ ];
"4" = [ ];
"5" = [ ];
"6" = [ ];
"7" = [ ];
};
}; };
"hyprland/window" = { all-outputs = false;
"format" = "{title}"; persistent-workspaces = {
"max-length" = 50; "1" = [ ];
"rewrite" = { "2" = [ ];
"(.*) - GNU Emacs at (.*)" = " $1 [$2]"; "3" = [ ];
"(alacritty.*)" = " $1"; "4" = [ ];
"(.*) - mpv" = "󰦟 $1"; "5" = [ ];
"swayimg: (.*)" = "󰋩 $1"; "6" = [ ];
"swappy" = "󰹑 swappy"; "7" = [ ];
"(?:/nix/.*)(btm)" = " Resource Usage [$1]";
"(?:/nix/.*)(cava)" = "󰝚 Music Visualiser [$1]";
"Mozilla Firefox" = "󰈹 $1";
"(.*) Mozilla Firefox" = "󰈹 $1";
"Nyxt - (.*)" = "󰀹 $1";
"(.*) - Chromium" = "󰊯 $1";
"(Signal.*)" = "󰭹 $1";
"(WhatsApp for Linux.*)" = "󰖣 $1";
"((?:.*)WebCord.*)" = "󰙯 $1";
"(Cartridges.*)" = "󰊗 $1";
"([Ss]team.*)" = "󰓓 $1";
"(Prism Launcher.*)" = "󰍳 Minecraft ($1)";
"(.*)(?: *)PrusaSlicer-(.*)" = "󰐫 $1 PrusaSlicer ($2)";
"(.*)(?: *)PrusaSlicer G-code Viewer-(.*)" = "󰹛 $1 G-code Viewer ($2)";
"FreeCAD (.*)" = "󰻬 FreeCAD $1";
"(.*) - Blender.* " = "󰂫 $1";
"(Remmina Remote Desktop Client)" = "󰢹 $1";
"(NoMachine|Nxplayer.bin)(?: *)(.*)" = "󰢹 $1 $2";
};
};
mpris = {
"format" = "{player_icon}\n{status_icon}";
"tooltip-format" = "{player_icon} ({player}) {status_icon}\n{title}\n{album}\n{artist}";
"interval" = 1;
"dynamic-order" = [
"album"
"artist"
"title"
"position"
"length"
];
"player-icons" = {
"default" = "󰲸";
};
"status-icons" = {
"playing" = "󰐊";
"paused" = "󰏤";
"stopped" = "󰓛";
};
"ignored-players" = [
"com"
"org"
"firefox"
];
};
pulseaudio = {
scroll-step = 5;
format = "{format_source}\n{icon}";
# format-muted = "{format_source} {icon}";
format-source = "󰍬";
format-source-muted = "󰍭";
format-icons = {
car = "󰄍";
default = [
"󰕿"
"󰖀"
"󰕾"
];
default-muted = "󰝟";
hands-free = "󰥰";
headset = "󰋎";
phone = "󰏲";
portable = "󰏳";
headphone = "󰋋";
};
tooltip = true;
tooltip-format = "{desc} ({volume}%)";
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
on-click-right = "${config.services.avizo.package}/bin/volumectl %";
on-scroll-up = "${config.services.avizo.package}/bin/volumectl -u + 5";
on-scroll-down = "${config.services.avizo.package}/bin/volumectl -u - 5";
};
network = {
format-icons = [
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-wifi = "{icon}";
format-ethernet = "󰈁";
format-linked = "󰈂";
format-disconnected = "󰈂";
tooltip-format = "{essid} ({signalStrength}%)";
on-click = "${terminal} ${pkgs.networkmanager}/bin/nmtui";
};
bluetooth = {
format = "󰂯";
format-disabled = "󰂲";
format-off = "󰂲";
format-on = "󰂯";
format-connected = "󰂱";
tooltip-format = "{status} | {device_alias}";
on-click = "${terminal} ${pkgs.bluez}/bin/bluetoothctl";
};
"clock#calendar" =
let
size = "${toString config.stylix.fonts.sizes.popups}pt";
in
{
format = "󰃭";
tooltip-format = "<span size='${size}'>{calendar}</span>";
calendar = {
mode = "month";
weeks-pos = "left";
on-scroll = 1;
format =
let
scheme = config.lib.stylix.scheme.withHashtag;
in
{
months = "<span color='${scheme.red}'><b>{}</b></span>";
weeks = "<span color='${scheme.cyan}'><i>W{}</i></span>";
weekdays = "<span color='${scheme.orange}'><u>{}</u></span>";
days = "<span color='${scheme.base05}'>{}</span>";
today = "<span color='${scheme.magenta}'><b><u>{}</u></b></span>";
};
};
actions = {
on-scroll-up = "shift_up";
on-scroll-down = "shift_down";
};
};
clock = {
format = "{:%H\n%M}";
tooltip = false;
};
backlight = {
format = "{icon}";
tooltip-format = "{percent}%";
format-icons = [
""
""
""
""
""
""
""
""
""
];
};
battery = {
states = {
warning = 20;
critical = 10;
};
format = "{icon}";
format-time = "{H}:{m}";
format-charging = "󰂄";
format-plugged = "󰚥";
# format-warning = "{icon}{capacity}%";
# format-critical = "{icon}{capacity}% ({time})";
tooltip-format = "{capacity}% | {power}W | {time}";
format-icons = [
"󱃍"
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
};
"systemd-failed-units" = {
hide-on-ok = true;
format = "󰀦";
system = true;
user = false;
};
"custom/notification" =
let
makoctl = "${config.services.mako.package}/bin/makoctl";
jq = "${pkgs.jq}/bin/jq";
in
{
exec = "( ${makoctl} list | ${jq} -e '.data[] | length > 0' >/dev/null && echo '󱅫' ) || echo '󰂚' ";
format = "{}";
tooltip = false;
on-click = "${makoctl} dismiss -a";
interval = 3;
};
"custom/weather" =
let
date-format = "%Y-%m-%d";
custom-indicator = "{ICON}"; # "{temp_C}°C({FeelsLikeC}°C)";
in
{
format = "{}";
tooltip = true;
interval = 900; # Every 15 minutes
exec = ''${pkgs.wttrbar}/bin/wttrbar --location Didcot --date-format "${date-format}" --custom-indicator "${custom-indicator}"'';
return-type = "json";
};
tray = {
icon-size = 20;
show-passive-items = true;
spacing = 5;
}; };
}; };
mpris = {
"format" = "{player_icon}\n{status_icon}";
"tooltip-format" = "{player_icon} ({player}) {status_icon}\n{title}\n{album}\n{artist}";
"interval" = 1;
"dynamic-order" = [
"album"
"artist"
"title"
"position"
"length"
];
"player-icons" = {
"default" = "󰲸";
};
"status-icons" = {
"playing" = "󰐊";
"paused" = "󰏤";
"stopped" = "󰓛";
};
"ignored-players" = [
"com"
"firefox"
];
};
"pulseaudio#source" = {
scroll-step = 5;
format = "{format_source}";
format-source = "󰍬";
format-source-muted = "󰍭";
tooltip = true;
tooltip-format = "{desc} ({volume}%)";
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
on-click-right = "${config.services.avizo.package}/bin/volumectl %";
on-scroll-up = "${config.services.avizo.package}/bin/volumectl -u + 5";
on-scroll-down = "${config.services.avizo.package}/bin/volumectl -u - 5";
};
"pulseaudio#sink" = {
scroll-step = 5;
format = "{icon}";
format-icons = {
car = "󰄍";
default = [
"󰕿"
"󰖀"
"󰕾"
];
default-muted = "󰝟";
hands-free = "󰥰";
headset = "󰋎";
phone = "󰏲";
portable = "󰏳";
headphone = "󰋋";
};
tooltip = true;
tooltip-format = "{desc} ({volume}%)";
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
on-click-right = "${config.services.avizo.package}/bin/volumectl %";
on-scroll-up = "${config.services.avizo.package}/bin/volumectl -u + 5";
on-scroll-down = "${config.services.avizo.package}/bin/volumectl -u - 5";
};
network = {
format-icons = [
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-wifi = "{icon}";
format-ethernet = "󰈁";
format-linked = "󰈂";
format-disconnected = "󰈂";
tooltip-format = "{essid} ({signalStrength}%)";
on-click = "${pkgs.networkmanagerapplet}/bin/nm-connection-editor";
};
bluetooth = {
format = "󰂯";
format-disabled = "󰂲";
format-off = "󰂲";
format-on = "󰂯";
format-connected = "󰂱";
tooltip-format = "{status} | {device_alias}";
on-click = "${pkgs.blueman}/bin/blueman-manager";
};
"custom/calendar-icon" = {
format = "󰃭";
tooltip = false;
};
"clock#calendar" =
let
size = "${toString config.stylix.fonts.sizes.popups}pt";
in
{
format = "{:%d\n%m}";
tooltip-format = "<span size='${size}'>{calendar}</span>";
calendar = {
mode = "month";
weeks-pos = "left";
on-scroll = 1;
format =
let
scheme = config.lib.stylix.scheme.withHashtag;
in
{
months = "<span color='${scheme.red}'><b>{}</b></span>";
weeks = "<span color='${scheme.cyan}'><i>W{}</i></span>";
weekdays = "<span color='${scheme.orange}'><u>{}</u></span>";
days = "<span color='${scheme.base05}'>{}</span>";
today = "<span color='${scheme.magenta}'><b><u>{}</u></b></span>";
};
};
actions = {
on-scroll-up = "shift_up";
on-scroll-down = "shift_down";
};
};
"custom/clock-icon" = {
format = "󰅐";
tooltip = false;
};
clock = {
format = "{:%H\n%M}";
tooltip = false;
};
backlight = {
format = "{icon}";
tooltip-format = "{percent}%";
format-icons = [
""
""
""
""
""
""
""
""
""
];
};
battery = {
states = {
warning = 20;
critical = 10;
};
format = "{icon}";
format-time = "{H}:{m}";
format-charging = "󰂄";
format-plugged = "󰚥";
tooltip-format = "{capacity}% | {power}W | {time}";
format-icons = [
"󱃍"
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
};
"systemd-failed-units" = {
hide-on-ok = true;
format = "󰀦";
system = true;
user = false;
};
"custom/notification" =
let
makoctl = "${config.services.mako.package}/bin/makoctl";
jq = "${pkgs.jq}/bin/jq";
in
{
exec = "( ${makoctl} list | ${jq} -e '.data[] | length > 0' >/dev/null && echo '󱅫' ) || echo '󰂚' ";
format = "{}";
tooltip = false;
on-click = "${makoctl} dismiss -a";
interval = 3;
};
"custom/weather" =
let
date-format = "%Y-%m-%d";
custom-indicator = "{ICON}"; # "{temp_C}°C({FeelsLikeC}°C)";
in
{
format = "{}";
tooltip = true;
interval = 900; # Every 15 minutes
exec = ''${pkgs.wttrbar}/bin/wttrbar --location Didcot --date-format "${date-format}" --custom-indicator "${custom-indicator}"'';
return-type = "json";
};
tray = {
icon-size = 20;
show-passive-items = true;
spacing = 5;
};
};
style = style =
let let
scheme = config.lib.stylix.scheme.withHashtag; scheme = config.lib.stylix.scheme.withHashtag;
@ -283,7 +267,7 @@
* { * {
all: unset; all: unset;
font-family: ${config.stylix.fonts.monospace.name}; font-family: ${config.stylix.fonts.monospace.name};
font-size: ${toString (config.stylix.fonts.sizes.desktop + 2)}px; font-size: ${toString config.stylix.fonts.sizes.desktop}pt;
} }
window { window {
@ -316,22 +300,6 @@
margin: 0px; margin: 0px;
} }
#workspaces,
#window,
#mpris,
#custom-notification,
#pulseaudio,
#network,
#bluetooth,
#clock,
#backlight,
#battery,
#custom-weather,
#tray {
margin: 0px;
padding: 2px 4px 2px 3px;
}
#workspaces { #workspaces {
background: ${scheme.base00}; background: ${scheme.base00};
border-radius: 5px; border-radius: 5px;
@ -339,9 +307,6 @@
padding: 2px 3px; padding: 2px 3px;
} }
#workspaces button {
padding: 2px 5px 2px 1px;
}
#workspaces button.empty { #workspaces button.empty {
color: ${scheme.base03}; color: ${scheme.base03};
} }
@ -359,31 +324,30 @@
#custom-notification { #custom-notification {
color: ${scheme.base08}; color: ${scheme.base08};
} }
#pulseaudio { #pulseaudio.source {
color: ${scheme.base09}; color: ${scheme.base09};
} }
#network { #pulseaudio.sink {
color: ${scheme.base0A}; color: ${scheme.base0A};
padding: 2px 6px 2px 1px;
} }
#bluetooth { #network {
color: ${scheme.base0B}; color: ${scheme.base0B};
} }
#clock.calendar { #bluetooth {
color: ${scheme.base0C}; color: ${scheme.base0C};
padding: 2px 3px 2px 3px;
} }
#clock { #custom-calendar-icon,
#clock.calendar {
color: ${scheme.base0D}; color: ${scheme.base0D};
padding: 2px 1px 2px 2px; }
#custom-clock-icon,
#clock {
color: ${scheme.base0E};
}
#backlight {
color: ${scheme.base0F};
} }
#backlight {
padding: 2px 3px 2px 3px;
}
#battery {
padding: 2px 2px 2px 4px;
}
#battery.warning { #battery.warning {
color: ${scheme.base09}; color: ${scheme.base09};
} }
@ -395,9 +359,6 @@
color: ${scheme.base0B}; color: ${scheme.base0B};
} }
#systemd-failed-units {
padding: 2px 4px 2px 1px;
}
#systemd-failed-units.ok { #systemd-failed-units.ok {
color: ${scheme.base0B} color: ${scheme.base0B}
} }

View file

@ -7,14 +7,14 @@
) )
(defalias (defalias
capsctrl (tap-hold $tap-time $hold-time caps lctl) capsctrl (tap-hold $tap-time $hold-time esc lctl)
a (tap-hold $tap-time $hold-time a lmet) a (tap-hold $tap-time $hold-time a lmet)
s (tap-hold $tap-time $hold-time s lalt) s (tap-hold $tap-time $hold-time s lsft)
d (tap-hold $tap-time $hold-time d lctl) d (tap-hold $tap-time $hold-time d lalt)
f (tap-hold $tap-time $hold-time f lsft) f (tap-hold $tap-time $hold-time f lctl)
j (tap-hold $tap-time $hold-time j lsft) j (tap-hold $tap-time $hold-time j lctl)
k (tap-hold $tap-time $hold-time k lctl) k (tap-hold $tap-time $hold-time k lalt)
l (tap-hold $tap-time $hold-time l lalt) l (tap-hold $tap-time $hold-time l lsft)
; (tap-hold $tap-time $hold-time ; lmet) ; (tap-hold $tap-time $hold-time ; lmet)
) )

View file

@ -1,15 +1,15 @@
let let
emacs = [ "emacsclient.desktop" ]; emacs = [ "emacs.desktop" ];
browser = [ "firefox.desktop" ]; browser = [ "firefox.desktop" ];
in in
{ {
"inode/directory" = [ "org.gnome.Nautilus.desktop" ]; "inode/directory" = [ "org.xfce.thunar.desktop" ];
"inode/symlink" = [ "org.gnome.Nautilus.desktop" ]; "inode/symlink" = [ "org.xfce.thunar.desktop" ];
"image/jpeg" = [ "com.github.weclaw1.ImageRoll.desktop" ]; "image/jpeg" = [ "com.xfce.ristretto.desktop" ];
"image/png" = [ "com.github.weclaw1.ImageRoll.desktop" ]; "image/png" = [ "com.xfce.ristretto.desktop" ];
"audio/mpeg" = [ "com.github.neithern.g4music.desktop" ]; "audio/mpeg" = [ "com.github.neithern.g4music.desktop" ];
"video/mp4" = [ "com.github.rafostar.Clapper.desktop" ]; "video/mp4" = [ "mpv.desktop" ];
"text/plain" = emacs; "text/plain" = emacs;
"text/richtext" = emacs; "text/richtext" = emacs;
@ -64,7 +64,7 @@ in
"x-scheme-handler/chrome" = browser; "x-scheme-handler/chrome" = browser;
"x-scheme-handler/webcal" = browser; "x-scheme-handler/webcal" = browser;
"x-scheme-handler/geo" = [ "openstreetmap-geo-handler.desktop" ]; "x-scheme-handler/geo" = [ "openstreetmap-geo-handler.desktop" ];
"x-scheme-handler/mailto" = [ "emacsclient-mail.desktop" ]; "x-scheme-handler/mailto" = [ "emacs-mail.desktop" ];
"x-scheme-handler/unknown" = emacs; "x-scheme-handler/unknown" = emacs;
"x-scheme-handler/prusaslicer" = [ "PrusaSlicerURLProtocol.desktop" ]; "x-scheme-handler/prusaslicer" = [ "PrusaSlicerURLProtocol.desktop" ];
@ -72,7 +72,4 @@ in
"x-scheme-handler/ms-word" = [ "writer.desktop" ]; "x-scheme-handler/ms-word" = [ "writer.desktop" ];
"x-scheme-handler/ms-powerpoint" = [ "impress.desktop" ]; "x-scheme-handler/ms-powerpoint" = [ "impress.desktop" ];
"x-scheme-handler/ms-excel" = [ "calc.desktop" ]; "x-scheme-handler/ms-excel" = [ "calc.desktop" ];
"x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ];
"x-scheme-handler/zoomus" = browser;
"x-scheme-handler/zoommtg" = browser;
} }

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }: { config, ... }:
{ {
imports = [ ./caddy.nix ]; imports = [ ./caddy.nix ];
services = { services = {
@ -23,16 +23,10 @@
}; };
}; };
}; };
# gitea-actions-runner = { caddy.virtualHosts."git.xenia.me.uk".extraConfig =
# package = pkgs.forgejo-runner; let
# instances.default = { port = config.services.forgejo.settings.server.HTTP_PORT;
# enable = true; in
# name = "monolith"; "reverse_proxy http://localhost:${toString port}";
# url = config.services.forgejo.settings.server.ROOT_URL;
# tokenFile = /var/lib/forgejo/runner_registration_token;
# labels = ["native:host"];
# };
# };
caddy.virtualHosts."git.xenia.me.uk".extraConfig = "reverse_proxy http://localhost:3100";
}; };
} }

View file

@ -0,0 +1,28 @@
{ config, ... }:
{
imports = [ ./caddy.nix ];
services = {
webdav = {
enable = true;
settings = {
address = "0.0.0.0";
port = 6065;
debug = true;
behindProxy = true;
directory = "/srv/webdav";
users = [
{
username = "pixelifytica";
password = "{bcrypt}$2b$12$ulThbG9JGJP/FYI4RyX8sufMOE/vfw928gJMFedajiINbqx585wY.";
permissions = "CRUD";
}
];
};
};
caddy.virtualHosts."files.xenia.me.uk".extraConfig =
let
inherit (config.services.webdav.settings) port;
in
"reverse_proxy http://localhost:${toString port}";
};
}

View file

@ -5,15 +5,13 @@
... ...
}: }:
{ {
services.samba.enable = true;
environment.systemPackages = with pkgs; [ twinkle ]; environment.systemPackages = with pkgs; [ twinkle ];
home-manager.users.${username} = home-manager.users.${username} =
{ config, ... }: { config, ... }:
{ {
imports = [ ./home/openfortivpn/ukaea.nix ]; imports = [ ./home/openfortivpn/ukaea.nix ];
programs = { programs.git.userEmail = config.accounts.email.accounts.outlook.address;
git.userEmail = config.accounts.email.accounts.outlook.address;
firefox.profiles.user.settings."browser.startup.homepage" = "https://nucleus.ukaea.uk";
};
accounts.email.accounts = { accounts.email.accounts = {
proton.primary = lib.mkForce false; proton.primary = lib.mkForce false;
outlook.primary = lib.mkForce true; outlook.primary = lib.mkForce true;