Compare commits
3 commits
main
...
add_niri_c
Author | SHA1 | Date | |
---|---|---|---|
Evie Litherland-Smith | a0b31eddaa | ||
Evie Litherland-Smith | 28699d2b27 | ||
Evie Litherland-Smith | a8cab26188 |
1
.gitignore
vendored
|
@ -7,4 +7,3 @@
|
||||||
__pycache__
|
__pycache__
|
||||||
.direnv
|
.direnv
|
||||||
*.html
|
*.html
|
||||||
/result
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
repos:
|
|
||||||
- repo: https://github.com/gitleaks/gitleaks
|
|
||||||
rev: v8.18.4
|
|
||||||
hooks:
|
|
||||||
- id: gitleaks
|
|
10
Makefile
|
@ -1,7 +1,9 @@
|
||||||
.PHONY: build
|
.PHONY: default build switch
|
||||||
|
|
||||||
USER := $(shell whoami)
|
default: build
|
||||||
HOST := $(shell hostname)
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
nix build .#homeConfigurations."$(USER)@$(HOST)".activationPackage
|
nix run . -- build --flake . --show-trace
|
||||||
|
|
||||||
|
switch:
|
||||||
|
nix run . -- switch --flake . --show-trace
|
||||||
|
|
27
README.org
|
@ -18,7 +18,8 @@ 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 publickeys.asc
|
gpg --import privatekeys.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
|
||||||
|
@ -29,9 +30,23 @@ To set up without cloning the repository, run:
|
||||||
* Email setup
|
* Email setup
|
||||||
** Proton
|
** Proton
|
||||||
*** Bridge
|
*** Bridge
|
||||||
Start Proton Mail Bridge application, if needed configure to store
|
Run src_bash{protonmail-setup-bridge} to automate this process.
|
||||||
using =SecretService= and log in. Application will auto-start with
|
|
||||||
plasma session.
|
Run bridge in CLI mode to login, wait for initial sync and get app password
|
||||||
|
#+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
|
||||||
|
@ -66,7 +81,3 @@ 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
|
@ -1,25 +0,0 @@
|
||||||
{
|
|
||||||
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";
|
|
||||||
};
|
|
||||||
}
|
|
60
flake.lock
|
@ -41,16 +41,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718530513,
|
"lastModified": 1715381426,
|
||||||
"narHash": "sha256-BmO8d0r+BVlwWtMLQEYnwmngqdXIuyFzMwvmTcLMee8=",
|
"narHash": "sha256-wPuqrAQGdv3ISs74nJfGb+Yprm23U/rFpcHFFNWgM94=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "a1fddf0967c33754271761d91a3d921772b30d0e",
|
"rev": "ab5542e9dbd13d0100f8baae2bc2d68af901f4b4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.05",
|
"ref": "release-23.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -60,11 +60,11 @@
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717786575,
|
"lastModified": 1710589819,
|
||||||
"narHash": "sha256-IyfMwVf4gR8BAhs6pnzZbtGESrG3lV59t25qIq30r8Q=",
|
"narHash": "sha256-fm69qycthevGExpbudpuCCSEBPuCOk/+d15382c37oE=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "8848d889ab9089dff04a3ffc80d2cc8a61d545c4",
|
"rev": "6e305fa1d05a97343d47f0b6865e10a870fc8d4e",
|
||||||
"revCount": 12,
|
"revCount": 10,
|
||||||
"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": 1717602782,
|
"lastModified": 1710451336,
|
||||||
"narHash": "sha256-pL9jeus5QpX5R+9rsp3hhZ+uplVHscNJh8n8VpqscM0=",
|
"narHash": "sha256-pP86Pcfu3BrAvRO7R64x7hs+GaQrjFes+mEPowCfkxY=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e8057b67ebf307f01bdcc8fba94d94f75039d1f6",
|
"rev": "d691274a972b3165335d261cc4671335f5c67de9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -91,61 +91,37 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718835956,
|
"lastModified": 1716361217,
|
||||||
"narHash": "sha256-wM9v2yIxClRYsGHut5vHICZTK7xdrUGfrLkXvSuv6s4=",
|
"narHash": "sha256-mzZDr00WUiUXVm1ujBVv6A0qRd8okaITyUp4ezYRgc4=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "dd457de7e08c6d06789b1f5b88fc9327f4d96309",
|
"rev": "46397778ef1f73414b03ed553a3368f0e7e33c2f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-24.05",
|
"ref": "nixos-23.11",
|
||||||
"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": 1718992165,
|
"lastModified": 1713388094,
|
||||||
"narHash": "sha256-9i9IjZcjvinb/214x5YShUDBZBC2189HYs26uGy/Hck=",
|
"narHash": "sha256-wcotm0Ek2ISn8iJBzEujJQdcPLKWrPAOZ/dS/DLKafw=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "schemes",
|
"repo": "schemes",
|
||||||
"rev": "ef9a4c3c384624694608adebf0993d7a3bed3cf2",
|
"rev": "abcf2a055ae69f1bf047463332f83db3125aa8a5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
150
flake.nix
|
@ -7,18 +7,11 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-24.05";
|
url = "github:nix-community/home-manager/release-23.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
plasma-manager = {
|
|
||||||
url = "github:nix-community/plasma-manager";
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.follows = "nixpkgs";
|
|
||||||
home-manager.follows = "home-manager";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
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 = {
|
||||||
|
@ -31,19 +24,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 = {
|
||||||
hostname,
|
system ? "x86_64-linux",
|
||||||
system,
|
hostname ? "Atlas",
|
||||||
|
...
|
||||||
}: rec {
|
}: rec {
|
||||||
inherit hostname;
|
inherit hostname;
|
||||||
inherit (plasma-manager.packages.${system}) rc2nix;
|
accentColour = "base07"; # catppuccin lavender
|
||||||
accentColourName = "base0C";
|
catppuccinVariant = "Mocha";
|
||||||
iosevkaCustom = {
|
iosevkaCustom = {
|
||||||
packages = iosevka-custom.outputs.packages.${system};
|
packages = iosevka-custom.outputs.packages.${system};
|
||||||
names = iosevka-custom.outputs.names;
|
names = iosevka-custom.outputs.names;
|
||||||
|
@ -66,11 +59,17 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
defaultModules = [
|
defaultModules = {
|
||||||
plasma-manager.homeManagerModules.plasma-manager
|
username ? "pixelifytica",
|
||||||
|
hostname ? "Atlas",
|
||||||
|
...
|
||||||
|
}: [
|
||||||
base16.homeManagerModule
|
base16.homeManagerModule
|
||||||
{scheme = "${tt-schemes}/base16/one-light.yaml";}
|
./home/${hostname}.nix
|
||||||
./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;};
|
||||||
|
@ -82,68 +81,79 @@
|
||||||
pkgs = import nixpkgs {system = "x86_64-linux";};
|
pkgs = import nixpkgs {system = "x86_64-linux";};
|
||||||
in
|
in
|
||||||
pkgs.mkShellNoCC {
|
pkgs.mkShellNoCC {
|
||||||
packages = with pkgs; [nil pre-commit];
|
packages = [pkgs.nil];
|
||||||
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" = let
|
"pixelifytica@Legion" = home-manager.lib.homeManagerConfiguration {
|
||||||
hostname = "Legion";
|
pkgs = import nixpkgs {system = "x86_64-linux";};
|
||||||
system = "x86_64-linux";
|
modules = defaultModules {
|
||||||
in
|
username = "pixelifytica";
|
||||||
home-manager.lib.homeManagerConfiguration {
|
hostname = "Legion";
|
||||||
pkgs = import nixpkgs {inherit system;};
|
|
||||||
modules = defaultModules;
|
|
||||||
extraSpecialArgs = defaultExtraSpecialArgs {inherit hostname system;};
|
|
||||||
};
|
};
|
||||||
|
extraSpecialArgs = defaultExtraSpecialArgs {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
hostname = "Legion";
|
||||||
|
};
|
||||||
|
};
|
||||||
# Personal
|
# Personal
|
||||||
"pixelifytica@Northstar" = let
|
"pixelifytica@Northstar" = home-manager.lib.homeManagerConfiguration {
|
||||||
hostname = "Northstar";
|
pkgs = import nixpkgs {system = "x86_64-linux";};
|
||||||
system = "x86_64-linux";
|
modules = defaultModules {
|
||||||
in
|
username = "pixelifytica";
|
||||||
home-manager.lib.homeManagerConfiguration {
|
hostname = "Northstar";
|
||||||
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;};
|
|
||||||
};
|
};
|
||||||
"pixelifytica@Vanguard" = let
|
extraSpecialArgs = defaultExtraSpecialArgs {
|
||||||
hostname = "Vanguard";
|
system = "x86_64-linux";
|
||||||
system = "x86_64-linux";
|
hostname = "Northstar";
|
||||||
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" = let
|
"elitherl@Tone" = home-manager.lib.homeManagerConfiguration {
|
||||||
hostname = "Tone";
|
pkgs = import nixpkgs {system = "x86_64-linux";};
|
||||||
system = "x86_64-linux";
|
modules = defaultModules {
|
||||||
in
|
username = "elitherl";
|
||||||
home-manager.lib.homeManagerConfiguration {
|
hostname = "Tone";
|
||||||
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;};
|
|
||||||
};
|
};
|
||||||
"elitherl@Scorch" = let
|
extraSpecialArgs = defaultExtraSpecialArgs {
|
||||||
hostname = "Scorch";
|
system = "x86_64-linux";
|
||||||
system = "x86_64-linux";
|
hostname = "Tone";
|
||||||
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
1
home/Atlas.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{...}: {imports = [./default.nix];}
|
1
home/Legion.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{...}: {imports = [./default.nix];}
|
8
home/Northstar.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{...}: {
|
||||||
|
imports = [./default.nix];
|
||||||
|
wayland.windowManager.sway.config.output = {
|
||||||
|
"eDP-1" = {
|
||||||
|
scale = "1.25";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
9
home/Scorch.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{...}: {
|
||||||
|
imports = [./work.nix];
|
||||||
|
wayland.windowManager.sway.config.output = {
|
||||||
|
"Dell Inc. DELL P3223QE CCG8YN3" = {
|
||||||
|
pos = "0 0";
|
||||||
|
scale = "1.5";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
35
home/Tone.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{...}: {
|
||||||
|
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";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
37
home/Vanguard.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{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"];
|
||||||
|
};
|
||||||
|
}
|
115
home/default.nix
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
{
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
}
|
19
home/work.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
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
|
@ -1,18 +0,0 @@
|
||||||
{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
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,203 +0,0 @@
|
||||||
[
|
|
||||||
{ "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"]
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -1,6 +0,0 @@
|
||||||
{...}: {
|
|
||||||
imports = [
|
|
||||||
./nyxt.nix
|
|
||||||
./firefox.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,65 +0,0 @@
|
||||||
{
|
|
||||||
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)))
|
|
||||||
+ ")"
|
|
||||||
);
|
|
||||||
};
|
|
||||||
}
|
|
17
programs/cava/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{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}'";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,71 +0,0 @@
|
||||||
{
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
{
|
|
||||||
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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
{
|
|
||||||
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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
{
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,77 +0,0 @@
|
||||||
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;
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
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; }
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
xdg.configFile."niri/config.kdl".source = ./config.kdl;
|
|
||||||
home.packages = with pkgs; [playerctl];
|
|
||||||
}
|
|
|
@ -1,217 +0,0 @@
|
||||||
{
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,100 +0,0 @@
|
||||||
[Background]
|
|
||||||
Color=250,250,250
|
|
||||||
|
|
||||||
[BackgroundFaint]
|
|
||||||
Color=250,250,250
|
|
||||||
|
|
||||||
[BackgroundIntense]
|
|
||||||
Color=250,250,250
|
|
||||||
|
|
||||||
[Color0]
|
|
||||||
Color=250,250,250
|
|
||||||
|
|
||||||
[Color0Faint]
|
|
||||||
Color=160,161,167
|
|
||||||
|
|
||||||
[Color0Intense]
|
|
||||||
Color=160,161,167
|
|
||||||
|
|
||||||
[Color1]
|
|
||||||
Color=202,18,67
|
|
||||||
|
|
||||||
[Color1Faint]
|
|
||||||
Color=202,18,67
|
|
||||||
|
|
||||||
[Color1Intense]
|
|
||||||
Color=202,18,67
|
|
||||||
|
|
||||||
[Color2]
|
|
||||||
Color=80,161,79
|
|
||||||
|
|
||||||
[Color2Faint]
|
|
||||||
Color=80,161,79
|
|
||||||
|
|
||||||
[Color2Intense]
|
|
||||||
Color=80,161,79
|
|
||||||
|
|
||||||
[Color3]
|
|
||||||
Color=215,95,0
|
|
||||||
|
|
||||||
[Color3Faint]
|
|
||||||
Color=215,95,0
|
|
||||||
|
|
||||||
[Color3Intense]
|
|
||||||
Color=215,95,0
|
|
||||||
|
|
||||||
[Color4]
|
|
||||||
Color=64,120,242
|
|
||||||
|
|
||||||
[Color4Faint]
|
|
||||||
Color=64,120,242
|
|
||||||
|
|
||||||
[Color4Intense]
|
|
||||||
Color=64,120,242
|
|
||||||
|
|
||||||
[Color5]
|
|
||||||
Color=166,38,164
|
|
||||||
|
|
||||||
[Color5Faint]
|
|
||||||
Color=166,38,164
|
|
||||||
|
|
||||||
[Color5Intense]
|
|
||||||
Color=166,38,164
|
|
||||||
|
|
||||||
[Color6]
|
|
||||||
Color=1,132,188
|
|
||||||
|
|
||||||
[Color6Faint]
|
|
||||||
Color=1,132,188
|
|
||||||
|
|
||||||
[Color6Intense]
|
|
||||||
Color=1,132,188
|
|
||||||
|
|
||||||
[Color7]
|
|
||||||
Color=56,58,66
|
|
||||||
|
|
||||||
[Color7Faint]
|
|
||||||
Color=9,10,11
|
|
||||||
|
|
||||||
[Color7Intense]
|
|
||||||
Color=9,10,11
|
|
||||||
|
|
||||||
[Foreground]
|
|
||||||
Color=56,58,66
|
|
||||||
|
|
||||||
[ForegroundFaint]
|
|
||||||
Color=56,58,66
|
|
||||||
|
|
||||||
[ForegroundIntense]
|
|
||||||
Color=56,58,66
|
|
||||||
|
|
||||||
[General]
|
|
||||||
Anchor=0.5,0.5
|
|
||||||
Blur=true
|
|
||||||
ColorRandomization=false
|
|
||||||
Description=One Light
|
|
||||||
FillStyle=Tile
|
|
||||||
Opacity=0.9
|
|
||||||
Wallpaper=
|
|
||||||
WallpaperFlipType=NoFlip
|
|
||||||
WallpaperOpacity=1
|
|
|
@ -1,48 +0,0 @@
|
||||||
{
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,330 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
fonts,
|
|
||||||
accentColourName,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
systemd.user.targets.tray.Unit = {
|
|
||||||
Description = "Home Manager System Tray";
|
|
||||||
Requires = ["graphical-session.target"];
|
|
||||||
};
|
|
||||||
programs.waybar = {
|
|
||||||
enable = true;
|
|
||||||
systemd.enable = true;
|
|
||||||
settings.main = {
|
|
||||||
name = "main";
|
|
||||||
layer = "top";
|
|
||||||
position = "bottom";
|
|
||||||
# Layout
|
|
||||||
"modules-left" = [
|
|
||||||
"sway/workspaces"
|
|
||||||
"sway/window"
|
|
||||||
];
|
|
||||||
"modules-center" = [];
|
|
||||||
"modules-right" = [
|
|
||||||
"mpris"
|
|
||||||
"custom/notification"
|
|
||||||
"pulseaudio"
|
|
||||||
"network"
|
|
||||||
"bluetooth"
|
|
||||||
"clock#calendar"
|
|
||||||
"clock"
|
|
||||||
"backlight"
|
|
||||||
"battery"
|
|
||||||
"custom/weather"
|
|
||||||
"tray"
|
|
||||||
];
|
|
||||||
# Module config
|
|
||||||
"sway/workspaces" = {
|
|
||||||
format = "{icon}";
|
|
||||||
format-icons = {
|
|
||||||
"1" = " ";
|
|
||||||
"2" = " ";
|
|
||||||
"3" = " ";
|
|
||||||
"4" = " ";
|
|
||||||
"5" = " ";
|
|
||||||
"6" = " ";
|
|
||||||
default = " ";
|
|
||||||
urgent = " ";
|
|
||||||
};
|
|
||||||
all-outputs = false;
|
|
||||||
persistent-workspaces = {
|
|
||||||
"1" = [];
|
|
||||||
"2" = [];
|
|
||||||
"3" = [];
|
|
||||||
"4" = [];
|
|
||||||
"5" = [];
|
|
||||||
"6" = [];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"sway/window" = {
|
|
||||||
"format" = "{title}";
|
|
||||||
"max-length" = 50;
|
|
||||||
"rewrite" = {
|
|
||||||
"(.*) - GNU Emacs at (.*)" = " $1 [$2]";
|
|
||||||
"(alacritty.*)" = " $1";
|
|
||||||
"(foot.*)" = " $1";
|
|
||||||
"(.*) - mpv" = " $1";
|
|
||||||
"swayimg: (.*)" = " $1";
|
|
||||||
"(btm)" = " Resource Usage [$1]";
|
|
||||||
"(cava)" = " Music Visualiser [$1]";
|
|
||||||
"(.*) - Thunar" = " $1";
|
|
||||||
"Mozilla Firefox" = " $1";
|
|
||||||
"(.*) — Mozilla Firefox" = " $1";
|
|
||||||
"Nyxt - (.*)" = " $1";
|
|
||||||
"(.*) - Chromium" = " $1";
|
|
||||||
"(Signal.*)" = " $1";
|
|
||||||
"((?:.*)WebCord.*)" = " $1";
|
|
||||||
"(Cartridges.*)" = " $1";
|
|
||||||
"([Ss]team.*)" = " $1";
|
|
||||||
"(Prism Launcher.*)" = " Minecraft ($1)";
|
|
||||||
"(X2Go Client)" = " $1";
|
|
||||||
"(NoMachine|Nxplayer.bin) (.*)" = " $1 $2";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
mpris = {
|
|
||||||
"format" = "{status_icon} {player_icon} {artist} - {title}";
|
|
||||||
"tooltip-format" = "{player_icon} ({player}) {dynamic}";
|
|
||||||
"title-len" = 64;
|
|
||||||
"interval" = 1;
|
|
||||||
"dynamic-order" = [
|
|
||||||
"album"
|
|
||||||
"artist"
|
|
||||||
"title"
|
|
||||||
"position"
|
|
||||||
"length"
|
|
||||||
];
|
|
||||||
"player-icons" = {
|
|
||||||
"default" = " ";
|
|
||||||
"emms" = " ";
|
|
||||||
"firefox" = " ";
|
|
||||||
"mpv" = " ";
|
|
||||||
};
|
|
||||||
"status-icons" = {
|
|
||||||
"playing" = "";
|
|
||||||
"paused" = "";
|
|
||||||
"stopped" = "";
|
|
||||||
};
|
|
||||||
"ignored-players" = [];
|
|
||||||
};
|
|
||||||
pulseaudio = {
|
|
||||||
scroll-step = 5;
|
|
||||||
format = "{format_source}{icon}{volume}%";
|
|
||||||
format-muted = "{format_source} ";
|
|
||||||
format-source = " ";
|
|
||||||
format-source-muted = " ";
|
|
||||||
format-icons = {
|
|
||||||
car = " ";
|
|
||||||
default = [" " " " " "];
|
|
||||||
hands-free = " ";
|
|
||||||
headset = " ";
|
|
||||||
phone = " ";
|
|
||||||
portable = " ";
|
|
||||||
headphone = " ";
|
|
||||||
};
|
|
||||||
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
|
|
||||||
on-click-right = "${pkgs.pamixer}/bin/pamixer -t";
|
|
||||||
on-scroll-up = "${pkgs.pamixer}/bin/pamixer -i 5";
|
|
||||||
on-scroll-down = "${pkgs.pamixer}/bin/pamixer -d 5";
|
|
||||||
};
|
|
||||||
disk = {
|
|
||||||
format = " {percentage_used}%";
|
|
||||||
path = config.home.homeDirectory;
|
|
||||||
};
|
|
||||||
cpu = {
|
|
||||||
format = " {usage}%";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
memory = {format = " {}%";};
|
|
||||||
temperature = {
|
|
||||||
critical-threshold = 80;
|
|
||||||
format = "{icon} {temperatureC}°C";
|
|
||||||
format-icons = ["" "" ""];
|
|
||||||
};
|
|
||||||
network = {
|
|
||||||
format-icons = [" " " " " " " "];
|
|
||||||
format-wifi = "{icon}";
|
|
||||||
format-ethernet = " ";
|
|
||||||
tooltip-format = "{essid} ({signalStrength}%)";
|
|
||||||
format-linked = " ";
|
|
||||||
format-disconnected = " ";
|
|
||||||
};
|
|
||||||
bluetooth = {
|
|
||||||
format = "";
|
|
||||||
format-disabled = "";
|
|
||||||
format-off = "";
|
|
||||||
format-on = "";
|
|
||||||
format-connected = "";
|
|
||||||
tooltip-format = "{status} | {device_alias}";
|
|
||||||
on-click = "${pkgs.bluez}/bin/bluetoothctl power on";
|
|
||||||
on-click-right = "${pkgs.bluez}/bin/bluetoothctl power off";
|
|
||||||
};
|
|
||||||
"clock#calendar" = {
|
|
||||||
# format = "{: %Y-%m-%d}";
|
|
||||||
format = "{:%Y-%m-%d}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021
|
|
||||||
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
|
||||||
calendar = {
|
|
||||||
mode = "month";
|
|
||||||
mode-mon-col = 3;
|
|
||||||
weeks-pos = "left";
|
|
||||||
on-scroll = 1;
|
|
||||||
on-click-right = "mode";
|
|
||||||
format = {
|
|
||||||
months = "<span color='#ffead3'><b>{}</b></span>";
|
|
||||||
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
|
||||||
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
|
||||||
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
|
||||||
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
actions = {
|
|
||||||
on-click-right = "mode";
|
|
||||||
on-scroll-up = "shift_up";
|
|
||||||
on-scroll-down = "shift_down";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
clock = {
|
|
||||||
# format = "{: %R}";
|
|
||||||
format = "{:%R}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021
|
|
||||||
};
|
|
||||||
backlight = {
|
|
||||||
format = "{icon}";
|
|
||||||
tooltip-format = "{percent}%";
|
|
||||||
format-icons = [" " " " " " " " " " " " " " " " " "];
|
|
||||||
};
|
|
||||||
battery = {
|
|
||||||
states = {
|
|
||||||
warning = 30;
|
|
||||||
critical = 20;
|
|
||||||
};
|
|
||||||
format = "{icon}";
|
|
||||||
format-charging = " ";
|
|
||||||
format-plugged = " ";
|
|
||||||
tooltip-format = "{capacity}% {time}";
|
|
||||||
format-icons = [" " " " " " " " " " " " " " " " " " " " " "];
|
|
||||||
};
|
|
||||||
"custom/notification" = let
|
|
||||||
makoctl = "${pkgs.mako}/bin/makoctl";
|
|
||||||
jq = "${pkgs.jq}/bin/jq";
|
|
||||||
in {
|
|
||||||
exec = "( ${makoctl} list | ${jq} -e '.data[] | length > 0' >/dev/null && echo ' ' ) || echo ' ' ";
|
|
||||||
format = "{}";
|
|
||||||
on-click = "${makoctl} dismiss -a";
|
|
||||||
interval = 3;
|
|
||||||
};
|
|
||||||
"custom/weather" = let
|
|
||||||
date-format = "%Y-%m-%d";
|
|
||||||
custom-indicator = "{ICON}{temp_C}({FeelsLikeC})";
|
|
||||||
in {
|
|
||||||
format = "{}°";
|
|
||||||
tooltip = true;
|
|
||||||
interval = 900; # Every 15 minutes
|
|
||||||
exec = ''${pkgs.wttrbar}/bin/wttrbar --location Didcot --date-format "${date-format}" --custom-indicator "${custom-indicator}"'';
|
|
||||||
return-type = "json";
|
|
||||||
};
|
|
||||||
tray = {
|
|
||||||
icon-size = builtins.floor fonts.sizes.popups;
|
|
||||||
show-passive-items = true;
|
|
||||||
spacing = 5;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
style = let
|
|
||||||
sc = config.scheme.withHashtag;
|
|
||||||
alpha = "0.9";
|
|
||||||
in ''
|
|
||||||
* {
|
|
||||||
all: unset;
|
|
||||||
font-size: ${toString fonts.sizes.popups};
|
|
||||||
font-family: ${fonts.monospace.name};
|
|
||||||
}
|
|
||||||
|
|
||||||
window {
|
|
||||||
background: transparent;
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
window > box {
|
|
||||||
color: ${sc.base05};
|
|
||||||
background: alpha(${sc.base00}, ${alpha});
|
|
||||||
padding: 0px;
|
|
||||||
border-top: 1px solid ${sc.base04};
|
|
||||||
}
|
|
||||||
|
|
||||||
tooltip {
|
|
||||||
background: ${sc.base00};
|
|
||||||
border: 1px solid ${sc.${accentColourName}};
|
|
||||||
border-radius: 10px;
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
tooltip label {
|
|
||||||
color: ${sc.base05};
|
|
||||||
border: none;
|
|
||||||
padding: 5px;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces,
|
|
||||||
#window,
|
|
||||||
#mpris,
|
|
||||||
#pulseaudio,
|
|
||||||
#network,
|
|
||||||
#bluetooth,
|
|
||||||
#backlight,
|
|
||||||
#battery,
|
|
||||||
#clock,
|
|
||||||
#custom-notification,
|
|
||||||
#custom-weather,
|
|
||||||
#tray {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 1px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces,
|
|
||||||
#window,
|
|
||||||
#mpris,
|
|
||||||
#tray,
|
|
||||||
#backlight,
|
|
||||||
#battery,
|
|
||||||
#custom-weather {
|
|
||||||
color: ${sc.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button {
|
|
||||||
background: transparent;
|
|
||||||
color: ${sc.base05};
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 5px;
|
|
||||||
}
|
|
||||||
#workspaces button.persistent {
|
|
||||||
color: ${sc.base03};
|
|
||||||
}
|
|
||||||
#workspaces button.focused {
|
|
||||||
color: ${sc.${accentColourName}};
|
|
||||||
}
|
|
||||||
#workspaces button.urgent {
|
|
||||||
color: ${sc.base09};
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-notification {
|
|
||||||
color: ${sc.base08};
|
|
||||||
}
|
|
||||||
#pulseaudio {
|
|
||||||
color: ${sc.base09};
|
|
||||||
}
|
|
||||||
#network {
|
|
||||||
color: ${sc.base0A};
|
|
||||||
}
|
|
||||||
#bluetooth {
|
|
||||||
color: ${sc.base0B};
|
|
||||||
}
|
|
||||||
#clock.calendar {
|
|
||||||
color: ${sc.base0C};
|
|
||||||
}
|
|
||||||
#clock {
|
|
||||||
color: ${sc.base0D};
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -4,56 +4,27 @@
|
||||||
fonts,
|
fonts,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
../shell/default.nix
|
|
||||||
./python/default.nix
|
|
||||||
./lua/default.nix
|
|
||||||
./javascript/default.nix
|
|
||||||
];
|
|
||||||
services.emacs = {
|
|
||||||
enable = true;
|
|
||||||
package = config.programs.emacs.finalPackage;
|
|
||||||
defaultEditor = true;
|
|
||||||
client.enable = true;
|
|
||||||
socketActivation.enable = true;
|
|
||||||
startWithUserSession = false;
|
|
||||||
};
|
|
||||||
programs.emacs = {
|
programs.emacs = {
|
||||||
# Clone emacs config from https://git.xenia.me.uk/pixelifytica/emacs.git
|
# Clone emacs config from https://git.xenia.me.uk/pixelifytica/emacs.git
|
||||||
# git clone https://git.xenia.me.uk/pixelifytica/emacs.git ~/.emacs.d
|
# git clone https://git.xenia.me.uk/pixelifytica/emacs.git ~/.config/emacs
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.emacs29-pgtk;
|
package = pkgs.emacs29-pgtk;
|
||||||
extraConfig = let
|
extraConfig = let
|
||||||
|
shell = "${pkgs.zsh}/bin/zsh";
|
||||||
|
font = "${fonts.monospace.name}-${toString fonts.sizes.applications}";
|
||||||
fixed-font-family = "${fonts.monospace.name}";
|
fixed-font-family = "${fonts.monospace.name}";
|
||||||
variable-font-family = "${fonts.sansSerif.name}";
|
variable-font-family = "${fonts.sansSerif.name}";
|
||||||
font-height = builtins.toString (builtins.floor (builtins.mul fonts.sizes.applications 10));
|
alpha = "90";
|
||||||
custom-theme-name = "nix";
|
|
||||||
custom-theme = pkgs.writeTextFile {
|
|
||||||
name = "custom-emacs-theme";
|
|
||||||
destination = "/${custom-theme-name}-theme.el";
|
|
||||||
text = ''
|
|
||||||
(deftheme ${custom-theme-name}
|
|
||||||
"Use Nix customised fonts for main faces")
|
|
||||||
|
|
||||||
(custom-theme-set-variables
|
|
||||||
'${custom-theme-name}
|
|
||||||
'(menu-bar-mode nil))
|
|
||||||
|
|
||||||
(custom-theme-set-faces
|
|
||||||
'${custom-theme-name}
|
|
||||||
'(default ((t (:family "${fixed-font-family}" :height ${font-height}))))
|
|
||||||
'(fixed-pitch ((t (:family "${fixed-font-family}"))))
|
|
||||||
'(fixed-pitch-serif ((t (:family "${fixed-font-family}"))))
|
|
||||||
'(variable-pitch ((t (:family "${variable-font-family}")))))
|
|
||||||
|
|
||||||
(provide-theme '${custom-theme-name})
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
custom-theme-hash = builtins.hashFile "sha256" "${custom-theme}/${custom-theme-name}-theme.el";
|
|
||||||
in ''
|
in ''
|
||||||
(add-to-list 'custom-theme-load-path "${custom-theme}")
|
(customize-set-variable 'shell-file-name "${shell}")
|
||||||
(add-to-list 'custom-safe-themes "${custom-theme-hash}")
|
(add-to-list 'initial-frame-alist '(font . "${font}"))
|
||||||
(load-theme '${custom-theme-name})
|
(add-to-list 'default-frame-alist '(font . "${font}"))
|
||||||
|
(set-face-attribute 'fixed-pitch nil :family "${fixed-font-family}")
|
||||||
|
(set-face-attribute 'fixed-pitch-serif nil :family "${fixed-font-family}")
|
||||||
|
(set-face-attribute 'variable-pitch nil :family "${variable-font-family}")
|
||||||
|
(add-to-list 'initial-frame-alist '(alpha-background . ${alpha}))
|
||||||
|
(add-to-list 'default-frame-alist '(alpha-background . ${alpha}))
|
||||||
|
(menu-bar-mode -1)
|
||||||
'';
|
'';
|
||||||
extraPackages = epkgs:
|
extraPackages = epkgs:
|
||||||
with epkgs; [
|
with epkgs; [
|
||||||
|
@ -107,7 +78,6 @@
|
||||||
flymake-popon
|
flymake-popon
|
||||||
flymake-shellcheck
|
flymake-shellcheck
|
||||||
flymake-yamllint
|
flymake-yamllint
|
||||||
flymake-eslint
|
|
||||||
apheleia
|
apheleia
|
||||||
envrc
|
envrc
|
||||||
rainbow-delimiters
|
rainbow-delimiters
|
||||||
|
@ -122,6 +92,7 @@
|
||||||
# org-mode
|
# org-mode
|
||||||
org-roam
|
org-roam
|
||||||
org-noter
|
org-noter
|
||||||
|
org-journal
|
||||||
|
|
||||||
# org-cite
|
# org-cite
|
||||||
citar
|
citar
|
||||||
|
@ -134,8 +105,6 @@
|
||||||
ibuffer-project
|
ibuffer-project
|
||||||
magit
|
magit
|
||||||
forge
|
forge
|
||||||
treemacs
|
|
||||||
treemacs-nerd-icons
|
|
||||||
|
|
||||||
# Writing
|
# Writing
|
||||||
markdown-mode
|
markdown-mode
|
||||||
|
@ -144,10 +113,8 @@
|
||||||
auctex-latexmk
|
auctex-latexmk
|
||||||
latex-preview-pane
|
latex-preview-pane
|
||||||
|
|
||||||
# Contacts
|
# Email
|
||||||
bbdb
|
|
||||||
mu4e
|
mu4e
|
||||||
ement
|
|
||||||
|
|
||||||
# RSS feeds
|
# RSS feeds
|
||||||
elfeed
|
elfeed
|
||||||
|
@ -155,6 +122,26 @@
|
||||||
elfeed-tube
|
elfeed-tube
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
services = {
|
||||||
|
emacs = {
|
||||||
|
enable = true;
|
||||||
|
package = config.programs.emacs.finalPackage;
|
||||||
|
defaultEditor = true;
|
||||||
|
client.enable = true;
|
||||||
|
socketActivation.enable = true;
|
||||||
|
startWithUserSession = false;
|
||||||
|
};
|
||||||
|
git-sync.repositories = with config.xdg.userDirs; {
|
||||||
|
org = {
|
||||||
|
path = "${documents}/Org";
|
||||||
|
uri = "git+https://git.xenia.me.uk/xenia/org.git";
|
||||||
|
};
|
||||||
|
references = {
|
||||||
|
path = "${documents}/References";
|
||||||
|
uri = "git+https://git.xenia.me.uk/xenia/references.git";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# Emacs requirements
|
# Emacs requirements
|
||||||
imagemagick
|
imagemagick
|
||||||
|
@ -170,32 +157,29 @@
|
||||||
poppler_utils
|
poppler_utils
|
||||||
|
|
||||||
# Customised LaTeX install
|
# Customised LaTeX install
|
||||||
(texlive.combine
|
(texlive.combine {
|
||||||
{inherit (pkgs.texlive) scheme-medium dvisvgm dvipng wrapfig amsmath ulem hyperref capt-of;})
|
inherit (pkgs.texlive) scheme-medium dvisvgm dvipng wrapfig amsmath ulem hyperref capt-of;
|
||||||
|
})
|
||||||
python3Packages.pygments
|
python3Packages.pygments
|
||||||
|
|
||||||
# Development tools
|
# Development tools
|
||||||
## Code screenshots
|
# Python is a special case, installed separately
|
||||||
silicon
|
## Language servers
|
||||||
|
nil
|
||||||
|
fortls
|
||||||
|
lua-language-server
|
||||||
|
nodePackages.bash-language-server
|
||||||
|
|
||||||
## Linters
|
## Linters
|
||||||
shellcheck
|
shellcheck
|
||||||
yamllint
|
yamllint
|
||||||
nodePackages.eslint
|
|
||||||
|
|
||||||
## Formatters
|
## Formatters
|
||||||
alejandra
|
alejandra
|
||||||
shfmt
|
shfmt
|
||||||
ruff
|
ruff
|
||||||
black
|
|
||||||
isort
|
isort
|
||||||
stylua
|
stylua
|
||||||
nodePackages.prettier
|
nodePackages.prettier
|
||||||
|
|
||||||
## Language servers
|
|
||||||
nil # Nix lsp
|
|
||||||
lua-language-server
|
|
||||||
nodePackages.pyright
|
|
||||||
nodePackages.typescript-language-server
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
home.packages = with pkgs;
|
|
||||||
with nodePackages; [
|
|
||||||
nodejs
|
|
||||||
typescript
|
|
||||||
];
|
|
||||||
}
|
|
198
programs/firefox/bookmarks/bookmarks.json
Normal file
|
@ -0,0 +1,198 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "Social",
|
||||||
|
"bookmarks": [{ "name": "Mastodon", "url": "https://tech.lgbt" }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Travel",
|
||||||
|
"bookmarks": [{ "name": "ABRP", "url": "https://abetterrouteplanner.com/" }]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Software",
|
||||||
|
"bookmarks": [
|
||||||
|
{
|
||||||
|
"name": "Git",
|
||||||
|
"bookmarks": [
|
||||||
|
{
|
||||||
|
"name": "Forgejo",
|
||||||
|
"url": "https://git.xenia.me.uk",
|
||||||
|
"tags": ["personal"]
|
||||||
|
},
|
||||||
|
{ "name": "GitHub", "url": "https://github.com" },
|
||||||
|
{
|
||||||
|
"name": "CCFE GitLab",
|
||||||
|
"url": "https://git.ccfe.ac.uk",
|
||||||
|
"tags": ["work"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Documentation",
|
||||||
|
"bookmarks": [
|
||||||
|
{
|
||||||
|
"name": "Nix",
|
||||||
|
"bookmarks": [
|
||||||
|
{
|
||||||
|
"name": "NixOS and Flakes",
|
||||||
|
"url": "https://nixos-and-flakes.thiscute.world/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Home Manager",
|
||||||
|
"url": "https://nix-community.github.io/home-manager/options.xhtml"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ "name": "Emacs", "bookmarks": [] },
|
||||||
|
{ "name": "Python", "bookmarks": [] },
|
||||||
|
{ "name": "Lua", "bookmarks": [] }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Repositories",
|
||||||
|
"bookmarks": [
|
||||||
|
{
|
||||||
|
"name": "Awesome Emacs",
|
||||||
|
"url": "https://github.com/emacs-tw/awesome-emacs"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Wikis",
|
||||||
|
"bookmarks": [
|
||||||
|
{
|
||||||
|
"name": "NixOS Wiki",
|
||||||
|
"url": "https://nixos.wiki"
|
||||||
|
},
|
||||||
|
{ "name": "Arch Wiki", "url": "https://wiki.archlinux.org" },
|
||||||
|
{
|
||||||
|
"name": "OpenWiki",
|
||||||
|
"bookmarks": [
|
||||||
|
{
|
||||||
|
"name": "Homepage",
|
||||||
|
"url": "https://wiki.jetdata.eu/open/index.php?title=Main_Page"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Diagnostic Coordinator",
|
||||||
|
"url": "https://wiki.jetdata.eu/open/index.php?title=Diagnostic_Coordinator_Wiki"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Spectroscopy Group",
|
||||||
|
"url": "https://wiki.jetdata.eu/open/index.php?title=Spectroscopy_Group:index"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "KS5",
|
||||||
|
"url": "https://wiki.jetdata.eu/open/index.php?title=CXS:Topic3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "KT3",
|
||||||
|
"url": "https://wiki.jetdata.eu/open/index.php?title=KT3_Journals"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Work",
|
||||||
|
"bookmarks": [
|
||||||
|
{ "name": "Nucleus", "url": "https://nucleus.ukaea.uk/" },
|
||||||
|
{
|
||||||
|
"name": "Marval",
|
||||||
|
"url": "https://marval.service.ukaea.uk/MSMSelfService/Index.aspx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "U4BW",
|
||||||
|
"url": "https://ubw.unit4cloud.com/uk_aea_prod_web/Login/Login.aspx"
|
||||||
|
},
|
||||||
|
{ "name": "OPEN-ADAS", "url": "https://open.adas.ac.uk/" },
|
||||||
|
{
|
||||||
|
"name": "JET",
|
||||||
|
"bookmarks": [
|
||||||
|
{ "name": "Homepage", "url": "http://w3.jet.uk" },
|
||||||
|
{
|
||||||
|
"name": "Physics Summary",
|
||||||
|
"url": "https://users.euro-fusion.org/pages/physics-summary/LatestSession.php"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "JSPO Reports",
|
||||||
|
"url": "https://www.jspo.jet.uk/pages/operations/jpecreports_2023.html"
|
||||||
|
},
|
||||||
|
{ "name": "DVCM Homepage", "url": "https://dvcm.jetdata.eu/" },
|
||||||
|
{
|
||||||
|
"name": "Data",
|
||||||
|
"bookmarks": [
|
||||||
|
{
|
||||||
|
"name": "JET Data Services",
|
||||||
|
"url": "https://data.jet.uk"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "PPF Query",
|
||||||
|
"url": "https://data.jet.uk/ppf/browse/ppfquery"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ReqCo",
|
||||||
|
"url": "https://data.jet.uk/reqco/myrequests"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mimics",
|
||||||
|
"bookmarks": [
|
||||||
|
{
|
||||||
|
"name": "Countdown",
|
||||||
|
"url": "http://webmimic.jet.uk/mc/codas/countdown"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "KS5",
|
||||||
|
"url": "http://webmimic.jet.uk/DG/codas/ks5.mim.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "KT3",
|
||||||
|
"url": "http://webmimic.jet.uk/DG/codas/kt3spec.mim.html"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MAST-U",
|
||||||
|
"bookmarks": [
|
||||||
|
{ "name": "Users Page", "url": "https://users.mastu.ukaea.uk/home" },
|
||||||
|
{
|
||||||
|
"name": "Diagnostic Handbook",
|
||||||
|
"url": "https://intranet.ccfe.ac.uk/mastu-handbook"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Data Access and Tools",
|
||||||
|
"url": "https://users.mastu.ukaea.uk/data-access-and-tools"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Office",
|
||||||
|
"bookmarks": [
|
||||||
|
{
|
||||||
|
"name": "Outlook Calendar",
|
||||||
|
"url": "https://outlook.office.com/calendar/view/workweek"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Teams",
|
||||||
|
"url": "https://teams.microsoft.com/v2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "OneDrive",
|
||||||
|
"url": "https://ukaeauk-my.sharepoint.com/personal/evie_litherland-smith_ukaea_uk/"
|
||||||
|
},
|
||||||
|
{ "name": "Sharepoint", "url": "https://ukaeauk.sharepoint.com/" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Miscellaneous",
|
||||||
|
"bookmarks": [
|
||||||
|
{ "name": "NHS App", "url": "https://www.nhsapp.service.nhs.uk/login" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
27
programs/firefox/bookmarks/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
lib: let
|
||||||
|
withTag = {
|
||||||
|
bookmarks,
|
||||||
|
tags,
|
||||||
|
}: (
|
||||||
|
map (x:
|
||||||
|
if (builtins.hasAttr "bookmarks" x)
|
||||||
|
then {
|
||||||
|
inherit (x) name;
|
||||||
|
toolbar = false;
|
||||||
|
bookmarks = withTag {
|
||||||
|
inherit (x) bookmarks;
|
||||||
|
tags = [(builtins.toString x.name)] ++ tags;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
inherit (x) name url;
|
||||||
|
tags = (x.tags or []) ++ tags;
|
||||||
|
})
|
||||||
|
bookmarks
|
||||||
|
);
|
||||||
|
in (
|
||||||
|
withTag {
|
||||||
|
bookmarks = builtins.fromJSON (builtins.readFile ./bookmarks.json);
|
||||||
|
tags = [];
|
||||||
|
}
|
||||||
|
)
|
|
@ -1,4 +1,8 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
programs = {
|
programs = {
|
||||||
browserpass = {
|
browserpass = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -24,7 +28,7 @@
|
||||||
DisableSetDesktopBackground = true;
|
DisableSetDesktopBackground = true;
|
||||||
DisableSystemAddonUpdate = true;
|
DisableSystemAddonUpdate = true;
|
||||||
DisableTelemetry = true;
|
DisableTelemetry = true;
|
||||||
DisplayBookmarksToolbar = "never";
|
DisplayBookmarksToolbar = "newtab";
|
||||||
DisplayMenuBar = "default-off";
|
DisplayMenuBar = "default-off";
|
||||||
DontCheckDefaultBrowser = true;
|
DontCheckDefaultBrowser = true;
|
||||||
EnableTrackingProtection = {
|
EnableTrackingProtection = {
|
||||||
|
@ -50,6 +54,10 @@
|
||||||
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;
|
||||||
|
@ -90,7 +98,6 @@
|
||||||
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;
|
||||||
|
@ -102,7 +109,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" = "default-theme@mozilla.org";
|
"extensions.activeThemeID" = "{c6698fd1-fe9b-4eae-95d5-fe1703820469}";
|
||||||
"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";
|
||||||
|
@ -115,7 +122,7 @@
|
||||||
"browser.newtabpage.pinned" = [
|
"browser.newtabpage.pinned" = [
|
||||||
{
|
{
|
||||||
title = "NixOS Wiki";
|
title = "NixOS Wiki";
|
||||||
url = "https://wiki.nixos.org";
|
url = "https://nixos.wiki";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
title = "Arch Wiki";
|
title = "Arch Wiki";
|
||||||
|
@ -123,6 +130,13 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
bookmarks = [
|
||||||
|
{
|
||||||
|
name = "toplevel";
|
||||||
|
toolbar = true;
|
||||||
|
bookmarks = import ./bookmarks/default.nix lib;
|
||||||
|
}
|
||||||
|
];
|
||||||
search = rec {
|
search = rec {
|
||||||
default = "DuckDuckGo";
|
default = "DuckDuckGo";
|
||||||
privateDefault = default;
|
privateDefault = default;
|
|
@ -1,7 +1,11 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
wineWowPackages.waylandFull
|
wineWowPackages.waylandFull
|
||||||
cartridges
|
|
||||||
lutris
|
lutris
|
||||||
prismlauncher
|
prismlauncher
|
||||||
(retroarch.override {
|
(retroarch.override {
|
||||||
|
|
6
programs/niri/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {}
|
122
programs/nyxt/bookmarks.lisp
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
(
|
||||||
|
;; Personal
|
||||||
|
|
||||||
|
;; Messaging
|
||||||
|
( :url "https://web.whatsapp.com/"
|
||||||
|
:title "WhatApp Web"
|
||||||
|
:tags ("personal" "messaging"))
|
||||||
|
( :url "https://discord.com/app"
|
||||||
|
:title "Discord"
|
||||||
|
:tags ("personal" "messaging"))
|
||||||
|
;; Server
|
||||||
|
( :url "https://xenia.me.uk"
|
||||||
|
:title "Home Page"
|
||||||
|
:tags ("personal" "server"))
|
||||||
|
( :url "https://git.xenia.me.uk"
|
||||||
|
:title "Forgejo"
|
||||||
|
:tags ("personal" "server" "dev" "git"))
|
||||||
|
( :url "https://blog.xenia.me.uk"
|
||||||
|
:title "Blog"
|
||||||
|
:tags ("personal" "server"))
|
||||||
|
;; Dev
|
||||||
|
( :url "https://github.com"
|
||||||
|
:title "GitHub"
|
||||||
|
:tags ("personal" "dev" "git"))
|
||||||
|
;; EV
|
||||||
|
( :url "https://abetterrouteplanner.com/"
|
||||||
|
:title "ABRP - A Better Route Planner"
|
||||||
|
:tags ("personal" "ev" "map"))
|
||||||
|
;; Documentation
|
||||||
|
( :url "https://nixos-and-flakes.thiscute.world/"
|
||||||
|
:title "NixOS and Flakes"
|
||||||
|
:tags ("personal" "documentation"))
|
||||||
|
( :url "https://nix-community.github.io/home-manager/options.xhtml"
|
||||||
|
:title "Home Manager Configuration Options"
|
||||||
|
:tags ("personal" "documentation"))
|
||||||
|
( :url "https://mipmip.github.io/home-manager-option-search/"
|
||||||
|
:title "Home Manager Option Search"
|
||||||
|
:tags ("personal" "documentation"))
|
||||||
|
;; Awesome Repos
|
||||||
|
( :url "https://github.com/emacs-tw/awesome-emacs"
|
||||||
|
:title "Awesome Emacs"
|
||||||
|
:tags ("personal" "awesome" "git"))
|
||||||
|
;; Miscellaneous
|
||||||
|
( :url "https://www.colorhexa.com/"
|
||||||
|
:title "Colour Encyclopedia"
|
||||||
|
:tags ("personal" "miscellaneous"))
|
||||||
|
|
||||||
|
;; Work
|
||||||
|
|
||||||
|
( :url "https://nucleus.ukaea.uk/"
|
||||||
|
:title "Nucleus"
|
||||||
|
:tags ("work"))
|
||||||
|
( :url "https://marval.service.ukaea.uk/MSMSelfService/Index.aspx"
|
||||||
|
:title "Marval Helpdesk"
|
||||||
|
:tags ("work"))
|
||||||
|
( :url "https://ubw.unit4cloud.com/uk_aea_prod_web/Login/Login.aspx"
|
||||||
|
:title "Unit4 Business World"
|
||||||
|
:tags ("work"))
|
||||||
|
;; Dev
|
||||||
|
( :url "https://git.ccfe.ac.uk/"
|
||||||
|
:title "GitLab (CCFE)"
|
||||||
|
:tags ("work" "dev" "git"))
|
||||||
|
;; JET
|
||||||
|
( :url "http://w3.jet.uk/"
|
||||||
|
:title "JET Homepage"
|
||||||
|
:tags ("work" "jet"))
|
||||||
|
( :url "https://users.euro-fusion.org/pages/physics-summary/LatestSession.php"
|
||||||
|
:title "JET Physics Summary"
|
||||||
|
:tags ("work" "jet"))
|
||||||
|
( :url "https://www.jspo.jet.uk/pages/operations/jpecreports_2023.html"
|
||||||
|
:title "JSPO JPEC Reports"
|
||||||
|
:tags ("work" "jet"))
|
||||||
|
( :url "https://dvcm.jetdata.eu/"
|
||||||
|
:title "DVCM Homepage"
|
||||||
|
:tags ("work" "jet"))
|
||||||
|
;; JET Data Services
|
||||||
|
( :url "https://data.jet.uk/"
|
||||||
|
:title "JET Data Services"
|
||||||
|
:tags ("work" "jet" "data"))
|
||||||
|
( :url "https://data.jet.uk/ppf/browse/ppfquery"
|
||||||
|
:title "PPF Query"
|
||||||
|
:tags ("work" "jet" "data"))
|
||||||
|
( :url "https://data.jet.uk/reqco/myrequests"
|
||||||
|
:title "ReqCo"
|
||||||
|
:tags ("work" "jet" "data"))
|
||||||
|
;; MAST-U
|
||||||
|
( :url "https://users.mastu.ukaea.uk/home"
|
||||||
|
:title "MAST-U Users Page"
|
||||||
|
:tags ("work" "mast-u"))
|
||||||
|
( :url "https://intranet.ccfe.ac.uk/mastu-handbook"
|
||||||
|
:title "MAST-U Diagnostic Handbook"
|
||||||
|
:tags ("work" "mast-u"))
|
||||||
|
;; OpenWiki
|
||||||
|
( :url "https://wiki.jetdata.eu/open/index.php?title=Main_Page"
|
||||||
|
:title "OpenWiki Homepage"
|
||||||
|
:tags ("work" "openwiki"))
|
||||||
|
( :url "https://wiki.jetdata.eu/open/index.php?title=Diagnostic_Coordinator_Wiki"
|
||||||
|
:title "Diagnostic Coordinator Wiki"
|
||||||
|
:tags ("work" "openwiki"))
|
||||||
|
( :url "https://wiki.jetdata.eu/open/index.php?title=Spectroscopy_Group:index"
|
||||||
|
:title "Spectroscopy Group Wiki"
|
||||||
|
:tags ("work" "openwiki"))
|
||||||
|
( :url "https://wiki.jetdata.eu/open/index.php?title=CXS:Topic3"
|
||||||
|
:title "KS5 Wiki"
|
||||||
|
:tags ("work" "openwiki"))
|
||||||
|
( :url "https://wiki.jetdata.eu/open/index.php?title=KT3_Journals"
|
||||||
|
:title "KT3 Wiki"
|
||||||
|
:tags ("work" "openwiki"))
|
||||||
|
;; Office
|
||||||
|
( :url "https://outlook.office.com/calendar/view/workweek"
|
||||||
|
:title "Outlook Calendar"
|
||||||
|
:tags ("work" "microsoft" "office"))
|
||||||
|
( :url "https://teams.microsoft.com/v2"
|
||||||
|
:title "Microsoft Teams"
|
||||||
|
:tags ("work" "microsoft" "office"))
|
||||||
|
( :url "https://ukaeauk-my.sharepoint.com/personal/evie_litherland-smith_ukaea_uk/"
|
||||||
|
:title "OneDrive"
|
||||||
|
:tags ("work" "microsoft" "office"))
|
||||||
|
( :url "https://ukaeauk.sharepoint.com/"
|
||||||
|
:title "Sharepoint"
|
||||||
|
:tags ("work" "microsoft" "office"))
|
||||||
|
)
|
|
@ -2,9 +2,7 @@
|
||||||
((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)
|
||||||
|
@ -12,12 +10,10 @@
|
||||||
|
|
||||||
(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 "σ")))
|
||||||
|
@ -54,7 +50,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://html.duckduckgo.com/html/?q=~a" "https://html.duckduckgo.com/"))
|
'("ddg" "https://duckduckgo.com/?q=~a" "https://duckduckgo.com/"))
|
||||||
"List of search engines.")
|
"List of search engines.")
|
||||||
|
|
||||||
(define-configuration context-buffer
|
(define-configuration context-buffer
|
||||||
|
@ -66,4 +62,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:light")
|
(setf (uiop/os:getenv "GTK_THEME") "Adwaita:dark")
|
42
programs/nyxt/default.nix
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
fonts,
|
||||||
|
accentColour ? "base07",
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = [pkgs.nyxt];
|
||||||
|
xdg = {
|
||||||
|
configFile = {
|
||||||
|
"nyxt/config.lisp".text = with config.scheme.withHashtag; ''
|
||||||
|
;; Import custom configuration
|
||||||
|
(nyxt::load-lisp "${./config.lisp}")
|
||||||
|
;; Define custom theme
|
||||||
|
(define-configuration browser
|
||||||
|
((theme (make-instance 'theme:theme
|
||||||
|
:dark-p t
|
||||||
|
:font-family "${fonts.sansSerif.name}"
|
||||||
|
:monospace-font-family "${fonts.monospace.name}"
|
||||||
|
:background-color "${base00}"
|
||||||
|
:on-background-color "${base05}"
|
||||||
|
:primary-color "${config.scheme.withHashtag.${accentColour}}"
|
||||||
|
:on-primary-color "${base01}"
|
||||||
|
:secondary-color "${base03}"
|
||||||
|
:on-secondary-color "${base05}"
|
||||||
|
:accent-color "${cyan}"
|
||||||
|
:on-accent-color "${base01}"
|
||||||
|
:action-color "${cyan}"
|
||||||
|
:on-action-color "${base01}"
|
||||||
|
:success-color "${green}"
|
||||||
|
:on-success-color "${base01}"
|
||||||
|
:highlight-color "${magenta}"
|
||||||
|
:on-highlight-color "${base01}"
|
||||||
|
:warning-color "${yellow}"
|
||||||
|
:on-warning-color "${base01}"
|
||||||
|
:codeblock-color "${base02}"
|
||||||
|
:on-codeblock-color "${base05}"))))
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
# dataFile."nyxt/bookmarks.lisp".source = ./bookmarks.lisp;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,10 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
home.packages = with pkgs;
|
home.packages = with pkgs; [helvum];
|
||||||
with kdePackages; [
|
|
||||||
helvum
|
|
||||||
kdenlive
|
|
||||||
krita
|
|
||||||
];
|
|
||||||
programs.obs-studio = {
|
programs.obs-studio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
plugins = with pkgs.obs-studio-plugins; [
|
|
@ -8,6 +8,8 @@
|
||||||
(python3.withPackages
|
(python3.withPackages
|
||||||
(ps:
|
(ps:
|
||||||
with ps; [
|
with ps; [
|
||||||
|
python-lsp-server
|
||||||
|
mypy
|
||||||
numpy
|
numpy
|
||||||
scipy
|
scipy
|
||||||
xarray
|
xarray
|
|
@ -5,7 +5,6 @@ select = [
|
||||||
"B", # Flake8 bugbear rules
|
"B", # Flake8 bugbear rules
|
||||||
"PD", # Pandas vet rules
|
"PD", # Pandas vet rules
|
||||||
"NPY", # NumPy specific rules
|
"NPY", # NumPy specific rules
|
||||||
"NPY201", # NumPy 2.0 deprecation warnings
|
|
||||||
"RUF", # Ruff specific rules
|
"RUF", # Ruff specific rules
|
||||||
"PERF1", "PERF2", # Performance lints from Perflint
|
"PERF1", "PERF2", # Performance lints from Perflint
|
||||||
"E101", # Mixed spaces and tabs
|
"E101", # Mixed spaces and tabs
|
|
@ -1,45 +1,35 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
accentColourName,
|
accentColour ? "base07",
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.bottom = {
|
programs.bottom = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings.colors = with config.scheme.withHashtag; let
|
||||||
flags = {
|
rainbow = [red yellow green cyan blue magenta];
|
||||||
group_processes = true;
|
in {
|
||||||
temperature_type = "celsius";
|
table_header_color = base05;
|
||||||
battery = true;
|
all_cpu_color = base05;
|
||||||
enable_gpu = true;
|
avg_cpu_color = base05;
|
||||||
enable_cache_memory = true;
|
cpu_core_colors = rainbow;
|
||||||
};
|
ram_color = red;
|
||||||
colors = let
|
cache_color = green;
|
||||||
sc = config.scheme.withHashtag;
|
swap_color = blue;
|
||||||
rainbow = with sc; [red yellow green cyan blue magenta];
|
rx_color = green;
|
||||||
in {
|
tx_color = blue;
|
||||||
table_header_color = sc.base05;
|
widget_title_color = config.scheme.withHashtag.${accentColour};
|
||||||
all_cpu_color = sc.base05;
|
border_color = base02;
|
||||||
avg_cpu_color = sc.base05;
|
highlighted_border_color = config.scheme.withHashtag.${accentColour};
|
||||||
cpu_core_colors = rainbow;
|
text_color = base05;
|
||||||
ram_color = sc.red;
|
graph_color = base04;
|
||||||
cache_color = sc.green;
|
cursor_color = base02;
|
||||||
swap_color = sc.blue;
|
selected_text_color = base05;
|
||||||
rx_color = sc.green;
|
selected_bg_color = base01;
|
||||||
tx_color = sc.blue;
|
high_battery_color = green;
|
||||||
widget_title_color = sc.${accentColourName};
|
medium_battery_color = yellow;
|
||||||
border_color = sc.base02;
|
low_battery_color = red;
|
||||||
highlighted_border_color = sc.${accentColourName};
|
gpu_core_colors = rainbow;
|
||||||
text_color = sc.base05;
|
arc_color = cyan;
|
||||||
graph_color = sc.base04;
|
|
||||||
cursor_color = sc.base02;
|
|
||||||
selected_text_color = sc.base05;
|
|
||||||
selected_bg_color = sc.base01;
|
|
||||||
high_battery_color = sc.green;
|
|
||||||
medium_battery_color = sc.yellow;
|
|
||||||
low_battery_color = sc.red;
|
|
||||||
gpu_core_colors = rainbow;
|
|
||||||
arc_color = sc.cyan;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
2021
programs/shell/catppuccinFrappe.tmTheme
Normal file
2021
programs/shell/catppuccinLatte.tmTheme
Normal file
2021
programs/shell/catppuccinMacchiato.tmTheme
Normal file
2021
programs/shell/catppuccinMocha.tmTheme
Normal file
|
@ -1,28 +1,35 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./bottom.nix
|
|
||||||
./fastfetch.nix
|
|
||||||
./git.nix
|
./git.nix
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./starship.nix
|
./starship.nix
|
||||||
./zsh.nix
|
./bottom.nix
|
||||||
];
|
./zellij.nix
|
||||||
home.packages = with pkgs; [
|
|
||||||
rclone
|
|
||||||
git-sync
|
|
||||||
du-dust
|
|
||||||
];
|
];
|
||||||
|
xdg.configFile = let
|
||||||
|
variants = ["Latte" "Frappe" "Macchiato" "Mocha"];
|
||||||
|
mkVariant = variant: let
|
||||||
|
fname = "catppuccin${variant}.tmTheme";
|
||||||
|
in {
|
||||||
|
name = "bat/themes/${fname}";
|
||||||
|
value = {source = ./. + "/${fname}";};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
builtins.listToAttrs
|
||||||
|
(lib.lists.forEach variants mkVariant);
|
||||||
programs = {
|
programs = {
|
||||||
bash.enable = true;
|
bash.enable = true;
|
||||||
bat = {
|
bat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config.theme = "catppuccinMocha";
|
||||||
theme = "OneHalfLight";
|
|
||||||
style = "plain,numbers,changes";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
eza = {
|
eza = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableAliases = true;
|
||||||
git = true;
|
git = true;
|
||||||
icons = true;
|
icons = true;
|
||||||
extraOptions = ["--octal-permissions"];
|
extraOptions = ["--octal-permissions"];
|
||||||
|
@ -31,14 +38,44 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
};
|
};
|
||||||
fd.enable = true;
|
|
||||||
fzf = {
|
fzf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultCommand = "${pkgs.fd}/bin/fd --type f";
|
defaultCommand = "${pkgs.fd}/bin/fd --type f";
|
||||||
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
|
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
|
||||||
fileWidgetCommand = "${pkgs.fd}/bin/fd --type f";
|
fileWidgetCommand = "${pkgs.fd}/bin/fd --type f";
|
||||||
};
|
};
|
||||||
jq.enable = true;
|
zsh = {
|
||||||
ripgrep.enable = true;
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
enableAutosuggestions = true;
|
||||||
|
enableVteIntegration = true;
|
||||||
|
autocd = true;
|
||||||
|
defaultKeymap = "emacs";
|
||||||
|
syntaxHighlighting = {
|
||||||
|
enable = true;
|
||||||
|
highlighters = ["brackets" "cursor"];
|
||||||
|
};
|
||||||
|
historySubstringSearch.enable = true;
|
||||||
|
history = {
|
||||||
|
extended = true;
|
||||||
|
share = true;
|
||||||
|
ignoreDups = true;
|
||||||
|
ignoreAllDups = true;
|
||||||
|
ignoreSpace = true;
|
||||||
|
expireDuplicatesFirst = true;
|
||||||
|
};
|
||||||
|
shellAliases = {
|
||||||
|
nixos-switch = "sudo nixos-rebuild switch --flake flake:my-nixos --show-trace";
|
||||||
|
home-manager-switch = "nix run flake:my-home-manager -- switch --flake flake:my-home-manager --show-trace";
|
||||||
|
};
|
||||||
|
initExtra = ''
|
||||||
|
## completion config and styling
|
||||||
|
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
||||||
|
zstyle ':completion:*' menu 'select=long-list'
|
||||||
|
|
||||||
|
## transient prompt
|
||||||
|
source ${./transient.zsh}
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
{...}: {
|
|
||||||
programs.fastfetch = {
|
|
||||||
enable = true;
|
|
||||||
settings = {};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -5,13 +5,16 @@
|
||||||
];
|
];
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
addKeysToAgent = "yes";
|
|
||||||
forwardAgent = true;
|
forwardAgent = true;
|
||||||
compression = true;
|
compression = true;
|
||||||
serverAliveInterval = 15;
|
serverAliveInterval = 15;
|
||||||
serverAliveCountMax = 3;
|
serverAliveCountMax = 3;
|
||||||
controlMaster = "auto";
|
controlMaster = "auto";
|
||||||
controlPersist = "10s";
|
controlPersist = "10s";
|
||||||
|
extraConfig = ''
|
||||||
|
AddKeysToAgent=yes
|
||||||
|
SetEnv TERM=xterm-256color
|
||||||
|
'';
|
||||||
matchBlocks = {
|
matchBlocks = {
|
||||||
"git*".user = "git";
|
"git*".user = "git";
|
||||||
"legion" = {
|
"legion" = {
|
||||||
|
@ -28,11 +31,13 @@
|
||||||
};
|
};
|
||||||
"freia" = {
|
"freia" = {
|
||||||
user = "elitherl";
|
user = "elitherl";
|
||||||
hostname = "freia027.hpc.l";
|
hostname = "freia020.hpc.l";
|
||||||
|
forwardX11Trusted = true;
|
||||||
};
|
};
|
||||||
"heimdall" = {
|
"heimdall" = {
|
||||||
user = "elitherl";
|
user = "elitherl";
|
||||||
hostname = "heimdall003.jet.uk";
|
hostname = "heimdall003.jet.uk";
|
||||||
|
forwardX11Trusted = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
enableTransience = true;
|
enableTransience = true;
|
||||||
settings = {
|
settings = {
|
||||||
add_newline = false;
|
add_newline = false;
|
||||||
|
c = {symbol = " ";};
|
||||||
character = {
|
character = {
|
||||||
success_symbol = "[ ](bold green)";
|
success_symbol = "[ ](bold green)";
|
||||||
error_symbol = "[ ](bold red)";
|
error_symbol = "[ ](bold red)";
|
||||||
|
@ -17,6 +18,7 @@
|
||||||
};
|
};
|
||||||
direnv = {disabled = false;};
|
direnv = {disabled = false;};
|
||||||
git_branch = {
|
git_branch = {
|
||||||
|
symbol = " ";
|
||||||
only_attached = true;
|
only_attached = true;
|
||||||
ignore_branches = ["master" "main"];
|
ignore_branches = ["master" "main"];
|
||||||
};
|
};
|
||||||
|
@ -47,12 +49,46 @@
|
||||||
jobs = {symbol = " ";};
|
jobs = {symbol = " ";};
|
||||||
line_break = {disabled = false;};
|
line_break = {disabled = false;};
|
||||||
localip = {disabled = false;};
|
localip = {disabled = false;};
|
||||||
|
lua = {symbol = " ";};
|
||||||
memory_usage = {disabled = false;};
|
memory_usage = {disabled = false;};
|
||||||
|
nodejs = {symbol = " ";};
|
||||||
os = {
|
os = {
|
||||||
disabled = false;
|
disabled = false;
|
||||||
format = "on [$symbol]($style) ";
|
format = "on [$symbol]($style) ";
|
||||||
|
symbols = {
|
||||||
|
Alpine = " ";
|
||||||
|
Arch = " ";
|
||||||
|
Artix = " ";
|
||||||
|
CentOS = " ";
|
||||||
|
Debian = " ";
|
||||||
|
EndeavourOS = " ";
|
||||||
|
Fedora = " ";
|
||||||
|
FreeBSD = " ";
|
||||||
|
Gentoo = " ";
|
||||||
|
Illumos = " ";
|
||||||
|
Linux = " ";
|
||||||
|
Macos = " ";
|
||||||
|
Manjaro = " ";
|
||||||
|
Mint = " ";
|
||||||
|
NixOS = " ";
|
||||||
|
OpenBSD = " ";
|
||||||
|
openSUSE = " ";
|
||||||
|
Pop = " ";
|
||||||
|
Raspbian = " ";
|
||||||
|
Redhat = " ";
|
||||||
|
RedHatEnterprise = " ";
|
||||||
|
Solus = " ";
|
||||||
|
SUSE = " ";
|
||||||
|
Ubuntu = " ";
|
||||||
|
Unknown = " ";
|
||||||
|
Windows = " ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
package = {symbol = " ";};
|
||||||
|
python = {
|
||||||
|
python_binary = "python3";
|
||||||
|
symbol = " ";
|
||||||
};
|
};
|
||||||
python.python_binary = "python3";
|
|
||||||
shell = {
|
shell = {
|
||||||
disabled = false;
|
disabled = false;
|
||||||
format = "using [$indicator ]($style)";
|
format = "using [$indicator ]($style)";
|
||||||
|
@ -69,89 +105,6 @@
|
||||||
signal_symbol = " ";
|
signal_symbol = " ";
|
||||||
};
|
};
|
||||||
sudo = {disabled = false;};
|
sudo = {disabled = false;};
|
||||||
# Nerd Font symbol config
|
|
||||||
# from `starship preset nerd-font-symbols`
|
|
||||||
aws.symbol = " ";
|
|
||||||
buf.symbol = " ";
|
|
||||||
c.symbol = " ";
|
|
||||||
conda.symbol = " ";
|
|
||||||
crystal.symbol = " ";
|
|
||||||
dart.symbol = " ";
|
|
||||||
directory.read_only = " ";
|
|
||||||
docker_context.symbol = " ";
|
|
||||||
elixir.symbol = " ";
|
|
||||||
elm.symbol = " ";
|
|
||||||
fennel.symbol = " ";
|
|
||||||
fossil_branch.symbol = " ";
|
|
||||||
git_branch.symbol = " ";
|
|
||||||
golang.symbol = " ";
|
|
||||||
guix_shell.symbol = " ";
|
|
||||||
haskell.symbol = " ";
|
|
||||||
haxe.symbol = " ";
|
|
||||||
hg_branch.symbol = " ";
|
|
||||||
# hostname.ssh_symbol = " ";
|
|
||||||
java.symbol = " ";
|
|
||||||
julia.symbol = " ";
|
|
||||||
kotlin.symbol = " ";
|
|
||||||
lua.symbol = " ";
|
|
||||||
memory_usage.symbol = " ";
|
|
||||||
meson.symbol = " ";
|
|
||||||
nim.symbol = " ";
|
|
||||||
nix_shell.symbol = " ";
|
|
||||||
nodejs.symbol = " ";
|
|
||||||
ocaml.symbol = " ";
|
|
||||||
os.symbols = {
|
|
||||||
Alpaquita = " ";
|
|
||||||
Alpine = " ";
|
|
||||||
Amazon = " ";
|
|
||||||
Android = " ";
|
|
||||||
Arch = " ";
|
|
||||||
Artix = " ";
|
|
||||||
CentOS = " ";
|
|
||||||
Debian = " ";
|
|
||||||
DragonFly = " ";
|
|
||||||
Emscripten = " ";
|
|
||||||
EndeavourOS = " ";
|
|
||||||
Fedora = " ";
|
|
||||||
FreeBSD = " ";
|
|
||||||
Garuda = " ";
|
|
||||||
Gentoo = " ";
|
|
||||||
HardenedBSD = " ";
|
|
||||||
Illumos = " ";
|
|
||||||
Linux = " ";
|
|
||||||
Mabox = " ";
|
|
||||||
Macos = " ";
|
|
||||||
Manjaro = " ";
|
|
||||||
Mariner = " ";
|
|
||||||
MidnightBSD = " ";
|
|
||||||
Mint = " ";
|
|
||||||
NetBSD = " ";
|
|
||||||
NixOS = " ";
|
|
||||||
OpenBSD = " ";
|
|
||||||
openSUSE = " ";
|
|
||||||
OracleLinux = " ";
|
|
||||||
Pop = " ";
|
|
||||||
Raspbian = " ";
|
|
||||||
Redhat = " ";
|
|
||||||
RedHatEnterprise = " ";
|
|
||||||
Redox = " ";
|
|
||||||
Solus = " ";
|
|
||||||
SUSE = " ";
|
|
||||||
Ubuntu = " ";
|
|
||||||
Unknown = " ";
|
|
||||||
Windows = " ";
|
|
||||||
};
|
|
||||||
package.symbol = " ";
|
|
||||||
perl.symbol = " ";
|
|
||||||
php.symbol = " ";
|
|
||||||
pijul_channel.symbol = " ";
|
|
||||||
python.symbol = " ";
|
|
||||||
rlang.symbol = " ";
|
|
||||||
ruby.symbol = " ";
|
|
||||||
rust.symbol = " ";
|
|
||||||
scala.symbol = " ";
|
|
||||||
swift.symbol = " ";
|
|
||||||
zig.symbol = " ";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
{...}: {
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
enableCompletion = true;
|
|
||||||
autocd = true;
|
|
||||||
autosuggestion.enable = true;
|
|
||||||
defaultKeymap = "emacs";
|
|
||||||
syntaxHighlighting = {
|
|
||||||
enable = true;
|
|
||||||
highlighters = ["brackets" "cursor"];
|
|
||||||
};
|
|
||||||
historySubstringSearch.enable = true;
|
|
||||||
history = {
|
|
||||||
extended = true;
|
|
||||||
share = true;
|
|
||||||
ignoreDups = true;
|
|
||||||
ignoreAllDups = true;
|
|
||||||
ignoreSpace = true;
|
|
||||||
expireDuplicatesFirst = true;
|
|
||||||
};
|
|
||||||
initExtra = ''
|
|
||||||
## completion config and styling
|
|
||||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
|
||||||
zstyle ':completion:*' menu 'select=long-list'
|
|
||||||
|
|
||||||
## transient prompt
|
|
||||||
source ${./transient.zsh}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
75
programs/sway/alacritty/catppuccin-mocha.toml
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
[colors.primary]
|
||||||
|
background = "#1E1E2E"
|
||||||
|
foreground = "#CDD6F4"
|
||||||
|
dim_foreground = "#CDD6F4"
|
||||||
|
bright_foreground = "#CDD6F4"
|
||||||
|
|
||||||
|
[colors.cursor]
|
||||||
|
text = "#1E1E2E"
|
||||||
|
cursor = "#F5E0DC"
|
||||||
|
|
||||||
|
[colors.vi_mode_cursor]
|
||||||
|
text = "#1E1E2E"
|
||||||
|
cursor = "#B4BEFE"
|
||||||
|
|
||||||
|
[colors.search.matches]
|
||||||
|
foreground = "#1E1E2E"
|
||||||
|
background = "#A6ADC8"
|
||||||
|
|
||||||
|
[colors.search.focused_match]
|
||||||
|
foreground = "#1E1E2E"
|
||||||
|
background = "#A6E3A1"
|
||||||
|
|
||||||
|
[colors.footer_bar]
|
||||||
|
foreground = "#1E1E2E"
|
||||||
|
background = "#A6ADC8"
|
||||||
|
|
||||||
|
[colors.hints.start]
|
||||||
|
foreground = "#1E1E2E"
|
||||||
|
background = "#F9E2AF"
|
||||||
|
|
||||||
|
[colors.hints.end]
|
||||||
|
foreground = "#1E1E2E"
|
||||||
|
background = "#A6ADC8"
|
||||||
|
|
||||||
|
[colors.selection]
|
||||||
|
text = "#1E1E2E"
|
||||||
|
background = "#F5E0DC"
|
||||||
|
|
||||||
|
[colors.normal]
|
||||||
|
black = "#45475A"
|
||||||
|
red = "#F38BA8"
|
||||||
|
green = "#A6E3A1"
|
||||||
|
yellow = "#F9E2AF"
|
||||||
|
blue = "#89B4FA"
|
||||||
|
magenta = "#F5C2E7"
|
||||||
|
cyan = "#94E2D5"
|
||||||
|
white = "#BAC2DE"
|
||||||
|
|
||||||
|
[colors.bright]
|
||||||
|
black = "#585B70"
|
||||||
|
red = "#F38BA8"
|
||||||
|
green = "#A6E3A1"
|
||||||
|
yellow = "#F9E2AF"
|
||||||
|
blue = "#89B4FA"
|
||||||
|
magenta = "#F5C2E7"
|
||||||
|
cyan = "#94E2D5"
|
||||||
|
white = "#A6ADC8"
|
||||||
|
|
||||||
|
[colors.dim]
|
||||||
|
black = "#45475A"
|
||||||
|
red = "#F38BA8"
|
||||||
|
green = "#A6E3A1"
|
||||||
|
yellow = "#F9E2AF"
|
||||||
|
blue = "#89B4FA"
|
||||||
|
magenta = "#F5C2E7"
|
||||||
|
cyan = "#94E2D5"
|
||||||
|
white = "#BAC2DE"
|
||||||
|
|
||||||
|
[[colors.indexed_colors]]
|
||||||
|
index = 16
|
||||||
|
color = "#FAB387"
|
||||||
|
|
||||||
|
[[colors.indexed_colors]]
|
||||||
|
index = 17
|
||||||
|
color = "#F5E0DC"
|
30
programs/sway/alacritty/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{fonts, ...}: {
|
||||||
|
programs.alacritty = let
|
||||||
|
catppuccin-mocha = builtins.fromTOML (builtins.readFile ./catppuccin-mocha.toml);
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
settings =
|
||||||
|
{
|
||||||
|
font = {
|
||||||
|
size = fonts.sizes.applications;
|
||||||
|
normal = {
|
||||||
|
family = fonts.monospace.name;
|
||||||
|
style = "Regular";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
window = {
|
||||||
|
opacity = 0.9;
|
||||||
|
dynamic_title = true;
|
||||||
|
padding = {
|
||||||
|
x = 10;
|
||||||
|
y = 10;
|
||||||
|
};
|
||||||
|
decorations = "none";
|
||||||
|
};
|
||||||
|
live_config_reload = false;
|
||||||
|
selection.save_to_clipboard = true;
|
||||||
|
mouse.hide_when_typing = false;
|
||||||
|
}
|
||||||
|
// catppuccin-mocha;
|
||||||
|
};
|
||||||
|
}
|
22
programs/sway/avizo/default.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
accentColour ? "base07",
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
services.avizo = {
|
||||||
|
enable = true;
|
||||||
|
settings.default = with config.scheme; let
|
||||||
|
accent = {
|
||||||
|
r = config.scheme."${accentColour}-rgb-r";
|
||||||
|
g = config.scheme."${accentColour}-rgb-g";
|
||||||
|
b = config.scheme."${accentColour}-rgb-b";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
background = "rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.9)";
|
||||||
|
bar-bg-color = "rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.9)";
|
||||||
|
bar-fg-color = "rgba(${base05-rgb-r}, ${base05-rgb-g}, ${base05-rgb-b}, 1.0)";
|
||||||
|
border-color = "rgba(${accent.r}, ${accent.g}, ${accent.b}, 1.0)";
|
||||||
|
image-opacity = "1.0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,11 +3,33 @@
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
fonts,
|
fonts,
|
||||||
accentColourName,
|
accentColour ? "base07",
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.waybar.systemd.target = lib.mkIf config.wayland.windowManager.sway.systemd.enable "sway-session.target";
|
imports = [
|
||||||
services.kanshi.systemdTarget = lib.mkIf config.wayland.windowManager.sway.systemd.enable "sway-session.target";
|
./alacritty/default.nix
|
||||||
|
./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 =
|
||||||
|
@ -16,7 +38,6 @@
|
||||||
swaynag.enable = true;
|
swaynag.enable = true;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
xwayland = true;
|
xwayland = true;
|
||||||
checkConfig = false;
|
|
||||||
config = {
|
config = {
|
||||||
input = {
|
input = {
|
||||||
"*" = {
|
"*" = {
|
||||||
|
@ -47,76 +68,63 @@
|
||||||
style = "regular";
|
style = "regular";
|
||||||
size = fonts.sizes.desktop * 1.0;
|
size = fonts.sizes.desktop * 1.0;
|
||||||
};
|
};
|
||||||
colors = let
|
colors = with config.scheme.withHashtag; let
|
||||||
sc = config.scheme.withHashtag;
|
text = toString base05;
|
||||||
text = toString sc.base05;
|
indicator = toString cyan;
|
||||||
indicator = toString sc.${accentColourName};
|
in rec {
|
||||||
background = toString sc.base00;
|
background = toString base00;
|
||||||
in {
|
focused = rec {
|
||||||
inherit background;
|
inherit background text indicator;
|
||||||
focused = let
|
border = toString config.scheme.withHashtag.${accentColour};
|
||||||
border = toString sc.${accentColourName};
|
|
||||||
in {
|
|
||||||
inherit background text indicator border;
|
|
||||||
childBorder = border;
|
childBorder = border;
|
||||||
};
|
};
|
||||||
focusedInactive = let
|
focusedInactive = rec {
|
||||||
border = toString sc.base04;
|
inherit background text indicator;
|
||||||
in {
|
border = toString base04;
|
||||||
inherit background text indicator border;
|
|
||||||
childBorder = border;
|
childBorder = border;
|
||||||
};
|
};
|
||||||
unfocused = let
|
unfocused = rec {
|
||||||
border = toString sc.base03;
|
inherit background text indicator;
|
||||||
in {
|
border = toString base03;
|
||||||
inherit background text indicator border;
|
|
||||||
childBorder = border;
|
childBorder = border;
|
||||||
};
|
};
|
||||||
urgent = let
|
urgent = rec {
|
||||||
border = toString sc.red;
|
inherit background text indicator;
|
||||||
in {
|
border = toString red;
|
||||||
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 = "set-background";}
|
{command = "${pkgs.swaybg}/bin/swaybg -m fill -i ${../../wallpapers/default.jpg}";}
|
||||||
];
|
];
|
||||||
window = {
|
window = {
|
||||||
border = 1;
|
border = 1;
|
||||||
titlebar = false;
|
commands =
|
||||||
commands = [
|
(map (criteria: {
|
||||||
{
|
inherit criteria;
|
||||||
criteria.window_role = "(?:pop-up|bubble|dialog)";
|
command = "floating enable";
|
||||||
command = "floating enable";
|
}) [
|
||||||
}
|
{app_id = "org.kde.polkit-kde-authentication-agent-1";}
|
||||||
{
|
{app_id = "Pinentry";}
|
||||||
criteria.app_id = "(?:org\.kde\.polkit-kde-authentication-agent-1|Pinentry|pavucontrol|\.blueman-manager-wrapped|nm-connection-editor)";
|
{app_id = "pavucontrol";}
|
||||||
command = "floating enable";
|
{app_id = "\.blueman-manager-wrapped";}
|
||||||
}
|
{app_id = "nm-connection-editor";}
|
||||||
{
|
{app_id = "thunar";}
|
||||||
criteria.class = "(?:[Mm]atplotlib|.*\.py|Idl)";
|
{class = "[Mm]atplotlib";}
|
||||||
command = "floating enable";
|
{class = ".*\.py";}
|
||||||
}
|
{class = "Idl";}
|
||||||
{
|
])
|
||||||
# Catch-all for file dialog windows
|
++ (map (criteria: {
|
||||||
criteria.title = "(?:Open|Save) (?:File|Folder|As)";
|
inherit criteria;
|
||||||
command = "floating enable, resize set width 1030 height 710";
|
command = "layout tabbed";
|
||||||
}
|
}) [
|
||||||
{
|
{class = "Nxplayer\.bin";}
|
||||||
# Inhibit idle when watching vidoes
|
{app_id = "Nxplayer\.bin";}
|
||||||
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
|
||||||
|
@ -149,10 +157,10 @@
|
||||||
"XF86MonBrightnessDown" = "exec ${services.avizo.package}/bin/lightctl - 5";
|
"XF86MonBrightnessDown" = "exec ${services.avizo.package}/bin/lightctl - 5";
|
||||||
|
|
||||||
# System utilities
|
# System utilities
|
||||||
"Mod4+Mod1+l" = "exec swaylockfx";
|
"${modifier}+F1" = "exec swaylockfx";
|
||||||
"${modifier}+z" = "exec ${pkgs.mako}/bin/makoctl dismiss -a";
|
"${modifier}+p" = "exec ${programs.wlogout.package}/bin/wlogout";
|
||||||
"${modifier}+Shift+z" = "exec ${pkgs.mako}/bin/makoctl restore";
|
"${modifier}+z" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw";
|
||||||
"${modifier}+Shift+p" = "exec ${programs.wlogout.package}/bin/wlogout";
|
"${modifier}+Shift+z" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client -d -sw";
|
||||||
"${modifier}+Shift+Return" = "exec ${programs.emacs.finalPackage}/bin/emacsclient -c";
|
"${modifier}+Shift+Return" = "exec ${programs.emacs.finalPackage}/bin/emacsclient -c";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -167,13 +175,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; shadows disable
|
layer_effects "system-menu" blur enable; blur_ignore_transparent enable; shadows disable
|
||||||
layer_effects "gtk-layer-shell" blur enable; shadows disable
|
layer_effects "gtk-layer-shell" blur enable; blur_ignore_transparent enable; shadows disable
|
||||||
layer_effects "notifications" blur enable; shadows disable
|
layer_effects "launcher" blur enable; blur_ignore_transparent enable; shadows disable
|
||||||
layer_effects "launcher" blur enable; shadows disable
|
layer_effects "waybar" blur enable; blur_ignore_transparent enable; shadows disable
|
||||||
layer_effects "logout_dialog" blur enable; shadows disable
|
layer_effects "avizo" blur enable; blur_ignore_transparent enable; shadows disable
|
||||||
layer_effects "waybar" blur enable; shadows disable
|
layer_effects "swaync-notification-window" blur enable; blur_ignore_transparent enable; shadows disable
|
||||||
layer_effects "avizo" blur enable; shadows disable
|
layer_effects "swaync-control-center" blur enable; blur_ignore_transparent enable; shadows disable
|
||||||
titlebar_separator enable
|
titlebar_separator enable
|
||||||
scratchpad_minimize enable
|
scratchpad_minimize enable
|
||||||
'';
|
'';
|
|
@ -8,19 +8,20 @@
|
||||||
server.enable = true;
|
server.enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
main = {
|
main = {
|
||||||
term = "xterm-256color";
|
# term = "xterm-256color";
|
||||||
locked-title = false;
|
title = "foot";
|
||||||
|
locked-title = "no";
|
||||||
font = "${fonts.monospace.name}:size=${toString fonts.sizes.applications}";
|
font = "${fonts.monospace.name}:size=${toString fonts.sizes.applications}";
|
||||||
dpi-aware = false;
|
dpi-aware = "yes";
|
||||||
pad = "10x10";
|
pad = "10x10";
|
||||||
};
|
};
|
||||||
bell = {
|
bell = {
|
||||||
urgent = false;
|
urgent = "no";
|
||||||
notify = false;
|
notify = "no";
|
||||||
visual = false;
|
visual = "no";
|
||||||
};
|
};
|
||||||
cursor = {blink = true;};
|
cursor = {blink = "yes";};
|
||||||
mouse = {hide-when-typing = true;};
|
mouse = {hide-when-typing = "yes";};
|
||||||
colors = with config.scheme; rec {
|
colors = with config.scheme; rec {
|
||||||
alpha = 0.9;
|
alpha = 0.9;
|
||||||
background = base00;
|
background = base00;
|
||||||
|
@ -33,14 +34,14 @@
|
||||||
regular5 = magenta;
|
regular5 = magenta;
|
||||||
regular6 = cyan;
|
regular6 = cyan;
|
||||||
regular7 = base05;
|
regular7 = base05;
|
||||||
bright0 = base04;
|
bright0 = base03;
|
||||||
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 = base05;
|
bright7 = base04;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
|
@ -1,8 +1,9 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
fonts,
|
fonts,
|
||||||
accentColourName,
|
accentColour ? "base07",
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.fuzzel = {
|
programs.fuzzel = {
|
||||||
|
@ -10,32 +11,29 @@
|
||||||
settings = {
|
settings = {
|
||||||
main = {
|
main = {
|
||||||
dpi-aware = false;
|
dpi-aware = false;
|
||||||
font = "${fonts.monospace.name}:size=${toString fonts.sizes.popups}";
|
font = "${fonts.monospace.name}:size=${toString fonts.sizes.applications}";
|
||||||
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 = 24;
|
lines = 40;
|
||||||
width = 80;
|
width = 80;
|
||||||
tabs = 4;
|
tabs = 4;
|
||||||
layer = "overlay";
|
layer = "overlay";
|
||||||
};
|
};
|
||||||
colors = let
|
colors = with config.scheme; {
|
||||||
sc = config.scheme;
|
background = "${base00}5A"; # 90% opacity
|
||||||
in {
|
text = "${base05}FF";
|
||||||
background = "${sc.base00}cc"; # 80% Opacity
|
match = "${red}FF";
|
||||||
text = "${sc.base05}ff";
|
selection = "${base01}FF";
|
||||||
match = "${sc.red}ff";
|
selection-text = "${base05}FF";
|
||||||
selection = "${sc.base01}ff";
|
selection-match = "${red}FF";
|
||||||
selection-text = "${sc.base05}ff";
|
border = "${config.scheme.${accentColour}}FF";
|
||||||
selection-match = "${sc.red}ff";
|
|
||||||
border = "${sc.${accentColourName}}ff";
|
|
||||||
};
|
};
|
||||||
border = {
|
border = {
|
||||||
width = 1;
|
width = 1;
|
|
@ -2,7 +2,7 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
fonts,
|
fonts,
|
||||||
accentColourName,
|
accentColour ? "base07",
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
|
@ -36,15 +36,15 @@
|
||||||
display-emoji = " Emoji ";
|
display-emoji = " Emoji ";
|
||||||
display-combi = " Combi ";
|
display-combi = " Combi ";
|
||||||
};
|
};
|
||||||
theme = with builtins; let
|
theme = with builtins;
|
||||||
|
with config.scheme; let
|
||||||
inherit (config.lib.formats.rasi) mkLiteral;
|
inherit (config.lib.formats.rasi) mkLiteral;
|
||||||
sc = config.scheme;
|
bg = mkLiteral "rgba (${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 80%)";
|
||||||
bg = mkLiteral "rgba (${sc.base00-rgb-r}, ${sc.base00-rgb-g}, ${sc.base00-rgb-b}, 80%)";
|
bg2 = mkLiteral "rgba (${base01-rgb-r}, ${base01-rgb-g}, ${base01-rgb-b}, 100%)";
|
||||||
bg2 = mkLiteral "rgba (${sc.base01-rgb-r}, ${sc.base01-rgb-g}, ${sc.base01-rgb-b}, 100%)";
|
fg = mkLiteral withHashtag.base05;
|
||||||
fg = mkLiteral sc.withHashtag.base05;
|
fg2 = mkLiteral withHashtag.base04;
|
||||||
fg2 = mkLiteral sc.withHashtag.base04;
|
border = mkLiteral withHashtag.${accentColour};
|
||||||
border = mkLiteral sc.withHashtag.${accentColour};
|
blue = mkLiteral withHashtag.blue;
|
||||||
blue = mkLiteral sc.withHashtag.blue;
|
|
||||||
in {
|
in {
|
||||||
"*" = {
|
"*" = {
|
||||||
background-color = mkLiteral "transparent";
|
background-color = mkLiteral "transparent";
|
56
programs/sway/swaylock/default.nix
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
accentColour ? "base07",
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
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 = with config.scheme; {
|
||||||
|
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;
|
||||||
|
# color = base00;
|
||||||
|
bs-hl-color = base06;
|
||||||
|
caps-lock-bs-hl-color = base06;
|
||||||
|
caps-lock-key-hl-color = green;
|
||||||
|
# inside-color = 00000000;
|
||||||
|
# inside-clear-color = 00000000;
|
||||||
|
# inside-caps-lock-color = 00000000;
|
||||||
|
# inside-ver-color = 00000000;
|
||||||
|
# inside-wrong-color = 00000000;
|
||||||
|
key-hl-color = green;
|
||||||
|
# layout-bg-color = 00000000;
|
||||||
|
# layout-border-color = 00000000;
|
||||||
|
layout-text-color = base05;
|
||||||
|
# line-color = 00000000;
|
||||||
|
# line-clear-color = 00000000;
|
||||||
|
# line-caps-lock-color = 00000000;
|
||||||
|
# line-ver-color = 00000000;
|
||||||
|
# line-wrong-color = 00000000;
|
||||||
|
ring-color = config.scheme.${accentColour};
|
||||||
|
ring-clear-color = base06;
|
||||||
|
ring-caps-lock-color = base09;
|
||||||
|
ring-ver-color = blue;
|
||||||
|
ring-wrong-color = red;
|
||||||
|
# separator-color = 00000000;
|
||||||
|
text-color = base05;
|
||||||
|
text-clear-color = base06;
|
||||||
|
text-caps-lock-color = base09;
|
||||||
|
text-ver-color = blue;
|
||||||
|
text-wrong-color = red;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,15 +2,11 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
fonts,
|
fonts,
|
||||||
accentColourName,
|
accentColour ? "base07",
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home.packages = [pkgs.swaynotificationcenter];
|
home.packages = [pkgs.swaynotificationcenter];
|
||||||
xdg.configFile."swaync/style.css".text = let
|
xdg.configFile."swaync/style.css".text = with config.scheme; ''
|
||||||
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;
|
||||||
|
@ -21,10 +17,10 @@
|
||||||
|
|
||||||
.floating-notifications.background .notification-row .notification-background {
|
.floating-notifications.background .notification-row .notification-background {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
border: 1px solid ${sc.withHashtag.${accentColourName}};
|
border: 1px solid ${withHashtag.${accentColour}};
|
||||||
margin: 18px;
|
margin: 18px;
|
||||||
background-color: ${alpha-background};
|
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.9);
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +46,7 @@
|
||||||
.notification
|
.notification
|
||||||
.notification-content
|
.notification-content
|
||||||
.summary {
|
.summary {
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
.floating-notifications.background
|
.floating-notifications.background
|
||||||
|
@ -59,7 +55,7 @@
|
||||||
.notification
|
.notification
|
||||||
.notification-content
|
.notification-content
|
||||||
.time {
|
.time {
|
||||||
color: ${sc.base04};
|
color: ${withHashtag.base04};
|
||||||
}
|
}
|
||||||
|
|
||||||
.floating-notifications.background
|
.floating-notifications.background
|
||||||
|
@ -68,7 +64,7 @@
|
||||||
.notification
|
.notification
|
||||||
.notification-content
|
.notification-content
|
||||||
.body {
|
.body {
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
.floating-notifications.background
|
.floating-notifications.background
|
||||||
|
@ -88,8 +84,8 @@
|
||||||
> *
|
> *
|
||||||
.notification-action {
|
.notification-action {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background-color: ${sc.base01};
|
background-color: ${withHashtag.base01};
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
margin: 7px;
|
margin: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,8 +96,8 @@
|
||||||
> *:last-child
|
> *:last-child
|
||||||
> *
|
> *
|
||||||
.notification-action:hover {
|
.notification-action:hover {
|
||||||
background-color: ${sc.base01};
|
background-color: ${withHashtag.base01};
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
.floating-notifications.background
|
.floating-notifications.background
|
||||||
|
@ -111,8 +107,8 @@
|
||||||
> *:last-child
|
> *:last-child
|
||||||
> *
|
> *
|
||||||
.notification-action:active {
|
.notification-action:active {
|
||||||
background-color: ${sc.blue};
|
background-color: ${withHashtag.blue};
|
||||||
color: ${sc.base00};
|
color: ${withHashtag.base00};
|
||||||
}
|
}
|
||||||
|
|
||||||
.floating-notifications.background
|
.floating-notifications.background
|
||||||
|
@ -122,61 +118,61 @@
|
||||||
margin: 7px;
|
margin: 7px;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background-color: ${sc.red};
|
background-color: ${withHashtag.red};
|
||||||
color: ${sc.base00};
|
color: ${withHashtag.base00};
|
||||||
}
|
}
|
||||||
|
|
||||||
.floating-notifications.background
|
.floating-notifications.background
|
||||||
.notification-row
|
.notification-row
|
||||||
.notification-background
|
.notification-background
|
||||||
.close-button:hover {
|
.close-button:hover {
|
||||||
background-color: ${sc.red};
|
background-color: ${withHashtag.red};
|
||||||
color: ${sc.base00};
|
color: ${withHashtag.base00};
|
||||||
}
|
}
|
||||||
|
|
||||||
.floating-notifications.background
|
.floating-notifications.background
|
||||||
.notification-row
|
.notification-row
|
||||||
.notification-background
|
.notification-background
|
||||||
.close-button:active {
|
.close-button:active {
|
||||||
background-color: ${sc.red};
|
background-color: ${withHashtag.red};
|
||||||
color: ${sc.base00};
|
color: ${withHashtag.base00};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center {
|
.control-center {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
border: 1px solid ${sc.${accentColourName}};
|
border: 1px solid ${withHashtag.${accentColour}};
|
||||||
margin: 18px;
|
margin: 18px;
|
||||||
background-color: ${alpha-background};
|
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.9);
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
padding: 14px;
|
padding: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center .widget-title {
|
.control-center .widget-title {
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.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: ${sc.base01};
|
background-color: ${withHashtag.base01};
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center .widget-title button:hover {
|
.control-center .widget-title button:hover {
|
||||||
background-color: ${sc.base02};
|
background-color: ${withHashtag.base02};
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center .widget-title button:active {
|
.control-center .widget-title button:active {
|
||||||
background-color: ${sc.base03};
|
background-color: ${withHashtag.base03};
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center .notification-row .notification-background {
|
.control-center .notification-row .notification-background {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background-color: ${sc.base01};
|
background-color: ${withHashtag.base01};
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
margin-top: 14px;
|
margin-top: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,7 +195,7 @@
|
||||||
.notification
|
.notification
|
||||||
.notification-content
|
.notification-content
|
||||||
.summary {
|
.summary {
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center
|
.control-center
|
||||||
|
@ -208,7 +204,7 @@
|
||||||
.notification
|
.notification
|
||||||
.notification-content
|
.notification-content
|
||||||
.time {
|
.time {
|
||||||
color: ${sc.base04};
|
color: ${withHashtag.base04};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center
|
.control-center
|
||||||
|
@ -217,7 +213,7 @@
|
||||||
.notification
|
.notification
|
||||||
.notification-content
|
.notification-content
|
||||||
.body {
|
.body {
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center
|
.control-center
|
||||||
|
@ -237,8 +233,8 @@
|
||||||
> *
|
> *
|
||||||
.notification-action {
|
.notification-action {
|
||||||
border-radius: 7px;
|
border-radius: 7px;
|
||||||
background-color: ${sc.base00};
|
background-color: ${withHashtag.base00};
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
margin: 7px;
|
margin: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -249,8 +245,8 @@
|
||||||
> *:last-child
|
> *:last-child
|
||||||
> *
|
> *
|
||||||
.notification-action:hover {
|
.notification-action:hover {
|
||||||
background-color: ${sc.base01};;
|
background-color: ${withHashtag.base01};;
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center
|
.control-center
|
||||||
|
@ -260,39 +256,39 @@
|
||||||
> *:last-child
|
> *:last-child
|
||||||
> *
|
> *
|
||||||
.notification-action:active {
|
.notification-action:active {
|
||||||
background-color: ${sc.blue};
|
background-color: ${withHashtag.blue};
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.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: ${sc.red};
|
background-color: ${withHashtag.red};
|
||||||
color: ${sc.base00};
|
color: ${withHashtag.base00};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center .notification-row .notification-background .close-button:hover {
|
.control-center .notification-row .notification-background .close-button:hover {
|
||||||
background-color: ${sc.red};
|
background-color: ${withHashtag.red};
|
||||||
color: ${sc.base00};
|
color: ${withHashtag.base00};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center
|
.control-center
|
||||||
.notification-row
|
.notification-row
|
||||||
.notification-background
|
.notification-background
|
||||||
.close-button:active {
|
.close-button:active {
|
||||||
background-color: ${sc.red};
|
background-color: ${withHashtag.red};
|
||||||
color: ${sc.base00};
|
color: ${withHashtag.base00};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center .notification-row .notification-background:hover {
|
.control-center .notification-row .notification-background:hover {
|
||||||
background-color: ${sc.base00};
|
background-color: ${withHashtag.base00};
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center .notification-row .notification-background:active {
|
.control-center .notification-row .notification-background:active {
|
||||||
background-color: ${sc.blue};
|
background-color: ${withHashtag.blue};
|
||||||
color: ${sc.base05};
|
color: ${withHashtag.base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
progressbar,
|
progressbar,
|
||||||
|
@ -302,35 +298,35 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.notification.critical progress {
|
.notification.critical progress {
|
||||||
background-color: ${sc.red};
|
background-color: ${withHashtag.red};
|
||||||
}
|
}
|
||||||
|
|
||||||
.notification.low progress,
|
.notification.low progress,
|
||||||
.notification.normal progress {
|
.notification.normal progress {
|
||||||
background-color: ${sc.blue};
|
background-color: ${withHashtag.blue};
|
||||||
}
|
}
|
||||||
|
|
||||||
trough {
|
trough {
|
||||||
background-color: ${sc.base00};
|
background-color: ${withHashtag.base00};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center trough {
|
.control-center trough {
|
||||||
background-color: ${sc.base03};
|
background-color: ${withHashtag.base03};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center-dnd {
|
.control-center-dnd {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
background: ${sc.base00};
|
background: ${withHashtag.base00};
|
||||||
border: 1px solid ${sc.base03};
|
border: 1px solid ${withHashtag.base03};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center-dnd:checked {
|
.control-center-dnd:checked {
|
||||||
background: ${sc.base00};
|
background: ${withHashtag.base00};
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center-dnd slider {
|
.control-center-dnd slider {
|
||||||
background: ${sc.base03};
|
background: ${withHashtag.base03};
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -342,18 +338,18 @@
|
||||||
.widget-dnd > switch {
|
.widget-dnd > switch {
|
||||||
font-size: initial;
|
font-size: initial;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
background: ${sc.base00};
|
background: ${withHashtag.base00};
|
||||||
border: 1px solid ${sc.base03};
|
border: 1px solid ${withHashtag.base03};
|
||||||
}
|
}
|
||||||
|
|
||||||
.widget-dnd > switch:checked {
|
.widget-dnd > switch:checked {
|
||||||
background: ${sc.base00};
|
background: ${withHashtag.base00};
|
||||||
}
|
}
|
||||||
|
|
||||||
.widget-dnd > switch slider {
|
.widget-dnd > switch slider {
|
||||||
background: ${sc.base01};
|
background: ${withHashtag.base01};
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
border: 1px solid ${sc.${accentColourName}};
|
border: 1px solid ${withHashtag.${accentColour}};
|
||||||
}
|
}
|
||||||
|
|
||||||
'';
|
'';
|
355
programs/sway/waybar/default.nix
Normal file
|
@ -0,0 +1,355 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
hostname,
|
||||||
|
fonts,
|
||||||
|
accentColour ? "base07",
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
systemd.user.targets.tray.Unit = {
|
||||||
|
Description = "Home Manager System Tray";
|
||||||
|
Requires = ["graphical-session-pre.target"];
|
||||||
|
};
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
systemd = {
|
||||||
|
enable = true;
|
||||||
|
target = "sway-session.target";
|
||||||
|
};
|
||||||
|
settings = rec {
|
||||||
|
main = {
|
||||||
|
name = "main";
|
||||||
|
layer = "top";
|
||||||
|
position = "top";
|
||||||
|
# Layout
|
||||||
|
"modules-left" = ["mpris"];
|
||||||
|
"modules-center" = ["sway/workspaces"];
|
||||||
|
"modules-right" = [
|
||||||
|
"custom/notification"
|
||||||
|
"pulseaudio"
|
||||||
|
"network"
|
||||||
|
"bluetooth"
|
||||||
|
"clock#calendar"
|
||||||
|
"clock"
|
||||||
|
"backlight"
|
||||||
|
"battery"
|
||||||
|
"custom/weather"
|
||||||
|
"tray"
|
||||||
|
];
|
||||||
|
# Module config
|
||||||
|
"sway/workspaces" = {
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
"1" = " ";
|
||||||
|
"2" = " ";
|
||||||
|
"3" = " ";
|
||||||
|
"4" = " ";
|
||||||
|
"5" = " ";
|
||||||
|
"6" = " ";
|
||||||
|
default = " ";
|
||||||
|
urgent = " ";
|
||||||
|
};
|
||||||
|
# show-special = false;
|
||||||
|
# sort-by-number = true;
|
||||||
|
all-outputs = false;
|
||||||
|
persistent-workspaces = {
|
||||||
|
"1" = [];
|
||||||
|
"2" = [];
|
||||||
|
"3" = [];
|
||||||
|
"4" = [];
|
||||||
|
"5" = [];
|
||||||
|
"6" = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"sway/window" = {
|
||||||
|
"format" = "{title}";
|
||||||
|
"max-length" = 50;
|
||||||
|
"rewrite" = {
|
||||||
|
"(.*) - GNU Emacs at (.*)" = " $1 [$2]";
|
||||||
|
"(Alacritty.*)" = " $1";
|
||||||
|
"(.*) - mpv" = " $1";
|
||||||
|
"swayimg: (.*)" = " $1";
|
||||||
|
"(btm)" = " Resource Usage [$1]";
|
||||||
|
"(cava)" = " Music Visualiser [$1]";
|
||||||
|
"(.*) - Thunar" = " $1";
|
||||||
|
"Mozilla Firefox" = " $1";
|
||||||
|
"(.*) — Mozilla Firefox" = " $1";
|
||||||
|
"Nyxt - (.*)" = " $1";
|
||||||
|
"(.*) - Chromium" = " $1";
|
||||||
|
"((?:.*)WebCord.*)" = " $1";
|
||||||
|
"(Signal.*)" = " $1";
|
||||||
|
"([Ss]team)" = " $1";
|
||||||
|
"(Prism Launcher.*)" = " Minecraft ($1)";
|
||||||
|
"(X2Go Client)" = " $1";
|
||||||
|
"(NoMachine|Nxplayer.bin) (.*)" = " $1 $2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mpris = {
|
||||||
|
"format" = "{status_icon} {player_icon} {artist} - {title}";
|
||||||
|
"tooltip-format" = "{player_icon} ({player}) {dynamic}";
|
||||||
|
"title-len" = 64;
|
||||||
|
"interval" = 1;
|
||||||
|
"dynamic-order" = [
|
||||||
|
"album"
|
||||||
|
"artist"
|
||||||
|
"title"
|
||||||
|
"position"
|
||||||
|
"length"
|
||||||
|
];
|
||||||
|
"player-icons" = {
|
||||||
|
"default" = " ";
|
||||||
|
"emms" = " ";
|
||||||
|
"firefox" = " ";
|
||||||
|
"mpv" = " ";
|
||||||
|
};
|
||||||
|
"status-icons" = {
|
||||||
|
"playing" = "";
|
||||||
|
"paused" = "";
|
||||||
|
"stopped" = "";
|
||||||
|
};
|
||||||
|
"ignored-players" = [];
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
scroll-step = 5;
|
||||||
|
format = "{format_source}{icon}{volume}%";
|
||||||
|
format-muted = "{format_source} ";
|
||||||
|
format-source = " ";
|
||||||
|
format-source-muted = " ";
|
||||||
|
format-icons = {
|
||||||
|
car = " ";
|
||||||
|
default = [" " " " " "];
|
||||||
|
hands-free = " ";
|
||||||
|
headset = " ";
|
||||||
|
phone = " ";
|
||||||
|
portable = " ";
|
||||||
|
headphone = " ";
|
||||||
|
};
|
||||||
|
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
|
||||||
|
on-click-right = "${pkgs.pamixer}/bin/pamixer -t";
|
||||||
|
on-scroll-up = "${pkgs.pamixer}/bin/pamixer -i 5";
|
||||||
|
on-scroll-down = "${pkgs.pamixer}/bin/pamixer -d 5";
|
||||||
|
};
|
||||||
|
disk = {
|
||||||
|
format = " {percentage_used}%";
|
||||||
|
path = config.home.homeDirectory;
|
||||||
|
};
|
||||||
|
cpu = {
|
||||||
|
format = " {usage}%";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
memory = {format = " {}%";};
|
||||||
|
temperature = {
|
||||||
|
critical-threshold = 80;
|
||||||
|
format = "{icon} {temperatureC}°C";
|
||||||
|
format-icons = ["" "" ""];
|
||||||
|
};
|
||||||
|
network = {
|
||||||
|
format-icons = [" " " " " " " "];
|
||||||
|
format-wifi = "{icon}";
|
||||||
|
format-ethernet = " ";
|
||||||
|
tooltip-format = "{essid} ({signalStrength}%)";
|
||||||
|
format-linked = " ";
|
||||||
|
format-disconnected = " ";
|
||||||
|
};
|
||||||
|
bluetooth = {
|
||||||
|
format = "";
|
||||||
|
format-disabled = "";
|
||||||
|
format-off = "";
|
||||||
|
format-on = "";
|
||||||
|
format-connected = "";
|
||||||
|
tooltip-format = "{status} | {device_alias}";
|
||||||
|
on-click = "${pkgs.bluez}/bin/bluetoothctl power on";
|
||||||
|
on-click-right = "${pkgs.bluez}/bin/bluetoothctl power off";
|
||||||
|
};
|
||||||
|
"clock#calendar" = {
|
||||||
|
# format = "{: %Y-%m-%d}";
|
||||||
|
format = "{:%Y-%m-%d}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021
|
||||||
|
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
||||||
|
calendar = {
|
||||||
|
mode = "month";
|
||||||
|
mode-mon-col = 3;
|
||||||
|
weeks-pos = "left";
|
||||||
|
on-scroll = 1;
|
||||||
|
on-click-right = "mode";
|
||||||
|
format = {
|
||||||
|
months = "<span color='#ffead3'><b>{}</b></span>";
|
||||||
|
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||||
|
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
||||||
|
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
||||||
|
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
actions = {
|
||||||
|
on-click-right = "mode";
|
||||||
|
on-scroll-up = "shift_up";
|
||||||
|
on-scroll-down = "shift_down";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
# format = "{: %R}";
|
||||||
|
format = "{:%R}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021
|
||||||
|
};
|
||||||
|
backlight = {
|
||||||
|
format = "{icon}";
|
||||||
|
tooltip-format = "{percent}%";
|
||||||
|
format-icons = [" " " " " " " " " " " " " " " " " "];
|
||||||
|
};
|
||||||
|
battery = {
|
||||||
|
states = {
|
||||||
|
warning = 30;
|
||||||
|
critical = 20;
|
||||||
|
};
|
||||||
|
format = "{icon}";
|
||||||
|
format-charging = " ";
|
||||||
|
format-plugged = " ";
|
||||||
|
tooltip-format = "{capacity}% {time}";
|
||||||
|
format-icons = [" " " " " " " " " " " " " " " " " " " " " "];
|
||||||
|
};
|
||||||
|
"custom/notification" = let
|
||||||
|
swaync = pkgs.swaynotificationcenter;
|
||||||
|
in {
|
||||||
|
"tooltip" = false;
|
||||||
|
"format" = "{icon}{}";
|
||||||
|
"format-icons" = {
|
||||||
|
"notification" = " ";
|
||||||
|
"none" = " ";
|
||||||
|
"dnd-notification" = " ";
|
||||||
|
"dnd-none" = " ";
|
||||||
|
"inhibited-notification" = " ";
|
||||||
|
"inhibited-none" = " ";
|
||||||
|
"dnd-inhibited-notification" = " ";
|
||||||
|
"dnd-inhibited-none" = " ";
|
||||||
|
};
|
||||||
|
"return-type" = "json";
|
||||||
|
"exec-if" = "which ${swaync}/bin/swaync-client";
|
||||||
|
"exec" = "${swaync}/bin/swaync-client -swb";
|
||||||
|
"on-click" = "${swaync}/bin/swaync-client -t -sw";
|
||||||
|
"on-click-right" = "${swaync}/bin/swaync-client -d -sw";
|
||||||
|
"escape" = true;
|
||||||
|
};
|
||||||
|
"custom/weather" = let
|
||||||
|
date-format = "%Y-%m-%d";
|
||||||
|
custom-indicator = "{ICON}{temp_C}({FeelsLikeC})";
|
||||||
|
in {
|
||||||
|
"format" = "{}°";
|
||||||
|
"tooltip" = true;
|
||||||
|
"interval" = 900; # Every 15 minutes
|
||||||
|
"exec" = ''${pkgs.wttrbar}/bin/wttrbar --location Didcot --date-format "${date-format}" --custom-indicator "${custom-indicator}"'';
|
||||||
|
"return-type" = "json";
|
||||||
|
};
|
||||||
|
tray = {
|
||||||
|
icon-size = builtins.floor fonts.sizes.popups;
|
||||||
|
show-passive-items = true;
|
||||||
|
spacing = 5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# TEMP FIX
|
||||||
|
alt = lib.mkIf (hostname == "Vanguard") {
|
||||||
|
inherit (main) layer position "sway/workspaces";
|
||||||
|
name = "alt";
|
||||||
|
"modules-left" = [];
|
||||||
|
"modules-center" = ["sway/workspaces"];
|
||||||
|
"modules-right" = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
style = with config.scheme.withHashtag; let
|
||||||
|
accent = config.scheme.withHashtag.${accentColour};
|
||||||
|
in ''
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
font-size: 1em;
|
||||||
|
font-family: ${fonts.monospace.name};
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
background: transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
window > box {
|
||||||
|
color: ${base05};
|
||||||
|
background: alpha(${base00}, 0.9);
|
||||||
|
margin: 5px 5px 0px;
|
||||||
|
padding: 0px;
|
||||||
|
border: 1px solid ${accent};
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
background: ${base00};
|
||||||
|
border: 1px solid ${accent};
|
||||||
|
border-radius: 10px;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
color: ${base05};
|
||||||
|
border: none;
|
||||||
|
padding: 5px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces,
|
||||||
|
#window,
|
||||||
|
#mpris,
|
||||||
|
#pulseaudio,
|
||||||
|
#network,
|
||||||
|
#bluetooth,
|
||||||
|
#backlight,
|
||||||
|
#battery,
|
||||||
|
#clock,
|
||||||
|
#custom-notification,
|
||||||
|
#custom-weather,
|
||||||
|
#tray {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 1px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces,
|
||||||
|
#window,
|
||||||
|
#mpris,
|
||||||
|
#tray,
|
||||||
|
#backlight,
|
||||||
|
#battery,
|
||||||
|
#custom-weather {
|
||||||
|
color: ${base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
background: transparent;
|
||||||
|
color: ${base05};
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px 5px;
|
||||||
|
}
|
||||||
|
#workspaces button.persistent {
|
||||||
|
color: ${base03};
|
||||||
|
}
|
||||||
|
#workspaces button.focused {
|
||||||
|
color: ${accent};
|
||||||
|
}
|
||||||
|
#workspaces button.urgent {
|
||||||
|
color: ${base09};
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-notification {
|
||||||
|
color: ${base08};
|
||||||
|
}
|
||||||
|
#pulseaudio {
|
||||||
|
color: ${base09};
|
||||||
|
}
|
||||||
|
#network {
|
||||||
|
color: ${base0A};
|
||||||
|
}
|
||||||
|
#bluetooth {
|
||||||
|
color: ${base0B};
|
||||||
|
}
|
||||||
|
#clock.calendar {
|
||||||
|
color: ${base0C};
|
||||||
|
}
|
||||||
|
#clock {
|
||||||
|
color: ${base0D};
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
fonts,
|
fonts,
|
||||||
|
accentColour ? "base07",
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.wlogout = {
|
programs.wlogout = {
|
||||||
|
@ -25,8 +26,8 @@
|
||||||
keybind = "l";
|
keybind = "l";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
style = let
|
style = with config.scheme.withHashtag; let
|
||||||
sc = config.scheme.withHashtag;
|
accent = config.scheme.withHashtag.${accentColour};
|
||||||
shutdownIcon = ./icons/shutdown.png;
|
shutdownIcon = ./icons/shutdown.png;
|
||||||
rebootIcon = ./icons/reboot.png;
|
rebootIcon = ./icons/reboot.png;
|
||||||
logoutIcon = ./icons/logout.png;
|
logoutIcon = ./icons/logout.png;
|
||||||
|
@ -42,23 +43,24 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
background-color: ${sc.base00};
|
border: ${accent};
|
||||||
|
background-color: ${base00};
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-size: 25%;
|
background-size: 25%;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
color: ${sc.base05};
|
color: ${base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
button:hover {
|
button:hover {
|
||||||
background-color: ${sc.base01};
|
background-color: ${base01};
|
||||||
color: ${sc.base05};
|
color: ${base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
button:focus {
|
button:focus {
|
||||||
background-color: ${sc.base02};
|
background-color: ${base03};
|
||||||
color: ${sc.base05};
|
color: ${base05};
|
||||||
}
|
}
|
||||||
|
|
||||||
#shutdown {
|
#shutdown {
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
@ -1,7 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
(pkgs.writeShellScriptBin "system-update-all"
|
|
||||||
(builtins.readFile ./shell/system-update-all.sh))
|
|
||||||
(pkgs.writeShellScriptBin "git-sync-all"
|
(pkgs.writeShellScriptBin "git-sync-all"
|
||||||
(builtins.readFile ./shell/git-sync-all.sh))
|
(builtins.readFile ./shell/git-sync-all.sh))
|
||||||
(pkgs.writeShellScriptBin "rsync-local-config"
|
(pkgs.writeShellScriptBin "rsync-local-config"
|
||||||
|
|
|
@ -1,40 +1,25 @@
|
||||||
# Clone ~/.emacs.d/ and ~/.config/home-manager if then don't exist,
|
# Clone ~/.emacs.d/ if it doesn't exist, pull otherwise (ff only)
|
||||||
# pull otherwise (ff only)
|
DIRECTORY="$HOME/.emacs.d/"
|
||||||
PULL_DIRS=(
|
URL="https://git.xenia.me.uk/pixelifytica/emacs.git"
|
||||||
"$HOME/.emacs.d/"
|
echo "--- ~/.emacs.d/ ---"
|
||||||
"${XDG_CONFIG_HOME:-$HOME/.config}/home-manager"
|
if [ ! -d "$DIRECTORY" ]; then
|
||||||
|
git clone "$URL" "$DIRECTORY"
|
||||||
|
fi
|
||||||
|
(
|
||||||
|
cd "$DIRECTORY" || exit
|
||||||
|
git remote set-url origin "$URL"
|
||||||
|
git pull --ff --ff-only
|
||||||
|
git status --porcelain
|
||||||
)
|
)
|
||||||
PULL_URLS=(
|
|
||||||
"https://git.xenia.me.uk/pixelifytica/emacs.git"
|
|
||||||
"https://git.xenia.me.uk/pixelifytica/home-manager.git"
|
|
||||||
)
|
|
||||||
for i in "${!PULL_DIRS[@]}"; do
|
|
||||||
DIRECTORY="${PULL_DIRS[$i]}"
|
|
||||||
URL="${PULL_URLS[$i]}"
|
|
||||||
echo "--- $DIRECTORY ---"
|
|
||||||
if [ ! -d "$DIRECTORY" ]; then
|
|
||||||
git clone "$URL" "$DIRECTORY"
|
|
||||||
fi
|
|
||||||
(
|
|
||||||
cd "$DIRECTORY" || exit
|
|
||||||
git remote set-url origin "$URL"
|
|
||||||
git pull --ff --ff-only
|
|
||||||
git status --porcelain
|
|
||||||
)
|
|
||||||
done
|
|
||||||
|
|
||||||
# Sync common directories, setting url to ensure it's up-to-date first
|
# Sync common directories, setting url to ensure it's up-to-date first
|
||||||
SYNC_DIRS=(
|
SYNC_DIRS=(
|
||||||
"$HOME/.password-store/"
|
"$HOME/.password-store/"
|
||||||
"$HOME/Documents/org/"
|
"$HOME/Documents/org/"
|
||||||
"$HOME/Documents/library/"
|
|
||||||
"$HOME/Documents/notebooks/"
|
|
||||||
)
|
)
|
||||||
SYNC_URLS=(
|
SYNC_URLS=(
|
||||||
"https://git.xenia.me.uk/pixelifytica/pass.git"
|
"https://git.xenia.me.uk/pixelifytica/pass.git"
|
||||||
"https://git.xenia.me.uk/pixelifytica/org.git"
|
"https://git.xenia.me.uk/pixelifytica/org.git"
|
||||||
"https://git.xenia.me.uk/pixelifytica/library.git"
|
|
||||||
"git@git.ccfe.ac.uk:elitherl/notebooks.git"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
for i in "${!SYNC_DIRS[@]}"; do
|
for i in "${!SYNC_DIRS[@]}"; do
|
||||||
|
@ -47,9 +32,6 @@ for i in "${!SYNC_DIRS[@]}"; do
|
||||||
(
|
(
|
||||||
cd "$DIRECTORY" || exit
|
cd "$DIRECTORY" || exit
|
||||||
git remote set-url origin "$URL"
|
git remote set-url origin "$URL"
|
||||||
if [ "$(git branch --show-current)" = "main" ]; then
|
|
||||||
git branch --set-upstream-to=origin/main main
|
|
||||||
fi
|
|
||||||
git pull --ff --ff-only
|
git pull --ff --ff-only
|
||||||
git submodule update --remote --recursive
|
git submodule update --remote --recursive
|
||||||
git-sync -ns
|
git-sync -ns
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
NIXOS_CONFIGURATION="/etc/nixos"
|
|
||||||
HOME_MANAGER_CONFIGURATION="$HOME/.config/home-manager"
|
|
||||||
|
|
||||||
(
|
|
||||||
cd "$NIXOS_CONFIGURATION" || exit 1
|
|
||||||
git pull --ff --ff-only || exit 1
|
|
||||||
sudo nixos-rebuild switch
|
|
||||||
)
|
|
||||||
|
|
||||||
(
|
|
||||||
cd "$HOME_MANAGER_CONFIGURATION" || exit 1
|
|
||||||
git pull --ff --ff-only || exit 1
|
|
||||||
home-manager switch
|
|
||||||
)
|
|
|
@ -3,7 +3,6 @@
|
||||||
hostname,
|
hostname,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home.packages = with pkgs; [protonmail-bridge-gui];
|
|
||||||
accounts.email = {
|
accounts.email = {
|
||||||
maildirBasePath = "Mail";
|
maildirBasePath = "Mail";
|
||||||
accounts = let
|
accounts = let
|
||||||
|
|
|
@ -5,14 +5,6 @@
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [./default.nix];
|
imports = [./default.nix];
|
||||||
home.packages = with pkgs; [
|
|
||||||
(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
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
accounts.email.accounts.outlook = let
|
accounts.email.accounts.outlook = let
|
||||||
host = "127.0.0.1";
|
host = "127.0.0.1";
|
||||||
tls.enable = false;
|
tls.enable = false;
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
maxCacheTtl = 86400;
|
maxCacheTtl = 86400;
|
||||||
defaultCacheTtl = maxCacheTtl;
|
defaultCacheTtl = maxCacheTtl;
|
||||||
defaultCacheTtlSsh = maxCacheTtl;
|
defaultCacheTtlSsh = maxCacheTtl;
|
||||||
pinentryPackage = lib.mkDefault pkgs.pinentry-all;
|
pinentryFlavor = lib.mkDefault "curses";
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
no-allow-external-cache
|
no-allow-external-cache
|
||||||
'';
|
'';
|
||||||
|
|
Before Width: | Height: | Size: 562 KiB After Width: | Height: | Size: 562 KiB |
Before Width: | Height: | Size: 642 KiB After Width: | Height: | Size: 642 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 140 KiB |
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 133 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 202 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 125 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |