Restructured to a state that things build again
Remove all home-manager config and related files Slight change of layout that makes more sense with new scope
|
@ -1,3 +0,0 @@
|
||||||
indent_type = "Spaces"
|
|
||||||
call_parentheses = "None"
|
|
||||||
collapse_simple_statement = "Always"
|
|
30
configuration/Legion.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
../services/caddy.nix
|
||||||
|
../services/forgejo.nix
|
||||||
|
../services/grafana.nix
|
||||||
|
../services/minecraft.nix
|
||||||
|
../services/nix-serve.nix
|
||||||
|
../services/radicale.nix
|
||||||
|
../services/sshd.nix
|
||||||
|
../services/syncthing.nix
|
||||||
|
];
|
||||||
|
boot.loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
users.mutableUsers = false;
|
||||||
|
system.autoUpgrade = {
|
||||||
|
dates = "02:00";
|
||||||
|
allowReboot = true;
|
||||||
|
rebootWindow = {
|
||||||
|
lower = "02:00";
|
||||||
|
upper = "05:00";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
environment.systemPackages = with pkgs; [nil];
|
||||||
|
}
|
19
configuration/Northstar.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [./laptop.nix];
|
||||||
|
boot = {
|
||||||
|
extraModulePackages = with config.boot.kernelPackages; [v4l2loopback];
|
||||||
|
extraModprobeConfig = ''
|
||||||
|
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
hardware.opengl = {
|
||||||
|
driSupport = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
extraPackages = with pkgs; [amdvlk rocmPackages.clr.icd];
|
||||||
|
extraPackages32 = [pkgs.driversi686Linux.amdvlk];
|
||||||
|
};
|
||||||
|
}
|
17
configuration/Ronin.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
imports = [./laptop.nix];
|
||||||
|
boot.initrd = {
|
||||||
|
secrets = {"/crypto_keyfile.bin" = null;};
|
||||||
|
luks.devices."luks-761eeb11-3091-4142-9232-4fb33165eccd" = {
|
||||||
|
device = "/dev/disk/by-uuid/761eeb11-3091-4142-9232-4fb33165eccd";
|
||||||
|
keyFile = "/crypto_keyfile.bin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
environment = {
|
||||||
|
etc."ppp/options".text = ''
|
||||||
|
ipcp-accept-remote
|
||||||
|
'';
|
||||||
|
systemPackages = with pkgs; [openfortivpn samba];
|
||||||
|
};
|
||||||
|
services.ollama.enable = true;
|
||||||
|
}
|
20
configuration/Scorch.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
imports = [./desktop.nix];
|
||||||
|
boot = {
|
||||||
|
loader.efi.efiSysMountPoint = "/boot/efi";
|
||||||
|
initrd = {
|
||||||
|
secrets = {"/crypto_keyfile.bin" = null;};
|
||||||
|
luks.devices."luks-47d34268-5100-4eba-b34d-220f4239c1cb" = {
|
||||||
|
device = "/dev/disk/by-uuid/47d34268-5100-4eba-b34d-220f4239c1cb";
|
||||||
|
keyFile = "/crypto_keyfile.bin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
environment = {
|
||||||
|
etc."ppp/options".text = ''
|
||||||
|
ipcp-accept-remote
|
||||||
|
'';
|
||||||
|
systemPackages = with pkgs; [openfortivpn samba];
|
||||||
|
};
|
||||||
|
services.ollama.enable = true;
|
||||||
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
{config, ...}: {
|
{config, ...}: {
|
||||||
|
imports = [./desktop.nix ./games.nix];
|
||||||
boot = {
|
boot = {
|
||||||
initrd.kernelModules = ["amdgpu"];
|
initrd.kernelModules = ["amdgpu"];
|
||||||
extraModulePackages = with config.boot.kernelPackages; [v4l2loopback];
|
extraModulePackages = with config.boot.kernelPackages; [v4l2loopback];
|
|
@ -1,9 +1,42 @@
|
||||||
{
|
{
|
||||||
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
fonts,
|
iosevkaCustom,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [./registry.nix];
|
nix = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.nixVersions.unstable;
|
||||||
|
settings = {
|
||||||
|
cores = 0;
|
||||||
|
max-jobs = "auto";
|
||||||
|
trusted-users = ["root"];
|
||||||
|
experimental-features = ["nix-command" "flakes"];
|
||||||
|
auto-optimise-store = true;
|
||||||
|
};
|
||||||
|
channel.enable = true;
|
||||||
|
nixPath = ["nixpkgs=${pkgs.path}"];
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
options = "--delete-older-than 7d";
|
||||||
|
};
|
||||||
|
optimise.automatic = true;
|
||||||
|
extraOptions = ''
|
||||||
|
keep-outputs = false
|
||||||
|
keep-derivations = false
|
||||||
|
min-free = ${toString (100 * 1024 * 1024)}
|
||||||
|
max-free = ${toString (1024 * 1024 * 1024)}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
system = {
|
||||||
|
autoUpgrade = {
|
||||||
|
enable = true;
|
||||||
|
flake = "git+https://git.xenia.me.uk/pixelifytica/nixos.git?ref=main";
|
||||||
|
allowReboot = lib.mkDefault false;
|
||||||
|
};
|
||||||
|
stateVersion = "23.05";
|
||||||
|
};
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
|
@ -13,6 +46,11 @@
|
||||||
firewall.enable = true;
|
firewall.enable = true;
|
||||||
nameservers = ["9.9.9.9"];
|
nameservers = ["9.9.9.9"];
|
||||||
};
|
};
|
||||||
|
users.users.root.openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINI1dWlS16Keil0MGPWmMsBzx8F9ylfz+fRwxUr8/tZ/ ion"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC4M1zV3yLMMI1tYwdY9QDXJDlOBugm7UXKC+Xk89yHq pixelifytica@Vanguard"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICPypUUGVAdpl0SHrUDVw0RureuFNsljrXQvrf0uc055 pixelifytica@Northstar"
|
||||||
|
];
|
||||||
environment = {
|
environment = {
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
XDG_CONFIG_HOME = "$HOME/.config";
|
XDG_CONFIG_HOME = "$HOME/.config";
|
||||||
|
@ -23,23 +61,16 @@
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
coreutils
|
coreutils
|
||||||
libsecret
|
libsecret
|
||||||
gnumake
|
|
||||||
git
|
git
|
||||||
git-sync
|
|
||||||
pinentry
|
|
||||||
zip
|
zip
|
||||||
unzip
|
unzip
|
||||||
jq
|
|
||||||
fd
|
|
||||||
ripgrep
|
|
||||||
rclone
|
rclone
|
||||||
wireguard-tools
|
wireguard-tools
|
||||||
dogdns
|
dogdns
|
||||||
du-dust
|
du-dust
|
||||||
ffmpeg
|
|
||||||
nitch
|
|
||||||
neofetch
|
neofetch
|
||||||
bottom
|
bottom
|
||||||
|
home-manager
|
||||||
nix-output-monitor
|
nix-output-monitor
|
||||||
];
|
];
|
||||||
localBinInPath = true;
|
localBinInPath = true;
|
||||||
|
@ -87,23 +118,23 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
fonts = {
|
fonts = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs;
|
||||||
fonts.serif.package
|
with iosevkaCustom.packages; [
|
||||||
fonts.sansSerif.package
|
iosevka-custom-nerdfont
|
||||||
fonts.monospace.package
|
iosevka-custom-aile
|
||||||
fonts.emoji.package
|
|
||||||
(nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];}) # Status bar
|
(nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];}) # Status bar
|
||||||
emacs-all-the-icons-fonts # Emacs
|
emacs-all-the-icons-fonts # Emacs
|
||||||
weather-icons # Emacs
|
weather-icons # Emacs
|
||||||
lmodern # LaTeX
|
lmodern # LaTeX
|
||||||
|
noto-fonts-emoji # Emoji
|
||||||
];
|
];
|
||||||
fontconfig = {
|
fontconfig = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultFonts = {
|
defaultFonts = with iosevkaCustom.names; {
|
||||||
serif = [fonts.serif.name];
|
serif = [iosevka-custom-aile];
|
||||||
sansSerif = [fonts.sansSerif.name];
|
sansSerif = [iosevka-custom-aile];
|
||||||
monospace = [fonts.monospace.name];
|
monospace = [iosevka-custom-nerdfont];
|
||||||
emoji = [fonts.emoji.name];
|
emoji = ["Noto Color Emoji"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
|
@ -1,15 +1,15 @@
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
user,
|
user,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [./default.nix ./firefox.nix];
|
imports = [./default.nix];
|
||||||
nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
|
nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
|
||||||
environment = {
|
environment = {
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
NIXOS_OZONE_WL = "1";
|
NIXOS_OZONE_WL = "1";
|
||||||
XDG_SESSION_TYPE = "wayland";
|
|
||||||
GRIM_DEFAULT_DIR = "$HOME/Pictures/Grim";
|
GRIM_DEFAULT_DIR = "$HOME/Pictures/Grim";
|
||||||
};
|
};
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
|
@ -63,6 +63,139 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = with pkgs.xfce; [thunar-archive-plugin thunar-volman];
|
plugins = with pkgs.xfce; [thunar-archive-plugin thunar-volman];
|
||||||
};
|
};
|
||||||
|
sway = {
|
||||||
|
enable = true;
|
||||||
|
package =
|
||||||
|
pkgs.swayfx.overrideAttrs
|
||||||
|
(old: {passthru.providedSessions = ["sway"];});
|
||||||
|
wrapperFeatures.gtk = true;
|
||||||
|
};
|
||||||
|
firefox = {
|
||||||
|
enable = true;
|
||||||
|
languagePacks = ["en-GB"];
|
||||||
|
policies = {
|
||||||
|
BlockAboutProfiles = true;
|
||||||
|
Containers = {
|
||||||
|
Default = [
|
||||||
|
{
|
||||||
|
name = "Personal";
|
||||||
|
icon = "fingerprint";
|
||||||
|
color = "purple";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Work";
|
||||||
|
icon = "briefcase";
|
||||||
|
color = "blue";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
Cookies = {
|
||||||
|
Behavior = "reject-tracker-and-partition-foreign";
|
||||||
|
BehaviorPrivateBrowsing = "reject";
|
||||||
|
Locked = true;
|
||||||
|
};
|
||||||
|
DefaultDownloadDirectory = "\${home}/Downloads";
|
||||||
|
DisableAppUpdate = true;
|
||||||
|
DisableFirefoxAccounts = true;
|
||||||
|
DisableFirefoxScreenshots = true;
|
||||||
|
DisableFirefoxStudies = true;
|
||||||
|
DisableFormHistory = true;
|
||||||
|
DisablePocket = true;
|
||||||
|
DisableProfileImport = true;
|
||||||
|
DisableSetDesktopBackground = true;
|
||||||
|
DisableSystemAddonUpdate = true;
|
||||||
|
DisableTelemetry = true;
|
||||||
|
DisplayBookmarksToolbar = "never";
|
||||||
|
DisplayMenuBar = "default-off";
|
||||||
|
DontCheckDefaultBrowser = true;
|
||||||
|
EnableTrackingProtection = {
|
||||||
|
Value = true;
|
||||||
|
Locked = true;
|
||||||
|
Cryptomining = true;
|
||||||
|
Fingerprinting = true;
|
||||||
|
};
|
||||||
|
ExtensionSettings = {
|
||||||
|
"queryamoid@kaply.com" = {
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
install_url = "https://github.com/mkaply/queryamoid/releases/download/v0.1/query_amo_addon_id-0.1-fx.xpi";
|
||||||
|
};
|
||||||
|
"uBlock0@raymondhill.net" = {
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||||
|
};
|
||||||
|
"addon@simplelogin" = {
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
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 = {
|
||||||
|
Search = true;
|
||||||
|
TopSites = false;
|
||||||
|
SponsoredTopSites = false;
|
||||||
|
Highlights = false;
|
||||||
|
Pocket = false;
|
||||||
|
SponsoredPocket = false;
|
||||||
|
Snippets = false;
|
||||||
|
Locked = true;
|
||||||
|
};
|
||||||
|
FirefoxSuggest = {
|
||||||
|
WebSuggestions = false;
|
||||||
|
SponsoredSuggestions = false;
|
||||||
|
ImproveSuggest = false;
|
||||||
|
Locked = true;
|
||||||
|
};
|
||||||
|
HardwareAcceleration = true;
|
||||||
|
Homepage = {
|
||||||
|
Locked = true;
|
||||||
|
StartPage = "homepage-locked";
|
||||||
|
};
|
||||||
|
NewTabPage = true;
|
||||||
|
NoDefaultBookmarks = true;
|
||||||
|
OfferToSaveLogins = false;
|
||||||
|
PasswordManagerEnabled = false;
|
||||||
|
PDFjs = {Enabled = false;};
|
||||||
|
Permissions = {
|
||||||
|
Autoplay = {
|
||||||
|
Default = "block-audio-video";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
PictureInPicture = {Enabled = true;};
|
||||||
|
PopupBlocking = {Default = true;};
|
||||||
|
Preferences = {
|
||||||
|
"browser.bookmarks.addedImportButton" = false;
|
||||||
|
"browser.bookmarks.showMobileBookmarks" = false;
|
||||||
|
"browser.newtabpage.pinned" = [
|
||||||
|
{
|
||||||
|
title = "NixOS Wiki";
|
||||||
|
url = "https://wiki.nixos.org";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
title = "Arch Wiki";
|
||||||
|
url = "https://wiki.archlinux.org";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
title = "Hyprland Wiki";
|
||||||
|
url = "https://wiki.hyprland.org";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
"browser.search.region" = "GB";
|
||||||
|
"browser.warnOnQuitShortcut" = false;
|
||||||
|
"extensions.activeThemeID" = "{c6698fd1-fe9b-4eae-95d5-fe1703820469}";
|
||||||
|
"intl.accept_languages" = "en-gb,en";
|
||||||
|
"intl.locale.requested" = "en-gb,en";
|
||||||
|
"intl.regional_prefs.use_os_locales" = false;
|
||||||
|
"media.eme.enabled" = true;
|
||||||
|
};
|
||||||
|
RequestedLocales = ["en-GB"];
|
||||||
|
SearchBar = "unified";
|
||||||
|
ShowHomeButton = true;
|
||||||
|
StartDownloadsInTempDirectory = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
gtk.iconCache.enable = true;
|
gtk.iconCache.enable = true;
|
||||||
qt = {
|
qt = {
|
||||||
|
@ -81,7 +214,12 @@
|
||||||
dbus.packages = with pkgs; [gcr];
|
dbus.packages = with pkgs; [gcr];
|
||||||
greetd = {
|
greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.initial_session = {inherit user;};
|
settings = let
|
||||||
|
command = "sway";
|
||||||
|
in {
|
||||||
|
initial_session = {inherit command;};
|
||||||
|
default_session = {inherit command;};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
pipewire = {
|
pipewire = {
|
||||||
enable = true;
|
enable = true;
|
76
flake.lock
|
@ -1,60 +1,5 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"base16": {
|
|
||||||
"inputs": {
|
|
||||||
"fromYaml": "fromYaml"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1709025227,
|
|
||||||
"narHash": "sha256-KXcORItjYJTdEO/BlBd0Uym1Xa3eBu43uvpFiWjJOdY=",
|
|
||||||
"owner": "SenchoPens",
|
|
||||||
"repo": "base16.nix",
|
|
||||||
"rev": "4e9b16c8b44958bc6bf46d99c3bb1b59c9c9c764",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "SenchoPens",
|
|
||||||
"repo": "base16.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fromYaml": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1689549921,
|
|
||||||
"narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=",
|
|
||||||
"owner": "SenchoPens",
|
|
||||||
"repo": "fromYaml",
|
|
||||||
"rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "SenchoPens",
|
|
||||||
"repo": "fromYaml",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1714043624,
|
|
||||||
"narHash": "sha256-Xn2r0Jv95TswvPlvamCC46wwNo8ALjRCMBJbGykdhcM=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "86853e31dc1b62c6eeed11c667e8cdd0285d4411",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"ref": "release-23.11",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"iosevka-custom": {
|
"iosevka-custom": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
|
@ -107,27 +52,8 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"base16": "base16",
|
|
||||||
"home-manager": "home-manager",
|
|
||||||
"iosevka-custom": "iosevka-custom",
|
"iosevka-custom": "iosevka-custom",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2"
|
||||||
"tt-schemes": "tt-schemes"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tt-schemes": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1713388094,
|
|
||||||
"narHash": "sha256-wcotm0Ek2ISn8iJBzEujJQdcPLKWrPAOZ/dS/DLKafw=",
|
|
||||||
"owner": "tinted-theming",
|
|
||||||
"repo": "schemes",
|
|
||||||
"rev": "abcf2a055ae69f1bf047463332f83db3125aa8a5",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "tinted-theming",
|
|
||||||
"repo": "schemes",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
287
flake.nix
|
@ -8,238 +8,99 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
|
||||||
home-manager = {
|
|
||||||
url = "github:nix-community/home-manager/release-23.11";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
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";
|
|
||||||
tt-schemes = {
|
|
||||||
url = "github:tinted-theming/schemes";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
home-manager,
|
|
||||||
iosevka-custom,
|
iosevka-custom,
|
||||||
base16,
|
|
||||||
tt-schemes,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
systemConfig = {
|
defaultSpecialArgs = {system ? "x86_64-linux", ...}: {
|
||||||
|
iosevkaCustom = {
|
||||||
|
packages = iosevka-custom.outputs.packages.${system};
|
||||||
|
names = iosevka-custom.outputs.names;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
defaultModules = {
|
||||||
hostName ? "Atlas",
|
hostName ? "Atlas",
|
||||||
user ? "pixelifytica",
|
primaryUser ? "pixelifytica",
|
||||||
system ? "x86_64-linux",
|
loginShell ? "zsh",
|
||||||
stateVersion ? "23.05",
|
...
|
||||||
systemModules ? [],
|
}: [
|
||||||
homeModules ? [],
|
./configuration/default.nix
|
||||||
}: let
|
./configuration/${hostName}.nix
|
||||||
defaultUserShell = "zsh";
|
./hardware-configuration/${hostName}.nix
|
||||||
specialArgs = {
|
({
|
||||||
inherit hostName user;
|
config,
|
||||||
accentColour = "base07"; # catppuccin lavender
|
lib,
|
||||||
catppuccinVariant = "Mocha";
|
...
|
||||||
fonts = with import nixpkgs {inherit system;};
|
}: {
|
||||||
with iosevka-custom.outputs; rec {
|
networking = {inherit hostName;};
|
||||||
sizes = {
|
nix = {
|
||||||
applications = 12;
|
settings.trusted-users = [primaryUser];
|
||||||
desktop = 10;
|
registry.nixpkgs.flake = nixpkgs;
|
||||||
popups = 14;
|
|
||||||
terminal = 12;
|
|
||||||
};
|
|
||||||
serif = sansSerif;
|
|
||||||
sansSerif = {
|
|
||||||
name = names."iosevka-custom-aile";
|
|
||||||
package = packages.${system}."iosevka-custom-aile";
|
|
||||||
};
|
|
||||||
monospace = {
|
|
||||||
name = names."iosevka-custom-nerdfont";
|
|
||||||
package = packages.${system}."iosevka-custom-nerdfont";
|
|
||||||
};
|
|
||||||
emoji = {
|
|
||||||
name = "Noto Color Emoji";
|
|
||||||
package = noto-fonts-emoji;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
programs.${loginShell}.enable = true;
|
||||||
in
|
users.users.${primaryUser} = {
|
||||||
nixpkgs.lib.nixosSystem {
|
group = "users";
|
||||||
inherit system specialArgs;
|
isNormalUser = true;
|
||||||
modules =
|
description = "Evie Litherland-Smith";
|
||||||
[
|
extraGroups = ["networkmanager" "wheel" "video" "input" "uinput"];
|
||||||
home-manager.nixosModules.home-manager
|
initialHashedPassword = "$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3";
|
||||||
base16.nixosModule
|
openssh = {inherit (config.users.users.root.openssh) authorizedKeys;};
|
||||||
./hosts/${hostName}/configuration.nix
|
};
|
||||||
./hosts/${hostName}/hardware-configuration.nix
|
})
|
||||||
./system/default.nix
|
];
|
||||||
({
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
catppuccinVariant ? "Mocha",
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
scheme = "${tt-schemes}/base16/catppuccin-${lib.strings.toLower catppuccinVariant}.yaml";
|
|
||||||
nix = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.nixVersions.unstable;
|
|
||||||
settings = {
|
|
||||||
cores = 0;
|
|
||||||
max-jobs = "auto";
|
|
||||||
trusted-users = ["root" user];
|
|
||||||
experimental-features = ["nix-command" "flakes"];
|
|
||||||
auto-optimise-store = true;
|
|
||||||
};
|
|
||||||
channel.enable = true;
|
|
||||||
nixPath = ["nixpkgs=${pkgs.path}"];
|
|
||||||
registry.nixpkgs.flake = nixpkgs;
|
|
||||||
gc = {
|
|
||||||
automatic = true;
|
|
||||||
options = "--delete-older-than 7d";
|
|
||||||
};
|
|
||||||
optimise.automatic = true;
|
|
||||||
extraOptions = ''
|
|
||||||
keep-outputs = false
|
|
||||||
keep-derivations = false
|
|
||||||
min-free = ${toString (100 * 1024 * 1024)}
|
|
||||||
max-free = ${toString (1024 * 1024 * 1024)}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
networking = {inherit hostName;};
|
|
||||||
programs.${defaultUserShell}.enable = true;
|
|
||||||
system = {inherit stateVersion;};
|
|
||||||
users = {
|
|
||||||
defaultUserShell = pkgs.${defaultUserShell};
|
|
||||||
users = let
|
|
||||||
authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINI1dWlS16Keil0MGPWmMsBzx8F9ylfz+fRwxUr8/tZ/ ion"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC4M1zV3yLMMI1tYwdY9QDXJDlOBugm7UXKC+Xk89yHq pixelifytica@Vanguard"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICPypUUGVAdpl0SHrUDVw0RureuFNsljrXQvrf0uc055 pixelifytica@Northstar"
|
|
||||||
];
|
|
||||||
in {
|
|
||||||
root.openssh = {inherit authorizedKeys;};
|
|
||||||
${user} = {
|
|
||||||
group = "users";
|
|
||||||
isNormalUser = true;
|
|
||||||
description = "Evie Litherland-Smith";
|
|
||||||
extraGroups = ["networkmanager" "wheel" "video" "input" "uinput"];
|
|
||||||
initialHashedPassword = "$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3";
|
|
||||||
openssh = {inherit authorizedKeys;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
home-manager = {
|
|
||||||
extraSpecialArgs = {inherit (config) scheme;} // specialArgs;
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
useUserPackages = true;
|
|
||||||
users = {
|
|
||||||
root = {
|
|
||||||
imports = [./home/default.nix];
|
|
||||||
home = {
|
|
||||||
inherit stateVersion;
|
|
||||||
username = "root";
|
|
||||||
homeDirectory = "/root";
|
|
||||||
};
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
};
|
|
||||||
${user} = let
|
|
||||||
username = user;
|
|
||||||
homeDirectory = "/home/${user}";
|
|
||||||
in {
|
|
||||||
imports =
|
|
||||||
[./hosts/${hostName}/home.nix ./home/default.nix]
|
|
||||||
++ homeModules;
|
|
||||||
home = {inherit username homeDirectory stateVersion;};
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
xdg.userDirs = {
|
|
||||||
enable = true;
|
|
||||||
createDirectories = true;
|
|
||||||
extraConfig = {
|
|
||||||
XDG_PROJECTS_DIR = "${homeDirectory}/Projects";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
})
|
|
||||||
]
|
|
||||||
++ systemModules;
|
|
||||||
};
|
|
||||||
in {
|
in {
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
## Server
|
## Server
|
||||||
|
Legion = nixpkgs.lib.nixosSystem rec {
|
||||||
Legion = systemConfig {
|
system = "x86_64-linux";
|
||||||
hostName = "Legion";
|
specialArgs = defaultSpecialArgs {inherit system;};
|
||||||
systemModules = [
|
modules = defaultModules {
|
||||||
./services/caddy.nix
|
hostName = "Legion";
|
||||||
./services/forgejo.nix
|
primaryUser = "pixelifytica";
|
||||||
./services/grafana.nix
|
loginShell = "zsh";
|
||||||
./services/minecraft.nix
|
};
|
||||||
./services/nix-serve.nix
|
|
||||||
./services/radicale.nix
|
|
||||||
./services/sshd.nix
|
|
||||||
./services/syncthing.nix
|
|
||||||
];
|
|
||||||
homeModules = [./home/default.nix];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
## Personal
|
## Personal
|
||||||
|
Northstar = nixpkgs.lib.nixosSystem rec {
|
||||||
Northstar = systemConfig {
|
system = "x86_64-linux";
|
||||||
hostName = "Northstar";
|
specialArgs = defaultSpecialArgs {inherit system;};
|
||||||
systemModules = [
|
modules = defaultModules {
|
||||||
./system/laptop.nix
|
hostName = "Northstar";
|
||||||
./system/sway.nix
|
primaryUser = "pixelifytica";
|
||||||
];
|
loginShell = "zsh";
|
||||||
homeModules = [
|
};
|
||||||
./home/sway/default.nix
|
|
||||||
./home/email/work.nix
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
Vanguard = nixpkgs.lib.nixosSystem rec {
|
||||||
Vanguard = systemConfig {
|
system = "x86_64-linux";
|
||||||
hostName = "Vanguard";
|
specialArgs = defaultSpecialArgs {inherit system;};
|
||||||
systemModules = [
|
modules = defaultModules {
|
||||||
./system/desktop.nix
|
hostName = "Vanguard";
|
||||||
./system/games.nix
|
primaryUser = "pixelifytica";
|
||||||
./system/sway.nix
|
loginShell = "zsh";
|
||||||
];
|
};
|
||||||
homeModules = [
|
|
||||||
./home/sway/default.nix
|
|
||||||
./home/email/work.nix
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
## Work
|
## Work
|
||||||
|
Ronin = nixpkgs.lib.nixosSystem rec {
|
||||||
Ronin = systemConfig {
|
system = "x86_64-linux";
|
||||||
hostName = "Ronin";
|
specialArgs = defaultSpecialArgs {inherit system;};
|
||||||
user = "elitherl";
|
modules = defaultModules {
|
||||||
systemModules = [
|
hostName = "Ronin";
|
||||||
./system/laptop.nix
|
primaryUser = "elitherl";
|
||||||
./system/sway.nix
|
loginShell = "zsh";
|
||||||
];
|
};
|
||||||
homeModules = [
|
|
||||||
./home/sway/default.nix
|
|
||||||
./home/email/work.nix
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
Scorch = nixpkgs.lib.nixosSystem rec {
|
||||||
Scorch = systemConfig {
|
system = "x86_64-linux";
|
||||||
hostName = "Scorch";
|
specialArgs = defaultSpecialArgs {inherit system;};
|
||||||
user = "elitherl";
|
modules = defaultModules {
|
||||||
systemModules = [
|
hostName = "Scorch";
|
||||||
./system/desktop.nix
|
primaryUser = "elitherl";
|
||||||
./system/sway.nix
|
loginShell = "zsh";
|
||||||
];
|
};
|
||||||
homeModules = [
|
|
||||||
./home/sway/default.nix
|
|
||||||
./home/email/work.nix
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,75 +0,0 @@
|
||||||
[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"
|
|
|
@ -1,30 +0,0 @@
|
||||||
{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.8;
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
scheme,
|
|
||||||
accentColour ? "base07",
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
services.avizo = {
|
|
||||||
enable = true;
|
|
||||||
settings.default = with scheme; let
|
|
||||||
accent = {
|
|
||||||
r = scheme."${accentColour}-rgb-r";
|
|
||||||
g = scheme."${accentColour}-rgb-g";
|
|
||||||
b = scheme."${accentColour}-rgb-b";
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
background = "rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.8)";
|
|
||||||
bar-bg-color = "rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.8)";
|
|
||||||
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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
catppuccinVariant ? "Mocha",
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
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.bat = {
|
|
||||||
enable = true;
|
|
||||||
config.theme = "catppuccin${catppuccinVariant}";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
{
|
|
||||||
scheme,
|
|
||||||
accentColour ? "base07",
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.bottom = {
|
|
||||||
enable = true;
|
|
||||||
settings.colors = with scheme.withHashtag; let
|
|
||||||
rainbow = [red yellow green cyan blue magenta];
|
|
||||||
in {
|
|
||||||
table_header_color = base05;
|
|
||||||
all_cpu_color = base05;
|
|
||||||
avg_cpu_color = base05;
|
|
||||||
cpu_core_colors = rainbow;
|
|
||||||
ram_color = red;
|
|
||||||
cache_color = green;
|
|
||||||
swap_color = blue;
|
|
||||||
rx_color = green;
|
|
||||||
tx_color = blue;
|
|
||||||
widget_title_color = scheme.withHashtag.${accentColour};
|
|
||||||
border_color = base02;
|
|
||||||
highlighted_border_color = scheme.withHashtag.${accentColour};
|
|
||||||
text_color = base05;
|
|
||||||
graph_color = base04;
|
|
||||||
cursor_color = base02;
|
|
||||||
selected_text_color = base05;
|
|
||||||
selected_bg_color = base01;
|
|
||||||
high_battery_color = green;
|
|
||||||
medium_battery_color = yellow;
|
|
||||||
low_battery_color = red;
|
|
||||||
gpu_core_colors = rainbow;
|
|
||||||
arc_color = cyan;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{scheme, ...}: {
|
|
||||||
programs.cava = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
color = with 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,40 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
imports = [
|
|
||||||
./bat/default.nix
|
|
||||||
./git/default.nix
|
|
||||||
./ssh/default.nix
|
|
||||||
./zsh/default.nix
|
|
||||||
./starship/default.nix
|
|
||||||
./bottom/default.nix
|
|
||||||
./emacs/default.nix
|
|
||||||
./scripts/default.nix
|
|
||||||
];
|
|
||||||
programs = {
|
|
||||||
bash.enable = true;
|
|
||||||
carapace.enable = true;
|
|
||||||
eza = {
|
|
||||||
enable = true;
|
|
||||||
enableAliases = true;
|
|
||||||
git = true;
|
|
||||||
icons = true;
|
|
||||||
extraOptions = ["--octal-permissions"];
|
|
||||||
};
|
|
||||||
readline = {
|
|
||||||
enable = true;
|
|
||||||
includeSystemConfig = true;
|
|
||||||
extraConfig = ''
|
|
||||||
set completion-ignore-case On
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
fzf = {
|
|
||||||
enable = true;
|
|
||||||
defaultCommand = "${pkgs.fd}/bin/fd --type f";
|
|
||||||
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
|
|
||||||
fileWidgetCommand = "${pkgs.fd}/bin/fd --type f";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,87 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
scheme,
|
|
||||||
catppuccinVariant ? "Mocha",
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
./default.nix
|
|
||||||
./email/default.nix
|
|
||||||
./password-store/default.nix
|
|
||||||
./wlogout/default.nix
|
|
||||||
./waybar/default.nix
|
|
||||||
./rofi/default.nix
|
|
||||||
./swaylock/default.nix
|
|
||||||
./swaync/default.nix
|
|
||||||
./avizo/default.nix
|
|
||||||
./alacritty/default.nix
|
|
||||||
./emacs/default.nix
|
|
||||||
./nyxt/default.nix
|
|
||||||
./obs/default.nix
|
|
||||||
./cava/default.nix
|
|
||||||
./prog/default.nix
|
|
||||||
];
|
|
||||||
programs.rofi.terminal = "${config.programs.alacritty.package}/bin/alacritty";
|
|
||||||
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";
|
|
||||||
size = "Standard";
|
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
iconTheme = {
|
|
||||||
package = pkgs.catppuccin-papirus-folders.override {
|
|
||||||
accent = toLower accent;
|
|
||||||
flavor = toLower catppuccinVariant;
|
|
||||||
};
|
|
||||||
name = "Papirus-Dark";
|
|
||||||
};
|
|
||||||
cursorTheme = let
|
|
||||||
variant = "${lib.strings.toLower catppuccinVariant}Dark";
|
|
||||||
in {
|
|
||||||
package = pkgs.catppuccin-cursors.${variant};
|
|
||||||
name = "Catppuccin-${catppuccinVariant}-Dark-Cursors";
|
|
||||||
size = 32;
|
|
||||||
};
|
|
||||||
theme = {
|
|
||||||
package = with lib.strings;
|
|
||||||
pkgs.catppuccin-gtk.override {
|
|
||||||
accents = [(toLower accent)];
|
|
||||||
size = toLower size;
|
|
||||||
variant = toLower catppuccinVariant;
|
|
||||||
};
|
|
||||||
name = "Catppuccin-${catppuccinVariant}-${size}-${accent}-Dark";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xresources.properties = with 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;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,172 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
fonts,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [../git/default.nix];
|
|
||||||
programs.git.extraConfig.core.editor = "$EDITOR";
|
|
||||||
programs.emacs = {
|
|
||||||
# Clone emacs config from https://git.xenia.me.uk/pixelifytica/emacs.git
|
|
||||||
# git clone https://git.xenia.me.uk/pixelifytica/emacs.git ~/.config/emacs
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.emacs29-pgtk;
|
|
||||||
extraConfig = let
|
|
||||||
shell = "${pkgs.zsh}/bin/zsh";
|
|
||||||
font = "${fonts.monospace.name}-${toString fonts.sizes.applications}";
|
|
||||||
fixed-font-family = "${fonts.monospace.name}";
|
|
||||||
variable-font-family = "${fonts.sansSerif.name}";
|
|
||||||
alpha = "80";
|
|
||||||
in ''
|
|
||||||
(customize-set-variable 'shell-file-name "${shell}")
|
|
||||||
(add-to-list 'initial-frame-alist '(font . "${font}"))
|
|
||||||
(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}))
|
|
||||||
(scroll-bar-mode -1)
|
|
||||||
(tab-bar-mode -1)
|
|
||||||
(menu-bar-mode -1)
|
|
||||||
'';
|
|
||||||
extraPackages = epkgs:
|
|
||||||
with epkgs; [
|
|
||||||
# Theme
|
|
||||||
base16-theme
|
|
||||||
|
|
||||||
# UI
|
|
||||||
all-the-icons
|
|
||||||
nerd-icons
|
|
||||||
nerd-icons-completion
|
|
||||||
nerd-icons-corfu
|
|
||||||
nerd-icons-dired
|
|
||||||
nerd-icons-ibuffer
|
|
||||||
doom-modeline
|
|
||||||
diminish
|
|
||||||
ligature
|
|
||||||
page-break-lines
|
|
||||||
helpful
|
|
||||||
which-key
|
|
||||||
link-hint
|
|
||||||
diff-hl
|
|
||||||
|
|
||||||
# Completion
|
|
||||||
cape
|
|
||||||
consult
|
|
||||||
consult-eglot
|
|
||||||
consult-flyspell
|
|
||||||
corfu
|
|
||||||
corfu-terminal
|
|
||||||
embark
|
|
||||||
embark-consult
|
|
||||||
marginalia
|
|
||||||
orderless
|
|
||||||
vertico
|
|
||||||
|
|
||||||
# Snippets
|
|
||||||
tempel
|
|
||||||
tempel-collection
|
|
||||||
|
|
||||||
# spell-checking
|
|
||||||
flyspell-correct
|
|
||||||
|
|
||||||
# password-store
|
|
||||||
pass
|
|
||||||
password-store
|
|
||||||
password-store-otp
|
|
||||||
|
|
||||||
# IDE
|
|
||||||
treesit-grammars.with-all-grammars
|
|
||||||
treesit-auto
|
|
||||||
flymake-popon
|
|
||||||
flymake-collection
|
|
||||||
flymake-eslint
|
|
||||||
flymake-shellcheck
|
|
||||||
apheleia
|
|
||||||
direnv
|
|
||||||
rainbow-delimiters
|
|
||||||
aggressive-indent
|
|
||||||
nix-mode
|
|
||||||
python-docstring
|
|
||||||
|
|
||||||
# Media
|
|
||||||
emms
|
|
||||||
|
|
||||||
# org-mode
|
|
||||||
org-roam
|
|
||||||
org-noter
|
|
||||||
org-journal
|
|
||||||
|
|
||||||
# org-cite
|
|
||||||
citar
|
|
||||||
citar-embark
|
|
||||||
|
|
||||||
# org-plot
|
|
||||||
gnuplot
|
|
||||||
|
|
||||||
# org-mode HTML export
|
|
||||||
htmlize
|
|
||||||
|
|
||||||
# Projects
|
|
||||||
ibuffer-project
|
|
||||||
magit
|
|
||||||
forge
|
|
||||||
|
|
||||||
# Writing
|
|
||||||
markdown-mode
|
|
||||||
pandoc-mode
|
|
||||||
auctex
|
|
||||||
auctex-latexmk
|
|
||||||
latex-preview-pane
|
|
||||||
|
|
||||||
# Email
|
|
||||||
mu4e
|
|
||||||
|
|
||||||
# RSS feeds
|
|
||||||
elfeed
|
|
||||||
elfeed-org
|
|
||||||
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; [
|
|
||||||
# Emacs requirements
|
|
||||||
imagemagick
|
|
||||||
languagetool
|
|
||||||
wordnet
|
|
||||||
gnuplot # For org-plot
|
|
||||||
graphviz # For org-roam graph
|
|
||||||
mp3info # For EMMS
|
|
||||||
|
|
||||||
# Language-specific requirements
|
|
||||||
sqlite
|
|
||||||
pandoc
|
|
||||||
ghostscript
|
|
||||||
poppler_utils
|
|
||||||
|
|
||||||
# Customised LaTeX install
|
|
||||||
(texlive.combine {
|
|
||||||
inherit (pkgs.texlive) scheme-medium dvisvgm dvipng wrapfig amsmath ulem hyperref capt-of;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
davmail.server=true
|
|
||||||
davmail.mode=O365Manual
|
|
||||||
davmail.url=https://outlook.office365.com/EWS/Exchange.asmx
|
|
||||||
davmail.imapPort=1144
|
|
||||||
davmail.smtpPort=1026
|
|
||||||
davmail.caldavPort=1080
|
|
||||||
davmail.enableKeepAlive=true
|
|
||||||
davmail.logFilePath=/tmp/davmail.log
|
|
||||||
davmail.enableKerberos=false
|
|
||||||
davmail.forceActiveSyncUpdate=false
|
|
||||||
davmail.imapAutoExpunge=true
|
|
||||||
davmail.useSystemProxies=false
|
|
||||||
davmail.caldavEditNotifications=false
|
|
||||||
davmail.ssl.nosecuresmtp=false
|
|
||||||
davmail.caldavPastDelay=0
|
|
||||||
log4j.logger.httpclient.wire=WARN
|
|
||||||
davmail.popMarkReadOnRetr=false
|
|
||||||
davmail.ssl.nosecureimap=false
|
|
||||||
davmail.disableTrayActivitySwitch=true
|
|
||||||
davmail.caldavAutoSchedule=true
|
|
||||||
davmail.enableProxy=false
|
|
||||||
davmail.smtpSaveInSent=false
|
|
||||||
davmail.ssl.nosecurepop=false
|
|
||||||
log4j.rootLogger=WARN
|
|
||||||
log4j.logger.davmail=DEBUG
|
|
||||||
davmail.ssl.clientKeystorePass=
|
|
||||||
log4j.logger.org.apache.http.conn.ssl=WARN
|
|
||||||
davmail.sentKeepDelay=0
|
|
||||||
davmail.ssl.nosecureldap=false
|
|
||||||
davmail.imapAlwaysApproxMsgSize=true
|
|
||||||
davmail.ssl.nosecurecaldav=false
|
|
||||||
davmail.showStartupBanner=false
|
|
||||||
log4j.logger.httpclient=WARN
|
|
||||||
log4j.logger.org.apache.http.wire=WARN
|
|
||||||
davmail.disableGuiNotifications=true
|
|
||||||
davmail.disableUpdateCheck=true
|
|
||||||
log4j.logger.org.apache.http=WARN
|
|
||||||
davmail.carddavReadPhoto=true
|
|
||||||
davmail.keepDelay=30
|
|
|
@ -1,81 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
hostName,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
accounts.email = {
|
|
||||||
maildirBasePath = "Mail";
|
|
||||||
accounts = let
|
|
||||||
realName = "Evie Litherland-Smith";
|
|
||||||
in {
|
|
||||||
proton = let
|
|
||||||
host = "127.0.0.1";
|
|
||||||
tls.enable = false;
|
|
||||||
in rec {
|
|
||||||
inherit realName;
|
|
||||||
primary = true;
|
|
||||||
maildir.path = "Proton";
|
|
||||||
imap = {
|
|
||||||
inherit host tls;
|
|
||||||
port = 1143;
|
|
||||||
};
|
|
||||||
smtp = {
|
|
||||||
inherit host tls;
|
|
||||||
port = 1025;
|
|
||||||
};
|
|
||||||
address = "e.litherlandsmith@proton.me";
|
|
||||||
aliases = ["evie@xenia.me.uk" "evie@litherlandsmith.slmail.me"];
|
|
||||||
userName = address;
|
|
||||||
passwordCommand = "${pkgs.pass}/bin/pass show mbsync/${hostName}/proton | head -n1";
|
|
||||||
mu.enable = true;
|
|
||||||
msmtp = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = {
|
|
||||||
tls = "off";
|
|
||||||
auth = "login";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
mbsync = {
|
|
||||||
enable = true;
|
|
||||||
create = "both";
|
|
||||||
expunge = "both";
|
|
||||||
remove = "both";
|
|
||||||
patterns = ["*" "!All Mail" "!Labels*" "!Starred" "!Recovered Messages"];
|
|
||||||
subFolders = "Verbatim";
|
|
||||||
extraConfig.account.AuthMechs = "LOGIN";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
icloud = rec {
|
|
||||||
inherit realName;
|
|
||||||
primary = false;
|
|
||||||
maildir.path = "iCloud";
|
|
||||||
imap.host = "imap.mail.me.com";
|
|
||||||
smtp.host = "smtp.mail.me.com";
|
|
||||||
address = "e.litherlandsmith@icloud.com";
|
|
||||||
userName = address;
|
|
||||||
passwordCommand = "${pkgs.pass}/bin/pass show mbsync/${hostName}/icloud | head -n1";
|
|
||||||
mu.enable = true;
|
|
||||||
msmtp.enable = true;
|
|
||||||
mbsync = {
|
|
||||||
enable = true;
|
|
||||||
create = "both";
|
|
||||||
expunge = "both";
|
|
||||||
remove = "both";
|
|
||||||
patterns = ["*" "!Notes"];
|
|
||||||
subFolders = "Verbatim";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
programs = {
|
|
||||||
mu.enable = true;
|
|
||||||
msmtp.enable = true;
|
|
||||||
mbsync = {
|
|
||||||
enable = true;
|
|
||||||
groups.inboxes = {
|
|
||||||
proton = ["INBOX"];
|
|
||||||
icloud = ["INBOX"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
--
|
|
||||||
Evelyn Litherland-Smith (she/they)
|
|
||||||
email: evie@xenia.me.uk
|
|
|
@ -1,5 +0,0 @@
|
||||||
--
|
|
||||||
Evelyn Litherland-Smith (she/they)
|
|
||||||
Spectroscopy Diagnostic Physicist
|
|
||||||
Plasma Science and Fusion Operations
|
|
||||||
UK Atomic Energy Authority
|
|
|
@ -1,69 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
hostName,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [./default.nix];
|
|
||||||
accounts.email.accounts.outlook = let
|
|
||||||
host = "127.0.0.1";
|
|
||||||
tls.enable = false;
|
|
||||||
in rec {
|
|
||||||
inherit (config.accounts.email.accounts.proton) realName;
|
|
||||||
primary = false;
|
|
||||||
maildir.path = "Outlook";
|
|
||||||
imap = {
|
|
||||||
inherit host tls;
|
|
||||||
port = 1144;
|
|
||||||
};
|
|
||||||
smtp = {
|
|
||||||
inherit host tls;
|
|
||||||
port = 1026;
|
|
||||||
};
|
|
||||||
address = "evie.litherland-smith@ukaea.uk";
|
|
||||||
aliases = ["elitherl@jet.uk"];
|
|
||||||
userName = address;
|
|
||||||
passwordCommand = "${pkgs.pass}/bin/pass show mbsync/${hostName}/outlook | head -n1";
|
|
||||||
mu.enable = true;
|
|
||||||
msmtp = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = {
|
|
||||||
tls = "off";
|
|
||||||
auth = "login";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
mbsync = {
|
|
||||||
enable = true;
|
|
||||||
create = "both";
|
|
||||||
expunge = "both";
|
|
||||||
remove = "both";
|
|
||||||
patterns = [
|
|
||||||
"*"
|
|
||||||
"!Conversation History"
|
|
||||||
"!Snoozed"
|
|
||||||
"!Social Activity Notifications"
|
|
||||||
"!Sync Issues*"
|
|
||||||
"!Unsent Messages"
|
|
||||||
];
|
|
||||||
subFolders = "Verbatim";
|
|
||||||
extraConfig.account.AuthMechs = "LOGIN";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
programs.mbsync.groups.inboxes.outlook = ["INBOX"];
|
|
||||||
systemd.user.services.davmail = {
|
|
||||||
Unit = {
|
|
||||||
Description = "Davmail server";
|
|
||||||
Wants = ["network-online.target"];
|
|
||||||
After = ["network-online.target"];
|
|
||||||
};
|
|
||||||
Service = {
|
|
||||||
Environment = ["PATH=/run/current-system/sw/bin/:$PATH"];
|
|
||||||
Restart = "always";
|
|
||||||
ExecStartPre = with config.home; ''
|
|
||||||
/bin/sh -c "if [ ! -f ${homeDirectory}/.davmail.properties ]; then cp ${./davmail.properties} ${homeDirectory}/.davmail.properties; fi; chmod 644 ${homeDirectory}/.davmail.properties"
|
|
||||||
'';
|
|
||||||
ExecStart = "${pkgs.davmail}/bin/davmail -notray ${config.home.homeDirectory}/.davmail.properties";
|
|
||||||
};
|
|
||||||
Install.WantedBy = ["default.target"];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
(defwindow example
|
|
||||||
:monitor 0
|
|
||||||
:geometry (geometry :x "0%"
|
|
||||||
:y "20px"
|
|
||||||
:width "90%"
|
|
||||||
:height "30px"
|
|
||||||
:anchor "top center")
|
|
||||||
:stacking "overlay"
|
|
||||||
:reserve (struts :distance "40px" :side "top")
|
|
||||||
:windowtype "dock"
|
|
||||||
:wm-ignore false
|
|
||||||
:namespace eww-example
|
|
||||||
"example content")
|
|
|
@ -1,12 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.eww = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.eww-wayland;
|
|
||||||
configDir = ./config;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
{
|
|
||||||
fonts,
|
|
||||||
scheme,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.foot = {
|
|
||||||
enable = true;
|
|
||||||
server.enable = true;
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
# term = "xterm-256color";
|
|
||||||
title = "foot";
|
|
||||||
locked-title = "no";
|
|
||||||
font = with fonts; "${monospace.name}:size=${toString sizes.applications}";
|
|
||||||
dpi-aware = "no";
|
|
||||||
pad = "10x10";
|
|
||||||
};
|
|
||||||
bell = {
|
|
||||||
urgent = "no";
|
|
||||||
notify = "no";
|
|
||||||
visual = "no";
|
|
||||||
};
|
|
||||||
cursor = {blink = "yes";};
|
|
||||||
mouse = {hide-when-typing = "no";};
|
|
||||||
colors = with scheme; rec {
|
|
||||||
alpha = 0.8;
|
|
||||||
background = base00;
|
|
||||||
foreground = base05;
|
|
||||||
regular0 = base02;
|
|
||||||
regular1 = red;
|
|
||||||
regular2 = green;
|
|
||||||
regular3 = yellow;
|
|
||||||
regular4 = blue;
|
|
||||||
regular5 = magenta;
|
|
||||||
regular6 = cyan;
|
|
||||||
regular7 = base05;
|
|
||||||
bright0 = base03;
|
|
||||||
bright1 = regular1;
|
|
||||||
bright2 = regular2;
|
|
||||||
bright3 = regular3;
|
|
||||||
bright4 = regular4;
|
|
||||||
bright5 = regular5;
|
|
||||||
bright6 = regular6;
|
|
||||||
bright7 = base04;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
services.git-sync.enable = false; # Can't find pass for some reason...
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
userName = "Evie Litherland-Smith";
|
|
||||||
userEmail = lib.mkDefault "evie@xenia.me.uk";
|
|
||||||
delta = {
|
|
||||||
enable = true;
|
|
||||||
options = {
|
|
||||||
line-numbers = true;
|
|
||||||
hyprlinks = true;
|
|
||||||
navigate = true;
|
|
||||||
side-by-side = true;
|
|
||||||
syntax-theme = with config.programs; lib.mkIf bat.enable bat.config.theme;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
attributes = [
|
|
||||||
"*.gpg filter=gpg diff=gpg"
|
|
||||||
"*.asc filter=gpg diff=gpg"
|
|
||||||
];
|
|
||||||
extraConfig = let
|
|
||||||
user = "pixelifytica";
|
|
||||||
in {
|
|
||||||
github = {inherit user;};
|
|
||||||
gitea = {inherit user;};
|
|
||||||
pull.rebase = false;
|
|
||||||
init.defaultBranch = "main";
|
|
||||||
merge.conflictstyle = "diff3";
|
|
||||||
diff = {
|
|
||||||
colorMoved = "default";
|
|
||||||
gpg.textconv = "gpg --no-tty --decrypt";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,398 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
fonts,
|
|
||||||
scheme,
|
|
||||||
accentColour ? "base07",
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [../desktop.nix];
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
(writeShellScriptBin "protonmail-setup-bridge" ''
|
|
||||||
pkill -9 -f protonmail-bridge
|
|
||||||
${protonmail-bridge}/bin/protonmail-bridge -c
|
|
||||||
${config.wayland.windowManager.hyprland.finalPackage}/bin/hyprctl dispatch exec "${protonmail-bridge}/bin/protonmail-bridge -n"
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
systemd.enable = true;
|
|
||||||
settings = {
|
|
||||||
monitor = [",preferred,auto,auto"];
|
|
||||||
env = with config; [
|
|
||||||
"XDG_CURRENT_DESKTOP=Hyprland"
|
|
||||||
"XDG_SESSION_TYPE=wayland"
|
|
||||||
"XDG_SESSION_DESKTOP=Hyprland"
|
|
||||||
"GDK_BACKEND=wayland,x11"
|
|
||||||
"GTK_THEME,${gtk.theme.name}"
|
|
||||||
"XCURSOR_THEME,${gtk.cursorTheme.name}"
|
|
||||||
"XCURSOR_SIZE,${toString gtk.cursorTheme.size}"
|
|
||||||
"QT_AUTO_SCREEN_SCALE_FACTOR,1"
|
|
||||||
"QT_QPA_PLATFORM,wayland"
|
|
||||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
|
||||||
"MOZ_ENABLE_WAYLAND,1"
|
|
||||||
"GRIM_DEFAULT_DIR=${xdg.userDirs.pictures}/Grim"
|
|
||||||
];
|
|
||||||
exec-once = with config; [
|
|
||||||
"systemctl --user import-environment WAYLAND_DISPLAY QT_QPA_PLATFORMTHEME"
|
|
||||||
"${wayland.windowManager.hyprland.finalPackage}/bin/hyprctl setcursor ${gtk.cursorTheme.name} ${toString gtk.cursorTheme.size}"
|
|
||||||
"${pkgs.swaynotificationcenter}/bin/swaync"
|
|
||||||
"${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"
|
|
||||||
"${pkgs.protonmail-bridge}/bin/protonmail-bridge -n"
|
|
||||||
"${pkgs.waybar}/bin/waybar"
|
|
||||||
"${pkgs.hyprpaper}/bin/hyprpaper"
|
|
||||||
];
|
|
||||||
gestures.workspace_swipe = true;
|
|
||||||
input = {
|
|
||||||
kb_layout = "gb";
|
|
||||||
kb_options = "ctrl:nocaps";
|
|
||||||
follow_mouse = 1;
|
|
||||||
touchpad.natural_scroll = "yes";
|
|
||||||
};
|
|
||||||
dwindle = {
|
|
||||||
force_split = 2;
|
|
||||||
preserve_split = false;
|
|
||||||
smart_split = false;
|
|
||||||
smart_resizing = false;
|
|
||||||
special_scale_factor = 0.95;
|
|
||||||
no_gaps_when_only = 0;
|
|
||||||
use_active_for_splits = true;
|
|
||||||
default_split_ratio = 1.0;
|
|
||||||
};
|
|
||||||
master = {
|
|
||||||
allow_small_split = true;
|
|
||||||
special_scale_factor = 0.95;
|
|
||||||
mfact = 0.5;
|
|
||||||
new_is_master = false;
|
|
||||||
new_on_top = false;
|
|
||||||
no_gaps_when_only = 0;
|
|
||||||
orientation = "left";
|
|
||||||
inherit_fullscreen = false;
|
|
||||||
smart_resizing = false;
|
|
||||||
drop_at_cursor = true;
|
|
||||||
};
|
|
||||||
general = with scheme; {
|
|
||||||
"col.active_border" = "rgb(${scheme.${accentColour}})";
|
|
||||||
"col.inactive_border" = "rgb(${base03})";
|
|
||||||
gaps_in = 5;
|
|
||||||
gaps_out = 10;
|
|
||||||
border_size = 1;
|
|
||||||
cursor_inactive_timeout = 0;
|
|
||||||
layout = "dwindle";
|
|
||||||
};
|
|
||||||
decoration = with scheme; {
|
|
||||||
rounding = 10;
|
|
||||||
"col.shadow" = "rgba(0d${base00})";
|
|
||||||
drop_shadow = "yes";
|
|
||||||
shadow_ignore_window = true;
|
|
||||||
shadow_range = 4;
|
|
||||||
shadow_render_power = 3;
|
|
||||||
blur = {
|
|
||||||
enabled = true;
|
|
||||||
size = 5;
|
|
||||||
passes = 3;
|
|
||||||
new_optimizations = true;
|
|
||||||
brightness = 1.0;
|
|
||||||
noise = 2.0e-2;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
animations = {
|
|
||||||
enabled = true;
|
|
||||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
|
||||||
animation = [
|
|
||||||
"windows, 1, 7, myBezier"
|
|
||||||
"windowsOut, 1, 7, default, popin 80%"
|
|
||||||
"border, 1, 10, default"
|
|
||||||
"borderangle, 1, 8, default"
|
|
||||||
"fade, 1, 7, default"
|
|
||||||
"workspaces, 1, 6, default"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
misc = {
|
|
||||||
disable_splash_rendering = true;
|
|
||||||
disable_autoreload = true;
|
|
||||||
mouse_move_enables_dpms = true;
|
|
||||||
key_press_enables_dpms = true;
|
|
||||||
};
|
|
||||||
xwayland.force_zero_scaling = true;
|
|
||||||
layerrule = let
|
|
||||||
blur = x: "blur, ^(${x})$";
|
|
||||||
ignorealpha = x: "ignorealpha 0.3, ^(${x})$";
|
|
||||||
layers = [
|
|
||||||
"waybar"
|
|
||||||
"system-menu"
|
|
||||||
"rofi"
|
|
||||||
"gtk-layer-shell"
|
|
||||||
"notifications"
|
|
||||||
"swaync-.*"
|
|
||||||
"avizo"
|
|
||||||
];
|
|
||||||
in
|
|
||||||
(lib.lists.forEach layers blur)
|
|
||||||
++ (lib.lists.forEach layers ignorealpha);
|
|
||||||
windowrule = [
|
|
||||||
# Workspace binds
|
|
||||||
"workspace 3, (libreoffice|soffice)(.*)"
|
|
||||||
"workspace 4, (WebCord|signal)"
|
|
||||||
"workspace 5, org.prismlauncher.PrismLauncher"
|
|
||||||
"workspace 5 silent, steam" # Keep silent to avoid popups taking focus
|
|
||||||
|
|
||||||
# Float + move system windows
|
|
||||||
"float, org.kde.polkit-kde-authentication-agent-1|Pinentry"
|
|
||||||
"center, org.kde.polkit-kde-authentication-agent-1|Pinentry"
|
|
||||||
"pin, org.kde.polkit-kde-authentication-agent-1|Pinentry"
|
|
||||||
"dimaround, org.kde.polkit-kde-authentication-agent-1|Pinentry"
|
|
||||||
"stayfocused, org.kde.polkit-kde-authentication-agent-1|Pinentry"
|
|
||||||
"float, pavucontrol|.blueman-manager-wrapped|nm-connection-editor"
|
|
||||||
"size 800 600, pavucontrol|.blueman-manager-wrapped|nm-connection-editor"
|
|
||||||
"move onscreen 100%-820 60,pavucontrol|.blueman-manager-wrapped|nm-connection-editor"
|
|
||||||
|
|
||||||
# PrismLauncher / Minecraft
|
|
||||||
"float, org.prismlauncher.PrismLauncher"
|
|
||||||
"center, org.prismlauncher.PrismLauncher"
|
|
||||||
"size 800 600, org.prismlauncher.PrismLauncher"
|
|
||||||
];
|
|
||||||
windowrulev2 = [
|
|
||||||
# Firefox PIP
|
|
||||||
"float, title:Picture-in-Picture|Library,class:firefox"
|
|
||||||
"size 750 400, title:Picture-in-Picture,class:firefox"
|
|
||||||
"size 800 800, title:Library,class:firefox"
|
|
||||||
"move onscreen 100%-775 100%-425, title:Picture-in-Picture,class:firefox"
|
|
||||||
"center, title:Library,class:firefox"
|
|
||||||
"pin, title:Picture-in-Picture,class:firefox"
|
|
||||||
|
|
||||||
# Thunar extra windows
|
|
||||||
"float, title:File Operation Progress,class:thunar"
|
|
||||||
"size 800 600, title:File Operation Progress,class:thunar"
|
|
||||||
"center, title:File Operation Progress,class:thunar"
|
|
||||||
|
|
||||||
# LibreOffice
|
|
||||||
"nofullscreenrequest, class:(libreoffice|soffice)(.*)"
|
|
||||||
"nomaximizerequest, class:(libreoffice|soffice)(.*)"
|
|
||||||
"float, title:Open,class:(libreoffice|soffice)(.*)"
|
|
||||||
|
|
||||||
# Steam
|
|
||||||
"float, title:Friends List,class:steam"
|
|
||||||
"size 400 600, title:Friends List,class:steam"
|
|
||||||
"float, title:(.*)(Chat),class:steam"
|
|
||||||
"size 800 600, title:(.*)(Chat),class:steam"
|
|
||||||
"float, title:Steam Settings,class:steam"
|
|
||||||
"size 800 600, title:Steam Settings,class:steam"
|
|
||||||
|
|
||||||
# X2Go / Remmina / NoMachine
|
|
||||||
"nofullscreenrequest, class:x2goclient|org.remmina.Remmina|Nxplayer.bin"
|
|
||||||
"nomaximizerequest, class:x2goclient|org.remmina.Remmina|Nxplayer.bin"
|
|
||||||
"float, title:(X2Go Client|Freia|Heimdall), class:x2goclient"
|
|
||||||
"float, title:Remmina Remote Desktop Client, class:org.remmina.Remmina"
|
|
||||||
"float, title:(NoMachine)(.*), class:Nxplayer.bin"
|
|
||||||
"center, title:(X2Go Client|Freia|Heimdall), class:x2goclient"
|
|
||||||
"center, title:Remmina Remote Desktop Client, class:org.remmina.Remmina"
|
|
||||||
"center, title:(NoMachine)(.*), class:Nxplayer.bin"
|
|
||||||
"size 800 600, title:X2Go Client, class:x2goclient"
|
|
||||||
"size 1920 1080, title:Freia|Heimdall, class:x2goclient"
|
|
||||||
"size 1920 1080, title:(NoMachine)(.*), class:Nxplayer.bin"
|
|
||||||
];
|
|
||||||
bind = let
|
|
||||||
withTerm = {
|
|
||||||
term ? "alacritty",
|
|
||||||
package ? config.programs.${term}.package,
|
|
||||||
progname,
|
|
||||||
args ? "",
|
|
||||||
}: "${package}/bin/${term} -T ${progname} -e ${progname} ${args}";
|
|
||||||
workspace = w: [
|
|
||||||
"SUPER, ${toString w}, moveworkspacetomonitor, ${toString w} current"
|
|
||||||
"SUPER, ${toString w}, workspace, ${toString w}"
|
|
||||||
"SUPER SHIFT, ${toString w}, movetoworkspace, ${toString w}"
|
|
||||||
];
|
|
||||||
in
|
|
||||||
with config.programs;
|
|
||||||
with lib.lists;
|
|
||||||
flatten (forEach (range 1 9) workspace)
|
|
||||||
++ (let
|
|
||||||
btm_args = "--autohide_time --battery --celsius --enable_cache_memory --enable_gpu_memory --group --hide_avg_cpu --hide_table_gap --retention=3m --show_table_scroll_position";
|
|
||||||
in [
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
|
||||||
# Open Hyprland wiki at correct version number
|
|
||||||
"CTRL_SHIFT, H, exec, xdg-open \"https://wiki.hyprland.org/$(hyprctl version -j | ${pkgs.jq}/bin/jq $args.commit | ${pkgs.gnused}/bin/sed s/v// | ${pkgs.gnused}/bin/sed s/\\\"//g)\""
|
|
||||||
|
|
||||||
# "SUPER, F1, exec, ${pkgs.hyprlock}/bin/hyprlock" # Until added to nixpkgs
|
|
||||||
"SUPER, F1, exec, ${swaylock.package}/bin/swaylock --screenshots --clock --indicator --grace-no-mouse"
|
|
||||||
"SUPER, Q, killactive,"
|
|
||||||
"SUPER SHIFT, Q, exec, pkill rofi || ${rofi.finalPackage}/bin/rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu"
|
|
||||||
"SUPER, V, togglefloating"
|
|
||||||
# "SUPER SHIFT, V, setfloating" ## TODO setfloating exists
|
|
||||||
# in newer version of Hyprland than mine
|
|
||||||
"SUPER SHIFT, V, moveactive, exact 1% 4%"
|
|
||||||
"SUPER SHIFT, V, resizeactive, exact 800 600"
|
|
||||||
"SUPER SHIFT, V, pin"
|
|
||||||
"SUPER, M, fullscreen, 1" # Maximise window
|
|
||||||
"SUPER SHIFT, M, fullscreen, 0" # Actual fullscreen
|
|
||||||
"SUPER, Z, exec, ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw"
|
|
||||||
"SUPER SHIFT, Z, exec, ${pkgs.swaynotificationcenter}/bin/swaync-client -d -sw"
|
|
||||||
|
|
||||||
# Common program shortcuts
|
|
||||||
"SUPER, Return, exec, ${alacritty.package}/bin/alacritty"
|
|
||||||
"SUPER, E, exec, ${emacs.finalPackage}/bin/emacsclient -c"
|
|
||||||
"SUPER, W, exec, ${firefox.package}/bin/firefox"
|
|
||||||
"SUPER, F, exec, ${pkgs.xfce.thunar}/bin/thunar"
|
|
||||||
|
|
||||||
# Rofi binds
|
|
||||||
"SUPER, Space, exec, pkill rofi || ${rofi.finalPackage}/bin/rofi -show drun"
|
|
||||||
"SUPER, tab, exec, pkill rofi || ${rofi.finalPackage}/bin/rofi -show window"
|
|
||||||
"SUPER, A, exec, pkill rofi || ${rofi.finalPackage}/bin/rofi -show emoji"
|
|
||||||
|
|
||||||
# rofi-pass binds
|
|
||||||
"SUPER, P, exec, pkill rofi || ${rofi.pass.package}/bin/rofi-pass"
|
|
||||||
"SUPER SHIFT, P, exec, pkill rofi || ${rofi.pass.package}/bin/rofi-pass --last-used"
|
|
||||||
"SUPER ALT, P, exec, pkill rofi || ${rofi.pass.package}/bin/rofi-pass --insert"
|
|
||||||
|
|
||||||
# Terminal utilities
|
|
||||||
"SUPER, S, exec, ${withTerm {
|
|
||||||
progname = "btm";
|
|
||||||
args = btm_args;
|
|
||||||
}}"
|
|
||||||
"SUPER SHIFT, S, exec, ${withTerm {
|
|
||||||
progname = "btm";
|
|
||||||
args = btm_args + " --basic";
|
|
||||||
}}"
|
|
||||||
"SUPER, C, exec, ${withTerm {progname = "cava";}}"
|
|
||||||
|
|
||||||
# Misc useful binds
|
|
||||||
'',Print,exec,${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)"''
|
|
||||||
",XF86Calculator,exec,pkill rofi || ${rofi.finalPackage}/bin/rofi -show calc"
|
|
||||||
|
|
||||||
# Movement binds
|
|
||||||
"SUPER, H, movefocus, l"
|
|
||||||
"SUPER, L, movefocus, r"
|
|
||||||
"SUPER, K, movefocus, u"
|
|
||||||
"SUPER, J, movefocus, d"
|
|
||||||
"SUPER SHIFT, H, movewindow, l"
|
|
||||||
"SUPER SHIFT, L, movewindow, r"
|
|
||||||
"SUPER SHIFT, K, movewindow, u"
|
|
||||||
"SUPER SHIFT, J, movewindow, d"
|
|
||||||
|
|
||||||
# Special workspaces
|
|
||||||
"SUPER, comma, workspace, m-1"
|
|
||||||
"SUPER SHIFT, comma, movetoworkspace, r-1"
|
|
||||||
"SUPER, period, workspace, m+1"
|
|
||||||
"SUPER SHIFT, period, movetoworkspace, r+1"
|
|
||||||
"SUPER, N, workspace, empty"
|
|
||||||
"SUPER SHIFT, N, movetoworkspace, empty"
|
|
||||||
"SUPER, minus, togglespecialworkspace"
|
|
||||||
"SUPER SHIFT, minus, movetoworkspace, special"
|
|
||||||
"SUPER, bracketright, focusmonitor, +1"
|
|
||||||
"SUPER SHIFT, bracketright, movecurrentworkspacetomonitor, +1"
|
|
||||||
"SUPER, bracketleft, focusmonitor, -1"
|
|
||||||
"SUPER SHIFT, bracketleft, movecurrentworkspacetomonitor, -1"
|
|
||||||
"SUPER, O, focusurgentorlast"
|
|
||||||
]);
|
|
||||||
bindl = with config.services; [
|
|
||||||
# Sound
|
|
||||||
",XF86AudioMute,exec,${avizo.package}/bin/volumectl %"
|
|
||||||
",XF86AudioMicMute,exec,${avizo.package}/bin/volumectl -m %"
|
|
||||||
|
|
||||||
# Playback
|
|
||||||
",XF86AudioPlay,exec,${pkgs.playerctl}/bin/playerctl play-pause"
|
|
||||||
",XF86AudioStop,exec,${pkgs.playerctl}/bin/playerctl play-pause"
|
|
||||||
",XF86AudioPrev,exec,${pkgs.playerctl}/bin/playerctl previous"
|
|
||||||
",XF86AudioNext,exec,${pkgs.playerctl}/bin/playerctl next"
|
|
||||||
];
|
|
||||||
bindle = with config.services; [
|
|
||||||
# Sound
|
|
||||||
",XF86AudioRaiseVolume,exec,${avizo.package}/bin/volumectl -u + 5"
|
|
||||||
",XF86AudioLowerVolume,exec,${avizo.package}/bin/volumectl -u - 5"
|
|
||||||
|
|
||||||
# Brightness
|
|
||||||
",XF86MonBrightnessUp,exec,${avizo.package}/bin/lightctl + 5"
|
|
||||||
",XF86MonBrightnessDown,exec,${avizo.package}/bin/lightctl - 5"
|
|
||||||
];
|
|
||||||
bindm = [
|
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
||||||
"SUPER, mouse:272, movewindow"
|
|
||||||
"SUPER, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.configFile = {
|
|
||||||
"hypr/hyprpaper.conf".text = let
|
|
||||||
image = ../../wallpapers/waves/cat-waves.png;
|
|
||||||
in ''
|
|
||||||
preload = ${image}
|
|
||||||
wallpaper = ,${image}
|
|
||||||
'';
|
|
||||||
"hypr/hyprlock.conf".text = with scheme; let
|
|
||||||
font = fonts.sansSerif.name;
|
|
||||||
accent = scheme.${accentColour};
|
|
||||||
in ''
|
|
||||||
# GENERAL
|
|
||||||
general {
|
|
||||||
disable_loading_bar = true
|
|
||||||
hide_cursor = true
|
|
||||||
}
|
|
||||||
|
|
||||||
# BACKGROUND
|
|
||||||
background {
|
|
||||||
monitor =
|
|
||||||
path = screenshot
|
|
||||||
blur_passes = 3
|
|
||||||
color = 0xff${accent}
|
|
||||||
}
|
|
||||||
|
|
||||||
# TIME
|
|
||||||
label {
|
|
||||||
monitor =
|
|
||||||
text = cmd[update:30000] echo "$(date +"%R")"
|
|
||||||
color = 0xff${base05}
|
|
||||||
font_size = 90
|
|
||||||
font_family = ${font}
|
|
||||||
position = -30, 0
|
|
||||||
halign = right
|
|
||||||
valign = top
|
|
||||||
}
|
|
||||||
|
|
||||||
# DATE
|
|
||||||
label {
|
|
||||||
monitor =
|
|
||||||
text = cmd[update:43200000] echo "$(date +"%A,%e %B %Y")"
|
|
||||||
color = 0xff${base05}
|
|
||||||
font_size = 25
|
|
||||||
font_family = ${font}
|
|
||||||
position = -30, -150
|
|
||||||
halign = right
|
|
||||||
valign = top
|
|
||||||
}
|
|
||||||
|
|
||||||
# USER
|
|
||||||
image {
|
|
||||||
monitor =
|
|
||||||
path = ${../../picrew.png}
|
|
||||||
size = 100
|
|
||||||
border_color = 0xff${accent}
|
|
||||||
position = 0, 75
|
|
||||||
halign = center
|
|
||||||
valign = center
|
|
||||||
}
|
|
||||||
|
|
||||||
# INPUT FIELD
|
|
||||||
input-field {
|
|
||||||
monitor =
|
|
||||||
size = 300, 60
|
|
||||||
outline_thickness = 2
|
|
||||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
|
||||||
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
|
|
||||||
dots_center = true
|
|
||||||
outer_color = 0xff${accent}
|
|
||||||
inner_color = 0xff${base00}
|
|
||||||
font_color = 0xff${base05}
|
|
||||||
fade_on_empty = false
|
|
||||||
placeholder_text = <span foreground="##${base04}"><i> Logged in as </i><span foreground="##${accent}">$USER</span></span>
|
|
||||||
hide_input = false
|
|
||||||
position = 0, -50
|
|
||||||
halign = center
|
|
||||||
valign = center
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
$env.config = {
|
|
||||||
show_banner: false,
|
|
||||||
edit_mode: emacs,
|
|
||||||
table: {
|
|
||||||
mode: rounded,
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{...}: {
|
|
||||||
programs.nushell = {
|
|
||||||
enable = true;
|
|
||||||
envFile.source = ./env.nu;
|
|
||||||
configFile.source = ./config.nu;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
$env.TRANSIENT_PROMPT_COMMAND = "> "
|
|
||||||
$env.PAGER = "bat"
|
|
|
@ -1,122 +0,0 @@
|
||||||
(
|
|
||||||
;; 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"))
|
|
||||||
)
|
|
|
@ -1,64 +0,0 @@
|
||||||
(define-configuration buffer
|
|
||||||
((default-modes
|
|
||||||
(pushnew 'nyxt/mode/emacs:emacs-mode %slot-value%))
|
|
||||||
(default-modes
|
|
||||||
(pushnew 'nyxt/mode/blocker:blocker-mode %slot-value%))))
|
|
||||||
|
|
||||||
(define-configuration status-buffer
|
|
||||||
((glyph-mode-presentation-p t)
|
|
||||||
(display-tabs-by-last-access-p nil)))
|
|
||||||
|
|
||||||
(define-configuration :emacs-mode ((glyph "ε")))
|
|
||||||
(define-configuration :force-https-mode ((glyph "ϕ")))
|
|
||||||
(define-configuration :user-script-mode ((glyph "u")))
|
|
||||||
(define-configuration :blocker-mode ((glyph "β")))
|
|
||||||
(define-configuration :proxy-mode ((glyph "π")))
|
|
||||||
(define-configuration :reduce-tracking-mode ((glyph "τ")))
|
|
||||||
(define-configuration :certificate-exception-mode ((glyph "χ")))
|
|
||||||
(define-configuration :style-mode ((glyph "ϕ")))
|
|
||||||
(define-configuration :cruise-control-mode ((glyph "σ")))
|
|
||||||
|
|
||||||
(define-configuration :document-mode
|
|
||||||
"Extend with custom keybinds"
|
|
||||||
((keyscheme-map
|
|
||||||
(keymaps:define-keyscheme-map "custom" (list :import %slot-value%)
|
|
||||||
nyxt/keyscheme:emacs (list
|
|
||||||
"C-c u" 'copy-username
|
|
||||||
"C-c p" 'copy-password)))))
|
|
||||||
|
|
||||||
(define-configuration :autofill-mode
|
|
||||||
"Add autofill functions for passwords"
|
|
||||||
((autofills
|
|
||||||
(list
|
|
||||||
(nyxt/mode/autofill:make-autofill
|
|
||||||
:name "name"
|
|
||||||
:fill "Evie Litherland-Smith")
|
|
||||||
(nyxt/mode/autofill:make-autofill
|
|
||||||
:name "email"
|
|
||||||
:fill "evie@xenia.me.uk")))))
|
|
||||||
|
|
||||||
(defvar *my-search-engines*
|
|
||||||
(list
|
|
||||||
'("rust" "https://doc.rust-lang.org/std/index.html?search=~a" "https://doc.rust-lang.org/std/index.html")
|
|
||||||
'("crates" "https://crates.io/search?q=~a" "https://crates.io/")
|
|
||||||
'("python" "https://docs.python.org/3/search.html?q=~a" "https://docs.python.org/3")
|
|
||||||
'("pypi" "https://pypi.org/search/?q=~a" "https://pypi.org/")
|
|
||||||
'("mynix" "https://mynixos.com/search?q=~a" "https://mynixos.com/")
|
|
||||||
'("nixwiki" "https://nixos.wiki/index.php?search=~a&go=Go" "https://nixos.wiki/")
|
|
||||||
'("archwiki" "https://wiki.archlinux.org/index.php?search=~a" "https://wiki.archlinux.org/")
|
|
||||||
'("github" "https://github.com/search?utf8=✓&q=~a&type=repositories" "https://github.com/")
|
|
||||||
'("doi" "https://dx.doi.org/~a" "https://dx.doi.org/")
|
|
||||||
'("wiki" "https://en.wikipedia.org/w/index.php?search=~a" "https://en.wikipedia.org/")
|
|
||||||
'("ddg" "https://duckduckgo.com/?q=~a" "https://duckduckgo.com/"))
|
|
||||||
"List of search engines.")
|
|
||||||
|
|
||||||
(define-configuration context-buffer
|
|
||||||
"Go through the search engines above and make-search-engine out of them."
|
|
||||||
((search-engines
|
|
||||||
(mapcar (lambda (engine) (apply 'make-search-engine engine))
|
|
||||||
*my-search-engines*))))
|
|
||||||
|
|
||||||
(define-configuration browser
|
|
||||||
((restore-session-on-startup-p t)))
|
|
||||||
|
|
||||||
(setf (uiop/os:getenv "GTK_THEME") "Adwaita:dark")
|
|
|
@ -1,41 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
fonts,
|
|
||||||
scheme,
|
|
||||||
accentColour ? "base07",
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
xdg = {
|
|
||||||
configFile = {
|
|
||||||
"nyxt/config.lisp".text = with 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 "${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,12 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
home.packages = with pkgs; [helvum];
|
|
||||||
programs.obs-studio = {
|
|
||||||
enable = true;
|
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
|
||||||
wlrobs
|
|
||||||
obs-vkcapture
|
|
||||||
obs-pipewire-audio-capture
|
|
||||||
input-overlay
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
xdg.configFile."pass-git-helper/git-pass-mapping.ini".source =
|
|
||||||
./git-pass-mapping.ini;
|
|
||||||
programs = {
|
|
||||||
gpg.enable = true;
|
|
||||||
password-store = {
|
|
||||||
enable = true;
|
|
||||||
package =
|
|
||||||
pkgs.pass-nodmenu.withExtensions
|
|
||||||
(exts: with exts; [pass-otp pass-update pass-import]); # pass-audit
|
|
||||||
settings = {
|
|
||||||
PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.password-store";
|
|
||||||
PASSWORD_STORE_ENABLE_EXTENSIONS = "true";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
git.extraConfig.credential = {
|
|
||||||
helper = "${pkgs.pass-git-helper}/bin/pass-git-helper";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
gpg-agent = rec {
|
|
||||||
enable = true;
|
|
||||||
maxCacheTtl = 86400;
|
|
||||||
defaultCacheTtl = maxCacheTtl;
|
|
||||||
defaultCacheTtlSsh = maxCacheTtl;
|
|
||||||
pinentryFlavor = lib.mkDefault "curses";
|
|
||||||
extraConfig = ''
|
|
||||||
no-allow-external-cache
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
git-sync.repositories.password-store = {
|
|
||||||
path = "${config.home.homeDirectory}/.password-store";
|
|
||||||
uri = "git+https://git.xenia.me.uk/xenia/pass.git";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
[DEFAULT]
|
|
||||||
username_extractor=regex_search
|
|
||||||
regex_username=^login: (.*)$
|
|
||||||
|
|
||||||
[*]
|
|
||||||
target=git/${host}
|
|
|
@ -1,38 +0,0 @@
|
||||||
{
|
|
||||||
stdenvNoCC,
|
|
||||||
fetchFromGitHub,
|
|
||||||
gtk3,
|
|
||||||
libsForQt5,
|
|
||||||
gnome,
|
|
||||||
hicolor-icon-theme,
|
|
||||||
}:
|
|
||||||
stdenvNoCC.mkDerivation rec {
|
|
||||||
pname = "candy-icon-theme";
|
|
||||||
version = "6a35be5cb133c6be8314807f55da3d795e24fb86";
|
|
||||||
dontBuild = true;
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "EliverLara";
|
|
||||||
repo = "candy-icons";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "sha256-M58ts/xyVf+ZDidd4MEp/LlU3vk2imEwOnb0/sVJUYo=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [gtk3];
|
|
||||||
|
|
||||||
buildInputs = [libsForQt5.breeze-icons gnome.adwaita-icon-theme hicolor-icon-theme];
|
|
||||||
|
|
||||||
dontDropIconThemeCache = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
mkdir -p $out/share/icons/Sweet-folders
|
|
||||||
mv * $out/share/icons/Sweet-folders
|
|
||||||
|
|
||||||
for theme in $out/share/icons/*; do
|
|
||||||
gtk-update-icon-cache --force $theme
|
|
||||||
done
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
{
|
|
||||||
stdenvNoCC,
|
|
||||||
fetchFromGitHub,
|
|
||||||
gtk3,
|
|
||||||
candy-icon-theme,
|
|
||||||
gnome-icon-theme,
|
|
||||||
ubuntu-themes,
|
|
||||||
cinnamon,
|
|
||||||
elementary-xfce-icon-theme,
|
|
||||||
}:
|
|
||||||
stdenvNoCC.mkDerivation rec {
|
|
||||||
pname = "sweet-folder-theme";
|
|
||||||
version = "b2192ff1412472f036fdf9778c6b9dbcb6c044ec";
|
|
||||||
dontBuild = true;
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "EliverLara";
|
|
||||||
repo = "Sweet-folders";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "sha256-QexfqXH5a1IEhKBRjWSMdrEvThvLRzd4M32Xti1DCGE=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [gtk3];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
candy-icon-theme
|
|
||||||
gnome-icon-theme
|
|
||||||
ubuntu-themes
|
|
||||||
cinnamon.mint-x-icons
|
|
||||||
elementary-xfce-icon-theme
|
|
||||||
];
|
|
||||||
|
|
||||||
dontDropIconThemeCache = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
mkdir -p $out/share/icons
|
|
||||||
mv Sweet-Rainbow $out/share/icons
|
|
||||||
|
|
||||||
for theme in $out/share/icons/*; do
|
|
||||||
gtk-update-icon-cache --force $theme
|
|
||||||
done
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
xdg.configFile = {
|
|
||||||
"ruff/pyproject.toml".source = ./ruff.toml;
|
|
||||||
"pypoetry/config.toml".source = ./pypoetry.toml;
|
|
||||||
};
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
# Nix
|
|
||||||
nil
|
|
||||||
alejandra
|
|
||||||
|
|
||||||
# Shell
|
|
||||||
shfmt
|
|
||||||
shellcheck
|
|
||||||
nodePackages.prettier
|
|
||||||
|
|
||||||
# Python
|
|
||||||
(python3.withPackages
|
|
||||||
(ps: with ps; [python-lsp-server flake8 mypy]))
|
|
||||||
black
|
|
||||||
isort
|
|
||||||
|
|
||||||
# FORTRAN
|
|
||||||
fortls
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"Application": { "log_datefmt": "%Y-%m-%d %H:%M:%S" },
|
|
||||||
"InteractiveShell": {
|
|
||||||
"colors": "Linux",
|
|
||||||
"color_info": true
|
|
||||||
},
|
|
||||||
"InteractiveShellApp": {
|
|
||||||
"exec_PYTHONSTARTUP": false,
|
|
||||||
"exec_lines": ["%load_ext autoreload", "%autoreload 2 --print"]
|
|
||||||
},
|
|
||||||
"TerminalIPythonApp": { "display_banner": false },
|
|
||||||
"TerminalInteractiveShell": {
|
|
||||||
"editing_mode": "emacs",
|
|
||||||
"mouse_support": false,
|
|
||||||
"true_color": true
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
c.SlidesExporter.exclude_input = True
|
|
||||||
c.SlidesExporter.reveal_scroll = True
|
|
||||||
c.PDFExporter.latex_command = ["pdflatex", "{filename}"]
|
|
|
@ -1,17 +0,0 @@
|
||||||
import os
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
root_dir = Path(os.getenv("HOME", Path("~/").expanduser().resolve()))
|
|
||||||
|
|
||||||
c.ServerApp.port = 8888
|
|
||||||
c.ServerApp.root_dir = str(root_dir)
|
|
||||||
c.FileCheckpoints.checkpoint_dir = str(root_dir / ".ipynb_checkpoints")
|
|
||||||
c.ServerApp.use_redirect_file = False
|
|
||||||
c.ServerApp.open_browser = False
|
|
||||||
|
|
||||||
# Set password for remote access login
|
|
||||||
c.PasswordIdentityProvider.hashed_password = (
|
|
||||||
"sha1:005773a53a70:a5c53a779fa0e1498ada0f8fdb48ad1fef1257ff"
|
|
||||||
)
|
|
||||||
c.PasswordIdentityProvider.password_required = True
|
|
||||||
c.PasswordIdentityProvider.allow_password_change = False
|
|
|
@ -1,41 +0,0 @@
|
||||||
{
|
|
||||||
agg,
|
|
||||||
freetype,
|
|
||||||
buildLuarocksPackage,
|
|
||||||
fetchgit,
|
|
||||||
fetchurl,
|
|
||||||
lua,
|
|
||||||
luaOlder,
|
|
||||||
}:
|
|
||||||
buildLuarocksPackage {
|
|
||||||
pname = "graph-toolkit";
|
|
||||||
version = "scm-1";
|
|
||||||
knownRockspec =
|
|
||||||
(fetchurl {
|
|
||||||
url = "mirror://luarocks/graph-toolkit-scm-1.rockspec";
|
|
||||||
sha256 = "0hsrf7k45w8ri18mdrx44mv1kr4zfr5mg76cxi8nnr30ssrblvgb";
|
|
||||||
})
|
|
||||||
.outPath;
|
|
||||||
src = fetchgit (removeAttrs (builtins.fromJSON '' {
|
|
||||||
"url": "https://github.com/franko/graph-toolkit",
|
|
||||||
"rev": "126a11bdbb98faf785c373516a288b7fa609f824",
|
|
||||||
"date": "2015-01-02T08:44:01-08:00",
|
|
||||||
"path": "/nix/store/gbwbjrl4j42kaqk3pjzvmckmr6dimkd0-graph-toolkit",
|
|
||||||
"sha256": "1pqjpqfandi7brk2213vlq891bl8drb0q32m5wmf0l21li0l4zrp",
|
|
||||||
"hash": "sha256-N39CQaRBUOAqL1UMDFZuiK6QEKZ7BCFmXic2qxy+Et8=",
|
|
||||||
"fetchLFS": false,
|
|
||||||
"fetchSubmodules": true,
|
|
||||||
"deepClone": false,
|
|
||||||
"leaveDotGit": false
|
|
||||||
}
|
|
||||||
'') ["date" "path" "sha256"]);
|
|
||||||
|
|
||||||
disabled = luaOlder "5.1";
|
|
||||||
propagatedBuildInputs = [lua agg freetype];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "http://franko.github.io/graph-toolkit/";
|
|
||||||
description = "Lua Graphics Toolkit";
|
|
||||||
license.fullName = "GPL-3";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
{
|
|
||||||
buildLuarocksPackage,
|
|
||||||
fetchurl,
|
|
||||||
lua,
|
|
||||||
luaAtLeast,
|
|
||||||
luaOlder,
|
|
||||||
luaPackages,
|
|
||||||
}: let
|
|
||||||
xsys = luaPackages.callPackage ./xsys.nix {};
|
|
||||||
in
|
|
||||||
buildLuarocksPackage {
|
|
||||||
pname = "sci";
|
|
||||||
version = "1.0.0.beta12-1";
|
|
||||||
knownRockspec =
|
|
||||||
(fetchurl {
|
|
||||||
url = "mirror://luarocks/sci-1.0.0.beta12-1.rockspec";
|
|
||||||
sha256 = "0lprn9x4zw767hdz8lyxmwrrfyn5xj3x50pm9b4qiwy8992mg00r";
|
|
||||||
})
|
|
||||||
.outPath;
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://github.com/stepelu/lua-sci/archive/v1.0.0-beta12.tar.gz";
|
|
||||||
sha256 = "0a45r7n13gfqckpdp1bmizqvjadn8nc5d6ff9gjw860g3i75sy2h";
|
|
||||||
};
|
|
||||||
|
|
||||||
disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
|
|
||||||
propagatedBuildInputs = [lua xsys];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "https://github.com/stepelu/lua-sci";
|
|
||||||
description = "Scientific Computing with LuaJIT";
|
|
||||||
license.fullName = "MIT";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
{
|
|
||||||
buildLuarocksPackage,
|
|
||||||
fetchurl,
|
|
||||||
lua,
|
|
||||||
luaAtLeast,
|
|
||||||
luaOlder,
|
|
||||||
}:
|
|
||||||
buildLuarocksPackage {
|
|
||||||
pname = "xsys";
|
|
||||||
version = "1.0.2-1";
|
|
||||||
knownRockspec =
|
|
||||||
(fetchurl {
|
|
||||||
url = "mirror://luarocks/xsys-1.0.2-1.rockspec";
|
|
||||||
sha256 = "0jlyrwbzh6fi68msdynp4bbihyww4i3yk0qh859xlwqhfy5cza7p";
|
|
||||||
})
|
|
||||||
.outPath;
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://github.com/stepelu/lua-xsys/archive/v1.0.2.tar.gz";
|
|
||||||
sha256 = "1zwrlp6bghq8c12kyqc1ic7mrn8lf3d42755h8q2wxwhy1i3xqyh";
|
|
||||||
};
|
|
||||||
|
|
||||||
disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
|
|
||||||
propagatedBuildInputs = [lua];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "http://scilua.org/xsys.html";
|
|
||||||
description = "LuaJIT General Purpose Routines";
|
|
||||||
license.fullName = "MIT";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
[virtualenvs]
|
|
||||||
create = true
|
|
||||||
in-project = true
|
|
||||||
|
|
||||||
[virtualenvs.options]
|
|
||||||
always-copy = true
|
|
||||||
no-pip = true
|
|
||||||
no-setuptools = true
|
|
||||||
system-site-packages = true
|
|
|
@ -1,37 +0,0 @@
|
||||||
[lint]
|
|
||||||
select = [
|
|
||||||
"F", "E4", "E7", "E9", # Defaults
|
|
||||||
"W", # pycodestyle warnings
|
|
||||||
"B", # Flake8 bugbear rules
|
|
||||||
"PD", # Pandas vet rules
|
|
||||||
"NPY", # NumPy specific rules
|
|
||||||
"RUF", # Ruff specific rules
|
|
||||||
"PERF1", "PERF2", # Performance lints from Perflint
|
|
||||||
"E101", # Mixed spaces and tabs
|
|
||||||
"E501", # Line too long
|
|
||||||
"C901", # Complex structure
|
|
||||||
"I001", # Import block un-sorted / un-formatted
|
|
||||||
"I002", # Missing required import
|
|
||||||
"N804", # First argument of class method should be cls
|
|
||||||
"N805" # First argument of method should be self
|
|
||||||
]
|
|
||||||
ignore = [
|
|
||||||
"W191", # Ignore due to conflict with ruff formatter
|
|
||||||
"E111", # Ignore due to conflict with ruff formatter
|
|
||||||
"E114", # Ignore due to conflict with ruff formatter
|
|
||||||
"E117", # Ignore due to conflict with ruff formatter
|
|
||||||
"D206", # Ignore due to conflict with ruff formatter
|
|
||||||
"D300", # Ignore due to conflict with ruff formatter
|
|
||||||
"Q000", # Ignore due to conflict with ruff formatter
|
|
||||||
"Q001", # Ignore due to conflict with ruff formatter
|
|
||||||
"Q002", # Ignore due to conflict with ruff formatter
|
|
||||||
"Q003", # Ignore due to conflict with ruff formatter
|
|
||||||
"COM812", # Ignore due to conflict with ruff formatter
|
|
||||||
"COM819", # Ignore due to conflict with ruff formatter
|
|
||||||
"ISC001", # Ignore due to conflict with ruff formatter
|
|
||||||
"ISC002" # Ignore due to conflict with ruff formatter
|
|
||||||
]
|
|
||||||
unfixable = ["W", "B", "PD", "NPY", "RUF", "E101", "E501", "C901", "I001", "I002"]
|
|
||||||
|
|
||||||
# [format]
|
|
||||||
# docstring-code-format = true
|
|
|
@ -1,51 +0,0 @@
|
||||||
{config, ...}: {
|
|
||||||
imports = [../desktop.nix];
|
|
||||||
wayland.windowManager.river = {
|
|
||||||
enable = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
extraSessionVariables = {
|
|
||||||
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
|
|
||||||
QT_QPA_PLATFORM = "wayland";
|
|
||||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
|
||||||
MOZ_ENABLE_WAYLAND = "1";
|
|
||||||
};
|
|
||||||
systemd = {
|
|
||||||
enable = true;
|
|
||||||
variables = [
|
|
||||||
"DISPLAY"
|
|
||||||
"WAYLAND_DISPLAY"
|
|
||||||
"XDG_CURRENT_DESKTOP"
|
|
||||||
"NIXOS_OZONE_WL"
|
|
||||||
"XCURSOR_THEME"
|
|
||||||
"XCURSOR_SIZE"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
# These are currently example settings
|
|
||||||
border-width = 2;
|
|
||||||
declare-mode = [
|
|
||||||
"locked"
|
|
||||||
"normal"
|
|
||||||
"passthrough"
|
|
||||||
];
|
|
||||||
input = {
|
|
||||||
pointer-foo-bar = {
|
|
||||||
accel-profile = "flat";
|
|
||||||
events = true;
|
|
||||||
pointer-accel = -0.3;
|
|
||||||
tap = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
map = {
|
|
||||||
normal = {
|
|
||||||
"Alt Q" = "close";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
rule-add = {};
|
|
||||||
set-cursor-warp = "on-output-change";
|
|
||||||
set-repeat = "50 300";
|
|
||||||
spawn = [];
|
|
||||||
xcursor-theme = with config.gtk.cursorTheme; "${name} ${toString size}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,141 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
fonts,
|
|
||||||
scheme,
|
|
||||||
accentColour ? "base07",
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.rofi = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.rofi-wayland;
|
|
||||||
font = fonts.monospace.name;
|
|
||||||
location = "center";
|
|
||||||
plugins = with pkgs; [rofi-emoji];
|
|
||||||
pass = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = ''
|
|
||||||
USERNAME_field='login'
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
extraConfig = {
|
|
||||||
modi = "run,drun,ssh,window,emoji,combi";
|
|
||||||
combi-modi = "drun,ssh,window,emoji";
|
|
||||||
sidebar-mode = true;
|
|
||||||
sort = true;
|
|
||||||
sorting-method = "fzf";
|
|
||||||
matching = "fuzzy";
|
|
||||||
icon-theme = config.gtk.iconTheme.name;
|
|
||||||
show-icons = true;
|
|
||||||
application-fallback-icon = "application-x-addon";
|
|
||||||
drun-display-format = "{icon} {name} ({categories})";
|
|
||||||
disable-history = false;
|
|
||||||
hide-scrollbar = true;
|
|
||||||
display-run = " Run ";
|
|
||||||
display-drun = " Apps ";
|
|
||||||
display-ssh = " SSH ";
|
|
||||||
display-window = " Move ";
|
|
||||||
display-emoji = " Emoji ";
|
|
||||||
display-combi = " Combi ";
|
|
||||||
};
|
|
||||||
theme = with builtins;
|
|
||||||
with scheme; let
|
|
||||||
inherit (config.lib.formats.rasi) mkLiteral;
|
|
||||||
bg = mkLiteral "rgba (${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 80%)";
|
|
||||||
bg2 = mkLiteral "rgba (${base01-rgb-r}, ${base01-rgb-g}, ${base01-rgb-b}, 100%)";
|
|
||||||
fg = mkLiteral withHashtag.base05;
|
|
||||||
fg2 = mkLiteral withHashtag.base04;
|
|
||||||
border = mkLiteral withHashtag.${accentColour};
|
|
||||||
blue = mkLiteral withHashtag.blue;
|
|
||||||
in {
|
|
||||||
"*" = {
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
text-color = fg;
|
|
||||||
font = with fonts; "${monospace.name} ${toString sizes.popups}";
|
|
||||||
};
|
|
||||||
|
|
||||||
window = {
|
|
||||||
height = mkLiteral "75%";
|
|
||||||
width = mkLiteral "75%";
|
|
||||||
border = mkLiteral "1px";
|
|
||||||
border-color = border;
|
|
||||||
border-radius = mkLiteral "10px";
|
|
||||||
background-color = bg;
|
|
||||||
};
|
|
||||||
|
|
||||||
inputbar = {
|
|
||||||
children = map mkLiteral ["prompt" "entry"];
|
|
||||||
padding = mkLiteral "2px";
|
|
||||||
};
|
|
||||||
|
|
||||||
prompt = {
|
|
||||||
background-color = bg2;
|
|
||||||
padding = mkLiteral "6px";
|
|
||||||
text-color = blue;
|
|
||||||
border-radius = mkLiteral "10px";
|
|
||||||
margin = mkLiteral "20px 0px 0px 20px";
|
|
||||||
};
|
|
||||||
|
|
||||||
textbox-prompt-colon = {
|
|
||||||
expand = false;
|
|
||||||
str = "=";
|
|
||||||
};
|
|
||||||
|
|
||||||
entry = {
|
|
||||||
padding = mkLiteral "6px";
|
|
||||||
margin = mkLiteral "20px 0px 0px 10px";
|
|
||||||
};
|
|
||||||
|
|
||||||
listview = {
|
|
||||||
border = mkLiteral "0px 0px 0px";
|
|
||||||
padding = mkLiteral "6px 0px 0px";
|
|
||||||
margin = mkLiteral "10px 0px 0px 20px";
|
|
||||||
columns = 2;
|
|
||||||
lines = 5;
|
|
||||||
};
|
|
||||||
|
|
||||||
element = {
|
|
||||||
padding = mkLiteral "5px";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element-icon" = {
|
|
||||||
size = mkLiteral "25px";
|
|
||||||
};
|
|
||||||
|
|
||||||
"element selected" = {
|
|
||||||
background-color = bg2;
|
|
||||||
text-color = blue;
|
|
||||||
border-radius = mkLiteral "10px";
|
|
||||||
};
|
|
||||||
|
|
||||||
mode-switcher = {
|
|
||||||
spacing = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
button = {
|
|
||||||
padding = mkLiteral "10px";
|
|
||||||
text-color = fg2;
|
|
||||||
border-radius = mkLiteral "10px";
|
|
||||||
vertical-align = mkLiteral "0.5";
|
|
||||||
horizontal-align = mkLiteral "0.5";
|
|
||||||
};
|
|
||||||
|
|
||||||
"button selected" = {
|
|
||||||
background-color = bg2;
|
|
||||||
text-color = blue;
|
|
||||||
};
|
|
||||||
|
|
||||||
message = {
|
|
||||||
margin = mkLiteral "2px";
|
|
||||||
padding = mkLiteral "2px";
|
|
||||||
border-radius = mkLiteral "5px";
|
|
||||||
};
|
|
||||||
|
|
||||||
textbox = {
|
|
||||||
padding = mkLiteral "6px";
|
|
||||||
margin = mkLiteral "20px 0px 0px 20px";
|
|
||||||
text-color = blue;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
home.packages = [
|
|
||||||
(pkgs.writeShellScriptBin "git-sync-all"
|
|
||||||
(builtins.readFile ./git-sync-all.sh))
|
|
||||||
(pkgs.writeShellScriptBin "rsync-local-config"
|
|
||||||
(builtins.readFile ./rsync-local-config.sh))
|
|
||||||
(pkgs.writeShellScriptBin "xdg-query-program"
|
|
||||||
(builtins.readFile ./xdg-query-program.sh))
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,55 +0,0 @@
|
||||||
# Sync common directories, setting url to ensure it's up-to-date first
|
|
||||||
SYNC_DIRS=(
|
|
||||||
"$HOME/.password-store/"
|
|
||||||
"$HOME/.elfeed/"
|
|
||||||
"$HOME/Documents/Org/"
|
|
||||||
"$HOME/Documents/References/"
|
|
||||||
)
|
|
||||||
SYNC_URLS=(
|
|
||||||
"https://git.xenia.me.uk/pixelifytica/pass.git"
|
|
||||||
"https://git.xenia.me.uk/pixelifytica/elfeed.git"
|
|
||||||
"https://git.xenia.me.uk/pixelifytica/org.git"
|
|
||||||
"https://git.xenia.me.uk/pixelifytica/references.git"
|
|
||||||
)
|
|
||||||
|
|
||||||
for i in "${!SYNC_DIRS[@]}"; do
|
|
||||||
DIRECTORY="${SYNC_DIRS[$i]}"
|
|
||||||
URL="${SYNC_URLS[$i]}"
|
|
||||||
echo "--- sync: $DIRECTORY ---"
|
|
||||||
if [ ! -d "$DIRECTORY" ]; then
|
|
||||||
git clone "$URL" "$DIRECTORY"
|
|
||||||
fi
|
|
||||||
(
|
|
||||||
cd "$DIRECTORY" || exit
|
|
||||||
git remote set-url origin "$URL"
|
|
||||||
git-sync -ns
|
|
||||||
)
|
|
||||||
done
|
|
||||||
|
|
||||||
# Pull NixOS and Emacs config if simple fast-forward
|
|
||||||
PULL_DIRS=(
|
|
||||||
"/etc/nixos"
|
|
||||||
"${XDG_CONFIG_HOME:-$HOME/.config}/emacs"
|
|
||||||
)
|
|
||||||
PULL_URLS=(
|
|
||||||
"https://git.xenia.me.uk/pixelifytica/nixos.git"
|
|
||||||
"https://git.xenia.me.uk/pixelifytica/emacs.git"
|
|
||||||
)
|
|
||||||
for i in "${!PULL_DIRS[@]}"; do
|
|
||||||
DIRECTORY="${PULL_DIRS[$i]}"
|
|
||||||
URL="${PULL_URLS[$i]}"
|
|
||||||
echo "--- pull: $DIRECTORY ---"
|
|
||||||
if [ ! -d "$DIRECTORY" ]; then
|
|
||||||
git clone "$URL" "$DIRECTORY"
|
|
||||||
fi
|
|
||||||
(
|
|
||||||
cd "$DIRECTORY" || exit
|
|
||||||
if [ "$(git branch --show-current)" = "main" ]; then
|
|
||||||
git remote set-url origin "$URL"
|
|
||||||
git pull --ff-only
|
|
||||||
git push
|
|
||||||
else
|
|
||||||
echo "Not syncing repo $DIRECTORY on branch $(git branch --show-current)"
|
|
||||||
fi
|
|
||||||
)
|
|
||||||
done
|
|
|
@ -1,25 +0,0 @@
|
||||||
HOST=$1
|
|
||||||
# Config files
|
|
||||||
for TARGET in bat bottom git starship.toml; do
|
|
||||||
SOURCE="$HOME/.config/$TARGET"
|
|
||||||
echo "--- $SOURCE ---"
|
|
||||||
TMP_TARGET=/tmp/rsync-local-config
|
|
||||||
TMP_SOURCE=$TMP_TARGET
|
|
||||||
NIX_SED="sed -i 's|/nix/.*/bin/||g'"
|
|
||||||
NIX_REPLACE="$NIX_SED $TMP_TARGET"
|
|
||||||
if [[ -e $SOURCE ]]; then
|
|
||||||
if [[ -d $SOURCE ]]; then
|
|
||||||
SOURCE=$SOURCE/
|
|
||||||
TMP_SOURCE=$TMP_SOURCE/
|
|
||||||
NIX_REPLACE="fd -g '**' $TMP_TARGET -tfile -x $NIX_SED {};"
|
|
||||||
fi
|
|
||||||
rsync -avzL --exclude=".git*" --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r "$SOURCE" $TMP_TARGET
|
|
||||||
sh -c "$NIX_REPLACE"
|
|
||||||
rsync -avzL --delete --exclude=".git*" $TMP_SOURCE "$HOST:.config/$TARGET"
|
|
||||||
rm -rf $TMP_SOURCE
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Fonts
|
|
||||||
rsync -avzL --delete --exclude=".git*" --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r "$(nix path-info flake:iosevka#packages.x86_64-linux.iosevka-custom-nerdfont)/share/fonts/truetype/" "$HOST:.fonts/IosevkaCustomNerdFont"
|
|
||||||
rsync -avzL --delete --exclude=".git*" --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r "$(nix path-info flake:iosevka#packages.x86_64-linux.iosevka-custom-aile)/share/fonts/truetype/" "$HOST:.fonts/IosevkaCustomAile"
|
|
|
@ -1,38 +0,0 @@
|
||||||
#!/usr/bin/env nix-shell
|
|
||||||
--[[
|
|
||||||
#!nix-shell -i lua -p git git-sync
|
|
||||||
]]
|
|
||||||
local config_home
|
|
||||||
if os.getenv("XDG_CONFIG_HOME") then
|
|
||||||
config_home = os.getenv("XDG_CONFIG_HOME")
|
|
||||||
else
|
|
||||||
config_home = "~/.config/"
|
|
||||||
end
|
|
||||||
|
|
||||||
local sync_mapping = {
|
|
||||||
["~/.password-store"] = "https://git.xenia.me.uk/pixelifytica/pass.git",
|
|
||||||
["~/.elfeed"] = "https://git.xenia.me.uk/pixelifytica/elfeed.git",
|
|
||||||
["~/Documents/Org"] = "https://git.xenia.me.uk/pixelifytica/org.git",
|
|
||||||
["~/Documents/References"] = "https://git.xenia.me.uk/pixelifytica/references.git",
|
|
||||||
}
|
|
||||||
|
|
||||||
local pull_mapping = {
|
|
||||||
["/etc/nixos"] = "https://git.xenia.me.uk/pixelifytica/nixos.git",
|
|
||||||
[config_home .. "/emacs"] = "https://git.xenia.me.uk/pixelifytica/emacs.git",
|
|
||||||
}
|
|
||||||
|
|
||||||
local function git_sync(directory, url)
|
|
||||||
print("--- sync: " .. directory .. " ---")
|
|
||||||
end
|
|
||||||
|
|
||||||
local function git_pull(directory, url, ff_only)
|
|
||||||
print("--- pull: " .. directory .. " ---")
|
|
||||||
end
|
|
||||||
|
|
||||||
for directory, url in pairs(sync_mapping) do
|
|
||||||
git_sync(directory, url)
|
|
||||||
end
|
|
||||||
|
|
||||||
for directory, url in pairs(pull_mapping) do
|
|
||||||
git_pull(directory, url, true)
|
|
||||||
end
|
|
|
@ -1,68 +0,0 @@
|
||||||
#!/usr/bin/env nix-shell
|
|
||||||
#!nix-shell -i python3 -p git git-sync
|
|
||||||
|
|
||||||
import os
|
|
||||||
import queue
|
|
||||||
import subprocess
|
|
||||||
from pathlib import Path
|
|
||||||
from typing import Dict
|
|
||||||
|
|
||||||
HOME = Path("~").expanduser().resolve()
|
|
||||||
|
|
||||||
SYNC_MAPPING: Dict[Path, str] = {
|
|
||||||
Path(
|
|
||||||
"~/.password-store"
|
|
||||||
).expanduser(): "https://git.xenia.me.uk/pixelifytica/pass.git",
|
|
||||||
Path("~/.elfeed").expanduser(): "https://git.xenia.me.uk/pixelifytica/elfeed.git",
|
|
||||||
Path(
|
|
||||||
"~/Documents/Org"
|
|
||||||
).expanduser(): "https://git.xenia.me.uk/pixelifytica/org.git",
|
|
||||||
Path(
|
|
||||||
"~/Documents/References"
|
|
||||||
).expanduser(): "https://git.xenia.me.uk/pixelifytica/references.git",
|
|
||||||
}
|
|
||||||
|
|
||||||
PULL_MAPPINGS: Dict[Path, str] = {
|
|
||||||
Path("/etc/nixos"): "https://git.xenia.me.uk/pixelifytica/nixos.git",
|
|
||||||
Path(os.getenv("XDG_CONFIG_HOME", "~/.config")).expanduser()
|
|
||||||
/ "emacs": "https://git.xenia.me.uk/pixelifytica/emacs.git",
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def git_set_url(directory: Path, url: str) -> None:
|
|
||||||
"""Set url for directory"""
|
|
||||||
comp = subprocess.run(f"git remote set-url origin {url}".split(), cwd=directory)
|
|
||||||
if comp.returncode != 0:
|
|
||||||
raise UserWarning(f"{comp.returncode} from {' '.join(comp.args)}")
|
|
||||||
subprocess.run("git remote -v".split(), cwd=directory)
|
|
||||||
|
|
||||||
|
|
||||||
def git_sync(directory: Path, url: str) -> subprocess.CompletedProcess:
|
|
||||||
"""Sync status of repository"""
|
|
||||||
print(f"--- sync: ${directory} ---")
|
|
||||||
if not directory.exists():
|
|
||||||
return subprocess.run("exit 1".split()) # TODO
|
|
||||||
git_set_url(directory, url)
|
|
||||||
return subprocess.run("git-sync -ns".split(), cwd=directory)
|
|
||||||
|
|
||||||
|
|
||||||
def git_pull(
|
|
||||||
directory: Path, url: str, ff_only: bool = True
|
|
||||||
) -> subprocess.CompletedProcess:
|
|
||||||
"""Pull updates for directory from url"""
|
|
||||||
print(f"--- pull: {directory} ---")
|
|
||||||
if not directory.exists():
|
|
||||||
return subprocess.run("exit 1".split()) # TODO
|
|
||||||
git_set_url(directory, url)
|
|
||||||
return subprocess.run("git pull --ff-only".split(), cwd=directory)
|
|
||||||
|
|
||||||
|
|
||||||
def main(*args, **kwargs) -> None:
|
|
||||||
for directory, url in SYNC_MAPPING.items():
|
|
||||||
print(git_sync(directory, url))
|
|
||||||
for directory, url in PULL_MAPPINGS.items():
|
|
||||||
print(git_pull(directory, url))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
|
@ -1,3 +0,0 @@
|
||||||
FILETYPE=$(xdg-mime query filetype $@)
|
|
||||||
DEFAULT=$(xdg-mime query default $FILETYPE)
|
|
||||||
echo "$FILETYPE -> $DEFAULT"
|
|
|
@ -1,40 +0,0 @@
|
||||||
{...}: {
|
|
||||||
programs.ssh = {
|
|
||||||
enable = true;
|
|
||||||
forwardAgent = true;
|
|
||||||
compression = true;
|
|
||||||
serverAliveInterval = 15;
|
|
||||||
serverAliveCountMax = 3;
|
|
||||||
controlMaster = "auto";
|
|
||||||
controlPersist = "10s";
|
|
||||||
extraConfig = ''
|
|
||||||
AddKeysToAgent=yes
|
|
||||||
SetEnv TERM=xterm-256color
|
|
||||||
'';
|
|
||||||
matchBlocks = {
|
|
||||||
"git*".user = "git";
|
|
||||||
"legion" = {
|
|
||||||
user = "pixelifytica";
|
|
||||||
hostname = "192.168.0.31";
|
|
||||||
};
|
|
||||||
"vanguard" = {
|
|
||||||
user = "pixelifytica";
|
|
||||||
hostname = "192.168.0.90";
|
|
||||||
};
|
|
||||||
"ionos" = {
|
|
||||||
user = "root";
|
|
||||||
hostname = "77.68.67.133";
|
|
||||||
};
|
|
||||||
"freia" = {
|
|
||||||
user = "elitherl";
|
|
||||||
hostname = "freia020.hpc.l";
|
|
||||||
forwardX11Trusted = true;
|
|
||||||
};
|
|
||||||
"heimdall" = {
|
|
||||||
user = "elitherl";
|
|
||||||
hostname = "heimdall003.jet.uk";
|
|
||||||
forwardX11Trusted = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,75 +0,0 @@
|
||||||
{...}: {
|
|
||||||
programs.starship = {
|
|
||||||
enable = true;
|
|
||||||
enableTransience = true;
|
|
||||||
settings = {
|
|
||||||
add_newline = false;
|
|
||||||
character = {
|
|
||||||
success_symbol = "[ ](bold green)";
|
|
||||||
error_symbol = "[ ](bold red)";
|
|
||||||
};
|
|
||||||
command_timeout = 2000;
|
|
||||||
container = {symbol = " ";};
|
|
||||||
directory = {
|
|
||||||
truncation_length = 2;
|
|
||||||
fish_style_pwd_dir_length = 1;
|
|
||||||
truncate_to_repo = false;
|
|
||||||
};
|
|
||||||
direnv = {disabled = false;};
|
|
||||||
git_branch = {
|
|
||||||
symbol = " ";
|
|
||||||
only_attached = true;
|
|
||||||
ignore_branches = ["master" "main"];
|
|
||||||
};
|
|
||||||
git_commit = {
|
|
||||||
format = "[ $hash | $tag]($style) ";
|
|
||||||
tag_symbol = " ";
|
|
||||||
tag_disabled = false;
|
|
||||||
};
|
|
||||||
git_metrics = {disabled = false;};
|
|
||||||
git_status = {
|
|
||||||
stashed = " ";
|
|
||||||
ahead = " ";
|
|
||||||
behind = " ";
|
|
||||||
up_to_date = "";
|
|
||||||
diverged = " ";
|
|
||||||
conflicted = " ";
|
|
||||||
deleted = " ";
|
|
||||||
renamed = " ";
|
|
||||||
modified = " ";
|
|
||||||
staged = " ";
|
|
||||||
untracked = " ";
|
|
||||||
typechanged = " ";
|
|
||||||
};
|
|
||||||
hostname = {
|
|
||||||
ssh_only = true;
|
|
||||||
ssh_symbol = " ";
|
|
||||||
};
|
|
||||||
jobs = {symbol = " ";};
|
|
||||||
line_break = {disabled = false;};
|
|
||||||
localip = {disabled = false;};
|
|
||||||
memory_usage = {disabled = false;};
|
|
||||||
os = {
|
|
||||||
disabled = false;
|
|
||||||
format = "on [$symbol]($style) ";
|
|
||||||
};
|
|
||||||
python = {python_binary = "python3";};
|
|
||||||
shell = {
|
|
||||||
disabled = false;
|
|
||||||
format = "using [$indicator ]($style)";
|
|
||||||
};
|
|
||||||
status = {
|
|
||||||
disabled = false;
|
|
||||||
map_symbol = true;
|
|
||||||
pipestatus = true;
|
|
||||||
symbol = " ";
|
|
||||||
success_symbol = "";
|
|
||||||
not_executable_symbol = " ";
|
|
||||||
not_found_symbol = " ";
|
|
||||||
sigint_symbol = " ";
|
|
||||||
signal_symbol = " ";
|
|
||||||
};
|
|
||||||
sudo = {disabled = false;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,181 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
fonts,
|
|
||||||
scheme,
|
|
||||||
accentColour ? "base07",
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [../desktop.nix];
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
(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 = {
|
|
||||||
enable = true;
|
|
||||||
package = null;
|
|
||||||
swaynag.enable = true;
|
|
||||||
systemd.enable = true;
|
|
||||||
xwayland = true;
|
|
||||||
config = {
|
|
||||||
input = {
|
|
||||||
"*" = {
|
|
||||||
xkb_layout = "gb";
|
|
||||||
xkb_options = "ctrl:nocaps";
|
|
||||||
};
|
|
||||||
"type:touchpad" = {
|
|
||||||
tap = "enabled";
|
|
||||||
natural_scroll = "enabled";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
seat = {
|
|
||||||
"seat0" = {
|
|
||||||
xcursor_theme = with config.gtk.cursorTheme; "${name} ${toString size}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
modifier = "Mod4";
|
|
||||||
terminal = "${config.programs.alacritty.package}/bin/alacritty";
|
|
||||||
menu = "${config.programs.rofi.finalPackage}/bin/rofi -show drun";
|
|
||||||
workspaceAutoBackAndForth = true;
|
|
||||||
bars = [];
|
|
||||||
gaps = {
|
|
||||||
inner = 5;
|
|
||||||
outer = 0;
|
|
||||||
};
|
|
||||||
fonts = {
|
|
||||||
names = [fonts.monospace.name];
|
|
||||||
style = "regular";
|
|
||||||
size = fonts.sizes.desktop * 1.0;
|
|
||||||
};
|
|
||||||
colors = with scheme.withHashtag; let
|
|
||||||
text = toString base05;
|
|
||||||
indicator = toString cyan;
|
|
||||||
in rec {
|
|
||||||
background = toString base00;
|
|
||||||
focused = rec {
|
|
||||||
inherit background text indicator;
|
|
||||||
border = toString scheme.withHashtag.${accentColour};
|
|
||||||
childBorder = border;
|
|
||||||
};
|
|
||||||
focusedInactive = rec {
|
|
||||||
inherit background text indicator;
|
|
||||||
border = toString base04;
|
|
||||||
childBorder = border;
|
|
||||||
};
|
|
||||||
unfocused = rec {
|
|
||||||
inherit background text indicator;
|
|
||||||
border = toString base03;
|
|
||||||
childBorder = border;
|
|
||||||
};
|
|
||||||
urgent = rec {
|
|
||||||
inherit background text indicator;
|
|
||||||
border = toString red;
|
|
||||||
childBorder = border;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
startup = [
|
|
||||||
{command = "${pkgs.swaynotificationcenter}/bin/swaync";}
|
|
||||||
{command = "${pkgs.swaybg}/bin/swaybg -m fill -i ${../../wallpapers/waves/cat-waves.png}";}
|
|
||||||
{command = "${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1";}
|
|
||||||
{command = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n";}
|
|
||||||
];
|
|
||||||
window = {
|
|
||||||
border = 1;
|
|
||||||
commands = [
|
|
||||||
{
|
|
||||||
criteria = {app_id = "org.kde.polkit-kde-authentication-agent-1";};
|
|
||||||
command = "floating enable";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
criteria = {app_id = "Pinentry";};
|
|
||||||
command = "floating enable";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
criteria = {app_id = "pavucontrol";};
|
|
||||||
command = "floating enable";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
criteria = {app_id = ".blueman-manager-wrapped";};
|
|
||||||
command = "floating enable";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
criteria = {app_id = "nm-connection-editor";};
|
|
||||||
command = "floating enable";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
criteria = {class = "steam";};
|
|
||||||
command = "layout tabbed";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
floating.border = 1;
|
|
||||||
keybindings = with config; let
|
|
||||||
modifier = wayland.windowManager.sway.config.modifier;
|
|
||||||
in
|
|
||||||
lib.mkOptionDefault {
|
|
||||||
# Movement
|
|
||||||
"${modifier}+comma" = "workspace prev";
|
|
||||||
"${modifier}+period" = "workspace next";
|
|
||||||
"${modifier}+shift+comma" = "move workspace prev";
|
|
||||||
"${modifier}+shift+period" = "move workspace next";
|
|
||||||
"${modifier}+bracketleft" = "move workspace to output left";
|
|
||||||
"${modifier}+bracketright" = "move workspace to output right";
|
|
||||||
|
|
||||||
# Function keys
|
|
||||||
## Sound
|
|
||||||
"XF86AudioMute" = "exec ${services.avizo.package}/bin/volumectl %";
|
|
||||||
"XF86AudioMicMute" = "exec ${services.avizo.package}/bin/volumectl -m %";
|
|
||||||
"XF86AudioRaiseVolume" = "exec ${services.avizo.package}/bin/volumectl -u + 5";
|
|
||||||
"XF86AudioLowerVolume" = "exec ${services.avizo.package}/bin/volumectl -u - 5";
|
|
||||||
|
|
||||||
## Playback
|
|
||||||
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
|
||||||
"XF86AudioStop" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
|
||||||
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
|
|
||||||
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
|
|
||||||
|
|
||||||
## Brightness
|
|
||||||
"XF86MonBrightnessUp" = "exec ${services.avizo.package}/bin/lightctl + 5";
|
|
||||||
"XF86MonBrightnessDown" = "exec ${services.avizo.package}/bin/lightctl - 5";
|
|
||||||
|
|
||||||
# System utilities
|
|
||||||
"${modifier}+F1" = "exec ${programs.swaylock.package}/bin/swaylock --screenshots --clock --indicator --grace-no-mouse";
|
|
||||||
"${modifier}+p" = "exec ${programs.wlogout.package}/bin/wlogout";
|
|
||||||
"${modifier}+z" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw";
|
|
||||||
"${modifier}+Shift+z" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client -d -sw";
|
|
||||||
"${modifier}+Shift+Return" = "exec ${programs.emacs.finalPackage}/bin/emacsclient -c";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extraConfig = ''
|
|
||||||
bindgesture swipe:right workspace prev
|
|
||||||
bindgesture swipe:left workspace next
|
|
||||||
corner_radius 10
|
|
||||||
blur enable
|
|
||||||
blur_xray disable
|
|
||||||
blur_passes 3
|
|
||||||
blur_radius 5
|
|
||||||
corner_radius 10
|
|
||||||
shadows enable
|
|
||||||
shadow_blur_radius 4
|
|
||||||
layer_effects "system-menu" blur enable; blur_ignore_transparent enable; shadows disable
|
|
||||||
layer_effects "gtk-layer-shell" blur enable; blur_ignore_transparent enable; shadows disable
|
|
||||||
layer_effects "waybar" blur enable; blur_ignore_transparent enable; shadows disable
|
|
||||||
layer_effects "rofi" blur enable; blur_ignore_transparent enable; shadows disable
|
|
||||||
layer_effects "avizo" blur enable; blur_ignore_transparent enable; shadows disable
|
|
||||||
layer_effects "swaync-notification-window" blur enable; blur_ignore_transparent enable; shadows disable
|
|
||||||
layer_effects "swaync-control-center" blur enable; blur_ignore_transparent enable; shadows disable
|
|
||||||
titlebar_separator enable
|
|
||||||
scratchpad_minimize enable
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
programs.swaylock = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.swaylock-effects;
|
|
||||||
# Settings are specifically for swaylock-effects
|
|
||||||
settings = {
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,355 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
fonts,
|
|
||||||
scheme,
|
|
||||||
accentColour ? "base07",
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.packages = [pkgs.swaynotificationcenter];
|
|
||||||
xdg.configFile."swaync/style.css".text = with scheme; ''
|
|
||||||
* {
|
|
||||||
all: unset;
|
|
||||||
font-size: 1.2rem;
|
|
||||||
font-family: "${fonts.monospace.name}";
|
|
||||||
transition: 200ms;
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background .notification-row .notification-background {
|
|
||||||
border-radius: 10px;
|
|
||||||
border: 1px solid ${withHashtag.${accentColour}};
|
|
||||||
margin: 18px;
|
|
||||||
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.8);
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification {
|
|
||||||
padding: 7px;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
.notification-content {
|
|
||||||
margin: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
.notification-content
|
|
||||||
.summary {
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
.notification-content
|
|
||||||
.time {
|
|
||||||
color: ${withHashtag.base04};
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
.notification-content
|
|
||||||
.body {
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
> *:last-child
|
|
||||||
> * {
|
|
||||||
min-height: 3.4em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
> *:last-child
|
|
||||||
> *
|
|
||||||
.notification-action {
|
|
||||||
border-radius: 10px;
|
|
||||||
background-color: ${withHashtag.base01};
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
margin: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
> *:last-child
|
|
||||||
> *
|
|
||||||
.notification-action:hover {
|
|
||||||
background-color: ${withHashtag.base01};
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
> *:last-child
|
|
||||||
> *
|
|
||||||
.notification-action:active {
|
|
||||||
background-color: ${withHashtag.blue};
|
|
||||||
color: ${withHashtag.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.close-button {
|
|
||||||
margin: 7px;
|
|
||||||
padding: 2px;
|
|
||||||
border-radius: 10px;
|
|
||||||
background-color: ${withHashtag.red};
|
|
||||||
color: ${withHashtag.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.close-button:hover {
|
|
||||||
background-color: ${withHashtag.red};
|
|
||||||
color: ${withHashtag.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
.floating-notifications.background
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.close-button:active {
|
|
||||||
background-color: ${withHashtag.red};
|
|
||||||
color: ${withHashtag.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center {
|
|
||||||
border-radius: 10px;
|
|
||||||
border: 1px solid ${withHashtag.${accentColour}};
|
|
||||||
margin: 18px;
|
|
||||||
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.8);
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
padding: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .widget-title {
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
font-size: 1.3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .widget-title button {
|
|
||||||
border-radius: 7px;
|
|
||||||
background-color: ${withHashtag.base01};
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
padding: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .widget-title button:hover {
|
|
||||||
background-color: ${withHashtag.base02};
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .widget-title button:active {
|
|
||||||
background-color: ${withHashtag.base03};
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .notification-row .notification-background {
|
|
||||||
border-radius: 10px;
|
|
||||||
background-color: ${withHashtag.base01};
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
margin-top: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .notification-row .notification-background .notification {
|
|
||||||
padding: 7px;
|
|
||||||
border-radius: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
.notification-content {
|
|
||||||
margin: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
.notification-content
|
|
||||||
.summary {
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
.notification-content
|
|
||||||
.time {
|
|
||||||
color: ${withHashtag.base04};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
.notification-content
|
|
||||||
.body {
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
> *:last-child
|
|
||||||
> * {
|
|
||||||
min-height: 3.4em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
> *:last-child
|
|
||||||
> *
|
|
||||||
.notification-action {
|
|
||||||
border-radius: 7px;
|
|
||||||
background-color: ${withHashtag.base00};
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
margin: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
> *:last-child
|
|
||||||
> *
|
|
||||||
.notification-action:hover {
|
|
||||||
background-color: ${withHashtag.base01};;
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.notification
|
|
||||||
> *:last-child
|
|
||||||
> *
|
|
||||||
.notification-action:active {
|
|
||||||
background-color: ${withHashtag.blue};
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .notification-row .notification-background .close-button {
|
|
||||||
margin: 7px;
|
|
||||||
padding: 2px;
|
|
||||||
border-radius: 6.3px;
|
|
||||||
background-color: ${withHashtag.red};
|
|
||||||
color: ${withHashtag.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .notification-row .notification-background .close-button:hover {
|
|
||||||
background-color: ${withHashtag.red};
|
|
||||||
color: ${withHashtag.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center
|
|
||||||
.notification-row
|
|
||||||
.notification-background
|
|
||||||
.close-button:active {
|
|
||||||
background-color: ${withHashtag.red};
|
|
||||||
color: ${withHashtag.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .notification-row .notification-background:hover {
|
|
||||||
background-color: ${withHashtag.base00};
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center .notification-row .notification-background:active {
|
|
||||||
background-color: ${withHashtag.blue};
|
|
||||||
color: ${withHashtag.base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
progressbar,
|
|
||||||
progress,
|
|
||||||
trough {
|
|
||||||
border-radius: 12.6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification.critical progress {
|
|
||||||
background-color: ${withHashtag.red};
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification.low progress,
|
|
||||||
.notification.normal progress {
|
|
||||||
background-color: ${withHashtag.blue};
|
|
||||||
}
|
|
||||||
|
|
||||||
trough {
|
|
||||||
background-color: ${withHashtag.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center trough {
|
|
||||||
background-color: ${withHashtag.base03};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center-dnd {
|
|
||||||
margin-top: 5px;
|
|
||||||
border-radius: 8px;
|
|
||||||
background: ${withHashtag.base00};
|
|
||||||
border: 1px solid ${withHashtag.base03};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center-dnd:checked {
|
|
||||||
background: ${withHashtag.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-center-dnd slider {
|
|
||||||
background: ${withHashtag.base03};
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-dnd {
|
|
||||||
margin: 0px;
|
|
||||||
font-size: 1.1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-dnd > switch {
|
|
||||||
font-size: initial;
|
|
||||||
border-radius: 8px;
|
|
||||||
background: ${withHashtag.base00};
|
|
||||||
border: 1px solid ${withHashtag.base03};
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-dnd > switch:checked {
|
|
||||||
background: ${withHashtag.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-dnd > switch slider {
|
|
||||||
background: ${withHashtag.base01};
|
|
||||||
border-radius: 8px;
|
|
||||||
border: 1px solid ${withHashtag.${accentColour}};
|
|
||||||
}
|
|
||||||
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,354 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
hostName,
|
|
||||||
fonts,
|
|
||||||
scheme,
|
|
||||||
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 scheme.withHashtag; let
|
|
||||||
accent = scheme.withHashtag.${accentColour};
|
|
||||||
in ''
|
|
||||||
* {
|
|
||||||
all: unset;
|
|
||||||
font-size: 1em;
|
|
||||||
font-family: ${fonts.monospace.name};
|
|
||||||
}
|
|
||||||
|
|
||||||
window {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
window > box {
|
|
||||||
color: ${base05};
|
|
||||||
background: alpha(${base00}, 0.8);
|
|
||||||
margin: 5px 5px 0px;
|
|
||||||
padding: 0px;
|
|
||||||
border: 1px solid ${accent};
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
tooltip {
|
|
||||||
background: alpha(${base00}, 0.8);
|
|
||||||
border: 1px solid ${accent};
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
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,79 +0,0 @@
|
||||||
{
|
|
||||||
fonts,
|
|
||||||
scheme,
|
|
||||||
accentColour ? "base07",
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.wlogout = {
|
|
||||||
enable = true;
|
|
||||||
layout = [
|
|
||||||
{
|
|
||||||
label = "reboot";
|
|
||||||
action = "systemctl reboot";
|
|
||||||
text = "Reboot";
|
|
||||||
keybind = "r";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
label = "shutdown";
|
|
||||||
action = "systemctl poweroff";
|
|
||||||
text = "Shutdown";
|
|
||||||
keybind = "s";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
label = "logout";
|
|
||||||
action = "swaymsg exit";
|
|
||||||
text = "Logout";
|
|
||||||
keybind = "l";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
style = with scheme.withHashtag; let
|
|
||||||
accent = scheme.withHashtag.${accentColour};
|
|
||||||
shutdownIcon = ./icons/shutdown.png;
|
|
||||||
rebootIcon = ./icons/reboot.png;
|
|
||||||
logoutIcon = ./icons/logout.png;
|
|
||||||
in ''
|
|
||||||
* {
|
|
||||||
font-size: ${toString fonts.sizes.popups}px;
|
|
||||||
font-family: "${fonts.sansSerif.name}";
|
|
||||||
}
|
|
||||||
|
|
||||||
window {
|
|
||||||
border: none;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
border: ${accent};
|
|
||||||
background-color: ${base00};
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: center;
|
|
||||||
background-size: 25%;
|
|
||||||
box-shadow: none;
|
|
||||||
margin: 5px;
|
|
||||||
color: ${base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
button:hover {
|
|
||||||
background-color: ${base01};
|
|
||||||
color: ${base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
button:focus {
|
|
||||||
background-color: ${base03};
|
|
||||||
color: ${base05};
|
|
||||||
}
|
|
||||||
|
|
||||||
#shutdown {
|
|
||||||
background-image: url("${shutdownIcon}");
|
|
||||||
}
|
|
||||||
|
|
||||||
#reboot {
|
|
||||||
background-image: url("${rebootIcon}");
|
|
||||||
}
|
|
||||||
|
|
||||||
#logout {
|
|
||||||
background-image: url("${logoutIcon}");
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 17 KiB |
|
@ -1,4 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
# TODO add colour scheme and emacs keybinds
|
|
||||||
programs.zathura = {enable = true;};
|
|
||||||
}
|
|
|
@ -1,208 +0,0 @@
|
||||||
# Being an Emacs user, it is natural for me to use emacs-like and info-like keybindings for zathura.
|
|
||||||
#
|
|
||||||
# Zathura configuration documentation is available at
|
|
||||||
# https://git.pwmt.org/pwmt/zathura/-/blob/e5d2ca487147e79d0bb7acbf5174cd9dcc92a86c/doc/man/zathurarc.5.rst
|
|
||||||
# A full list of available functions and default keybindings is available at
|
|
||||||
# https://git.pwmt.org/pwmt/zathura/-/blob/e5d2ca487147e79d0bb7acbf5174cd9dcc92a86c/zathura/config.c#L301
|
|
||||||
#
|
|
||||||
# If you want to integrate Zathura with Emacs AUCTeX mode, see
|
|
||||||
# [emacs wiki](https://www.emacswiki.org/emacs/AUCTeX).
|
|
||||||
#
|
|
||||||
# Put the following inside `$XDG_CONFIG_HOME/zathura/zathurarc
|
|
||||||
|
|
||||||
## niceties
|
|
||||||
# when selecting text with mouse,
|
|
||||||
# copy to clipboard
|
|
||||||
set selection-clipboard clipboard
|
|
||||||
|
|
||||||
# keep several lines of text when
|
|
||||||
# scrolling a screenful
|
|
||||||
set scroll-full-overlap 0.2
|
|
||||||
|
|
||||||
# see documentation for details
|
|
||||||
set scroll-page-aware true
|
|
||||||
set window-title-basename true
|
|
||||||
set adjust-open width
|
|
||||||
set statusbar-home-tilde true
|
|
||||||
set vertical-center true
|
|
||||||
set synctex true
|
|
||||||
# large bold font easier on the eyes in index mode
|
|
||||||
# status bar can be disabled with A-s
|
|
||||||
set font "FreeSans bold 16"
|
|
||||||
set zoom-step 3
|
|
||||||
|
|
||||||
map [normal] <C-b> scroll left
|
|
||||||
map [normal] <C-n> scroll down
|
|
||||||
map [normal] <C-p> scroll up
|
|
||||||
map [normal] <C-f> scroll right
|
|
||||||
map [normal] <C-g> abort
|
|
||||||
map [insert] <C-g> abort
|
|
||||||
map [normal] <C-[> abort
|
|
||||||
map [normal] <A-\<> goto top
|
|
||||||
map [normal] <A-\>> goto bottom
|
|
||||||
map [normal] a adjust_window best-fit
|
|
||||||
map [normal] s adjust_window width
|
|
||||||
map [normal] F display_link
|
|
||||||
map [normal] <C-c> copy_link
|
|
||||||
map [normal] f follow
|
|
||||||
map [normal] m mark_add
|
|
||||||
map [normal] \' mark_evaluate
|
|
||||||
map [normal] \, navigate next
|
|
||||||
map [normal] \. navigate previous
|
|
||||||
map [normal] <A-Right> navigate next
|
|
||||||
map [normal] <A-Left> navigate previous
|
|
||||||
map [normal] <PageDown> scroll full-down
|
|
||||||
map [normal] <PageUp> scroll full-up
|
|
||||||
map [normal] <C-P> print
|
|
||||||
map [normal] c recolor
|
|
||||||
map [normal] R reload
|
|
||||||
map [normal] v rotate rotate_cw
|
|
||||||
map [normal] V rotate rotate_ccw
|
|
||||||
map [normal] <Left> scroll left
|
|
||||||
map [normal] <Up> scroll up
|
|
||||||
map [normal] <Down> scroll down
|
|
||||||
map [normal] <Right> scroll right
|
|
||||||
map [normal] <A-a> scroll half-left
|
|
||||||
map [normal] <C-V> scroll half-down
|
|
||||||
map [normal] <A-V> scroll half-up
|
|
||||||
map [normal] <A-e> scroll half-right
|
|
||||||
map [normal] <C-a> scroll full-left
|
|
||||||
map [normal] <C-v> scroll full-down
|
|
||||||
map [normal] <Return> scroll full-down
|
|
||||||
map [normal] <A-v> scroll full-up
|
|
||||||
map [normal] <C-e> scroll full-right
|
|
||||||
map [normal] <Space> scroll full-down
|
|
||||||
map [normal] <C-h> scroll full-up
|
|
||||||
map [normal] <BackSpace> scroll full-up
|
|
||||||
map [normal] <S-Space> scroll full-up
|
|
||||||
map [normal] l jumplist backward
|
|
||||||
map [normal] r jumplist forward
|
|
||||||
map [normal] <A-r> bisect forward
|
|
||||||
map [normal] <A-l> bisect backward
|
|
||||||
# still need to use '/' to trigger search
|
|
||||||
map [normal] <C-s> search forward
|
|
||||||
map [normal] <C-r> search backward
|
|
||||||
map [normal] p snap_to_page
|
|
||||||
map [normal] <C-i> toggle_index
|
|
||||||
map [normal] i toggle_index
|
|
||||||
map [normal] <Tab> toggle_index
|
|
||||||
map [normal] <A-s> toggle_statusbar
|
|
||||||
map [normal] <A-i> focus_inputbar
|
|
||||||
map [normal] d toggle_page_mode
|
|
||||||
map [normal] q quit
|
|
||||||
map [normal] + zoom in
|
|
||||||
map [normal] - zoom out
|
|
||||||
map [normal] = zoom in
|
|
||||||
map [normal] <A-P> toggle_presentation
|
|
||||||
map [normal] <A-F> toggle_fullscreen
|
|
||||||
map [normal] j toggle_fullscreen
|
|
||||||
map [fullscreen] j toggle_fullscreen
|
|
||||||
map [fullscreen] q toggle_fullscreen
|
|
||||||
map [fullscreen] <C-b> scroll left
|
|
||||||
map [fullscreen] <C-n> scroll down
|
|
||||||
map [fullscreen] <C-p> scroll up
|
|
||||||
map [fullscreen] <C-f> scroll right
|
|
||||||
map [fullscreen] <C-g> abort
|
|
||||||
map [fullscreen] <C-[> abort
|
|
||||||
map [fullscreen] <A-\<> goto top
|
|
||||||
map [fullscreen] <A-\>> goto bottom
|
|
||||||
map [fullscreen] a adjust_window best-fit
|
|
||||||
map [fullscreen] s adjust_window width
|
|
||||||
map [fullscreen] F display_link
|
|
||||||
map [fullscreen] <C-c> copy_link
|
|
||||||
map [fullscreen] f follow
|
|
||||||
map [fullscreen] m mark_add
|
|
||||||
map [fullscreen] \' mark_evaluate
|
|
||||||
map [fullscreen] \, navigate next
|
|
||||||
map [fullscreen] \. navigate previous
|
|
||||||
map [fullscreen] <A-Right> navigate next
|
|
||||||
map [fullscreen] <A-Left> navigate previous
|
|
||||||
map [fullscreen] <PageDown> scroll full-down
|
|
||||||
map [fullscreen] <PageUp> scroll full-up
|
|
||||||
map [fullscreen] <C-P> print
|
|
||||||
map [fullscreen] c recolor
|
|
||||||
map [fullscreen] R reload
|
|
||||||
map [fullscreen] v rotate rotate_cw
|
|
||||||
map [fullscreen] V rotate rotate_ccw
|
|
||||||
map [fullscreen] <Left> scroll left
|
|
||||||
map [fullscreen] <Up> scroll up
|
|
||||||
map [fullscreen] <Down> scroll down
|
|
||||||
map [fullscreen] <Right> scroll right
|
|
||||||
map [fullscreen] <A-a> scroll half-left
|
|
||||||
map [fullscreen] <C-V> scroll half-down
|
|
||||||
map [fullscreen] <A-V> scroll half-up
|
|
||||||
map [fullscreen] <A-e> scroll half-right
|
|
||||||
map [fullscreen] <C-a> scroll full-left
|
|
||||||
map [fullscreen] <C-v> scroll full-down
|
|
||||||
map [fullscreen] <Return> scroll full-down
|
|
||||||
map [fullscreen] <A-v> scroll full-up
|
|
||||||
map [fullscreen] <C-e> scroll full-right
|
|
||||||
map [fullscreen] <Space> scroll full-down
|
|
||||||
map [fullscreen] <C-h> scroll full-up
|
|
||||||
map [fullscreen] <BackSpace> scroll full-up
|
|
||||||
map [fullscreen] <S-Space> scroll full-up
|
|
||||||
map [fullscreen] l jumplist backward
|
|
||||||
map [fullscreen] r jumplist forward
|
|
||||||
map [fullscreen] <A-r> bisect forward
|
|
||||||
map [fullscreen] <A-l> bisect backward
|
|
||||||
map [fullscreen] <C-s> search forward
|
|
||||||
map [fullscreen] <C-r> search backward
|
|
||||||
map [fullscreen] p snap_to_page
|
|
||||||
map [fullscreen] i toggle_index
|
|
||||||
map [fullscreen] <C-i> toggle_index
|
|
||||||
map [fullscreen] <Tab> toggle_index
|
|
||||||
map [fullscreen] <A-s> toggle_statusbar
|
|
||||||
map [fullscreen] <A-i> focus_inputbar
|
|
||||||
map [fullscreen] d toggle_page_mode
|
|
||||||
map [fullscreen] + zoom in
|
|
||||||
map [fullscreen] - zoom out
|
|
||||||
map [fullscreen] = zoom in
|
|
||||||
# status bar will obscure last item in index mode
|
|
||||||
map [index] <A-s> toggle_statusbar
|
|
||||||
map [index] q toggle_index
|
|
||||||
map [index] i toggle_index
|
|
||||||
map [index] <C-p> navigate_index up
|
|
||||||
map [index] <C-h> navigate_index up
|
|
||||||
map [index] <BackSpace> navigate_index up
|
|
||||||
map [index] <C-n> navigate_index down
|
|
||||||
map [index] <A-v> navigate_index up
|
|
||||||
map [index] <C-v> navigate_index down
|
|
||||||
map [index] \< navigate_index top
|
|
||||||
map [index] \> navigate_index bottom
|
|
||||||
map [index] <A-\<> navigate_index top
|
|
||||||
map [index] <A-\>> navigate_index bottom
|
|
||||||
map [index] <C-b> navigate_index collapse
|
|
||||||
map [index] <C-f> navigate_index expand
|
|
||||||
map [index] <C-i> navigate_index expand-all
|
|
||||||
map [index] <A-i> navigate_index collapse-all
|
|
||||||
map [index] <Up> navigate_index up
|
|
||||||
map [index] <Down> navigate_index down
|
|
||||||
map [index] <Left> navigate_index collapse
|
|
||||||
map [index] <Right> navigate_index expand
|
|
||||||
map [index] <C-m> navigate_index select
|
|
||||||
map [index] <Space> navigate_index select
|
|
||||||
map [index] <Return> navigate_index select
|
|
||||||
map [index] <C-j> navigate_index select
|
|
||||||
map [index] <Esc> toggle_index
|
|
||||||
map [index] <C-[> toggle_index
|
|
||||||
map [index] <C-g> toggle_index
|
|
||||||
map [index] <C-c> toggle_index
|
|
||||||
map [presentation] i toggle_index
|
|
||||||
map [presentation] r navigate next
|
|
||||||
map [presentation] <Down> navigate next
|
|
||||||
map [presentation] <Right> navigate next
|
|
||||||
map [presentation] <PageDown> navigate next
|
|
||||||
map [presentation] <Space> navigate next
|
|
||||||
map [presentation] l navigate previous
|
|
||||||
map [presentation] <Left> navigate previous
|
|
||||||
map [presentation] <Up> navigate previous
|
|
||||||
map [presentation] <PageUp> navigate previous
|
|
||||||
map [presentation] <S-Space> navigate previous
|
|
||||||
map [presentation] <BackSpace> navigate previous
|
|
||||||
map [presentation] <F5> toggle_presentation
|
|
||||||
map [presentation] q toggle_presentation
|
|
||||||
map [presentation] <C-h> navigate previous
|
|
||||||
map [presentation] <M-v> navigate previous
|
|
||||||
map [presentation] <C-v> navigate next
|
|
||||||
map [presentation] <A-\<> goto top
|
|
||||||
map [presentation] <A-\>> goto bottom
|
|
|
@ -1,38 +0,0 @@
|
||||||
{...}: {
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
enableCompletion = true;
|
|
||||||
enableAutosuggestions = true;
|
|
||||||
syntaxHighlighting.enable = true;
|
|
||||||
enableVteIntegration = true;
|
|
||||||
autocd = true;
|
|
||||||
historySubstringSearch.enable = true;
|
|
||||||
history = {
|
|
||||||
extended = true;
|
|
||||||
ignoreDups = true;
|
|
||||||
ignoreSpace = true;
|
|
||||||
};
|
|
||||||
shellAliases = {
|
|
||||||
nixos-repl = "nixos-rebuild repl";
|
|
||||||
nixos-test = "sudo nixos-rebuild test";
|
|
||||||
nixos-boot = "sudo nixos-rebuild boot";
|
|
||||||
nixos-switch = "sudo nixos-rebuild switch";
|
|
||||||
nixos-reboot = "sudo nixos-rebuild boot && sudo reboot now";
|
|
||||||
nixos-shutdown = "sudo nixos-rebuild boot && sudo shutdown now";
|
|
||||||
gsa = "git-sync-all";
|
|
||||||
};
|
|
||||||
oh-my-zsh = {
|
|
||||||
enable = true;
|
|
||||||
plugins = ["colored-man-pages" "lol" "rand-quote"];
|
|
||||||
theme = "";
|
|
||||||
};
|
|
||||||
completionInit = ''
|
|
||||||
autoload -Uz +X compinit && compinit
|
|
||||||
|
|
||||||
## case insensitive path-completion
|
|
||||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
|
|
||||||
zstyle ':completion:*' menu select
|
|
||||||
'';
|
|
||||||
initExtra = "source ${./transient.zsh}\n";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
#!/usr/bin/env zsh
|
|
||||||
|
|
||||||
zle-line-init() {
|
|
||||||
emulate -L zsh
|
|
||||||
|
|
||||||
[[ $CONTEXT == start ]] || return 0
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
zle .recursive-edit
|
|
||||||
local -i ret=$?
|
|
||||||
[[ $ret == 0 && $KEYS == $'\4' ]] || break
|
|
||||||
[[ -o ignore_eof ]] || exit 0
|
|
||||||
done
|
|
||||||
|
|
||||||
local saved_prompt=$PROMPT
|
|
||||||
local saved_rprompt=$RPROMPT
|
|
||||||
PROMPT=' '
|
|
||||||
RPROMPT=''
|
|
||||||
zle .reset-prompt
|
|
||||||
PROMPT=$saved_prompt
|
|
||||||
RPROMPT=$saved_rprompt
|
|
||||||
|
|
||||||
if ((ret)); then
|
|
||||||
zle .send-break
|
|
||||||
else
|
|
||||||
zle .accept-line
|
|
||||||
fi
|
|
||||||
return ret
|
|
||||||
}
|
|
||||||
|
|
||||||
zle -N zle-line-init
|
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
users.mutableUsers = false;
|
|
||||||
system.autoUpgrade = {
|
|
||||||
enable = true;
|
|
||||||
flake = "git+${config.nix.registry.nixos.to.url}";
|
|
||||||
flags = ["-L"]; # Print build logs
|
|
||||||
dates = "02:00";
|
|
||||||
randomizedDelaySec = "15min";
|
|
||||||
allowReboot = true;
|
|
||||||
rebootWindow = {
|
|
||||||
lower = "02:00";
|
|
||||||
upper = "05:00";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
environment.systemPackages = with pkgs; [nil];
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback];
|
|
||||||
boot.extraModprobeConfig = ''
|
|
||||||
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
|
||||||
'';
|
|
||||||
hardware.opengl.driSupport32Bit = true;
|
|
||||||
hardware.opengl.extraPackages = with pkgs; [amdvlk rocmPackages.clr.icd];
|
|
||||||
hardware.opengl.extraPackages32 = [pkgs.driversi686Linux.amdvlk];
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
# Setup keyfile
|
|
||||||
boot.initrd.secrets = {"/crypto_keyfile.bin" = null;};
|
|
||||||
|
|
||||||
# Enable swap on luks
|
|
||||||
boot.initrd.luks.devices."luks-761eeb11-3091-4142-9232-4fb33165eccd".device = "/dev/disk/by-uuid/761eeb11-3091-4142-9232-4fb33165eccd";
|
|
||||||
boot.initrd.luks.devices."luks-761eeb11-3091-4142-9232-4fb33165eccd".keyFile = "/crypto_keyfile.bin";
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
etc."ppp/options".text = ''
|
|
||||||
ipcp-accept-remote
|
|
||||||
'';
|
|
||||||
systemPackages = with pkgs; [openfortivpn samba];
|
|
||||||
};
|
|
||||||
services.ollama.enable = true;
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
|
||||||
|
|
||||||
# Setup keyfile
|
|
||||||
boot.initrd.secrets = {"/crypto_keyfile.bin" = null;};
|
|
||||||
|
|
||||||
# Enable swap on luks
|
|
||||||
boot.initrd.luks.devices."luks-47d34268-5100-4eba-b34d-220f4239c1cb".device = "/dev/disk/by-uuid/47d34268-5100-4eba-b34d-220f4239c1cb";
|
|
||||||
boot.initrd.luks.devices."luks-47d34268-5100-4eba-b34d-220f4239c1cb".keyFile = "/crypto_keyfile.bin";
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
etc."ppp/options".text = ''
|
|
||||||
ipcp-accept-remote
|
|
||||||
'';
|
|
||||||
systemPackages = with pkgs; [openfortivpn samba];
|
|
||||||
};
|
|
||||||
services.ollama.enable = true;
|
|
||||||
}
|
|
BIN
picrew.png
Before Width: | Height: | Size: 178 KiB |
|
@ -1,20 +0,0 @@
|
||||||
system: "base16"
|
|
||||||
name: "Modus Vivendi Tinted"
|
|
||||||
author: "https://protesilaos.com/emacs/modus-themes"
|
|
||||||
variant: "dark"
|
|
||||||
base00: "0d0e1c"
|
|
||||||
base01: "2b3045"
|
|
||||||
base02: "4a4f69"
|
|
||||||
base03: "61647a"
|
|
||||||
base04: "c6daff"
|
|
||||||
base05: "ffffff"
|
|
||||||
base06: "ffffff"
|
|
||||||
base07: "ffffff"
|
|
||||||
base08: "ff5f59" # red (err / red-warmer)
|
|
||||||
base09: "ff9f80" # orange (comment / red-faint)
|
|
||||||
base0A: "fec43f" # yellow (warning / yellow-warmer)
|
|
||||||
base0B: "00c06f" # green (rx-construct / green-cooler)
|
|
||||||
base0C: "00d3d0" # cyan (variable / cyan)
|
|
||||||
base0D: "79a8ff" # blue (string / blue-warmer)
|
|
||||||
base0E: "f78fe7" # magenta (cursor / magenta-warmer)
|
|
||||||
base0F: "d2b580" # brown (identifier / yellow-faint)
|
|
|
@ -1,20 +0,0 @@
|
||||||
system: "base16"
|
|
||||||
name: "Modus Vivendi"
|
|
||||||
author: "https://protesilaos.com/emacs/modus-themes"
|
|
||||||
variant: "dark"
|
|
||||||
base00: "000000"
|
|
||||||
base01: "303030"
|
|
||||||
base02: "535353"
|
|
||||||
base03: "646464"
|
|
||||||
base04: "c6daff"
|
|
||||||
base05: "ffffff"
|
|
||||||
base06: "ffffff"
|
|
||||||
base07: "ffffff"
|
|
||||||
base08: "ff5f59" # red (err / red-warmer)
|
|
||||||
base09: "ff9f80" # orange (comment / red-faint)
|
|
||||||
base0A: "fec43f" # yellow (warning / yellow-warmer)
|
|
||||||
base0B: "00c06f" # green (rx-construct / green-cooler)
|
|
||||||
base0C: "00d3d0" # cyan (variable / cyan)
|
|
||||||
base0D: "79a8ff" # blue (string / blue-warmer)
|
|
||||||
base0E: "f78fe7" # magenta (cursor / magenta-warmer)
|
|
||||||
base0F: "d2b580" # brown (identifier / yellow-faint)
|
|
|
@ -1,3 +0,0 @@
|
||||||
{...}: {
|
|
||||||
specialisation.home = {};
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{...}: {
|
|
||||||
specialisation.server = {};
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{...}: {
|
|
||||||
specialisation.work = {};
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = [pkgs.chromium];
|
|
||||||
programs.chromium = rec {
|
|
||||||
enable = true;
|
|
||||||
defaultSearchProviderEnabled = true;
|
|
||||||
defaultSearchProviderSearchURL = "https://duckduckgo.com/?q={searchTerms}";
|
|
||||||
defaultSearchProviderSuggestURL = defaultSearchProviderSearchURL;
|
|
||||||
extensions = [
|
|
||||||
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock origin
|
|
||||||
"dphilobhebphkdjbpfohgikllaljmgbn" # simplelogin
|
|
||||||
];
|
|
||||||
extraOpts = {
|
|
||||||
"AllowDinosaurEasterEgg" = true;
|
|
||||||
"AllowSystemNotifications" = true;
|
|
||||||
"AutoFillEnabled" = false;
|
|
||||||
"BookmarkBarEnabled" = false;
|
|
||||||
"BrowserLabsEnabled" = false;
|
|
||||||
"BrowserSignin" = 0;
|
|
||||||
"ClearBrowsingDataOnExitList" = [
|
|
||||||
"browsing_history"
|
|
||||||
"download_history"
|
|
||||||
"cached_images_and_files"
|
|
||||||
"password_signin"
|
|
||||||
"autofill"
|
|
||||||
];
|
|
||||||
"DefaultBrowserSettingEnabled" = false;
|
|
||||||
"DeviceAutoUpdateDisabled" = true;
|
|
||||||
"HomepageIsNewTabPage" = false;
|
|
||||||
"PasswordManagerEnabled" = false;
|
|
||||||
"RestoreOnStartup" = 5;
|
|
||||||
"ShoppingListEnabled" = false;
|
|
||||||
"ShowHomeButton" = false;
|
|
||||||
"SpellcheckEnabled" = true;
|
|
||||||
"SpellcheckLanguage" = ["en-GB"];
|
|
||||||
"SpellCheckServiceEnabled" = false;
|
|
||||||
"SyncDisabled" = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,128 +0,0 @@
|
||||||
{...}: {
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
languagePacks = ["en-GB"];
|
|
||||||
policies = {
|
|
||||||
BlockAboutProfiles = true;
|
|
||||||
Containers = {
|
|
||||||
Default = [
|
|
||||||
{
|
|
||||||
name = "Personal";
|
|
||||||
icon = "fingerprint";
|
|
||||||
color = "purple";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Work";
|
|
||||||
icon = "briefcase";
|
|
||||||
color = "blue";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
Cookies = {
|
|
||||||
Behavior = "reject-tracker-and-partition-foreign";
|
|
||||||
BehaviorPrivateBrowsing = "reject";
|
|
||||||
Locked = true;
|
|
||||||
};
|
|
||||||
DefaultDownloadDirectory = "\${home}/Downloads";
|
|
||||||
DisableAppUpdate = true;
|
|
||||||
DisableFirefoxAccounts = true;
|
|
||||||
DisableFirefoxScreenshots = true;
|
|
||||||
DisableFirefoxStudies = true;
|
|
||||||
DisableFormHistory = true;
|
|
||||||
DisablePocket = true;
|
|
||||||
DisableProfileImport = true;
|
|
||||||
DisableSetDesktopBackground = true;
|
|
||||||
DisableSystemAddonUpdate = true;
|
|
||||||
DisableTelemetry = true;
|
|
||||||
DisplayBookmarksToolbar = "never";
|
|
||||||
DisplayMenuBar = "default-off";
|
|
||||||
DontCheckDefaultBrowser = true;
|
|
||||||
EnableTrackingProtection = {
|
|
||||||
Value = true;
|
|
||||||
Locked = true;
|
|
||||||
Cryptomining = true;
|
|
||||||
Fingerprinting = true;
|
|
||||||
};
|
|
||||||
ExtensionSettings = {
|
|
||||||
"queryamoid@kaply.com" = {
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
install_url = "https://github.com/mkaply/queryamoid/releases/download/v0.1/query_amo_addon_id-0.1-fx.xpi";
|
|
||||||
};
|
|
||||||
"uBlock0@raymondhill.net" = {
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
|
||||||
};
|
|
||||||
"addon@simplelogin" = {
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
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 = {
|
|
||||||
Search = true;
|
|
||||||
TopSites = false;
|
|
||||||
SponsoredTopSites = false;
|
|
||||||
Highlights = false;
|
|
||||||
Pocket = false;
|
|
||||||
SponsoredPocket = false;
|
|
||||||
Snippets = false;
|
|
||||||
Locked = true;
|
|
||||||
};
|
|
||||||
FirefoxSuggest = {
|
|
||||||
WebSuggestions = false;
|
|
||||||
SponsoredSuggestions = false;
|
|
||||||
ImproveSuggest = false;
|
|
||||||
Locked = true;
|
|
||||||
};
|
|
||||||
HardwareAcceleration = true;
|
|
||||||
Homepage = {
|
|
||||||
Locked = true;
|
|
||||||
StartPage = "homepage-locked";
|
|
||||||
};
|
|
||||||
NewTabPage = true;
|
|
||||||
NoDefaultBookmarks = true;
|
|
||||||
OfferToSaveLogins = false;
|
|
||||||
PasswordManagerEnabled = false;
|
|
||||||
PDFjs = {Enabled = false;};
|
|
||||||
Permissions = {
|
|
||||||
Autoplay = {
|
|
||||||
Default = "block-audio-video";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
PictureInPicture = {Enabled = true;};
|
|
||||||
PopupBlocking = {Default = true;};
|
|
||||||
Preferences = {
|
|
||||||
"browser.bookmarks.addedImportButton" = false;
|
|
||||||
"browser.bookmarks.showMobileBookmarks" = false;
|
|
||||||
"browser.newtabpage.pinned" = [
|
|
||||||
{
|
|
||||||
title = "NixOS Wiki";
|
|
||||||
url = "https://wiki.nixos.org";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Arch Wiki";
|
|
||||||
url = "https://wiki.archlinux.org";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
title = "Hyprland Wiki";
|
|
||||||
url = "https://wiki.hyprland.org";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
"browser.search.region" = "GB";
|
|
||||||
"browser.warnOnQuitShortcut" = false;
|
|
||||||
"extensions.activeThemeID" = "{c6698fd1-fe9b-4eae-95d5-fe1703820469}";
|
|
||||||
"intl.accept_languages" = "en-gb,en";
|
|
||||||
"intl.locale.requested" = "en-gb,en";
|
|
||||||
"intl.regional_prefs.use_os_locales" = false;
|
|
||||||
"media.eme.enabled" = true;
|
|
||||||
};
|
|
||||||
RequestedLocales = ["en-GB"];
|
|
||||||
SearchBar = "unified";
|
|
||||||
ShowHomeButton = true;
|
|
||||||
StartDownloadsInTempDirectory = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{...}: {
|
|
||||||
imports = [./desktop.nix ./games.nix];
|
|
||||||
services = {
|
|
||||||
greetd.settings = let
|
|
||||||
command = ''
|
|
||||||
gamescope\
|
|
||||||
--nested-refresh 60\
|
|
||||||
--scaler auto --filter fsr --fsr-sharpness 10\
|
|
||||||
--hide-cursor-delay 5 --steam -- steam -gamepadui
|
|
||||||
'';
|
|
||||||
in {
|
|
||||||
default_session = {inherit command;};
|
|
||||||
initial_session = {inherit command;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
programs.steam.gamescopeSession.enable = true;
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
imports = [./desktop.nix];
|
|
||||||
environment = {
|
|
||||||
sessionVariables = {
|
|
||||||
XDG_SESSION_DESKTOP = "Hyprland";
|
|
||||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
|
||||||
};
|
|
||||||
systemPackages = with pkgs; [
|
|
||||||
hyprpaper
|
|
||||||
hyprpicker
|
|
||||||
];
|
|
||||||
};
|
|
||||||
services.greetd.settings = let
|
|
||||||
command = "Hyprland";
|
|
||||||
in {
|
|
||||||
default_session = {inherit command;};
|
|
||||||
initial_session = {inherit command;};
|
|
||||||
};
|
|
||||||
programs.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|