diff --git a/assets/bluescreen.png b/assets/bluescreen.png new file mode 100644 index 0000000..ef36cd9 Binary files /dev/null and b/assets/bluescreen.png differ diff --git a/nixos/.sops.yaml b/nixos/.sops.yaml index 62f72a2..385e7af 100644 --- a/nixos/.sops.yaml +++ b/nixos/.sops.yaml @@ -1,13 +1,10 @@ keys: - - &tdpeuter age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y - - - &server_H4G0 age1d4gvqz3anf082ja6xt03hnkzazfum80um9t45m4rerl4n3va2yuqgnsg03 + - &Tibo-NixFatDesk age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y + - &Tibo-NixTop age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37 creation_rules: - path_regex: secrets/[^/]+\.(yaml|json|env|ini)$ key_groups: - age: - - *tdpeuter - - - *server_H4G0 - + - *Tibo-NixFatDesk + - *Tibo-NixTop diff --git a/nixos/flake.lock b/nixos/flake.lock index 38320cc..de6ae4c 100644 --- a/nixos/flake.lock +++ b/nixos/flake.lock @@ -25,16 +25,16 @@ ] }, "locked": { - "lastModified": 1747688870, - "narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=", + "lastModified": 1758463745, + "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", "owner": "nix-community", "repo": "home-manager", - "rev": "d5f1f641b289553927b3801580598d200a501863", + "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-24.11", + "ref": "release-25.05", "repo": "home-manager", "type": "github" } @@ -62,26 +62,26 @@ }, "nixpkgs": { "locked": { - "lastModified": 1751274312, - "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", + "lastModified": 1760862643, + "narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674", + "rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-24.11", + "ref": "nixos-25.05", "type": "indirect" } }, "nixpkgs-unstable": { "locked": { - "lastModified": 1757745802, - "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", + "lastModified": 1760878510, + "narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1", + "rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67", "type": "github" }, "original": { @@ -104,11 +104,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1724283233, - "narHash": "sha256-XMPn6YHwFOJCGLE9M5F3AEFKA0u+maf8CpIEWmvaQTQ=", + "lastModified": 1758594056, + "narHash": "sha256-6XyKDRWqBngw1g73e789iyIaw/0VF04ELk/ATtlkTVU=", "owner": "ThinkChaos", "repo": "openconnect-sso", - "rev": "94f1ddfef1662d56ede0a093bcfc3d23156bc1a1", + "rev": "2041471efd331d0591d34e122aefb02690fb233a", "type": "github" }, "original": { @@ -174,11 +174,11 @@ ] }, "locked": { - "lastModified": 1758007585, - "narHash": "sha256-HYnwlbY6RE5xVd5rh0bYw77pnD8lOgbT4mlrfjgNZ0c=", + "lastModified": 1760998189, + "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", "owner": "Mic92", "repo": "sops-nix", - "rev": "f77d4cfa075c3de66fc9976b80e0c4fc69e2c139", + "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", "type": "github" }, "original": { @@ -265,11 +265,11 @@ ] }, "locked": { - "lastModified": 1757304371, - "narHash": "sha256-EZ3Vwgh5xgXuiPUmr9e1a9dEu3hvEWhRurAKpsAwB2A=", + "lastModified": 1761105987, + "narHash": "sha256-d01CGcdNlsqIn4ncGCWHM0Velnii/Ggef1iybQvEOfc=", "owner": "youwen5", "repo": "zen-browser-flake", - "rev": "3968348af022fe88468ef8de4f9683076e2e5e4b", + "rev": "e7d9fefd8665be5d4c77466140f21a15f6d29e93", "type": "github" }, "original": { diff --git a/nixos/flake.nix b/nixos/flake.nix index d58b95c..fa8b125 100644 --- a/nixos/flake.nix +++ b/nixos/flake.nix @@ -2,12 +2,12 @@ description = "System configuration of my machines using flakes"; inputs = { - nixpkgs.url = "nixpkgs/nixos-24.11"; + nixpkgs.url = "nixpkgs/nixos-25.05"; nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; home-manager = { - url = "github:nix-community/home-manager/release-24.11"; + url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; openconnect-sso = { @@ -46,6 +46,7 @@ "steam" "steam-unwrapped" "steam-run" "vista-fonts" "intel-ocl" + "libfprint-2-tod1-broadcom" ]; in utils.lib.mkFlake { @@ -71,11 +72,11 @@ }; modules = [ - home-manager.nixosModule - sops-nix.nixosModules.sops - ./modules ./users + + home-manager.nixosModules.home-manager + sops-nix.nixosModules.sops ]; }; @@ -83,65 +84,7 @@ Tibo-NixDesk.modules = [ ./hosts/Tibo-NixDesk ]; Tibo-NixFat.modules = [ ./hosts/Tibo-NixFat ]; Tibo-NixTest.modules = [ ./hosts/Tibo-NixTest ]; - }; - - 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 - ''; - }; - }; + Tibo-NixTop.modules = [ ./hosts/Tibo-NixTop ]; }; }; } diff --git a/nixos/hosts/Tibo-NixDesk/default.nix b/nixos/hosts/Tibo-NixDesk/default.nix index 11b7a40..fe71d29 100644 --- a/nixos/hosts/Tibo-NixDesk/default.nix +++ b/nixos/hosts/Tibo-NixDesk/default.nix @@ -6,7 +6,7 @@ ]; sisyphus = { - desktop.sway.enable = true; + desktop.hyprland.enable = true; hardware = { nvidia = { @@ -35,6 +35,7 @@ }; services = { + tailscale.enable = true; pipewire.enable = true; printing.enable = true; openrgb.enable = true; @@ -56,6 +57,8 @@ efiSysMountPoint = "/boot/efi"; }; }; + + plymouth.enable = true; }; environment.systemPackages = with pkgs; [ diff --git a/nixos/hosts/Tibo-NixTop/default.nix b/nixos/hosts/Tibo-NixTop/default.nix new file mode 100644 index 0000000..e689f5d --- /dev/null +++ b/nixos/hosts/Tibo-NixTop/default.nix @@ -0,0 +1,205 @@ +# 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; + }; + + nix.settings.download-buffer-size = 500 * 1024 * 1024; # 500 MiB + + 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? + +} + diff --git a/nixos/hosts/Tibo-NixTop/hardware-configuration.nix b/nixos/hosts/Tibo-NixTop/hardware-configuration.nix new file mode 100644 index 0000000..ac27dba --- /dev/null +++ b/nixos/hosts/Tibo-NixTop/hardware-configuration.nix @@ -0,0 +1,41 @@ +# 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..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; +} diff --git a/nixos/modules/desktop/default.nix b/nixos/modules/desktop/default.nix index 465f8ca..2defa4d 100644 --- a/nixos/modules/desktop/default.nix +++ b/nixos/modules/desktop/default.nix @@ -4,5 +4,7 @@ ./hyprland ./plasma ./sway + + ./waybar ]; } diff --git a/nixos/modules/desktop/gnome/default.nix b/nixos/modules/desktop/gnome/default.nix index e522780..2ce218c 100644 --- a/nixos/modules/desktop/gnome/default.nix +++ b/nixos/modules/desktop/gnome/default.nix @@ -6,54 +6,30 @@ in { options.sisyphus.desktop.gnome.enable = lib.mkEnableOption "GNOME"; config = lib.mkIf cfg.enable { - services.xserver = { - enable = true; + services = { + gnome = { + core-apps.enable = false; + core-developer-tools.enable = false; + core-shell.enable = true; + }; - excludePackages = with pkgs; [ - xterm - ]; + xserver = { + enable = true; - displayManager.gdm.enable = true; - desktopManager.gnome.enable = true; + excludePackages = with pkgs; [ + xterm + ]; + + displayManager.gdm.enable = true; + desktopManager.gnome.enable = true; + + videoDrivers = [ "nvidia" ]; + }; }; # 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 - ]); }; } diff --git a/nixos/modules/desktop/hyprland/default.nix b/nixos/modules/desktop/hyprland/default.nix index f4ee140..6d7d25b 100644 --- a/nixos/modules/desktop/hyprland/default.nix +++ b/nixos/modules/desktop/hyprland/default.nix @@ -11,6 +11,7 @@ in { # Hint Electron apps to use wayland NIXOS_OZONE_WL = "1"; + ASSETS_DIR = ../../../../assets; SCRIPT_DIR = ../../../../scripts; }; @@ -19,10 +20,16 @@ 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 @@ -35,21 +42,21 @@ in { ]; }; - programs = { - hyprland = { - enable = true; - xwayland.enable = true; - }; - - waybar.enable = true; + programs.hyprland = { + enable = true; + xwayland.enable = true; }; + security.polkit.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; }; } diff --git a/nixos/modules/desktop/sway/default.nix b/nixos/modules/desktop/sway/default.nix index 3dc3547..b9a8003 100644 --- a/nixos/modules/desktop/sway/default.nix +++ b/nixos/modules/desktop/sway/default.nix @@ -82,7 +82,6 @@ in { playerctl swaybg swaylock-effects - waybar wlsunset waycorner @@ -96,6 +95,7 @@ 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; - }; - - waybar.enable = true; + programs.sway = { + enable = true; + package = pkgs.swayfx; + wrapperFeatures.gtk = true; }; - sisyphus.users.wantedGroups = [ - config.users.groups.video.name # Brightnessctl - ]; + sisyphus = { + desktop.waybar.enable = true; + + users.wantedGroups = [ + config.users.groups.video.name # Brightnessctl + ]; + }; }; } diff --git a/nixos/modules/desktop/waybar/default.nix b/nixos/modules/desktop/waybar/default.nix new file mode 100644 index 0000000..273e4ce --- /dev/null +++ b/nixos/modules/desktop/waybar/default.nix @@ -0,0 +1,18 @@ +{ 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; + }; +} diff --git a/nixos/modules/hardware/default.nix b/nixos/modules/hardware/default.nix index 2d38b1e..238bcea 100644 --- a/nixos/modules/hardware/default.nix +++ b/nixos/modules/hardware/default.nix @@ -1,6 +1,7 @@ { imports = [ ./eid + ./fingerprint-scanner ./nvidia ./yubikey ]; diff --git a/nixos/modules/hardware/fingerprint-scanner/default.nix b/nixos/modules/hardware/fingerprint-scanner/default.nix new file mode 100644 index 0000000..b7580c6 --- /dev/null +++ b/nixos/modules/hardware/fingerprint-scanner/default.nix @@ -0,0 +1,30 @@ +{ 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"; + }; + }; +} + diff --git a/nixos/modules/programs/sops/default.nix b/nixos/modules/programs/sops/default.nix index 443eac9..c18f0fc 100644 --- a/nixos/modules/programs/sops/default.nix +++ b/nixos/modules/programs/sops/default.nix @@ -14,8 +14,8 @@ in { # Add secrets.yml to the Nix Store. defaultSopsFile = ../../../secrets/secrets.yaml; age = { - # Automatically import SSH keys as age keys. - sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; + # Don't derive age keys from SSH keys. + sshKeyPaths = [ ]; # 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"; diff --git a/nixos/modules/virtualisation/virtualbox/default.nix b/nixos/modules/virtualisation/virtualbox/default.nix index a86ada5..3124493 100644 --- a/nixos/modules/virtualisation/virtualbox/default.nix +++ b/nixos/modules/virtualisation/virtualbox/default.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, pkgs-unstable, ... }: let cfg = config.sisyphus.virtualisation.virtualbox; @@ -6,20 +6,19 @@ in { options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox"; config = lib.mkIf cfg.enable { - virtualisation.virtualbox = { - host = { - enable = true; - enableExtensionPack = true; - enableHardening = true; - }; - guest = { - enable = true; - clipboard = true; - seamless = true; - vboxsf = false; # Module not found?... - }; + virtualisation.virtualbox.host = { + enable = true; + enableExtensionPack = true; + enableHardening = true; + package = pkgs-unstable.virtualbox; }; + + # 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 = {}; diff --git a/nixos/overlays/spotify/default.nix b/nixos/overlays/spotify/default.nix index fc77396..84be4da 100644 --- a/nixos/overlays/spotify/default.nix +++ b/nixos/overlays/spotify/default.nix @@ -9,7 +9,7 @@ final: prev: { sha256 = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE="; }; - cargoHash = "sha256-oHfk68mAIcmOenW7jn71Xpt8hWVDtxyInWhVN2rH+kk="; + cargoHash = "sha256-oGpe+kBf6kBboyx/YfbQBt1vvjtXd1n2pOH6FNcbF8M="; buildInputs = with final; [ cargo diff --git a/nixos/secrets/HomeLab.yaml b/nixos/secrets/HomeLab.yaml index f749611..d39ba71 100644 --- a/nixos/secrets/HomeLab.yaml +++ b/nixos/secrets/HomeLab.yaml @@ -1,27 +1,41 @@ 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: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] + 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] 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+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k - SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz - ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6 - aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A - dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlL05vZHk2T1B6OHArUXlj + bEZWV0dUeVN0M3ZpeHdKcGlKV1RWYmRLM0FjCm9PLzBZTFo3RjhZTEhYMDBSN2Nj + aithQ2hpZXVCSngxcVBvQ2hKRzFXUEEKLS0tIE5rL0NHb1llRmlSQXVUeU8rVmNY + aEZHdDFEWUdxMzRVVjFhQWZmS04wRkkKrD2CiwdNcbK9s64omQ7xSA29J48HwIHa + ickyL/uorYhXmBKhqdvNq/j1Nb88LR9ti55Z7eecJNbyJb4OTtgzXQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-10-20T07:58:57Z" - mac: ENC[AES256_GCM,data:mmFgjE7rp7fXmPOnETGamHR3kUAguFCNNTQcEnD+uM4xeSp3QcB2g8tkKYaJAjkWWqKRSm9/Iu1NWOr9GWyu4O1h7ppWSvpKawWki6cHpqBl8JOwbx/SZi5bzU1lBtoJyT6hD1aCu9ENOMUkpPY3rKcYwbsRMJpKYsbXymPikcQ=,iv:kPB6ds8c4yc/w7Ny1d3DTyztQF4yTr0NyKgIHEzIKAg=,tag:VTpXRb5HaWDjVB52K7mByw==,type:str] - pgp: [] + - 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] unencrypted_suffix: _unencrypted - version: 3.8.1 + version: 3.10.2 diff --git a/nixos/secrets/UGent.yaml b/nixos/secrets/UGent.yaml index 5eb38a0..634ba65 100644 --- a/nixos/secrets/UGent.yaml +++ b/nixos/secrets/UGent.yaml @@ -5,24 +5,27 @@ 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+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k - SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz - ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6 - aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A - dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpb0dlWE5PNllnME1jQWE4 + cHFzWkR4ZzNaWlR0WDJ4c1hEdlJGN0FISWlZCmNNdVRtL080QzgwQTZtTGpVRkxW + dkdvYXdQNUlhYWQrYlNDR2JISXdpdkkKLS0tIEpIU20rK3F3WGpBS1g3NmJqYWRX + SWlNbFZ0NTJJZ09Wd3JzK1hscjJoS2MK4GU8ndim80CaOjgvMwVlgIq/1VQIylSZ + EJl15zUFaDiDZUCcZE8TkJQ/rbGDSiq7KlWyFe48Q3UC86jfF88qCg== -----END AGE ENCRYPTED FILE----- - 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: [] + - 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] unencrypted_suffix: _unencrypted - version: 3.9.2 + version: 3.10.2 diff --git a/nixos/secrets/personal.yaml b/nixos/secrets/personal.yaml index 1e520ab..8a60040 100644 --- a/nixos/secrets/personal.yaml +++ b/nixos/secrets/personal.yaml @@ -3,22 +3,26 @@ 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+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k - SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz - ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6 - aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A - dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w== + 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== -----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 diff --git a/nixos/secrets/secrets.yaml b/nixos/secrets/secrets.yaml index 6c8e2ac..b5bf68e 100644 --- a/nixos/secrets/secrets.yaml +++ b/nixos/secrets/secrets.yaml @@ -9,22 +9,26 @@ 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+IFgyNTUxOSA3ekx1bzluY0ZhYmhnRmhW - b3pzM2RlKzFrREpMK3RNU1MweldNRXJ5NjE4CmNRbnFvbk1EN0V0ZWJiVzFmL3Jt - N1Vpb3NEdXFzdzU4MjN1elp1RWZ5THcKLS0tIDR4cTFJNVFveEdxaEYvZndKbURa - UHpaNENhL3c1K3RXc05hUmdNZVBpT2MKwBj4+Gb7giVJIoPWiwY3tvugEAexXy6Q - YTWgZQZk96r5aF2mBjRCFCc7prj85PsUN/UXOPjPLVAFG3lwS0Eaog== + 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== -----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 diff --git a/nixos/shells/c/default.nix b/nixos/shells/c/default.nix deleted file mode 100644 index 09a7f1d..0000000 --- a/nixos/shells/c/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - 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" ]) - ]; - }; - }); -} diff --git a/nixos/shells/java/default.nix b/nixos/shells/java/default.nix deleted file mode 100644 index 676c946..0000000 --- a/nixos/shells/java/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - 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" ]) - ]; - }; - }); -} diff --git a/nixos/shells/latex/default.nix b/nixos/shells/latex/default.nix deleted file mode 100644 index e2cb799..0000000 --- a/nixos/shells/latex/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - 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 - ]; - }; - } - ); -} diff --git a/nixos/shells/rust/default.nix b/nixos/shells/rust/default.nix deleted file mode 100644 index 68f7825..0000000 --- a/nixos/shells/rust/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - 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 = '' - ''; - }; - }); -} diff --git a/nixos/users/tdpeuter/default.nix b/nixos/users/tdpeuter/default.nix index 6435828..353a1d4 100644 --- a/nixos/users/tdpeuter/default.nix +++ b/nixos/users/tdpeuter/default.nix @@ -35,29 +35,31 @@ in { shell = pkgs.zsh; packages = (with pkgs; [ - cmdtime # Zsh plugin - icosystem # Personal icon theme - nextcloud-client - spotify-adblock + bitwarden-desktop 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 diff --git a/nixos/users/tdpeuter/dotfiles.nix b/nixos/users/tdpeuter/dotfiles.nix index 7c0f06e..aca5ba8 100644 --- a/nixos/users/tdpeuter/dotfiles.nix +++ b/nixos/users/tdpeuter/dotfiles.nix @@ -32,6 +32,11 @@ 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; @@ -58,7 +63,7 @@ in { source = ../../../stow/swayidle/.config/swayidle; }; ".config/swaylock" = { - inherit (config.sisyphus.desktop.sway) enable; + enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable; source = ../../../stow/swaylock/.config/swaylock; }; ".config/vifm" = { @@ -73,14 +78,13 @@ in { source = ../../../stow/zellij/.config/zellij; }; ".gnupg" = { - enable = false; - # inherit (config.programs.gnupg.agent) enable; # TODO Enable Me + inherit (config.programs.gnupg.agent) enable; source = ../../../stow/gnupg/.gnupg; recursive = true; -# onChange = '' -# chmod 700 /home/tdpeuter/.gnupg -# chmod 600 /home/tdpeuter/.gnupg/* -# ''; + onChange = '' + chmod 700 /home/tdpeuter/.gnupg + # chmod 600 /home/tdpeuter/.gnupg/* # Already read-only? + ''; }; ".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable { inherit (config.sisyphus.programs.ssh) enable; @@ -99,12 +103,10 @@ 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" = { diff --git a/nixos/users/tdpeuter/firefox.nix b/nixos/users/tdpeuter/firefox.nix index b24a25b..5bb0b46 100644 --- a/nixos/users/tdpeuter/firefox.nix +++ b/nixos/users/tdpeuter/firefox.nix @@ -14,6 +14,7 @@ in { nativeMessagingHosts = with pkgs; [ tridactyl-native ]; + # https://mozilla.github.io/policy-templates/ extraPolicies = { DisableFirefoxStudies = true; DisablePocket = true; @@ -26,7 +27,24 @@ in { # https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265 ExtensionSettings = { - "amazom@search.mozilla.org".installation_mode = "blocked"; + "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; }; }; @@ -42,12 +60,24 @@ in { ]; profiles.tdpeuter.search= { - default = "DuckDuckGo"; + default = "ddg"; # Reference by id instead of by name 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"; @@ -71,17 +101,15 @@ in { icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = [ "@no" ]; }; - "GitHub" = { + "Google Scholar" = { urls = [{ - template = "https://github.com/search"; + template = "https://scholar.google.ch/scholar"; params = [ { name = "q"; value = "{searchTerms}"; } - { name = "type"; value = "repositories"; } ]; }]; - icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg"; - definedAliases = [ "@gh" ]; + definedAliases = [ "@gs" ]; }; }; }; diff --git a/nixos/users/tdpeuter/secrets.nix b/nixos/users/tdpeuter/secrets.nix index e164183..fd1a363 100644 --- a/nixos/users/tdpeuter/secrets.nix +++ b/nixos/users/tdpeuter/secrets.nix @@ -24,7 +24,6 @@ in { }; in { "UGent/HPC/ssh" = UGent; - "UGent/Dwengo" = UGent; # Git authentication "Gitea/ssh" = personal; @@ -33,9 +32,17 @@ in { "UGent/SubGit/ssh" = UGent; # HomeLab - "HomeLab/Gitea/ssh" = HomeLab; + + # Physical hosts "HomeLab/Hugo/ssh" = HomeLab; + "HomeLab/Roxanne/ghost/ssh" = HomeLab; + "HomeLab/HTPC/ssh" = HomeLab; + + # Virtual hosts + "HomeLab/Gitea/ssh" = HomeLab; "HomeLab/Nextcloud/ssh" = HomeLab; + "HomeLab/Vaultwarden/ssh" = HomeLab; + "HomeLab/NixOS/admin/ssh" = HomeLab; }); }; } diff --git a/scripts/toggle-tailscale.sh b/scripts/toggle-tailscale.sh index 0263c29..6f79489 100755 --- a/scripts/toggle-tailscale.sh +++ b/scripts/toggle-tailscale.sh @@ -19,15 +19,24 @@ 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": "%q", "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 diff --git a/stow/hyprland/.config/hypr/docked.conf b/stow/hyprland/.config/hypr/docked.conf new file mode 100644 index 0000000..ea4034f --- /dev/null +++ b/stow/hyprland/.config/hypr/docked.conf @@ -0,0 +1,6 @@ +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 diff --git a/stow/hyprland/.config/hypr/hy3.conf b/stow/hyprland/.config/hypr/hy3.conf new file mode 100644 index 0000000..7d3e999 --- /dev/null +++ b/stow/hyprland/.config/hypr/hy3.conf @@ -0,0 +1,164 @@ + +# 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 = # default: rgba(33ccff40) + #col.active.border = # default: rgba(33ccffee) + #col.active.text = # default: rgba(ffffffff) + + # active tab bar segment colors for bars on an unfocused monitor + #col.active_alt_monitor = # default: rgba(60606040) + #col.active_alt_monitor.border = # default: rgba(808080ee) + #col.active_alt_monitor.text = # default: rgba(ffffffff) + + # focused tab bar segment colors (focused node in unfocused container) + #col.focused = # default: rgba(60606040) + #col.focused.border = # default: rgba(808080ee) + #col.focused.text = # 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 = # default: rgba(ffffffff) + + # urgent tab bar segment colors + #col.urgent = # default: rgba(ff223340) + #col.urgent.border = # default: rgba(ff2233ee) + #col.urgent.text = # default: rgba(ffffffff) + + # urgent tab bar segment colors + #col.locked = # default: rgba(90903340) + #col.locked.border = # default: rgba(909033ee) + #col.locked.text = # 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 + # = 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 + # = 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 + diff --git a/stow/hyprland/.config/hypr/hyprland.conf b/stow/hyprland/.config/hypr/hyprland.conf new file mode 100644 index 0000000..6dc3b6b --- /dev/null +++ b/stow/hyprland/.config/hypr/hyprland.conf @@ -0,0 +1,279 @@ +# ~/.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 + diff --git a/stow/hyprland/.config/hypr/input-output.conf b/stow/hyprland/.config/hypr/input-output.conf new file mode 100644 index 0000000..3c04c15 --- /dev/null +++ b/stow/hyprland/.config/hypr/input-output.conf @@ -0,0 +1,62 @@ +# ~/.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" + diff --git a/stow/hyprland/.config/hypr/keybinds.conf b/stow/hyprland/.config/hypr/keybinds.conf new file mode 100644 index 0000000..1a4f1e1 --- /dev/null +++ b/stow/hyprland/.config/hypr/keybinds.conf @@ -0,0 +1,180 @@ +$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 + diff --git a/stow/hyprland/.config/hypr/modes.conf b/stow/hyprland/.config/hypr/modes.conf new file mode 100644 index 0000000..61bbbf0 --- /dev/null +++ b/stow/hyprland/.config/hypr/modes.conf @@ -0,0 +1,38 @@ +# 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 + diff --git a/stow/hyprland/.config/hypr/monitors.conf b/stow/hyprland/.config/hypr/monitors.conf new file mode 100644 index 0000000..4b551d3 --- /dev/null +++ b/stow/hyprland/.config/hypr/monitors.conf @@ -0,0 +1,10 @@ +# 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 diff --git a/stow/hyprland/.config/hypr/undocked.conf b/stow/hyprland/.config/hypr/undocked.conf new file mode 100644 index 0000000..6f27cc4 --- /dev/null +++ b/stow/hyprland/.config/hypr/undocked.conf @@ -0,0 +1,9 @@ +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 + diff --git a/stow/hyprland/.config/hypr/workspaces.conf b/stow/hyprland/.config/hypr/workspaces.conf new file mode 100644 index 0000000..e69de29 diff --git a/stow/ssh/.ssh/config b/stow/ssh/.ssh/config index aacb461..ea3df8e 100644 --- a/stow/ssh/.ssh/config +++ b/stow/ssh/.ssh/config @@ -4,12 +4,6 @@ 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 @@ -37,20 +31,59 @@ 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 diff --git a/stow/swaylock/.config/swaylock/config b/stow/swaylock/.config/swaylock/config index 96b053f..a5ecd8a 100644 --- a/stow/swaylock/.config/swaylock/config +++ b/stow/swaylock/.config/swaylock/config @@ -2,21 +2,23 @@ # .config/swaylock/config # -indicator -indicator-radius=200 +#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 -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 +image=${ASSETS_DIR}/bluescreen.png # Styling diff --git a/stow/vim/.vimrc b/stow/vim/.vimrc index 379ddb4..bd87fe5 100644 --- a/stow/vim/.vimrc +++ b/stow/vim/.vimrc @@ -25,8 +25,7 @@ set smarttab set tabstop=4 set title set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx -"" Show suggestions on another line instead of inplace -set wildmenu +set wildmenu "" Show suggestions on another line instead of inplace syntax enable diff --git a/stow/waybar/.config/waybar/config.jsonc b/stow/waybar/.config/waybar/config.jsonc index 2a4f8a4..ff861e3 100644 --- a/stow/waybar/.config/waybar/config.jsonc +++ b/stow/waybar/.config/waybar/config.jsonc @@ -40,11 +40,14 @@ "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", diff --git a/stow/waybar/.config/waybar/modules.json b/stow/waybar/.config/waybar/modules.json index 21b3534..6cec15d 100644 --- a/stow/waybar/.config/waybar/modules.json +++ b/stow/waybar/.config/waybar/modules.json @@ -90,21 +90,21 @@ "format": "\uf09c", /*  */ "tooltip": true, "tooltip-format": "Lock device", - "on-click": "swaylock -f" + "on-click": "swaylock --daemonize" }, "custom/system-sleep": { "format": "\uf186", /*  */ "tooltip": true, "tooltip-format": "Put device to sleep", - "on-click": "swaylock -f; systemctl suspend" + "on-click": "swaylock --daemonize; systemctl suspend" }, "custom/system-hibernate": { "format": "\uf2dc", /*  */ "tooltip": true, "tooltip-format": "Hibernate device", - "on-click": "swaylock -f; systemctl hibernate" + "on-click": "swaylock --daemonize; systemctl hibernate" }, "custom/system-reboot": { @@ -122,9 +122,10 @@ }, "custom/toggle-light-dark": { - "exec": "sleep 1 && bash ~/projects/sisyphus/scripts/toggle-light-dark.sh -g", + "exec": "bash ${SCRIPT_DIR}/toggle-light-dark.sh -g", + "interval": 60, "return-type": "json", - "on-click": "bash ~/projects/sisyphus/scripts/toggle-light-dark.sh", + "on-click": "bash ${SCRIPT_DIR}/toggle-light-dark.sh", "format": "{icon}", "format-icons": { "default": "\uf185", @@ -134,21 +135,23 @@ }, "custom/toggle-notifications": { - "exec": "sleep 6 && bash ~/projects/sisyphus/scripts/toggle-notifications.sh -g", + "exec": "bash ${SCRIPT_DIR}/toggle-notifications.sh -g", + "interval": 60, "return-type": "json", - "on-click": "bash ~/projects/sisyphus/scripts/toggle-notifications.sh", - "format": "NOTIS {icon}", + "on-click": "bash ${SCRIPT_DIR}/toggle-notifications.sh", + "format": "{icon}", "format-icons": { - "normal": "NRML", - "paused": "PAISED" + "normal": "\uf0f3", /*  */ + "paused": "\uf1f6" /*  */ }, "tooltip": true }, "custom/toggle-tailscale": { - "exec": "sleep 2 && bash ~/projects/sisyphus/scripts/toggle-tailscale.sh -g", + "exec": "bash ${SCRIPT_DIR}/toggle-tailscale.sh -g", + "interval": 60, "return-type": "json", - "on-click": "bash ~/projects/sisyphus/scripts/toggle-tailscale.sh", + "on-click": "bash ${SCRIPT_DIR}/toggle-tailscale.sh", "format": "{icon}", "format-icons": { "disconnected": "\ue50b", diff --git a/stow/waybar/.config/waybar/style.css b/stow/waybar/.config/waybar/style.css index 11d3b20..ecc08fc 100644 --- a/stow/waybar/.config/waybar/style.css +++ b/stow/waybar/.config/waybar/style.css @@ -62,7 +62,6 @@ window#waybar { opacity: 0.6; } - #mpris.Feishin { background: linear-gradient(45deg, rgba(170,92,195,1) 100%, rgba(0,164,220,1) 0%); } diff --git a/stow/zsh/.zshrc b/stow/zsh/.zshrc index b21803c..155caec 100644 --- a/stow/zsh/.zshrc +++ b/stow/zsh/.zshrc @@ -51,7 +51,7 @@ fi alias cp='cp -i' alias df='df -h' alias free='free -m' -alias gs='git status' +alias gs='git status --short' alias hgrep='history | grep' alias ll='ls -la' alias mkdir='mkdir -pv'