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:
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
nix copy ./result --to ssh://legion
rm ./result
nix copy ./result --to ssh://legion && rm ./result
flathub:
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

View file

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

View file

@ -30,9 +30,22 @@
...
}:
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
{
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;
checks.x86_64-linux.formatting = treefmt.config.build.check self;
nixosConfigurations = {

View file

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

View file

@ -5,5 +5,6 @@
home.stateVersion = "23.05";
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";
}

View file

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

View file

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

View file

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

View file

@ -2,7 +2,9 @@
((default-modes
(pushnew 'nyxt/mode/emacs:emacs-mode %slot-value%))
(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
((glyph-mode-presentation-p t)
@ -46,6 +48,7 @@
'("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/")
'("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/")
'("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/")
@ -58,8 +61,7 @@
(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*))))
(mapcar (lambda (engine) (apply 'make-search-engine engine)) *my-search-engines*))))
(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-configuration browser
((theme (make-instance 'theme:theme
:dark-p ${if variant == "light" then "nil" else "t"}
:font-family "${fonts.sansSerif.name}"
:monospace-font-family "${fonts.monospace.name}"
:text-color "${scheme.base05}"
:contrast-text-color "${scheme.base01}"
:background-color "${scheme.base00}"
:primary-color "${scheme.base02}"
:primary-color "${scheme.base04}"
:secondary-color "${scheme.base03}"
:tertiary-color "${scheme.base04}"
:quaternary-color "${scheme.base04}"
:accent-color "${scheme.base0E}"
:tertiary-color "${scheme.base02}"
:quaternary-color "${scheme.base02}"
:accent-color "${accent}"
:action-color "${scheme.cyan}"
:success-color "${scheme.green}"
:warning-color "${scheme.yellow}"
:highlight-color "${scheme.base01}"
:highlight-color "${scheme.base04}"
:codeblock-color "${scheme.base01}"
;; :on-background-color "${scheme.base05}"
;; :on-primary-color "${scheme.base05}"
;; :on-secondary-color "${scheme.base05}"
;; :on-tertiary-color "${scheme.base05}"
;; :on-quaternary-color "${scheme.base05}"
;; :on-accent-color "${scheme.base01}"
;; :on-action-color "${scheme.base01}"
;; :on-success-color "${scheme.base01}"
;; :on-warning-color "${scheme.base01}"
;; :on-highlight-color "${scheme.base01}"
;; :on-codeblock-color "${scheme.base05}"
:on-background-color "${scheme.base05}"
:on-primary-color "${scheme.base00}"
:on-secondary-color "${scheme.base01}"
:on-tertiary-color "${scheme.base04}"
:on-quaternary-color "${scheme.base04}"
:on-accent-color "${scheme.base01}"
:on-action-color "${scheme.base01}"
:on-success-color "${scheme.base01}"
:on-warning-color "${scheme.base01}"
:on-highlight-color "${scheme.base01}"
:on-codeblock-color "${scheme.base05}"
))))
'';
};
@ -53,8 +52,8 @@
# Make a string of lisp-style list of strings, from nix-style
# list
convertTags = tags: "(" + (builtins.foldl' (x: y: x + " \"" + y + "\"") "" tags) + " )";
# Take bookmarks as returned from JSON file and convert to NYXT
# expected format
# Take bookmarks as returned from JSON file and convert to
# NYXT expected format
convertBookmark =
{
name,
@ -64,10 +63,10 @@
"(:url \"${url}\" :title \"${name}\" :tags ${convertTags tags})\n";
in
(
# Fold all entries in bookmarks.json into single string of NYXT
# format bookmarks, each entry on a new line and with 2 space
# indentation, just for visual clarity if reading the outputted
# file
# Fold all entries in bookmarks.json into single string of
# NYXT format bookmarks, each entry on a new line and with 2
# space indentation, just for visual clarity if reading the
# outputted file
"(\n"
+ (builtins.foldl' (x: y: x + " " + convertBookmark y) "" (
builtins.fromJSON (builtins.readFile ./bookmarks.json)

View file

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

View file

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

View file

@ -248,21 +248,21 @@
"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"
"stayfocused, org.kde.polkit-kde-authentication-agent-1|Pinentry|pinentry-qt|gcr-prompter"
# Audio control panel
"float, pavucontrol"
"size 800 600, pavucontrol"
"move onscreen 100%-820 50,pavucontrol"
# File browser and picker dialog
"float, org.gnome.Nautilus|xdg-desktop-portal-gtk"
"size 800 600, org.gnome.Nautilus|xdg-desktop-portal-gtk"
"center, org.gnome.Nautilus|xdg-desktop-portal-gtk"
# PulseAudio, Network and Bluetooth control panels
"float, pavucontrol|nm-connection-editor|.blueman-manager-wrapped"
"size 800 600, pavucontrol|nm-connection-editor|.blueman-manager-wrapped"
"move onscreen 50 100%-615,pavucontrol|nm-connection-editor|.blueman-manager-wrapped"
# File picker dialog
"float, xdg-desktop-portal-gtk"
"size 800 600, xdg-desktop-portal-gtk"
"center, xdg-desktop-portal-gtk"
# Matplotlib plots
"float, Matplotlib"
# Workspace rules
"workspace 2, (firefox)" # Browser
"workspace 3, (signal|whatsapp-for-linux|WebCord|teams-for-linux|twinkle)" # Messaging
"workspace 4, (libreoffice|soffice)(.*)" # Documents
"workspace 3, (signal|WebCord|teams-for-linux|twinkle)" # Messaging
"workspace 4, (Zotero|libreoffice|soffice|org.musicbrainz.Picard)(.*)" # Files
"workspace 5, (Nxplayer.bin)" # Remote Desktop
"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
@ -281,15 +281,16 @@
"center, title:Library,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
"float, title:Open Files,class:electron"
"size 800 600, 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
"idleinhibit fullscreen, class:firefox|com.github.rafostar.Clapper"
@ -327,7 +328,7 @@
++ [
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# 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, 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"
# Common program shortcuts
"SUPER, Space, exec, ${config.programs.fuzzel.package}/bin/fuzzel"
"SUPER, Return, exec, ${config.programs.alacritty.package}/bin/alacritty"
"SUPER SHIFT, Return, exec, ${config.programs.emacs.finalPackage}/bin/emacsclient -c"
"SUPER, W, exec, ${pkgs.nyxt}/bin/nyxt --no-socket"
"SUPER, F, exec, ${pkgs.nautilus}/bin/nautilus"
"SUPER, D, exec, ${config.programs.fuzzel.package}/bin/fuzzel"
"SUPER, C, exec, ${config.programs.alacritty.package}/bin/alacritty"
"SUPER, E, exec, ${config.programs.emacs.finalPackage}/bin/emacs"
"SUPER, W, exec, ${config.programs.firefox.finalPackage}/bin/firefox"
"SUPER, F, exec, thunar"
# Misc useful binds
",Print,exec,${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.swappy}/bin/swappy -f -"

View file

@ -1,23 +1,46 @@
{ pkgs, ... }:
{
imports = [
./python/default.nix
./lua/default.nix
];
home.packages = with pkgs; [
## Linters
shellcheck
yamllint
home.packages =
let
pythonEnv = (
pkgs.python312.withPackages (
ps: with ps; [
ipython
python-lsp-server
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
nixfmt-rfc-style
shfmt
nodePackages.prettier
nodePackages.prettier-plugin-toml
## Linters
shellcheck
ruff
## Language servers
nixd
rust-analyzer
nodePackages.typescript-language-server
];
## Formatters
nixfmt-rfc-style
shfmt
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> { },
python3 ? pkgs.python3,
extraPackages ? with pkgs; [ uv ],
python3 ? pkgs.python3Full,
extraPackages ? [ ],
extraLibs ? [ ],
}:
let
inherit (pkgs) lib;
ldlibs = lib.makeLibraryPath (
with pkgs;
[
(with pkgs; [
stdenv.cc.cc
glib
glibc
zlib
zstd
]
])
++ extraLibs
);
pythonWrapped = pkgs.symlinkJoin {
name = "python";
@ -24,8 +26,12 @@ let
};
in
pkgs.mkShellNoCC {
packages = [ pythonWrapped ] ++ extraPackages;
packages = [
pythonWrapped
pkgs.uv
] ++ extraPackages;
shellHook = ''
[ ! -d .venv ] && ${pythonWrapped}/bin/python3 -m venv .venv
[ -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"
secret-tool clear 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=("$@")
# 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"
echo "--- $SOURCE ---"
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_DIRS=(
"$HOME/.password-store/"
"$HOME/Documents/org/"
"$HOME/Documents/library/"
"$HOME/Documents/notebooks/"
)
SYNC_URLS=(
"https://git.xenia.me.uk/pixelifytica/pass.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
@ -29,17 +43,3 @@ for i in "${!SYNC_DIRS[@]}"; do
git status --porcelain
)
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
./ssh.nix
./starship.nix
./extras.nix
];
home.shellAliases = {
sync-all = "sync-git; vdirsyncer sync; mbsync -a";
sync-and-shutdown = "sync-all && shutdown now";
protonup = "sudo wg-quick up protonvpn && sudo wg";
protondown = "sudo wg-quick down protonvpn";
home = {
packages = with pkgs; [
asciiquarium-transparent
pipes
cbonsai
];
shellAliases = {
sync-all = "sync-git; vdirsyncer sync; mbsync -a";
sync-and-shutdown = "sync-all && shutdown now";
};
};
programs = {
# Shells
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
btop.enable = true;
carapace.enable = true;
@ -63,7 +101,9 @@
enable = true;
defaultCommand = "${pkgs.fd}/bin/fd --type f";
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
changeDirWidgetOptions = [ "--preview '${pkgs.tree}/bin/tree -C {} | head -200'" ];
fileWidgetCommand = "${pkgs.fd}/bin/fd --type f";
fileWidgetOptions = [ "--preview '${pkgs.bat}/bin/bat -f {}'" ];
colors = {
bg = lib.mkForce "-1";
"bg+" = lib.mkForce "-1";
@ -71,8 +111,8 @@
};
hyfetch = {
enable = true;
settings = {
preset = "pansexual";
settings = rec {
preset = if light_dark == "dark" then "transgender" else "rainbow";
mode = "rgb";
light_dark = config.lib.stylix.scheme.variant;
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";
"legion" = {
user = "pixelifytica";
hostname = "192.168.0.31";
};
"vanguard" = {
user = "pixelifytica";
hostname = "192.168.0.90";
hostname = "192.168.1.225";
};
"ionos" = {
user = "root";

View file

@ -5,18 +5,11 @@
enableTransience = true;
settings = {
add_newline = false;
aws.symbol = "󰸏 ";
buf.symbol = " ";
c.symbol = " ";
character = {
success_symbol = "[>](bold green)";
error_symbol = "[>](bold red)";
success_symbol = "[λ](bold green)";
error_symbol = "[λ](bold red)";
};
command_timeout = 2000;
conda.symbol = " ";
container.symbol = " ";
crystal.symbol = " ";
dart.symbol = " ";
directory = {
read_only = " 󰌾";
truncation_length = 2;
@ -24,10 +17,6 @@
truncate_to_repo = false;
};
direnv.disabled = false;
docker_context.symbol = " ";
elixir.symbol = " ";
elm.symbol = " ";
fennel.symbol = " ";
fossil_branch.symbol = " ";
git_branch = {
symbol = " ";
@ -57,96 +46,20 @@
untracked = " ";
typechanged = " ";
};
golang.symbol = " ";
guix_shell.symbol = " ";
haskell.symbol = " ";
haxe.symbol = " ";
hg_branch.symbol = " ";
hostname = {
ssh_only = false;
ssh_symbol = "󰢹 ";
};
java.symbol = " ";
hostname.ssh_symbol = "󰢹 ";
jobs.symbol = "󰈏 ";
julia.symbol = " ";
kotlin.symbol = " ";
line_break.disabled = false;
localip.disabled = false;
lua.symbol = " ";
memory_usage = {
disabled = false;
symbol = "󰍛 ";
};
meson.symbol = "󰔷 ";
nim.symbol = "󰆥 ";
nix_shell.symbol = " ";
nodejs.symbol = " ";
ocaml.symbol = " ";
memory_usage.disabled = false;
os = {
disabled = false;
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 = "󰏗 ";
perl.symbol = " ";
php.symbol = " ";
pijul_channel.symbol = " ";
python = {
python_binary = "python3";
symbol = " ";
};
rlang.symbol = "󰟔 ";
ruby.symbol = " ";
rust.symbol = " ";
scala.symbol = " ";
python.python_binary = "python3";
shell = {
disabled = false;
format = "using [$indicator]($style) ";
nu_indicator = "ν";
bash_indicator = "";
powershell_indicator = "";
cmd_indicator = "";
unknown_indicator = "";
};
status = {
disabled = false;
@ -159,12 +72,7 @@
sigint_symbol = " ";
signal_symbol = " ";
};
sudo = {
disabled = false;
symbol = "󱑷 ";
};
swift.symbol = " ";
zig.symbol = " ";
sudo.disabled = false;
};
};
}

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 ];
systemd.user = {
services.dynamic-wallpaper = {
Unit = {
Description = "Change wallpaper based on time of day";
Wants = [ "swww-daemon.service" ];
After = [ "swww-daemon.service" ];
};
Service = {
Type = "oneshot";
ExecStart = "${dynamicWallpaper}/bin/dynamic-wallpaper";
};
Unit = {
Description = "Change wallpaper based on time of day";
Wants = [ "swww-daemon.service" ];
After = [ "swww-daemon.service" ];
};
Service = {
Type = "oneshot";
ExecStart = "${dynamicWallpaper}/bin/dynamic-wallpaper";
};
};
timers.dynamic-wallpaper.Timer = {
OnCalendar = "*:0";
Unit = "dynamic-wallpaper.service";

View file

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

View file

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

View file

@ -10,270 +10,254 @@
programs.waybar = {
enable = true;
systemd.enable = true;
settings.main =
let
terminal = "${config.programs.alacritty.package}/bin/alacritty -e";
in
{
name = "main";
layer = "top";
position = "left";
# Layout
"modules-left" = [
"hyprland/workspaces"
"mpris"
];
"modules-center" = [ ];
"modules-right" = [
"custom/notification"
"pulseaudio"
"network"
"bluetooth"
"clock#calendar"
"clock"
"backlight"
"battery"
"custom/weather"
"systemd-failed-units"
"tray"
];
# Module config
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
"1" = "󰆍";
"2" = "󰖟";
"3" = "󰭹";
"4" = "󱧶";
"5" = "󰢹";
"6" = "󰐫";
"7" = "󰊴";
default = "󰀻";
};
all-outputs = false;
persistent-workspaces = {
"1" = [ ];
"2" = [ ];
"3" = [ ];
"4" = [ ];
"5" = [ ];
"6" = [ ];
"7" = [ ];
};
settings.main = {
name = "main";
layer = "top";
position = "left";
# Layout
"modules-left" = [
"hyprland/workspaces"
"mpris"
];
"modules-center" = [ ];
"modules-right" = [
"custom/notification"
"pulseaudio#source"
"pulseaudio#sink"
"network"
"bluetooth"
"custom/calendar-icon"
"clock#calendar"
"custom/clock-icon"
"clock"
"backlight"
"battery"
"custom/weather"
"systemd-failed-units"
"tray"
];
# Module config
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
"1" = "󰆍";
"2" = "󰖟";
"3" = "󰭹";
"4" = "󱧶";
"5" = "󰢹";
"6" = "󰐫";
"7" = "󰊴";
default = "󰀻";
};
"hyprland/window" = {
"format" = "{title}";
"max-length" = 50;
"rewrite" = {
"(.*) - GNU Emacs at (.*)" = " $1 [$2]";
"(alacritty.*)" = " $1";
"(.*) - mpv" = "󰦟 $1";
"swayimg: (.*)" = "󰋩 $1";
"swappy" = "󰹑 swappy";
"(?:/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;
all-outputs = false;
persistent-workspaces = {
"1" = [ ];
"2" = [ ];
"3" = [ ];
"4" = [ ];
"5" = [ ];
"6" = [ ];
"7" = [ ];
};
};
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 =
let
scheme = config.lib.stylix.scheme.withHashtag;
@ -283,7 +267,7 @@
* {
all: unset;
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 {
@ -316,22 +300,6 @@
margin: 0px;
}
#workspaces,
#window,
#mpris,
#custom-notification,
#pulseaudio,
#network,
#bluetooth,
#clock,
#backlight,
#battery,
#custom-weather,
#tray {
margin: 0px;
padding: 2px 4px 2px 3px;
}
#workspaces {
background: ${scheme.base00};
border-radius: 5px;
@ -339,9 +307,6 @@
padding: 2px 3px;
}
#workspaces button {
padding: 2px 5px 2px 1px;
}
#workspaces button.empty {
color: ${scheme.base03};
}
@ -359,31 +324,30 @@
#custom-notification {
color: ${scheme.base08};
}
#pulseaudio {
#pulseaudio.source {
color: ${scheme.base09};
}
#network {
#pulseaudio.sink {
color: ${scheme.base0A};
padding: 2px 6px 2px 1px;
}
#bluetooth {
#network {
color: ${scheme.base0B};
}
#clock.calendar {
#bluetooth {
color: ${scheme.base0C};
padding: 2px 3px 2px 3px;
}
#clock {
#custom-calendar-icon,
#clock.calendar {
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 {
color: ${scheme.base09};
}
@ -395,9 +359,6 @@
color: ${scheme.base0B};
}
#systemd-failed-units {
padding: 2px 4px 2px 1px;
}
#systemd-failed-units.ok {
color: ${scheme.base0B}
}

View file

@ -7,14 +7,14 @@
)
(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)
s (tap-hold $tap-time $hold-time s lalt)
d (tap-hold $tap-time $hold-time d lctl)
f (tap-hold $tap-time $hold-time f lsft)
j (tap-hold $tap-time $hold-time j lsft)
k (tap-hold $tap-time $hold-time k lctl)
l (tap-hold $tap-time $hold-time l lalt)
s (tap-hold $tap-time $hold-time s lsft)
d (tap-hold $tap-time $hold-time d lalt)
f (tap-hold $tap-time $hold-time f lctl)
j (tap-hold $tap-time $hold-time j lctl)
k (tap-hold $tap-time $hold-time k lalt)
l (tap-hold $tap-time $hold-time l lsft)
; (tap-hold $tap-time $hold-time ; lmet)
)

View file

@ -1,15 +1,15 @@
let
emacs = [ "emacsclient.desktop" ];
emacs = [ "emacs.desktop" ];
browser = [ "firefox.desktop" ];
in
{
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
"inode/symlink" = [ "org.gnome.Nautilus.desktop" ];
"inode/directory" = [ "org.xfce.thunar.desktop" ];
"inode/symlink" = [ "org.xfce.thunar.desktop" ];
"image/jpeg" = [ "com.github.weclaw1.ImageRoll.desktop" ];
"image/png" = [ "com.github.weclaw1.ImageRoll.desktop" ];
"image/jpeg" = [ "com.xfce.ristretto.desktop" ];
"image/png" = [ "com.xfce.ristretto.desktop" ];
"audio/mpeg" = [ "com.github.neithern.g4music.desktop" ];
"video/mp4" = [ "com.github.rafostar.Clapper.desktop" ];
"video/mp4" = [ "mpv.desktop" ];
"text/plain" = emacs;
"text/richtext" = emacs;
@ -64,7 +64,7 @@ in
"x-scheme-handler/chrome" = browser;
"x-scheme-handler/webcal" = browser;
"x-scheme-handler/geo" = [ "openstreetmap-geo-handler.desktop" ];
"x-scheme-handler/mailto" = [ "emacsclient-mail.desktop" ];
"x-scheme-handler/mailto" = [ "emacs-mail.desktop" ];
"x-scheme-handler/unknown" = emacs;
"x-scheme-handler/prusaslicer" = [ "PrusaSlicerURLProtocol.desktop" ];
@ -72,7 +72,4 @@ in
"x-scheme-handler/ms-word" = [ "writer.desktop" ];
"x-scheme-handler/ms-powerpoint" = [ "impress.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 ];
services = {
@ -23,16 +23,10 @@
};
};
};
# gitea-actions-runner = {
# package = pkgs.forgejo-runner;
# instances.default = {
# enable = true;
# name = "monolith";
# 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";
caddy.virtualHosts."git.xenia.me.uk".extraConfig =
let
port = config.services.forgejo.settings.server.HTTP_PORT;
in
"reverse_proxy http://localhost:${toString port}";
};
}

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 ];
home-manager.users.${username} =
{ config, ... }:
{
imports = [ ./home/openfortivpn/ukaea.nix ];
programs = {
git.userEmail = config.accounts.email.accounts.outlook.address;
firefox.profiles.user.settings."browser.startup.homepage" = "https://nucleus.ukaea.uk";
};
programs.git.userEmail = config.accounts.email.accounts.outlook.address;
accounts.email.accounts = {
proton.primary = lib.mkForce false;
outlook.primary = lib.mkForce true;