Compare commits

..

177 commits

Author SHA1 Message Date
Evie Litherland-Smith cc1378ac6c Add silicon cli for making code screenshots 2024-07-02 07:02:33 +01:00
Evie Litherland-Smith 068905b7a0 Switch back to pyright LSP for python 2024-07-01 21:20:26 +01:00
Evie Litherland-Smith 1b3bce5fa1 Emacs: add black for python formatting 2024-07-01 18:09:22 +01:00
Evie Litherland-Smith b167a65302 Emacs: remove org-journal 2024-07-01 13:52:38 +01:00
Evie Litherland-Smith 936c62463f Move main plasma panel back to bottom of screen
Keep panel visible, don't dodge windows. Remove setting notification
position so it follows panel again

Add back window changing shortcuts because they work again for some
reason (with no obvious changes)...
2024-06-29 13:00:11 +01:00
Evie Litherland-Smith 2cae695d70 Emacs: disable menu-bar for nix theme only 2024-06-29 12:59:39 +01:00
Evie Litherland-Smith d2b5a25e93 Remove altAccentColourName and associated uses
Enable no-script-mode by default in NYXT
2024-06-29 06:37:54 +01:00
Evie Litherland-Smith a9c96b8a06 Add NYXT bookmark converter, renable NYXT browser
Add converter to read bookmarks.json and convert to lisp format
expected by NYXT

Enable NYXT again (as well as firefox) now that bookmarks are
available

Swap accent and alt accent (with each other)
2024-06-28 08:40:56 +01:00
Evie Litherland-Smith 0370593531 Revert window switching shortcuts since it broke something... 2024-06-28 08:05:00 +01:00
Evie Litherland-Smith 1a4ff38017 Add window switching shortcuts for plasma6
Remove some example & backup rc2 files
2024-06-27 18:14:05 +01:00
Evie Litherland-Smith 94130a9c9c Set trackpad for Tone to natural scrolling
Add typescript (for tsc and tsserver) to javascript installed packages
2024-06-27 13:22:02 +01:00
Evie Litherland-Smith b494229697 Plasma: back to 4 virtual desktops 2024-06-26 19:32:39 +01:00
Evie Litherland-Smith ebd73130f4 Remove duplicated isort definition 2024-06-26 13:46:30 +01:00
Evie Litherland-Smith 4df68fa633 Fix bug missing nodePackages from TS LSP 2024-06-26 13:43:25 +01:00
Evie Litherland-Smith d062732ca0 Switch python to use pylsp again
Add typescript LSP, add nil to Emacs configuration
2024-06-26 13:38:34 +01:00
Evie Litherland-Smith 58c280adcb kwin set default tiling padding to 10 2024-06-26 09:39:45 +01:00
Evie Litherland-Smith 05e85dd0cf kwin tweaks 2024-06-26 06:32:36 +01:00
Evie Litherland-Smith dc303f5a30 Switch papirus folder theme to Breeze 2024-06-25 20:26:00 +01:00
Evie Litherland-Smith 5ef0a50135 Remove panel spacers 2024-06-25 17:11:51 +01:00
Evie Litherland-Smith 3fd6c762ea Plasma: change icon-only task manager to regular task manager
Add sorting and grouping config for task manager

Set kickoff to be pinned by default
2024-06-25 13:32:28 +01:00
Evie Litherland-Smith 6730d79a05 Add klipper config
Make krunner floating again
2024-06-25 11:40:50 +01:00
Evie Litherland-Smith b90bd71fa7 Update plasma-manager URL, moved to nix-community (from pjones) 2024-06-25 10:43:46 +01:00
Evie Litherland-Smith 9022cf2614 Plasma enable date for digital clock again 2024-06-25 10:41:21 +01:00
Evie Litherland-Smith 5711419229 Add nodejs + eslint 2024-06-25 07:31:17 +01:00
Evie Litherland-Smith c6a8a7c34e Fix correct username not being set
Rather than set username in flake.nix, set a default value in
default.nix (since it's always called), and set appropriate values in
personal.nix (pixelifytica) and work.nix (elitherl), since the two
files are mutually exclusive and only one or the other will be
imported.
2024-06-24 09:15:17 +01:00
Evie Litherland-Smith dc2ccdc7ea Add pre-commit hook to run gitleaks
Search for accidentally included secrets when committing
2024-06-24 07:27:22 +01:00
Evie Litherland-Smith 51af98e49b Plasma: move back to single panel 2024-06-24 06:33:59 +01:00
Evie Litherland-Smith 7e3b7d25ea Plasma: more panel config updates 2024-06-23 21:15:42 +01:00
Evie Litherland-Smith b6b6a1e9ca Plasma: Update panel configuration
Split main panel into launcher, status, and pager, in separate
sections of the screen

Fix location for notifications to bottom left corner

Add KDE scripting reference to bookmarks.json
2024-06-23 18:25:45 +01:00
Evie Litherland-Smith 47717a20ca Disable numlock on startup by default 2024-06-23 08:02:16 +01:00
Evie Litherland-Smith 25da0eba52 Unpin systemmonitor from panel, pin systemsettings instead 2024-06-23 06:49:35 +01:00
Evie Litherland-Smith 82104e0204 Add noson package (sonos controller) 2024-06-22 16:52:19 +01:00
Evie Litherland-Smith bbd79d3f84 Remove copy directive from Makefile 2024-06-22 16:40:00 +01:00
Evie Litherland-Smith ae35cc0f69 Fix importing wrong module for Northstar 2024-06-22 16:36:22 +01:00
Evie Litherland-Smith e4516d5585 Some more renaming and moving
Move more to naming folders after function than specific
program (exception being Emacs...), renamed firefox -> browser and obs
-> streaming

Also move importing obs/streaming to personal.nix instead of default

Move Nyxt config into browser directory

Add some KDE apps: ktorrent for personal, kdenlive and krita for
streaming
2024-06-22 16:28:15 +01:00
Evie Litherland-Smith 1abfec381a Flatten and remove some extra files
Move home/ files into flake.nix (for machine-specific) or just up a
level (for default, personal, and work config files)
2024-06-22 16:08:44 +01:00
Evie Litherland-Smith 73db0c0906 Set Northstar touchpad to natural scroll mode
Needs to be done per device (currently) as libinput devices have a
unique ID, hopefully can set as a general setting in the future
2024-06-22 12:10:29 +01:00
Evie Litherland-Smith 281697aa38 Add rc2nix (from plasma-manager) to installed packages 2024-06-22 12:10:16 +01:00
Evie Litherland-Smith 22d0791ad1 Plasma workspaces - rollover desktop navigation 2024-06-22 12:01:53 +01:00
Evie Litherland-Smith e85de5b314 Plasma: switch to 4 virtual desktops on 1 row 2024-06-22 11:59:31 +01:00
Evie Litherland-Smith da659c3d1c Plasma: Set window focus to follow mouse 2024-06-22 11:57:19 +01:00
Evie Litherland-Smith aa495aa582 Update Makefile
Use normal nix build command to build output, instead of relying on
home-manager script that introduces some overhead
2024-06-22 09:40:51 +01:00
Evie Litherland-Smith 5cd5d8ccc2 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/845a5c4c073f74105022533907703441e0464bc3' (2024-06-04)
  → 'github:nix-community/home-manager/a1fddf0967c33754271761d91a3d921772b30d0e' (2024-06-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9b5328b7f761a7bbdc0e332ac4cf076a3eedb89b' (2024-06-06)
  → 'github:nixos/nixpkgs/dd457de7e08c6d06789b1f5b88fc9327f4d96309' (2024-06-19)
• Updated input 'plasma-manager':
    'github:pjones/plasma-manager/b906c67581fa12ad2821f295b37b5733fcc76926' (2024-06-16)
  → 'github:pjones/plasma-manager/6f182700ad78f13f367fdfff2b0a4062e70eeea8' (2024-06-21)
• Updated input 'tt-schemes':
    'github:tinted-theming/schemes/abcf2a055ae69f1bf047463332f83db3125aa8a5' (2024-04-17)
  → 'github:tinted-theming/schemes/ef9a4c3c384624694608adebf0993d7a3bed3cf2' (2024-06-21)
2024-06-22 09:24:59 +01:00
Evie Litherland-Smith 728d9ed9d7 Update pinned URL for NixOS wiki 2024-06-22 09:20:13 +01:00
Evie Litherland-Smith fc04925c30 Firefox: displaybookmarkstoolbar false -> "never" 2024-06-22 06:35:37 +01:00
Evie Litherland-Smith 17051cb1f8 Add KRDC remote desktop program 2024-06-21 14:02:26 +01:00
Evie Litherland-Smith eafe0945af Replace nixpkgs manual with NixOS manual (canonical source, stable) 2024-06-21 10:06:23 +01:00
Evie Litherland-Smith 6f272d7571 Add nixpkgs documentation to bookmarks.json 2024-06-21 09:25:34 +01:00
Evie Litherland-Smith 87ef1217fc Add notebooks directory to git-sync-all 2024-06-20 19:00:58 +01:00
Evie Litherland-Smith 5fbabd0cb0 Plasma: use -2 for small font point size 2024-06-20 18:57:11 +01:00
Evie Litherland-Smith 027bc987c3 Remove envrc 2024-06-20 18:55:55 +01:00
Evie Litherland-Smith fe5e44fb78 Firefox: turn off bookmarks toolbar 2024-06-20 18:54:45 +01:00
Evie Litherland-Smith 992ec5ed23 Increase default font sizes for plasma desktop 2024-06-20 16:37:04 +01:00
Evie Litherland-Smith d339e45fc7 Add font size to konsole config
Set Emacs font size programatically instead of fixed
2024-06-20 16:32:29 +01:00
Evie Litherland-Smith ab7790b983 Move Emacs font settings to theme, which is then loaded in extraConfig 2024-06-20 16:25:50 +01:00
Evie Litherland-Smith 9626796c46 Move bookmarks to top level to be shared between browsers
Flatten bookmarks to single level, don't add to bookmarks bar in
Firefox - rely on "*" bookmarks searching in search bar instead.
2024-06-20 14:27:28 +01:00
Evie Litherland-Smith 4b460885f4 Change emacsclient keybind 2024-06-19 18:02:08 +01:00
Evie Litherland-Smith c22fe93fe2 Switch digital clock back to default format 2024-06-19 18:00:25 +01:00
Evie Litherland-Smith b1d6e5d5a6 Add Konsole customisations 2024-06-19 17:54:35 +01:00
Evie Litherland-Smith 790c0e38f5 Add copies of colorscheme and profile definitions for Konsole 2024-06-19 17:17:43 +01:00
Evie Litherland-Smith fd6db5febf Change binds and pinned programs to mainly use Konsole by default 2024-06-19 17:17:04 +01:00
Evie Litherland-Smith 49f428e4b2 Ruff - add numpy 2.0 deprecation warnings 2024-06-19 16:32:23 +01:00
Evie Litherland-Smith a2bb9db9ce Add wl-clipboard for plasma6
Update README for Proton Mail Bridge GUI details
2024-06-18 15:37:18 +01:00
Evie Litherland-Smith 44d3f0472a Swap protonmail-bridge service for official GUI 2024-06-18 15:13:17 +01:00
Evie Litherland-Smith 8891570856 Add UKAEA pinboard to bookmarks.json 2024-06-18 13:38:45 +01:00
Evie Litherland-Smith 62a5615a2c Remove zoom and nomachine, use flathub instead 2024-06-18 11:29:13 +01:00
Evie Litherland-Smith 0effbc884d Disable baloofilerc indexing 2024-06-18 10:31:09 +01:00
Evie Litherland-Smith 43b174c083 Add Zoom for work machines
Add system monitor to pinned programs
2024-06-18 10:19:50 +01:00
Evie Litherland-Smith eef58aa427 Don't start protonmail-bridge with plasma, setup systemd service
Move protonmail-bridge-setup and davmail-setup to respective email
definition files, rather than desktop settings

Update mimeapps with extra definitions from Plasma settings

Update README to rename protonmail-setup-bridge ->
protonmail-bridge-setup
2024-06-18 09:31:38 +01:00
Evie Litherland-Smith 942d13eb8e Revert some shortcuts to default values 2024-06-18 06:55:07 +01:00
Evie Litherland-Smith 3be093e92f Remove duplicated font definitions 2024-06-17 20:47:27 +01:00
Evie Litherland-Smith 77af8df735 Plasma config updates
Set theme and terminal program explicitly, enable virtual desktops,
enable NightColor mode with default location settings.
2024-06-17 18:41:34 +01:00
Evie Litherland-Smith 98b72ac11d Move main panel back to bottom of screen 2024-06-17 17:24:53 +01:00
Evie Litherland-Smith e19dcbaba0 Change plasma.kickoff icon -> nix-snowflake 2024-06-17 16:28:28 +01:00
Evie Litherland-Smith c79d49a60c Move plasma panel to right of screen, autostart protonmail-bridge
Add Twinkle to installed work packages
2024-06-17 16:22:37 +01:00
Evie Litherland-Smith 20e4682100 Update hotkeys and pinned applications 2024-06-17 15:54:28 +01:00
Evie Litherland-Smith da0ecddc13 Fix teams-for-linux launch bug 2024-06-17 15:54:12 +01:00
Evie Litherland-Smith 90ee462d17 Add more panel configs 2024-06-17 15:21:11 +01:00
Evie Litherland-Smith 6c45969188 Fix setting kwin options correctly, add Tone rc2 backup 2024-06-17 15:06:40 +01:00
Evie Litherland-Smith fde3698afb Add some more plasma6 configs 2024-06-17 14:51:52 +01:00
Evie Litherland-Smith 0a70253054 Remove global appmenu 2024-06-17 14:03:45 +01:00
Evie Litherland-Smith 39505f9522 plasma6 -> overrideConfig=true 2024-06-17 14:02:16 +01:00
Evie Litherland-Smith cfac416750 Add plasma-manager module
Add initial config to expand upon, as well as copy of example from
plasma-manager repo and current export from Scorch before applying
plasma-manager
2024-06-17 13:53:08 +01:00
Evie Litherland-Smith d1e71284d5 Remove Sway config from work machine configurations 2024-06-17 08:48:58 +01:00
Evie Litherland-Smith 6ed405d7e2 Squashed commit of the following:
commit 68df6945a2
Author: Evie Litherland-Smith <evie@xenia.me.uk>
Date:   Mon Jun 17 08:44:52 2024 +0100

    Remove gnome-themes-extra and adwaita-qt

commit fa7baa7812
Author: Evie Litherland-Smith <evie@xenia.me.uk>
Date:   Mon Jun 17 08:37:45 2024 +0100

    Export more rc2 settings for Vanguard

commit 4a101ee77d
Author: Evie Litherland-Smith <evie@xenia.me.uk>
Date:   Mon Jun 17 08:27:46 2024 +0100

    Set pinentry package to Qt variant when using plasma6

    Add extra theme/icon packages to installed packages whilst configuring

commit 923adabb28
Author: Evie Litherland-Smith <evie@xenia.me.uk>
Date:   Mon Jun 17 08:23:48 2024 +0100

    Add rc2 export for Vanguard as well

    Remove some sway config from Vanguard.nix

    Remove home-manager kdeconnect service, incompatible with
    system/plasma6 enabled service

    Install pinentry-all by default to ensure compatibility

commit dfc1ac3f74
Author: Evie Litherland-Smith <evie@xenia.me.uk>
Date:   Mon Jun 17 07:35:31 2024 +0100

    Add plasma6 export using rc2nix

commit eb8bb86c17
Author: Evie Litherland-Smith <evie@xenia.me.uk>
Date:   Sun Jun 16 20:44:38 2024 +0100

    Disable/remove more options not needed for plasma6

commit 51171ddb06
Author: Evie Litherland-Smith <evie@xenia.me.uk>
Date:   Sun Jun 16 19:31:15 2024 +0100

    Re-enable alacritty decorations, disable translucency for alacritty and emacs

commit 99364c041b
Author: Evie Litherland-Smith <evie@xenia.me.uk>
Date:   Sun Jun 16 12:42:26 2024 +0100

    Disable sway and related modules
2024-06-17 08:47:53 +01:00
Evie Litherland-Smith e9a3bcd858 Update accent colour definitions
Rename variables to be clear these are colour names, not the actual
colours. Redefine as baseXX to be used in all scheme variables.

Update all uses to remove "with scheme" form and make more explicit.
2024-06-16 11:28:05 +01:00
Evie Litherland-Smith dea9837a50 Enable kdeconnect service 2024-06-16 11:05:45 +01:00
Evie Litherland-Smith bae8a7b912 Add sway/window to alt waybar config
Slightly change monitor config definition
2024-06-16 06:34:50 +01:00
Evie Litherland-Smith 942810dd66 Fix setting undocked profile for laptops 2024-06-15 10:04:33 +01:00
Evie Litherland-Smith 16914a2fa7 Change module layout for alt waybar 2024-06-15 09:59:00 +01:00
Evie Litherland-Smith 8f179c9f6b Update kanshi to use settings instead of profiles
Add kanshi config to Northstar

Standardise monitor config across machines

Move waybar alt bar definition to Vanguard config specifically, don't
need to use hacky solution
2024-06-15 09:57:26 +01:00
Evie Litherland-Smith e869e866f1 Check and set upstream information in git-sync-all 2024-06-13 17:38:20 +01:00
Evie Litherland-Smith c51926171f Move library to separate directory, instead of org submodule 2024-06-13 10:13:31 +01:00
Evie Litherland-Smith c2e8c11ed8 Switch Emacs back to socket activation 2024-06-13 07:12:47 +01:00
Evie Litherland-Smith 5779833787 Add teams-for-linux config file back 2024-06-12 10:44:53 +01:00
Evie Litherland-Smith 3c9b3dfcac Add teams-for-linux back, remove signal-desktop
Plan to add matrix bridges for signal and whatsapp so don't need the
installed applications any more
2024-06-12 07:36:48 +01:00
Evie Litherland-Smith b3202b5ae4 Switch firefox to default theme so that it uses GTK 2024-06-12 07:33:53 +01:00
Evie Litherland-Smith 1f04b00dfd Change accentColour, add accentColour2 for certain programs (e.g. sway) 2024-06-12 07:32:03 +01:00
Evie Litherland-Smith fda20dbf29 Emacs: add BBDB and ement packages 2024-06-12 07:31:52 +01:00
Evie Litherland-Smith bcc07b98cb 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=6e305fa1d05a97343d47f0b6865e10a870fc8d4e' (2024-03-16)
  → 'git+https://git.xenia.me.uk/pixelifytica/iosevka.git?ref=refs/heads/main&rev=8848d889ab9089dff04a3ffc80d2cc8a61d545c4' (2024-06-07)
• Updated input 'iosevka-custom/nixpkgs':
    'github:nixos/nixpkgs/d691274a972b3165335d261cc4671335f5c67de9' (2024-03-14)
  → 'github:nixos/nixpkgs/e8057b67ebf307f01bdcc8fba94d94f75039d1f6' (2024-06-05)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/0b8e7a1ae5a94da2e1ee3f3030a32020f6254105' (2024-06-05)
  → 'github:nixos/nixpkgs/9b5328b7f761a7bbdc0e332ac4cf076a3eedb89b' (2024-06-06)
2024-06-10 08:24:04 +01:00
Evie Litherland-Smith ac9ce0094d Change some colours for wlogout 2024-06-10 08:23:12 +01:00
Evie Litherland-Smith 24398ba7ca Add treemacs-nerd-icons to Emacs packages 2024-06-10 08:03:51 +01:00
Evie Litherland-Smith 1b14e48889 Switch GTK theme to Adwaita, Arc is unmaintained
Set Qt theme to adwaita-qt for consistent theme
2024-06-09 15:58:10 +01:00
Evie Litherland-Smith 01cdbfea12 Make all parts of GTK theme variable, based on scheme variant 2024-06-09 15:38:51 +01:00
Evie Litherland-Smith e55a4d5d1a Switch to Arc-Lighter GTK theme 2024-06-09 12:31:31 +01:00
Evie Litherland-Smith 4fc7925305 Add some more rules for game windows
Fix a typo (by removing that entry)
2024-06-09 06:54:34 +01:00
Evie Litherland-Smith fa3c5c2643 Update some more window rules 2024-06-09 06:51:10 +01:00
Evie Litherland-Smith 63d3ca5ea9 fixup! Add workspace rewrite for Cartridges 2024-06-09 06:27:15 +01:00
Evie Litherland-Smith 0f20690a25 Add workspace rewrite for Cartridges 2024-06-09 06:23:57 +01:00
Evie Litherland-Smith 9461b6da20 Switch other theme elements to Sweet GTK + One Light 2024-06-08 08:13:20 +01:00
Evie Litherland-Smith 72c37af6fe Switch to base16 one light (atom) theme
Change papirus-folder colours, switch cursor to volantes-cursors
2024-06-08 07:17:19 +01:00
Evie Litherland-Smith e980eb167b Switch back to alacritty as primary terminal 2024-06-07 20:44:55 +01:00
Evie Litherland-Smith 7e92a3e068 Cleanup Makefile 2024-06-07 20:16:32 +01:00
Evie Litherland-Smith 3c51bc8803 Inhibit idle when running a Steam game 2024-06-07 16:06:28 +01:00
Evie Litherland-Smith 0a9f7157fc Update alacritty config to generate theme dynamically 2024-06-07 13:36:29 +01:00
Evie Litherland-Smith 15199580e9 Add cartridges: Unified game launcher using GTK4.0 2024-06-07 13:36:01 +01:00
Evie Litherland-Smith 22dbc09500 Move some config from home/default.nix and nixos system config
Add options to desktop.nix from home/default.nix that are
desktop-relevant.

Add mimeapp config back from nixos system config

Move fd, ripgrep to enabled programs, remmina to enable service

Emacs config now imports shell config to ensure requirements are met
instead of duplicating some

Move Zsh config into it's own file zsh.nix
2024-06-07 10:51:35 +01:00
Evie Litherland-Smith 6c4723e9b9 Remove whatsapp-for-linux and teams-for-linux 2024-06-07 07:30:29 +01:00
Evie Litherland-Smith 8dab770287 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/a631666f5ec18271e86a5cde998cba68c33d9ac6' (2024-05-26)
  → 'github:nix-community/home-manager/845a5c4c073f74105022533907703441e0464bc3' (2024-06-04)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/805a384895c696f802a9bf5bf4720f37385df547' (2024-05-31)
  → 'github:nixos/nixpkgs/0b8e7a1ae5a94da2e1ee3f3030a32020f6254105' (2024-06-05)
2024-06-07 07:00:52 +01:00
Evie Litherland-Smith 0e45bbe456 Add pull step back to git-sync-all.sh
Pulls ~/.emacs.d/ and ~/.config/home-manager/
2024-06-07 06:01:43 +01:00
Evie Litherland-Smith fd35f72cd2 Re-enable Emacs service, don't import work.nix for Vanguard 2024-06-06 17:25:44 +01:00
Evie Litherland-Smith 80f9c53384 Set compile-command to build instead of switch 2024-06-06 06:44:42 +01:00
Evie Litherland-Smith 68462fb0a5 Set compile-command dir local variable 2024-06-06 06:29:22 +01:00
Evie Litherland-Smith 4dcf1bc136 Fix cursor package 2024-06-06 06:28:12 +01:00
Evie Litherland-Smith 1a7959808a Replace zsh update aliases with system-update-all script 2024-06-05 16:39:29 +01:00
Evie Litherland-Smith 7592b887a4 Vanguard: import work packages 2024-06-05 16:20:04 +01:00
Evie Litherland-Smith a544feb2a4 Merge branch 'main' of https://git.xenia.me.uk/pixelifytica/home-manager 2024-06-05 13:53:18 +01:00
Evie Litherland-Smith 9010309e86 Invert type for cursor theme (e.g. Dark cursor if Light theme) 2024-06-05 13:53:03 +01:00
Evie Litherland-Smith 57399433fb Nyxt: switch default search to html ddg 2024-06-05 04:53:41 +01:00
Evie Litherland-Smith e16a368f53 Emacs: add treemacs 2024-06-04 17:26:37 +01:00
Evie Litherland-Smith 8b51847ac0 Move python and lua config into emacs directory
Change python lsp to use pyright, add lua-language-server
2024-06-04 15:43:27 +01:00
Evie Litherland-Smith db43e17270 Change to light theme (Latte), change wallpaper to Outset Island 2024-06-04 14:55:20 +01:00
Evie Litherland-Smith cfea36f08b Make more theme parts dynamic
Pick Light vs Dark GTK theme based on variant name

Pick correct theme for bat

Team: stop following system theme
2024-06-04 14:24:13 +01:00
Evie Litherland-Smith e670a4e391 Update swaylock theme to be more complete 2024-06-04 14:19:40 +01:00
Evie Litherland-Smith 3a7f7fecee Disable Emacs service, set EDITOR and VISUAL to Emacs in zsh 2024-06-04 11:39:14 +01:00
Evie Litherland-Smith f6849b2e6d zsh: remove enableVteIntegration 2024-06-03 18:18:54 +01:00
Evie Litherland-Smith c2dc12417c ssh: add keys to agent (new config syntax), remove heimdall
Set TERM env var to xterm-256color in foot config instead of as ssh
override, might fix emacs remote shell issues where it should be
TERM=dumb
2024-06-03 09:54:42 +01:00
Evie Litherland-Smith 18a245e375 Remove automatic tabbed rule from any windows 2024-06-03 09:36:31 +01:00
Evie Litherland-Smith 51f71a759d Move teams and nomachine install to work.nix
Add teams-for-linux config file: set theme and spellchecker language,
notification settings, idle options and force wayland if sway is
enabled
2024-06-03 09:30:52 +01:00
Evie Litherland-Smith 41ae216b81 Add blur to logout_dialog layer 2024-06-03 06:42:58 +01:00
Evie Litherland-Smith f0cb848271 Add copy command to Makefile
copy runs build, copy to Legion, then rm result link
2024-06-03 05:46:16 +01:00
Evie Litherland-Smith 27bbe15db5 Merge branch 'nixos-24.05' 2024-06-03 05:27:13 +01:00
Evie Litherland-Smith 2c270c0cd5 Disable checkConfig for sway module
Fix https://github.com/nix-community/home-manager/issues/5379
2024-06-03 05:26:43 +01:00
Evie Litherland-Smith cff251025c Nyxt: add glyph for reduce-bandwidth-mode 2024-06-02 07:14:56 +01:00
Evie Litherland-Smith 3d6537dfe5 Update to nixos-24.05
Update pinentry to use package rather than string definition

Sway currently not building - to investigate
2024-06-01 07:16:06 +01:00
Evie Litherland-Smith 6191622f0f Update hostname for Freia in SSH config 2024-05-31 09:33:28 +01:00
Evie Litherland-Smith 47fa0b2761 Add remmina with window rules
Add sway/window to waybar (left slot)
2024-05-31 09:33:10 +01:00
Evie Litherland-Smith f720691768 Add awesome wayland repo to bookmarks 2024-05-31 06:45:05 +01:00
Evie Litherland-Smith b4e203a5e0 Update font sizes for waybar and fuzzel 2024-05-30 17:04:47 +01:00
Evie Litherland-Smith 99ee1a9008 Remove gnumake (installed in NixOS), add rclone
Ensure fd and ripgrep installed for Emacs

Don't install language servers by default, nil already installed at
NixOS system level, and python needs to be installed per-environment
anyway. Don't need the other LSPs
2024-05-30 13:41:12 +01:00
Evie Litherland-Smith 1e229c2d1f Enable work laptop screen when docked 2024-05-30 11:49:10 +01:00
Evie Litherland-Smith 15ade8b6da Make chat programs tabbed by default 2024-05-30 11:45:15 +01:00
Evie Litherland-Smith 2af99c51d7 Fix opacity of mako and fuzzel, actually 80% now
Change bright0 colour for foot from base03 -> base04 for better
contrast
2024-05-29 14:07:33 +01:00
Evie Litherland-Smith 52e0ee5c7e Switch order of makoctl keybinds 2024-05-29 13:17:35 +01:00
Evie Litherland-Smith 1ca24bf948 Adjust size of fuzzel window 2024-05-29 10:16:15 +01:00
Evie Litherland-Smith d8d30031f8 Fuzzel filter files by desktop 2024-05-29 09:18:54 +01:00
Evie Litherland-Smith a6d8dbf2be Add binds to restore and clear notifcations with makoctl 2024-05-29 09:13:51 +01:00
Evie Litherland-Smith e528a8fc88 Change swaylock bind to Super+Alt+L
Add Shift to wlogout bind
2024-05-29 09:08:12 +01:00
Evie Litherland-Smith bc97bfe83a Fix another typo, got them all now 2024-05-29 07:24:20 +01:00
Evie Litherland-Smith 82ff500d1e Fix typo elixer -> elixir 2024-05-29 07:20:38 +01:00
Evie Litherland-Smith 8a408f880c Customise bat theme options 2024-05-29 07:13:46 +01:00
Evie Litherland-Smith 917f7a5691 Update starship symbols using values from nerd-font-symbols preset 2024-05-29 07:03:30 +01:00
Evie Litherland-Smith 607f03a785 Change opacity of waybar 2024-05-28 07:55:12 +01:00
Evie Litherland-Smith 98b04a645a Switch swaync for mako
Move waybar to bottom of screen, move workspaces module to the left
and mpris to the centre
2024-05-28 07:47:00 +01:00
Evie Litherland-Smith 8519ba9fe5 Make some more Niri binds more like Sway 2024-05-27 21:14:39 +01:00
Evie Litherland-Smith 79b0a0d841 Fix foot and swaync color + opacity settings 2024-05-27 21:12:23 +01:00
Evie Litherland-Smith dff251d0f9 Add some transparency back, fix waybar module settings 2024-05-27 21:07:45 +01:00
Evie Litherland-Smith 58ce683cb2 Foot: add slight padding 2024-05-27 20:48:40 +01:00
Evie Litherland-Smith 6a25f97753 Niri: set cursor theme, disable csd 2024-05-27 20:40:46 +01:00
Evie Litherland-Smith bbec2b7a0d Niri: remove invalid keybinds 2024-05-27 20:16:18 +01:00
Evie Litherland-Smith e532ddc8cd Sway: use set-background helper script as well 2024-05-27 20:12:30 +01:00
Evie Litherland-Smith b4b37d3d2a Niri: call set-background at startup 2024-05-27 20:10:38 +01:00
Evie Litherland-Smith 6bc0cbdc4f Add niri config, restructure files
Move sway to desktop/sway and move other packages under programs/sway
up a level to programs/desktop, add niri config to desktop/niri and
refactor common desktop imports into desktop/default.nix that also
imports (for now at least) sway and niri modules

Move wallpapers into programs/desktop since that's where they're
needed anyway

Add helper script to call swaybg with arguments
2024-05-27 20:07:18 +01:00
Evie Litherland-Smith 5425486d1b Move niri to nixos configuration instead 2024-05-27 18:44:54 +01:00
Evie Litherland-Smith 6cd0950e17 Add niri package (from stable flake input) 2024-05-27 18:36:39 +01:00
Evie Litherland-Smith f4e3f29392 Switch alacritty for foot terminal 2024-05-27 17:06:52 +01:00
Evie Litherland-Smith 4f1aa64152 Adjust size and scaling for fuzzel 2024-05-27 16:40:02 +01:00
373 changed files with 2121 additions and 9777 deletions

1
.gitignore vendored
View file

@ -7,3 +7,4 @@
__pycache__ __pycache__
.direnv .direnv
*.html *.html
/result

5
.pre-commit-config.yaml Normal file
View file

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

View file

@ -1,9 +1,7 @@
.PHONY: default build switch .PHONY: build
default: build USER := $(shell whoami)
HOST := $(shell hostname)
build: build:
nix run . -- build --flake . --show-trace nix build .#homeConfigurations."$(USER)@$(HOST)".activationPackage
switch:
nix run . -- switch --flake . --show-trace

View file

@ -18,8 +18,7 @@ To set up without cloning the repository, run:
gpg -a --export > publickeys.asc gpg -a --export > publickeys.asc
gpg -a --export-secret-keys > privatekeys.asc gpg -a --export-secret-keys > privatekeys.asc
# Import key on new machine # Import key on new machine
gpg --import privatekeys.asc gpg --import privatekeys.asc; gpg --import publickeys.asc
gpg --import publickeys.asc
# Edit (for each key) to set trust # Edit (for each key) to set trust
gpg --edit-key evie@xenia.me.uk gpg --edit-key evie@xenia.me.uk
#+end_src #+end_src
@ -30,23 +29,9 @@ To set up without cloning the repository, run:
* Email setup * Email setup
** Proton ** Proton
*** Bridge *** Bridge
Run src_bash{protonmail-setup-bridge} to automate this process. Start Proton Mail Bridge application, if needed configure to store
using =SecretService= and log in. Application will auto-start with
Run bridge in CLI mode to login, wait for initial sync and get app password plasma session.
#+begin_src bash
nix run nixpkgs#protonmail-bridge -- -c
# Follow prompts to login and get password
#+end_src
Restart using ~swaymsg~:
#+begin_src bash
nix shell nixpkgs#protonmail-bridge -c swaymsg exec "protonmail-bridge -n"
#+end_src
**** uidvalidity issue
+Remove uid lines from .mbsyncrc (in each mail directory) and delete .uidvalidity, re-run mbsync to fix+
Above might be duplicating mail, faster to just delete local maildirs and let them re-sync.
*** Password *** Password
Get password from ~protonmail-bridge~, save to ~password-store~: Get password from ~protonmail-bridge~, save to ~password-store~:
#+begin_src bash #+begin_src bash
@ -81,3 +66,7 @@ On first run (or if token expires), stop systemd service and run manually to com
# Restart again so that service picks up available ports # Restart again so that service picks up available ports
systemctl --user restart davmail.service systemctl --user restart davmail.service
#+end_src #+end_src
* Flathub setup
#+begin_src bash
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
#+end_src

25
default.nix Normal file
View file

@ -0,0 +1,25 @@
{
config,
lib,
...
}: {
imports = [
# Programs
./programs/desktop/default.nix
./programs/shell/default.nix
./programs/emacs/default.nix
./programs/browser/default.nix
# Services
./services/email/work.nix # TODO combine again at some point
./services/password-store/default.nix
# Additional Scripts
./scripts/default.nix
];
programs.home-manager.enable = true;
nixpkgs.config.allowUnfree = true;
home = {
username = lib.mkDefault "pixelifytica";
homeDirectory = "/home/${config.home.username}";
stateVersion = "23.05";
};
}

View file

@ -41,16 +41,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1715381426, "lastModified": 1718530513,
"narHash": "sha256-wPuqrAQGdv3ISs74nJfGb+Yprm23U/rFpcHFFNWgM94=", "narHash": "sha256-BmO8d0r+BVlwWtMLQEYnwmngqdXIuyFzMwvmTcLMee8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "ab5542e9dbd13d0100f8baae2bc2d68af901f4b4", "rev": "a1fddf0967c33754271761d91a3d921772b30d0e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-23.11", "ref": "release-24.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@ -60,11 +60,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1710589819, "lastModified": 1717786575,
"narHash": "sha256-fm69qycthevGExpbudpuCCSEBPuCOk/+d15382c37oE=", "narHash": "sha256-IyfMwVf4gR8BAhs6pnzZbtGESrG3lV59t25qIq30r8Q=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "6e305fa1d05a97343d47f0b6865e10a870fc8d4e", "rev": "8848d889ab9089dff04a3ffc80d2cc8a61d545c4",
"revCount": 10, "revCount": 12,
"type": "git", "type": "git",
"url": "https://git.xenia.me.uk/pixelifytica/iosevka.git" "url": "https://git.xenia.me.uk/pixelifytica/iosevka.git"
}, },
@ -75,11 +75,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1710451336, "lastModified": 1717602782,
"narHash": "sha256-pP86Pcfu3BrAvRO7R64x7hs+GaQrjFes+mEPowCfkxY=", "narHash": "sha256-pL9jeus5QpX5R+9rsp3hhZ+uplVHscNJh8n8VpqscM0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d691274a972b3165335d261cc4671335f5c67de9", "rev": "e8057b67ebf307f01bdcc8fba94d94f75039d1f6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -91,37 +91,61 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1716361217, "lastModified": 1718835956,
"narHash": "sha256-mzZDr00WUiUXVm1ujBVv6A0qRd8okaITyUp4ezYRgc4=", "narHash": "sha256-wM9v2yIxClRYsGHut5vHICZTK7xdrUGfrLkXvSuv6s4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "46397778ef1f73414b03ed553a3368f0e7e33c2f", "rev": "dd457de7e08c6d06789b1f5b88fc9327f4d96309",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-23.11", "ref": "nixos-24.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"plasma-manager": {
"inputs": {
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1719302143,
"narHash": "sha256-PMtSsKvbgfoI5+rb7UBIBfIwQ4Zvjt1iChWwQL+BkGo=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "a3b881f62eb3aabb97e4fc68041ef34e8029e186",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "plasma-manager",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"base16": "base16", "base16": "base16",
"home-manager": "home-manager", "home-manager": "home-manager",
"iosevka-custom": "iosevka-custom", "iosevka-custom": "iosevka-custom",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"plasma-manager": "plasma-manager",
"tt-schemes": "tt-schemes" "tt-schemes": "tt-schemes"
} }
}, },
"tt-schemes": { "tt-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1713388094, "lastModified": 1718992165,
"narHash": "sha256-wcotm0Ek2ISn8iJBzEujJQdcPLKWrPAOZ/dS/DLKafw=", "narHash": "sha256-9i9IjZcjvinb/214x5YShUDBZBC2189HYs26uGy/Hck=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "abcf2a055ae69f1bf047463332f83db3125aa8a5", "rev": "ef9a4c3c384624694608adebf0993d7a3bed3cf2",
"type": "github" "type": "github"
}, },
"original": { "original": {

150
flake.nix
View file

@ -7,11 +7,18 @@
}; };
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-23.11"; url = "github:nix-community/home-manager/release-24.05";
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";
};
};
iosevka-custom.url = "git+https://git.xenia.me.uk/pixelifytica/iosevka.git"; iosevka-custom.url = "git+https://git.xenia.me.uk/pixelifytica/iosevka.git";
base16.url = "github:SenchoPens/base16.nix"; base16.url = "github:SenchoPens/base16.nix";
tt-schemes = { tt-schemes = {
@ -24,19 +31,19 @@
self, self,
nixpkgs, nixpkgs,
home-manager, home-manager,
plasma-manager,
iosevka-custom, iosevka-custom,
base16, base16,
tt-schemes, tt-schemes,
... ...
}: let }: let
defaultExtraSpecialArgs = { defaultExtraSpecialArgs = {
system ? "x86_64-linux", hostname,
hostname ? "Atlas", system,
...
}: rec { }: rec {
inherit hostname; inherit hostname;
accentColour = "base07"; # catppuccin lavender inherit (plasma-manager.packages.${system}) rc2nix;
catppuccinVariant = "Mocha"; accentColourName = "base0C";
iosevkaCustom = { iosevkaCustom = {
packages = iosevka-custom.outputs.packages.${system}; packages = iosevka-custom.outputs.packages.${system};
names = iosevka-custom.outputs.names; names = iosevka-custom.outputs.names;
@ -59,17 +66,11 @@
}; };
}; };
}; };
defaultModules = { defaultModules = [
username ? "pixelifytica", plasma-manager.homeManagerModules.plasma-manager
hostname ? "Atlas",
...
}: [
base16.homeManagerModule base16.homeManagerModule
./home/${hostname}.nix {scheme = "${tt-schemes}/base16/one-light.yaml";}
({...}: { ./default.nix
home = {inherit username;};
scheme = "${tt-schemes}/base16/catppuccin-mocha.yaml";
})
]; ];
in { in {
packages.x86_64-linux = {inherit (home-manager.packages.x86_64-linux) default;}; packages.x86_64-linux = {inherit (home-manager.packages.x86_64-linux) default;};
@ -81,79 +82,68 @@
pkgs = import nixpkgs {system = "x86_64-linux";}; pkgs = import nixpkgs {system = "x86_64-linux";};
in in
pkgs.mkShellNoCC { pkgs.mkShellNoCC {
packages = [pkgs.nil]; packages = with pkgs; [nil pre-commit];
shellHook = "pre-commit install --install-hooks";
}; };
homeConfigurations = { homeConfigurations = {
# Fallback entry
pixelifytica = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {system = "x86_64-linux";};
modules = defaultModules {
username = "pixelifytica";
hostname = "Atlas";
};
extraSpecialArgs = defaultExtraSpecialArgs {
system = "x86_64-linux";
hostname = "Atlas";
};
};
# Server # Server
"pixelifytica@Legion" = home-manager.lib.homeManagerConfiguration { "pixelifytica@Legion" = let
pkgs = import nixpkgs {system = "x86_64-linux";}; hostname = "Legion";
modules = defaultModules { system = "x86_64-linux";
username = "pixelifytica"; in
hostname = "Legion"; home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {inherit system;};
modules = defaultModules;
extraSpecialArgs = defaultExtraSpecialArgs {inherit hostname system;};
}; };
extraSpecialArgs = defaultExtraSpecialArgs {
system = "x86_64-linux";
hostname = "Legion";
};
};
# Personal # Personal
"pixelifytica@Northstar" = home-manager.lib.homeManagerConfiguration { "pixelifytica@Northstar" = let
pkgs = import nixpkgs {system = "x86_64-linux";}; hostname = "Northstar";
modules = defaultModules { system = "x86_64-linux";
username = "pixelifytica"; in
hostname = "Northstar"; home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {inherit system;};
modules =
defaultModules
++ [
./personal.nix
{programs.plasma.configFile.kcminputrc."Libinput/1739/52759/SYNA32AA:00 06CB:CE17 Touchpad".NaturalScroll = true;}
];
extraSpecialArgs = defaultExtraSpecialArgs {inherit hostname system;};
}; };
extraSpecialArgs = defaultExtraSpecialArgs { "pixelifytica@Vanguard" = let
system = "x86_64-linux"; hostname = "Vanguard";
hostname = "Northstar"; system = "x86_64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {inherit system;};
modules = defaultModules ++ [./personal.nix];
extraSpecialArgs = defaultExtraSpecialArgs {inherit hostname system;};
}; };
};
"pixelifytica@Vanguard" = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {system = "x86_64-linux";};
modules = defaultModules {
username = "pixelifytica";
hostname = "Vanguard";
};
extraSpecialArgs = defaultExtraSpecialArgs {
system = "x86_64-linux";
hostname = "Vanguard";
};
};
# Work # Work
"elitherl@Tone" = home-manager.lib.homeManagerConfiguration { "elitherl@Tone" = let
pkgs = import nixpkgs {system = "x86_64-linux";}; hostname = "Tone";
modules = defaultModules { system = "x86_64-linux";
username = "elitherl"; in
hostname = "Tone"; home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {inherit system;};
modules =
defaultModules
++ [
./work.nix
{programs.plasma.configFile.kcminputrc."Libinput/1160/4132/DELL0A21:00 0488:1024 Touchpad".NaturalScroll = true;}
];
extraSpecialArgs = defaultExtraSpecialArgs {inherit hostname system;};
}; };
extraSpecialArgs = defaultExtraSpecialArgs { "elitherl@Scorch" = let
system = "x86_64-linux"; hostname = "Scorch";
hostname = "Tone"; system = "x86_64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {inherit system;};
modules = defaultModules ++ [./work.nix];
extraSpecialArgs = defaultExtraSpecialArgs {inherit hostname system;};
}; };
};
"elitherl@Scorch" = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {system = "x86_64-linux";};
modules = defaultModules {
username = "elitherl";
hostname = "Scorch";
};
extraSpecialArgs = defaultExtraSpecialArgs {
system = "x86_64-linux";
hostname = "Scorch";
};
};
}; };
}; };
} }

