Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
| b4fd8f2dbf |
44 changed files with 387 additions and 1361 deletions
Binary file not shown.
|
Before Width: | Height: | Size: 112 KiB |
|
|
@ -1,10 +1,13 @@
|
|||
keys:
|
||||
- &Tibo-NixFatDesk age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
||||
- &Tibo-NixTop age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
|
||||
- &tdpeuter age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
||||
|
||||
- &server_H4G0 age1d4gvqz3anf082ja6xt03hnkzazfum80um9t45m4rerl4n3va2yuqgnsg03
|
||||
|
||||
creation_rules:
|
||||
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
|
||||
key_groups:
|
||||
- age:
|
||||
- *Tibo-NixFatDesk
|
||||
- *Tibo-NixTop
|
||||
- *tdpeuter
|
||||
|
||||
- *server_H4G0
|
||||
|
||||
|
|
|
|||
40
nixos/flake.lock
generated
40
nixos/flake.lock
generated
|
|
@ -25,16 +25,16 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758463745,
|
||||
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
|
||||
"lastModified": 1747688870,
|
||||
"narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
|
||||
"rev": "d5f1f641b289553927b3801580598d200a501863",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.05",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
@ -62,26 +62,26 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1760862643,
|
||||
"narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=",
|
||||
"lastModified": 1751274312,
|
||||
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c",
|
||||
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-25.05",
|
||||
"ref": "nixos-24.11",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1760878510,
|
||||
"narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
|
||||
"lastModified": 1757745802,
|
||||
"narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67",
|
||||
"rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -104,11 +104,11 @@
|
|||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758594056,
|
||||
"narHash": "sha256-6XyKDRWqBngw1g73e789iyIaw/0VF04ELk/ATtlkTVU=",
|
||||
"lastModified": 1724283233,
|
||||
"narHash": "sha256-XMPn6YHwFOJCGLE9M5F3AEFKA0u+maf8CpIEWmvaQTQ=",
|
||||
"owner": "ThinkChaos",
|
||||
"repo": "openconnect-sso",
|
||||
"rev": "2041471efd331d0591d34e122aefb02690fb233a",
|
||||
"rev": "94f1ddfef1662d56ede0a093bcfc3d23156bc1a1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -174,11 +174,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760998189,
|
||||
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
|
||||
"lastModified": 1758007585,
|
||||
"narHash": "sha256-HYnwlbY6RE5xVd5rh0bYw77pnD8lOgbT4mlrfjgNZ0c=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
|
||||
"rev": "f77d4cfa075c3de66fc9976b80e0c4fc69e2c139",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -265,11 +265,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761105987,
|
||||
"narHash": "sha256-d01CGcdNlsqIn4ncGCWHM0Velnii/Ggef1iybQvEOfc=",
|
||||
"lastModified": 1757304371,
|
||||
"narHash": "sha256-EZ3Vwgh5xgXuiPUmr9e1a9dEu3hvEWhRurAKpsAwB2A=",
|
||||
"owner": "youwen5",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "e7d9fefd8665be5d4c77466140f21a15f6d29e93",
|
||||
"rev": "3968348af022fe88468ef8de4f9683076e2e5e4b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
description = "System configuration of my machines using flakes";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-25.05";
|
||||
nixpkgs.url = "nixpkgs/nixos-24.11";
|
||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
openconnect-sso = {
|
||||
|
|
@ -46,7 +46,6 @@
|
|||
"steam" "steam-unwrapped" "steam-run"
|
||||
"vista-fonts"
|
||||
"intel-ocl"
|
||||
"libfprint-2-tod1-broadcom"
|
||||
];
|
||||
in
|
||||
utils.lib.mkFlake {
|
||||
|
|
@ -72,11 +71,11 @@
|
|||
};
|
||||
|
||||
modules = [
|
||||
home-manager.nixosModule
|
||||
sops-nix.nixosModules.sops
|
||||
|
||||
./modules
|
||||
./users
|
||||
|
||||
home-manager.nixosModules.home-manager
|
||||
sops-nix.nixosModules.sops
|
||||
];
|
||||
};
|
||||
|
||||
|
|
@ -84,7 +83,65 @@
|
|||
Tibo-NixDesk.modules = [ ./hosts/Tibo-NixDesk ];
|
||||
Tibo-NixFat.modules = [ ./hosts/Tibo-NixFat ];
|
||||
Tibo-NixTest.modules = [ ./hosts/Tibo-NixTest ];
|
||||
Tibo-NixTop.modules = [ ./hosts/Tibo-NixTop ];
|
||||
};
|
||||
|
||||
outputsBuilder = channels: {
|
||||
devShells = {
|
||||
default = channels.nixpkgs.mkShell {
|
||||
name = "devShell";
|
||||
packages = with channels.nixpkgs; [
|
||||
nodejs
|
||||
];
|
||||
};
|
||||
unstable = let
|
||||
pkgs = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in channels.nixpkgs.mkShell {
|
||||
name = "Unstable";
|
||||
packages = with pkgs; [
|
||||
anytype
|
||||
];
|
||||
};
|
||||
rust = let
|
||||
pkgs = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in channels.nixpkgs.mkShell {
|
||||
name = "Rust Shell";
|
||||
packages = with pkgs; [
|
||||
rustc
|
||||
cargo
|
||||
rustup
|
||||
|
||||
(jetbrains.plugins.addPlugins jetbrains.rust-rover [ "github-copilot" ])
|
||||
];
|
||||
};
|
||||
webdev = let
|
||||
pkgs = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in channels.nixpkgs.mkShell {
|
||||
name = "Web development Shell";
|
||||
packages = with pkgs; [
|
||||
nodejs
|
||||
playwright-test
|
||||
playwright-driver
|
||||
playwright-driver.browsers
|
||||
|
||||
# IDE's
|
||||
(jetbrains.plugins.addPlugins jetbrains.webstorm [ "github-copilot" ])
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
export PLAYWRIGHT_BROWSERS_PATH=${pkgs.playwright-driver.browsers}
|
||||
export PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=true
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,203 +0,0 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page, on
|
||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
sisyphus = {
|
||||
desktop.hyprland.enable = true;
|
||||
|
||||
hardware = {
|
||||
eid.enable = true;
|
||||
fingerprint-scanner.enable = true;
|
||||
nvidia = {
|
||||
enable = true;
|
||||
model = "Quadro T2000";
|
||||
};
|
||||
yubikey.enable = true;
|
||||
};
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
openconnect-sso.enable = true;
|
||||
};
|
||||
|
||||
nix = {
|
||||
flakes.enable = true;
|
||||
gc.onFull.enable = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
direnv.enable = true;
|
||||
home-manager.enable = true;
|
||||
sops.enable = true;
|
||||
ssh.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
pipewire.enable = true;
|
||||
tailscale.enable = true;
|
||||
};
|
||||
|
||||
users.tdpeuter.enable = true;
|
||||
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
virtualbox.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
# Use EFI and YubiKey
|
||||
kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ];
|
||||
|
||||
luks = {
|
||||
# Enable YubiKey PBA
|
||||
yubikeySupport = true;
|
||||
devices."encrypted".yubikey = {
|
||||
slot = 2;
|
||||
twoFactor = false;
|
||||
gracePeriod = 10;
|
||||
keyLength = 64;
|
||||
saltLength = 16;
|
||||
storage.device = "/dev/nvme0n1p1";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
loader = {
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
|
||||
editor = false;
|
||||
memtest86.enable = true;
|
||||
};
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
|
||||
# Use latest kernel.
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
plymouth.enable = true;
|
||||
};
|
||||
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = false;
|
||||
};
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
services = {
|
||||
auto-cpufreq = {
|
||||
enable = true;
|
||||
settings = {
|
||||
battery = {
|
||||
governor = "powersave";
|
||||
turbo = "never";
|
||||
};
|
||||
charger = {
|
||||
governor = "performance";
|
||||
turbo = "auto";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
logind = {
|
||||
# Handle the laptop lid switch as follows:
|
||||
lidSwitch = "hybrid-sleep";
|
||||
lidSwitchExternalPower = "lock";
|
||||
lidSwitchDocked = "ignore";
|
||||
|
||||
# Handle the power key
|
||||
powerKey = "suspend";
|
||||
};
|
||||
|
||||
|
||||
power-profiles-daemon.enable = false;
|
||||
|
||||
smartd.enable = true;
|
||||
|
||||
thermald.enable = true;
|
||||
|
||||
xserver = {
|
||||
# Keyboard layout
|
||||
xkb = {
|
||||
layout = "us";
|
||||
variant = "altgr-intl";
|
||||
};
|
||||
};
|
||||
|
||||
# Touchpad
|
||||
libinput.enable = true;
|
||||
};
|
||||
|
||||
networking = {
|
||||
hostName = "Tibo-NixTop"; # Define your hostname.
|
||||
};
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Brussels";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n = {
|
||||
defaultLocale = "en_GB.UTF-8"; # LANG
|
||||
extraLocaleSettings.LC_TIME = "nl_BE.UTF-8";
|
||||
};
|
||||
|
||||
console = {
|
||||
# font = "Lat2-Terminus16";
|
||||
# keyMap = "us";
|
||||
useXkbConfig = true; # use xkb.options in tty.
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
# services.printing.enable = true;
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.libinput.enable = true;
|
||||
|
||||
# List packages installed in system profile.
|
||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
||||
environment = {
|
||||
# Enabled to allow installed binaries in ~/.local/bin
|
||||
localBinInPath = true;
|
||||
|
||||
systemPackages = with pkgs; [
|
||||
git
|
||||
vim-full # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
w3m
|
||||
wget
|
||||
zenith-nvidia
|
||||
];
|
||||
};
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
#
|
||||
# Most users should NEVER change this value after the initial install, for any reason,
|
||||
# even if you've upgraded your system to a new NixOS release.
|
||||
#
|
||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||
# to actually do that.
|
||||
#
|
||||
# This value being lower than the current NixOS release does NOT mean your system is
|
||||
# out of date, out of support, or vulnerable.
|
||||
#
|
||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||
# and migrated your data accordingly.
|
||||
#
|
||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/e759b10f-7949-4094-9272-d91340dcc5b6";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."encrypted".device = "/dev/disk/by-uuid/2b6586fa-8823-4add-94f3-132aab17b7b8";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/12CE-A600";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
|
@ -4,7 +4,5 @@
|
|||
./hyprland
|
||||
./plasma
|
||||
./sway
|
||||
|
||||
./waybar
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,30 +6,54 @@ in {
|
|||
options.sisyphus.desktop.gnome.enable = lib.mkEnableOption "GNOME";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services = {
|
||||
gnome = {
|
||||
core-apps.enable = false;
|
||||
core-developer-tools.enable = false;
|
||||
core-shell.enable = true;
|
||||
};
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
|
||||
xserver = {
|
||||
enable = true;
|
||||
excludePackages = with pkgs; [
|
||||
xterm
|
||||
];
|
||||
|
||||
excludePackages = with pkgs; [
|
||||
xterm
|
||||
];
|
||||
|
||||
displayManager.gdm.enable = true;
|
||||
desktopManager.gnome.enable = true;
|
||||
|
||||
videoDrivers = [ "nvidia" ];
|
||||
};
|
||||
displayManager.gdm.enable = true;
|
||||
desktopManager.gnome.enable = true;
|
||||
};
|
||||
|
||||
# Start a new instance of application instead of going to that window.
|
||||
environment.systemPackages = with pkgs.gnomeExtensions; [
|
||||
launch-new-instance
|
||||
];
|
||||
|
||||
# Do not use these packages
|
||||
environment.gnome.excludePackages = (with pkgs; [
|
||||
baobab
|
||||
epiphany # Web browser
|
||||
evince # Document viewer
|
||||
gnome-connections # Remote desktop client
|
||||
gnome-console
|
||||
gnome-photos
|
||||
gnome-text-editor
|
||||
gnome-tour
|
||||
loupe # Image viewer
|
||||
snapshot # Camera
|
||||
]) ++ (with pkgs.gnome; [
|
||||
eog # Image viewer
|
||||
file-roller # Archive manager
|
||||
geary # Mail client
|
||||
gedit
|
||||
gnome-calculator
|
||||
gnome-calendar
|
||||
gnome-characters
|
||||
gnome-clocks
|
||||
gnome-contacts
|
||||
gnome-disk-utility
|
||||
gnome-font-viewer
|
||||
gnome-logs
|
||||
gnome-maps
|
||||
gnome-music
|
||||
gnome-system-monitor
|
||||
gnome-weather
|
||||
simple-scan
|
||||
totem # Movie player
|
||||
yelp # Help viewer
|
||||
]);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ in {
|
|||
# Hint Electron apps to use wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
|
||||
ASSETS_DIR = ../../../../assets;
|
||||
SCRIPT_DIR = ../../../../scripts;
|
||||
};
|
||||
|
||||
|
|
@ -20,16 +19,10 @@ in {
|
|||
dunst
|
||||
libnotify
|
||||
swaybg
|
||||
waybar
|
||||
waycorner
|
||||
playerctl
|
||||
wlsunset
|
||||
wl-clipboard # Copying to system clipboard in vim
|
||||
wl-mirror # Mirror an output
|
||||
wdisplays # Tool to configure displays
|
||||
|
||||
hyprlandPlugins.hy3 # i3/sway layout plugin
|
||||
|
||||
swaylock
|
||||
|
||||
glib
|
||||
|
||||
|
|
@ -42,21 +35,21 @@ in {
|
|||
];
|
||||
};
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
programs = {
|
||||
hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
security.polkit.enable = true;
|
||||
waybar.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
dbus.enable = true;
|
||||
displayManager.ly.enable = true;
|
||||
gnome.gnome-keyring.enable = true;
|
||||
power-profiles-daemon.enable = true;
|
||||
xserver.videoDrivers = [ "nvidia" ];
|
||||
};
|
||||
|
||||
sisyphus.desktop.waybar.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ in {
|
|||
playerctl
|
||||
swaybg
|
||||
swaylock-effects
|
||||
waybar
|
||||
wlsunset
|
||||
waycorner
|
||||
|
||||
|
|
@ -95,7 +96,6 @@ in {
|
|||
]);
|
||||
|
||||
environment.sessionVariables = {
|
||||
ASSETS_DIR = ../../../../assets;
|
||||
SCRIPT_DIR = ../../../../scripts;
|
||||
};
|
||||
|
||||
|
|
@ -119,7 +119,7 @@ in {
|
|||
xserver.videoDrivers = [ "nouveau" ];
|
||||
# xserver.videoDrivers = [ "nvidia" ];
|
||||
};
|
||||
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
|
|
@ -130,18 +130,18 @@ in {
|
|||
xdgOpenUsePortal = true;
|
||||
};
|
||||
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
package = pkgs.swayfx;
|
||||
wrapperFeatures.gtk = true;
|
||||
programs = {
|
||||
sway = {
|
||||
enable = true;
|
||||
package = pkgs.swayfx;
|
||||
wrapperFeatures.gtk = true;
|
||||
};
|
||||
|
||||
waybar.enable = true;
|
||||
};
|
||||
|
||||
sisyphus = {
|
||||
desktop.waybar.enable = true;
|
||||
|
||||
users.wantedGroups = [
|
||||
config.users.groups.video.name # Brightnessctl
|
||||
];
|
||||
};
|
||||
sisyphus.users.wantedGroups = [
|
||||
config.users.groups.video.name # Brightnessctl
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.desktop.waybar;
|
||||
in {
|
||||
options.sisyphus.desktop.waybar.enable = lib.mkEnableOption "Waybar";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
libnotify
|
||||
playerctl
|
||||
jq
|
||||
j4-dmenu-desktop
|
||||
];
|
||||
|
||||
programs.waybar.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./eid
|
||||
./fingerprint-scanner
|
||||
./nvidia
|
||||
./yubikey
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.hardware.fingerprint-scanner;
|
||||
in {
|
||||
options.sisyphus.hardware.fingerprint-scanner.enable = lib.mkEnableOption "Fingerprint scanner support";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# Enable driver
|
||||
services.fprintd = {
|
||||
enable = true;
|
||||
|
||||
# Enable Touch OEM Drivers library support
|
||||
tod = {
|
||||
enable = true;
|
||||
# Dell drivers
|
||||
driver = pkgs.libfprint-2-tod1-broadcom;
|
||||
};
|
||||
};
|
||||
|
||||
# Start driver at boot
|
||||
systemd.services.fprintd = {
|
||||
wantedBy = [
|
||||
"multi-user.target"
|
||||
];
|
||||
serviceConfig.Type = "simple";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -14,8 +14,8 @@ in {
|
|||
# Add secrets.yml to the Nix Store.
|
||||
defaultSopsFile = ../../../secrets/secrets.yaml;
|
||||
age = {
|
||||
# Don't derive age keys from SSH keys.
|
||||
sshKeyPaths = [ ];
|
||||
# Automatically import SSH keys as age keys.
|
||||
sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
||||
# Use an age key that is expected to already be in the filesystem.
|
||||
# You will need to place this file manually.
|
||||
keyFile = "/var/lib/sops-nix/key.txt";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, pkgs-unstable, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.virtualisation.virtualbox;
|
||||
|
|
@ -6,19 +6,20 @@ in {
|
|||
options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
virtualisation.virtualbox.host = {
|
||||
enable = true;
|
||||
enableExtensionPack = true;
|
||||
enableHardening = true;
|
||||
package = pkgs-unstable.virtualbox;
|
||||
virtualisation.virtualbox = {
|
||||
host = {
|
||||
enable = true;
|
||||
enableExtensionPack = true;
|
||||
enableHardening = true;
|
||||
};
|
||||
guest = {
|
||||
enable = true;
|
||||
clipboard = true;
|
||||
seamless = true;
|
||||
vboxsf = false; # Module not found?...
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
# https://www.virtualbox.org/ticket/22248#comment:1
|
||||
# and
|
||||
# https://github.com/NixOS/nixpkgs/pull/444438
|
||||
boot.kernelParams = [ "kvm.enable_virt_at_load=0" ];
|
||||
|
||||
# Define the group
|
||||
users.groups.vboxusers = {};
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ final: prev: {
|
|||
sha256 = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-oGpe+kBf6kBboyx/YfbQBt1vvjtXd1n2pOH6FNcbF8M=";
|
||||
cargoHash = "sha256-oHfk68mAIcmOenW7jn71Xpt8hWVDtxyInWhVN2rH+kk=";
|
||||
|
||||
buildInputs = with final; [
|
||||
cargo
|
||||
|
|
|
|||
|
|
@ -1,41 +1,27 @@
|
|||
HomeLab:
|
||||
Gitea:
|
||||
ssh: ENC[AES256_GCM,data:+H9qhfOg5WlTB7pihvbJ9omY/zLTAADe8KzI4fbdZ7NuaM0auC95AIQqhwNNCZNglg9UGOVL662pY7dNhbQ/2iCLPHSPgFFXf3fx1moRRcYYQzoJxsgxp19FZQeGNJ0qfRf72xYbZQZKslyHQmcqDieoVTyhaLqTfgC8MQ/UZofw/ortmgME7z51rGV5sXXMjxpJpHz9JxiPwQEL0ABWDAeCqBVBzlqqwdmfKEdkcR4l3USHfH1iNF5XQ5V26I+UGDOyoixt1c/BXzD9xzKI7MUDoRz+qfC6C62LIlEgqZY5tWg+tVZnqobakxwH6d8pXtQ7vaIREEP0LqQMkrNcK8X+cDRteToQ1fcxtN1V+JfZSa9pVC+iGgvmSZ00q4bnOgTmgO9IZ80TvOR4bHpRhjM5l4JMbLBv2jqY1zeUx/5L3WNuYIm9sL5mWXkV/RAD8WCemNSWdKbGsvByEUeiFcxczL/vQ6y3fi+ntmXUgeXVy5zVNkNlYbqd+DemBmwZQb9D1T5T97i2ChciYb3/ON1NObja/bt0PTQa,iv:hIbwsPcDSfgDItlvFFy0vCjuQWvgoQHBH60v8nTVTNg=,tag:1T/TdTEy98TfgMzYAxfHKA==,type:str]
|
||||
HTPC:
|
||||
ssh: ENC[AES256_GCM,data:svt6jhMXVCydmlcoa052TtFoIwQiAzNJRn9GPZDBuOGSnB83kUpuy/oqPOIa2ipco0L/5F/mQWn7OHUFtyhWWMerzY8niPldUDKH4jgsvRhRIatGOFiDyL8oA+f1O9lmhyFx35uxGa+Q6tn6rtXVKRVWQFe8kYBvGYjugKixsOMugoqLIxY8wUlMTzm6uDd7a72s/0hgQZGKp0eHWBHEdSJGPdv8svVDZ1PBMrlZa5ZpuiUmmvZvyCEnRtImUZALG4nKMvJjunxKr/4MJhWuffQ60jLYzInoGggiJlwBm+E+m43FwIFndY+LJ+ykO5RAbHhSwgXsCS5WXBrvDGuOTNAlIp6yTgSK1DCzSjzOJOc93rVSPhPdkaOoKgxhz1k95qCEhYUf9vyBgyIaOntWEArV+OZmHje6awbk4fpyIzRe7ggHlhKILYoGYzeejxbMGB9nH15RlUiTF7QnAWxWNSwcET6dSn2MtpC3yegnYl4u3eJ7YkHHYYQtwCQ9vCnt0i/sfuJmbrSFBXnVKMWB2w1Att145gDdlDok,iv:4bkSYvgmG6j/AwVnfGsLjdqtyP/gpWRvOKZCQxP0sMs=,tag:LyjE7dTt0+IDuSlbVLgCMg==,type:str]
|
||||
Hugo:
|
||||
ssh: ENC[AES256_GCM,data:y233CFIH7/n4EGEd2D7MuoprcMV9A8DaiV9JYZ6sr5j+hZnGr8sIAm9/55Bi2cD74sBZcE+tjOz+V2aJ2llKgcdS84ZmXMPh6KQ2QYRYuGdBLeztl8foKdimToblBapebTVO7Rc2mdhg7sZtC/TKSIJnG3R3lRfRdKaxNjaRS51epl7VZKGhLBjZoZqMXOezY7lvNBvF3hFfMh5el5I5Te/yQbbp0a7DkAvA+c1nG9bo9FN0h3VJJTzcuHqvGHI736VosLe8UGirMkX9mBwB8ZV4+2Vp7ZsSHnX5or/MzuYexT0zeLbTNHfj64d2W2/LKDkxNc35Sw7NvxwsVj3k2UHC2jEgus2z0AdMFszEFXh+Eu9wK8yX4ebzUut+OHNPuxvIk+ORxYr3OdVkOhhWHLinu/skNg0u5OdUXo/0p1876+gpcnOVC5UrUflwrtKGQgNk+ovWWjSfcQMh+gI6GYXzksX3YdMEriYZt4Z8lev2od/i7q48cV4W3Lo6TDDttipynxQus6K+J3oBKRirLHylRA5gusqUOVzC,iv:thw9OUnA02qe6aMuLTwy+q/a6isB375/k7JixPEy960=,tag:s95FtFRmPG0Up2oVuQyXsg==,type:str]
|
||||
ssh: ENC[AES256_GCM,data:Tfuba25e4hJ8Ovl1IdVtDvg0L0sCc9sYTXstRg89IAUzwv/1u8mxdj9ka6ZKaSQr2QUaNWs0BoPV36O4bI2hTwoqhUarhXXZNnJKHtd8xBu/+kfMSOMGa5qD9V9m3L5OFdt+gdwhJxemeQNkvN0Vhsu4DJFPZRPmGflJ2HVRYaRW4AsI+JPqiWSEeKz40f3PQPJ2h26gF+pADmPwtEfcUGZdGnJXUsiYMC0aBEWWxyAgBgj5W+Nbe+OCopEX1qyRcR8qO+LONjuC0b5hcGeOXjWj/d1FnBfxDHeoxRGhNCo8TUk0ap1mpSAttdr55/C51duQfeV09Iow4nzUR2H0jmzojUAjKXXCkBsK6yjIKxW+4+4OKCC9ERz5mDmu5Z+4aFM7CpSquCAnDVFw1Uq9MJqAnSz6AGh29J4LUwMnVNtf+gQwzGyl/C9wE/Svm0UAwP19h6hLcM1rp6bV4xjfSXNDspUkz4Xr3RdPpTI1PemtMZIq8fP64q0FlFZeV62ctl9hCtDVRDo3fG3FUM08fa0OfJpVYjSEAOfC,iv:T8z+P5++cES9Co9d/2tcU0PbxZZM/5x63tcxIjBeQ0I=,tag:AjsulFme64/xEPjgZQFtow==,type:str]
|
||||
Nextcloud:
|
||||
ssh: ENC[AES256_GCM,data:aVqa57u9hIOquP367EDj2rlyQWRe3EZv8l5cC+yQQKCri2bN5IFSq8qNemOIcU9ycBnxIyK6gLerJYQQcgzIIARmnfDpbJ9w+EeUL5yvPVJN6FM7oBeaL9mzYRl8aDKr22LhL9YiKAT1nKHESmTb3TZRvuvWJTGzCMRV85ROGxZYVUgG6BjuHEzuTsc4fy3NVPIl7/4ZjPgNNYx+UNsV5xwTejveB/sGblVrHOO74LZXzUWRlQNun5nM3MY3GALzfrPrVIAyGNu37CGachtwxaPOj7vUKZmD/e+XajYVKRJ3v33jrUeI0dDmhuwJj3taoFik6suAyiK3RlDdeWoERR8vqduiyxJnVMs6mNkigzkVtifpwZyQ8vNyG7w1JNPygMYgQzjN43lGVml8cx1lZvcoBzQabjWxcNzhV8gXxoGKvAwUV7ELB6l00rUH+EeI0uU8/IFm9kwmZq42ciM/bRGSGXzo2PYG2OHOiDe5b0nrIlajaRKd+vuuzTtFFU9EwH0GPzERRaoxVK+h9tzcco/REITCE+CVlHSx,iv:bb1X95HK5tT7EJpqqgMOUxw5VO5MuzoYxkPIzR5sEqU=,tag:y2LKHm7czwyuHp7Ea8KiYw==,type:str]
|
||||
NixOS:
|
||||
admin:
|
||||
ssh: ENC[AES256_GCM,data:rAn/H2CtK2dkES2UIJrZbEP/3rqLgJsy5rortmdqoCthQ41IxztiaH1VtdaVDtw5j0qu49RJ59KkmYpOQXC2okAgLeqcb+J9iwrwspfKd+/I186a4gHZ2l+hGpmr3Vbs6K/UoCY67uygZhznBuwKeW4EjYJgGS7zInJFmMvcMV1rP/t4VoW+5oxptQNCrzoRukIG6NiAOcqU1GtvBfL5PxLaTWUEcZMYuo6sY/9VuEWgkZP1bmhBPUIv9D5yJo94KQr0YOaX4lz2pwd+K0cdD8d0Lh8B5YplA1NDCUnBbuDXfH0aSUAm7DCm6Y/E2UECEMRLuwfyEoe/yaHh8iCGveI//FkmiIKNY1SmTkjM2Fdfk6QaVDF8sG2CWdX21H3senfeM6jSow7JLY1LDvC2WxO4YIJEi14Y7zEpIZinWimyAhihPvMLnwd3taOhE59NrTOQKQS3tyFX+5tO3LtBrpn+Tm/B7WO49EkRn1LXN8CWkFnEEGXgxfNRg91C967nHaNpDMssGjfVG20WwYAtMKXzrNyzSEJbZglQ,iv:vY/8yyO0eLzpdho9aPUH9WGQ8Cp5LA+5RckjzDgYMMY=,tag:Jar1qVS/c1rQ8f3qpYqJdA==,type:str]
|
||||
Roxanne:
|
||||
ghost:
|
||||
ssh: ENC[AES256_GCM,data:hkgVUVyCLANeYB4bcCTLB/F6eAbg7J4eN8y+VVzBfkcgnpDmXmghBihreQVT7OIwRrHIH1ok2vuH8vgXb38tuplUD5I8e0Gqy3EqpOGagsO8lss4aIg2lRwZ9WazJknvo4OaGc34jrwcZicesnaxK6g+GX2r2N4caGKMuOZ2i1mLKBwOcEtL6l3REKrGkExd3mYJX1Yqs7sMbGLNpfemDghv646zvxDRwPby49qIPA8OtGR+DBMZTTEviNqamJaFbs7YX+K77J1NHK59u6UfzU6hEjTBEYIjkFDzGATAZAopCsjOHcAA0alejHK4QZZt3e8unVsLICNK08ZCyEzwSXQ/wpUh3ccGcLit2t1LYZT4PqqG8+6ooaQYso67Wral0pdsTsrF0mGNfsZm76MDV9puP5B+IInanHz+2mCHbdmTi6rg9t8Q6mpFqrUbrwxMn2Ns1proBXBCqK/sFjC/bVIyMHUVOh6GYcKaVTv8ecB9ZEjp5dZ4VeStqTMT+xqS7dXBAJzGytLwXT/JaQelIE0w47aBaGy63Pqy,iv:WuAGU+ru8xLp2LXK12x/ueCH0XDxA0zGUt7+HWUdVMo=,tag:UqUMD/jSdTXOkf0kyMqwHA==,type:str]
|
||||
Vaultwarden:
|
||||
ssh: ENC[AES256_GCM,data:LJ7nbIdl1GqcsBtOwqsDtjKMfks13X5hsGkEFxDj0eX1EegEBkoWnzstu34RTgt1O1O+3Y/Amg7cDce2ZyZrTwDmLqinpuJD3CI7pRtQygAH8X9wPQYE6U3D1t4dXuMcDftjS+uY0CJFmq01dLv0GytSZSiNBcqNepTY+fO20yylyUbDGjI3Foyi86ipEtLVeFJqESiHDMHn/Cr+ggpLNMXijpnyoCRstPlm3GY3n6EhPwKhwovLB3AXolUeScnInIpwiikVTkYLNLCbrG8KAAr+DmWK3GTZYToH0wV8HpacPQI+4cHf96+EvAVlYMwGyQztPmXO7/9xUgWCNYow+z8BD6ijMuyZHT9aNkoAPt/y72N/PSf5HqW0QVWr3LmyIG+i9Bxbhqc7mRUIy4wZsODbtoO8/RtAly6mXIg0DZLlbo8kDe3TE3m+P5E/KQJOAvM2QdL+NXPcf2J2JYHW4kzITx447Bc3+F/DRs616MhekIoDybLhY3MT0XvYX1d1wAv/Ip98EGzfptXjnJvKPcJgTBlqNyeKuPOe,iv:oEGJUpoj+N30TgLpSWQqGdqYBdWLUWnSuQ+7TdSgmFc=,tag:AUZ2QnPUxLHaxsHbrmSYZQ==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlL05vZHk2T1B6OHArUXlj
|
||||
bEZWV0dUeVN0M3ZpeHdKcGlKV1RWYmRLM0FjCm9PLzBZTFo3RjhZTEhYMDBSN2Nj
|
||||
aithQ2hpZXVCSngxcVBvQ2hKRzFXUEEKLS0tIE5rL0NHb1llRmlSQXVUeU8rVmNY
|
||||
aEZHdDFEWUdxMzRVVjFhQWZmS04wRkkKrD2CiwdNcbK9s64omQ7xSA29J48HwIHa
|
||||
ickyL/uorYhXmBKhqdvNq/j1Nb88LR9ti55Z7eecJNbyJb4OTtgzXQ==
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
|
||||
SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
|
||||
ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
|
||||
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
|
||||
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBOWNXQ1BsekdoS3BCdHA4
|
||||
YTJJRHJBTEJ1bmhkWktSamYyRk1TUmovZ2trCnBXbUZQZFBndmU3VzJHVjczZGtY
|
||||
ZkJDY3RzSEhXQVlLL0g1QTYxSC9CZGMKLS0tIGFBZnNlWmZjZFdkdGZvaHA5ZjMw
|
||||
NFRtOFIybnFPWm1idFY0WEVqVGxOK1UKiJDByqKv/i/l9dvOplDyzDORU3ulhSwi
|
||||
6xyEqmyNQpIkiS6TLZZYrBlQMDYqZ2gj1HhdIUssWJCf5Ho8KVDjJQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-10-18T15:55:58Z"
|
||||
mac: ENC[AES256_GCM,data:vdVOTFlDD9jlGJksI5TDxk3stPkLY8lB6LMhV6QGqh9R2vaGuGGh6RZuR6AInq1Rm89innA6M1S2UUM6Jef1EKiPgq41neWMx/i3n7Ixx8FcraO/lgUYKG5yszYdjAlLQvKWqIbvX0bMYNwpF10FO5OyiXWiJrP9Om0Pjvk7dO8=,iv:W9I1nv0fKckNlNjJF0U4HlkyI5VDpvOGiSo0GeOODaY=,tag:RjkSTQYejyf1WO0LilbXYg==,type:str]
|
||||
lastmodified: "2024-10-20T07:58:57Z"
|
||||
mac: ENC[AES256_GCM,data:mmFgjE7rp7fXmPOnETGamHR3kUAguFCNNTQcEnD+uM4xeSp3QcB2g8tkKYaJAjkWWqKRSm9/Iu1NWOr9GWyu4O1h7ppWSvpKawWki6cHpqBl8JOwbx/SZi5bzU1lBtoJyT6hD1aCu9ENOMUkpPY3rKcYwbsRMJpKYsbXymPikcQ=,iv:kPB6ds8c4yc/w7Ny1d3DTyztQF4yTr0NyKgIHEzIKAg=,tag:VTpXRb5HaWDjVB52K7mByw==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.10.2
|
||||
version: 3.8.1
|
||||
|
|
|
|||
|
|
@ -5,27 +5,24 @@ UGent:
|
|||
ssh: ENC[AES256_GCM,data:A4ir0yvCgIVJCl4C5fB4+WhJVj6Go9XWfjw1/lOaWr2rP+tVNnjGuv/d47z55Gxose5keYX2wRMet/M2Re18+5ckFTyfT4YkcHtQCyBGbmwYmIzxcaxinNsCuOelEdNnFnYW2ha0aJ8Q5Xjfpec1YqDrCT/Add3qGRzBizQJ1FajbyhxJOKLYvUrYvLZ8+XE8SUndvjQnVig3ArUm2hDFsEMm4ClZ4T+EwcIuWrS8ia7ZoqlQhglEtlSEczE65a6hQAFeXE64YC3s8kWlRGhRqJQXjB5g/UTkOht3Vrw2cNzrz90tR9vhooOEBEI6d8F8RJGkdyUe5zod1eKnE/lwOFhhTbzrGrYzX4oUrDIL+Dx9+R9mQchv9qSau1JtKDvzkYmqVVgTC6wE98gTRSBw78f0MKO27FA3diC/k3t+mwsKVRjcvlTUcbRcFAxjq/U5TbOq5jOgA41dI9KE/+bnJoLRh81m/sq9EqMTp90wDKn+jjCn7lGcGDwtaaTlbLIGIw5u9pcfD4UyvJZamnS96JAhsDUqk+fxb05,iv:jPCdaC7CahKrj3tvzZTs1ZI/3+zuCCqIdXp3vo9l/iY=,tag:DeUdWEZHpsB1AMD2AQuiTg==,type:str]
|
||||
SubGit:
|
||||
ssh: ENC[AES256_GCM,data:hJAle4DHJNvX569reclBG5rEdWsjAyV2TtHYMiPfky/dMKJkYgT4+T0doLfUn1O6at77kJGPmwUEvmK819DUuvHtNY7c6angV7iLygJ/ThI1FIFOKH+NxEsI3scoT0VDDybHpgice/fcJL1tMcvE74+dWOnZ2r4pxcMJEFHUPVVWcl9/stJLn78OonsyWpj8PglcnYFOfZ6THIe3lyNBxRp7XEweuwjacthGzOzNu3Z95zcCAnAokFVZ570glJNhjJVNEmPHZkHOcGiGNNM4JNbR11v+dOYtac942t/mmmWwAzbznuu8ZLupYWjdg/f07ftkPAwFwCoXblZ3708Lvf6uOt/CPeWvEII2Haf1Cr5w+U6TAt14zzL73xCSQqwz1TfkcmD+bJplmtcpSP/KX8/BRK7qr6Ec5T9ecbraRB7zDBg0X2x51DSHLrA7UIhpI9JNaOArU5UOVYTWwuzFiGG61elJMcPZ5vWEVrTCocfa4INPo4B2MkFbbsYf6xnY1L3Wc9LQjkff6aCqYnQaXZ/WfPWepf9YvYG1,iv:0Bm1r0FuJJKKmcbTiPL36rb5FaMZfOO7Mx8pXU2FSfg=,tag:0ShoJPJUx37mEAus+mhPmw==,type:str]
|
||||
Dwengo: ENC[AES256_GCM,data:3lsZJ5ztkGOfHFQNr54xs9evSTEAs9XHJhg6Krvz3fkT8CaGSiRW5HTCfANGhQ3wJ8kHVziwopQCJ8s93gaipAuEu5k/hYj5wYhOn6x8oDJxftMJC94JDL4eYGIXbx9GSPIy+loftfYIZcfmi6o1lQdiqRdC207Cs+p0ZTB7JSvales16IpgYKoTCRLUytd9cBrezD9gVEngW1b4wHGzai4OOTSunlOVVAgapAKsN+swN7QtMt00607Ns6gCoQDV76qAbM+6EN8PlIKwbyy9UneeTXOf0wtQpb2TM1zrVR7LOqNyXT+DUlrBLpOpYK8tPCP8y5m9DMLixrhbAXMT6pIp2XSbmcfcsuMGLJE2ev/c6PxmbjqiCGEYPC3HdAgUpNDtOMixnHEoXnMUPDJeE0MXbSFMRmzNGo7pc5gOoCFmCkV9NVQXERR6m04Bn3czRQVHfoVIc4ciPdiXpOqF8ocTnqZj7HRW8dvZz9V50ViHwOVqWLJ2a/QUMdagXlaK7zPrxPETKz47iMoMfVaUE8ePg2L5sEZHja62,iv:s/+JYSkZudTr4MnTclpNV7i5VGUlqFhdvovcFt+inSQ=,tag:4Ge0ZOc6qNObQrzS0K0WDA==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpb0dlWE5PNllnME1jQWE4
|
||||
cHFzWkR4ZzNaWlR0WDJ4c1hEdlJGN0FISWlZCmNNdVRtL080QzgwQTZtTGpVRkxW
|
||||
dkdvYXdQNUlhYWQrYlNDR2JISXdpdkkKLS0tIEpIU20rK3F3WGpBS1g3NmJqYWRX
|
||||
SWlNbFZ0NTJJZ09Wd3JzK1hscjJoS2MK4GU8ndim80CaOjgvMwVlgIq/1VQIylSZ
|
||||
EJl15zUFaDiDZUCcZE8TkJQ/rbGDSiq7KlWyFe48Q3UC86jfF88qCg==
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
|
||||
SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
|
||||
ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
|
||||
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
|
||||
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYNjkzeHloK3hKUTJaMTdr
|
||||
NUdiZ2JGZitqN1k0WCtEODU4R2MrTmUzR1hrCmNJL0Y4ZEpLN0l6ZmhGWEM5UktG
|
||||
ck1PUnFSSVNCRUd5Sm9kSXNmVW5jZDQKLS0tIHpHWVBVNFNBSlUvZldJVGowUEtZ
|
||||
S05HZ0FiSVlkUjRRV01TbjlpVFlkQWcK7jAqOYd9EDT93xpVgtpKl03EO6oHmGRR
|
||||
iK9j2y7j1YSghPKDBrC5eKy9+IP/EFEBGygcokqT7C6Nscu80YhVbg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-10-06T14:01:15Z"
|
||||
mac: ENC[AES256_GCM,data:bWo5DGCt5cK02Lf61yKFDZLLaMmcWyba+03CZ35EnGz7Hoc1sl3qTmgJfNz8EKDeXTIkk33DdnI/kZ2nX7vsZ/QgOhFQWzWRYe1cxqiWyd0wnUlwdoeeFrBP3uOTHXAOVe6q77S3qChzBP3J+5OijztvdOVEOKFmFPSCgyA029Q=,iv:6DSp63IrtYyaFxkaify/JZDXpB76AaGGW/OcPTKBbvk=,tag:sPKddpcx60JFZ4VEGD1tnQ==,type:str]
|
||||
lastmodified: "2025-02-21T19:36:01Z"
|
||||
mac: ENC[AES256_GCM,data:NMxbxf7/UwR9akbbLgKeSLIkk+dS/an2pGzZUSbe1AJenCVFO/fiRCC5BF6xJVpFSpag/dLwo/tS64JmJ36Vqn2sQGmqn26HPXsjAgyUdpp3+anXIVOGvNHF3oCM8gEUk9+W2FsOqKuejpD7HK/IsVJEZZLbThkUS1BiptOWk84=,iv:xNBBjWADFF5itg45KnmNbZG5RN0KRpaph7iMGhf1KZg=,tag:FrDSAbvo/7QHH0g5Ik8ATw==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.10.2
|
||||
version: 3.9.2
|
||||
|
|
|
|||
|
|
@ -3,26 +3,22 @@ GitHub:
|
|||
Gitea:
|
||||
ssh: ENC[AES256_GCM,data:8eyuycMkBVMHfzaGeGs+0RA4vCpaAUTjCwiplUamypEk9BDYqxe+69O6OjJAGaPnmH4kpsb/WVd5sU6HNUogBuzDQhCrv2B6NadcmnV+fH3MHfAWvDy7R68PUkwcywWVOo65SONckjKVa0Y+8IeeJh9zpr36qCbbs+zPC4XTk+Y5R4vK/ocmSJSmwqVK1SfGGwOjFoJvHVI6jdXh//vgKaITqmyZV7N3OU9EiQp1FmNKwFf/x70w2LGATrNBcexwNy20ZYd6ewiAfJxFHR6Svfc2P5X2nlv99W5t1eU5QEGUcalcslsW/VkmFC3agN3Yry2EMIlfTlm0hm4+ryDGWEvgyUC0dLA8Ao0TLaaqig9HzBRP1h6aORe0lDwzTUg6WltrIu0s7hFwD4YLi1qP5lY99hvrDIRbTEg6AY6X4b32YFlyOXy0YDetv90+QyEcwANWO9MXz2S9hxuQmjOXMCVYMaiMLVUkG+mShbQuxTiFQt/7D83yOBSRLugx/aU318NKvUDlCt7wpZbMI3gBia4nUYLoLcXRKcAZ,iv:uc1ZtGdcolLrpQgS5n5LEAwBt0vMmkj2OuTXcn8sQ7A=,tag:F2ofcj0zEBgxwukMUd7+uw==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwSDRZQ0pVNWhmdFo1UDVv
|
||||
MFlrZEFtNjlpZ3pBU0VrdkFpR2x4WGxUZ0RRClJad1JPYWhFTWd1N2ZKQWsrSjFj
|
||||
YXREaGRrbE15MEdpblJtcTk2cFk1eGsKLS0tIHE2ZTd3R1gwQ3E1VzkvZTZoZjBW
|
||||
aTRLcFJ6NkpJRjkyenVxeFRLVmgwMjQK47HRKyg1SxWABZHCdVdIaPEKoSiWIOO/
|
||||
OYu/1owbUwTh1KouUb4tgNmVBOkERJ9i3lEjWLHUWrlCAUImc9dG4g==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBVDZtU2g4dmFXTlNIMFBs
|
||||
OFBpS2RXRzFwTVdJazQrSldwWUFtdCs0U1ZFCmxRdy9yY3VIWU4zenc4eVNEVUZv
|
||||
VUlyT29JekNTS3RIMktmS2RGNU5GMTgKLS0tIEhvM2RkcUs0SE5uSXFxc3dvSXhP
|
||||
WmViM05IMHFPckNic1hHY2ZlTEMrYkkK+66rYqbGQucqQch4Tx9jONR9OIXdjMUd
|
||||
q/fGLCoSluHuCOkUWr/wUgvF5dWAHftYj9JjDB/9vpp4Q0WClLDszw==
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
|
||||
SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
|
||||
ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
|
||||
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
|
||||
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-10-19T12:24:38Z"
|
||||
mac: ENC[AES256_GCM,data:g15gV0H0rlzoeN5Z/Zkgh/8ya9GSrWDVP9oqdVz3m4obmquCLDIygsPaYpRXmfOtPSgvX2KzZ08sNLfcBZSh7eH2Ws7xcezWOntOcmAQNz5LvemqP7YuwtivMK/P4qrkME+LQPkSrSUR+rT99Zj+RQXisy91Cq9NbVBj6uQH7+I=,iv:W+oDp5Dun0g35BFprOmgfI0LoPME3HpPuuniCKA32Kc=,tag:CUU74HZuRNedyI3txn9D+g==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.8.1
|
||||
|
|
|
|||
|
|
@ -9,26 +9,22 @@ example_booleans:
|
|||
- ENC[AES256_GCM,data:Ul7fKA==,iv:U51FhTsWwkbhUWGsO8D+bl2mLdTIfapIB+OGJEOAiRA=,tag:9NJLKp8s2TSKLyXwM8OncA==,type:bool]
|
||||
- ENC[AES256_GCM,data:LVU1a90=,iv:1X1qV+8iIe1i5hIrqyB3tJew9hsHjJHlATmkEmwRA0Y=,tag:ko/5OwmJH/6HKPsvbkoRpw==,type:bool]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4KzMrV2dpWFQyQUQyV050
|
||||
elVhN0dUeTRodG1kNHZ0VEVmTUI1QjhidFJnClhJU0tVY0tmMkFaMDZkMDJOKzV1
|
||||
NVJiSERtR0VZR3VBOGVJbGk3cUxTMzAKLS0tIGhvMmIyOWQwVlhXRzYwampTeG5V
|
||||
UDVWQnE4NDY5cFF3RnpxcjhMY2N0VUUK+B24C0CT5b82DJSdKotX4iPhzWxnYsn6
|
||||
kS7Ut9uy5OwcB+p6erlbLMEUVmmSNw89KBrowT0Ui1d3AfyGAN4rqQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwTjh4NDRYZGM1VHRZWGor
|
||||
MmhFWDNvMjI4UUVPbnorNnpabGNZY1BuMVdrCisvZ0U5SXRPM3IzNlZvZEpWZktz
|
||||
b2FJemtNVHU0WUI4M0U1L2tWR3g1MEUKLS0tIGczTmVubzcwVjg5NDdQdEllWEFw
|
||||
TWRIRE5WSGRCbncvWlpEMmdWOW5kb00Kq79O2C4aYmZmrq+rbyMtwmEqkqL9epn/
|
||||
pw2dxXmYt95qu3x/BxjoN8RFZhabFp9xHkZ1kqJe9FGmBtAmoWXjWA==
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3ekx1bzluY0ZhYmhnRmhW
|
||||
b3pzM2RlKzFrREpMK3RNU1MweldNRXJ5NjE4CmNRbnFvbk1EN0V0ZWJiVzFmL3Jt
|
||||
N1Vpb3NEdXFzdzU4MjN1elp1RWZ5THcKLS0tIDR4cTFJNVFveEdxaEYvZndKbURa
|
||||
UHpaNENhL3c1K3RXc05hUmdNZVBpT2MKwBj4+Gb7giVJIoPWiwY3tvugEAexXy6Q
|
||||
YTWgZQZk96r5aF2mBjRCFCc7prj85PsUN/UXOPjPLVAFG3lwS0Eaog==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2023-09-10T20:20:18Z"
|
||||
mac: ENC[AES256_GCM,data:yfmYEo8pdlG3tu4Fabwde57igIvpt4UuhQqStVlV36rvPnv9dc42+6iduu+heuQ2OAVw0jk6/o6SWJpcms2DReOAMGDOgt+zV3TgJym52YdMcjTNJTo+4loULhvaWyN9ZdPJjSYKEoSgOZi+oMx4BpwreQEaPaYUxcbTqrWCUa8=,iv:Mb81sBxibRxSaC2kgakhy2pyEmW0MDobF+lHF7cny5E=,tag:DCqTWSnf5Gv5YfAGSEC2yw==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.7.3
|
||||
|
|
|
|||
30
nixos/shells/c/default.nix
Normal file
30
nixos/shells/c/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
description = "C Flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, flake-utils, nixpkgs }:
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
lib = import lib;
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in {
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = with pkgs; [
|
||||
cmake
|
||||
gcc
|
||||
gnumake
|
||||
valgrind
|
||||
|
||||
# You might want to use your own IDE.
|
||||
(jetbrains.plugins.addPlugins jetbrains.clion [ "github-copilot" ])
|
||||
];
|
||||
};
|
||||
});
|
||||
}
|
||||
26
nixos/shells/java/default.nix
Normal file
26
nixos/shells/java/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
description = "Java Flake";
|
||||
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils }:
|
||||
flake-utils.lib.eachDefaultSystem
|
||||
( system:
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in {
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = with pkgs; [
|
||||
jdk8
|
||||
openjdk17
|
||||
|
||||
# You might want to use your own IDE.
|
||||
(jetbrains.plugins.addPlugins jetbrains.idea-ultimate [ "github-copilot" ])
|
||||
];
|
||||
};
|
||||
});
|
||||
}
|
||||
24
nixos/shells/latex/default.nix
Normal file
24
nixos/shells/latex/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
description = "LaTeX Flake";
|
||||
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils}:
|
||||
flake-utils.lib.eachDefaultSystem
|
||||
(system:
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
};
|
||||
in {
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = with pkgs; [
|
||||
texlive.combined.scheme-full
|
||||
pgfplots
|
||||
biber
|
||||
];
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
24
nixos/shells/rust/default.nix
Normal file
24
nixos/shells/rust/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
description = "Rust Flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
};
|
||||
in {
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = with pkgs; [
|
||||
cargo
|
||||
rustc
|
||||
];
|
||||
shellHook = ''
|
||||
'';
|
||||
};
|
||||
});
|
||||
}
|
||||
|
|
@ -35,31 +35,29 @@ in {
|
|||
shell = pkgs.zsh;
|
||||
|
||||
packages = (with pkgs; [
|
||||
bitwarden-desktop
|
||||
cmdtime # Zsh plugin
|
||||
icosystem # Personal icon theme
|
||||
nextcloud-client
|
||||
spotify-adblock
|
||||
brave # Internet browser
|
||||
chafa # Terminal image viewer
|
||||
cmdtime # Zsh plugin
|
||||
duf # Df alternative
|
||||
feishin # Jellyfin music client
|
||||
foot
|
||||
fzf
|
||||
gh # GitHub CLI tool
|
||||
glow # Terminal Markdown renderer
|
||||
icosystem # Personal icon theme
|
||||
jellyfin-media-player
|
||||
libreoffice-fresh # Office tools
|
||||
librewolf # Internet browser
|
||||
mpv # Media player
|
||||
nextcloud-client
|
||||
nsxiv # Lightweight image viewer
|
||||
qalculate-gtk # Calculator
|
||||
spotify
|
||||
spotify-adblock
|
||||
unzip
|
||||
vifm # File manager
|
||||
zathura # PDF viewer
|
||||
zellij # Tmux + screen alternative
|
||||
zotero
|
||||
zsh
|
||||
zsh-autosuggestions
|
||||
zsh-syntax-highlighting
|
||||
|
|
|
|||
|
|
@ -32,11 +32,6 @@ in {
|
|||
recursive = true;
|
||||
source = ../../../stow/git/.config/git;
|
||||
};
|
||||
".config/hypr" = {
|
||||
inherit (config.sisyphus.desktop.hyprland) enable;
|
||||
recursive = true;
|
||||
source = ../../../stow/hyprland/.config/hypr;
|
||||
};
|
||||
".config/kitty" = {
|
||||
enable = false;
|
||||
recursive = true;
|
||||
|
|
@ -63,7 +58,7 @@ in {
|
|||
source = ../../../stow/swayidle/.config/swayidle;
|
||||
};
|
||||
".config/swaylock" = {
|
||||
enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable;
|
||||
inherit (config.sisyphus.desktop.sway) enable;
|
||||
source = ../../../stow/swaylock/.config/swaylock;
|
||||
};
|
||||
".config/vifm" = {
|
||||
|
|
@ -78,13 +73,14 @@ in {
|
|||
source = ../../../stow/zellij/.config/zellij;
|
||||
};
|
||||
".gnupg" = {
|
||||
inherit (config.programs.gnupg.agent) enable;
|
||||
enable = false;
|
||||
# inherit (config.programs.gnupg.agent) enable; # TODO Enable Me
|
||||
source = ../../../stow/gnupg/.gnupg;
|
||||
recursive = true;
|
||||
onChange = ''
|
||||
chmod 700 /home/tdpeuter/.gnupg
|
||||
# chmod 600 /home/tdpeuter/.gnupg/* # Already read-only?
|
||||
'';
|
||||
# onChange = ''
|
||||
# chmod 700 /home/tdpeuter/.gnupg
|
||||
# chmod 600 /home/tdpeuter/.gnupg/*
|
||||
# '';
|
||||
};
|
||||
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
|
||||
inherit (config.sisyphus.programs.ssh) enable;
|
||||
|
|
@ -103,10 +99,12 @@ in {
|
|||
}
|
||||
(lib.mkIf (config.users.users.tdpeuter.shell == pkgs.zsh) {
|
||||
".oh-my-zsh" = {
|
||||
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
|
||||
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh";
|
||||
recursive = true;
|
||||
};
|
||||
".oh-my-zsh/themes/tdpeuter.zsh-theme" = {
|
||||
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
|
||||
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme;
|
||||
};
|
||||
".zshrc" = {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ in {
|
|||
nativeMessagingHosts = with pkgs; [
|
||||
tridactyl-native
|
||||
];
|
||||
# https://mozilla.github.io/policy-templates/
|
||||
extraPolicies = {
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
|
|
@ -27,24 +26,7 @@ in {
|
|||
|
||||
# https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
|
||||
ExtensionSettings = {
|
||||
"amazon@search.mozilla.org".installation_mode = "blocked";
|
||||
"google@search.mozilla.org".installation_mode = "blocked";
|
||||
};
|
||||
|
||||
# Anything in about:config
|
||||
Preferences = let
|
||||
falseLocked = {
|
||||
Value = false;
|
||||
Status = "falseLocked";
|
||||
};
|
||||
in {
|
||||
"browser.newtabpage.activity-stream.showSponsoredCheckboxes" = falseLocked;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = falseLocked;
|
||||
"browser.newtabpage.pinned" = {
|
||||
Value = "[]";
|
||||
Status = "default";
|
||||
};
|
||||
"services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.showSponsoredTopSites" = falseLocked;
|
||||
"amazom@search.mozilla.org".installation_mode = "blocked";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -60,24 +42,12 @@ in {
|
|||
];
|
||||
|
||||
profiles.tdpeuter.search= {
|
||||
default = "ddg"; # Reference by id instead of by name
|
||||
default = "DuckDuckGo";
|
||||
force = true;
|
||||
engines = {
|
||||
"bing".metaData.hidden = true;
|
||||
"ebay".metaData.hidden = true;
|
||||
"Bing".metaData.hidden = true;
|
||||
"eBay".metaData.hidden = true;
|
||||
|
||||
"GitHub" = {
|
||||
urls = [{
|
||||
template = "https://github.com/search";
|
||||
params = [
|
||||
{ name = "q"; value = "{searchTerms}"; }
|
||||
{ name = "type"; value = "repositories"; }
|
||||
];
|
||||
}];
|
||||
|
||||
icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg";
|
||||
definedAliases = [ "@gh" ];
|
||||
};
|
||||
"Nix Packages" = {
|
||||
urls = [{
|
||||
template = "https://search.nixos.org/packages";
|
||||
|
|
@ -101,15 +71,17 @@ in {
|
|||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@no" ];
|
||||
};
|
||||
"Google Scholar" = {
|
||||
"GitHub" = {
|
||||
urls = [{
|
||||
template = "https://scholar.google.ch/scholar";
|
||||
template = "https://github.com/search";
|
||||
params = [
|
||||
{ name = "q"; value = "{searchTerms}"; }
|
||||
{ name = "type"; value = "repositories"; }
|
||||
];
|
||||
}];
|
||||
|
||||
definedAliases = [ "@gs" ];
|
||||
icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg";
|
||||
definedAliases = [ "@gh" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ in {
|
|||
};
|
||||
in {
|
||||
"UGent/HPC/ssh" = UGent;
|
||||
"UGent/Dwengo" = UGent;
|
||||
|
||||
# Git authentication
|
||||
"Gitea/ssh" = personal;
|
||||
|
|
@ -32,17 +33,9 @@ in {
|
|||
"UGent/SubGit/ssh" = UGent;
|
||||
|
||||
# HomeLab
|
||||
|
||||
# Physical hosts
|
||||
"HomeLab/Hugo/ssh" = HomeLab;
|
||||
"HomeLab/Roxanne/ghost/ssh" = HomeLab;
|
||||
"HomeLab/HTPC/ssh" = HomeLab;
|
||||
|
||||
# Virtual hosts
|
||||
"HomeLab/Gitea/ssh" = HomeLab;
|
||||
"HomeLab/Hugo/ssh" = HomeLab;
|
||||
"HomeLab/Nextcloud/ssh" = HomeLab;
|
||||
"HomeLab/Vaultwarden/ssh" = HomeLab;
|
||||
"HomeLab/NixOS/admin/ssh" = HomeLab;
|
||||
});
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,24 +19,15 @@ while getopts ":g" option; do
|
|||
if [ "${current_state}" == "${STOPPED_MSG}" ]; then
|
||||
state='disconnected'
|
||||
tooltip='Connect tailnet'
|
||||
|
||||
printf '{"alt": "%s", "tooltip": "%s", "class": "%s" }' \
|
||||
"${state}" "${tooltip}" "${state}"
|
||||
else
|
||||
state='connected'
|
||||
tooltip="${status:='Disconnect tailnet'}"
|
||||
|
||||
printf '{"alt": "%s", "tooltip": "<tt>%q</tt>", "class": "%s" }' \
|
||||
"${state}" "${tooltip}" "${state}"
|
||||
fi
|
||||
|
||||
printf '{"alt": "%s", "tooltip": "%q", "class": "%s" }' \
|
||||
"${state}" "${tooltip}" "${state}"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 'Invalid option'
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
monitor=desc:BOE 0x08CF,1920x1080@60.0,640x3240,1.0
|
||||
monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0
|
||||
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0
|
||||
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1
|
||||
monitor=desc:Samsung Electric Company SAMSUNG,1920x1080@60.0,640x0,0.6000000000000001
|
||||
monitor=desc:Samsung Electric Company SAMSUNG,disable
|
||||
|
|
@ -1,164 +0,0 @@
|
|||
|
||||
# TODO Do not hardcode this path
|
||||
plugin = /nix/store/afivj8v5kfdsadxs4pa45vh0y65s3ajm-hy3-hl0.49.0/lib/libhy3.so
|
||||
|
||||
general:layout = hy3
|
||||
|
||||
plugin {
|
||||
hy3 {
|
||||
# disable gaps when only one window is onscreen
|
||||
# 0 - always show gaps
|
||||
# 1 - hide gaps with a single window onscreen
|
||||
# 2 - 1 but also show the window border
|
||||
no_gaps_when_only = 1 # default: 0
|
||||
|
||||
# policy controlling what happens when a node is removed from a group,
|
||||
# leaving only a group
|
||||
# 0 = remove the nested group
|
||||
# 1 = keep the nested group
|
||||
# 2 = keep the nested group only if its parent is a tab group
|
||||
node_collapse_policy = 2 # default: 2
|
||||
|
||||
# offset from group split direction when only one window is in a group
|
||||
group_inset = 10 # default: 10
|
||||
|
||||
# if a tab group will automatically be created for the first window spawned in a workspace
|
||||
tab_first_window = false
|
||||
|
||||
# tab group settings
|
||||
tabs {
|
||||
# height of the tab bar
|
||||
height = 10 # default: 22
|
||||
|
||||
# padding between the tab bar and its focused node
|
||||
padding = 0 # default: 6
|
||||
|
||||
# the tab bar should animate in/out from the top instead of below the window
|
||||
from_top = false # default: false
|
||||
|
||||
# radius of tab bar corners
|
||||
radius = 0 # default: 6
|
||||
|
||||
# tab bar border width
|
||||
border_width = 2 # default: 2
|
||||
|
||||
# render the window title on the bar
|
||||
render_text = false # default: true
|
||||
|
||||
# center the window title
|
||||
text_center = true # default: true
|
||||
|
||||
# font to render the window title with
|
||||
text_font = Sans # default: Sans
|
||||
|
||||
# height of the window title
|
||||
text_height = 8 # default: 8
|
||||
|
||||
# left padding of the window title
|
||||
text_padding = 3 # default: 3
|
||||
|
||||
# active tab bar segment colors
|
||||
#col.active = <color> # default: rgba(33ccff40)
|
||||
#col.active.border = <color> # default: rgba(33ccffee)
|
||||
#col.active.text = <color> # default: rgba(ffffffff)
|
||||
|
||||
# active tab bar segment colors for bars on an unfocused monitor
|
||||
#col.active_alt_monitor = <color> # default: rgba(60606040)
|
||||
#col.active_alt_monitor.border = <color> # default: rgba(808080ee)
|
||||
#col.active_alt_monitor.text = <color> # default: rgba(ffffffff)
|
||||
|
||||
# focused tab bar segment colors (focused node in unfocused container)
|
||||
#col.focused = <color> # default: rgba(60606040)
|
||||
#col.focused.border = <color> # default: rgba(808080ee)
|
||||
#col.focused.text = <color> # default: rgba(ffffffff)
|
||||
|
||||
# inactive tab bar segment colors
|
||||
col.inactive = rgba(a6a6a620) # default: rgba(30303020)
|
||||
col.inactive.border = rgba(a6a6a6aa) # default: rgba(606060aa)
|
||||
#col.inactive.text = <color> # default: rgba(ffffffff)
|
||||
|
||||
# urgent tab bar segment colors
|
||||
#col.urgent = <color> # default: rgba(ff223340)
|
||||
#col.urgent.border = <color> # default: rgba(ff2233ee)
|
||||
#col.urgent.text = <color> # default: rgba(ffffffff)
|
||||
|
||||
# urgent tab bar segment colors
|
||||
#col.locked = <color> # default: rgba(90903340)
|
||||
#col.locked.border = <color> # default: rgba(909033ee)
|
||||
#col.locked.text = <color> # default: rgba(ffffffff)
|
||||
|
||||
# if tab backgrounds should be blurred
|
||||
# Blur is only visible when the above colors are not opaque.
|
||||
blur = true # default: true
|
||||
|
||||
# opacity multiplier for tabs
|
||||
# Applies to blur as well as the given colors.
|
||||
opacity = 1.0 # default: 1.0
|
||||
}
|
||||
|
||||
# autotiling settings
|
||||
autotile {
|
||||
# enable autotile
|
||||
enable = true # default: false
|
||||
|
||||
# make autotile-created groups ephemeral
|
||||
ephemeral_groups = true # default: true
|
||||
|
||||
# if a window would be squished smaller than this width, a vertical split will be created
|
||||
# -1 = never automatically split vertically
|
||||
# 0 = always automatically split vertically
|
||||
# <number> = pixel width to split at
|
||||
trigger_width = -1 # default: 0
|
||||
|
||||
# if a window would be squished smaller than this height, a horizontal split will be created
|
||||
# -1 = never automatically split horizontally
|
||||
# 0 = always automatically split horizontally
|
||||
# <number> = pixel height to split at
|
||||
trigger_height = 0 # default: 0
|
||||
|
||||
# a space or comma separated list of workspace ids where autotile should be enabled
|
||||
# it's possible to create an exception rule by prefixing the definition with "not:"
|
||||
# workspaces = 1,2 # autotiling will only be enabled on workspaces 1 and 2
|
||||
# workspaces = not:1,2 # autotiling will be enabled on all workspaces except 1 and 2
|
||||
workspaces = all # default: all
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Keybinds
|
||||
|
||||
# Navigation
|
||||
|
||||
# Focus
|
||||
|
||||
# First, unbind default
|
||||
unbind = $flag, $up
|
||||
unbind = $flag, $right
|
||||
unbind = $flag, $down
|
||||
unbind = $flag, $left
|
||||
|
||||
unbind = $flag, up
|
||||
unbind = $flag, right
|
||||
unbind = $flag, down
|
||||
unbind = $flag, left
|
||||
|
||||
bind = $flag, $up, hy3:movefocus, u
|
||||
bind = $flag, $right, hy3:movefocus, r
|
||||
bind = $flag, $down, hy3:movefocus, d
|
||||
bind = $flag, $left, hy3:movefocus, l
|
||||
|
||||
bind = $flag, up, hy3:movefocus, u
|
||||
bind = $flag, right, hy3:movefocus, r
|
||||
bind = $flag, down, hy3:movefocus, d
|
||||
bind = $flag, left, hy3:movefocus, l
|
||||
|
||||
# Layout
|
||||
bind = $flag, z, hy3:changegroup, opposite
|
||||
bind = $flag, x, hy3:changegroup, toggletab
|
||||
bind = $flag, c, hy3:changegroup, h
|
||||
bind = $flag, v, hy3:changegroup, v
|
||||
|
||||
bind = $flag, p, hy3:changefocus, raise
|
||||
bind = $flag+Shift, p, hy3:changefocus, lower
|
||||
bind = $flag, space, hy3:togglefocuslayer
|
||||
|
||||
|
|
@ -1,279 +0,0 @@
|
|||
# ~/.config/hypr/hyperland.conf
|
||||
|
||||
general {
|
||||
border_size = 1
|
||||
no_border_on_floating = false
|
||||
|
||||
gaps_in = 3
|
||||
gaps_out = 5
|
||||
gaps_workspaces = 0
|
||||
|
||||
col.inactive_border = 0xff444444
|
||||
col.active_border = 0xffffffff
|
||||
col.nogroup_border = 0xffff00ff
|
||||
|
||||
layout = dwindle
|
||||
|
||||
no_focus_fallback = true
|
||||
|
||||
resize_on_border = true
|
||||
extend_border_grab_area = 5
|
||||
hover_icon_on_border = true
|
||||
|
||||
allow_tearing = false
|
||||
|
||||
resize_corner = 0
|
||||
|
||||
snap {
|
||||
enabled = false
|
||||
window_gap = 10
|
||||
monitor_gap = 10
|
||||
border_overlap = false
|
||||
}
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 0
|
||||
# rounding_power = 4.0
|
||||
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
fullscreen_opacity = 1.0
|
||||
dim_inactive = false
|
||||
dim_strength = 0.5
|
||||
dim_special = 0.2
|
||||
dim_around = 0.4
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
|
||||
size = 8
|
||||
passes = 1
|
||||
noise = 0.01
|
||||
contrast = 0.8
|
||||
brightness = 0.8
|
||||
vibrancy = 0.0
|
||||
vibrancy_darkness = 0.0
|
||||
|
||||
ignore_opacity = true
|
||||
new_optimizations = true
|
||||
xray = true
|
||||
special = false
|
||||
popups = false
|
||||
# input_methods = false
|
||||
}
|
||||
|
||||
shadow {
|
||||
enabled = false
|
||||
|
||||
range = 4
|
||||
render_power = 3
|
||||
sharp = false
|
||||
|
||||
ignore_window = true
|
||||
|
||||
color = 0xee1a1a1a
|
||||
color_inactive = 0xee1a1a1a
|
||||
# offset = [0,0]
|
||||
scale = 1.0
|
||||
}
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = false
|
||||
first_launch_animation = true
|
||||
}
|
||||
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
workspace_swipe_fingers = 3
|
||||
workspace_swipe_min_fingers = false
|
||||
workspace_swipe_distance = 300
|
||||
workspace_swipe_invert = true
|
||||
workspace_swipe_min_speed_to_force = 30
|
||||
workspace_swipe_cancel_ratio = 0.2
|
||||
workspace_swipe_direction_lock = true
|
||||
workspace_swipe_direction_lock_threshold = 10
|
||||
|
||||
workspace_swipe_touch = false
|
||||
workspace_swipe_touch_invert = false
|
||||
|
||||
workspace_swipe_create_new = false
|
||||
|
||||
workspace_swipe_forever = true
|
||||
|
||||
workspace_swipe_use_r = false
|
||||
}
|
||||
|
||||
group {
|
||||
auto_group = true
|
||||
insert_after_current = true
|
||||
focus_removed_window = true
|
||||
drag_into_group = 1
|
||||
merge_groups_on_drag = true
|
||||
merge_groups_on_groupbar = true
|
||||
merge_floated_into_tiled_on_groupbar = false
|
||||
group_on_movetoworkspace = false
|
||||
|
||||
col.border_active = 0x66ffff00
|
||||
col.border_inactive = 0x66777700
|
||||
col.border_locked_active = 0x66ff5500
|
||||
col.border_locked_inactive = 0x66775500
|
||||
|
||||
groupbar {
|
||||
enabled = true
|
||||
font_family = misc:font_family
|
||||
font_size = 8
|
||||
gradients = true
|
||||
height = 14
|
||||
stacked = false
|
||||
priority = 3
|
||||
render_titles = false
|
||||
scrolling = true
|
||||
|
||||
text_color = 0xffffffff
|
||||
|
||||
col.active = 0x66ffff00
|
||||
col.inactive = 0x66777700
|
||||
col.locked_active = 0x66ff5500
|
||||
col.locked_inactive = 0x66775500
|
||||
}
|
||||
}
|
||||
|
||||
misc {
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
|
||||
col.splash = 0xffffffff
|
||||
|
||||
font_family = Letter
|
||||
# splash_font_family =
|
||||
force_default_wallpaper = -1
|
||||
vfr = true
|
||||
vrr = 1
|
||||
mouse_move_enables_dpms = false
|
||||
key_press_enables_dpms = true
|
||||
always_follow_on_dnd = true
|
||||
layers_hog_keyboard_focus = true
|
||||
animate_manual_resizes = false
|
||||
animate_mouse_windowdragging = false
|
||||
disable_autoreload = true
|
||||
enable_swallow = false
|
||||
# swallow_regex =
|
||||
# swallow_exception_regex =
|
||||
focus_on_activate = true
|
||||
mouse_move_focuses_monitor = true
|
||||
render_ahead_of_time = false
|
||||
render_ahead_safezone = 1
|
||||
allow_session_lock_restore = false
|
||||
background_color = 0x018281
|
||||
close_special_on_empty = true
|
||||
new_window_takes_over_fullscreen = 2
|
||||
exit_window_retains_fullscreen = false
|
||||
initial_workspace_tracking = 1
|
||||
middle_click_paste = false
|
||||
render_unfocused_fps = 12
|
||||
disable_xdg_env_checks = false
|
||||
# disable_hyprland_qtutils_check = false
|
||||
# lockdead_screen_delay = 1000
|
||||
}
|
||||
|
||||
binds {
|
||||
pass_mouse_when_bound = false
|
||||
scroll_event_delay = 300
|
||||
workspace_back_and_forth = false
|
||||
allow_workspace_cycles = false
|
||||
workspace_center_on = 1
|
||||
focus_preferred_method = 0
|
||||
ignore_group_lock = false
|
||||
# movefocus_cycles_fullscreen = true
|
||||
# movefocus_cycles_groupfirst = false
|
||||
disable_keybind_grabbing = false
|
||||
window_direction_monitor_fallback = true
|
||||
# allow_pin_fullscreen = true
|
||||
}
|
||||
|
||||
xwayland {
|
||||
enabled = true
|
||||
use_nearest_neighbor = true
|
||||
force_zero_scaling = false
|
||||
}
|
||||
|
||||
opengl {
|
||||
nvidia_anti_flicker = false
|
||||
}
|
||||
|
||||
render {
|
||||
explicit_sync = 2
|
||||
explicit_sync_kms = 2
|
||||
direct_scanout = false
|
||||
expand_undersized_textures = true
|
||||
# xp_mode = false
|
||||
# ctm_animation = 2
|
||||
# allow_early_buffer_release = true
|
||||
}
|
||||
|
||||
cursor {
|
||||
sync_gsettings_theme = true
|
||||
no_hardware_cursors = false
|
||||
no_break_fs_vrr = false
|
||||
min_refresh_rate = 24
|
||||
hotspot_padding = 1
|
||||
inactive_timeout = 10
|
||||
no_warps = false
|
||||
persistent_warps = false
|
||||
warp_on_change_workspace = 0
|
||||
# default_monitor =
|
||||
zoom_factor = 1.0
|
||||
zoom_rigid = false
|
||||
# enable_hypercursor = false
|
||||
hide_on_key_press = true
|
||||
hide_on_touch = true
|
||||
# use_cpu_buffer = 2
|
||||
# warp_back_after_non_mouse_input = false
|
||||
}
|
||||
|
||||
ecosystem {
|
||||
# no_update_news = false
|
||||
# no_donation_nag = true
|
||||
}
|
||||
|
||||
exec-once = gnome-keyring-daemon --start --components=secrets
|
||||
exec-once = dunst --verbosity crit
|
||||
exec-once = waycorner
|
||||
exec-once = waybar
|
||||
|
||||
# TODO Replace with something else?
|
||||
exec-once = wlsunset -t 2500 -l 50.51 -L 4.21
|
||||
|
||||
exec-once = nextcloud --background
|
||||
|
||||
# Turn volume off at boot
|
||||
exec-once = bash -c 'for i in $(seq 1 10); do pactl set-sink-mute @DEFAULT_SINK@ 1 && break; sleep 1; done'
|
||||
|
||||
# STYLING
|
||||
exec-once = swaybg -i "${HOME}/.local/state/sisyphus/bg" --mode=fill
|
||||
env = XCURSOR_SIZE,24
|
||||
|
||||
# SHIFT CAPS CTRL/CONTROL ALT MOD2 MOD3 SUPER/WIN/LOGO/MOD4 MOD5
|
||||
$flag = MOD4
|
||||
|
||||
$left = h
|
||||
$down = j
|
||||
$up = k
|
||||
$right = l
|
||||
|
||||
$term = foot
|
||||
$menu = j4-dmenu-desktop --dmenu="rofi -dmenu -i" --no-generic --usage-log="/home/tdpeuter/.local/state/dmenu.log" --term=$term
|
||||
$lock = swaylock --daemonize
|
||||
|
||||
# https://wiki.hyprland.org/Nvidia/#environment-variables
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = NVD_BACKEND,direct
|
||||
|
||||
source = /home/tdpeuter/.config/hypr/input-output.conf
|
||||
source = /home/tdpeuter/.config/hypr/keybinds.conf
|
||||
source = /home/tdpeuter/.config/hypr/modes.conf
|
||||
source = /home/tdpeuter/.config/hypr/hy3.conf # Sway tiling plugin
|
||||
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
# ~/.config/hypr/input-output.conf
|
||||
|
||||
input {
|
||||
kb_layout = us,be,us
|
||||
kb_variant = altgr-intl,iso-alternate,dvorak
|
||||
|
||||
numlock_by_default = true
|
||||
resolve_binds_by_sym = false
|
||||
|
||||
repeat_rate = 25
|
||||
repeat_delay = 600
|
||||
|
||||
sensitivity = 0.0
|
||||
accel_profile = flat
|
||||
force_no_accel = false
|
||||
|
||||
left_handed = false
|
||||
scroll_method = 2fg
|
||||
scroll_button_lock = true
|
||||
scroll_factor = 1.0
|
||||
natural_scroll = false
|
||||
|
||||
follow_mouse = 2
|
||||
focus_on_close = 0
|
||||
mouse_refocus = true
|
||||
float_switch_override_focus = 1
|
||||
special_fallthrough = false
|
||||
off_window_axis_events = 1
|
||||
emulate_discrete_scroll = 1
|
||||
|
||||
touchpad {
|
||||
disable_while_typing = true
|
||||
natural_scroll = true
|
||||
scroll_factor = 0.8
|
||||
middle_button_emulation = false
|
||||
tap_button_map = lrm
|
||||
clickfinger_behavior = false
|
||||
tap-to-click = true
|
||||
drag_lock = false
|
||||
tap-and-drag = true
|
||||
}
|
||||
}
|
||||
|
||||
device {
|
||||
name = at-translated-set-2-keyboard
|
||||
numlock_by_default = false
|
||||
}
|
||||
|
||||
monitor = , preferred, auto, 1
|
||||
|
||||
monitor = desc:BOE 0x08CF, preferred, 640x1440, 1
|
||||
monitor = desc:Hewlett Packard HP ZR2740w CNT319Y008, preferred, auto-up, 1
|
||||
# Vertical monitors
|
||||
monitor = desc:Dell Inc. DELL P2214H 29C2937M4YTL, preferred, auto-right, 1, transform, 1
|
||||
monitor = desc:Samsung Electric Company S22C650, preferred, auto-right, 1, transform, 1
|
||||
|
||||
# TV
|
||||
monitor = desc:Samsung Electric Company SAMSUNG, disable
|
||||
|
||||
bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable"
|
||||
bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, enable"
|
||||
|
||||
|
|
@ -1,180 +0,0 @@
|
|||
$notify = "${SCRIPT_DIR}/notify.sh"
|
||||
|
||||
# Navigation
|
||||
|
||||
# Focus
|
||||
bind = $flag, $up, movefocus, u
|
||||
bind = $flag, $right, movefocus, r
|
||||
bind = $flag, $down, movefocus, d
|
||||
bind = $flag, $left, movefocus, l
|
||||
|
||||
bind = $flag, up, movefocus, u
|
||||
bind = $flag, right, movefocus, r
|
||||
bind = $flag, down, movefocus, d
|
||||
bind = $flag, left, movefocus, l
|
||||
|
||||
# Move windows
|
||||
bind = $flag+Shift, $up, movewindow, u
|
||||
bind = $flag+Shift, $right, movewindow, r
|
||||
bind = $flag+Shift, $down, movewindow, d
|
||||
bind = $flag+Shift, $left, movewindow, l
|
||||
|
||||
bind = $flag+Shift, up, movewindow, u
|
||||
bind = $flag+Shift, right, movewindow, r
|
||||
bind = $flag+Shift, down, movewindow, d
|
||||
bind = $flag+Shift, left, movewindow, l
|
||||
|
||||
# $flag+Next move scratchpad
|
||||
# $flag+KP_Next move scratchpad
|
||||
# $flag+Prior scratchpad show
|
||||
# $flag+KP_Prior scratchpad show
|
||||
bind = $flag, Next, movetoworkspace, special:scratchpad
|
||||
bind = $flag, KP_Next, movetoworkspace, special:scratchpad
|
||||
|
||||
bind = $flag, Prior, togglespecialworkspace, special:scratchpad
|
||||
bind = $flag, Prior, movetoworkspace, special:scratchpad
|
||||
bind = $flag, Prior, togglespecialworkspace, special:scratchpad
|
||||
|
||||
# bind = $flag, Next, movetoworkspace, special:magic
|
||||
# bind = $flag, Next, togglespecialworkspace, magic
|
||||
|
||||
# bind = $flag, KP_Next, togglespecialworkspace, magic
|
||||
# bind = $flag, KP_Next, movetoworkspace, +0
|
||||
# bind = $flag, KP_Next, togglespecialworkspace, magic
|
||||
# bind = $flag, KP_Next, movetoworkspace, special:magic
|
||||
# bind = $flag, KP_Next, togglespecialworkspace, magic
|
||||
|
||||
# Layouts
|
||||
bind = $flag, f, togglefloating
|
||||
bind = $flag+Shift, f, settiled
|
||||
|
||||
bind = $flag, s, pin
|
||||
bind = $flag, s, setfloating
|
||||
bind = $flag+Shift, s, pin
|
||||
bind = $flag+Shift, s, settiled
|
||||
|
||||
bind = $flag, F11, fullscreen, 1
|
||||
bind = $flag+Shift, F11, fullscreen, 0
|
||||
|
||||
# Workspaces
|
||||
|
||||
$ws1 = 1
|
||||
$ws2 = 2
|
||||
$ws3 = 3
|
||||
$ws4 = 4
|
||||
$ws5 = 5
|
||||
$ws6 = 6
|
||||
$ws7 = 7
|
||||
$ws8 = 8
|
||||
$ws9 = 9
|
||||
$ws10 = 10
|
||||
$ws11 = 11
|
||||
$ws12 = 12
|
||||
|
||||
# Focus a specific workspace
|
||||
bind = $flag, 1, workspace, $ws1
|
||||
bind = $flag, 2, workspace, $ws2
|
||||
bind = $flag, 3, workspace, $ws3
|
||||
bind = $flag, 4, workspace, $ws4
|
||||
bind = $flag, 5, workspace, $ws5
|
||||
bind = $flag, 6, workspace, $ws6
|
||||
bind = $flag, 7, workspace, $ws7
|
||||
bind = $flag, 8, workspace, $ws8
|
||||
bind = $flag, 9, workspace, $ws9
|
||||
bind = $flag, 0, workspace, $ws10
|
||||
bind = $flag, minus, workspace, $ws11
|
||||
bind = $flag, equal, workspace, $ws12
|
||||
|
||||
# Move window to a specific workspace
|
||||
bind = $flag+Shift, 1, movetoworkspace, $ws1
|
||||
bind = $flag+Shift, 2, movetoworkspace, $ws2
|
||||
bind = $flag+Shift, 3, movetoworkspace, $ws3
|
||||
bind = $flag+Shift, 4, movetoworkspace, $ws4
|
||||
bind = $flag+Shift, 5, movetoworkspace, $ws5
|
||||
bind = $flag+Shift, 6, movetoworkspace, $ws6
|
||||
bind = $flag+Shift, 7, movetoworkspace, $ws7
|
||||
bind = $flag+Shift, 8, movetoworkspace, $ws8
|
||||
bind = $flag+Shift, 9, movetoworkspace, $ws9
|
||||
bind = $flag+Shift, 0, movetoworkspace, $ws10
|
||||
bind = $flag+Shift, Minus, movetoworkspace, $ws11
|
||||
bind = $flag+Shift, Equal, movetoworkspace, $ws12
|
||||
|
||||
# Go through workspaces in order
|
||||
bind = $flag+Ctrl, $left, workspace, e-1
|
||||
bind = $flag+Ctrl, $right, workspace, e+1
|
||||
|
||||
bind = $flag+Ctrl, left, workspace, e-1
|
||||
bind = $flag+Ctrl, right, workspace, e+1
|
||||
|
||||
bind = $flag+Ctrl+Shift, $left, movetoworkspace, e-1
|
||||
bind = $flag+Ctrl+Shift, $right, movetoworkspace, e+1
|
||||
|
||||
bind = $flag+Ctrl+Shift, left, movetoworkspace, e-1
|
||||
bind = $flag+Ctrl+Shift, right, movetoworkspace, e+1
|
||||
|
||||
# GNOME-like keybinds
|
||||
bind = $flag+Alt, $left, workspace, e-1
|
||||
bind = $flag+Alt, $right, workspace, e+1
|
||||
|
||||
bind = $flag+Alt, left, workspace, e-1
|
||||
bind = $flag+Alt, right, workspace, e+1
|
||||
|
||||
bind = $flag+Alt+Shift, $left, movetoworkspace, e-1
|
||||
bind = $flag+Alt+Shift, $right, movetoworkspace, e+1
|
||||
|
||||
bind = $flag+Alt+Shift, left, movetoworkspace, e-1
|
||||
bind = $flag+Alt+Shift, right, movetoworkspace, e+1
|
||||
|
||||
# System
|
||||
|
||||
# Brightness
|
||||
bind = , XF86MonBrightnessDown, exec, brightnessctl -e s 5%- && $notify -b
|
||||
bind = , XF86MonBrightnessUp, exec, brightnessctl -e s +5% && $notify -b
|
||||
|
||||
# Audio
|
||||
bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 2%+ && $notify -v
|
||||
bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- && $notify -v
|
||||
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && $notify -v
|
||||
bind = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
|
||||
# Media
|
||||
bind = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bind = , XF86AudioPrev, exec, playerctl previous
|
||||
bind = , XF86AudioNext, exec, playerctl next
|
||||
|
||||
bind = Shift, XF86AudioMute, exec, playerctl play-pause
|
||||
bind = Shift, XF86AudioLowerVolume, exec, playerctl previous
|
||||
bind = Shift, XF86AudioRaiseVolume, exec, playerctl next
|
||||
|
||||
# Other special keys
|
||||
bind = , XF86Calculator, exec, qalculate-gtk
|
||||
|
||||
# Shortcuts
|
||||
|
||||
# Reload
|
||||
bind = Alt+Shift, r, exec, "hyperctl reload"
|
||||
bind = Ctrl+Alt+Shift, r, forcerendererreload
|
||||
bind = Alt+Shift, e, exit
|
||||
|
||||
# Kill a window
|
||||
bind = $flag, q, closewindow, activewindow
|
||||
|
||||
# Start a terminal
|
||||
bind = $flag, Return, exec, $term
|
||||
bind = CTRL&ALT, T, exec, $term
|
||||
# Application menu
|
||||
bind = Alt, Space, exec, $menu
|
||||
bind = Alt, Tab, focuscurrentorlast
|
||||
|
||||
bind = $flag, e, exec, $term -e vifm
|
||||
bind = Ctrl+Shift, Escape, exec, $term -e zenith
|
||||
|
||||
bind = Ctrl+Shift, a, exec, notify-send "hole!" && hyprctl setcursor _ 87 && sleep 5 && hyprctl setcursor _ 24
|
||||
|
||||
# bind = $flag, mouse_up, movefocus, l
|
||||
bind = SUPER, mouse_down, workspace, e-1
|
||||
bind = SUPER, mouse_up, workspace, e+1
|
||||
# bind = $flag, mouse_down, movefocus, r
|
||||
|
||||
bind = $flag, Delete, exec, $lock
|
||||
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
# System actions
|
||||
$mode_system = System (l)ock, (s)leep, (h)ibernate, (r)eboot, (Shift+s)hutdown
|
||||
bind = Ctrl+Alt, Delete, submap, $mode_system
|
||||
submap = $mode_system
|
||||
|
||||
bind = , l, exec, $lock
|
||||
bind = , l, submap, reset
|
||||
bind = , s, exec, $lock, exec, systemctl suspend
|
||||
bind = , s, submap, reset
|
||||
bind = , h, exec, $lock, exec, systemctl hibernate
|
||||
bind = , h, submap, reset
|
||||
bind = , r, exec, systemctl reboot
|
||||
bind = Shift, s, exec, systemctl poweroff -i
|
||||
|
||||
bind = Ctrl+Alt, Delete, submap, reset
|
||||
bind = , Escape, submap, reset
|
||||
bind = , Return, submap, reset
|
||||
|
||||
submap = reset
|
||||
|
||||
# Launcher
|
||||
$mode_launcher = Launch (f)irefox, (t)hunderbird, (l)ogseq.
|
||||
bind = $flag, O, submap, $mode_launcher
|
||||
submap = $mode_launcher
|
||||
|
||||
bind = , F, exec, firefox
|
||||
bind = , F, submap, reset
|
||||
bind = , L, exec, logseq
|
||||
bind = , L, submap, reset
|
||||
bind = , T, exec, thunderbird
|
||||
bind = , T, submap, reset
|
||||
|
||||
bind = $flag, O, submap, reset
|
||||
bind = , Escape, submap, reset
|
||||
bind = , Return, submap, reset
|
||||
|
||||
submap = reset
|
||||
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
# Generated by nwg-displays on 2025-01-27 at 13:58:39. Do not edit manually.
|
||||
|
||||
monitor=desc:BOE 0x08CF,1920x1080@60.0,0x0,1.0
|
||||
monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0
|
||||
monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,disable
|
||||
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0
|
||||
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1
|
||||
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,disable
|
||||
monitor=desc:Samsung Electric Company SAMSUNG,0x0@60.0,-1x-1,1.0
|
||||
monitor=desc:Samsung Electric Company SAMSUNG,disable
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
monitor=desc:BOE 0x08CF,1920x1080@60.0,0x0,1.0
|
||||
monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0
|
||||
monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,disable
|
||||
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0
|
||||
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1
|
||||
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,disable
|
||||
monitor=desc:Samsung Electric Company SAMSUNG,0x0@60.0,-1x-1,1.0
|
||||
monitor=desc:Samsung Electric Company SAMSUNG,disable
|
||||
|
||||
|
|
@ -4,6 +4,12 @@ Host HPC
|
|||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/UGent/HPC/ssh
|
||||
|
||||
Host Dwengo
|
||||
User tibo
|
||||
HostName sel2-1.ugent.be
|
||||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/UGent/Dwengo
|
||||
|
||||
# Git authentication
|
||||
Host git.depeuter.dev
|
||||
User git
|
||||
|
|
@ -31,59 +37,20 @@ Host subgit.ugent.be
|
|||
CanonicalizeHostname yes # Ignore capitalization
|
||||
|
||||
# HomeLab
|
||||
Host Gitea
|
||||
User admin
|
||||
HostName 192.168.0.24
|
||||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/HomeLab/Gitea/ssh
|
||||
|
||||
# Physical hosts
|
||||
Host Hugo
|
||||
User admin
|
||||
HostName 192.168.0.11
|
||||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/HomeLab/Hugo/ssh
|
||||
|
||||
Host Roxanne
|
||||
User ghost
|
||||
Hostname 192.168.0.13
|
||||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/HomeLab/Roxanne/ghost/ssh
|
||||
|
||||
Host HTPC
|
||||
User root
|
||||
Hostname 192.168.0.88
|
||||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/HomeLab/HTPC/ssh
|
||||
|
||||
# Virtual hosts
|
||||
Host Gitea
|
||||
User gh0st
|
||||
HostName 192.168.0.24
|
||||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/HomeLab/Gitea/ssh
|
||||
|
||||
Host Nextcloud
|
||||
User administrator
|
||||
Hostname 192.168.0.14
|
||||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/HomeLab/Nextcloud/ssh
|
||||
|
||||
Host Vaultwarden
|
||||
User gh0st
|
||||
Hostname 192.168.0.22
|
||||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/HomeLab/Vaultwarden/ssh
|
||||
|
||||
Host Binnenpost
|
||||
User admin
|
||||
Hostname 192.168.0.89
|
||||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/HomeLab/NixOS/admin/ssh
|
||||
|
||||
Host Development
|
||||
User admin
|
||||
Hostname 192.168.0.91
|
||||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/HomeLab/NixOS/admin/ssh
|
||||
|
||||
Host Testing
|
||||
User admin
|
||||
Hostname 192.168.0.92
|
||||
IdentitiesOnly yes
|
||||
IdentityFile /run/secrets/HomeLab/Nixos/admin/ssh
|
||||
|
|
|
|||
|
|
@ -2,23 +2,21 @@
|
|||
# .config/swaylock/config
|
||||
#
|
||||
|
||||
#indicator
|
||||
#indicator-radius=200
|
||||
#
|
||||
#clock
|
||||
#datestr=%A, %B %d %Y
|
||||
#
|
||||
#show-failed-attempts
|
||||
#
|
||||
#screenshots
|
||||
#effect-pixelate=10
|
||||
#effect-vignette=0.75:0 # Darken the whole screen.
|
||||
#fade-in=0.25
|
||||
#
|
||||
#grace=7 # Allow to unlock without password for duration
|
||||
#grace-no-mouse
|
||||
indicator
|
||||
indicator-radius=200
|
||||
|
||||
image=${ASSETS_DIR}/bluescreen.png
|
||||
clock
|
||||
datestr=%A, %B %d %Y
|
||||
|
||||
show-failed-attempts
|
||||
|
||||
screenshots
|
||||
effect-pixelate=10
|
||||
effect-vignette=0.75:0 # Darken the whole screen.
|
||||
fade-in=0.25
|
||||
|
||||
grace=7 # Allow to unlock without password for duration
|
||||
grace-no-mouse
|
||||
|
||||
# Styling
|
||||
|
||||
|
|
|
|||
|
|
@ -40,14 +40,11 @@
|
|||
"sway/window",
|
||||
"group/workspaces",
|
||||
"custom/scratchpad-indicator",
|
||||
"group/mode"
|
||||
],
|
||||
"modules-center": [
|
||||
"mpris"
|
||||
],
|
||||
"modules-right": [
|
||||
"keyboard-state#numlock",
|
||||
"keyboard-state#capslock",
|
||||
"privacy",
|
||||
"tray",
|
||||
"group/control-center",
|
||||
|
|
|
|||
|
|
@ -90,21 +90,21 @@
|
|||
"format": "\uf09c", /* */
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Lock device",
|
||||
"on-click": "swaylock --daemonize"
|
||||
"on-click": "swaylock -f"
|
||||
},
|
||||
|
||||
"custom/system-sleep": {
|
||||
"format": "\uf186", /* */
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Put device to sleep",
|
||||
"on-click": "swaylock --daemonize; systemctl suspend"
|
||||
"on-click": "swaylock -f; systemctl suspend"
|
||||
},
|
||||
|
||||
"custom/system-hibernate": {
|
||||
"format": "\uf2dc", /* */
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Hibernate device",
|
||||
"on-click": "swaylock --daemonize; systemctl hibernate"
|
||||
"on-click": "swaylock -f; systemctl hibernate"
|
||||
},
|
||||
|
||||
"custom/system-reboot": {
|
||||
|
|
@ -122,10 +122,9 @@
|
|||
},
|
||||
|
||||
"custom/toggle-light-dark": {
|
||||
"exec": "bash ${SCRIPT_DIR}/toggle-light-dark.sh -g",
|
||||
"interval": 60,
|
||||
"exec": "sleep 1 && bash ~/projects/sisyphus/scripts/toggle-light-dark.sh -g",
|
||||
"return-type": "json",
|
||||
"on-click": "bash ${SCRIPT_DIR}/toggle-light-dark.sh",
|
||||
"on-click": "bash ~/projects/sisyphus/scripts/toggle-light-dark.sh",
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"default": "\uf185",
|
||||
|
|
@ -135,23 +134,21 @@
|
|||
},
|
||||
|
||||
"custom/toggle-notifications": {
|
||||
"exec": "bash ${SCRIPT_DIR}/toggle-notifications.sh -g",
|
||||
"interval": 60,
|
||||
"exec": "sleep 6 && bash ~/projects/sisyphus/scripts/toggle-notifications.sh -g",
|
||||
"return-type": "json",
|
||||
"on-click": "bash ${SCRIPT_DIR}/toggle-notifications.sh",
|
||||
"format": "{icon}",
|
||||
"on-click": "bash ~/projects/sisyphus/scripts/toggle-notifications.sh",
|
||||
"format": "NOTIS {icon}",
|
||||
"format-icons": {
|
||||
"normal": "\uf0f3", /* */
|
||||
"paused": "\uf1f6" /* */
|
||||
"normal": "NRML",
|
||||
"paused": "PAISED"
|
||||
},
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
"custom/toggle-tailscale": {
|
||||
"exec": "bash ${SCRIPT_DIR}/toggle-tailscale.sh -g",
|
||||
"interval": 60,
|
||||
"exec": "sleep 2 && bash ~/projects/sisyphus/scripts/toggle-tailscale.sh -g",
|
||||
"return-type": "json",
|
||||
"on-click": "bash ${SCRIPT_DIR}/toggle-tailscale.sh",
|
||||
"on-click": "bash ~/projects/sisyphus/scripts/toggle-tailscale.sh",
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"disconnected": "\ue50b",
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ window#waybar {
|
|||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
#mpris.Feishin {
|
||||
background: linear-gradient(45deg, rgba(170,92,195,1) 100%, rgba(0,164,220,1) 0%);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ fi
|
|||
alias cp='cp -i'
|
||||
alias df='df -h'
|
||||
alias free='free -m'
|
||||
alias gs='git status --short'
|
||||
alias gs='git status'
|
||||
alias hgrep='history | grep'
|
||||
alias ll='ls -la'
|
||||
alias mkdir='mkdir -pv'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue