Compare commits

...

456 commits
cosmic ... main

Author SHA1 Message Date
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
Evie Litherland-Smith f67fa546d7 Add window rule to centre come Steam popups 2025-01-05 07:21:26 +00:00
Evie Litherland-Smith 6df5b3d8bf Add .stylua.toml back 2025-01-05 07:16:43 +00:00
Evie Litherland-Smith 4c648a0c18 Add some (fun) extra terminal programs 2025-01-04 09:31:36 +00:00
Evie Litherland-Smith 6b15453306 Adjust timing for animate-wallpaper script
Don't animate wallpaper by default for Vanguard
2025-01-04 06:16:17 +00:00
Evie Litherland-Smith 4c9c14eb3c Use btop-rocm on Vanguard for GPU support 2025-01-03 16:21:02 +00:00
Evie Litherland-Smith 6b71ca2136 Hopefully silence Steam notifications 2025-01-03 10:18:40 +00:00
Evie Litherland-Smith 83e0b05e96 Wallpaper changes and cleanup
Upscale default wallpaper (now default.png rather than default.jpg)

Set Vanguard to use a local animated wallpaper, as the file is quite
big after upscaling so I'm not putting it in this repo...

Deleted a bunch of wallpapers files from the repo but they're backed
up in syncthing

Removed overskride and nm-connection-editor from waybar shortcut, open
terminal with bluetoothctl and nmtui respectively instead

Move twinkle to only be installed on work machine
2025-01-03 09:27:46 +00:00
Evie Litherland-Smith e0dea93832 Split swww files into daemon and dynamic wallpaper
Change wallpaper to the Citadel, use an animated version on Vanguard
only

Drop nix-ts-mode for Emacs (use regular nix-mode)
2025-01-02 16:14:26 +00:00
Evie Litherland-Smith 1db4aad4a7 Tweak timing for starting dynamic-wallpaper 2025-01-02 06:02:41 +00:00
Evie Litherland-Smith 2e03915245 Vanguard: use onedark theme 2025-01-02 05:59:10 +00:00
Evie Litherland-Smith 57b15d30be Remove some programs I'm not using any more 2025-01-02 05:58:58 +00:00
Evie Litherland-Smith 4455b0bbbb Use firefox as default browser, but keep bind to open nyxt windows quickly 2025-01-02 05:57:37 +00:00
Evie Litherland-Smith fd2217aba7 Add workspace monitor rules for Vanguard
Remove silent version of workspace rules

Ignore user units in waybar systemd-failed-units widget
2025-01-01 07:38:15 +00:00
Evie Litherland-Smith f5f479dc1b Add nyxt to browser rule 2025-01-01 07:21:33 +00:00
Evie Litherland-Smith 5aa7640337 Change hyprlock date to use ISO 8601 format 2025-01-01 07:20:49 +00:00
Evie Litherland-Smith 90e9ae3e38 Revert "Switch back to Firefox as default browser"
This reverts commit 8b007a98fa.
2025-01-01 07:12:28 +00:00
Evie Litherland-Smith 1d516a037a Revert "Enable no-script-mode in nyxt by default"
This reverts commit 19ad8c25c7.
2025-01-01 07:10:43 +00:00
Evie Litherland-Smith fa18f4d10c Update window rules for gaming workspace 2024-12-31 15:16:31 +00:00
Evie Litherland-Smith 9f63053ffd Adjust vm.max_map_count and fs.file-max for Vanguard
Better settings for playing star citizen
2024-12-31 15:08:15 +00:00
Evie Litherland-Smith 055735cc2d Fix swww startup properly this time 2024-12-31 11:45:55 +00:00
Evie Litherland-Smith e0e93eefb0 Drop lua-mode for built-in lua-ts-mode, add nix-ts-mode, julia-mode and julia-ts-mode 2024-12-31 11:39:35 +00:00
Evie Litherland-Smith 19ad8c25c7 Enable no-script-mode in nyxt by default 2024-12-31 07:02:54 +00:00
Evie Litherland-Smith 04cc4d20c4 Update again to latest stable home-assistant
Fix issue with HACS integrations not installing dependencies, is a
temporary workaround that should hopefully be fixed in a future
home-assistant version
2024-12-31 06:55:03 +00:00
Evie Litherland-Smith cb2a9f0c6e Change image tag for home-assistant to stable 2024-12-30 09:52:59 +00:00
Evie Litherland-Smith 00bdf11f4a Remove nyxt from workspace rule, and set bind to open nyxt rather than firefox 2024-12-30 09:05:06 +00:00
Evie Litherland-Smith 5f58f65bdb Change hyfetch preset 2024-12-30 08:48:37 +00:00
Evie Litherland-Smith abfac8f1b7 Fix activation of dynamic-wallpaper on system startup 2024-12-30 08:02:42 +00:00
Evie Litherland-Smith de4821de14 Add solid background shape behind time so it's always legible
Fixed a typo in config and reduced grace 5 -> 3
2024-12-30 08:02:01 +00:00
Evie Litherland-Smith 8b007a98fa Switch back to Firefox as default browser 2024-12-29 13:42:37 +00:00
Evie Litherland-Smith 9e5350c90b Enable OpenRGB for Vanguard 2024-12-29 12:26:31 +00:00
Evie Litherland-Smith 0da473dba8 Update NixOS wiki search shortcut for NYXT 2024-12-29 12:22:54 +00:00
Evie Litherland-Smith 9b7f35ea3d Add server directive to Makefile
Builds server config, copies to server and deletes result after
2024-12-28 08:06:53 +00:00
Evie Litherland-Smith 9242be4f00 Remove Tone (work desktop) 2024-12-28 07:55:43 +00:00
Evie Litherland-Smith 29cdbff640 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/80b0fdf483c5d1cb75aaad909bd390d48673857f?narHash=sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw%3D' (2024-12-16)
  → 'github:nix-community/home-manager/613691f285dad87694c2ba1c9e6298d04736292d?narHash=sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM%3D' (2024-12-28)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/b47fd6fa00c6afca88b8ee46cfdb00e104f50bca?narHash=sha256-nbG9TijTMcfr%2Bau7ZVbKpAhMJzzE2nQBYmRvSdXUD8g%3D' (2024-12-19)
  → 'github:nixos/nixpkgs/4005c3ff7505313cbc21081776ad0ce5dfd7a3ce?narHash=sha256-VIAjBr1qGcEbmhLwQJD6TABppPMggzOvqFsqkDoMsAY%3D' (2024-12-25)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/65712f5af67234dad91a5a4baee986a8b62dbf8f?narHash=sha256-MMi74%2BWckoyEWBRcg/oaGRvXC9BVVxDZNRMpL%2B72wBI%3D' (2024-12-20)
  → 'github:numtide/treefmt-nix/9e09d30a644c57257715902efbb3adc56c79cf28?narHash=sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q%2BT0BVeZE%3D' (2024-12-25)
2024-12-28 07:52:59 +00:00
Evie Litherland-Smith 25379669dd Adjust nyxt theme slightly and set as default browser
Change papirus-icon-theme accent to violet

Remove firefox
2024-12-28 07:48:57 +00:00
Evie Litherland-Smith 15be20f4f1 Merge branch 'main' of https://git.xenia.me.uk/pixelifytica/nixos 2024-12-28 06:58:55 +00:00
Evie Litherland-Smith 4fd459a621 Add NYXT browser back with some config tweaks 2024-12-28 06:58:40 +00:00
Evie Litherland-Smith f6c8d6aaf6 Add slight delay to starting dynamic wallpaper 2024-12-27 20:21:06 +00:00
Evie Litherland-Smith cc57e16c87 Add some more formatters to treefmt, reformat repo 2024-12-27 13:05:12 +00:00
Evie Litherland-Smith 34319c95fe Switch back to light theme (again) 2024-12-27 12:48:26 +00:00
Evie Litherland-Smith b8bcf98d2d Restart dynamic-wallpaper service after hyprland starts 2024-12-27 06:54:19 +00:00
Evie Litherland-Smith c0e31d7690 Install swww-daemon as a systemd unit instead of using hyprctl 2024-12-27 06:44:18 +00:00
Evie Litherland-Smith 563f398571 Reinstall retroarch on Vanguard 2024-12-27 06:36:28 +00:00
Evie Litherland-Smith e1615cebac Set stylix polarity based on scheme variant 2024-12-26 09:56:21 +00:00
Evie Litherland-Smith 83f6f40bd9 Revert "Switch back to one-light theme"
This reverts commit 3f270fc62e.
2024-12-26 09:24:13 +00:00
Evie Litherland-Smith 3f270fc62e Switch back to one-light theme 2024-12-24 12:21:12 +00:00
Evie Litherland-Smith 2298a9264f Move contents of sync-emacs into sync-git 2024-12-24 08:24:31 +00:00
Evie Litherland-Smith 6077814878 Set whatsapp appearance based on scheme variant 2024-12-24 08:20:12 +00:00
Evie Litherland-Smith 56cdefd666 Change text colour for hyprlock datetime 2024-12-24 08:19:59 +00:00
Evie Litherland-Smith 1c216ac162 Fix setting theme for work laptop 2024-12-23 08:13:13 +00:00
Evie Litherland-Smith b1a0cfa584 Set Qt style variant based on stylix theme variant 2024-12-22 06:43:30 +00:00
Evie Litherland-Smith 05badee8a3 Turn off minecraft server until needed 2024-12-21 07:05:41 +00:00
Evie Litherland-Smith eb79f789b8 Change hyfetch default preset 2024-12-21 06:44:55 +00:00
Evie Litherland-Smith 0313fc7bde flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/e38d3dd1d355a003cc63e8fe6ff66ef2257509ed?narHash=sha256-ZD%2Bh1fwvZs%2BXvg46lzTWveAqyDe18h9m7wZnTIJfFZ4%3D' (2024-12-06)
  → 'github:nix-community/home-manager/80b0fdf483c5d1cb75aaad909bd390d48673857f?narHash=sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw%3D' (2024-12-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/4dc2fc4e62dbf62b84132fe526356fbac7b03541?narHash=sha256-FillH0qdWDt/nlO6ED7h4cmN%2BG9uXwGjwmCnHs0QVYM%3D' (2024-12-05)
  → 'github:nixos/nixpkgs/b47fd6fa00c6afca88b8ee46cfdb00e104f50bca?narHash=sha256-nbG9TijTMcfr%2Bau7ZVbKpAhMJzzE2nQBYmRvSdXUD8g%3D' (2024-12-19)
• Updated input 'stylix':
    'github:danth/stylix/d13ffb381c83b6139b9d67feff7addf18f8408fe?narHash=sha256-t1J6wgzGjvvGNfdd0ei8HnZf9sTw%2BSpvCNAX0i6Qgwc%3D' (2024-11-30)
  → 'github:danth/stylix/9015d5d0d5d100f849129c43d257b827d300b089?narHash=sha256-fp1iV2JldCSvz%2B7ODzXYUkQ%2BH7zyiWw5E0MQ4ILC4vw%3D' (2024-12-13)
• Updated input 'stylix/gnome-shell':
    'github:GNOME/gnome-shell/0d0aadf013f78a7f7f1dc984d0d812971864b934?narHash=sha256-zYP1ehjtcV8fo%2Bc%2BJFfkAqktZ384Y%2By779fzmR9lQAU%3D' (2024-04-21)
  → 'github:GNOME/gnome-shell/dadd58f630eeea41d645ee225a63f719390829dc?narHash=sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg%3D' (2024-11-23)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/0ce9d149d99bc383d1f2d85f31f6ebd146e46085?narHash=sha256-s4DalCDepD22jtKL5Nw6f4LP5UwoMcPzPZgHWjAfqbQ%3D' (2024-12-09)
  → 'github:numtide/treefmt-nix/65712f5af67234dad91a5a4baee986a8b62dbf8f?narHash=sha256-MMi74%2BWckoyEWBRcg/oaGRvXC9BVVxDZNRMpL%2B72wBI%3D' (2024-12-20)
2024-12-21 06:41:12 +00:00
Evie Litherland-Smith 736416a79a Trying out dark theme again on personal machines (not work machines)
Disable SWWW and just use hyprpaper again
2024-12-21 06:24:22 +00:00
Evie Litherland-Smith ac56f8ec6b Add librespeed CLI (default) and GUI (desktop) 2024-12-21 06:14:49 +00:00
Evie Litherland-Smith 05e3924968 Swap bottom for btop, move cava into shell file from own 2024-12-20 15:23:50 +00:00
Evie Litherland-Smith e70563fe97 Add hyprpicker colour picking utility 2024-12-20 11:37:04 +00:00
Evie Litherland-Smith c041fdc16c Fix default workspace 2024-12-20 09:08:25 +00:00
Evie Litherland-Smith dc02bcf65d Adjust spacing for backlight and battery now that I've seen them 2024-12-20 09:05:14 +00:00
Evie Litherland-Smith 2d2003b563 Slightly tweaks spacings to look better 2024-12-20 08:50:05 +00:00
Evie Litherland-Smith a38b23ebd0 Hyprland use gaps_in of 3, looks slightly better for some reason 2024-12-20 08:47:09 +00:00
Evie Litherland-Smith af96fd456d Styling updates: Moved waybar to side of screen
Module/style tweaks to fix vertical form-factor, mostly moving text
into tooltips and adjusting padding/margin values.

Set pulseaudio module to use fuzzel interface.

Tweaked opacity values.

Make all floating windows have border size 2 for consistency.
2024-12-20 08:41:40 +00:00
Evie Litherland-Smith ee21fdc6ca Moved extraConfig into early-init.el 2024-12-20 08:38:06 +00:00
Evie Litherland-Smith cb759438ca Fix check for cleaning legacy Emacs config 2024-12-20 06:14:09 +00:00
Evie Litherland-Smith 8417896cef Update ensure-pass to clear passwords that can be repopulated automatically 2024-12-19 11:39:54 +00:00
Evie Litherland-Smith dd60d301bf Add mount OneDrive script 2024-12-19 11:34:29 +00:00
Evie Litherland-Smith d991c9acfb Fix order of checks in sync-emacs 2024-12-19 11:09:45 +00:00
Evie Litherland-Smith 86938499ad Move Emacs init.el and templates back to own repo, keep packages managed by nix
Restore sync-emacs script but without make step, include cleaning up
old Emacs config
2024-12-19 10:45:12 +00:00
Evie Litherland-Smith 63fcc689bc Theme updates
Add wlogout style config, based on default with modified colours using
base16 scheme

Add some opacity back: 0.8 for terminal and desktop, 0.4 for popups,
still 1.0 for applications

Slightly shrink fuzzel and Nautilus sizes to fit laptops better

Set round to 10px from 5 globally

Fix inactive border colour in btm, fix fzf using a solid background on
translucent terminals
2024-12-19 07:16:12 +00:00
Evie Litherland-Smith 350aeb7a5d Remove opacity from everything except terminals 2024-12-18 18:01:47 +00:00
Evie Litherland-Smith 0cf0e0466e Add poppler utils back for PDF searching 2024-12-18 18:01:28 +00:00
Evie Litherland-Smith 0f7ca7a86e Org edit src reorganize frame again 2024-12-18 13:37:58 +00:00
Evie Litherland-Smith df2e01e58e Org journal switch to yearly file format 2024-12-18 07:18:48 +00:00
Evie Litherland-Smith b862d4f2b3 Remove randomised delay from auto upgrade 2024-12-18 06:24:03 +00:00
Evie Litherland-Smith e6873dbd77 Add pyshell.nix helper function for making wrapped python shells
Just import, optionally changing python version or adding extra
packages (e.g. poetry) to the shell

Update default python env

Remove pyshell template from Emacs templates due to new change
2024-12-17 11:54:22 +00:00
Evie Litherland-Smith 89ebca89eb Update pyshell template, remove pydefault 2024-12-17 09:58:48 +00:00
Evie Litherland-Smith e7b529d7b0 Turn off new ispell word completion 2024-12-17 09:31:42 +00:00
Evie Litherland-Smith 18d16e5e81 Update bottom styling 2024-12-17 09:15:32 +00:00
Evie Litherland-Smith 316d25cdc7 Actually apply waybar transparency properly, and fix border colour 2024-12-16 17:37:49 +00:00
Evie Litherland-Smith d6bbc415d4 Fix openfortivpn scripts 2024-12-16 17:31:35 +00:00
Evie Litherland-Smith 79ff1e8bd3 Remove template file shortcut
Add FHSEnv template for nix files
2024-12-16 11:39:20 +00:00
Evie Litherland-Smith ecc4873975 Update eza default args 2024-12-16 11:18:19 +00:00
Evie Litherland-Smith 5390f736d9 Add Emacs evil package for testing, unsure if I'll keep it yet 2024-12-16 11:01:48 +00:00
Evie Litherland-Smith 94d9e4ae19 Emacs: disable menu-bar-mode 2024-12-16 10:57:44 +00:00
Evie Litherland-Smith 6b069f4ec8 Change firefox tracking protection settings
Something broken with some work websites using old settings
2024-12-16 10:07:37 +00:00
Evie Litherland-Smith 16c2127a4b Tweak eldoc behaviour
Don't resize minibuffer, always prefer eldoc buffer if open
2024-12-16 07:53:26 +00:00
Evie Litherland-Smith edad4691ff Remove idle timeout options, back to default 2024-12-16 07:43:28 +00:00
Evie Litherland-Smith a81d4cf462 Explicitly set firefox home to blank page 2024-12-16 07:12:35 +00:00
Evie Litherland-Smith c319051cbc Adjust opacity 2024-12-16 07:11:14 +00:00
Evie Litherland-Smith 64d706feee Don't set firefox homepage on personal machines 2024-12-16 06:59:59 +00:00
Evie Litherland-Smith 43dca6a008 Revert "Don't make steam silent for workspace 7"
This reverts commit 2e95c9692c.
2024-12-15 06:16:29 +00:00
Evie Litherland-Smith 2e95c9692c Don't make steam silent for workspace 7 2024-12-15 06:15:37 +00:00
Evie Litherland-Smith 8126a1428a Reduce automatic gc time 7d -> 3d 2024-12-14 06:59:37 +00:00
Evie Litherland-Smith a4019f180d org-agenda don't start with log-mode by default 2024-12-13 13:49:08 +00:00
Evie Litherland-Smith 9aab9961c0 Adjust starship shell icons slightly 2024-12-13 10:19:06 +00:00
Evie Litherland-Smith a9f5b41787 Readline: remove horizontal-scroll-mode 2024-12-13 10:12:34 +00:00
Evie Litherland-Smith 6d98735fea Use ISO 8601 for org-journal date format 2024-12-13 09:58:44 +00:00
Evie Litherland-Smith d2d16a5ccd Remove auto-fill from org/markdown, enable visual-line-mode instead 2024-12-13 09:58:19 +00:00
Evie Litherland-Smith 264cc4bd06 Doc-view switch to scale internally
Remove global-tab-line-mode
2024-12-13 09:20:14 +00:00
Evie Litherland-Smith 32ae8312d2 Add MuPDF (headless) for Emacs doc-view 2024-12-13 09:13:24 +00:00
Evie Litherland-Smith a938f8ea3c Customise org-journal further
Add category, change default file format
2024-12-13 08:54:11 +00:00
Evie Litherland-Smith 43ae6f5cb0 Emacs: start switching to org-journal instead of org-roam-dailies
Update org-agenda files, slightly re-ordered when packages are loaded
to make it work. Already moved files around in org-directory but
haven't moved old journal entries into new files yet.
2024-12-13 07:23:41 +00:00
Evie Litherland-Smith 3cab9dbd4a Reduce width of fuzzel for laptop screens 2024-12-13 07:23:27 +00:00
Evie Litherland-Smith a30c70e29b Remove ligature package
Remove org and which-key from packages since org 9.7 and which-key are
both built-in as of Emacs30
2024-12-12 14:05:34 +00:00
Evie Litherland-Smith 9cf1a01953 Hyprland window rule to make matplotlib plots floating 2024-12-12 13:08:45 +00:00
Evie Litherland-Smith 0bd6aa9de5 Add isort and flake8 to default python package set 2024-12-12 10:10:29 +00:00
Evie Litherland-Smith 875d56291f Remove mm-discouraged-alternatives 2024-12-12 09:56:05 +00:00
Evie Litherland-Smith 1b126963ed Switch to DejaVu font family as main fonts
Regular Sans and Serif for proportional fonts, DejaVuSansM Nerd Font
for monospace
2024-12-12 08:19:16 +00:00
Evie Litherland-Smith 327e0716f6 Add copy of old Emacs font showcase 2024-12-12 08:09:08 +00:00
Evie Litherland-Smith 5eee84064e Restore importing khalel events on first load now that it works again 2024-12-12 07:37:59 +00:00
Evie Litherland-Smith b4e392f7de Add Emacs templates file back
Reduced since I don't need to duplicate what's in tempel-collection
2024-12-12 07:33:25 +00:00
Evie Litherland-Smith 1733e39552 Add treefmt with config, reformat nix files for nixfmt updates 2024-12-12 07:26:01 +00:00
Evie Litherland-Smith 1d535dc147 Revert disabling Emacs service on laptops 2024-12-12 07:07:36 +00:00
Evie Litherland-Smith 554889f2e7 Add wlogout bind 2024-12-12 05:41:45 +00:00
Evie Litherland-Smith 3a477c2517 Actually disable Emacs service for laptops 2024-12-12 05:37:11 +00:00
Evie Litherland-Smith cc3e546f3e Revert "Change accent colour"
This reverts commit 7afd75bd5a.
2024-12-12 05:35:10 +00:00
Evie Litherland-Smith 7afd75bd5a Change accent colour 2024-12-11 12:56:09 +00:00
Evie Litherland-Smith f7c2982458 Typo changing Tone services 2024-12-11 11:05:26 +00:00
Evie Litherland-Smith c6ea71ff49 Remove mount-downloads service, make onedrive mount wait for hyprland 2024-12-11 09:29:49 +00:00
Evie Litherland-Smith e16e3ff288 Typo adding yaml package 2024-12-11 08:19:24 +00:00
Evie Litherland-Smith 8747c7f865 Add yaml and netcdf4 to default python packages 2024-12-11 08:18:39 +00:00
Evie Litherland-Smith 638c098b55 Update to Emacs30 2024-12-10 15:48:39 +00:00
Evie Litherland-Smith 92b6e0e325 Don't use Emacs service on laptops or server, only desktops 2024-12-10 14:57:32 +00:00
Evie Litherland-Smith 2e7f160196 Small org directory restructure
Move org default file to roam/inbox.org and adjust org-agenda-files
accordingly
2024-12-10 14:43:08 +00:00
Evie Litherland-Smith 2b8c256fd1 Temporarily stop khalel import on config 2024-12-10 14:42:48 +00:00
Evie Litherland-Smith f84d4851ac Add shortcut to org-default-notes-file 2024-12-10 07:28:39 +00:00
Evie Litherland-Smith 662d978241 Add services to automount OneDrive (via rclone) 2024-12-09 15:25:01 +00:00
Evie Litherland-Smith deaa8827a6 Enable translucency again 2024-12-09 15:14:57 +00:00
Evie Litherland-Smith 9daa422d20 Remove visual-fill-column
Use global-visual-line-mode but disable in certain modes (org,
org-agenda, mu4e main and headers)
2024-12-09 15:14:28 +00:00
Evie Litherland-Smith 6a562e3d45 Add extra UDP ports for home-assistant 2024-12-08 09:26:40 +00:00
Evie Litherland-Smith 54fc540524 Actually update home-assistant 2024-12-08 09:22:50 +00:00
Evie Litherland-Smith c68740513f Update home-assistant image version 2024-12-08 09:19:14 +00:00
Evie Litherland-Smith ac607e24ec Mount home-assistant config as external directory 2024-12-08 06:16:53 +00:00
Evie Litherland-Smith bf2f9c7182 Remove setting DHCP for Legion
This broke networking for some reason...
2024-12-08 05:52:56 +00:00
Evie Litherland-Smith 744fc603ef Set legion nameservers to self directly 2024-12-07 20:25:39 +00:00
Evie Litherland-Smith 79d946c196 Fix local rewrites in Adguardhome 2024-12-07 20:16:08 +00:00
Evie Litherland-Smith 8606e88f56 Force disable hyprpaper since hyprland seems to turn it on now... 2024-12-07 20:14:58 +00:00
Evie Litherland-Smith ffc460d8cc Update btm args for shortcut 2024-12-07 09:52:31 +00:00
Evie Litherland-Smith b2a82f0448 Don't enable mangohud session-wide 2024-12-07 09:44:35 +00:00
Evie Litherland-Smith a57ee7ba0f Remove duplicate adding mangohud package 2024-12-07 09:30:08 +00:00
Evie Litherland-Smith 0b0f6c269f Remove MANGOHUD session variable 2024-12-07 09:20:15 +00:00
Evie Litherland-Smith df52840eba Fix changes to Hyprland and Alacritty config with new versions 2024-12-07 07:56:19 +00:00
Evie Litherland-Smith e1e06eb982 Update to NixOS release 24.11
Update a few options that have changed with this release
2024-12-07 07:17:46 +00:00
Evie Litherland-Smith c78c6a4ce4 Add picard and whipper to installed programs 2024-12-07 07:02:46 +00:00
Evie Litherland-Smith 1f20be9c90 Set g4music as default app for audio/mpeg mimetype 2024-12-07 06:59:14 +00:00
Evie Litherland-Smith d2d44fa8fa Update Robin bookmark URL 2024-12-06 11:46:50 +00:00
Evie Litherland-Smith dcbe3a204d Rename work laptop Ronin -> Monarch 2024-12-06 11:24:41 +00:00
Evie Litherland-Smith 402d9f84d2 Add a slight delay to start dynamic-wallpaper with Hyprland 2024-12-06 11:01:15 +00:00
Evie Litherland-Smith 1a3ff2a383 Waybar: change icon for gaming workspace 2024-12-06 07:27:24 +00:00
Evie Litherland-Smith 06a83e1314 Adjust default height of floating file window
Too tall for scaled laptop screens...
2024-12-06 07:20:25 +00:00
Evie Litherland-Smith 64ee47bf34 Don't install dynamicWallpaper as a package since I access it via systemd 2024-12-06 07:16:51 +00:00
Evie Litherland-Smith 8974720873 Start dynamic-wallpaper once immediately after starting swww 2024-12-06 07:11:31 +00:00
Evie Litherland-Smith 1d954615cb Add systemd user service to update swww every hour
Swap hyprpaper for swww

Move swww up a level into it's own file
2024-12-06 07:09:02 +00:00
Evie Litherland-Smith bbf827c1e4 Add an example animated wallpaper 2024-12-06 06:53:13 +00:00
Evie Litherland-Smith 3b4f19958b Add script to call swww based on time of day 2024-12-06 06:52:59 +00:00
Evie Litherland-Smith 780838e8a0 Start adding SWWW config 2024-12-06 06:37:24 +00:00
Evie Litherland-Smith eb358c7ba3 Fix enabling icalendar integration 2024-12-05 17:54:42 +00:00
Evie Litherland-Smith 7e9d89b657 Adjust titlepage dimensions for UKAEA beamer theme 2024-12-05 15:10:35 +00:00
Evie Litherland-Smith 05c213dfe1 Remove networking.wireless as incompatible with networkmanager 2024-12-05 14:20:06 +00:00
Evie Litherland-Smith c6ca5a5975 Issues with iwd, revert to wpa_supplicant
Remove iwgtk since I'm not using iwd, back to nm-applet
2024-12-05 14:18:25 +00:00
Evie Litherland-Smith 51081b3eca Switch networkmanager backend to iwd
Switch network frontend to iwgtk, bluetooth frontend to overskride

Enable wifi powersave on laptops
2024-12-05 13:51:47 +00:00
Evie Litherland-Smith e53d29d7e8 Change default size of file dialogues 2024-12-05 13:14:25 +00:00
Evie Litherland-Smith b92710afc5 Make Nautilus (file browser) a floating window by default 2024-12-05 11:57:06 +00:00
Evie Litherland-Smith 6a0d74c88f Switch from libreoffice-fresh to libreoffice 2024-12-05 11:52:37 +00:00
Evie Litherland-Smith ab5552ee6a flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/e8c38b73aeb218e27163376a2d617e61a2ad9b59?narHash=sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g%3D' (2024-11-16)
  → 'github:nixos/nixpkgs/bcb68885668cccec12276bbb379f8f2557aa06ce?narHash=sha256-Yh5XZ9yVurrcYdNTSWxYgW4%2BEJ0pcOqgM1043z9JaRc%3D' (2024-12-03)
2024-12-05 09:05:02 +00:00
Evie Litherland-Smith f726834e7f Change accent colour to cyan 2024-12-05 09:03:59 +00:00
Evie Litherland-Smith f2b7176cb9 Adjust calendar import settings 2024-12-05 09:03:47 +00:00
Evie Litherland-Smith 5952e1c217 Delete some unused files 2024-12-05 09:03:30 +00:00
Evie Litherland-Smith 9cbe86bc2e Move env config from hyprland.nix to desktop.nix 2024-12-04 16:58:47 +00:00
Evie Litherland-Smith a344322f3d Move python, lua, texlive into own directories, imported by Emacs
Python and lua live under programming, with programming/default.nix
importing both and including misc tools that don't fit anywhere else

Texlive move to own directory
2024-12-04 16:57:56 +00:00
Evie Litherland-Smith ce3ce183b4 Add EUROFusion pinboard to bookmarks 2024-12-04 14:34:51 +00:00
Evie Litherland-Smith 7f3ebefac7 Hyprland switch back to master layout 2024-12-04 11:42:40 +00:00
Evie Litherland-Smith e7df682dd3 org-agenda and khalel call org-agenda-to-appt on startup 2024-12-04 07:30:27 +00:00
Evie Litherland-Smith 0716338f65 Set firefox home page: home-assistant by default, Nucleus for work machines 2024-12-04 07:18:27 +00:00
Evie Litherland-Smith 94a20654cd Move use-package and base16 config to early-init.el
Ensure it's run before use-package is used or theme is loaded, since
nix puts these at the start of the extra config block

Run vdirsyncer when khalel first loaded, before importing, to make
sure things are up to date. No run at startup so only affects when
first opening email/org-agenda
2024-12-04 07:07:59 +00:00
Evie Litherland-Smith fd8f675cdb Set Papirus variant based on theme variant 2024-12-04 06:45:47 +00:00
Evie Litherland-Smith d39c34d6f0 Stop setting stylix polarity option, use lib stylix variant instead
Variant comes from the selected scheme so it's automatic
2024-12-04 06:41:16 +00:00
Evie Litherland-Smith 5971d10483 Swap order of printing and game workspaces 2024-12-03 15:55:17 +00:00
Evie Litherland-Smith f20695d45d Swap music workspace back to documents 2024-12-03 15:53:05 +00:00
Evie Litherland-Smith 561d2e47ac Add whatsapp-for-linux back with config 2024-12-03 15:49:18 +00:00
Evie Litherland-Smith 996b42b3df Add spectroscopy and imaging sharepoint bookmark 2024-12-03 13:45:23 +00:00
Evie Litherland-Smith 34d935ee7c Add python-pytest Emacs package 2024-12-03 10:48:36 +00:00
Evie Litherland-Smith ef8d60af7a Add MELPA to package archives for easy package browsing 2024-12-03 10:46:36 +00:00
Evie Litherland-Smith 63a1c95ba4 Fix typescript-language-server definition 2024-12-03 10:39:32 +00:00
Evie Litherland-Smith 62e8740cd5 Makefile: don't make out link by default 2024-12-03 10:37:45 +00:00
Evie Litherland-Smith ecba04cbad Don't install python + packages by default
Add some more language servers to installed list
2024-12-03 10:36:45 +00:00
Evie Litherland-Smith 186ae249f6 Hook eglot-ensure to prog-mode 2024-12-03 10:24:07 +00:00
Evie Litherland-Smith 7a06e51a1c Remove unused emacs-packages.nix and pyproject.toml 2024-12-03 10:23:30 +00:00
Evie Litherland-Smith d76e84a071 Move luarocks files to different directory
Not currently being used but want to keep them around for the future
2024-12-03 10:22:49 +00:00
Evie Litherland-Smith f56f7605df Remove eglot-ensure hooks 2024-12-03 10:19:01 +00:00
Evie Litherland-Smith 87692cc787 Add some more eglot-ensure hooks for different languages 2024-12-03 10:08:45 +00:00
Evie Litherland-Smith 7db580359d Install a newer version of org rather than the bundled version with Emacs 2024-12-03 09:40:01 +00:00
Evie Litherland-Smith 5db1959328 Remove package-installed-p checks since nix will installed them
Add python-docstring package
2024-12-03 09:31:48 +00:00
Evie Litherland-Smith f140dfdad1 Add tempel-collection package 2024-12-03 09:25:26 +00:00
Evie Litherland-Smith 0148f70b09 Add wlogout config back but not bound to key yet
TODO configure more to include sync-and-shutdown as part of logout
options
2024-12-03 07:28:08 +00:00
Evie Litherland-Smith d120b68c4e Switch Emacs service to start with graphical session rather than socket 2024-12-03 07:19:51 +00:00
Evie Litherland-Smith 25e086c64b Enable visual-line-mode in help-mode 2024-12-03 07:04:10 +00:00
Evie Litherland-Smith 0ce8f71607 Remove demand key from khalel 2024-12-02 17:45:22 +00:00
Evie Litherland-Smith b8133c7971 Move Emacs config into nix
Combine with extraConfig.el as init.el

Add missing ligature package

Remove sync-emacs script and alias, set sync-all back to actually
syncing everything
2024-12-02 17:43:29 +00:00
Evie Litherland-Smith d8cb9b526b Initial copy of init.el from Emacs config repo 2024-12-02 17:40:36 +00:00
Evie Litherland-Smith 8752c19241 Add Emacs packages - using nix to manage installed packages now 2024-12-02 17:16:40 +00:00
Evie Litherland-Smith 7321bf20fa Add Music directory to home-assistant 2024-12-01 13:33:49 +00:00
Evie Litherland-Smith 07e39727e7 Open some ports for home-assistant sonos integration 2024-11-30 12:18:46 +00:00
Evie Litherland-Smith 2f9a626218 Change mangohud preset to 1 2024-11-30 09:24:28 +00:00
Evie Litherland-Smith 746a95e4a3 Add flake8 and isort to default python env 2024-11-29 10:22:49 +00:00
Evie Litherland-Smith eb4c93d5ec Adjust sync-all and sync-and-shutdown aliases 2024-11-28 07:38:25 +00:00
Evie Litherland-Smith 4ff15c64ad Fix bind address of adguardhome 2024-11-28 07:33:35 +00:00
Evie Litherland-Smith a36f263fce Fix setting adguardhome port 2024-11-28 07:18:41 +00:00
Evie Litherland-Smith 97fea3d88a Re-enable adguardhome 2024-11-28 07:07:50 +00:00
Evie Litherland-Smith 92f3c48f19 Remove zapzap 2024-11-27 13:15:35 +00:00
Evie Litherland-Smith eb9e6c0e95 Remove poetry and lua from default installed programs 2024-11-27 13:12:23 +00:00
Evie Litherland-Smith c3ab0f5974 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/689fed12a013f56d4c4d3f612489634267d86529?narHash=sha256-lKA770aUmjPHdTaJWnP3yQ9OI1TigenUqVC3wweqZuI%3D' (2024-11-12)
  → 'github:nixos/nixpkgs/e8c38b73aeb218e27163376a2d617e61a2ad9b59?narHash=sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g%3D' (2024-11-16)
2024-11-27 06:48:10 +00:00
Evie Litherland-Smith 786c629dd6 Revert Kanata changes... 2024-11-26 08:56:48 +00:00
Evie Litherland-Smith f83d5cbc3c Kanata: swap super and shift 2024-11-26 08:46:52 +00:00
Evie Litherland-Smith 53f8bd18a2 Change kanata order: super -> shift -> alt -> ctrl 2024-11-26 08:39:29 +00:00
Evie Litherland-Smith 923048cf0b Add initial config for MRVN (Kodi box) 2024-11-26 06:37:52 +00:00
Evie Litherland-Smith 459702a93a Move Emacs and password-store to desktop, add Emacs to Legion specifically 2024-11-26 06:27:57 +00:00
Evie Litherland-Smith 404d71b849 Swap openfortivpn from giving pass to using pinentry 2024-11-25 15:30:55 +00:00
Evie Litherland-Smith 8b867340ed Switch back to base16 version of one-light theme 2024-11-25 08:14:01 +00:00
Evie Litherland-Smith 5b9f7e1e11 Emacs: use stylix to customise base16-theme package
Add my custom modifications from README.el to extraConfig.el
2024-11-25 07:44:01 +00:00
Evie Litherland-Smith 9e21c14c35 Firefox enable globalprivacycontrol and donottrackheader 2024-11-25 06:52:27 +00:00
Evie Litherland-Smith 56dfc26a9d Remove kdeconnect
Move udiskie and avizo into separate nix files
2024-11-22 09:14:20 +00:00
Evie Litherland-Smith fd25a6ed83 Waybar: Add keyboard-state module to show capslock state 2024-11-21 11:24:39 +00:00
Evie Litherland-Smith a65f7fb68e Switch heimdall ssh alias back to "old" heimdall 2024-11-21 08:56:54 +00:00
Evie Litherland-Smith 7f5420df3b Remove sync-onedrive shell alias
Use rclone mount rather than syncing anyway, more robust to changes
from multiple machines
2024-11-21 06:55:10 +00:00
Evie Litherland-Smith d256780bb0 Add dedicate 3D printer workspace 2024-11-20 16:05:00 +00:00
Evie Litherland-Smith 45ba61743c Remove silent from workspace rules, only make steam silent
Don't autostart zapzap since it won't start in the background/tray
2024-11-20 07:28:12 +00:00
Evie Litherland-Smith 097705f67a Remove files workspace, add music workspace 2024-11-20 07:26:22 +00:00
Evie Litherland-Smith 0669367f52 Default shell back to Bash 2024-11-19 15:45:20 +00:00
Evie Litherland-Smith a187e9cb20 Adjust server alive interval and count again 2024-11-19 09:45:38 +00:00
Evie Litherland-Smith 2ff3ca63c9 Remove fish, set nushell as login shell 2024-11-19 07:04:36 +00:00
Evie Litherland-Smith 604903a774 Remove browser/default.nix, specify which browser(s) in imports 2024-11-18 14:12:52 +00:00
Evie Litherland-Smith 2231ef2128 Fix Swappy config error 2024-11-18 14:11:30 +00:00
Evie Litherland-Smith 4cee90e9f0 Switch back to fish as main shell
Also enable nushell for fun/testing
2024-11-18 14:11:09 +00:00
Evie Litherland-Smith 9675e83bf8 Add Swappy config 2024-11-18 14:02:16 +00:00
Evie Litherland-Smith 52d40b920f Revert "SSH change Heimdall alias back to "old" heimdall address"
This reverts commit 3d956ce781.
2024-11-18 13:40:59 +00:00
Evie Litherland-Smith 49657c97f8 Kanata reduce tap and hold time again 2024-11-18 09:41:05 +00:00
Evie Litherland-Smith 3d956ce781 SSH change Heimdall alias back to "old" heimdall address 2024-11-18 09:32:57 +00:00
Evie Litherland-Smith 1b5294c9cd Adjust SSH server alive interval and count 2024-11-18 09:30:21 +00:00
Evie Litherland-Smith 99cc7cc8e2 Make all workspace rules silent 2024-11-17 06:27:31 +00:00
Evie Litherland-Smith accccafb63 Add user to gamemode group to fix CPU governor error 2024-11-16 07:19:26 +00:00
Evie Litherland-Smith d9422c9ddb Slightly increase kanata tap and hold time 2024-11-15 08:36:40 +00:00
Evie Litherland-Smith 333e41f926 Build custom version of Emacs to include both PGTK and Imagemagick support
Install Emacs by default instead just for desktop environment
2024-11-15 08:00:36 +00:00
Evie Litherland-Smith 07ebae0855 Disable adguardhome service 2024-11-15 07:59:30 +00:00
Evie Litherland-Smith 6d7116df34 Add steamcmd to allowUnfreePredicate 2024-11-15 06:55:08 +00:00
Evie Litherland-Smith 67723bb2e3 Enable mangohud program instead of just adding to packages 2024-11-15 05:42:31 +00:00
Evie Litherland-Smith 47ee8cdfe0 Add NYXT to hyprland workspace rule 2024-11-14 15:22:28 +00:00
Evie Litherland-Smith 371d0547bf Re-enable NYXT browser for testing again 2024-11-14 15:17:52 +00:00
Evie Litherland-Smith 2c9e736bd7 Add initial config for qutebrowser
Still needs some work before it can be a daily driver
2024-11-14 15:16:02 +00:00
Evie Litherland-Smith 6aaf6488db Swap whatsapp-for-linux for zapzap
Getting much better performance from zapzap
2024-11-14 14:14:45 +00:00
Evie Litherland-Smith cc8bf2c589 Switch hyprland to dwindle layout 2024-11-14 13:20:46 +00:00
Evie Litherland-Smith e6643dfeca Set Hyprland home module package to same as system module 2024-11-14 09:19:07 +00:00
Evie Litherland-Smith 3de3338759 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/dba414932936fde69f0606b4f1d87c5bc0003ede?narHash=sha256-mwrFF0vElHJP8X3pFCByJR365Q2463ATp2qGIrDUdlE%3D' (2024-11-06)
  → 'github:nixos/nixpkgs/689fed12a013f56d4c4d3f612489634267d86529?narHash=sha256-lKA770aUmjPHdTaJWnP3yQ9OI1TigenUqVC3wweqZuI%3D' (2024-11-12)
2024-11-14 08:46:09 +00:00
Evie Litherland-Smith 68b4a7b063 Flatten directory/file structure a bit
Move system/home/default.nix into system/default.nix,
system/home/desktop/default.nix into system/desktop.nix to reduce
unnecessary duplication. Moved everything in home/desktop up to home/
and adjusted paths accordingly. Moved wallpapers up to system/ since
it makes sense with where it's used.

Merge allowUnfreePredicate into single place again since it seems to
override rather than combine if used multiple times.

Install NoMachine on all machines again by default.
2024-11-14 08:43:27 +00:00
Evie Litherland-Smith dd98ba83b7 New kanata layout again
Now super -> alt -> ctrl -> shift again
2024-11-13 15:28:14 +00:00
Evie Litherland-Smith f89a1ad112 New kanata layout again for testing
Now using shift -> super -> alt -> ctrl, order by most used keys (for
me)
2024-11-13 07:17:57 +00:00
Evie Litherland-Smith 428fd18ec2 Add alias to sync work OneDrive (work machines only) 2024-11-12 11:36:06 +00:00
Evie Litherland-Smith 92740c8b29 Add twinkle to workspace 4 rule 2024-11-12 09:35:18 +00:00
Evie Litherland-Smith 5355799420 Rotate home row mods again
Now using super -> alt -> ctrl -> shift
2024-11-12 09:34:51 +00:00
Evie Litherland-Smith c01a92a24c Kanata swap alt and met keys 2024-11-12 06:39:17 +00:00
Evie Litherland-Smith 70e5bb1d0d Kanata - swap alt and ctl 2024-11-11 16:58:34 +00:00
Evie Litherland-Smith d6289e7ac9 Add rope and pylsp-rope extension 2024-11-11 16:10:14 +00:00
Evie Litherland-Smith d18478508e Adjust waybar calendar format
Back to month view only, increase font size and adjust character
emphasis
2024-11-11 16:09:14 +00:00
Evie Litherland-Smith 90b5a2e71a Remove ollama 2024-11-11 05:17:23 +00:00
Evie Litherland-Smith c36866ed34 Rotate kanata layout again
Trying shift -> ctrl -> super -> alt now, mimic order as found across
the corner of the keyboard.
2024-11-11 05:12:57 +00:00
Evie Litherland-Smith c54a5e0bb5 Remove silent from workspace 6 rules 2024-11-11 04:59:26 +00:00
Evie Litherland-Smith 4607850870 Add floating window rule for Steam controller config window 2024-11-09 06:54:55 +00:00
Evie Litherland-Smith a7e397db4b flake.lock: Update
Flake lock file updates:

• Updated input 'iosevka-custom':
    'git+https://git.xenia.me.uk/pixelifytica/iosevka.git?ref=refs/heads/main&rev=c4213be70f7bc4c20aba7321decfd240a679fcd0' (2024-10-18)
  → 'git+https://git.xenia.me.uk/pixelifytica/iosevka.git?ref=refs/heads/main&rev=49828459e58b6987d2738b74c085cecb963355ab' (2024-10-30)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/32e940c7c420600ef0d1ef396dc63b04ee9cad37?narHash=sha256-BAuPWW%2B9fa1moZTU%2BjFh%2B1cUtmsuF8asgzFwejM4wac%3D' (2024-10-23)
  → 'github:nixos/nixpkgs/dba414932936fde69f0606b4f1d87c5bc0003ede?narHash=sha256-mwrFF0vElHJP8X3pFCByJR365Q2463ATp2qGIrDUdlE%3D' (2024-11-06)
2024-11-08 06:39:08 +00:00
Evie Litherland-Smith c96b2797e0 Split allowUnfreePredicate to where it's actually needed
Move steam config to separate file, import by Vanguard.

Move work config up one level (system rather than home) to config
allowUnfreePredicate for NoMachine.

Install teams and twinkle on desktop by default.
2024-11-08 06:33:25 +00:00
Evie Litherland-Smith 86fe70eace Remove sync-emacs from sync-all alias 2024-11-07 05:27:14 +00:00
Evie Litherland-Smith 938e5c859e Remove pylsp-mypy 2024-11-06 14:23:57 +00:00
Evie Litherland-Smith 28980407a3 Change home row mod order again
Now using super -> alt -> ctrl -> shift
2024-11-06 13:23:38 +00:00
Evie Litherland-Smith 17fd9c0e68 Swap super and meta for kanata (again) 2024-11-06 10:52:26 +00:00
Evie Litherland-Smith 2b22171217 Set WEBKIT_DISABLE_COMPOSITING_MODE to fix whatsapp performance 2024-11-06 07:27:52 +00:00
Evie Litherland-Smith 5d8af79ddd Rotate home row mods again
Trying shift -> super -> alt -> ctrl again

Adjust capsctrl tap and hold times
2024-11-06 07:05:05 +00:00
Evie Litherland-Smith 3e26cf74f1 Tweak tap time 2024-11-05 16:48:14 +00:00
Evie Litherland-Smith d09982cc9f Back rotate outer 3 keys
New order: super -> meta -> shift -> ctrl
2024-11-05 16:37:23 +00:00
Evie Litherland-Smith e1654bf6ad Remove some left over rofi binds I missed 2024-11-05 11:55:36 +00:00
Evie Litherland-Smith 4aafacad97 Kanata - swap alt and super keys 2024-11-05 11:49:31 +00:00
Evie Litherland-Smith 787435d7ce Remove media workspace, add documents workspace 2024-11-05 10:45:38 +00:00
Evie Litherland-Smith c47aa27321 Disable remapping caps to ctrl at xserver level
Use kanata to allow caps on tap and ctrl on hold.
2024-11-05 10:34:24 +00:00
Evie Litherland-Smith f16bd93df0 Rotate home row mods
Move shift to outer key (a/;), feels more natural. Rotate all other
keys by 1 inwards accordingly.
2024-11-05 10:00:23 +00:00
Evie Litherland-Smith f056629d93 Rearrange keys in kanata config
Add file local variables to tell Emacs it's a lisp-style file
2024-11-04 14:52:44 +00:00
Evie Litherland-Smith e2e290166e Adjust kanata timings using config from dreams-of-code, renable service 2024-11-04 11:00:11 +00:00
Evie Litherland-Smith 654901cf2d Disable Kanata service
Needs some more configuring before using full-time
2024-11-04 10:25:01 +00:00
Evie Litherland-Smith fb56866e4e Sync Emacs as part of sync-all 2024-11-04 06:34:54 +00:00
Evie Litherland-Smith 1780453f8b Add home row mods using kanata 2024-11-04 06:32:54 +00:00
Evie Litherland-Smith 9c09e1625d Switch to using workspaces with meaning 2024-11-03 11:42:58 +00:00
Evie Litherland-Smith d12676f747 Switch fastfetch for hyfetch (with config) 2024-11-03 11:25:21 +00:00
Evie Litherland-Smith c9a1e82522 Switch to base24 variant of one-light (modified by me) 2024-11-03 11:18:55 +00:00
Evie Litherland-Smith f7266fda77 Add UKAEA LaTeX beamer template from Chris Macmackin 2024-10-31 13:41:34 +00:00
Evie Litherland-Smith ed61fbb1e2 Change wallpaper
Don't autostart twinkle on work machines
2024-10-31 10:59:39 +00:00
Evie Litherland-Smith a9b748afc1 Remove sync-emacs from sync-all alias 2024-10-31 06:57:16 +00:00
Evie Litherland-Smith a66762ff0c Change order of syncing in sync-all alias 2024-10-31 06:04:44 +00:00
Evie Litherland-Smith d740a70ff1 Only install NoMachine on work machines 2024-10-31 05:37:40 +00:00
Evie Litherland-Smith 955b3a74e8 Ignore firefox from waybar mpris module 2024-10-31 05:04:30 +00:00
Evie Litherland-Smith 666bd09059 Remove gitea username from git config 2024-10-30 16:55:59 +00:00
Evie Litherland-Smith ea8e3e2de6 Update ensure-pass.sh to add GitHub API token to secret store
Rename a few variables for consistency

Remove spotifyd credentials since I don't use it anymore
2024-10-30 16:46:50 +00:00
Evie Litherland-Smith 37d2a39116 Ronin: set monitor to be on the left 2024-10-30 16:32:47 +00:00
Evie Litherland-Smith a9c78cbaa9 Move btm and cava into their own files 2024-10-30 16:32:34 +00:00
Evie Litherland-Smith 2b7a03c4fc Add work monitor config to Ronin 2024-10-30 14:56:22 +00:00
Evie Litherland-Smith 4adac992b7 Switch back from propo nf, bring back extra spaces needed in waybar config 2024-10-30 09:50:39 +00:00
Evie Litherland-Smith 220b8b17a6 Remove nixos-rebuild from sync-and-shutdown 2024-10-30 07:51:28 +00:00
Evie Litherland-Smith 6477e0c054 Switch to pre-packaged Iosevka Nerd Font for now so I can use the Propo variant 2024-10-30 07:46:58 +00:00
Evie Litherland-Smith 0f0b82837b Waybar calendar use year mode, enable right click to change mode 2024-10-29 14:42:45 +00:00
Evie Litherland-Smith 23bff7fb9d Fix and re-enable suppressing certain fullscreen/maximise events
Add idleinhibit criteria to watching videos fullscreen (firefox or
clapper), or playing games (based on steam_app or Minecraft)
2024-10-29 11:54:03 +00:00
Evie Litherland-Smith 30fe4d0dc6 Set global location and changes uses of lat/lon to inherit from this
Remove opacity from waybar tooltips since they aren't blurred
2024-10-29 09:15:07 +00:00
Evie Litherland-Smith 35b60eafa9 Update sharepoint bookmark 2024-10-29 09:12:57 +00:00
Evie Litherland-Smith 613d29a89b Add pylsp-mypy 2024-10-29 06:22:13 +00:00
Evie Litherland-Smith 7384920bf2 Actually fix firefox profiles bug this time
Seems there's an issue with profiles named "default" specifically
2024-10-29 05:23:21 +00:00
Evie Litherland-Smith 0175aa1b38 Cleanup a bunch off wallpapers that I'm not using 2024-10-28 15:26:03 +00:00
Evie Litherland-Smith 06b26cb16e Hyprland browser bind use firefox finalPackage instead of package 2024-10-28 14:45:03 +00:00
Evie Litherland-Smith ce37e5c498 Fix firefox profiles/config not working for some reason 2024-10-28 14:12:48 +00:00
Evie Litherland-Smith ccfe617b8d Add floating window rule for electron file picker 2024-10-28 10:28:17 +00:00
Evie Litherland-Smith 9a28a4226c Swap zathura for evince 2024-10-28 10:08:19 +00:00
Evie Litherland-Smith dbb404aebe Fix typo setting teams config file 2024-10-28 08:08:46 +00:00
Evie Litherland-Smith 18616386ab Fix waybar rewrite for btm and cava 2024-10-28 06:10:40 +00:00
Evie Litherland-Smith a4c4cd0994 Enable gammastep service 2024-10-28 05:57:57 +00:00
Evie Litherland-Smith e86ab30c99 Add display config for all other machines 2024-10-28 05:40:26 +00:00
Evie Litherland-Smith 1f8430520f MangoHud use preset 1 2024-10-27 16:41:50 +00:00
Evie Litherland-Smith 97ff8ec100 Add sync-and-shutdown alias 2024-10-27 07:14:55 +00:00
Evie Litherland-Smith 150d16c150 Add window rules for xdg-desktop-portal-gtk file picker dialog 2024-10-27 07:13:12 +00:00
Evie Litherland-Smith a002d1a699 Sync Emacs as part of sync-all alias 2024-10-27 07:03:14 +00:00
Evie Litherland-Smith 28006d5e14 Update ignored directories in clean-config.sh
Don't delete dconf directory
2024-10-27 07:02:07 +00:00
Evie Litherland-Smith 034a666ea4 Add xdg-desktop-portal-gtk as additional portal 2024-10-27 06:57:11 +00:00
Evie Litherland-Smith 35b1130442 Adjust colours of hyprlock and add fail text 2024-10-27 06:09:57 +00:00
Evie Litherland-Smith d3001e10be Add fractal (Matrix client) 2024-10-27 05:46:46 +00:00
Evie Litherland-Smith e78efe0dd0 Switch pinentry program to pinentry-gnome3, extend window rules accordingly 2024-10-25 16:37:03 +01:00
Evie Litherland-Smith 0d04cf4e64 Extend pinentry window rule to include pinentry-qt 2024-10-25 16:31:46 +01:00
Evie Litherland-Smith 29182c6b96 Force mimeapps linking 2024-10-25 15:35:48 +01:00
Evie Litherland-Smith 672c6296ec flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/dc2e0028d274394f73653c7c90cc63edbb696be1?narHash=sha256-GKJjtPY%2BSXfLF/yTN7M2cAnQB6RERFKnQhD8UvPSf3M%3D' (2024-10-16)
  → 'github:nixos/nixpkgs/32e940c7c420600ef0d1ef396dc63b04ee9cad37?narHash=sha256-BAuPWW%2B9fa1moZTU%2BjFh%2B1cUtmsuF8asgzFwejM4wac%3D' (2024-10-23)
2024-10-25 15:24:11 +01:00
Evie Litherland-Smith 7c1162b972 Remove plasma-manager and nix-index-database 2024-10-25 15:22:41 +01:00
Evie Litherland-Smith 45acedd324 Add image-roll and clapper for pictures and videos respectively
Replace swayimg and mpv

Fix MPRIS module for waybar (needed playerctl in PATH), reorganise so
that MPRIS is in the centre and update formatting
2024-10-25 15:20:10 +01:00
Evie Litherland-Smith 77f4eba566 Override GTK accent colour
Set scheme polarity to "light"
2024-10-25 14:47:54 +01:00
Evie Litherland-Smith 8fe0391deb Add g4music music player package 2024-10-25 14:25:37 +01:00
Evie Litherland-Smith cba1e28493 Enable udiskie service 2024-10-25 14:16:23 +01:00
Evie Litherland-Smith f6f42bd2c5 Update hypridle to use nix paths 2024-10-25 13:40:24 +01:00
Evie Litherland-Smith 147ef5daf0 Override stylix border colour for fuzzel, avizo and mako
Add default timeout (5s) to mako notifications
2024-10-25 13:02:42 +01:00
Evie Litherland-Smith 2dadd171e9 Add cava back, update some hyprland binds to use nixpkgs paths 2024-10-25 12:42:54 +01:00
Evie Litherland-Smith 048d44ce6d Switch Thunar+Xarchiver for GNOME Nautilus and File-Roller
Add Sushi (NautilusPreviewer) for quick file previews

Add zathura back as PDF viewer

Update mimeapps for swayimg, mpv, zathura, etc...
2024-10-25 12:19:00 +01:00
Evie Litherland-Smith 7b9d0a41d6 Switch back to Hyprland
Add separate config files for waybar, fuzzel, mako

Enable gnome-keyring as secret-service, with seahorse for interface

Restructure desktop-related things into a desktop directory
2024-10-25 11:25:34 +01:00
Evie Litherland-Smith 356ce4e4f7 Only install teams on work machines 2024-10-25 05:33:00 +01:00
Evie Litherland-Smith 10ca06642b Set nixPath as suggested by nixd config 2024-10-25 05:30:32 +01:00
Evie Litherland-Smith d81e874d19 sync-all now sync vdirsyncer and mbsync again 2024-10-24 05:35:12 +01:00
Evie Litherland-Smith 67c17acf6b Remove zellij 2024-10-24 05:33:40 +01:00
Evie Litherland-Smith 68af964598 Revert "Swap pylsp+mypy for pyright"
This reverts commit 4c3b24bd60.
2024-10-23 16:08:00 +01:00
Evie Litherland-Smith 22f2a94a65 Update sync-all alias
Rename for sync-git and sync-emacs, remove vdirsyncer and mbsync since
Emacs handles syncing them
2024-10-23 08:23:24 +01:00
Evie Litherland-Smith ac6e12ec99 Rename gsync/esync -> sync-git/emacs respectively
Realised there's a real program in the GNU coreutils called gsync so
wanted to avoid a collision
2024-10-23 08:19:13 +01:00
Evie Litherland-Smith dac7d30149 Set plasma panel to be on all screens 2024-10-23 06:43:30 +01:00
Evie Litherland-Smith a52ccf7ef4 Remove git-sync service, use gsync.sh script again instead
Delete some unused (test) scripts

Reduce what is sync'd by rsync-local-config: remove fonts, bat config
and zellij config
2024-10-22 11:36:21 +01:00
Evie Litherland-Smith 4734368f0c Revert "Remove gsync script"
This reverts commit 50371a5ad1.
2024-10-22 09:15:30 +01:00
Evie Litherland-Smith 8c52656d05 Add p7zip 2024-10-20 07:33:16 +01:00
Evie Litherland-Smith 3306374425 Change wallpaper 2024-10-19 11:06:28 +01:00
Evie Litherland-Smith 997f04d1a8 Fix MangoHud config 2024-10-19 07:15:51 +01:00
Evie Litherland-Smith 18308b3caf Remove ollama from Ronin 2024-10-18 16:15:16 +01:00
Evie Litherland-Smith 4c3b24bd60 Swap pylsp+mypy for pyright 2024-10-18 15:18:42 +01:00
Evie Litherland-Smith 89c45cab99 Remove Qt from hm config, theme managed by Plasma anyway 2024-10-18 11:38:30 +01:00
Evie Litherland-Smith c83fa1325a Add liberation font, remove font-awesome (should be covered by nerdfonts) 2024-10-18 11:23:50 +01:00
Evie Litherland-Smith af67e156a4 Revert "Add KDE plasma browser integration"
This reverts commit 0026c92bbe.
2024-10-18 10:33:32 +01:00
Evie Litherland-Smith 0026c92bbe Add KDE plasma browser integration 2024-10-18 08:51:26 +01:00
Evie Litherland-Smith 485b3559ad Add spotify to bookmarks 2024-10-18 07:53:50 +01:00
Evie Litherland-Smith ff288ef525 Set some (initial) mangohud colours using base16/stylix 2024-10-18 07:36:12 +01:00
Evie Litherland-Smith 7fc20d017a flake.lock: Update
Flake lock file updates:

• Updated input 'iosevka-custom':
    'git+https://git.xenia.me.uk/pixelifytica/iosevka.git?ref=refs/heads/main&rev=7c2ee6ddb3c72333676407350d672b2d61fccd94' (2024-10-18)
  → 'git+https://git.xenia.me.uk/pixelifytica/iosevka.git?ref=refs/heads/main&rev=c4213be70f7bc4c20aba7321decfd240a679fcd0' (2024-10-18)
2024-10-18 07:24:50 +01:00
Evie Litherland-Smith 0cd36ba6fb flake.lock: Update
Flake lock file updates:

• Updated input 'iosevka-custom':
    'git+https://git.xenia.me.uk/pixelifytica/iosevka.git?ref=refs/heads/main&rev=4b7699f416f13439aed68e7447ef65ab9d08109a' (2024-09-25)
  → 'git+https://git.xenia.me.uk/pixelifytica/iosevka.git?ref=refs/heads/main&rev=7c2ee6ddb3c72333676407350d672b2d61fccd94' (2024-10-18)
• Updated input 'iosevka-custom/nixpkgs':
    'github:nixos/nixpkgs/9357f4f23713673f310988025d9dc261c20e70c6?narHash=sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c%3D' (2024-09-21)
  → 'github:nixos/nixpkgs/a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c?narHash=sha256-nsNdSldaAyu6PE3YUA%2BYQLqUDJh%2BgRbBooMMekZJwvI%3D' (2024-10-14)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/c0b1da36f7c34a7146501f684e9ebdf15d2bebf8?narHash=sha256-WLxED18lodtQiayIPDE5zwAfkPJSjHJ35UhZ8h3cJUg%3D' (2024-10-14)
  → 'github:nixos/nixpkgs/dc2e0028d274394f73653c7c90cc63edbb696be1?narHash=sha256-GKJjtPY%2BSXfLF/yTN7M2cAnQB6RERFKnQhD8UvPSf3M%3D' (2024-10-16)
• Updated input 'plasma-manager':
    'github:nix-community/plasma-manager/508a077405fa700de0248e7f84bc4fefbd308dd9?narHash=sha256-poRon0EwKWfOfttFk/8IiUPzCO/ahpNvtsSd9lizlHY%3D' (2024-10-16)
  → 'github:nix-community/plasma-manager/9d851cebffd92ad3d2c69cc4df7a2c9368b78f73?narHash=sha256-GMZubGvIEZIpHhb3sw7GIK7hFtHGBijsXQbR8TBAF%2BU%3D' (2024-10-17)
2024-10-18 07:14:54 +01:00
Evie Litherland-Smith bdf6441780 Add sshfs 2024-10-17 13:32:10 +01:00
Evie Litherland-Smith 4a34969506 Set autoUpgrade to "boot" by default, keep as "switch" for Legion
Add stateVersion variables to Legion, missed last time...
2024-10-17 06:17:24 +01:00
Evie Litherland-Smith 04033bd40c flake.lock: Update
Flake lock file updates:

• Updated input 'nix-index-database':
    'github:nix-community/nix-index-database/5fce10c871bab6d7d5ac9e5e7efbb3a2783f5259?narHash=sha256-GJDtsxz2/zw6g/Nrp4XVWBS5IaZ7ZUkuvxPOBEDe7pg%3D' (2024-10-07)
  → 'github:nix-community/nix-index-database/5c54c33aa04df5dd4b0984b7eb861d1981009b22?narHash=sha256-grMdAd4KSU6uPqsfLzA1B/3pb9GtGI9o8qb0qFzEU/Y%3D' (2024-10-13)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d51c28603def282a24fa034bcb007e2bcb5b5dd0?narHash=sha256-dOymOQ3AfNI4Z337yEwHGohrVQb4yPODCW9MDUyAc4w%3D' (2024-10-09)
  → 'github:nixos/nixpkgs/c0b1da36f7c34a7146501f684e9ebdf15d2bebf8?narHash=sha256-WLxED18lodtQiayIPDE5zwAfkPJSjHJ35UhZ8h3cJUg%3D' (2024-10-14)
• Updated input 'plasma-manager':
    'github:nix-community/plasma-manager/bc14b17bff1557de8f103172508f896a87bb9cdb?narHash=sha256-XWNBGf8Z03sqA5/m99X6XTFbHGNuVx1gMaMQJbdDIrY%3D' (2024-10-03)
  → 'github:nix-community/plasma-manager/508a077405fa700de0248e7f84bc4fefbd308dd9?narHash=sha256-poRon0EwKWfOfttFk/8IiUPzCO/ahpNvtsSd9lizlHY%3D' (2024-10-16)
• Updated input 'stylix/base16-foot':
    'github:tinted-theming/base16-foot/e558fe47e187093313f19fa6a9eea61940ffbd6b?narHash=sha256-ByMVgH0rZ1by2YIVJ47gE8/ZHWcG8yqsErQ4tKLbm7Q%3D' (2024-09-29)
  → 'github:tinted-theming/base16-foot/eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce?narHash=sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU%3D' (2023-10-08)
• Updated input 'stylix/base16-helix':
    'github:tinted-theming/base16-helix/7f795bf75d38e0eea9fed287264067ca187b88a9?narHash=sha256-Z2o8VBPW3I%2BKKTSfe25kskz0EUj7MpUh8u355Z1nVsU%3D' (2024-09-09)
  → 'github:tinted-theming/base16-helix/dbe1480d99fe80f08df7970e471fac24c05f2ddb?narHash=sha256-FVrbPk%2BNtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g%3D' (2023-10-08)
• Updated input 'stylix/base16-kitty':
    'github:kdrag0n/base16-kitty/0898f2677f3a583cc6a89bde29b2b05ac2041e0b?narHash=sha256-%2BvEXvEsar7w7wPVRmKx%2BrJKUTD5DBgLR7jfl0k7VhnE%3D' (2024-07-16)
  → 'github:kdrag0n/base16-kitty/06bb401fa9a0ffb84365905ffbb959ae5bf40805?narHash=sha256-aRaizTYPpuWEcvoYE9U%2BYRX%2BWsc8%2BiG0guQJbvxEdJY%3D' (2022-10-05)
• Updated input 'stylix/base16-tmux':
    'github:tinted-theming/base16-tmux/44fbe9034653c83a8ae68941aaeeeeb7503cd1ae?narHash=sha256-AOITVZMhqELOzL5Jw54NIX7R8gFbTJqrHEDuPwgGYDQ%3D' (2024-09-29)
  → 'github:tinted-theming/base16-tmux/c02050bebb60dbb20cb433cd4d8ce668ecc11ba7?narHash=sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU%2B3Q%3D' (2023-10-08)
2024-10-17 06:10:31 +01:00
Evie Litherland-Smith 42e865c066 Move stateVersion variables into per-machine config files 2024-10-17 06:07:29 +01:00
Evie Litherland-Smith b4f6e267a1 Remove spotifyd
Issues getting it to work properly...
2024-10-16 08:09:13 +01:00
Evie Litherland-Smith 2fc7bb9d92 Move networking to system level config 2024-10-16 08:00:29 +01:00
Evie Litherland-Smith a6023abd2c Enable spotifyd service
Update ensure-pass section for spotify to allow spotifyd to use secret
service lookup
2024-10-16 07:58:49 +01:00
Evie Litherland-Smith 987cfbacae Combine different pass scripts into single ensure-pass.sh
Use password-store where possible to populate secret store without
user interaction (currently only Proton still needs manual input)

Add spotify to secret store ready for spotifyd
2024-10-16 07:52:52 +01:00
Evie Litherland-Smith fca50d0d55 Revert "Swap prusa-slicer for orca-slicer again"
This reverts commit 4d72c965b3.
2024-10-14 11:46:10 +01:00
Evie Litherland-Smith 4d72c965b3 Swap prusa-slicer for orca-slicer again 2024-10-14 11:21:35 +01:00
Evie Litherland-Smith d2a8e3fe81 Merge branch 'main' of https://git.xenia.me.uk/pixelifytica/nixos 2024-10-13 13:27:56 +01:00
Evie Litherland-Smith c5081cdb89 Adjust timing of mbsync and vdirsyncer
Sync every 30 minutes, instead of every 5
2024-10-13 13:27:40 +01:00
Evie Litherland-Smith baf4f5322c Only install firefox by default, keep nyxt config around though 2024-10-11 11:54:39 +01:00
Evie Litherland-Smith 62e7a875a0 Update clean-config script 2024-10-11 11:49:28 +01:00
Evie Litherland-Smith 996cb23217 Move default Emacs directory for esync 2024-10-11 11:46:52 +01:00
Evie Litherland-Smith 8b1b37344d Cleanup and rename some bookmarks 2024-10-11 09:47:33 +01:00
Evie Litherland-Smith 469ddd9500 Vanguard: remove orca-slicer (again) 2024-10-11 08:52:50 +01:00
Evie Litherland-Smith 0586b8623a Use magenta for papirus folder colour 2024-10-11 07:48:42 +01:00
Evie Litherland-Smith 9af209a103 Swap stylix to release-24.05 branch, update flake.lock 2024-10-11 06:56:18 +01:00
Evie Litherland-Smith a3f4e5df67 Swap plasma accent colour base0D -> base0E 2024-10-10 18:04:22 +01:00
Evie Litherland-Smith 0df26d4a48 Enable ollama service for work laptop 2024-10-10 16:52:09 +01:00
Evie Litherland-Smith 804ff2af6a Add orca slicer again 2024-10-09 07:12:40 +01:00
Evie Litherland-Smith 75251ad4e3 Enable ollama for Tone 2024-10-08 10:58:44 +01:00
Evie Litherland-Smith 9178d0678d Remove ollama service from Ronin 2024-10-08 09:33:45 +01:00
Evie Litherland-Smith d6e6fd8e7b Remove samba service 2024-10-08 09:31:45 +01:00
Evie Litherland-Smith 191581a912 Update Makefile 2024-10-08 08:21:15 +01:00
Evie Litherland-Smith 5601951859 Enable ollama for Vanguard and Ronin
Enable samba service for Tone
2024-10-08 07:13:34 +01:00
Evie Litherland-Smith 87fc2a2db8 Vanguard: enable ROCM/OpenCl support 2024-10-08 07:07:25 +01:00
Evie Litherland-Smith 7fc7335df5 Cleanup some services, re-enable adguardhome 2024-10-08 07:00:39 +01:00
Evie Litherland-Smith cfe75c1239 Update calendar primaryCollection 2024-10-07 17:43:51 +01:00
Evie Litherland-Smith 42956378ec vdirsyncer rename main calendar, set collections
Rename account "personal" -> "main", it was messing with khalel
tagging of "personal" collection inside "personal" calendar

Set collections to personal, work, and other

Only metasync displayname
2024-10-07 09:39:07 +01:00
Evie Litherland-Smith 234abaee93 Remove orca-slicer 2024-10-05 18:47:57 +01:00
Evie Litherland-Smith fe1f5bb6a2 Move GPG config to own file
Move home/services/ files up one level, adjust imports accordingly.
2024-10-05 16:39:27 +01:00
Evie Litherland-Smith 9864acd7e9 Revert "Firefox: add proton-pass, remove browserpass and simplelogin"
This reverts commit db7d968f49.
2024-10-05 16:24:23 +01:00
Evie Litherland-Smith db7d968f49 Firefox: add proton-pass, remove browserpass and simplelogin 2024-10-05 13:38:01 +01:00
Evie Litherland-Smith 50371a5ad1 Remove gsync script 2024-10-05 12:56:19 +01:00
Evie Litherland-Smith 409dea1c89 Fix typo in library path 2024-10-05 12:41:15 +01:00
Evie Litherland-Smith 9d401ace7f Re-enable git-sync service to sync org and library directories
git-sync service works now that I'm using libsecret for git auth.

Remove password-store from service, manage manually. Considering
switch to proton pass anyway.

Copy gpg and gpg-agent config to emacs/default.nix in case I switch
away from password-store.
2024-10-05 12:38:24 +01:00
Evie Litherland-Smith 4f226084d0 Move teams and nomachine to default install rather than work only 2024-10-03 08:47:43 +01:00
Evie Litherland-Smith 27777cef04 Add prusa-slicer back to Vanguard 2024-10-03 08:27:22 +01:00
Evie Litherland-Smith adbf4e8538 Add some more applications to pinned launchers 2024-10-02 16:16:05 +01:00
Evie Litherland-Smith ad15a34ebf Delete unused plasma files 2024-10-02 16:06:19 +01:00
Evie Litherland-Smith f5b7b406ed Remove MPV 2024-10-02 09:56:49 +01:00
Evie Litherland-Smith e432a02a58 Update nixpkgs 2024-10-02 08:37:33 +01:00
Evie Litherland-Smith e11ac75e69 Add sync-all shellAliase 2024-10-02 08:13:07 +01:00
Evie Litherland-Smith 2c873783d2 Switch Qt style to breeze 2024-10-02 08:08:55 +01:00
Evie Litherland-Smith 94018dba5a Revert "Don't autostart twinkle or teams"
This reverts commit 84f0d90de1.
2024-10-01 09:30:15 +01:00
Evie Litherland-Smith 02c5522870 Swap prusa-slicer for orca-slicer 2024-09-30 21:36:44 +01:00
Evie Litherland-Smith d025ce493a Remove WhatsApp Web from bookmarks 2024-09-30 13:17:27 +01:00
Evie Litherland-Smith 34ea27db26 Merge plasma config into desktop.nix
Remove sway, some misc cleanup as well
2024-09-30 11:52:26 +01:00
Evie Litherland-Smith d81b038001 Remove zathura, update mimeapps
Remove some left over sway-specific mime entries
2024-09-30 11:28:59 +01:00
Evie Litherland-Smith 2eba010954 Disable autologin for plasma
Means kwallet is unlocked at login so no issues with startup programs
2024-09-30 08:19:29 +01:00
Evie Litherland-Smith d609b3116a Wrap protonmail-bridge-gui to force ignoring password-store 2024-09-30 08:11:31 +01:00
Evie Litherland-Smith bb2c14b964 Remove no-allow-external-cache config from gpg-agent 2024-09-29 17:05:30 +01:00
Evie Litherland-Smith a6a900cfab Fix that annoying GTK plasma file issue... 2024-09-29 16:39:13 +01:00
Evie Litherland-Smith b8f899b854 Switch plasma back to single panel 2024-09-29 16:38:56 +01:00
Evie Litherland-Smith 196638a46b Fix xandikos config and enable for Legion 2024-09-29 12:36:58 +01:00
Evie Litherland-Smith bfc53dcb8a Fix setting secret service API for kwallet 2024-09-29 12:29:18 +01:00
Evie Litherland-Smith 9421a6ddab Disable passSecretService, re-enable kwallet 2024-09-29 11:31:35 +01:00
Evie Litherland-Smith 1ec38f94c8 Add calendar configuration
Use vdirsyncer to sync with xandikos server. Add khal for calendar
management.
2024-09-29 11:28:52 +01:00
Evie Litherland-Smith 69a0e81d5c Remove radicale, add xandikos as replacement 2024-09-29 10:49:10 +01:00
418 changed files with 3060 additions and 3000 deletions

3
.stylua.toml Normal file
View file

@ -0,0 +1,3 @@
indent_type = "Spaces"
call_parentheses = "None"
collapse_simple_statement = "Always"

View file

@ -1,11 +1,18 @@
.PHONY: default build flathub .PHONY: default build server flathub
HOST := $(shell hostname) HOST := $(shell hostname)
default: build default: build
build: build:
nix build -j 1 --keep-going .#nixosConfigurations.$(HOST).config.system.build.toplevel nix build --no-link --keep-going .#nixosConfigurations.$(HOST).config.system.build.toplevel
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
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

@ -5,11 +5,11 @@
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
}, },
"locked": { "locked": {
"lastModified": 1708890466, "lastModified": 1732200724,
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=", "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=",
"owner": "SenchoPens", "owner": "SenchoPens",
"repo": "base16.nix", "repo": "base16.nix",
"rev": "665b3c6748534eb766c777298721cece9453fdae", "rev": "153d52373b0fb2d343592871009a286ec8837aec",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -34,22 +34,6 @@
"type": "github" "type": "github"
} }
}, },
"base16-foot": {
"flake": false,
"locked": {
"lastModified": 1696725948,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
"owner": "tinted-theming",
"repo": "base16-foot",
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-foot",
"type": "github"
}
},
"base16-helix": { "base16-helix": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -66,46 +50,14 @@
"type": "github" "type": "github"
} }
}, },
"base16-kitty": {
"flake": false,
"locked": {
"lastModified": 1665001328,
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
"owner": "kdrag0n",
"repo": "base16-kitty",
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
"type": "github"
},
"original": {
"owner": "kdrag0n",
"repo": "base16-kitty",
"type": "github"
}
},
"base16-tmux": {
"flake": false,
"locked": {
"lastModified": 1696725902,
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
"owner": "tinted-theming",
"repo": "base16-tmux",
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-tmux",
"type": "github"
}
},
"base16-vim": { "base16-vim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1716150083, "lastModified": 1731949548,
"narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=", "narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-vim", "repo": "base16-vim",
"rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d", "rev": "61165b1632409bd55e530f3dbdd4477f011cadc6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -117,11 +69,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1673956053, "lastModified": 1696426674,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -138,11 +90,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1731533236,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -154,11 +106,11 @@
"fromYaml": { "fromYaml": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1689549921, "lastModified": 1731966426,
"narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=", "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "SenchoPens", "owner": "SenchoPens",
"repo": "fromYaml", "repo": "fromYaml",
"rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84", "rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -167,19 +119,72 @@
"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": {
"lastModified": 1713702291, "lastModified": 1732369855,
"narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=", "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934", "rev": "dadd58f630eeea41d645ee225a63f719390829dc",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "GNOME", "owner": "GNOME",
"ref": "46.1", "ref": "47.2",
"repo": "gnome-shell", "repo": "gnome-shell",
"type": "github" "type": "github"
} }
@ -191,134 +196,69 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726989464, "lastModified": 1735344290,
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=", "narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176", "rev": "613691f285dad87694c2ba1c9e6298d04736292d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-24.05", "ref": "release-24.11",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"iosevka-custom": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1727251758,
"narHash": "sha256-lZkaXStyIYGYeOBNejKZO5zw2AijomUJCoqxQg46qmg=",
"ref": "refs/heads/main",
"rev": "4b7699f416f13439aed68e7447ef65ab9d08109a",
"revCount": 16,
"type": "git",
"url": "https://git.xenia.me.uk/pixelifytica/iosevka.git"
},
"original": {
"type": "git",
"url": "https://git.xenia.me.uk/pixelifytica/iosevka.git"
}
},
"nix-index-database": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1726975622,
"narHash": "sha256-bPDZosnom0+02ywmMZAvmj7zvsQ6mVv/5kmvSgbTkaY=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "c7515c2fdaf2e1f3f49856cef6cec95bb2138417",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-index-database",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1726937504, "lastModified": 1736061677,
"narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=", "narHash": "sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9357f4f23713673f310988025d9dc261c20e70c6", "rev": "cbd8ec4de4469333c82ff40d057350c30e9f7d36",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-unstable", "ref": "nixos-24.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1726838390, "lastModified": 1735554305,
"narHash": "sha256-NmcVhGElxDbmEWzgXsyAjlRhUus/nEqPC5So7BOJLUM=", "narHash": "sha256-zExSA1i/b+1NMRhGGLtNfFGXgLtgo+dcuzHzaWA6w3Q=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "944b2aea7f0a2d7c79f72468106bc5510cbf5101", "rev": "0e82ab234249d8eee3e8c91437802b32c74bb3fd",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-24.05", "ref": "nixpkgs-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"plasma-manager": {
"inputs": {
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1727210241,
"narHash": "sha256-lufS6uzSbSrggNCSgubymMQWnQMh7PvQ+lRZ8qH9Uoc=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "a02fef2ece8084aff0b41700bb57d24d73574cd1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "plasma-manager",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"iosevka-custom": "iosevka-custom", "nixpkgs": "nixpkgs",
"nix-index-database": "nix-index-database", "stylix": "stylix",
"nixpkgs": "nixpkgs_2", "treefmt-nix": "treefmt-nix"
"plasma-manager": "plasma-manager",
"stylix": "stylix"
} }
}, },
"stylix": { "stylix": {
"inputs": { "inputs": {
"base16": "base16", "base16": "base16",
"base16-fish": "base16-fish", "base16-fish": "base16-fish",
"base16-foot": "base16-foot",
"base16-helix": "base16-helix", "base16-helix": "base16-helix",
"base16-kitty": "base16-kitty",
"base16-tmux": "base16-tmux",
"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"
@ -326,18 +266,22 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems" "systems": "systems",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-tmux": "tinted-tmux"
}, },
"locked": { "locked": {
"lastModified": 1726828291, "lastModified": 1736019457,
"narHash": "sha256-pGRPVVm7UXf+fx2NVpH6FFSWR9AynG6eoVlagaqH9i4=", "narHash": "sha256-MWe3RXEV9dov1wFZraWagVAxynPo/VceStIYfNRgqG4=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "53bcceb4e46d0b3e8ae6434a7a6bcc3463092093", "rev": "5204b085385c0bfaa1eb1bb0f8dc81922012128d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "danth", "owner": "danth",
"ref": "release-24.11",
"repo": "stylix", "repo": "stylix",
"type": "github" "type": "github"
} }
@ -356,6 +300,74 @@
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1716423189,
"narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1729501581,
"narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1736154270,
"narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -7,35 +7,47 @@
}; };
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
treefmt-nix.url = "github:numtide/treefmt-nix";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-24.05"; url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs = {
nixpkgs.follows = "nixpkgs";
home-manager.follows = "home-manager";
};
};
stylix = { stylix = {
url = "github:danth/stylix"; url = "github:danth/stylix/release-24.11";
inputs = { inputs = {
nixpkgs.follows = "nixpkgs"; nixpkgs.follows = "nixpkgs";
home-manager.follows = "home-manager"; home-manager.follows = "home-manager";
}; };
}; };
nix-index-database = {
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
iosevka-custom.url = "git+https://git.xenia.me.uk/pixelifytica/iosevka.git";
}; };
outputs = outputs =
inputs@{ nixpkgs, ... }: inputs@{
self,
nixpkgs,
treefmt-nix,
...
}:
let
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 = { nixosConfigurations = {
## Server ## Server
Legion = nixpkgs.lib.nixosSystem { Legion = nixpkgs.lib.nixosSystem {
@ -64,19 +76,11 @@
modules = [ ./system/default.nix ]; modules = [ ./system/default.nix ];
}; };
## Work ## Work
Tone = nixpkgs.lib.nixosSystem { Monarch = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
inherit inputs; inherit inputs;
username = "elitherl"; username = "elitherl";
hostName = "Tone"; hostName = "Monarch";
};
modules = [ ./system/default.nix ];
};
Ronin = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs;
username = "elitherl";
hostName = "Ronin";
}; };
modules = [ ./system/default.nix ]; modules = [ ./system/default.nix ];
}; };

View file

@ -1,20 +1,29 @@
{ ... }: { lib, username, ... }:
{ {
imports = [ imports = [
./services/adguardhome.nix
./services/caddy.nix ./services/caddy.nix
./services/forgejo.nix ./services/forgejo.nix
./services/grafana.nix ./services/grafana.nix
./services/home-assistant.nix ./services/home-assistant.nix
./services/minecraft.nix
./services/nix-serve.nix ./services/nix-serve.nix
./services/satisfactory/default.nix
./services/sshd.nix ./services/sshd.nix
./services/syncthing.nix ./services/syncthing.nix
./services/xandikos.nix
# ./services/minecraft.nix
# ./services/satisfactory/default.nix
]; ];
boot.loader = { boot.loader = {
systemd-boot.enable = true; systemd-boot.enable = true;
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
home-manager.users.${username} = {
imports = [ ./home/emacs/default.nix ];
services.emacs.enable = false;
home.stateVersion = "23.05";
};
system.stateVersion = "23.05";
users.mutableUsers = false; users.mutableUsers = false;
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
networking.nameservers = lib.mkForce [ "0.0.0.0" ];
} }

33
system/MRVN.nix Normal file
View file

@ -0,0 +1,33 @@
{ pkgs, username, ... }:
{
# nixpkgs.config.kodi.enableAdvancedLauncher = true;
services.xserver = {
enable = true;
desktopManager.kodi = {
enable = true;
package = pkgs.kodi.withPackages (
kp: with kp; [
jellyfin
youtube
netflix
]
);
};
displayManager = {
lightdm.greeter.enable = false;
autoLogin = {
enable = true;
user = username;
};
};
};
networking.firewall = {
allowedTCPPorts = [ 8080 ];
allowedUDPPorts = [ 8080 ];
};
home-manager.users.${username} = {
home.stateVersion = null;
};
system.stateVersion = null;
users.mutableUsers = false;
}

View file

@ -1,8 +1,15 @@
{ pkgs, username, ... }: { pkgs, username, ... }:
{ {
imports = [ ./laptop.nix ]; imports = [
./laptop.nix
./work.nix
];
home-manager.users.${username} = { home-manager.users.${username} = {
imports = [ ./home/work.nix ]; home.stateVersion = "23.05";
wayland.windowManager.hyprland.settings.monitor = [
"eDP-1,preferred,auto,1.25"
"desc:Dell Inc. DELL P3223QE CCG8YN3,preferred,auto-left,1.5"
];
}; };
boot.initrd = { boot.initrd = {
secrets = { secrets = {
@ -13,14 +20,12 @@
keyFile = "/crypto_keyfile.bin"; keyFile = "/crypto_keyfile.bin";
}; };
}; };
system.stateVersion = "23.05";
environment = { environment = {
etc."ppp/options".text = '' etc."ppp/options".text = ''
ipcp-accept-remote ipcp-accept-remote
''; '';
systemPackages = with pkgs; [ openfortivpn ]; systemPackages = with pkgs; [ openfortivpn ];
}; };
services = { services.hardware.bolt.enable = true;
samba.enable = true;
hardware.bolt.enable = true;
};
} }

View file

@ -1,4 +1,9 @@
{ ... }: { username, ... }:
{ {
imports = [ ./laptop.nix ]; imports = [ ./laptop.nix ];
home-manager.users.${username} = {
home.stateVersion = "23.05";
wayland.windowManager.hyprland.settings.monitor = [ "eDP-1,preferred,auto,1.25" ];
};
system.stateVersion = "23.05";
} }

View file

@ -1,28 +0,0 @@
{ pkgs, username, ... }:
{
imports = [ ./desktop.nix ];
home-manager.users.${username} = {
imports = [ ./home/work.nix ];
};
boot = {
loader.efi.efiSysMountPoint = "/boot/efi";
initrd = {
secrets = {
"/crypto_keyfile.bin" = null;
};
luks.devices."luks-47d34268-5100-4eba-b34d-220f4239c1cb" = {
device = "/dev/disk/by-uuid/47d34268-5100-4eba-b34d-220f4239c1cb";
keyFile = "/crypto_keyfile.bin";
};
};
};
environment = {
etc."ppp/options".text = ''
ipcp-accept-remote
'';
systemPackages = with pkgs; [
openfortivpn
samba
];
};
}

View file

@ -5,26 +5,41 @@
... ...
}: }:
{ {
imports = [ ./desktop.nix ]; imports = [
environment.sessionVariables.MANGOHUD = 1; ./desktop.nix
./steam.nix
];
home-manager.users.${username} = { home-manager.users.${username} = {
home.packages = with pkgs; [ imports = [ ./home/swww/default.nix ];
krita home = {
kdenlive stateVersion = "23.05";
packages = with pkgs; [
helvum helvum
prusa-slicer prusa-slicer
blender blender
freecad freecad
openscad openscad
kicad-small kicad-small
mangohud
wineWowPackages.waylandFull wineWowPackages.waylandFull
winetricks winetricks
lutris lutris
cartridges cartridges
prismlauncher prismlauncher
(retroarch.override {
cores = with libretro; [
mupen64plus
dolphin
mgba
citra
pcsx2
ppsspp
]; ];
programs.obs-studio = { })
];
};
programs = {
btop.package = pkgs.btop-rocm;
obs-studio = {
enable = true; enable = true;
plugins = with pkgs.obs-studio-plugins; [ plugins = with pkgs.obs-studio-plugins; [
wlrobs wlrobs
@ -33,49 +48,44 @@
input-overlay input-overlay
]; ];
}; };
xdg.configFile."MangoHud/MangoHud.conf".text = '' };
preset=2 wayland.windowManager.hyprland.settings =
time let
# text_color=FFFFFF primary = "Microstep MSI G27CQ4 E2";
# gpu_color=2E9762 secondary = "Acer Technologies ED270R TJMEE0043W01";
# cpu_color=2E97CB in
# vram_color=AD64C1 {
# ram_color=C26693 monitor = [
# engine_color=EB5B5B "desc:${primary},2560x1440@144,1920x0,1.25,vrr,2"
# io_color=A491D3 "desc:${secondary},1920x1080@144,0x140,1.0,vrr,2"
# frametime_color=00FF00 ];
# background_color=020202 workspace = [
# media_player_color=FFFFFF "3, monitor:desc:${secondary}"
# wine_color=EB5B5B "5, monitor:desc:${primary}"
# battery_color=FF9078 "7, monitor:desc:${primary}"
# network_color=E07B85 ];
''; };
}; };
boot = { boot = {
kernel.sysctl = {
"vm.max_map_count" = 16777216;
"fs.file-max" = 524288;
};
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
extraModprobeConfig = '' extraModprobeConfig = ''
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1 options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
''; '';
}; };
hardware = { hardware = {
amdgpu.initrd.enable = true; amdgpu = {
opengl = { initrd.enable = true;
opencl.enable = true;
};
graphics = {
enable = true; enable = true;
driSupport = true; enable32Bit = true;
driSupport32Bit = true;
};
steam-hardware.enable = true;
};
programs = {
gamemode.enable = true;
steam = {
enable = true;
remotePlay.openFirewall = true;
gamescopeSession.enable = true;
};
gamescope = {
enable = true;
capSysNice = true;
}; };
}; };
services.hardware.openrgb.enable = true;
system.stateVersion = "23.05";
} }

View file

@ -29,14 +29,14 @@
"flakes" "flakes"
]; ];
auto-optimise-store = true; auto-optimise-store = true;
download-buffer-size = "2G";
substituters = [ "https://nix.xenia.me.uk" ]; substituters = [ "https://nix.xenia.me.uk" ];
trusted-public-keys = [ "nix.xenia.me.uk:tlgwOaG5KMLjQUk2YaErS8mAG69ZCr3PaHXZYi+Y5eI=" ]; trusted-public-keys = [ "nix.xenia.me.uk:tlgwOaG5KMLjQUk2YaErS8mAG69ZCr3PaHXZYi+Y5eI=" ];
}; };
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
channel.enable = true; channel.enable = true;
gc = { gc = {
automatic = true; automatic = true;
options = "--delete-older-than 7d"; options = "--delete-older-than 3d";
}; };
optimise.automatic = true; optimise.automatic = true;
registry.my-nixos = { registry.my-nixos = {
@ -56,35 +56,28 @@
max-free = ${toString (1024 * 1024 * 1024)} max-free = ${toString (1024 * 1024 * 1024)}
''; '';
}; };
nixpkgs = { nixpkgs.config.allowUnfreePredicate =
config.allowUnfreePredicate =
pkg: pkg:
builtins.elem (lib.getName pkg) [ builtins.elem (lib.getName pkg) [
"steam" "steam"
"steam-unwrapped"
"steam-original" "steam-original"
"steam-run" "steam-run"
"steamcmd" "steamcmd"
"nomachine-client" "nomachine-client"
]; ];
overlays = [ (final: prev: { inherit (inputs.plasma-manager.packages.${prev.system}) rc2nix; }) ]; system.autoUpgrade = {
};
system = {
stateVersion = "23.05";
autoUpgrade = {
enable = true; enable = true;
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}";
dates = "02:00"; dates = "02:00";
randomizedDelaySec = "5min";
flags = [ flags = [
"--accept-flake-config"
"--option" "--option"
"extra-binary-caches" "extra-binary-caches"
"https://nix.xenia.me.uk" "https://nix.xenia.me.uk"
]; ];
}; };
};
systemd.services = lib.mkIf config.system.autoUpgrade.enable { systemd.services = lib.mkIf config.system.autoUpgrade.enable {
nixos-upgrade.serviceConfig = { nixos-upgrade.serviceConfig = {
CPUQuota = "75%"; CPUQuota = "75%";
@ -98,7 +91,6 @@
}; };
networking = { networking = {
inherit hostName; inherit hostName;
networkmanager.enable = true;
firewall.enable = true; firewall.enable = true;
nameservers = [ "9.9.9.9" ]; nameservers = [ "9.9.9.9" ];
}; };
@ -118,6 +110,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"
@ -125,6 +118,8 @@
"input" "input"
"uinput" "uinput"
"dialout" "dialout"
"podman"
"gamemode"
]; ];
initialHashedPassword = "$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3"; initialHashedPassword = "$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3";
openssh = { openssh = {
@ -137,12 +132,16 @@
useUserPackages = true; useUserPackages = true;
backupFileExtension = "backup"; backupFileExtension = "backup";
users.${username} = { users.${username} = {
imports = [ ./home/default.nix ]; imports = [
./home/shell/default.nix
./home/scripts/default.nix
./home/gpg/default.nix
];
home = { home = {
inherit username; inherit username;
stateVersion = "23.05";
homeDirectory = "/home/${username}"; homeDirectory = "/home/${username}";
}; };
programs.home-manager.enable = true;
}; };
extraSpecialArgs = { extraSpecialArgs = {
inherit inputs; inherit inputs;
@ -162,16 +161,20 @@
file file
zip zip
unzip unzip
p7zip
curl curl
wget wget
dig dig
wireguard-tools wireguard-tools
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 = {
@ -185,7 +188,6 @@
}; };
}; };
services = { services = {
passSecretService.enable = true;
upower.enable = true; upower.enable = true;
power-profiles-daemon.enable = true; power-profiles-daemon.enable = true;
system76-scheduler = { system76-scheduler = {
@ -194,32 +196,54 @@
}; };
}; };
security.rtkit.enable = true; security.rtkit.enable = true;
virtualisation.podman.enable = true; virtualisation = {
containers.enable = true;
podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
};
};
location = {
latitude = 51.7;
longitude = -1.2;
provider = "manual";
};
time.timeZone = "Europe/London"; time.timeZone = "Europe/London";
i18n.defaultLocale = "en_GB.UTF-8"; i18n.defaultLocale = "en_GB.UTF-8";
console.useXkbConfig = true; console.useXkbConfig = true;
stylix = { stylix = {
enable = true; enable = true;
image = ./home/wallpapers/landscapes/tropic_island_day.jpg; image = ./wallpapers/default.png;
base16Scheme = "${pkgs.base16-schemes}/share/themes/one-light.yaml"; base16Scheme = lib.mkDefault "${pkgs.base16-schemes}/share/themes/onedark.yaml";
opacity.popups = 0.8; polarity = config.lib.stylix.scheme.variant;
opacity = {
applications = 0.9;
desktop = 0.7;
popups = 0.5;
terminal = 0.9;
};
cursor = { cursor = {
package = pkgs.volantes-cursors; package = pkgs.volantes-cursors;
name = "volantes_cursors"; name = "volantes_cursors";
size = 32; size = 32;
}; };
fonts = { fonts =
let
fpkgs = pkgs.callPackage ./fonts.nix { };
in
{
serif = { serif = {
package = inputs.iosevka-custom.outputs.packages.${pkgs.system}.iosevka-custom-etoile; package = fpkgs.iosevka-custom-etoile;
name = inputs.iosevka-custom.outputs.names.iosevka-custom-etoile; name = "Iosevka Custom Etoile";
}; };
sansSerif = { sansSerif = {
package = inputs.iosevka-custom.outputs.packages.${pkgs.system}.iosevka-custom-aile; package = fpkgs.iosevka-custom-aile;
name = inputs.iosevka-custom.outputs.names.iosevka-custom-aile; name = "Iosevka Custom Aile";
}; };
monospace = { monospace = {
package = inputs.iosevka-custom.outputs.packages.${pkgs.system}.iosevka-custom-nerdfont; package = fpkgs.iosevka-custom-nerdfont;
name = inputs.iosevka-custom.outputs.names.iosevka-custom-nerdfont; name = "IosevkaCustom Nerd Font Propo";
}; };
sizes = { sizes = {
applications = 12; applications = 12;
@ -229,27 +253,9 @@
}; };
}; };
}; };
fonts = { fonts.packages = with pkgs; [
packages = liberation_ttf # Documents
(with config.stylix.fonts; [
serif.package
sansSerif.package
monospace.package
emoji.package
])
++ (with pkgs; [
lmodern # LaTeX lmodern # LaTeX
font-awesome # Swappy Icons
(nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; }) (nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; })
]); ];
fontconfig = {
enable = true;
defaultFonts = with config.stylix.fonts; {
serif = [ serif.name ];
sansSerif = [ sansSerif.name ];
monospace = [ monospace.name ];
emoji = [ emoji.name ];
};
};
};
} }

View file

@ -1,13 +1,24 @@
{ pkgs, username, ... }:
{ {
imports = [ ./plasma.nix ]; config,
home-manager.users.${username}.imports = [ ./home/desktop.nix ]; pkgs,
username,
...
}:
{
nixpkgs.config.chromium.commandLineArgs = "--password-store='gnome-libsecret' --enable-features=UseOzonePlatform --ozone-platform=wayland"; nixpkgs.config.chromium.commandLineArgs = "--password-store='gnome-libsecret' --enable-features=UseOzonePlatform --ozone-platform=wayland";
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
networking.networkmanager.enable = true;
environment = { environment = {
sessionVariables = { sessionVariables = {
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";
MOZ_ENABLE_WAYLAND = "1";
WEBKIT_DISABLE_COMPOSITING_MODE = "1";
MPLBACKEND = "TkAgg";
GDK_BACKEND = "wayland,x11";
XDG_SESSION_TYPE = "wayland";
QT_QPA_PLATFORM = "wayland"; QT_QPA_PLATFORM = "wayland";
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
}; };
systemPackages = with pkgs; [ systemPackages = with pkgs; [
libsecret libsecret
@ -15,6 +26,28 @@
xdg-utils xdg-utils
hunspell hunspell
hunspellDicts.en_GB-large hunspellDicts.en_GB-large
wl-clipboard
proton-pass
hyprpicker
grim
slurp
swappy
cameractrls-gtk4
czkawka
nautilus
libreoffice
evince
image-roll
imagemagick
clapper
g4music
ffmpeg
picard
webcord
signal-desktop
whatsapp-for-linux
teams-for-linux
nomachine-client
]; ];
}; };
security = { security = {
@ -31,14 +64,35 @@
programs = { programs = {
dconf.enable = true; dconf.enable = true;
noisetorch.enable = true; noisetorch.enable = true;
kdeconnect.enable = true; seahorse.enable = true;
file-roller.enable = true;
hyprland.enable = true;
xwayland.enable = true; xwayland.enable = true;
}; };
gtk.iconCache.enable = true; gtk.iconCache.enable = true;
qt = {
enable = true;
style = if config.lib.stylix.scheme.variant == "light" then "adwaita" else "adwaita-dark";
};
services = { services = {
dbus.packages = [ pkgs.gcr ]; gnome.gnome-keyring.enable = true;
flatpak.enable = true; flatpak.enable = true;
printing.enable = true; printing.enable = true;
tumbler.enable = true;
udisks2.enable = true;
blueman.enable = config.hardware.bluetooth.enable;
gnome.sushi.enable = true;
gvfs = {
enable = true;
package = pkgs.gnome.gvfs;
};
kanata = {
enable = true;
keyboards.main = {
config = builtins.readFile ./kanata.kbd;
extraDefCfg = "process-unmapped-keys yes";
};
};
pipewire = { pipewire = {
enable = true; enable = true;
pulse.enable = true; pulse.enable = true;
@ -47,12 +101,144 @@
support32Bit = true; support32Bit = true;
}; };
}; };
greetd = {
enable = true;
settings =
let
default_session.command = "Hyprland";
in
{
inherit default_session;
initial_session = {
inherit (default_session) command;
user = username;
};
};
};
xserver = { xserver = {
enable = true; enable = true;
xkb = { xkb.layout = "gb";
layout = "gb"; };
variant = ""; };
options = "ctrl:nocaps"; xdg.portal = {
enable = true;
config.common.default = "*"; # TODO change for xdg-desktop-portal > 1.17 changes
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
home-manager.users.${username} =
{
config,
pkgs,
osConfig,
...
}:
{
imports = [
./home/hyprland.nix
./home/terminal/default.nix
./home/browser/firefox.nix
./home/emacs/default.nix
./home/email/default.nix
./home/calendar/default.nix
];
home.file.${config.gtk.gtk2.configLocation}.force = true;
services = {
syncthing.enable = true;
gammastep = {
inherit (osConfig.location) latitude longitude provider;
enable = true;
tray = true;
};
};
gtk = {
enable = true;
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
iconTheme = {
package = (pkgs.papirus-icon-theme.override { color = "violet"; });
name = if config.lib.stylix.scheme.variant == "light" then "Papirus-Light" else "Papirus-Dark";
};
};
stylix.targets.gtk.extraCss = with config.lib.stylix.scheme.withHashtag; ''
@define-color accent_color ${base0E-hex};
@define-color accent_bg_color ${base0E-hex};
'';
xdg = {
mime.enable = true;
mimeApps =
let
defaultApplications = import ./mimeapps.nix;
in
{
enable = true;
inherit defaultApplications;
associations.added = defaultApplications;
};
userDirs = {
enable = true;
createDirectories = true;
extraConfig = {
XDG_PROJECTS_DIR = "${config.home.homeDirectory}/Projects";
};
};
configFile = {
# Stop programs from overriding mimeapps
"mimeapps.list".force = true;
# Ensure GTK config is set
"gtk-3.0/gtk.css".force = true;
"gtk-3.0/settings.ini".force = true;
"gtk-4.0/gtk.css".force = true;
"gtk-4.0/settings.ini".force = true;
# Set Swappy config so that it saves to Screenshots directory
"swappy/config".text = ''
[Default]
save_dir=${config.xdg.userDirs.pictures}/Screenshots/
save_filename_format=swappy-%Y%m%d-%H%M%S.png
show_panel=false
line_size=5
text_size=${toString config.stylix.fonts.sizes.desktop}
text_font=${config.stylix.fonts.sansSerif.name}
paint_mode=brush
early_exit=false
fill_shape=false
'';
# WhatsApp config
"whatsapp-for-linux/settings.conf" =
let
inherit (config.lib.stylix.scheme) variant;
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" ];
};
};
# 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

@ -31,7 +31,8 @@
fsType = "ext4"; fsType = "ext4";
}; };
boot.initrd.luks.devices."luks-bf1eab3a-6d92-430d-a282-8dd4c9efe2c7".device = "/dev/disk/by-uuid/bf1eab3a-6d92-430d-a282-8dd4c9efe2c7"; boot.initrd.luks.devices."luks-bf1eab3a-6d92-430d-a282-8dd4c9efe2c7".device =
"/dev/disk/by-uuid/bf1eab3a-6d92-430d-a282-8dd4c9efe2c7";
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/85D5-B6EC"; device = "/dev/disk/by-uuid/85D5-B6EC";

View file

@ -26,7 +26,8 @@
fsType = "ext4"; fsType = "ext4";
}; };
boot.initrd.luks.devices."luks-d1062931-ee58-4848-adf9-09452daeb6eb".device = "/dev/disk/by-uuid/d1062931-ee58-4848-adf9-09452daeb6eb"; boot.initrd.luks.devices."luks-d1062931-ee58-4848-adf9-09452daeb6eb".device =
"/dev/disk/by-uuid/d1062931-ee58-4848-adf9-09452daeb6eb";
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/ABE3-88E7"; device = "/dev/disk/by-uuid/ABE3-88E7";

View file

@ -1,50 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"usb_storage"
"usbhid"
"sd_mod"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/0c6931d0-50c3-47b0-98c8-d295ddeb2004";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-08822b9c-e9d6-424c-bc75-373f8667526d".device = "/dev/disk/by-uuid/08822b9c-e9d6-424c-bc75-373f8667526d";
fileSystems."/boot/efi" = {
device = "/dev/disk/by-uuid/6009-89FC";
fsType = "vfat";
};
swapDevices = [ { device = "/dev/disk/by-uuid/ff9627a7-820c-4628-a040-2b665688b893"; } ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -29,7 +29,8 @@
fsType = "ext4"; fsType = "ext4";
}; };
boot.initrd.luks.devices."luks-0d50df5f-9456-4296-9156-f5b818e11552".device = "/dev/disk/by-uuid/0d50df5f-9456-4296-9156-f5b818e11552"; boot.initrd.luks.devices."luks-0d50df5f-9456-4296-9156-f5b818e11552".device =
"/dev/disk/by-uuid/0d50df5f-9456-4296-9156-f5b818e11552";
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/3297-A70D"; device = "/dev/disk/by-uuid/3297-A70D";

14
system/home/avizo.nix Normal file
View file

@ -0,0 +1,14 @@
{ config, lib, ... }:
{
services.avizo = {
enable = true;
settings.default = {
image-opacity = lib.mkForce "1.0";
border-color =
let
scheme = config.lib.stylix.scheme;
in
lib.mkForce "rgba(${scheme.base0E-rgb-r}, ${scheme.base0E-rgb-g}, ${scheme.base0E-rgb-b}, 1.0)";
};
};
}

View file

@ -1,8 +1,8 @@
[ [
{ {
"name": "WhatsApp Web", "name": "Spotify",
"url": "https://web.whatsapp.com/", "url": "https://open.spotify.com",
"tags": ["Social"] "tags": ["Music", "Streaming"]
}, },
{ {
"name": "ABRP", "name": "ABRP",
@ -12,7 +12,7 @@
{ {
"name": "Patreon", "name": "Patreon",
"url": "https://www.patreon.com/home", "url": "https://www.patreon.com/home",
"tags": [] "tags": ["Personal"]
}, },
{ {
"name": "NHS App", "name": "NHS App",
@ -184,11 +184,6 @@
"url": "https://ukaea-ism.ivanticloud.com/Modules/SelfService/?NoDefaultProvider=True#home", "url": "https://ukaea-ism.ivanticloud.com/Modules/SelfService/?NoDefaultProvider=True#home",
"tags": ["Work"] "tags": ["Work"]
}, },
{
"name": "Marval",
"url": "https://marval.service.ukaea.uk/MSMSelfService/Index.aspx",
"tags": ["Work"]
},
{ {
"name": "U4BW", "name": "U4BW",
"url": "https://ubw.unit4cloud.com/uk_aea_prod_web/Login/Login.aspx", "url": "https://ubw.unit4cloud.com/uk_aea_prod_web/Login/Login.aspx",
@ -201,7 +196,7 @@
}, },
{ {
"name": "Robin", "name": "Robin",
"url": "https://dashboard.robinpowered.com/", "url": "https://dashboard.robinpowered.com/UKAEA/",
"tags": ["Work", "Room Booking"] "tags": ["Work", "Room Booking"]
}, },
{ {
@ -209,26 +204,21 @@
"url": "https://pinboard.ukaea.uk/", "url": "https://pinboard.ukaea.uk/",
"tags": ["Work"] "tags": ["Work"]
}, },
{
"name": "EUROFusion Pinboard",
"url": "https://users.euro-fusion.org/webapps/pinboard/EFDA-JET/",
"tags": ["Work"]
},
{ {
"name": "OPEN-ADAS", "name": "OPEN-ADAS",
"url": "https://open.adas.ac.uk/", "url": "https://open.adas.ac.uk/",
"tags": ["Work"] "tags": ["Work"]
}, },
{
"name": "Homepage",
"url": "http://w3.jet.uk",
"tags": ["Work", "JET"]
},
{ {
"name": "Physics Summary", "name": "Physics Summary",
"url": "https://users.euro-fusion.org/pages/physics-summary/LatestSession.php", "url": "https://users.euro-fusion.org/pages/physics-summary/LatestSession.php",
"tags": ["Work", "JET"] "tags": ["Work", "JET"]
}, },
{
"name": "JSPO Reports",
"url": "https://www.jspo.jet.uk/pages/operations/jpecreports_2023.html",
"tags": ["Work", "JET"]
},
{ {
"name": "DVCM Homepage", "name": "DVCM Homepage",
"url": "https://dvcm.jetdata.eu/", "url": "https://dvcm.jetdata.eu/",
@ -270,17 +260,17 @@
"tags": ["Work", "JET", "Mimic"] "tags": ["Work", "JET", "Mimic"]
}, },
{ {
"name": "Users Page", "name": "MAST-U Users Page",
"url": "https://users.mastu.ukaea.uk/home", "url": "https://users.mastu.ukaea.uk/home",
"tags": ["Work", "MAST-U"] "tags": ["Work", "MAST-U"]
}, },
{ {
"name": "Diagnostic Handbook", "name": "MAST-U Diagnostic Handbook",
"url": "https://intranet.ccfe.ac.uk/mastu-handbook", "url": "https://intranet.ccfe.ac.uk/mastu-handbook",
"tags": ["Work", "MAST-U"] "tags": ["Work", "MAST-U"]
}, },
{ {
"name": "Data Access and Tools", "name": "MAST-U Data Access and Tools",
"url": "https://users.mastu.ukaea.uk/data-access-and-tools", "url": "https://users.mastu.ukaea.uk/data-access-and-tools",
"tags": ["Work", "MAST-U"] "tags": ["Work", "MAST-U"]
}, },
@ -294,14 +284,9 @@
"url": "https://outlook.office.com/mail/ContactUs@lgbtqi.ukaea.uk/", "url": "https://outlook.office.com/mail/ContactUs@lgbtqi.ukaea.uk/",
"tags": ["Work", "Office", "Network", "LGBTQIA+"] "tags": ["Work", "Office", "Network", "LGBTQIA+"]
}, },
{
"name": "Teams",
"url": "https://teams.microsoft.com/v2",
"tags": ["Work", "Office"]
},
{ {
"name": "OneDrive", "name": "OneDrive",
"url": "https://ukaeauk-my.sharepoint.com/personal/evie_litherland-smith_ukaea_uk/", "url": "https://ukaeauk-my.sharepoint.com/",
"tags": ["Work", "Office"] "tags": ["Work", "Office"]
}, },
{ {
@ -309,6 +294,11 @@
"url": "https://ukaeauk.sharepoint.com/sites/Plasma", "url": "https://ukaeauk.sharepoint.com/sites/Plasma",
"tags": ["Work", "Office"] "tags": ["Work", "Office"]
}, },
{
"name": "Spectroscopy and Imaging Sharepoint",
"url": "https://ukaeauk.sharepoint.com/sites/Plasma/Team_Areas/SitePages/Spectroscopy-and-Imaging---Team-Area.aspx",
"tags": ["Work", "Office"]
},
{ {
"name": "Culham Canteen Menus", "name": "Culham Canteen Menus",
"url": "https://nucleus.ukaea.uk/Interact/Pages/Section/Default.aspx?section=10112", "url": "https://nucleus.ukaea.uk/Interact/Pages/Section/Default.aspx?section=10112",

View file

@ -46,8 +46,8 @@
'("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/")
'("nixwiki" "https://nixos.wiki/index.php?search=~a&go=Go" "https://nixos.wiki/")
'("archwiki" "https://wiki.archlinux.org/index.php?search=~a" "https://wiki.archlinux.org/") '("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/") '("github" "https://github.com/search?utf8=✓&q=~a&type=repositories" "https://github.com/")
'("flathub" "https://flathub.org/apps/search?q=~a" "https://flathub.org/") '("flathub" "https://flathub.org/apps/search?q=~a" "https://flathub.org/")
'("doi" "https://dx.doi.org/~a" "https://dx.doi.org/") '("doi" "https://dx.doi.org/~a" "https://dx.doi.org/")
@ -63,5 +63,3 @@
(define-configuration browser (define-configuration browser
((restore-session-on-startup-p nil))) ((restore-session-on-startup-p nil)))
(setf (uiop/os:getenv "GTK_THEME") "Adwaita:light")

View file

@ -1,7 +0,0 @@
{ ... }:
{
imports = [
./firefox.nix
./nyxt.nix
];
}

View file

@ -1,12 +1,12 @@
{ pkgs, ... }:
{ {
stylix.targets.firefox.profileNames = [ "default" ]; config,
programs = { lib,
browserpass = { pkgs,
enable = true; ...
browsers = [ "firefox" ]; }:
}; {
firefox = { stylix.targets.firefox.enable = false;
programs.firefox = {
enable = true; enable = true;
policies = { policies = {
BlockAboutProfiles = true; BlockAboutProfiles = true;
@ -15,7 +15,7 @@
BehaviorPrivateBrowsing = "reject"; BehaviorPrivateBrowsing = "reject";
Locked = true; Locked = true;
}; };
DefaultDownloadDirectory = "\${home}/Downloads"; DefaultDownloadDirectory = config.xdg.userDirs.download;
DisableAppUpdate = true; DisableAppUpdate = true;
DisableFirefoxAccounts = true; DisableFirefoxAccounts = true;
DisableFirefoxScreenshots = true; DisableFirefoxScreenshots = true;
@ -29,7 +29,6 @@
DisplayMenuBar = "default-off"; DisplayMenuBar = "default-off";
DontCheckDefaultBrowser = true; DontCheckDefaultBrowser = true;
EnableTrackingProtection = { EnableTrackingProtection = {
Value = true;
Locked = true; Locked = true;
Cryptomining = true; Cryptomining = true;
Fingerprinting = true; Fingerprinting = true;
@ -44,10 +43,10 @@
installation_mode = "force_installed"; installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
}; };
# Browserpass # Proton Pass
"browserpass@maximbaz.com" = { "78272b6fa58f4a1abaac99321d503a20@proton.me" = {
installation_mode = "force_installed"; installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/browserpass-ce/latest.xpi"; install_url = "https://addons.mozilla.org/firefox/downloads/latest/proton-pass/latest.xpi";
}; };
# SimpleLogin # SimpleLogin
"addon@simplelogin" = { "addon@simplelogin" = {
@ -109,10 +108,12 @@
ShowHomeButton = true; ShowHomeButton = true;
StartDownloadsInTempDirectory = true; StartDownloadsInTempDirectory = true;
}; };
profiles.default = { profiles.user = {
isDefault = true;
bookmarks = builtins.fromJSON (builtins.readFile ./bookmarks.json); bookmarks = builtins.fromJSON (builtins.readFile ./bookmarks.json);
settings = { settings = {
"app.shield.optoutstudies.enabled" = false; "app.shield.optoutstudies.enabled" = false;
"browser.startup.homepage" = lib.mkDefault "about:home";
"browser.tabs.inTitlebar" = 0; "browser.tabs.inTitlebar" = 0;
"browser.bookmarks.addedImportButton" = false; "browser.bookmarks.addedImportButton" = false;
"browser.bookmarks.showMobileBookmarks" = false; "browser.bookmarks.showMobileBookmarks" = false;
@ -132,6 +133,8 @@
"intl.locale.requested" = "en-gb,en"; "intl.locale.requested" = "en-gb,en";
"intl.regional_prefs.use_os_locales" = true; "intl.regional_prefs.use_os_locales" = true;
"media.eme.enabled" = true; "media.eme.enabled" = true;
"privacy.globalprivacycontrol.enabled" = true;
"privacy.donottrackheader.enabled" = true;
"privacy.webrtc.legacyGlobalIndicator" = false; "privacy.webrtc.legacyGlobalIndicator" = false;
"signon.management.page.breach-alerts.enabled" = false; "signon.management.page.breach-alerts.enabled" = false;
"signon.rememberSignons" = false; "signon.rememberSignons" = false;
@ -147,6 +150,10 @@
title = "Arch Wiki"; title = "Arch Wiki";
url = "https://wiki.archlinux.org"; url = "https://wiki.archlinux.org";
} }
{
title = "Hyprland Wiki";
url = "https://wiki.hyprland.org";
}
]; ];
}; };
search = rec { search = rec {
@ -212,5 +219,4 @@
}; };
}; };
}; };
};
} }

View file

@ -5,36 +5,47 @@
configFile = { configFile = {
"nyxt/config.lisp".text = "nyxt/config.lisp".text =
let let
inherit (config.lib.stylix.scheme) variant;
fonts = config.stylix.fonts; fonts = config.stylix.fonts;
scheme = config.lib.stylix.scheme; scheme = config.lib.stylix.scheme.withHashtag;
accent = scheme.base0E;
in in
'' ''
;; Import custom configuration ;; Import custom configuration
(nyxt::load-lisp "${./config.lisp}") (nyxt::load-lisp "${./config.lisp}")
;; Set theme variant from GTK_THEME if available
(setf (uiop/os:getenv "GTK_THEME") "Adwaita:${variant}")
;; Define custom theme ;; Define custom theme
(define-configuration browser (define-configuration browser
((theme (make-instance 'theme:theme ((theme (make-instance 'theme:theme
:dark-p t :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}"
:background-color "${scheme.withHashtag.base00}" :text-color "${scheme.base05}"
:on-background-color "${scheme.withHashtag.base05}" :contrast-text-color "${scheme.base01}"
:primary-color "${scheme.withHashtag.base02}" :background-color "${scheme.base00}"
:on-primary-color "${scheme.withHashtag.base05}" :primary-color "${scheme.base02}"
:secondary-color "${scheme.withHashtag.base03}" :secondary-color "${scheme.base03}"
:on-secondary-color "${scheme.withHashtag.base05}" :tertiary-color "${scheme.base04}"
:accent-color "${scheme.withHashtag.base0D}" :quaternary-color "${scheme.base04}"
:on-accent-color "${scheme.withHashtag.base01}" :accent-color "${scheme.base0E}"
:action-color "${scheme.withHashtag.cyan}" :action-color "${scheme.cyan}"
:on-action-color "${scheme.withHashtag.base01}" :success-color "${scheme.green}"
:success-color "${scheme.withHashtag.green}" :warning-color "${scheme.yellow}"
:on-success-color "${scheme.withHashtag.base01}" :highlight-color "${scheme.base01}"
:highlight-color "${scheme.withHashtag.magenta}" :codeblock-color "${scheme.base01}"
:on-highlight-color "${scheme.withHashtag.base01}" ;; :on-background-color "${scheme.base05}"
:warning-color "${scheme.withHashtag.yellow}" ;; :on-primary-color "${scheme.base05}"
:on-warning-color "${scheme.withHashtag.base01}" ;; :on-secondary-color "${scheme.base05}"
:codeblock-color "${scheme.withHashtag.base02}" ;; :on-tertiary-color "${scheme.base05}"
:on-codeblock-color "${scheme.withHashtag.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}"
))))
''; '';
}; };
dataFile."nyxt/bookmarks.lisp".text = dataFile."nyxt/bookmarks.lisp".text =

View file

@ -0,0 +1,44 @@
{
config,
lib,
pkgs,
...
}:
{
programs.qutebrowser = {
enable = true;
settings = {
changelog_after_upgrade = "major";
# confirm_quit = "downloads";
content = {
autoplay = false;
blocking.enabled = true;
cookies.accept = "no-unknown-3rdparty";
headers.do_not_track = true;
};
downloads.location.directory = config.xdg.userDirs.download;
new_instance_open_target = "tab";
qt.highdpi = true;
scrolling.smooth = true;
# spellcheck.languages = [ "en-GB" ];
tabs = {
last_close = "blank";
show = "multiple";
};
url.default_page = lib.mkDefault "about:blank";
window.hide_decoration = true;
};
searchEngines = {
w = "https://en.wikipedia.org/wiki/Special:Search?search={}&go=Go&ns0=1";
aw = "https://wiki.archlinux.org/?search={}";
nw = "https://wiki.nixos.org/index.php?search={}";
gh = "https://github.com/search?q={}";
fh = "https://flathub.org/apps/search?q={}";
py = "https://pypi.org/search/?q={}";
};
# quickmarks =
# let
# in
# { };
};
}

View file

@ -0,0 +1,73 @@
{ config, pkgs, ... }:
{
programs = {
vdirsyncer.enable = true;
khal = {
enable = true;
locale = {
timeformat = "%H:%M";
dateformat = "%Y-%m-%d";
longdateformat = "%Y-%m-%d %a";
datetimeformat = "%Y-%m-%d %H:%M";
longdatetimeformat = "%Y-%m-%d %H:%M";
};
};
};
services.vdirsyncer = {
inherit (config.programs.vdirsyncer) enable package;
frequency = "*:0/30"; # Every 30 minutes
};
accounts.calendar = {
basePath = "Calendar";
accounts = {
main =
let
url = "dav.xenia.me.uk";
in
{
primary = true;
primaryCollection = "personal";
local = {
type = "filesystem";
fileExt = ".ics";
};
remote =
let
userName = "pixelifytica";
in
{
inherit userName;
url = "https://${url}";
type = "caldav";
passwordCommand = [
"${pkgs.libsecret}/bin/secret-tool"
"lookup"
"url"
"${url}"
"user"
"${userName}"
];
};
vdirsyncer = {
inherit (config.programs.vdirsyncer) enable;
auth = "basic";
collections = [
"personal"
"work"
"other"
];
metadata = [ "displayname" ];
timeRange = {
start = "datetime.now() - timedelta(days=365)";
end = "datetime.now() + timedelta(days=365)";
};
};
khal = {
inherit (config.programs.khal) enable;
type = "discover";
addresses = with config.accounts.email.accounts.proton; [ address ] ++ aliases;
};
};
};
};
}

View file

@ -1,10 +0,0 @@
{ inputs, ... }:
{
imports = [
inputs.nix-index-database.hmModules.nix-index
./shell/default.nix
./services/password-store/default.nix
./scripts/default.nix
];
programs.home-manager.enable = true;
}

View file

@ -1,57 +0,0 @@
{ config, pkgs, ... }:
{
imports = [
./plasma/default.nix
./emacs/default.nix
./terminal/default.nix
./browser/default.nix
./zathura/default.nix
./services/email/default.nix
];
home.packages = with pkgs; [
webcord
signal-desktop
whatsapp-for-linux
x2goclient
];
services.syncthing.enable = true;
programs.mpv.enable = true;
gtk = {
enable = true;
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
iconTheme = {
package = pkgs.papirus-icon-theme;
name = "Papirus";
};
};
qt = {
enable = true;
style = {
name = "adwaita";
package = pkgs.adwaita-qt;
};
};
xdg = {
mime.enable = true;
mimeApps =
let
defaultApplications = import ./mimeapps/default.nix;
in
{
enable = true;
inherit defaultApplications;
associations.added = defaultApplications;
};
userDirs = {
enable = true;
createDirectories = true;
extraConfig = {
XDG_PROJECTS_DIR = "${config.home.homeDirectory}/Projects";
};
};
configFile = {
"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";
};
};
}

View file

@ -1,131 +1,41 @@
{ config, pkgs, ... }:
{ {
imports = [ ../shell/default.nix ]; config,
stylix.targets.emacs.enable = false; lib,
pkgs,
...
}:
{
imports = [
../shell/default.nix
../shell/git.nix
../gpg/default.nix
../texlive/default.nix
../programming/default.nix
];
services.emacs = { services.emacs = {
enable = true; enable = lib.mkDefault true;
package = config.programs.emacs.finalPackage; package = config.programs.emacs.finalPackage;
defaultEditor = true; defaultEditor = true;
client.enable = true; client.enable = true;
socketActivation.enable = true; socketActivation.enable = true;
startWithUserSession = false;
}; };
programs.emacs = { programs.emacs = {
# Clone emacs config from https://git.xenia.me.uk/pixelifytica/emacs.git
enable = true; enable = true;
package = pkgs.emacs29-pgtk; package = pkgs.emacs30.override {
extraConfig = withImageMagick = true;
let withPgtk = true;
fixed-font-family = "${config.stylix.fonts.monospace.name}";
variable-font-family = "${config.stylix.fonts.sansSerif.name}";
font-height = builtins.toString (
builtins.floor (builtins.mul config.stylix.fonts.sizes.applications 10)
);
custom-theme-name = "nix";
custom-theme = pkgs.writeTextFile {
name = "custom-emacs-theme";
destination = "/${custom-theme-name}-theme.el";
text = ''
(deftheme ${custom-theme-name}
"Use Nix customised fonts for main faces")
(custom-theme-set-variables
'${custom-theme-name}
'(menu-bar-mode nil))
(custom-theme-set-faces
'${custom-theme-name}
'(default ((t (:family "${fixed-font-family}" :height ${font-height}))))
'(fixed-pitch ((t (:family "${fixed-font-family}"))))
'(fixed-pitch-serif ((t (:family "${fixed-font-family}"))))
'(variable-pitch ((t (:family "${variable-font-family}")))))
(provide-theme '${custom-theme-name})
'';
}; };
custom-theme-hash = builtins.hashFile "sha256" "${custom-theme}/${custom-theme-name}-theme.el"; extraPackages = epkgs: import ./packages.nix { inherit epkgs; };
in
''
(add-to-list 'custom-theme-load-path "${custom-theme}")
(add-to-list 'custom-safe-themes "${custom-theme-hash}")
(load-theme '${custom-theme-name})
'';
extraPackages =
epkgs: with epkgs; [
treesit-grammars.with-all-grammars
mu4e
emacsql-sqlite
];
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
# Emacs requirements # External requirements
imagemagick gcc
languagetool languagetool
wordnet wordnet
# Plugin requirements
gcc
sqlite
pandoc pandoc
ghostscript ghostscript
mupdf-headless
poppler_utils poppler_utils
graphviz graphviz-nox
mp3info
# Customised LaTeX install
(texlive.combine {
inherit (texlive)
scheme-medium
dvisvgm
dvipng
wrapfig
amsmath
ulem
hyperref
capt-of
listings
;
})
# Development tools
## Code screenshots
silicon
## Python Environments
poetry
## Linters
shellcheck
yamllint
ruff
## Formatters
nixfmt-rfc-style
shfmt
stylua
nodePackages.prettier
nodePackages.prettier-plugin-toml
## Language servers
nixd
lua-language-server
## Interpreters
(python3.withPackages (
ps: with ps; [
tkinter
python-lsp-server
mypy
numpy
scipy
xarray
matplotlib
]
))
(luajit.withPackages (ps: [ (ps.callPackage ./luarocks/scilua.nix { }) ]))
]; ];
xdg.configFile = {
"ruff/pyproject.toml".source = ./ruff.toml;
"pypoetry/config.toml".source = ./pypoetry.toml;
};
} }

View file

@ -0,0 +1,84 @@
#+TITLE: Font Showcase
#+AUTHOR: Evie Litherland-Smith
This is a showcase of various font and UI features to act as a
standard candle.
* Font emphasis
Examples of:
- *Bold text*
- /Italic text/
- _Underscored text_
- =Literal text=
- ~Code~
- +Strike-through+
* Character showcase
#+begin_example
ABC.DEF.GHI.JKL.MNO.PQRS.TUV.WXYZ abc.def.ghi.jkl.mno.pqrs.tuv.wxyz
!iIlL17|¦ ¢coO08BbDQ $5SZ2zs 96µm float il1[]={1-2/3.4,5+6=7/8%90};
1234567890 ,._-+= >< «¯-¬_» ~–÷+× {*}[]()<>`+-=$/#_%^@\&|~?'" !,.;:
E3CGQ g9q¶ uvw ſßðþ ΓΔΛαδιλμξπτχ∂ ЖЗКУЯжзклмнруфчьыя <= != == => ->
#+end_example
** Legibility test
Can I tell the difference between: 1,i,I,l,L,|
How about: 0,O,o
* Tables
| Heading 1 | Heading 2 | Plot |
|-----------+-----------+--------------|
| 1 | 1 | |
| 2 | 4 | c |
| 3 | 9 | W |
| 4 | 16 | WV |
| 5 | 25 | WWH |
| 6 | 36 | WWWW: |
| 7 | 49 | WWWWWV |
| 8 | 64 | WWWWWWWl |
| 9 | 81 | WWWWWWWWWh |
| 10 | 100 | WWWWWWWWWWWW |
#+TBLFM: $2=$1**2::$3='(orgtbl-ascii-draw $2 1 100 12)
* Source blocks
#+begin_src python
def main(*args, **kwargs) -> None:
"""
Example docstring for function
"""
return
if __name__ == "__main__":
main()
#+end_src
* Example prose
#+begin_quote
AMONG the many valuable contributions of William Dwight Whitney to
linguistic science is one especially important and fundamental
principle. It may be stated in these words. In explaining the
prehistoric phenomena of language we must assume no other factors than
those which we are able to observe and estimate in the historical
period of language development. The factors that produced changes in
human speech five thousand or ten thousand years ago cannot have been
essentially different from those which are now operating to transform
living languages. On the basis of this principle we look to-day at a
much-discussed problem of Indo-European philology with views very
different from the views held by the founders of Comparative Philology
and their immediate successors. I refer to the problem, how the
Indo-European people came to assign gender to nouns, to distinguish
between masculine, feminine, and neuter. This question is of interest
to others besides philologists. What man of culture who has learned
languages such as the Greek, Latin, or French has not at times
wondered that objects which have no possible connection with the
natural gender of animals appear constantly in the language as male or
female? In German, for example, it is der fuss, but die hand; der
geist, but die seele; in Latin, hīc hortus, hīc animus, hīc amor, but
haec planta, haec anima, haec felicitas; in Greek, ὁ πλοῦτος, ὁ οἶκος,
but ἡ πενία, ἡ οἰκία.
This gender distinction pervades all the older Indo-European
languages, and must therefore be regarded as having its origin in the
time of the pro-ethnic Indo-European community. Not only is the
subject itself full of interest, but also the treatment it has
received from the philological research of our century. The various
efforts made to solve the problem may very aptly illustrate an
essential difference which exists between the theories of language
development held in the beginning and middle of this century and those
which prevail to-day, — a difference of method existing not in
comparative linguistics alone, but also in other fields of
philological and historical research that border on it.
#+end_quote

View file

@ -1,60 +1,49 @@
epkgs: with epkgs; [ { epkgs }:
# UI with epkgs;
base16-theme [
all-the-icons # EViL Mode
evil
# UI and Appearance
nerd-icons nerd-icons
nerd-icons-completion
nerd-icons-corfu
nerd-icons-dired nerd-icons-dired
nerd-icons-ibuffer nerd-icons-ibuffer
minions nerd-icons-corfu
ligature doom-modeline
which-key dashboard
# Email and Calendar
khalel
mu4e
# Other (TODO sort)
diff-hl diff-hl
# Completion
vertico
orderless
marginalia
cape
corfu
corfu-terminal
consult
consult-eglot
flyspell-correct
tempel
# IDE
treesit-auto
magit
forge
apheleia
envrc
rainbow-delimiters
flymake-shellcheck
flymake-yamllint
flymake-clippy
flymake-eslint
markdown-mode
pandoc-mode
python-docstring
nix-mode
lua-mode
# Org + LaTeX
org-roam org-roam
org-journal
org-noter org-noter
citar citar
vertico
marginalia
orderless
corfu
corfu-terminal
cape
consult
consult-eglot
tempel
tempel-collection
rainbow-delimiters
envrc
treesit-grammars.with-all-grammars
treesit-auto
apheleia
flymake-shellcheck
flymake-clippy
magit
forge
nix-mode
nix-ts-mode
python-docstring
python-pytest
engrave-faces
auctex auctex
htmlize markdown-mode
# Other
password-store
emms
bbdb
ement
elfeed
elfeed-org
elfeed-tube
scad-mode scad-mode
] ]

View file

@ -1,9 +0,0 @@
[virtualenvs]
create = true
in-project = true
[virtualenvs.options]
always-copy = true
no-pip = true
no-setuptools = true
system-site-packages = true

View file

@ -1,7 +1,6 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
home.packages = [ home.packages = [
(pkgs.writeShellScriptBin "mbsync-ensure-pass" (builtins.readFile ./mbsync-ensure-pass.sh))
(pkgs.writeShellScriptBin "davmail-setup" '' (pkgs.writeShellScriptBin "davmail-setup" ''
systemctl --user restart davmail # Ensure config file is present systemctl --user restart davmail # Ensure config file is present
systemctl --user stop davmail systemctl --user stop davmail
@ -152,7 +151,7 @@
}; };
services.mbsync = { services.mbsync = {
inherit (config.programs.mbsync) enable package; inherit (config.programs.mbsync) enable package;
frequency = "*:0/5"; # Every 5 minutes frequency = "*:0/30"; # Every 30 minutes
verbose = true; verbose = true;
preExec = null; preExec = null;
postExec = null; postExec = null;

24
system/home/fuzzel.nix Normal file
View file

@ -0,0 +1,24 @@
{ config, lib, ... }:
{
programs.fuzzel = {
enable = true;
settings = {
main = {
use-bold = true;
icon-theme = config.gtk.iconTheme.name;
icons-enabled = true;
fields = "filename,name,generic,exec";
fuzzy = true;
filter-desktop = true;
terminal = "${config.programs.alacritty.package}/bin/alacritty -e";
anchor = "center";
layer = "overlay";
};
border = {
width = 2;
radius = 10;
};
colors.border = lib.mkForce "${config.lib.stylix.scheme.base0E}ff";
};
};
}

View file

@ -0,0 +1,8 @@
{ lib, pkgs, ... }:
{
programs.gpg.enable = true;
services.gpg-agent = {
enable = true;
pinentryPackage = lib.mkDefault pkgs.pinentry-all;
};
}

410
system/home/hyprland.nix Normal file
View file

@ -0,0 +1,410 @@
{
config,
lib,
pkgs,
osConfig,
...
}:
{
imports = [
./udiskie.nix
./waybar.nix
./fuzzel.nix
./mako.nix
./avizo.nix
./wlogout.nix
];
home.packages = [
(pkgs.writeShellScriptBin "protonmail-setup-bridge" ''
pkill -9 -f protonmail-bridge
PASSWORD_STORE_DIR=/dev/null ${pkgs.protonmail-bridge}/bin/protonmail-bridge -c
${config.wayland.windowManager.hyprland.finalPackage}/bin/hyprctl dispatch exec "PASSWORD_STORE_DIR=/dev/null ${pkgs.protonmail-bridge}/bin/protonmail-bridge -n"
'')
];
stylix.targets.hyprlock.enable = false; # TODO maybe re-enable once I've checked what it does
services = {
kanshi.systemdTarget = "hyprland-session.target";
gpg-agent.pinentryPackage = pkgs.pinentry-gnome3;
hypridle = {
enable = true;
settings =
let
hyprctl = "${config.wayland.windowManager.hyprland.finalPackage}/bin/hyprctl";
hyprlock = "${config.programs.hyprlock.package}/bin/hyprlock";
in
{
general = {
after_sleep_cmd = "${hyprctl} dispatch dpms on";
ignore_dbus_inhibit = false;
lock_cmd = "${hyprlock}";
};
listener = [
{
timeout = 900;
on-timeout = "${hyprlock}";
}
{
timeout = 1200;
on-timeout = "${hyprctl} dispatch dpms off";
on-resume = "${hyprctl} dispatch dpms on";
}
];
};
};
};
programs = {
waybar.systemd.target = "hyprland-session.target";
hyprlock =
let
scheme = config.lib.stylix.scheme;
accent = scheme.base0E;
in
{
enable = true;
settings = {
general = {
disable_loading_bar = false;
hide_cursor = true;
grace = 3;
ignore_empty_input = true;
};
background = [
{
monitor = "";
path = "screenshot";
blur_passes = 3;
blur_size = 8;
}
];
shape = [
{
monitor = "";
size = "395, 185";
color = "0xff${scheme.base00}";
rounding = 10;
border_size = 2;
border_color = "0xff${accent}";
position = "-10, -10";
halign = "right";
valign = "top";
}
];
label =
let
font = config.stylix.fonts.monospace.name;
in
[
{
monitor = "";
text = "cmd[update:30000] echo \"$(date +\"%R\")\"";
color = "0xff${scheme.base05}";
font_size = 90;
font_family = font;
position = "-30, 0";
halign = "right";
valign = "top";
}
{
monitor = "";
text = "cmd[update:43200000] echo \"$(date +\"%F\")\"";
color = "0xff${scheme.base05}";
font_size = 25;
font_family = font;
position = "-40, -150";
halign = "right";
valign = "top";
}
];
image = [
{
monitor = "";
path = "${./pfp/personal.png}";
size = 100;
border_color = "0xff${accent}";
position = "0, 75";
halign = "center";
valign = "center";
}
];
input-field = [
{
monitor = "";
size = "300, 60";
outline_thickness = 2;
dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true;
outer_color = "0xff${accent}";
inner_color = "0xff${scheme.base00}";
font_color = "0xff${scheme.base05}";
fade_on_empty = false;
placeholder_text = "󰌾 Logged in as <span foreground=\"##${accent}\">$USER</span>";
check_color = "0xff${scheme.blue}";
fail_color = "0xff${scheme.red}";
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
hide_input = false;
position = "0, -50";
halign = "center";
valign = "center";
}
];
};
};
};
wayland.windowManager.hyprland = {
enable = true;
package = osConfig.programs.hyprland.package;
xwayland.enable = true;
systemd.enable = true;
settings = {
monitor = [ ",preferred,auto,auto" ];
exec-once = [
"systemctl --user import-environment WAYLAND_DISPLAY QT_QPA_PLATFORMTHEME"
"${config.wayland.windowManager.hyprland.finalPackage}/bin/hyprctl setcursor ${config.gtk.cursorTheme.name} ${toString config.gtk.cursorTheme.size}"
"${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"
"PASSWORD_STORE_DIR=/dev/null ${pkgs.protonmail-bridge}/bin/protonmail-bridge -n"
"${pkgs.dex}/bin/dex -a"
];
gestures.workspace_swipe = true;
general = {
layout = "master";
gaps_in = 3;
gaps_out = 5;
"col.active_border" = lib.mkForce "rgb(${config.lib.stylix.scheme.base0E})";
};
master = {
allow_small_split = true;
special_scale_factor = 0.95;
mfact = 0.5;
new_on_top = false;
orientation = "left";
inherit_fullscreen = false;
smart_resizing = false;
drop_at_cursor = true;
};
input = {
kb_layout = osConfig.services.xserver.xkb.layout;
follow_mouse = 1;
touchpad.natural_scroll = "yes";
};
decoration = {
rounding = 10;
blur = {
enabled = true;
size = 5;
passes = 3;
new_optimizations = true;
brightness = 1.0;
noise = 2.0e-2;
};
shadow = {
enabled = true;
range = 4;
render_power = 3;
ignore_window = true;
color = lib.mkForce "rgba(${config.lib.stylix.scheme.base00}0d)";
};
};
animations = {
enabled = true;
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
misc = {
disable_splash_rendering = true;
disable_autoreload = true;
mouse_move_enables_dpms = true;
key_press_enables_dpms = true;
};
xwayland.force_zero_scaling = true;
layerrule =
let
blur = x: "blur, ^(${x})$";
ignorealpha = x: "ignorealpha 0.3, ^(${x})$";
layers = [
"system-menu"
"gtk-layer-shell"
"notifications"
"launcher"
"logout_dialog"
"waybar"
"avizo"
];
in
(lib.lists.forEach layers blur) ++ (lib.lists.forEach layers ignorealpha);
windowrule = [
# Float + move system windows
# Password prompts
"float, org.kde.polkit-kde-authentication-agent-1|Pinentry|pinentry-qt|gcr-prompter"
"center, 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"
"stayfocused, org.kde.polkit-kde-authentication-agent-1|Pinentry|pinentry-qt|gcr-prompter"
# 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 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"
# Matplotlib plots
"float, Matplotlib"
# Workspace rules
"workspace 2, (nyxt|firefox)" # Browser
"workspace 3, (signal|whatsapp-for-linux|WebCord|teams-for-linux|twinkle)" # Messaging
"workspace 4, (libreoffice|soffice)(.*)" # Documents
"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
# PrismLauncher / Minecraft
"float, org.prismlauncher.PrismLauncher"
"center, org.prismlauncher.PrismLauncher"
"size 800 600, org.prismlauncher.PrismLauncher"
];
windowrulev2 = [
# Firefox PIP
"float, title:Picture-in-Picture|Library,class:firefox"
"size 750 400, title:Picture-in-Picture,class:firefox"
"size 800 800, title:Library,class:firefox"
"move onscreen 100%-775 100%-425, title:Picture-in-Picture,class:firefox"
"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"
# Inhibit idle when watching videos
"idleinhibit fullscreen, class:firefox|com.github.rafostar.Clapper"
# Inhibit idle when playing games
"idleinhibit always, class:(steam_app|Minecraft).*"
# LibreOffice
"suppressevent fullscreen maximize, class:(libreoffice|soffice)(.*)"
"float, title:Open,class:(libreoffice|soffice)(.*)"
# Steam
"workspace 7 silent, title:(notification)(.*),class:steam"
"float, title:Friends List,class:steam"
"size 400 600, title:Friends List,class:steam"
"center, title:Friends List,class:steam"
"float, title:Steam Settings,class:steam"
"size 800 600, title:Steam Settings,class:steam"
"center, title:Steam Settings,class:steam"
"float, title:(.*)(Controller Layout),class:steam"
"size 1200 800, title:(.*)(Controller Layout),class:steam"
"center, title:(.*)(Controller Layout),class:steam"
# NoMachine
"suppressevent fullscreen maximize, class:Nxplayer.bin"
];
bind =
let
workspace = w: [
"SUPER, ${toString w}, moveworkspacetomonitor, ${toString w} current"
"SUPER, ${toString w}, workspace, ${toString w}"
"SUPER SHIFT, ${toString w}, movetoworkspace, ${toString w}"
];
in
lib.lists.flatten (lib.lists.forEach (lib.lists.range 1 9) workspace)
++ [
# 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)\""
"SUPER, F1, exec, ${config.programs.hyprlock.package}/bin/hyprlock"
"SUPER, P, exec, ${config.programs.wlogout.package}/bin/wlogout"
"SUPER, Q, killactive,"
"SUPER, V, togglefloating"
# "SUPER SHIFT, V, setfloating" ## TODO setfloating exists
# in newer version of Hyprland than mine
"SUPER SHIFT, V, moveactive, exact 1% 4%"
"SUPER SHIFT, V, resizeactive, exact 800 600"
"SUPER SHIFT, V, pin"
"SUPER, M, fullscreen, 1" # Maximise window
"SUPER SHIFT, M, fullscreen, 0" # Actual fullscreen
"SUPER, Z, exec, ${config.services.mako.package}/bin/makoctl restore"
"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"
# Misc useful binds
",Print,exec,${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.swappy}/bin/swappy -f -"
# ",XF86Calculator,exec,pkill rofi || ${config.programs.rofi.finalPackage}/bin/rofi -show calc"
# Movement binds
"SUPER, H, movefocus, l"
"SUPER, L, movefocus, r"
"SUPER, K, movefocus, u"
"SUPER, J, movefocus, d"
"SUPER SHIFT, H, movewindow, l"
"SUPER SHIFT, L, movewindow, r"
"SUPER SHIFT, K, movewindow, u"
"SUPER SHIFT, J, movewindow, d"
# Special workspaces
"SUPER, comma, workspace, m-1"
"SUPER SHIFT, comma, movetoworkspace, r-1"
"SUPER, period, workspace, m+1"
"SUPER SHIFT, period, movetoworkspace, r+1"
"SUPER, N, workspace, empty"
"SUPER SHIFT, N, movetoworkspace, empty"
"SUPER, minus, togglespecialworkspace"
"SUPER SHIFT, minus, movetoworkspace, special"
"SUPER, bracketright, focusmonitor, +1"
"SUPER SHIFT, bracketright, movecurrentworkspacetomonitor, +1"
"SUPER, bracketleft, focusmonitor, -1"
"SUPER SHIFT, bracketleft, movecurrentworkspacetomonitor, -1"
"SUPER, O, focusurgentorlast"
];
bindl = [
# Sound
",XF86AudioMute,exec,${config.services.avizo.package}/bin/volumectl %"
",XF86AudioMicMute,exec,${config.services.avizo.package}/bin/volumectl -m %"
# Playback
",XF86AudioPlay,exec,${pkgs.playerctl}/bin/playerctl play-pause"
",XF86AudioStop,exec,${pkgs.playerctl}/bin/playerctl play-pause"
",XF86AudioPrev,exec,${pkgs.playerctl}/bin/playerctl previous"
",XF86AudioNext,exec,${pkgs.playerctl}/bin/playerctl next"
];
bindle = [
# Sound
",XF86AudioRaiseVolume,exec,${config.services.avizo.package}/bin/volumectl -u + 5"
",XF86AudioLowerVolume,exec,${config.services.avizo.package}/bin/volumectl -u - 5"
# Brightness
",XF86MonBrightnessUp,exec,${config.services.avizo.package}/bin/lightctl + 5"
",XF86MonBrightnessDown,exec,${config.services.avizo.package}/bin/lightctl - 5"
];
bindm = [
# Move/resize windows with mainMod + LMB/RMB and dragging
"SUPER, mouse:272, movewindow"
"SUPER, mouse:273, resizewindow"
];
};
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

View file

@ -1,13 +0,0 @@
lib: string:
with lib;
let
chars =
let
lc = strings.splitString "" string;
in
(lists.sublist 1 (lists.length lc - 2) lc);
in
(strings.concatStringsSep "" (
(lists.singleton (strings.toUpper (lists.elemAt chars 0)))
++ (lists.sublist 1 (lists.length chars) chars)
))

18
system/home/mako.nix Normal file
View file

@ -0,0 +1,18 @@
{ config, lib, ... }:
{
services.mako = {
enable = true;
anchor = "top-right";
width = 600;
height = 600;
layer = "top";
markup = true;
maxVisible = 10;
icons = true;
iconPath = with config.gtk.iconTheme; "${package}/share/icons/${name}";
borderRadius = 10;
borderSize = 2;
borderColor = lib.mkForce config.lib.stylix.scheme.withHashtag.base0E;
defaultTimeout = (builtins.mul 5 1000); # 5s timeout
};
}

View file

@ -2,10 +2,10 @@
{ {
home.packages = [ home.packages = [
(pkgs.writeShellScriptBin "ukaea-vpn-connect" '' (pkgs.writeShellScriptBin "ukaea-vpn-connect" ''
sudo ${pkgs.openfortivpn}/bin/openfortivpn -c ${./ukaea-vpn.conf} -p $(${pkgs.pass}/bin/pass show work/microsoftonline.com | head -n1) sudo ${pkgs.openfortivpn}/bin/openfortivpn --config=${./ukaea-vpn.conf}
'') '')
(pkgs.writeShellScriptBin "jetdata-vpn-connect" '' (pkgs.writeShellScriptBin "jetdata-vpn-connect" ''
sudo ${pkgs.openfortivpn}/bin/openfortivpn -c ${./jetdata-vpn.conf} -p $(${pkgs.pass}/bin/pass show work/microsoftonline.com | head -n1) sudo ${pkgs.openfortivpn}/bin/openfortivpn --config=${./jetdata-vpn.conf}
'') '')
]; ];
} }

View file

@ -0,0 +1,18 @@
{ config, pkgs, ... }:
{
imports = [
../gpg/default.nix
../shell/git.nix
];
programs = {
gpg.enable = true;
password-store = {
enable = true;
package = pkgs.pass-nodmenu.withExtensions (exts: with exts; [ pass-update ]);
settings = {
PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.password-store";
PASSWORD_STORE_ENABLE_EXTENSIONS = "true";
};
};
};
}

View file

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 178 KiB

View file

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View file

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

@ -1,376 +0,0 @@
{
config,
pkgs,
inputs,
...
}:
{
stylix.targets.kde.enable = false;
imports = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
home.packages = with pkgs; [
protonmail-bridge-gui
libreoffice-qt-fresh
rc2nix
wl-clipboard
];
services.gpg-agent.pinentryPackage = pkgs.pinentry-qt;
programs.plasma = {
enable = true;
overrideConfig = true;
workspace = {
# theme = "default";
# colorScheme = "Breeze";
iconTheme = config.gtk.iconTheme.name;
# windowDecorations = {
# library = "org.kde.breeze";
# theme = "Breeze";
# };
cursor = {
inherit (config.home.pointerCursor) size;
theme = config.home.pointerCursor.name;
};
wallpaper = config.stylix.image;
};
fonts =
let
general = {
family = config.stylix.fonts.sansSerif.name;
pointSize = 12;
};
small = {
inherit (general) family;
pointSize = general.pointSize - 2;
};
fixedWidth = {
family = config.stylix.fonts.monospace.name;
pointSize = 12;
};
in
{
inherit general small fixedWidth;
menu = general;
toolbar = general;
windowTitle = small;
};
hotkeys.commands = {
"launch-alacritty" = {
name = "Launch Alacritty terminal emulator";
key = "Ctrl+Alt+T";
command = "alacritty";
};
"launch-emacs" = {
name = "Launch Emacs Client Window";
key = "Meta+Alt+X";
command = "emacsclient -c";
};
};
panels = [
{
height = 24;
lengthMode = "fill";
location = "top";
alignment = "center";
hiding = "normalpanel";
floating = true;
widgets = [
"org.kde.plasma.appmenu"
"org.kde.plasma.panelspacer"
{
name = "org.kde.plasma.pager";
config.General = {
showWindowIcons = "true";
showOnlyCurrentScreen = "false";
wrapPage = "true";
};
}
"org.kde.plasma.panelspacer"
"org.kde.plasma.marginsseparator"
"org.kde.plasma.keyboardindicator"
"org.kde.plasma.cameraindicator"
{
systemTray = {
icons = {
spacing = "small";
scaleToFit = false;
};
};
}
{
digitalClock = {
date = {
enable = true;
format = "isoDate";
position = "besideTime";
};
time = {
format = "24h";
showSeconds = "onlyInTooltip";
};
calendar.showWeekNumbers = true;
};
}
{
name = "org.kde.plasma.userswitcher";
config.General = {
showFace = "true";
showName = "false";
showFullName = "true";
showTechnicalInfo = "true";
};
}
];
}
{
height = 48;
lengthMode = "fit";
location = "bottom";
alignment = "center";
hiding = "dodgewindows";
floating = true;
screen = "all";
widgets = [
{
name = "org.kde.plasma.kickoff";
config.General = {
icon = "nix-snowflake";
primaryActions = "0";
favoritesDisplay = "0";
applicationsDisplay = "1";
pin = "false";
showActionButtonCaptions = "true";
compactMode = "false";
};
}
"org.kde.plasma.marginsseparator"
{
name = "org.kde.plasma.icontasks";
config.General = {
maxStripes = "1";
showToolTips = "true";
launchers = [
"preferred://filemanager"
"preferred://browser"
"applications:emacs.desktop"
"applications:writer.desktop"
"applications:calc.desktop"
"applications:impress.desktop"
"applications:org.kde.elisa.desktop"
"applications:Alacritty.desktop"
"applications:systemsettings.desktop"
];
};
}
];
}
];
shortcuts = {
ksmserver = {
"Lock Session" = [
"Screensaver"
"Meta+Alt+L"
];
};
kwin = {
"Walk Through Windows of Current Application" = "Alt+`";
"Walk Through Windows of Current Application (Reverse)" = "Alt+¬";
"ToggleMouseClick" = "Meta+*";
"Expose" = "Meta+,";
"Switch Window Down" = "Meta+J";
"Switch Window Left" = "Meta+H";
"Switch Window Right" = "Meta+L";
"Switch Window Up" = "Meta+K";
"Invert" = "Meta+Ctrl+I";
"InvertWindow" = "Meta+Ctrl+U";
"Invert Screen Colors" = [ ];
};
"services/org.kde.konsole.desktop"."_launch" = [ ];
"services/org.kde.krunner.desktop"."_launch" = [
"Meta+Space"
"Search"
"Alt+F2"
];
};
kwin = {
virtualDesktops = {
rows = 1;
number = 4;
};
effects = {
translucency.enable = true;
blur.enable = true;
cube.enable = true;
dimAdminMode.enable = true;
};
};
powerdevil =
let
powerButtonAction = "turnOffScreen";
whenSleepingEnter = "standbyThenHibernate";
whenLaptopLidClosed = "sleep";
in
{
AC = {
inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed;
autoSuspend = {
action = "sleep";
idleTimeout = 7200;
};
dimDisplay = {
enable = true;
# idleTimeOut = 300;
};
turnOffDisplay = {
idleTimeout = 1800;
idleTimeoutWhenLocked = 120;
};
};
battery = {
inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed;
autoSuspend = {
action = "sleep";
idleTimeout = 900;
};
dimDisplay = {
enable = true;
# idleTimeOut = 120;
};
turnOffDisplay = {
idleTimeout = 300;
idleTimeoutWhenLocked = 60;
};
};
lowBattery = {
inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed;
autoSuspend = {
action = "hibernate";
idleTimeout = 300;
};
dimDisplay = {
enable = true;
# idleTimeOut = 60;
};
turnOffDisplay = {
idleTimeout = 120;
idleTimeoutWhenLocked = "immediately";
};
};
};
configFile = {
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
kwalletrc."org.freedesktop.secrets" = {
Enabled = false;
apiEnabled = false;
};
kcminputrc.Keyboard.NumLock = 1;
plasmanotifyrc = {
Notifications = {
NormalAlwaysOnTop = true;
};
};
krunnerrc = {
General = {
ActivateWhenTypingOnDesktop = false;
FreeFloating = true;
};
};
kscreenlockerrc = {
Daemon.Timeout = 15;
Greeter.WallpaperPlugin = "org.kde.potd";
};
klipperrc = {
General = {
SyncClipboards = true;
MaxClipItems = 5;
IgnoreImages = false;
KeepClipboardContents = false;
};
};
kdeglobals = {
General =
let
AccentColor =
let
r = config.lib.stylix.scheme."base0D-rgb-r";
g = config.lib.stylix.scheme."base0D-rgb-g";
b = config.lib.stylix.scheme."base0D-rgb-b";
in
"${r}, ${g}, ${b}";
in
{
inherit AccentColor;
LastUsedCustomAccentColor = AccentColor;
TerminalApplication = "alacritty";
TerminalService = "Alacritty.desktop";
};
WM = {
# TODO convert to base16 colours at some point
activeBackground = "227,229,231";
activeBlend = "227,229,231";
activeForeground = "35,38,41";
inactiveBackground = "239,240,241";
inactiveBlend = "239,240,241";
inactiveForeground = "112,125,138";
};
};
breezerc = {
Common = {
OutlineClassButton = true;
OutlineCloseButtone = true;
ShadowSize = "ShadowVeryLarge";
ShadowStrength = "128";
};
Style = {
MenuOpacity = "100";
};
};
dolphinrc = {
ContentDisplay = {
UsePermissionsFormat = "CombinedFormat";
};
General = {
BrowseThroughArchives = true;
OpenNewTabAfterLastTab = true;
RememberOpenedTabs = false;
};
};
kwinrc = {
Plugins = {
frozenappEnabled = false;
mouseclickEnabled = true;
shakecursorEnabled = false;
invertEnabled = true;
};
Windows = {
FocusPolicy = "FocusFollowsMouse";
RollOverDesktops = true;
};
NightColor = {
Active = true;
Mode = "Location";
LatitudeFixed = "51.7";
LongitudeFixed = "-1.2";
};
"Effect-translucency" = {
Inactive = 100;
MoveResize = 100;
Dialogs = 100;
ComboboxPopups = 100;
Menus = 100;
};
"org.kde.kdecoration2" = {
BorderSize = "None";
BorderSizeAuto = "false";
};
};
};
};
xdg.configFile."autostart/proton-bridge-gui.desktop".source = "${pkgs.protonmail-bridge-gui}/share/applications/proton-bridge-gui.desktop";
}

View file

@ -1,15 +0,0 @@
# sudo pacman -S git frameworkintegration gcc-libs glibc kcmutils kcolorscheme kconfig kcoreaddons kdecoration kguiaddons ki18n kiconthemes kirigami kwidgetsaddons kwindowsystem qt6-base qt6-declarative qt6-svg xdg-utils extra-cmake-modules kcmutils5 frameworkintegration5 kconfigwidgets5 kiconthemes5 kirigami2 kwindowsystem5
{ mkDerivation, fetchFromGithub }:
let
pname = "klassy";
version = "6.1.breeze6.0.3";
in
mkDerivation {
inherit pname version;
src = fetchFromGithub {
owner = "paulmcauley";
repo = pname;
rev = version;
hash = "";
};
}

View file

@ -1,42 +0,0 @@
{ config, pkgs, ... }:
{
home.packages = [ pkgs.yakuake ];
programs.konsole = {
enable = true;
defaultProfile = "One-Light";
customColorSchemes.onelight = ./onelight.colorscheme;
profiles.onelight = {
name = "One-Light";
colorScheme = "onelight";
command = "${config.programs.zsh.package}/bin/zsh";
font = {
inherit (config.stylix.fonts.monospace) name;
size = config.stylix.fonts.sizes.terminal;
};
extraConfig = {
"Interaction Options" = {
TextEditorCmd = 6;
TextEditorCmdCustom = "emacsclient -c +LINE:COLUMN PATH";
UnderlineFilesEnabled = true;
OpenLinksByDirectClickEnabled = true;
};
"Terminal Features" = {
BlinkingCursorEnabled = true;
VerticalLine = false;
};
};
};
extraConfig = {
MainWindow = {
MenuBar = "Disabled";
};
TabBar = {
ExpandTabWidth = true;
NewTabButton = true;
};
ThumbnailsSettings = {
ThumbnailAlt = true;
};
};
};
}

View file

@ -1,20 +0,0 @@
{ pkgs, ... }:
{
home.packages = [
(pkgs.libsForQt5.krohnkite.overrideAttrs (
final: prev:
let
version = "0.9.7";
in
{
inherit version;
src = pkgs.fetchFromGitHub {
owner = "anametologin";
repo = "krohnkite";
rev = version;
hash = "sha256-8A3zW5tK8jK9fSxYx28b8uXGsvxEoUYybU0GaMD2LNw=";
};
}
))
];
}

View file

@ -1,100 +0,0 @@
[Background]
Color=250,250,250
[BackgroundFaint]
Color=250,250,250
[BackgroundIntense]
Color=250,250,250
[Color0]
Color=250,250,250
[Color0Faint]
Color=160,161,167
[Color0Intense]
Color=160,161,167
[Color1]
Color=202,18,67
[Color1Faint]
Color=202,18,67
[Color1Intense]
Color=202,18,67
[Color2]
Color=80,161,79
[Color2Faint]
Color=80,161,79
[Color2Intense]
Color=80,161,79
[Color3]
Color=215,95,0
[Color3Faint]
Color=215,95,0
[Color3Intense]
Color=215,95,0
[Color4]
Color=64,120,242
[Color4Faint]
Color=64,120,242
[Color4Intense]
Color=64,120,242
[Color5]
Color=166,38,164
[Color5Faint]
Color=166,38,164
[Color5Intense]
Color=166,38,164
[Color6]
Color=1,132,188
[Color6Faint]
Color=1,132,188
[Color6Intense]
Color=1,132,188
[Color7]
Color=56,58,66
[Color7Faint]
Color=9,10,11
[Color7Intense]
Color=9,10,11
[Foreground]
Color=56,58,66
[ForegroundFaint]
Color=56,58,66
[ForegroundIntense]
Color=56,58,66
[General]
Anchor=0.5,0.5
Blur=true
ColorRandomization=false
Description=One Light
FillStyle=Tile
Opacity=1.0
Wallpaper=
WallpaperFlipType=NoFlip
WallpaperOpacity=1

View file

@ -0,0 +1,43 @@
{ pkgs, ... }:
{
home.packages =
let
pythonEnv = (
pkgs.python312.withPackages (
ps: with ps; [
flake8
isort
numpy
scipy
xarray
netcdf4
matplotlib
]
)
);
luaEnv = (pkgs.luajit.withPackages (ps: [ (ps.callPackage ./luarocks/scilua.nix { }) ]));
in
with pkgs;
[
## Language Environments
pythonEnv
luaEnv
## Linters
shellcheck
ruff
## Formatters
nixfmt-rfc-style
shfmt
stylua
nodePackages.prettier
## Language servers
nixd
pyright
lua-language-server
rust-analyzer
];
xdg.configFile."ruff/pyproject.toml".source = ./ruff.toml;
}

View file

@ -0,0 +1,32 @@
{
pkgs ? import <nixpkgs> { },
python3 ? pkgs.python3,
extraPackages ? with pkgs; [ uv ],
}:
let
inherit (pkgs) lib;
ldlibs = lib.makeLibraryPath (
with pkgs;
[
stdenv.cc.cc
glibc
zlib
zstd
]
);
pythonWrapped = pkgs.symlinkJoin {
name = "python";
paths = [ python3 ];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
for file in $out/bin/*; do wrapProgram "$file" --prefix LD_LIBRARY_PATH : "${ldlibs}"; done
'';
};
in
pkgs.mkShellNoCC {
packages = [ pythonWrapped ] ++ extraPackages;
shellHook = ''
[ ! -d .venv ] && ${pythonWrapped}/bin/python3 -m venv .venv
[ -f .venv/bin/activate ] && source .venv/bin/activate
'';
}

View file

@ -1,10 +1,12 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
home.packages = [ home.packages = [
(pkgs.writeShellScriptBin "esync" (builtins.readFile ./shell/esync.sh)) (pkgs.writeShellScriptBin "sync-git" (builtins.readFile ./shell/sync-git.sh))
(pkgs.writeShellScriptBin "gsync" (builtins.readFile ./shell/gsync.sh)) (pkgs.writeShellScriptBin "ensure-pass" (builtins.readFile ./shell/ensure-pass.sh))
(pkgs.writeShellScriptBin "clean-config" (builtins.readFile ./shell/clean-config.sh)) (pkgs.writeShellScriptBin "clean-config" (builtins.readFile ./shell/clean-config.sh))
(pkgs.writeShellScriptBin "rsync-local-config" (builtins.readFile ./shell/rsync-local-config.sh)) (pkgs.writeShellScriptBin "rsync-local-config" (builtins.readFile ./shell/rsync-local-config.sh))
(pkgs.writeShellScriptBin "xdg-query-program" (builtins.readFile ./shell/xdg-query-program.sh)) (pkgs.writeShellScriptBin "xdg-query-program" (builtins.readFile ./shell/xdg-query-program.sh))
(pkgs.writeShellScriptBin "animate-wallpaper" (builtins.readFile ./shell/animate-wallpaper.sh))
(pkgs.writeShellScriptBin "mount-onedrive" (builtins.readFile ./shell/mount-onedrive.sh))
]; ];
} }

View file

@ -1,38 +0,0 @@
#!/usr/bin/env nix-shell
--[[
#!nix-shell -i lua -p git git-sync
]]
local config_home
if os.getenv("XDG_CONFIG_HOME") then
config_home = os.getenv("XDG_CONFIG_HOME")
else
config_home = "~/.config/"
end
local sync_mapping = {
["~/.password-store"] = "https://git.xenia.me.uk/pixelifytica/pass.git",
["~/.elfeed"] = "https://git.xenia.me.uk/pixelifytica/elfeed.git",
["~/Documents/Org"] = "https://git.xenia.me.uk/pixelifytica/org.git",
["~/Documents/References"] = "https://git.xenia.me.uk/pixelifytica/references.git",
}
local pull_mapping = {
["/etc/nixos"] = "https://git.xenia.me.uk/pixelifytica/nixos.git",
[config_home .. "/emacs"] = "https://git.xenia.me.uk/pixelifytica/emacs.git",
}
local function git_sync(directory, url)
print("--- sync: " .. directory .. " ---")
end
local function git_pull(directory, url, ff_only)
print("--- pull: " .. directory .. " ---")
end
for directory, url in pairs(sync_mapping) do
git_sync(directory, url)
end
for directory, url in pairs(pull_mapping) do
git_pull(directory, url, true)
end

View file

@ -1,68 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i python3 -p git git-sync
import os
import queue
import subprocess
from pathlib import Path
from typing import Dict
HOME = Path("~").expanduser().resolve()
SYNC_MAPPING: Dict[Path, str] = {
Path(
"~/.password-store"
).expanduser(): "https://git.xenia.me.uk/pixelifytica/pass.git",
Path("~/.elfeed").expanduser(): "https://git.xenia.me.uk/pixelifytica/elfeed.git",
Path(
"~/Documents/Org"
).expanduser(): "https://git.xenia.me.uk/pixelifytica/org.git",
Path(
"~/Documents/References"
).expanduser(): "https://git.xenia.me.uk/pixelifytica/references.git",
}
PULL_MAPPINGS: Dict[Path, str] = {
Path("/etc/nixos"): "https://git.xenia.me.uk/pixelifytica/nixos.git",
Path(os.getenv("XDG_CONFIG_HOME", "~/.config")).expanduser()
/ "emacs": "https://git.xenia.me.uk/pixelifytica/emacs.git",
}
def git_set_url(directory: Path, url: str) -> None:
"""Set url for directory"""
comp = subprocess.run(f"git remote set-url origin {url}".split(), cwd=directory)
if comp.returncode != 0:
raise UserWarning(f"{comp.returncode} from {' '.join(comp.args)}")
subprocess.run("git remote -v".split(), cwd=directory)
def git_sync(directory: Path, url: str) -> subprocess.CompletedProcess:
"""Sync status of repository"""
print(f"--- sync: ${directory} ---")
if not directory.exists():
return subprocess.run("exit 1".split()) # TODO
git_set_url(directory, url)
return subprocess.run("git-sync -ns".split(), cwd=directory)
def git_pull(
directory: Path, url: str, ff_only: bool = True
) -> subprocess.CompletedProcess:
"""Pull updates for directory from url"""
print(f"--- pull: {directory} ---")
if not directory.exists():
return subprocess.run("exit 1".split()) # TODO
git_set_url(directory, url)
return subprocess.run("git pull --ff-only".split(), cwd=directory)
def main(*args, **kwargs) -> None:
for directory, url in SYNC_MAPPING.items():
print(git_sync(directory, url))
for directory, url in PULL_MAPPINGS.items():
print(git_pull(directory, url))
if __name__ == "__main__":
main()

View file

@ -0,0 +1,10 @@
WALLPAPER_FILE="$HOME/.wallpaper.gif"
if [ ! -f "$WALLPAPER_FILE" ]; then
exit 1
fi
systemctl --user start swww-daemon.service &&
sleep 5 &&
swww img "$WALLPAPER_FILE" &&
systemctl --user stop hyprpaper.service

View file

@ -1,2 +1,2 @@
shopt -s extglob shopt -s extglob
rm -rf ~/.config/!(emacs|kdeconnect|protonmail|Signal|teams-for-linux|WebCord|whatsapp-for-linux) rm -rf ~/.config/!(dconf|protonmail|Signal|whatsapp-for-linux)

View file

@ -0,0 +1,26 @@
# Email
EMAIL="e.litherlandsmith@proton.me"
secret-tool lookup email "$EMAIL" >/dev/null || (
echo "Insert pass from protonmail-bridge"
secret-tool store --label="Proton Mail mbsync" email "$EMAIL"
)
EMAIL="e.litherlandsmith@icloud.com"
secret-tool lookup clear "$EMAIL"
pass show identity/apple.com/mbsync | head -n1 | secret-tool store --label="iCloud mbsync" email "$EMAIL"
EMAIL="evie.litherland-smith@ukaea.uk"
secret-tool clear email "$EMAIL"
pass show work/microsoftonline.com | head -n1 | secret-tool store --label="Outlook mbsync" email "$EMAIL"
# Calendar
URL="dav.xenia.me.uk"
USER="pixelifytica"
secret-tool clear url "$URL" user "$USER"
pass show "server/xenia.me.uk/$URL" | head -n1 | secret-tool store --label="Personal calendar vdirsyncer" url "$URL" user "$USER"
# GitHub API token
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"

View file

@ -1,14 +0,0 @@
# Clone ~/.config/emacs/ if it doesn't exist
EMACS_DIR="${XDG_CONFIG_DIR:=$HOME/.config}/emacs/"
if [ ! -d "$EMACS_DIR" ]; then
git clone "https://git.xenia.me.uk/pixelifytica/emacs.git" "$EMACS_DIR"
fi
(
cd "$EMACS_DIR" || exit 1
# Pull changes by fast-forwarding only
git pull --ff --ff-only
# Update submodules for local packages
git submodule update --init --recursive
# Install and update extensions
make install
)

View file

@ -1,31 +0,0 @@
# Sync common directories, setting url to ensure it's up-to-date first
SYNC_DIRS=(
"$HOME/.password-store/"
"$HOME/Documents/org/"
"$HOME/Documents/library/"
)
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"
)
for i in "${!SYNC_DIRS[@]}"; do
DIRECTORY="${SYNC_DIRS[$i]}"
URL="${SYNC_URLS[$i]}"
echo "--- sync: $DIRECTORY ---"
if [ ! -d "$DIRECTORY" ]; then
git clone "$URL" "$DIRECTORY"
fi
(
cd "$DIRECTORY" || exit
git remote set-url origin "$URL"
if [ "$(git branch --show-current)" = "main" ]; then
git branch --set-upstream-to=origin/main main
fi
git pull --ff --ff-only
git submodule update --remote --recursive
git-sync -ns
git status --porcelain
)
done

View file

@ -1,4 +0,0 @@
battery_level=$(acpi -b | grep -P -o '[0-9]+(?=%)')
if [ "$battery_level" -le 20 ]; then
notify-send -u critical "Battery low" "Battery level is ${battery_level}%!"
fi

View file

@ -0,0 +1,3 @@
ONEDRIVE="$HOME/OneDrive"
[ -d "$ONEDRIVE" ] || mkdir -p "$ONEDRIVE"
[ -z "$(ls -A "$ONEDRIVE")" ] && rclone --vfs-cache-mode writes mount --daemon OneDrive: "$ONEDRIVE"

12
system/home/scripts/shell/rsync-local-config.sh Executable file → Normal file
View file

@ -1,6 +1,6 @@
HOSTS=("$@") HOSTS=("$@")
# Config files # Config files
for TARGET in ".inputrc" ".config/bat/" ".config/zellij" ".config/starship.toml"; do for TARGET in ".inputrc" ".config/starship.toml"; do
SOURCE="$HOME/$TARGET" SOURCE="$HOME/$TARGET"
echo "--- $SOURCE ---" echo "--- $SOURCE ---"
TMP_TARGET=/tmp/rsync-local-config TMP_TARGET=/tmp/rsync-local-config
@ -21,13 +21,3 @@ for TARGET in ".inputrc" ".config/bat/" ".config/zellij" ".config/starship.toml"
rm -rf $TMP_SOURCE rm -rf $TMP_SOURCE
fi fi
done done
# Fonts
IOSEVKA_FLAKE_URL="git+https://git.xenia.me.uk/pixelifytica/iosevka.git?ref=main"
IOSEVKA_CUSTOM_NERDFONT=$(nix path-info "$IOSEVKA_FLAKE_URL#packages.x86_64-linux.iosevka-custom-nerdfont")
IOSEVKA_CUSTOM_AILE=$(nix path-info "$IOSEVKA_FLAKE_URL#packages.x86_64-linux.iosevka-custom-aile")
echo "--- Fonts ---"
for HOST in "${HOSTS[@]}"; do
rsync -avzL --delete --exclude=".git*" --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r "$IOSEVKA_CUSTOM_NERDFONT/share/fonts/truetype/" "$HOST:.fonts/IosevkaCustomNerdFont"
rsync -avzL --delete --exclude=".git*" --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r "$IOSEVKA_CUSTOM_AILE/share/fonts/truetype/" "$HOST:.fonts/IosevkaCustomAile"
done

View file

@ -0,0 +1,47 @@
# 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
DIRECTORY="${SYNC_DIRS[$i]}"
URL="${SYNC_URLS[$i]}"
echo "--- sync: $DIRECTORY ---"
if [ ! -d "$DIRECTORY" ]; then
git clone "$URL" "$DIRECTORY"
fi
(
cd "$DIRECTORY" || exit
git remote set-url origin "$URL"
if [ "$(git branch --show-current)" = "main" ]; then
git branch --set-upstream-to=origin/main main
fi
git pull --ff --ff-only
git submodule update --remote --recursive
git-sync -ns
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"

4
system/home/scripts/shell/xdg-query-program.sh Executable file → Normal file
View file

@ -1,3 +1,3 @@
FILETYPE=$(xdg-mime query filetype $@) FILETYPE=$(xdg-mime query filetype "$@")
DEFAULT=$(xdg-mime query default $FILETYPE) DEFAULT=$(xdg-mime query default "$FILETYPE")
echo "$FILETYPE -> $DEFAULT" echo "$FILETYPE -> $DEFAULT"

View file

@ -1,15 +0,0 @@
EMAIL_ADDRESSES=(
e.litherlandsmith@proton.me
e.litherlandsmith@icloud.com
evie.litherland-smith@ukaea.uk
)
LABELS=("Proton" "iCloud" "Outlook")
for i in "${!EMAIL_ADDRESSES[@]}"; do
ADDRESS="${EMAIL_ADDRESSES[$i]}"
LABEL="${LABELS[$i]}"
secret-tool lookup email "$ADDRESS" >/dev/null || (
echo "Setup $LABEL"
secret-tool store --label="$LABEL mail mbsync" email "$ADDRESS"
)
done

View file

@ -1,41 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
xdg.configFile."pass-git-helper/git-pass-mapping.ini".source = ./git-pass-mapping.ini;
programs = {
gpg.enable = true;
password-store = {
enable = true;
package = pkgs.pass-nodmenu.withExtensions (
exts: with exts; [
pass-update
pass-import
]
); # pass-audit
settings = {
PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.password-store";
PASSWORD_STORE_ENABLE_EXTENSIONS = "true";
};
};
};
services = {
gpg-agent = rec {
enable = true;
maxCacheTtl = 86400;
defaultCacheTtl = maxCacheTtl;
defaultCacheTtlSsh = maxCacheTtl;
pinentryPackage = lib.mkDefault pkgs.pinentry-all;
extraConfig = ''
no-allow-external-cache
'';
};
git-sync.repositories.password-store = {
path = "${config.home.homeDirectory}/.password-store";
uri = "git+https://git.xenia.me.uk/xenia/pass.git";
};
};
}

View file

@ -1,6 +0,0 @@
[DEFAULT]
username_extractor=regex_search
regex_username=^login: (.*)$
[*]
target=git/${host}

View file

@ -1,18 +0,0 @@
{ config, ... }:
{
programs.cava = {
enable = true;
settings = {
color = with config.lib.stylix.colors.withHashtag; {
gradient = 1;
gradient_count = 6;
gradient_color_1 = "'${red}'";
gradient_color_2 = "'${yellow}'";
gradient_color_3 = "'${green}'";
gradient_color_4 = "'${cyan}'";
gradient_color_5 = "'${blue}'";
gradient_color_6 = "'${magenta}'";
};
};
};
}

View file

@ -9,100 +9,18 @@
./git.nix ./git.nix
./ssh.nix ./ssh.nix
./starship.nix ./starship.nix
./extras.nix
]; ];
home = { home.shellAliases = {
packages = with pkgs; [ sync-all = "sync-git; vdirsyncer sync; mbsync -a";
rclone sync-and-shutdown = "sync-all && shutdown now";
git-sync
du-dust
];
shellAliases = {
update = "sudo nixos-rebuild switch";
protonup = "sudo wg-quick up protonvpn && sudo wg"; protonup = "sudo wg-quick up protonvpn && sudo wg";
protondown = "sudo wg-quick down protonvpn"; protondown = "sudo wg-quick down protonvpn";
}; };
};
programs = { programs = {
# Shells
bash.enable = true; bash.enable = true;
carapace.enable = true; nushell.enable = true;
fastfetch.enable = true;
fd.enable = true;
jq.enable = true;
nix-index.enable = true;
ripgrep.enable = true;
bat = {
enable = true;
config.style = "plain,numbers,changes";
};
bottom = {
enable = true;
settings = {
flags = {
group_processes = true;
temperature_type = "celsius";
battery = true;
enable_gpu = true;
enable_cache_memory = true;
};
colors =
let
rainbow = with config.lib.stylix.scheme.withHashtag; [
red
yellow
green
cyan
blue
magenta
];
in
{
cpu_core_colors = rainbow;
gpu_core_colors = rainbow;
};
};
};
direnv = {
enable = true;
nix-direnv.enable = true;
};
eza = {
enable = true;
git = true;
icons = true;
extraOptions = [ "--octal-permissions" ];
};
fzf = {
enable = true;
defaultCommand = "${pkgs.fd}/bin/fd --type f";
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
fileWidgetCommand = "${pkgs.fd}/bin/fd --type f";
};
readline = {
enable = true;
variables = {
bell-style = "visible";
blink-matching-paren = "On";
colored-completion-prefix = "On";
colored-stats = "On";
completion-ignore-case = "On";
completion-map-case = "On";
editing-mode = "emacs";
expand-tilde = "On";
horizontal-scroll-mode = "On";
mark-directories = "On";
mark-symlinked-directories = "On";
visible-stats = "On";
};
};
zellij = {
enable = true;
settings = {
default_mode = "locked";
mouse_mode = true;
copy_command = lib.mkIf config.wayland.windowManager.sway.enable "wl-copy";
copy_on_select = true;
};
};
zsh = { zsh = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
@ -134,5 +52,81 @@
source ${./transient.zsh} source ${./transient.zsh}
''; '';
}; };
# CLI programs and utilities
btop.enable = true;
carapace.enable = true;
fd.enable = true;
jq.enable = true;
ripgrep.enable = true;
bat = {
enable = true;
config.style = "plain,numbers,changes";
};
cava = {
enable = true;
settings = {
color = with config.lib.stylix.colors.withHashtag; {
gradient = 1;
gradient_count = 6;
gradient_color_1 = "'${red}'";
gradient_color_2 = "'${yellow}'";
gradient_color_3 = "'${green}'";
gradient_color_4 = "'${cyan}'";
gradient_color_5 = "'${blue}'";
gradient_color_6 = "'${magenta}'";
};
};
};
direnv = {
enable = true;
nix-direnv.enable = true;
};
eza = {
enable = true;
git = true;
icons = "auto";
extraOptions = [
"--header"
"--time-style=iso"
];
};
fzf = {
enable = true;
defaultCommand = "${pkgs.fd}/bin/fd --type f";
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
fileWidgetCommand = "${pkgs.fd}/bin/fd --type f";
colors = {
bg = lib.mkForce "-1";
"bg+" = lib.mkForce "-1";
};
};
hyfetch = {
enable = true;
settings = rec {
preset = if light_dark == "dark" then "transgender" else "rainbow";
mode = "rgb";
light_dark = config.lib.stylix.scheme.variant;
lightness = 0.4;
color_align = {
mode = "horizontal";
};
};
};
readline = {
enable = true;
variables = {
bell-style = "visible";
blink-matching-paren = "On";
colored-completion-prefix = "On";
colored-stats = "On";
completion-ignore-case = "On";
completion-map-case = "On";
editing-mode = "emacs";
expand-tilde = "On";
mark-directories = "On";
mark-symlinked-directories = "On";
visible-stats = "On";
};
};
}; };
} }

View file

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

View file

@ -5,7 +5,7 @@
... ...
}: }:
{ {
services.git-sync.enable = false; # Can't find pass for some reason... home.packages = [ pkgs.git-sync ];
programs.git = programs.git =
let let
package = pkgs.git.override { package = pkgs.git.override {
@ -32,17 +32,8 @@
"*.gpg filter=gpg diff=gpg" "*.gpg filter=gpg diff=gpg"
"*.asc filter=gpg diff=gpg" "*.asc filter=gpg diff=gpg"
]; ];
extraConfig = extraConfig = {
let github.user = "pixelifytica";
user = "pixelifytica";
in
{
github = {
inherit user;
};
gitea = {
inherit user;
};
pull.rebase = false; pull.rebase = false;
init.defaultBranch = "main"; init.defaultBranch = "main";
merge.conflictstyle = "diff3"; merge.conflictstyle = "diff3";

View file

@ -1,6 +1,8 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
rclone
sshfs
(writeShellScriptBin "ssh-keygen-defaults" ''ssh-keygen -t ed25519 -C "$(whoami)@$(hostname)"'') (writeShellScriptBin "ssh-keygen-defaults" ''ssh-keygen -t ed25519 -C "$(whoami)@$(hostname)"'')
]; ];
programs.ssh = { programs.ssh = {
@ -9,7 +11,7 @@
forwardAgent = true; forwardAgent = true;
compression = true; compression = true;
serverAliveInterval = 15; serverAliveInterval = 15;
serverAliveCountMax = 3; serverAliveCountMax = 5;
controlMaster = "auto"; controlMaster = "auto";
controlPersist = "10s"; controlPersist = "10s";
extraConfig = '' extraConfig = ''
@ -36,7 +38,7 @@
}; };
"heimdall" = { "heimdall" = {
user = "elitherl"; user = "elitherl";
hostname = "10.40.4.115"; # heimdall115.jetdata.eu hostname = "heimdall003.jet.uk";
compression = true; compression = true;
}; };
}; };

View file

@ -142,9 +142,8 @@
shell = { shell = {
disabled = false; disabled = false;
format = "using [$indicator]($style) "; format = "using [$indicator]($style) ";
nu_indicator = "ν";
bash_indicator = ""; bash_indicator = "";
zsh_indicator = "󰰶 ";
fish_indicator = "󰈺 ";
powershell_indicator = ""; powershell_indicator = "";
cmd_indicator = ""; cmd_indicator = "";
unknown_indicator = ""; unknown_indicator = "";

0
system/home/shell/transient.zsh Executable file → Normal file
View file

View file

@ -1,257 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [ ./waybar/default.nix ];
stylix.targets.swaylock.useImage = false; # Using swaylock-effects instead
home.packages = with pkgs; [
libreoffice-fresh
ffmpeg
grim
slurp
swappy
wl-clipboard
swayimg
swaybg
(writeShellScriptBin "swaylockfx" ''
${swaylock-effects}/bin/swaylock --screenshots --clock --indicator --effect-blur 7x5 --effect-vignette 0.5:0.5
'')
(writeShellScriptBin "protonmail-setup-bridge" ''
pkill -9 -f protonmail-bridge
${protonmail-bridge}/bin/protonmail-bridge -c
swaymsg exec "${protonmail-bridge}/bin/protonmail-bridge -n"
'')
];
programs = {
waybar.systemd.target = "sway-session.target";
fuzzel = {
enable = true;
settings = {
main = {
icon-theme = config.gtk.iconTheme.name;
icons-enabled = true;
fields = "filename,name,generic,categories";
fuzzy = true;
filter-desktop = true;
terminal = "${config.programs.alacritty.package}/bin/alacritty -e";
lines = 24;
width = 80;
tabs = 4;
layer = "overlay";
};
border = {
width = 1;
radius = 5;
};
};
};
swaylock = {
enable = true;
package = pkgs.swaylock-effects;
};
wlogout = {
enable = true;
layout = [
{
label = "reboot";
action = "systemctl reboot";
text = "Reboot";
keybind = "r";
}
{
label = "shutdown";
action = "systemctl poweroff";
text = "Shutdown";
keybind = "s";
}
{
label = "logout";
action = "swaymsg exit";
text = "Logout";
keybind = "l";
}
];
};
};
services = {
kanshi.systemdTarget = "sway-session.target";
gpg-agent.pinentryPackage = pkgs.pinentry-gnome3;
avizo = {
enable = true;
settings.default.image-opacity = lib.mkForce "1.0";
};
kdeconnect = {
enable = true;
indicator = true;
};
mako = {
enable = true;
anchor = "top-right";
width = 600;
height = 600;
layer = "top";
markup = true;
maxVisible = 10;
icons = true;
iconPath = with config.gtk.iconTheme; "${package}/share/icons/${name}";
borderRadius = 5;
borderSize = 1;
defaultTimeout = 0;
};
swayidle = {
enable = true;
timeouts = [
{
timeout = 60 * 15; # 15 minutes
command = "swaylockfx";
}
];
};
udiskie = {
enable = true;
notify = true;
automount = true;
tray = "never";
};
};
wayland.windowManager.sway = {
enable = true;
package = pkgs.swayfx.overrideAttrs (old: {
passthru.providedSessions = [ "sway" ];
});
swaynag.enable = true;
systemd.enable = true;
xwayland = true;
checkConfig = false;
config = {
input = {
"*" = {
xkb_layout = "gb";
xkb_options = "ctrl:nocaps";
};
"type:touchpad" = {
tap = "enabled";
natural_scroll = "enabled";
};
};
seat = {
"seat0" = {
xcursor_theme = "${config.gtk.cursorTheme.name} ${toString config.gtk.cursorTheme.size}";
};
};
modifier = "Mod4";
terminal = "${config.programs.alacritty.package}/bin/alacritty";
menu = "${config.programs.fuzzel.package}/bin/fuzzel";
workspaceAutoBackAndForth = true;
bars = [ ];
gaps = {
inner = 5;
outer = 0;
};
startup = [
{ command = "${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"; }
{ command = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n"; }
{ command = "${pkgs.dex}/bin/dex -a"; }
{ command = "${config.services.mako.package}/bin/mako"; }
];
window = {
border = 1;
titlebar = false;
commands = [
{
criteria.window_role = "(?:pop-up|bubble|dialog)";
command = "floating enable";
}
{
criteria.app_id = "(?:org\.kde\.polkit-kde-authentication-agent-1|Pinentry|pavucontrol|\.blueman-manager-wrapped|nm-connection-editor)";
command = "floating enable";
}
{
criteria.class = "(?:[Mm]atplotlib|.*\.py|Idl)";
command = "floating enable";
}
{
# Catch-all for file dialog windows
criteria.title = "(?:Open|Save) (?:File|Folder|As)";
command = "floating enable, resize set width 1030 height 710";
}
{
# Inhibit idle when watching vidoes
criteria.app_id = "(?:firefox|mpv)";
command = "inhibit_idle fullscreen";
}
{
# Window rules for game sessions.
# Note: controllers don't reset idle timer
criteria.class = "(?:steam_app|Minecraft).*";
command = "floating enable, fullscreen enable, inhibit_idle focus";
}
];
};
floating.border = 1;
keybindings =
let
modifier = config.wayland.windowManager.sway.config.modifier;
in
lib.mkOptionDefault {
# Movement
"${modifier}+comma" = "workspace prev";
"${modifier}+period" = "workspace next";
"${modifier}+shift+comma" = "move workspace prev";
"${modifier}+shift+period" = "move workspace next";
"${modifier}+bracketleft" = "move workspace to output left";
"${modifier}+bracketright" = "move workspace to output right";
# Function keys
## Screenshot
"Print" = "exec ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.swappy}/bin/swappy -f -";
## Sound
"XF86AudioMute" = "exec ${config.services.avizo.package}/bin/volumectl %";
"XF86AudioMicMute" = "exec ${config.services.avizo.package}/bin/volumectl -m %";
"XF86AudioRaiseVolume" = "exec ${config.services.avizo.package}/bin/volumectl -u + 5";
"XF86AudioLowerVolume" = "exec ${config.services.avizo.package}/bin/volumectl -u - 5";
## Playback
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
"XF86AudioStop" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
## Brightness
"XF86MonBrightnessUp" = "exec ${config.services.avizo.package}/bin/lightctl + 5";
"XF86MonBrightnessDown" = "exec ${config.services.avizo.package}/bin/lightctl - 5";
# System utilities
"Mod4+Mod1+l" = "exec swaylockfx";
"${modifier}+z" = "exec ${config.services.mako.package}/bin/makoctl restore";
"${modifier}+Shift+z" = "exec ${config.services.mako.package}/bin/makoctl dismiss -a";
"${modifier}+Shift+p" = "exec ${config.programs.wlogout.package}/bin/wlogout";
"${modifier}+Shift+Return" = "exec ${config.programs.emacs.finalPackage}/bin/emacsclient -c";
};
};
extraConfig = ''
bindgesture swipe:right workspace prev
bindgesture swipe:left workspace next
corner_radius 5
blur enable
blur_xray disable
blur_passes 3
blur_radius 5
shadows enable
shadow_blur_radius 5
layer_effects "system-menu" blur enable; blur_ignore_transparent enable; shadows enable
layer_effects "gtk-layer-shell" blur enable; blur_ignore_transparent enable; shadows enable
layer_effects "notifications" blur enable; blur_ignore_transparent enable; shadows enable
layer_effects "launcher" blur enable; blur_ignore_transparent enable; shadows enable
layer_effects "logout_dialog" blur enable; blur_ignore_transparent enable; shadows enable
layer_effects "waybar" blur enable; blur_ignore_transparent enable; shadows enable
layer_effects "avizo" blur enable; blur_ignore_transparent enable; shadows enable
titlebar_separator enable
'';
};
xdg.configFile."swappy/config".source = ./swappy.conf;
}

View file

@ -1,10 +0,0 @@
[Default]
save_dir=$HOME/Pictures/Screenshots/
save_filename_format=swappy-%Y%m%d-%H%M%S.png
show_panel=false
line_size=5
text_size=20
text_font=sans-serif
paint_mode=brush
early_exit=false
fill_shape=false

View file

@ -1,390 +0,0 @@
{ config, pkgs, ... }:
{
stylix.targets.waybar.enable = false;
systemd.user.targets.tray.Unit = {
Description = "Home Manager System Tray";
Requires = [ "graphical-session.target" ];
};
programs.waybar = {
enable = true;
systemd.enable = true;
settings.main = {
name = "main";
layer = "top";
position = "top";
# Layout
"modules-left" = [
"sway/window"
"mpris"
];
"modules-center" = [ "sway/workspaces" ];
"modules-right" = [
"custom/notification"
"pulseaudio"
"network"
"bluetooth"
"clock#calendar"
"clock"
"backlight"
"battery"
"custom/weather"
"tray"
];
# Module config
"sway/workspaces" = {
format = "{icon}";
format-icons = {
"1" = "󰫃 ";
"2" = "󰫄 ";
"3" = "󰫅 ";
"4" = "󰫆 ";
"5" = "󰫇 ";
"6" = "󰫈 ";
default = "󰋙 ";
urgent = "󰁡 ";
};
all-outputs = false;
persistent-workspaces = {
"1" = [ ];
"2" = [ ];
"3" = [ ];
"4" = [ ];
"5" = [ ];
"6" = [ ];
};
};
"sway/window" = {
"format" = "{title}";
"max-length" = 50;
"rewrite" = {
"(.*) - GNU Emacs at (.*)" = " $1 [$2]";
"(alacritty.*)" = " $1";
"(.*) - mpv" = "󰦟 $1";
"swayimg: (.*)" = "󰋩 $1";
"swappy" = "󰹑 swappy";
"(btm)" = " Resource Usage [$1]";
"(cava)" = "󰝚 Music Visualiser [$1]";
"(.*) - Thunar" = "󰝰 $1";
"Mozilla Firefox" = "󰈹 $1";
"(.*) Mozilla Firefox" = "󰈹 $1";
"Nyxt - (.*)" = "󰀹 $1";
"(.*) - Chromium" = "󰊯 $1";
"(Signal.*)" = "󰭹 $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";
"(X2Go Client)" = "󰢹 $1";
"(NoMachine|Nxplayer.bin) (.*)" = "󰢹 $1 $2";
};
};
mpris = {
"format" = "{player_icon} {artist} - {title} {status_icon}";
"tooltip-format" = "{player_icon} ({player}) {dynamic}";
"title-len" = 64;
"interval" = 1;
"dynamic-order" = [
"album"
"artist"
"title"
"position"
"length"
];
"player-icons" = {
"default" = "󰲸 ";
"emms" = " ";
"firefox" = "󰈹 ";
"mpv" = "󰦟 ";
};
"status-icons" = {
"playing" = "󰐊";
"paused" = "󰏤";
"stopped" = "󰓛";
};
"ignored-players" = [ ];
};
pulseaudio = {
scroll-step = 5;
format = "{format_source}{icon}{volume}%";
format-muted = "{format_source} 󰝟 ";
format-source = "󰍬 ";
format-source-muted = "󰍭 ";
format-icons = {
car = "󰄍 ";
default = [
"󰕿 "
"󰖀 "
"󰕾 "
];
hands-free = "󰥰 ";
headset = "󰋎 ";
phone = "󰏲 ";
portable = "󰏳 ";
headphone = "󰋋 ";
};
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
on-click-right = "${pkgs.pamixer}/bin/pamixer -t";
on-scroll-up = "${pkgs.pamixer}/bin/pamixer -i 5";
on-scroll-down = "${pkgs.pamixer}/bin/pamixer -d 5";
};
disk = {
format = "󰋊 {percentage_used}%";
path = config.home.homeDirectory;
};
cpu = {
format = "󰻠 {usage}%";
tooltip = false;
};
memory = {
format = "󰍛 {}%";
};
temperature = {
critical-threshold = 80;
format = "{icon} {temperatureC}°C";
format-icons = [
"󱃃"
"󰔏"
"󱃂"
];
};
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";
};
"clock#calendar" = {
format = "󰃭 {:%Y-%m-%d}";
tooltip-format = "<tt>{calendar}</tt>";
calendar = {
mode = "month";
mode-mon-col = 3;
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}'><b>W{}</b></span>";
weekdays = "<span color='${scheme.orange}'><b>{}</b></span>";
days = "<span color='${scheme.base05}'><b>{}</b></span>";
today = "<span color='${scheme.base0D}'><b><i>{}</i></b></span>";
};
};
actions = {
on-scroll-up = "shift_up";
on-scroll-down = "shift_down";
};
};
clock.format = "󰥔 {:%R}";
backlight = {
format = "{icon}";
tooltip-format = "{percent}%";
format-icons = [
" "
" "
" "
" "
" "
" "
" "
" "
" "
];
};
battery = {
states = {
warning = 20;
critical = 10;
};
format = "{icon}";
format-time = "{H}:{m}";
format-charging = "󰂄 ({time})";
format-plugged = "󰚥 ";
format-warning = "{icon}{capacity}%";
format-critical = "{icon}{capacity}% ({time})";
tooltip-format = "{capacity}% | {power}W | {time}";
format-icons = [
"󱃍 "
"󰁺 "
"󰁻 "
"󰁼 "
"󰁽 "
"󰁾 "
"󰁿 "
"󰂀 "
"󰂁 "
"󰂂 "
"󰁹 "
];
};
"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 = "{}";
on-click = "${makoctl} dismiss -a";
interval = 3;
};
"custom/weather" =
let
date-format = "%Y-%m-%d";
custom-indicator = "{ICON}{temp_C}({FeelsLikeC})";
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;
alpha = "0.8";
in
''
* {
all: unset;
font-family: ${config.stylix.fonts.monospace.name};
font-size: ${toString config.stylix.fonts.sizes.popups}px;
}
window {
background: transparent;
box-shadow: none;
border: none;
}
window > box {
color: ${scheme.base05};
background: ${scheme.base00};
margin: 5px 5px 0px;
padding: 0px;
border-top: 1px solid ${scheme.base04};
border-radius: 5px;
}
tooltip {
background: alpha(${scheme.base00}, ${alpha});
border: 1px solid ${scheme.base0D};
border-radius: 5px;
box-shadow: none;
}
tooltip label {
color: ${scheme.base05};
border: none;
padding: 5px;
margin: 0px;
}
#workspaces,
#window,
#mpris,
#pulseaudio,
#network,
#bluetooth,
#backlight,
#battery,
#clock,
#custom-notification,
#custom-weather,
#tray {
margin: 0px;
padding: 1px 5px;
}
#workspaces,
#window,
#tray,
#backlight,
#battery,
#custom-weather {
color: ${scheme.base05};
}
#workspaces button {
background: transparent;
color: ${scheme.base05};
margin: 0px;
padding: 0px 5px;
}
#workspaces button.persistent {
color: ${scheme.base03};
}
#workspaces button.focused {
color: ${scheme.base0D};
}
#workspaces button.urgent {
color: ${scheme.base09};
}
#mpris {
color: ${scheme.base04};
}
#custom-notification {
color: ${scheme.base08};
}
#pulseaudio {
color: ${scheme.base09};
}
#network {
color: ${scheme.base0A};
}
#bluetooth {
color: ${scheme.base0B};
}
#clock.calendar {
color: ${scheme.base0C};
}
#clock {
color: ${scheme.base0D};
}
#battery.warning {
color: ${scheme.base09};
}
#battery.critical {
color: ${scheme.base08};
}
#battery.charging,
#battery.plugged {
color: ${scheme.base0B};
}
'';
};
}

View file

@ -0,0 +1,12 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ swww ];
systemd.user.services.swww-daemon = {
Unit = {
Description = "SWWW Daemon";
Wants = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
};
Service.ExecStart = "${pkgs.swww}/bin/swww-daemon";
};
}

View file

@ -0,0 +1,45 @@
{ pkgs, ... }:
let
swwwMorning = "${pkgs.swww}/bin/swww img ${../wallpapers/tropic_island_morning.jpg}";
swwwDay = "${pkgs.swww}/bin/swww img ${../wallpapers/tropic_island_day.jpg}";
swwwEvening = "${pkgs.swww}/bin/swww img ${../wallpapers/tropic_island_evening.jpg}";
swwwNight = "${pkgs.swww}/bin/swww img ${../wallpapers/tropic_island_night.jpg}";
dynamicWallpaper = pkgs.writeShellScriptBin "dynamic-wallpaper" ''
swww query || exit 1 # Check SWWW daemon is actually running
case $(date +%H) in
06 | 07 | 08) # Morning
${swwwMorning}
;;
09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17) # Day
${swwwDay}
;;
18 | 19 | 20) # Evening
${swwwEvening}
;;
21 | 22 | 23 | 00 | 01 | 02 | 03 | 04 | 05) # Night
${swwwNight}
;;
esac
'';
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";
};
};
timers.dynamic-wallpaper.Timer = {
OnCalendar = "*:0";
Unit = "dynamic-wallpaper.service";
};
};
}

View file

@ -1,9 +1,8 @@
{ config, ... }: { ... }:
{ {
programs.alacritty = { programs.alacritty = {
enable = true; enable = true;
settings = { settings = {
shell = "${config.programs.zsh.package}/bin/zsh";
window = { window = {
dynamic_title = true; dynamic_title = true;
padding = { padding = {
@ -11,7 +10,7 @@
y = 5; y = 5;
}; };
}; };
live_config_reload = true; general.live_config_reload = true;
selection.save_to_clipboard = true; selection.save_to_clipboard = true;
mouse.hide_when_typing = true; mouse.hide_when_typing = true;
}; };

View file

@ -0,0 +1,9 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
(texlive.combine {
inherit (texlive) scheme-full;
latex-beamer-ukaea.pkgs = [ (callPackage ./latex-beamer-ukaea/default.nix { }) ];
})
];
}

View file

@ -0,0 +1,18 @@
# UKAEA Beamer Style
This provides a Beamer theme for the default UKAEA branding. Subbrands
(CCFE, RACE, etc.) are not current available, but would not be
difficult to add.
For best results, it is recommended that you install the non-free
Latex fonts, as described here:
<https://www.tug.org/fonts/getnonfreefonts/>. However you will still
get perfectly acceptable results without them.
The file `ukaea-example.tex` is provided as a starting point for your
presentations. Simply rename and modify it as needed. You must either
keep your presentation TeX file in the same directory as the `.sty`
and image files or install those files on your system. If you wish to
do the latter, [follow these
instructions](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages#Installing_a_package)
starting from step 3.

View file

@ -0,0 +1,50 @@
\usepackage{xcolor}
\mode<presentation>
\definecolor{UkaeaCoreBlue}{RGB}{0,48,86}
\definecolor{UkaeaCoreWhite}{RGB}{255,255,255}
\definecolor{UkaeaCoreBlack}{RGB}{0,0,0}
\definecolor{UkaeaCoreGrey1}{RGB}{88,89,91}
\definecolor{UkaeaCoreGrey2}{RGB}{128,130,133}
\definecolor{UkaeaCoreGrey3}{RGB}{167,169,172}
\definecolor{UkaeaCoreGrey4}{RGB}{209,211,212}
\definecolor{UkaeaSecondaryYellow}{RGB}{246,212,77}
\definecolor{UkaeaSecondaryGreen}{RGB}{0,111,69}
\definecolor{UkaeaSecondaryBlue}{RGB}{0,130,202}
\definecolor{UkaeaSecondaryRed}{RGB}{201,37,44}
\definecolor{UkaeaSecondaryText}{RGB}{144,145,179}
\definecolor{CcfeOrange}{RGB}{248,151,29}
\definecolor{OasRed}{RGB}{230,62,48}
\definecolor{RaceSilver}{RGB}{191,196,217}
\definecolor{MrcGreen}{RGB}{5,206,124}
\setbeamercolor{headline}{bg=UkaeaCoreBlue}
\setbeamercolor{title page}{bg=UkaeaCoreBlue}
\setbeamercolor{title}{fg=UkaeaCoreWhite, bg=UkaeaCoreBlue}
\setbeamercolor{subtitle}{fg=UkaeaCoreWhite}
\setbeamercolor{author}{fg=UkaeaSecondaryText}
\setbeamercolor{date}{fg=UkaeaSecondaryText}
\setbeamercolor{institute}{fg=UkaeaSecondaryText}
\setbeamercolor{normal text}{fg=UkaeaCoreBlue}
\setbeamercolor{structure}{fg=UkaeaCoreBlue}
\setbeamercolor{frametitle}{fg=UkaeaCoreBlue}
\setbeamercolor{framesubtitle}{fg=UkaeaCoreBlue}
\setbeamercolor{alerted text}{fg=UkaeaSecondaryRed}
\setbeamercolor{block title}{fg=UkaeaCoreWhite, bg=UkaeaCoreBlue}
\setbeamercolor{block body}{parent=normal text, fg=UkaeaCoreBlack, bg=UkaeaCoreBlue!10}
\setbeamercolor{block title example}{fg=UkaeaCoreWhite, bg=UkaeaSecondaryBlue}
\setbeamercolor{block body example}{parent=normal text, fg=UkaeaCoreBlack, bg=UkaeaSecondaryBlue!10}
\setbeamercolor{block title alert}{fg=UkaeaCoreWhite, bg=UkaeaSecondaryRed}
\setbeamercolor{block body alert}{parent=normal text, fg=UkaeaCoreBlack, bg=UkaeaSecondaryRed!10}
\setbeamercolor{pagenumber}{fg=UkaeaCoreGrey3}
\mode<all>

View file

@ -0,0 +1,24 @@
% to use non-standard font
\usepackage{iftex}
\usepackage[T1]{fontenc}
\IfFileExists{uarial.sty}{
\usepackage{newtxsf, uarial, textcomp}
\usepackage[italic]{mathastext}
}{
\usepackage[scaled]{helvet}
}
\renewcommand\familydefault{\sfdefault}
\usepackage[scaled]{beramono}
\setbeamerfont{title}{family=\fontfamily{ugq}, size=\LARGE}
\setbeamerfont{subtitle}{family=\sffamily, series=\mdseries, size=\large}
\setbeamerfont{institute}{family=\fontfamily{ugq}, size=\Large}
\setbeamerfont{author}{family=\sffamily, series=\bfseries, size=\footnotesize}
\setbeamerfont{date}{family=\sffamily, series=\bfseries, size=\footnotesize}
\setbeamerfont{frametitle}{family=\fontfamily{ugq}, size=\LARGE}
\setbeamerfont{framesubtitle}{family=\sffamily, series=\mdseries, size=\Large}
\setbeamerfont{normal text}{family=\sffamily, series=\mdseries, size=\Large}

View file

@ -0,0 +1,24 @@
\mode<presentation>
\defbeamertemplate{itemize item}{circ}%
{\small\raise.2ex\hbox{$\bullet$}}
\defbeamertemplate{itemize subitem}{circ}%
{\small\raise.1ex\hbox{$\circ$}}
\defbeamertemplate{itemize subsubitem}{circ}%
{\scriptsize\raise.1ex\hbox{$\bullet$}}
\setbeamertemplate{items}[circ]
\setbeamertemplate{frametitle}
{
\nointerlineskip%
\vspace{4mm}\hspace{-8mm}
\begin{beamercolorbox}[wd=0.8\paperwidth]{frametitle}
\usebeamerfont{frametitle}{\insertframetitle}\par
\usebeamerfont{framesubtitle}{\usebeamercolor{framesubtitle}\insertframesubtitle}
\end{beamercolorbox}
}
\mode<all>

View file

@ -0,0 +1,96 @@
\usepackage{tikz}
\mode<presentation>
\DeclareOptionBeamer{logo}{\def\beamer@ukaea@logo{#1}}
\ExecuteOptionsBeamer{logo=ukaea_logo.png}
\DeclareOptionBeamer{extratitletext}{\def\beamer@ukaea@extratitletext{#1}}
\ExecuteOptionsBeamer{extratitletext=}
\ProcessOptionsBeamer
\newcommand{\ukaeatriangle}[1] {
\begin{tikzpicture}
\useasboundingbox (0,0) rectangle(\the\paperwidth,0.2\paperwidth);
\node (t1) at (\paperwidth, 0.2\paperwidth) {};
\node (t2) at (0.8\paperwidth, 0.2\paperwidth) {};
\node (t3) at (\paperwidth, 0.) {};
\fill[fill=#1] (t1.center)--(t2.center)--(t3.center);
\if \beamer@ukaea@logo\@empty
\else
\node (logo) at (0.9415\paperwidth, 0.1415\paperwidth) {
\includegraphics[height=0.073\paperwidth]{\beamer@ukaea@logo}
};
\fi
\end{tikzpicture}
}
\setbeamertemplate{title page}
{%
\newdimen\title@graphic@height
\begin{minipage}[t]{\paperwidth}
\hspace*{-1cm}\inserttitlegraphic{}
\end{minipage}
\settoheight{\title@graphic@height}{\inserttitlegraphic{}}
\vspace*{-\title@graphic@height minus 0.004\paperheight}
\hspace*{-1cm}%
\begin{minipage}{\paperwidth}
\usebeamercolor[bg]{headline}
\ukaeatriangle{bg}\par
\end{minipage}
\vspace*{-2.59cm}
\hspace*{-1.085cm}
\begin{tikzpicture}
\useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight);
\node (q1) at (0,0.54\paperheight) {};
\node (q2) at (\the\paperwidth,0.32\paperheight) {};
\node (q3) at (0,0) {};
\node (q4) at (\the\paperwidth,0) {};
\fill[fill=bg] (q1.center)--(q2.center)--(q4.center)--(q3.center);
\node[anchor=north west,text width=0.8\paperwidth] (titletext) at (0.4,0.42\paperheight) {
\usebeamerfont{institute}{\usebeamercolor[fg]{institute}\insertinstitute}\par
\smallskip
\usebeamerfont{title}{\usebeamercolor[fg]{title}\inserttitle}\par
\usebeamerfont{subtitle}{\usebeamercolor[fg]{subtitle}\insertsubtitle}\par
\bigskip
% \begin{minipage}{0.6\textwidth}
\usebeamercolor[fg]{date}{\usebeamerfont{date}\insertdate}\par
\usebeamercolor[fg]{author}{\usebeamerfont{author}\insertauthor}\par
% \end{minipage}
};
\node[anchor=south east,text width=0.45\paperwidth] (extratext) at
(1.28\paperwidth, 0.15) {
\usebeamercolor[fg]{title}
\usebeamerfont{main text}
\beamer@ukaea@extratitletext
};
\end{tikzpicture}
\addtocounter{framenumber}{-1}
}
\setbeamertemplate{headline}
{%\vspace{-0.07cm}\hspace{0.795\paperwidth}
\ukaeatriangle{bg}
\vspace{-0.2\paperwidth}
}
\setbeamertemplate{footline}
{
\leavevmode
\hbox{
\begin{beamercolorbox}[wd=1.0cm,ht=1.5cm,dp=0.3cm,right, rightskip=0.1cm]{pagenumber}%
\textbf{\large{\usebeamercolor[fg]{pagenumber}\insertframenumber{}}}
\end{beamercolorbox}
\usebeamercolor[fg]{normal text}{\textbf{\Large |} \raisebox{0.5ex}{\insertshorttitle}
}
}
}
\mode<all>
\endinput

View file

@ -0,0 +1,24 @@
\mode<presentation>
% Requirement
\RequirePackage{tikz}
\RequirePackage{xcolor}
% Options
\DeclareOptionBeamer{logo}{\PassOptionsToPackage{logo=#1}{beamerouterthemeukaea}}
\DeclareOptionBeamer{sponsors}{\PassOptionsToPackage{sponsors=#1}{beamerouterthemeukaea}}
\ProcessOptionsBeamer
% Settings
\useinnertheme{ukaea}
\useoutertheme{ukaea}
\usecolortheme{ukaea}
\usefonttheme{ukaea}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{blocks}[default]
%\setbeamertemplate{blocks}[rounded][shadow=true]
\titlegraphic{\includegraphics[width=\paperwidth]{ukaea-jet.jpg}}
\mode<all>

View file

@ -0,0 +1,11 @@
{ stdenvNoCC }:
stdenvNoCC.mkDerivation {
pname = "latex-beamer-ukaea";
version = "0.1";
src = ./.;
installPhase = ''
mkdir -p $out/tex/latex
cp -r $src/* $out/tex/latex
'';
tlType = "run";
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Some files were not shown because too many files have changed in this diff Show more