View file

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

View file

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

View file

@ -1,8 +0,0 @@
{...}: {
imports = [./default.nix];
wayland.windowManager.sway.config.output = {
"eDP-1" = {
scale = "1.25";
};
};
}

View file

@ -1,9 +0,0 @@
{...}: {
imports = [./work.nix];
wayland.windowManager.sway.config.output = {
"Dell Inc. DELL P3223QE CCG8YN3" = {
pos = "0 0";
scale = "1.5";
};
};
}

View file

@ -1,35 +0,0 @@
{...}: {
imports = [./work.nix];
wayland.windowManager.sway.config.output = {
"eDP-1".scale = "1.25";
"Dell Inc. DELL P3223QE CCG8YN3".scale = "1.5";
};
services.kanshi = {
enable = true;
systemdTarget = "sway-session.target";
profiles = {
undocked = {
outputs = [
{
criteria = "eDP-1";
status = "enable";
scale = 1.25;
}
];
};
docked = {
outputs = [
{
criteria = "Dell Inc. DELL P3223QE CCG8YN3";
status = "enable";
scale = 1.5;
}
{
criteria = "eDP-1";
status = "disable";
}
];
};
};
};
}

View file

@ -1,37 +0,0 @@
{pkgs, ...}: {
imports = [
./default.nix
../programs/games/default.nix
];
home.packages = with pkgs; [
blender
freecad
prusa-slicer
];
wayland.windowManager.sway.config = {
startup = [
{command = "${pkgs.xorg.xrandr}/bin/xrandr --output DP-2 --primary";}
];
output = {
"Acer Technologies ED270R TJMEE0043W01" = {
mode = "1920x1080@165Hz";
pos = "1080 420";
adaptive_sync = "off";
};
"Ancor Communications Inc VS278 FALMQS032358" = {
pos = "0 0";
transform = "270";
};
};
workspaceOutputAssign = [
{
output = "HDMI-A-1";
workspace = "1";
}
];
};
programs.waybar.settings = {
main.output = ["DP-2"];
alt.output = ["HDMI-A-1"];
};
}

View file

@ -1,115 +0,0 @@
{
config,
lib,
pkgs,
...
}: {
imports = [
# Programs
../programs/sway/default.nix
../programs/shell/default.nix
../programs/emacs/default.nix
../programs/nyxt/default.nix
../programs/firefox/default.nix
../programs/cava/default.nix
../programs/obs/default.nix
../programs/python/default.nix
../programs/lua/default.nix
# Services
../services/email/work.nix # TODO combine again at some point
../services/password-store/default.nix
# Additional Scripts
../scripts/default.nix
];
programs.home-manager.enable = true;
nixpkgs.config.allowUnfree = true;
services = {
gpg-agent.pinentryFlavor = "gtk2";
avizo.enable = true;
syncthing.enable = true;
udiskie = {
enable = true;
notify = true;
automount = true;
tray = "never";
};
};
gtk = with lib.strings; let
accent = "Lavender";
variant = "Mocha";
in {
enable = true;
iconTheme = {
package = pkgs.catppuccin-papirus-folders.override {
accent = toLower accent;
flavor = toLower variant;
};
name = "Papirus-Dark";
};
cursorTheme = {
package = pkgs.catppuccin-cursors."${toLower variant}Dark";
name = "Catppuccin-${variant}-Dark-Cursors";
size = 32;
};
theme = let
size = "Standard";
in {
package = pkgs.catppuccin-gtk.override {
accents = [(toLower accent)];
size = toLower size;
variant = toLower variant;
};
name = "Catppuccin-${variant}-${size}-${accent}-Dark";
};
};
xdg = {
userDirs = {
enable = true;
createDirectories = true;
extraConfig = {
XDG_PROJECTS_DIR = "${config.home.homeDirectory}/Projects";
};
};
};
xresources.properties = with config.scheme.withHashtag; {
"*background" = base00;
"*foreground" = base05;
"*color0" = base00;
"*color1" = red;
"*color2" = green;
"*color3" = yellow;
"*color4" = blue;
"*color5" = magenta;
"*color6" = cyan;
"*color7" = base04;
"*color8" = base01;
"*color9" = red;
"*color10" = green;
"*color11" = yellow;
"*color12" = blue;
"*color13" = magenta;
"*color14" = cyan;
"*color15" = base05;
};
home = {
homeDirectory = "/home/${config.home.username}";
packages = with pkgs; [
gnumake
git-sync
pinentry
fd
ripgrep
ffmpeg
mpv
evince
libreoffice-fresh
inkscape
webcord
signal-desktop
whatsapp-for-linux
teams-for-linux
nomachine-client
];
stateVersion = "23.05";
};
}

View file

@ -1,19 +0,0 @@
{
config,
lib,
pkgs,
...
}: {
imports = [./default.nix];
home.packages = [
(pkgs.writeShellScriptBin "ukaea-vpn-connect" "sudo ${pkgs.openfortivpn}/bin/openfortivpn -c ${./ukaea-vpn.conf}")
];
programs = {
git.userEmail = config.accounts.email.accounts.outlook.address;
firefox.policies.Homepage.URL = "https://nucleus.ukaea.uk";
};
accounts.email.accounts = {
proton.primary = lib.mkForce false;
outlook.primary = lib.mkForce true;
};
}

18
personal.nix Normal file
View file

@ -0,0 +1,18 @@
{pkgs, ...}: {
imports = [
# Programs
./programs/games/default.nix
./programs/streaming/default.nix
];
home = {
username = "pixelifytica";
packages = with pkgs;
with kdePackages; [
blender
freecad
prusa-slicer
ktorrent
noson
];
};
}

View file

@ -0,0 +1,203 @@
[
{ "name": "Mastodon", "url": "https://tech.lgbt", "tags": ["Social"] },
{
"name": "ABRP",
"url": "https://abetterrouteplanner.com/",
"tags": ["Travel"]
},
{
"name": "Forgejo",
"url": "https://git.xenia.me.uk",
"tags": ["Software", "Git", "Personal"]
},
{
"name": "GitHub",
"url": "https://github.com",
"tags": ["Software", "Git"]
},
{
"name": "CCFE GitLab",
"url": "https://git.ccfe.ac.uk",
"tags": ["Software", "Git", "Work"]
},
{
"name": "NixOS Manual",
"url": "https://nixos.org/manual/nixpkgs/stable/",
"tags": ["Software", "Documentation", "Ni"]
},
{
"name": "NixOS and Flakes",
"url": "https://nixos-and-flakes.thiscute.world/",
"tags": ["Software", "Documentation", "Nix"]
},
{
"name": "Home Manager",
"url": "https://nix-community.github.io/home-manager/options.xhtml",
"tags": ["Software", "Documentation", "Nix"]
},
{
"name": "KDE Plasma Desktop Scripting",
"url": "https://develop.kde.org/docs/plasma/scripting/",
"tags": ["Software", "Documentation", "KDE", "Plasma"]
},
{
"name": "Awesome Emacs",
"url": "https://github.com/emacs-tw/awesome-emacs",
"tags": ["Software", "Repositories"]
},
{
"name": "Awesome Wayland",
"url": "https://github.com/natpen/awesome-wayland",
"tags": ["Software", "Repositories"]
},
{
"name": "NixOS Wiki",
"url": "https://nixos.wiki",
"tags": ["Wiki"]
},
{
"name": "Arch Wiki",
"url": "https://wiki.archlinux.org",
"tags": ["Wiki"]
},
{
"name": "Homepage",
"url": "https://wiki.jetdata.eu/open/index.php?title=Main_Page",
"tags": ["Wiki", "OpenWiki"]
},
{
"name": "Diagnostic Coordinator",
"url": "https://wiki.jetdata.eu/open/index.php?title=Diagnostic_Coordinator_Wiki",
"tags": ["Wiki", "OpenWiki"]
},
{
"name": "Spectroscopy Group",
"url": "https://wiki.jetdata.eu/open/index.php?title=Spectroscopy_Group:index",
"tags": ["Wiki", "OpenWiki"]
},
{
"name": "KS5 Wiki",
"url": "https://wiki.jetdata.eu/open/index.php?title=CXS:Topic3",
"tags": ["Wiki", "OpenWiki"]
},
{
"name": "KT3 Journals",
"url": "https://wiki.jetdata.eu/open/index.php?title=KT3_Journals",
"tags": ["Wiki", "OpenWiki"]
},
{
"name": "Nucleus",
"url": "https://nucleus.ukaea.uk/",
"tags": ["Work"]
},
{
"name": "Marval",
"url": "https://marval.service.ukaea.uk/MSMSelfService/Index.aspx",
"tags": ["Work"]
},
{
"name": "U4BW",
"url": "https://ubw.unit4cloud.com/uk_aea_prod_web/Login/Login.aspx",
"tags": ["Work"]
},
{
"name": "UKAEA Pinboard",
"url": "https://pinboard.ukaea.uk/",
"tags": ["Work"]
},
{
"name": "OPEN-ADAS",
"url": "https://open.adas.ac.uk/",
"tags": ["Work"]
},
{
"name": "Homepage",
"url": "http://w3.jet.uk",
"tags": ["Work", "JET"]
},
{
"name": "Physics Summary",
"url": "https://users.euro-fusion.org/pages/physics-summary/LatestSession.php",
"tags": ["Work", "JET"]
},
{
"name": "JSPO Reports",
"url": "https://www.jspo.jet.uk/pages/operations/jpecreports_2023.html",
"tags": ["Work", "JET"]
},
{
"name": "DVCM Homepage",
"url": "https://dvcm.jetdata.eu/",
"tags": ["Work", "JET"]
},
{
"name": "JET Data Services",
"url": "https://data.jet.uk",
"tags": ["Work", "JET", "Data"]
},
{
"name": "PPF Query",
"url": "https://data.jet.uk/ppf/browse/ppfquery",
"tags": ["Work", "JET", "Data"]
},
{
"name": "ReqCo",
"url": "https://data.jet.uk/reqco/myrequests",
"tags": ["Work", "JET", "Data"]
},
{
"name": "Countdown Mimic",
"url": "http://webmimic.jet.uk/mc/codas/countdown",
"tags": ["Work", "JET", "Mimic"]
},
{
"name": "KS5 Mimic",
"url": "http://webmimic.jet.uk/DG/codas/ks5.mim.html",
"tags": ["Work", "JET", "Mimic"]
},
{
"name": "KT3 Mimic",
"url": "http://webmimic.jet.uk/DG/codas/kt3spec.mim.html",
"tags": ["Work", "JET", "Mimic"]
},
{
"name": "Users Page",
"url": "https://users.mastu.ukaea.uk/home",
"tags": ["Work", "MAST-U"]
},
{
"name": "Diagnostic Handbook",
"url": "https://intranet.ccfe.ac.uk/mastu-handbook",
"tags": ["Work", "MAST-U"]
},
{
"name": "Data Access and Tools",
"url": "https://users.mastu.ukaea.uk/data-access-and-tools",
"tags": ["Work", "MAST-U"]
},
{
"name": "Outlook Calendar",
"url": "https://outlook.office.com/calendar/view/workweek",
"tags": ["Work", "Office"]
},
{
"name": "Teams",
"url": "https://teams.microsoft.com/v2",
"tags": ["Work", "Office"]
},
{
"name": "OneDrive",
"url": "https://ukaeauk-my.sharepoint.com/personal/evie_litherland-smith_ukaea_uk/",
"tags": ["Work", "Office"]
},
{
"name": "Sharepoint",
"url": "https://ukaeauk.sharepoint.com/",
"tags": ["Work", "Office"]
},
{
"name": "NHS App",
"url": "https://www.nhsapp.service.nhs.uk/login",
"tags": ["Personal", "NHS"]
}
]

View file

@ -2,7 +2,9 @@
((default-modes ((default-modes
(pushnew 'nyxt/mode/emacs:emacs-mode %slot-value%)) (pushnew 'nyxt/mode/emacs:emacs-mode %slot-value%))
(default-modes (default-modes
(pushnew 'nyxt/mode/blocker:blocker-mode %slot-value%)))) (pushnew 'nyxt/mode/blocker:blocker-mode %slot-value%))
(default-modes
(pushnew 'nyxt/mode/no-script:no-script-mode %slot-value%))))
(define-configuration status-buffer (define-configuration status-buffer
((glyph-mode-presentation-p t) ((glyph-mode-presentation-p t)
@ -10,10 +12,12 @@
(define-configuration :emacs-mode ((glyph "ε"))) (define-configuration :emacs-mode ((glyph "ε")))
(define-configuration :force-https-mode ((glyph "ϕ"))) (define-configuration :force-https-mode ((glyph "ϕ")))
(define-configuration :no-script-mode ((glyph "j")))
(define-configuration :user-script-mode ((glyph "u"))) (define-configuration :user-script-mode ((glyph "u")))
(define-configuration :blocker-mode ((glyph "β"))) (define-configuration :blocker-mode ((glyph "β")))
(define-configuration :proxy-mode ((glyph "π"))) (define-configuration :proxy-mode ((glyph "π")))
(define-configuration :reduce-tracking-mode ((glyph "τ"))) (define-configuration :reduce-tracking-mode ((glyph "τ")))
(define-configuration :reduce-bandwidth-mode ((glyph "r")))
(define-configuration :certificate-exception-mode ((glyph "χ"))) (define-configuration :certificate-exception-mode ((glyph "χ")))
(define-configuration :style-mode ((glyph "ϕ"))) (define-configuration :style-mode ((glyph "ϕ")))
(define-configuration :cruise-control-mode ((glyph "σ"))) (define-configuration :cruise-control-mode ((glyph "σ")))
@ -50,7 +54,7 @@
'("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/")
'("wiki" "https://en.wikipedia.org/w/index.php?search=~a" "https://en.wikipedia.org/") '("wiki" "https://en.wikipedia.org/w/index.php?search=~a" "https://en.wikipedia.org/")
'("ddg" "https://duckduckgo.com/?q=~a" "https://duckduckgo.com/")) '("ddg" "https://html.duckduckgo.com/html/?q=~a" "https://html.duckduckgo.com/"))
"List of search engines.") "List of search engines.")
(define-configuration context-buffer (define-configuration context-buffer
@ -62,4 +66,4 @@
(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:dark") (setf (uiop/os:getenv "GTK_THEME") "Adwaita:light")

View file

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

View file

@ -1,8 +1,4 @@
{ {pkgs, ...}: {
lib,
pkgs,
...
}: {
programs = { programs = {
browserpass = { browserpass = {
enable = true; enable = true;
@ -28,7 +24,7 @@
DisableSetDesktopBackground = true; DisableSetDesktopBackground = true;
DisableSystemAddonUpdate = true; DisableSystemAddonUpdate = true;
DisableTelemetry = true; DisableTelemetry = true;
DisplayBookmarksToolbar = "newtab"; DisplayBookmarksToolbar = "never";
DisplayMenuBar = "default-off"; DisplayMenuBar = "default-off";
DontCheckDefaultBrowser = true; DontCheckDefaultBrowser = true;
EnableTrackingProtection = { EnableTrackingProtection = {
@ -54,10 +50,6 @@
installation_mode = "force_installed"; installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/simplelogin/latest.xpi"; install_url = "https://addons.mozilla.org/firefox/downloads/latest/simplelogin/latest.xpi";
}; };
"{8446b178-c865-4f5c-8ccc-1d7887811ae3}" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-mocha-lavender-git/latest.xpi";
};
}; };
FirefoxHome = { FirefoxHome = {
Search = true; Search = true;
@ -98,6 +90,7 @@
StartDownloadsInTempDirectory = true; StartDownloadsInTempDirectory = true;
}; };
profiles.default = { profiles.default = {
bookmarks = builtins.fromJSON (builtins.readFile ./bookmarks.json);
settings = { settings = {
"app.shield.optoutstudies.enabled" = false; "app.shield.optoutstudies.enabled" = false;
"browser.bookmarks.addedImportButton" = false; "browser.bookmarks.addedImportButton" = false;
@ -109,7 +102,7 @@
"browser.warnOnQuitShortcut" = false; "browser.warnOnQuitShortcut" = false;
"distribution.searchplugins.defaultLocale" = "en-GB"; "distribution.searchplugins.defaultLocale" = "en-GB";
"doh-rollout.home-region" = "GB"; "doh-rollout.home-region" = "GB";
"extensions.activeThemeID" = "{c6698fd1-fe9b-4eae-95d5-fe1703820469}"; "extensions.activeThemeID" = "default-theme@mozilla.org";
"extensions.formautofill.creditCards.enabled" = false; "extensions.formautofill.creditCards.enabled" = false;
"general.useragent.locale" = "en-GB"; "general.useragent.locale" = "en-GB";
"intl.accept_languages" = "en-gb,en"; "intl.accept_languages" = "en-gb,en";
@ -122,7 +115,7 @@
"browser.newtabpage.pinned" = [ "browser.newtabpage.pinned" = [
{ {
title = "NixOS Wiki"; title = "NixOS Wiki";
url = "https://nixos.wiki"; url = "https://wiki.nixos.org";
} }
{ {
title = "Arch Wiki"; title = "Arch Wiki";
@ -130,13 +123,6 @@
} }
]; ];
}; };
bookmarks = [
{
name = "toplevel";
toolbar = true;
bookmarks = import ./bookmarks/default.nix lib;
}
];
search = rec { search = rec {
default = "DuckDuckGo"; default = "DuckDuckGo";
privateDefault = default; privateDefault = default;

65
programs/browser/nyxt.nix Normal file
View file

@ -0,0 +1,65 @@
{
config,
pkgs,
fonts,
accentColourName,
...
}: {
home.packages = [pkgs.nyxt];
xdg = {
configFile = {
"nyxt/config.lisp".text = let
sc = config.scheme.withHashtag;
in ''
;; Import custom configuration
(nyxt::load-lisp "${./config.lisp}")
;; Define custom theme
(define-configuration browser
((theme (make-instance 'theme:theme
:dark-p t
:font-family "${fonts.sansSerif.name}"
:monospace-font-family "${fonts.monospace.name}"
:background-color "${sc.base00}"
:on-background-color "${sc.base05}"
:primary-color "${sc.base02}"
:on-primary-color "${sc.base05}"
:secondary-color "${sc.base03}"
:on-secondary-color "${sc.base05}"
:accent-color "${sc.${accentColourName}}"
:on-accent-color "${sc.base01}"
:action-color "${sc.cyan}"
:on-action-color "${sc.base01}"
:success-color "${sc.green}"
:on-success-color "${sc.base01}"
:highlight-color "${sc.magenta}"
:on-highlight-color "${sc.base01}"
:warning-color "${sc.yellow}"
:on-warning-color "${sc.base01}"
:codeblock-color "${sc.base02}"
:on-codeblock-color "${sc.base05}"))))
'';
};
dataFile."nyxt/bookmarks.lisp".text = let
# Make a string of lisp-style list of strings, from nix-style
# list
convertTags = tags: "(" + (builtins.foldl' (x: y: x + " \"" + y + "\"") "" tags) + " )";
# Take bookmarks as returned from JSON file and convert to NYXT
# expected format
convertBookmark = {
name,
tags,
url,
}: "(:url \"${url}\" :title \"${name}\" :tags ${convertTags tags})\n";
in (
# Fold all entries in bookmarks.json into single string of NYXT
# format bookmarks, each entry on a new line and with 2 space
# indentation, just for visual clarity if reading the outputted
# file
"(\n"
+ (builtins.foldl'
(x: y: x + " " + convertBookmark y) ""
(builtins.fromJSON (builtins.readFile ./bookmarks.json)))
+ ")"
);
};
}

View file

@ -1,17 +0,0 @@
{config, ...}: {
programs.cava = {
enable = true;
settings = {
color = with config.scheme.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

@ -0,0 +1,71 @@
{
config,
fonts,
...
}: {
programs.alacritty = {
enable = true;
settings = {
font = {
size = fonts.sizes.applications;
normal = {
family = fonts.monospace.name;
style = "Regular";
};
};
window = {
dynamic_title = true;
padding = {
x = 10;
y = 10;
};
# decorations = "none";
# opacity = 0.9;
};
live_config_reload = true;
selection.save_to_clipboard = true;
mouse.hide_when_typing = true;
colors = let
mapColours = isBright: (builtins.listToAttrs (builtins.map (col: {
# Alacritty uses Yellow instead of Orange for BASE09
name =
if col == "orange"
then "yellow"
else col;
value = "0x${config
.scheme
.${
if isBright
then "bright-${col}"
else col
}}";
})
["red" "orange" "green" "cyan" "blue" "magenta"]));
mapNamedColours = mapColours false;
mapNamedBrightColours = mapColours true;
in {
draw_bold_text_with_bright_colors = false;
primary = with config.scheme; {
background = "0x${base00}";
foreground = "0x${base05}";
};
cursor = with config.scheme; {
cursor = "0x${base05}";
text = "0x${base00}";
};
normal = with config.scheme;
{
black = "0x${base00-hex}";
white = "0x${base05-hex}";
}
// mapNamedColours;
bright = with config.scheme;
{
black = "0x${base03-hex}";
white = "0x${base07-hex}";
}
// mapNamedBrightColours;
};
};
};
}

View file

@ -0,0 +1,19 @@
{
config,
accentColourName,
...
}: {
services.avizo = {
enable = true;
settings.default = let
sc = config.scheme;
rgba = colourName: "${sc."${colourName}-rgb-r"}, ${sc."${colourName}-rgb-g"}, ${sc."${colourName}-rgb-b"}";
in {
background = "rgba(${rgba "base00"}, 0.9)";
bar-bg-color = "rgba(${rgba "base00"}, 0.9)";
bar-fg-color = "rgba(${rgba "base05"}, 1.0)";
border-color = "rgba(${rgba accentColourName}, 1.0)";
image-opacity = "1.0";
};
};
}

View file

@ -0,0 +1,35 @@
{
config,
pkgs,
...
}: {
imports = [
./plasma6/default.nix
./alacritty/default.nix
];
home.packages = with pkgs; [
libreoffice-fresh
inkscape
webcord
kdePackages.krdc
];
services.syncthing.enable = true;
programs.mpv.enable = true;
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";
};
};
};
}

View file

@ -8,20 +8,19 @@
server.enable = true; server.enable = true;
settings = { settings = {
main = { main = {
# term = "xterm-256color"; term = "xterm-256color";
title = "foot"; locked-title = false;
locked-title = "no";
font = "${fonts.monospace.name}:size=${toString fonts.sizes.applications}"; font = "${fonts.monospace.name}:size=${toString fonts.sizes.applications}";
dpi-aware = "yes"; dpi-aware = false;
pad = "10x10"; pad = "10x10";
}; };
bell = { bell = {
urgent = "no"; urgent = false;
notify = "no"; notify = false;
visual = "no"; visual = false;
}; };
cursor = {blink = "yes";}; cursor = {blink = true;};
mouse = {hide-when-typing = "yes";}; mouse = {hide-when-typing = true;};
colors = with config.scheme; rec { colors = with config.scheme; rec {
alpha = 0.9; alpha = 0.9;
background = base00; background = base00;
@ -34,14 +33,14 @@
regular5 = magenta; regular5 = magenta;
regular6 = cyan; regular6 = cyan;
regular7 = base05; regular7 = base05;
bright0 = base03; bright0 = base04;
bright1 = regular1; bright1 = regular1;
bright2 = regular2; bright2 = regular2;
bright3 = regular3; bright3 = regular3;
bright4 = regular4; bright4 = regular4;
bright5 = regular5; bright5 = regular5;
bright6 = regular6; bright6 = regular6;
bright7 = base04; bright7 = base05;
}; };
}; };
}; };

View file

@ -1,9 +1,8 @@
{ {
config, config,
lib,
pkgs, pkgs,
fonts, fonts,
accentColour ? "base07", accentColourName,
... ...
}: { }: {
programs.fuzzel = { programs.fuzzel = {
@ -11,29 +10,32 @@
settings = { settings = {
main = { main = {
dpi-aware = false; dpi-aware = false;
font = "${fonts.monospace.name}:size=${toString fonts.sizes.applications}"; font = "${fonts.monospace.name}:size=${toString fonts.sizes.popups}";
icon-theme = config.gtk.iconTheme.name; icon-theme = config.gtk.iconTheme.name;
icons-enabled = true; icons-enabled = true;
fields = "filename,name,generic,categories"; fields = "filename,name,generic,categories";
fuzzy = true; fuzzy = true;
filter-desktop = true;
terminal = with config.programs; "${ terminal = with config.programs; "${
if alacritty.enable if alacritty.enable
then alacritty.package then alacritty.package
else pkgs.alacritty else pkgs.alacritty
}/bin/alacritty -e"; }/bin/alacritty -e";
lines = 40; lines = 24;
width = 80; width = 80;
tabs = 4; tabs = 4;
layer = "overlay"; layer = "overlay";
}; };
colors = with config.scheme; { colors = let
background = "${base00}5A"; # 90% opacity sc = config.scheme;
text = "${base05}FF"; in {
match = "${red}FF"; background = "${sc.base00}cc"; # 80% Opacity
selection = "${base01}FF"; text = "${sc.base05}ff";
selection-text = "${base05}FF"; match = "${sc.red}ff";
selection-match = "${red}FF"; selection = "${sc.base01}ff";
border = "${config.scheme.${accentColour}}FF"; selection-text = "${sc.base05}ff";
selection-match = "${sc.red}ff";
border = "${sc.${accentColourName}}ff";
}; };
border = { border = {
width = 1; width = 1;

View file

@ -0,0 +1,26 @@
{
config,
fonts,
accentColourName,
...
}: {
services.mako = let
sc = config.scheme.withHashtag;
in {
enable = true;
anchor = "top-right";
font = "${fonts.monospace.name} ${toString fonts.sizes.popups}";
layer = "top";
markup = true;
maxVisible = 10;
icons = true;
iconPath = with config.gtk.iconTheme; "${package}/share/icons/${name}";
textColor = "${sc.base05}ff";
progressColor = "over ${sc.red}ff";
backgroundColor = "${sc.base00}cc";
borderColor = "${sc.${accentColourName}}ff";
borderRadius = 10;
borderSize = 1;
defaultTimeout = 0;
};
}

View file

@ -0,0 +1,77 @@
let
emacs = ["emacsclient.desktop" "emacs.desktop"];
browser = ["firefox.desktop" "nyxt.desktop"];
in {
"inode/directory" = ["thunar.desktop"];
"inode/symlink" = ["thunar.desktop"];
"image/jpeg" = ["swayimg.desktop"];
"image/png" = ["swayimg.desktop"];
"video/mp4" = ["mpv.desktop"];
"text/plain" = emacs;
"text/richtext" = emacs;
"text/org" = emacs;
"text/markdown" = emacs;
"text/rust" = emacs;
"text/csv" = emacs;
"text/html" = emacs;
"text/css" = emacs;
"text/tab-separated-values" = emacs;
"text/x-emacs-lisp" = emacs;
"text/x-fortran" = emacs;
"text/x-idl" = emacs;
"text/x-log" = emacs;
"text/x-lua" = emacs;
"text/x-makefile" = emacs;
"text/x-cmake" = emacs;
"text/x-python" = emacs;
"text/x-python3" = emacs;
"text/x-readme" = emacs;
"text/x-scheme" = emacs;
"text/x-tex" = emacs;
"text/x-texinfo" = emacs;
"application/json" = emacs;
"application/toml" = emacs;
"application/yaml" = emacs;
"application/xml" = emacs;
"application/rss+xml" = emacs;
"application/xhtml+xml" = emacs;
"application/oxps" = emacs;
"application/x-shellscript" = emacs;
"application/x-docbook+xml" = emacs;
"application/x-yaml" = emacs;
"application/pdf" = ["evince.desktop"];
"application/epub+zip" = ["evince.desktop"];
"application/msword" = ["writer.desktop"];
"application/zip" = ["xarchiver.desktop"];
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
"application/x-extension-shtml" = browser;
"application/x-extension-xhtml" = browser;
"application/x-extension-xht" = browser;
"application/x-mozilla-bookmarks" = browser;
"application/x-zoom" = ["Zoom.desktop"] ++ browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
"x-scheme-handler/about" = browser;
"x-scheme-handler/chrome" = browser;
"x-scheme-handler/webcal" = browser;
"x-scheme-handler/geo" = ["openstreetmap-geo-handler.desktop"];
"x-scheme-handler/mailto" = ["emacsclient-mail.desktop"];
"x-scheme-handler/unknown" = emacs;
"x-scheme-handler/prusaslicer" = ["PrusaSlicerURLProtocol.desktop"];
"x-scheme-handler/ms-word" = ["writer.desktop"];
"x-scheme-handler/ms-powerpoint" = ["impress.desktop"];
"x-scheme-handler/ms-excel" = ["calc.desktop"];
"x-scheme-handler/msteams" = ["teams-for-linux.desktop"] ++ browser;
"x-scheme-handler/zoomus" = ["Zoom.desktop"] ++ browser;
"x-scheme-handler/zoommtg" = ["Zoom.desktop"] ++ browser;
}

View file

@ -0,0 +1,186 @@
input {
keyboard {
xkb {
layout "gb"
options "grp:win_space_toggle,compose:ralt,ctrl:nocaps"
}
}
touchpad {
tap
natural-scroll
}
warp-mouse-to-focus
}
layout {
gaps 16
center-focused-column "never"
preset-column-widths {
proportion 0.5
proportion 0.75
}
default-column-width { proportion 0.75; }
focus-ring {
off
width 1
active-color "#7fc8ff"
inactive-color "#505050"
}
border {
off
width 1
active-color "#ffc87f"
inactive-color "#505050"
}
struts {
left 64
right 64
}
}
cursor {
xcursor-theme "volantes_cursors"
xcursor-size 32
}
prefer-no-csd
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
spawn-at-startup "set-background"
binds {
Mod+Shift+Slash { show-hotkey-overlay; }
Super+Alt+L { spawn "swaylockfx"; }
Mod+F1 { spawn "swaylockfx"; }
Mod+P { spawn "wlogout"; }
Mod+D { spawn "fuzzel"; }
Mod+Return { spawn "alacritty"; }
Mod+Shift+Return { spawn "emacsclient" "-c"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "volumectl" "-u" "+" "5"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "volumectl" "-u" "-" "5"; }
XF86AudioMute allow-when-locked=true { spawn "volumectl" "%"; }
XF86AudioMicMute allow-when-locked=true { spawn "volumectl" "-m" "%"; }
XF86MonBrightnessUp allow-when-locked=true { spawn "lightctl" "+" "5"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "lightctl" "-" "5"; }
Mod+Q { close-window; }
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
Mod+Ctrl+Left { move-column-left; }
Mod+Ctrl+Down { move-window-down; }
Mod+Ctrl+Up { move-window-up; }
Mod+Ctrl+Right { move-column-right; }
Mod+Ctrl+H { move-column-left; }
Mod+Ctrl+J { move-window-down; }
Mod+Ctrl+K { move-window-up; }
Mod+Ctrl+L { move-column-right; }
Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
Mod+Ctrl+Home { move-column-to-first; }
Mod+Ctrl+End { move-column-to-last; }
Mod+Shift+Left { focus-monitor-left; }
Mod+Shift+Down { focus-monitor-down; }
Mod+Shift+Up { focus-monitor-up; }
Mod+Shift+Right { focus-monitor-right; }
Mod+Shift+H { focus-monitor-left; }
Mod+Shift+J { focus-monitor-down; }
Mod+Shift+K { focus-monitor-up; }
Mod+Shift+L { focus-monitor-right; }
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; }
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; }
Mod+Ctrl+I { move-column-to-workspace-up; }
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
Mod+Shift+U { move-workspace-down; }
Mod+Shift+I { move-workspace-up; }
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
Mod+Ctrl+WheelScrollRight { move-column-right; }
Mod+Ctrl+WheelScrollLeft { move-column-left; }
Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
Mod+1 { focus-workspace 1; }
Mod+2 { focus-workspace 2; }
Mod+3 { focus-workspace 3; }
Mod+4 { focus-workspace 4; }
Mod+5 { focus-workspace 5; }
Mod+6 { focus-workspace 6; }
Mod+7 { focus-workspace 7; }
Mod+8 { focus-workspace 8; }
Mod+9 { focus-workspace 9; }
Mod+Ctrl+1 { move-column-to-workspace 1; }
Mod+Ctrl+2 { move-column-to-workspace 2; }
Mod+Ctrl+3 { move-column-to-workspace 3; }
Mod+Ctrl+4 { move-column-to-workspace 4; }
Mod+Ctrl+5 { move-column-to-workspace 5; }
Mod+Ctrl+6 { move-column-to-workspace 6; }
Mod+Ctrl+7 { move-column-to-workspace 7; }
Mod+Ctrl+8 { move-column-to-workspace 8; }
Mod+Ctrl+9 { move-column-to-workspace 9; }
Mod+Comma { consume-window-into-column; }
Mod+Period { expel-window-from-column; }
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
Mod+R { switch-preset-column-width; }
Mod+Shift+R { reset-window-height; }
Mod+F { maximize-column; }
Mod+Shift+F { fullscreen-window; }
Mod+C { center-column; }
Mod+Minus { set-column-width "-10%"; }
Mod+Equal { set-column-width "+10%"; }
Mod+Shift+Minus { set-window-height "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; }
Print { screenshot; }
Ctrl+Print { screenshot-screen; }
Alt+Print { screenshot-window; }
Mod+Shift+E { quit; }
Mod+Shift+P { power-off-monitors; }
}

View file

@ -0,0 +1,4 @@
{pkgs, ...}: {
xdg.configFile."niri/config.kdl".source = ./config.kdl;
home.packages = with pkgs; [playerctl];
}

View file

@ -0,0 +1,217 @@
{
pkgs,
fonts,
rc2nix,
...
}: {
imports = [./konsole.nix];
home.packages = with pkgs; [
rc2nix
wl-clipboard
volantes-cursors
(papirus-icon-theme.override {color = "breeze";})
];
services.gpg-agent.pinentryPackage = pkgs.pinentry-qt;
programs.plasma = {
enable = true;
overrideConfig = true;
workspace = {
clickItemTo = "open";
lookAndFeel = "org.kde.breeze.desktop";
theme = "breeze-light";
colorScheme = "BreezeLight";
cursor = {
theme = "volantes_cursors";
size = 32;
};
iconTheme = "Papirus";
wallpaper = "${../wallpapers/landscapes/tropic_island_day.jpg}";
};
fonts = let
general = {
family = fonts.sansSerif.name;
pointSize = 12;
};
small = {
inherit (general) family;
pointSize = general.pointSize - 2;
};
fixedWidth = {
family = fonts.monospace.name;
pointSize = 12;
};
in {
inherit general small fixedWidth;
menu = general;
toolbar = general;
windowTitle = small;
};
hotkeys.commands = {
"launch-emacs" = {
name = "Launch Emacs Client Window";
key = "Meta+Alt+X";
command = "emacsclient -c";
};
};
panels = [
{
height = 32;
lengthMode = "fill";
location = "bottom";
alignment = "center";
hiding = "normalpanel";
floating = true;
widgets = [
{
name = "org.kde.plasma.kickoff";
config.General = {
icon = "nix-snowflake";
primaryActions = "0";
favoritesDisplay = "0";
applicationsDisplay = "1";
pin = "true";
showActionButtonCaptions = "true";
compactMode = "false";
};
}
{
name = "org.kde.plasma.icontasks";
config.General = {
maxStripes = "1";
showToolTips = "true";
launchers = [
"applications:systemsettings.desktop"
"applications:org.kde.konsole.desktop"
"preferred://filemanager"
"preferred://browser"
];
};
}
{
name = "org.kde.plasma.pager";
config.General = {
showWindowIcons = "true";
showOnlyCurrentScreen = "false";
wrapPage = "true";
};
}
"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";
};
}
];
}
];
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";
};
};
kwin = {
virtualDesktops = {
rows = 1;
number = 4;
};
effects = {
translucency.enable = true;
blur.enable = true;
cube.enable = true;
dimAdminMode.enable = true;
};
};
configFile = {
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
plasmanotifyrc.Notifications.NormalAlwaysOnTop = true;
kcminputrc.Keyboard.NumLock = 1;
krunnerrc.General.FreeFloating = true;
kscreenlockerrc = {
Daemon.Timeout = 15;
Greeter.WallpaperPlugin = "org.kde.potd";
};
klipperrc = {
General = {
SyncClipboards = true;
MaxClipItems = 5;
IgnoreImages = false;
KeepClipboardContents = false;
};
};
kdeglobals = {
General = {
TerminalApplication = "konsole";
TerminalService = "org.kde.konsole.desktop";
};
};
kwinrc = {
Plugins = {
frozenappEnabled = false;
mouseclickEnabled = true;
shakecursorEnabled = true;
};
Windows = {
FocusPolicy = "FocusFollowsMouse";
RollOverDesktops = true;
};
Tiling.padding = 10;
NightColor = {
Active = true;
Mode = "Location";
LatitudeFixed = "51.7";
LongitudeFixed = "-1.2";
};
"Effect-translucency" = {
Inactive = 100;
MoveResize = 80;
Dialogs = 80;
ComboboxPopups = 80;
Menus = 80;
};
};
};
};
}

View file

@ -0,0 +1,32 @@
{
pkgs,
fonts,
...
}: {
home.packages = [pkgs.kdePackages.yakuake];
programs.konsole = {
enable = true;
defaultProfile = "One-Light";
customColorSchemes.onelight = ./onelight.colorscheme;
profiles.onelight = {
name = "One-Light";
colorScheme = "onelight";
font = {
name = fonts.monospace.name;
size = fonts.sizes.terminal;
};
extraConfig = {
"Interaction Options" = {
"TextEditorCmd" = 6;
"TextEditorCmdCustom" = "emacsclient -c +LINE:COLUMN PATH";
"UnderlineFilesEnabled" = "true";
"OpenLinksByDirectClickEnabled" = "true";
};
"Terminal Features" = {
"BlinkingCursorEnabled" = "true";
"VerticalLine" = "false";
};
};
};
};
}

View file

@ -0,0 +1,100 @@
[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=0.9
Wallpaper=
WallpaperFlipType=NoFlip
WallpaperOpacity=1

View file

@ -2,7 +2,7 @@
config, config,
pkgs, pkgs,
fonts, fonts,
accentColour ? "base07", accentColourName,
... ...
}: { }: {
programs.rofi = { programs.rofi = {
@ -36,15 +36,15 @@
display-emoji = " 󰞅 Emoji "; display-emoji = " 󰞅 Emoji ";
display-combi = " 󰛡 Combi "; display-combi = " 󰛡 Combi ";
}; };
theme = with builtins; theme = with builtins; let
with config.scheme; let
inherit (config.lib.formats.rasi) mkLiteral; inherit (config.lib.formats.rasi) mkLiteral;
bg = mkLiteral "rgba (${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 80%)"; sc = config.scheme;
bg2 = mkLiteral "rgba (${base01-rgb-r}, ${base01-rgb-g}, ${base01-rgb-b}, 100%)"; bg = mkLiteral "rgba (${sc.base00-rgb-r}, ${sc.base00-rgb-g}, ${sc.base00-rgb-b}, 80%)";
fg = mkLiteral withHashtag.base05; bg2 = mkLiteral "rgba (${sc.base01-rgb-r}, ${sc.base01-rgb-g}, ${sc.base01-rgb-b}, 100%)";
fg2 = mkLiteral withHashtag.base04; fg = mkLiteral sc.withHashtag.base05;
border = mkLiteral withHashtag.${accentColour}; fg2 = mkLiteral sc.withHashtag.base04;
blue = mkLiteral withHashtag.blue; border = mkLiteral sc.withHashtag.${accentColour};
blue = mkLiteral sc.withHashtag.blue;
in { in {
"*" = { "*" = {
background-color = mkLiteral "transparent"; background-color = mkLiteral "transparent";

View file

@ -3,33 +3,11 @@
lib, lib,
pkgs, pkgs,
fonts, fonts,
accentColour ? "base07", accentColourName,
... ...
}: { }: {
imports = [ programs.waybar.systemd.target = lib.mkIf config.wayland.windowManager.sway.systemd.enable "sway-session.target";
./alacritty/default.nix services.kanshi.systemdTarget = lib.mkIf config.wayland.windowManager.sway.systemd.enable "sway-session.target";
./avizo/default.nix
./fuzzel/default.nix
./swaylock/default.nix
./swayidle/default.nix
./swaync/default.nix
./waybar/default.nix
./wlogout/default.nix
];
home.packages = with pkgs; [
swaybg
(writeShellScriptBin "protonmail-setup-bridge" ''
pkill -9 -f protonmail-bridge
${protonmail-bridge}/bin/protonmail-bridge -c
swaymsg exec "${protonmail-bridge}/bin/protonmail-bridge -n"
'')
(writeShellScriptBin "davmail-setup" ''
systemctl --user restart davmail # Ensure config file is present
systemctl --user stop davmail
${davmail}/bin/davmail -n ~/.davmail.properties
systemctl --user restart davmail
'')
];
wayland.windowManager.sway = { wayland.windowManager.sway = {
enable = true; enable = true;
package = package =
@ -38,6 +16,7 @@
swaynag.enable = true; swaynag.enable = true;
systemd.enable = true; systemd.enable = true;
xwayland = true; xwayland = true;
checkConfig = false;
config = { config = {
input = { input = {
"*" = { "*" = {
@ -68,63 +47,76 @@
style = "regular"; style = "regular";
size = fonts.sizes.desktop * 1.0; size = fonts.sizes.desktop * 1.0;
}; };
colors = with config.scheme.withHashtag; let colors = let
text = toString base05; sc = config.scheme.withHashtag;
indicator = toString cyan; text = toString sc.base05;
in rec { indicator = toString sc.${accentColourName};
background = toString base00; background = toString sc.base00;
focused = rec { in {
inherit background text indicator; inherit background;
border = toString config.scheme.withHashtag.${accentColour}; focused = let
border = toString sc.${accentColourName};
in {
inherit background text indicator border;
childBorder = border; childBorder = border;
}; };
focusedInactive = rec { focusedInactive = let
inherit background text indicator; border = toString sc.base04;
border = toString base04; in {
inherit background text indicator border;
childBorder = border; childBorder = border;
}; };
unfocused = rec { unfocused = let
inherit background text indicator; border = toString sc.base03;
border = toString base03; in {
inherit background text indicator border;
childBorder = border; childBorder = border;
}; };
urgent = rec { urgent = let
inherit background text indicator; border = toString sc.red;
border = toString red; in {
inherit background text indicator border;
childBorder = border; childBorder = border;
}; };
}; };
startup = [ startup = [
{command = "${pkgs.swaynotificationcenter}/bin/swaync";}
{command = "${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1";} {command = "${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1";}
{command = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n";} {command = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n";}
{command = "${pkgs.swaybg}/bin/swaybg -m fill -i ${../../wallpapers/default.jpg}";} {command = "set-background";}
]; ];
window = { window = {
border = 1; border = 1;
commands = titlebar = false;
(map (criteria: { commands = [
inherit criteria; {
command = "floating enable"; criteria.window_role = "(?:pop-up|bubble|dialog)";
}) [ command = "floating enable";
{app_id = "org.kde.polkit-kde-authentication-agent-1";} }
{app_id = "Pinentry";} {
{app_id = "pavucontrol";} criteria.app_id = "(?:org\.kde\.polkit-kde-authentication-agent-1|Pinentry|pavucontrol|\.blueman-manager-wrapped|nm-connection-editor)";
{app_id = "\.blueman-manager-wrapped";} command = "floating enable";
{app_id = "nm-connection-editor";} }
{app_id = "thunar";} {
{class = "[Mm]atplotlib";} criteria.class = "(?:[Mm]atplotlib|.*\.py|Idl)";
{class = ".*\.py";} command = "floating enable";
{class = "Idl";} }
]) {
++ (map (criteria: { # Catch-all for file dialog windows
inherit criteria; criteria.title = "(?:Open|Save) (?:File|Folder|As)";
command = "layout tabbed"; command = "floating enable, resize set width 1030 height 710";
}) [ }
{class = "Nxplayer\.bin";} {
{app_id = "Nxplayer\.bin";} # 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; floating.border = 1;
keybindings = with config; let keybindings = with config; let
@ -157,10 +149,10 @@
"XF86MonBrightnessDown" = "exec ${services.avizo.package}/bin/lightctl - 5"; "XF86MonBrightnessDown" = "exec ${services.avizo.package}/bin/lightctl - 5";
# System utilities # System utilities
"${modifier}+F1" = "exec swaylockfx"; "Mod4+Mod1+l" = "exec swaylockfx";
"${modifier}+p" = "exec ${programs.wlogout.package}/bin/wlogout"; "${modifier}+z" = "exec ${pkgs.mako}/bin/makoctl dismiss -a";
"${modifier}+z" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw"; "${modifier}+Shift+z" = "exec ${pkgs.mako}/bin/makoctl restore";
"${modifier}+Shift+z" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client -d -sw"; "${modifier}+Shift+p" = "exec ${programs.wlogout.package}/bin/wlogout";
"${modifier}+Shift+Return" = "exec ${programs.emacs.finalPackage}/bin/emacsclient -c"; "${modifier}+Shift+Return" = "exec ${programs.emacs.finalPackage}/bin/emacsclient -c";
}; };
}; };
@ -175,13 +167,13 @@
corner_radius 10 corner_radius 10
shadows disable shadows disable
shadow_blur_radius 0 shadow_blur_radius 0
layer_effects "system-menu" blur enable; blur_ignore_transparent enable; shadows disable layer_effects "system-menu" blur enable; shadows disable
layer_effects "gtk-layer-shell" blur enable; blur_ignore_transparent enable; shadows disable layer_effects "gtk-layer-shell" blur enable; shadows disable
layer_effects "launcher" blur enable; blur_ignore_transparent enable; shadows disable layer_effects "notifications" blur enable; shadows disable
layer_effects "waybar" blur enable; blur_ignore_transparent enable; shadows disable layer_effects "launcher" blur enable; shadows disable
layer_effects "avizo" blur enable; blur_ignore_transparent enable; shadows disable layer_effects "logout_dialog" blur enable; shadows disable
layer_effects "swaync-notification-window" blur enable; blur_ignore_transparent enable; shadows disable layer_effects "waybar" blur enable; shadows disable
layer_effects "swaync-control-center" blur enable; blur_ignore_transparent enable; shadows disable layer_effects "avizo" blur enable; shadows disable
titlebar_separator enable titlebar_separator enable
scratchpad_minimize enable scratchpad_minimize enable
''; '';

View file

@ -0,0 +1,48 @@
{
config,
pkgs,
accentColourName,
...
}: {
home.packages = with pkgs; [
(callPackage ./swaylockfx.nix
{swaylock-effects = config.programs.swaylock.package;})
];
programs.swaylock = {
enable = true;
package = pkgs.swaylock-effects;
# Settings are specifically for swaylock-effects
settings = let
sc = config.scheme;
in {
indicator-radius = 100;
indicator-thickness = 10;
indicator-caps-lock = true;
ignore-empty-password = true;
show-failed-attempts = true;
effect-blur = "5x3";
effect-vignette = "0.5:0.5";
grace = 2;
fade-in = 0.2;
bs-hl-color = sc.base06;
caps-lock-bs-hl-color = sc.base06;
caps-lock-key-hl-color = sc.green;
inside-color = "${sc.base00}cc";
key-hl-color = sc.green;
layout-bg-color = "${sc.base00}cc";
layout-border-color = sc.${accentColourName};
layout-text-color = sc.base05;
ring-color = sc.${accentColourName};
ring-clear-color = sc.base06;
ring-caps-lock-color = sc.base09;
ring-ver-color = sc.blue;
ring-wrong-color = sc.red;
separator-color = sc.base01;
text-color = sc.base05;
text-clear-color = sc.base06;
text-caps-lock-color = sc.base09;
text-ver-color = sc.blue;
text-wrong-color = sc.red;
};
};
}

View file

@ -2,11 +2,15 @@
config, config,
pkgs, pkgs,
fonts, fonts,
accentColour ? "base07", accentColourName,
... ...
}: { }: {
home.packages = [pkgs.swaynotificationcenter]; home.packages = [pkgs.swaynotificationcenter];
xdg.configFile."swaync/style.css".text = with config.scheme; '' xdg.configFile."swaync/style.css".text = let
sc = config.scheme.withHashtag;
alpha = "0.8";
alpha-background = "rgba(${config.scheme.base00-rgb-r}, ${config.scheme.base00-rgb-g}, ${config.scheme.base00-rgb-b}, ${alpha})";
in ''
* { * {
all: unset; all: unset;
font-size: 1.2rem; font-size: 1.2rem;
@ -17,10 +21,10 @@
.floating-notifications.background .notification-row .notification-background { .floating-notifications.background .notification-row .notification-background {
border-radius: 10px; border-radius: 10px;
border: 1px solid ${withHashtag.${accentColour}}; border: 1px solid ${sc.withHashtag.${accentColourName}};
margin: 18px; margin: 18px;
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.9); background-color: ${alpha-background};
color: ${withHashtag.base05}; color: ${sc.base05};
padding: 0; padding: 0;
} }
@ -46,7 +50,7 @@
.notification .notification
.notification-content .notification-content
.summary { .summary {
color: ${withHashtag.base05}; color: ${sc.base05};
} }
.floating-notifications.background .floating-notifications.background
@ -55,7 +59,7 @@
.notification .notification
.notification-content .notification-content
.time { .time {
color: ${withHashtag.base04}; color: ${sc.base04};
} }
.floating-notifications.background .floating-notifications.background
@ -64,7 +68,7 @@
.notification .notification
.notification-content .notification-content
.body { .body {
color: ${withHashtag.base05}; color: ${sc.base05};
} }
.floating-notifications.background .floating-notifications.background
@ -84,8 +88,8 @@
> * > *
.notification-action { .notification-action {
border-radius: 10px; border-radius: 10px;
background-color: ${withHashtag.base01}; background-color: ${sc.base01};
color: ${withHashtag.base05}; color: ${sc.base05};
margin: 7px; margin: 7px;
} }
@ -96,8 +100,8 @@
> *:last-child > *:last-child
> * > *
.notification-action:hover { .notification-action:hover {
background-color: ${withHashtag.base01}; background-color: ${sc.base01};
color: ${withHashtag.base05}; color: ${sc.base05};
} }
.floating-notifications.background .floating-notifications.background
@ -107,8 +111,8 @@
> *:last-child > *:last-child
> * > *
.notification-action:active { .notification-action:active {
background-color: ${withHashtag.blue}; background-color: ${sc.blue};
color: ${withHashtag.base00}; color: ${sc.base00};
} }
.floating-notifications.background .floating-notifications.background
@ -118,61 +122,61 @@
margin: 7px; margin: 7px;
padding: 2px; padding: 2px;
border-radius: 10px; border-radius: 10px;
background-color: ${withHashtag.red}; background-color: ${sc.red};
color: ${withHashtag.base00}; color: ${sc.base00};
} }
.floating-notifications.background .floating-notifications.background
.notification-row .notification-row
.notification-background .notification-background
.close-button:hover { .close-button:hover {
background-color: ${withHashtag.red}; background-color: ${sc.red};
color: ${withHashtag.base00}; color: ${sc.base00};
} }
.floating-notifications.background .floating-notifications.background
.notification-row .notification-row
.notification-background .notification-background
.close-button:active { .close-button:active {
background-color: ${withHashtag.red}; background-color: ${sc.red};
color: ${withHashtag.base00}; color: ${sc.base00};
} }
.control-center { .control-center {
border-radius: 10px; border-radius: 10px;
border: 1px solid ${withHashtag.${accentColour}}; border: 1px solid ${sc.${accentColourName}};
margin: 18px; margin: 18px;
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.9); background-color: ${alpha-background};
color: ${withHashtag.base05}; color: ${sc.base05};
padding: 14px; padding: 14px;
} }
.control-center .widget-title { .control-center .widget-title {
color: ${withHashtag.base05}; color: ${sc.base05};
font-size: 1.3em; font-size: 1.3em;
} }
.control-center .widget-title button { .control-center .widget-title button {
border-radius: 7px; border-radius: 7px;
background-color: ${withHashtag.base01}; background-color: ${sc.base01};
color: ${withHashtag.base05}; color: ${sc.base05};
padding: 8px; padding: 8px;
} }
.control-center .widget-title button:hover { .control-center .widget-title button:hover {
background-color: ${withHashtag.base02}; background-color: ${sc.base02};
color: ${withHashtag.base05}; color: ${sc.base05};
} }
.control-center .widget-title button:active { .control-center .widget-title button:active {
background-color: ${withHashtag.base03}; background-color: ${sc.base03};
color: ${withHashtag.base05}; color: ${sc.base05};
} }
.control-center .notification-row .notification-background { .control-center .notification-row .notification-background {
border-radius: 10px; border-radius: 10px;
background-color: ${withHashtag.base01}; background-color: ${sc.base01};
color: ${withHashtag.base05}; color: ${sc.base05};
margin-top: 14px; margin-top: 14px;
} }
@ -195,7 +199,7 @@
.notification .notification
.notification-content .notification-content
.summary { .summary {
color: ${withHashtag.base05}; color: ${sc.base05};
} }
.control-center .control-center
@ -204,7 +208,7 @@
.notification .notification
.notification-content .notification-content
.time { .time {
color: ${withHashtag.base04}; color: ${sc.base04};
} }
.control-center .control-center
@ -213,7 +217,7 @@
.notification .notification
.notification-content .notification-content
.body { .body {
color: ${withHashtag.base05}; color: ${sc.base05};
} }
.control-center .control-center
@ -233,8 +237,8 @@
> * > *
.notification-action { .notification-action {
border-radius: 7px; border-radius: 7px;
background-color: ${withHashtag.base00}; background-color: ${sc.base00};
color: ${withHashtag.base05}; color: ${sc.base05};
margin: 7px; margin: 7px;
} }
@ -245,8 +249,8 @@
> *:last-child > *:last-child
> * > *
.notification-action:hover { .notification-action:hover {
background-color: ${withHashtag.base01};; background-color: ${sc.base01};;
color: ${withHashtag.base05}; color: ${sc.base05};
} }
.control-center .control-center
@ -256,39 +260,39 @@
> *:last-child > *:last-child
> * > *
.notification-action:active { .notification-action:active {
background-color: ${withHashtag.blue}; background-color: ${sc.blue};
color: ${withHashtag.base05}; color: ${sc.base05};
} }
.control-center .notification-row .notification-background .close-button { .control-center .notification-row .notification-background .close-button {
margin: 7px; margin: 7px;
padding: 2px; padding: 2px;
border-radius: 6.3px; border-radius: 6.3px;
background-color: ${withHashtag.red}; background-color: ${sc.red};
color: ${withHashtag.base00}; color: ${sc.base00};
} }
.control-center .notification-row .notification-background .close-button:hover { .control-center .notification-row .notification-background .close-button:hover {
background-color: ${withHashtag.red}; background-color: ${sc.red};
color: ${withHashtag.base00}; color: ${sc.base00};
} }
.control-center .control-center
.notification-row .notification-row
.notification-background .notification-background
.close-button:active { .close-button:active {
background-color: ${withHashtag.red}; background-color: ${sc.red};
color: ${withHashtag.base00}; color: ${sc.base00};
} }
.control-center .notification-row .notification-background:hover { .control-center .notification-row .notification-background:hover {
background-color: ${withHashtag.base00}; background-color: ${sc.base00};
color: ${withHashtag.base05}; color: ${sc.base05};
} }
.control-center .notification-row .notification-background:active { .control-center .notification-row .notification-background:active {
background-color: ${withHashtag.blue}; background-color: ${sc.blue};
color: ${withHashtag.base05}; color: ${sc.base05};
} }
progressbar, progressbar,
@ -298,35 +302,35 @@
} }
.notification.critical progress { .notification.critical progress {
background-color: ${withHashtag.red}; background-color: ${sc.red};
} }
.notification.low progress, .notification.low progress,
.notification.normal progress { .notification.normal progress {
background-color: ${withHashtag.blue}; background-color: ${sc.blue};
} }
trough { trough {
background-color: ${withHashtag.base00}; background-color: ${sc.base00};
} }
.control-center trough { .control-center trough {
background-color: ${withHashtag.base03}; background-color: ${sc.base03};
} }
.control-center-dnd { .control-center-dnd {
margin-top: 5px; margin-top: 5px;
border-radius: 8px; border-radius: 8px;
background: ${withHashtag.base00}; background: ${sc.base00};
border: 1px solid ${withHashtag.base03}; border: 1px solid ${sc.base03};
} }
.control-center-dnd:checked { .control-center-dnd:checked {
background: ${withHashtag.base00}; background: ${sc.base00};
} }
.control-center-dnd slider { .control-center-dnd slider {
background: ${withHashtag.base03}; background: ${sc.base03};
border-radius: 8px; border-radius: 8px;
} }
@ -338,18 +342,18 @@
.widget-dnd > switch { .widget-dnd > switch {
font-size: initial; font-size: initial;
border-radius: 8px; border-radius: 8px;
background: ${withHashtag.base00}; background: ${sc.base00};
border: 1px solid ${withHashtag.base03}; border: 1px solid ${sc.base03};
} }
.widget-dnd > switch:checked { .widget-dnd > switch:checked {
background: ${withHashtag.base00}; background: ${sc.base00};
} }
.widget-dnd > switch slider { .widget-dnd > switch slider {
background: ${withHashtag.base01}; background: ${sc.base01};
border-radius: 8px; border-radius: 8px;
border: 1px solid ${withHashtag.${accentColour}}; border: 1px solid ${sc.${accentColourName}};
} }
''; '';

View file

Before

Width:  |  Height:  |  Size: 562 KiB

After

Width:  |  Height:  |  Size: 562 KiB

View file

Before

Width:  |  Height:  |  Size: 642 KiB

After

Width:  |  Height:  |  Size: 642 KiB

View file

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View file

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View file

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 140 KiB

View file

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 133 KiB

View file

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

View file

Before

Width:  |  Height:  |  Size: 202 KiB

After

Width:  |  Height:  |  Size: 202 KiB

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 146 KiB

View file

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 167 KiB

View file

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 111 KiB

View file

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View file

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

View file

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View file

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View file

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

Before

Width:  |  Height:  |  Size: 14 MiB

After

Width:  |  Height:  |  Size: 14 MiB

View file

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 183 KiB

View file

Before

Width:  |  Height:  |  Size: 528 KiB

After

Width:  |  Height:  |  Size: 528 KiB

View file

Before

Width:  |  Height:  |  Size: 27 MiB

After

Width:  |  Height:  |  Size: 27 MiB

View file

Before

Width:  |  Height:  |  Size: 20 MiB

After

Width:  |  Height:  |  Size: 20 MiB

View file

Before

Width:  |  Height:  |  Size: 286 KiB

After

Width:  |  Height:  |  Size: 286 KiB

View file

Before

Width:  |  Height:  |  Size: 747 KiB

After

Width:  |  Height:  |  Size: 747 KiB

View file

Before

Width:  |  Height:  |  Size: 7 MiB

After

Width:  |  Height:  |  Size: 7 MiB

View file

Before

Width:  |  Height:  |  Size: 5.3 MiB

After

Width:  |  Height:  |  Size: 5.3 MiB

View file

Before

Width:  |  Height:  |  Size: 7.8 MiB

After

Width:  |  Height:  |  Size: 7.8 MiB

View file

Before

Width:  |  Height:  |  Size: 3.6 MiB

After

Width:  |  Height:  |  Size: 3.6 MiB

View file

Before

Width:  |  Height:  |  Size: 4.3 MiB

After

Width:  |  Height:  |  Size: 4.3 MiB

View file

Before

Width:  |  Height:  |  Size: 3.7 MiB

After

Width:  |  Height:  |  Size: 3.7 MiB

View file

Before

Width:  |  Height:  |  Size: 1,000 KiB

After

Width:  |  Height:  |  Size: 1,000 KiB

View file

Before

Width:  |  Height:  |  Size: 3.9 MiB

After

Width:  |  Height:  |  Size: 3.9 MiB

View file

Before

Width:  |  Height:  |  Size: 4.8 MiB

After

Width:  |  Height:  |  Size: 4.8 MiB

View file

Before

Width:  |  Height:  |  Size: 4 MiB

After

Width:  |  Height:  |  Size: 4 MiB

View file

Before

Width:  |  Height:  |  Size: 4.3 MiB

After

Width:  |  Height:  |  Size: 4.3 MiB

View file

Before

Width:  |  Height:  |  Size: 4 MiB

After

Width:  |  Height:  |  Size: 4 MiB

View file

Before

Width:  |  Height:  |  Size: 5.1 MiB

After

Width:  |  Height:  |  Size: 5.1 MiB

View file

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 252 KiB

View file

Before

Width:  |  Height:  |  Size: 254 KiB

After

Width:  |  Height:  |  Size: 254 KiB

View file

Before

Width:  |  Height:  |  Size: 250 KiB

After

Width:  |  Height:  |  Size: 250 KiB

View file

Before

Width:  |  Height:  |  Size: 255 KiB

After

Width:  |  Height:  |  Size: 255 KiB

View file

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 252 KiB

View file

Before

Width:  |  Height:  |  Size: 249 KiB

After

Width:  |  Height:  |  Size: 249 KiB

View file

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 253 KiB

View file

Before

Width:  |  Height:  |  Size: 254 KiB

After

Width:  |  Height:  |  Size: 254 KiB

View file

Before

Width:  |  Height:  |  Size: 247 KiB

After

Width:  |  Height:  |  Size: 247 KiB

View file

Before

Width:  |  Height:  |  Size: 255 KiB

After

Width:  |  Height:  |  Size: 255 KiB

View file

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 253 KiB

View file

Before

Width:  |  Height:  |  Size: 254 KiB

After

Width:  |  Height:  |  Size: 254 KiB

View file

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 253 KiB

View file

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 1.7 MiB

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