diff --git a/nixos/flake.lock b/nixos/flake.lock index f031af3..de6ae4c 100644 --- a/nixos/flake.lock +++ b/nixos/flake.lock @@ -25,42 +25,63 @@ ] }, "locked": { - "lastModified": 1781184346, - "narHash": "sha256-cZRlW47U6A2nWvAmnZeeO6Xvq23gxYbVLel4KxqOrcQ=", + "lastModified": 1758463745, + "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", "owner": "nix-community", "repo": "home-manager", - "rev": "ea6d221d7aa85652d014b6f719dddf036037515b", + "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-26.05", + "ref": "release-25.05", "repo": "home-manager", "type": "github" } }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "openconnect-sso", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1720066371, + "narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "622f829f5fe69310a866c8a6cd07e747c44ef820", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1780902259, - "narHash": "sha256-q8yYEC5f1mFlQO9RGna4LTc9QrcvWunX6FYp83munkQ=", + "lastModified": 1760862643, + "narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bd0ff2d3eac24699c3664d5966b9ef36f388e2ca", + "rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-26.05", + "ref": "nixos-25.05", "type": "indirect" } }, "nixpkgs-unstable": { "locked": { - "lastModified": 1781074563, - "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", + "lastModified": 1760878510, + "narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", + "rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67", "type": "github" }, "original": { @@ -69,14 +90,81 @@ "type": "indirect" } }, + "openconnect-sso": { + "inputs": { + "flake-utils": [ + "utils" + ], + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "nixpkgs" + ], + "poetry2nix": "poetry2nix", + "systems": "systems_2", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1758594056, + "narHash": "sha256-6XyKDRWqBngw1g73e789iyIaw/0VF04ELk/ATtlkTVU=", + "owner": "ThinkChaos", + "repo": "openconnect-sso", + "rev": "2041471efd331d0591d34e122aefb02690fb233a", + "type": "github" + }, + "original": { + "owner": "ThinkChaos", + "ref": "fix/nix-flake", + "repo": "openconnect-sso", + "type": "github" + } + }, + "poetry2nix": { + "inputs": { + "flake-utils": [ + "openconnect-sso", + "flake-utils" + ], + "nix-github-actions": [ + "openconnect-sso", + "nix-github-actions" + ], + "nixpkgs": [ + "openconnect-sso", + "nixpkgs" + ], + "systems": [ + "openconnect-sso", + "systems" + ], + "treefmt-nix": [ + "openconnect-sso", + "treefmt-nix" + ] + }, + "locked": { + "lastModified": 1721039874, + "narHash": "sha256-XANsG9GYHip8pxZpbqKf/YGv8tIa0xTh289Y+WNBNfw=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "d11c01e58587e5f21037ed6477465a7f26a32e27", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, "root": { "inputs": { "flake-utils": "flake-utils", "home-manager": "home-manager", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", + "openconnect-sso": "openconnect-sso", "sops-nix": "sops-nix", - "utils": "utils" + "utils": "utils", + "zen-browser": "zen-browser" } }, "sops-nix": { @@ -86,11 +174,11 @@ ] }, "locked": { - "lastModified": 1780547341, - "narHash": "sha256-Gq8KNx5A7hBB3uGJaj6eQfLDIz5YdLu92gqBcvHvoUo=", + "lastModified": 1760998189, + "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", "owner": "Mic92", "repo": "sops-nix", - "rev": "9ed65852b6257fbeae4355bc24ecfea307ca759a", + "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", "type": "github" }, "original": { @@ -114,6 +202,42 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "openconnect-sso", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1721769617, + "narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "utils": { "inputs": { "flake-utils": [ @@ -121,11 +245,11 @@ ] }, "locked": { - "lastModified": 1779563444, - "narHash": "sha256-+rEagECcF6BhWfLs8VCkPqsBuxxSSIRxMlgjXj6G8UQ=", + "lastModified": 1738591040, + "narHash": "sha256-4WNeriUToshQ/L5J+dTSWC5OJIwT39SEP7V7oylndi8=", "owner": "gytis-ivaskevicius", "repo": "flake-utils-plus", - "rev": "a00f6f51907b5c74d2fde086b10b19d446d15717", + "rev": "afcb15b845e74ac5e998358709b2b5fe42a948d1", "type": "github" }, "original": { @@ -133,6 +257,26 @@ "repo": "flake-utils-plus", "type": "github" } + }, + "zen-browser": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1761105987, + "narHash": "sha256-d01CGcdNlsqIn4ncGCWHM0Velnii/Ggef1iybQvEOfc=", + "owner": "youwen5", + "repo": "zen-browser-flake", + "rev": "e7d9fefd8665be5d4c77466140f21a15f6d29e93", + "type": "github" + }, + "original": { + "owner": "youwen5", + "repo": "zen-browser-flake", + "type": "github" + } } }, "root": "root", diff --git a/nixos/flake.nix b/nixos/flake.nix index 4b19110..fa8b125 100644 --- a/nixos/flake.nix +++ b/nixos/flake.nix @@ -2,14 +2,21 @@ description = "System configuration of my machines using flakes"; inputs = { - nixpkgs.url = "nixpkgs/nixos-26.05"; + 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-26.05"; + url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; + openconnect-sso = { + url = "github:ThinkChaos/openconnect-sso/fix/nix-flake"; + inputs = { + flake-utils.follows = "utils"; + nixpkgs.follows = "nixpkgs"; + }; + }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -18,25 +25,28 @@ url = "github:gytis-ivaskevicius/flake-utils-plus"; inputs.flake-utils.follows = "flake-utils"; }; + zen-browser = { + url = "github:youwen5/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, - flake-utils, home-manager, sops-nix, utils, + flake-utils, home-manager, openconnect-sso, sops-nix, utils, zen-browser, ... }: let system = utils.lib.system.x86_64-linux; unfreePackages = pkg: builtins.elem (nixpkgs.lib.getName pkg) [ "corefonts" - "nvidia-settings" "nvidia-x11" "nvidia-persistenced" "nvidia-kernel-modules" + "nvidia-settings" "nvidia-x11" "nvidia-persistenced" "Oracle_VirtualBox_Extension_Pack" "spotify" "steam" "steam-unwrapped" "steam-run" "vista-fonts" "intel-ocl" "libfprint-2-tod1-broadcom" - "vmware-workstation" ]; in utils.lib.mkFlake { diff --git a/nixos/hosts/Tibo-NixDesk/default.nix b/nixos/hosts/Tibo-NixDesk/default.nix index 012eba6..fe71d29 100644 --- a/nixos/hosts/Tibo-NixDesk/default.nix +++ b/nixos/hosts/Tibo-NixDesk/default.nix @@ -20,8 +20,6 @@ networking = { networkmanager.enable = true; openconnect-sso.enable = true; - openvpn.enable = true; - tailscale.enable = true; }; nix = { @@ -31,13 +29,13 @@ programs = { direnv.enable = true; - git.enable = true; home-manager.enable = true; sops.enable = true; ssh.enable = true; }; services = { + tailscale.enable = true; pipewire.enable = true; printing.enable = true; openrgb.enable = true; @@ -64,6 +62,7 @@ }; environment.systemPackages = with pkgs; [ + git vim-full w3m wget diff --git a/nixos/hosts/Tibo-NixFat/default.nix b/nixos/hosts/Tibo-NixFat/default.nix index 80d9d98..2e790c3 100644 --- a/nixos/hosts/Tibo-NixFat/default.nix +++ b/nixos/hosts/Tibo-NixFat/default.nix @@ -23,7 +23,6 @@ networking = { networkmanager.enable = true; openconnect-sso.enable = true; - tailscale.enable = true; }; nix = { @@ -38,7 +37,10 @@ ssh.enable = true; }; - services.pipewire.enable = true; + services = { + pipewire.enable = true; + tailscale.enable = true; + }; users.tdpeuter.enable = true; diff --git a/nixos/hosts/Tibo-NixTop/default.nix b/nixos/hosts/Tibo-NixTop/default.nix index aa1dbd7..7431ae5 100644 --- a/nixos/hosts/Tibo-NixTop/default.nix +++ b/nixos/hosts/Tibo-NixTop/default.nix @@ -25,9 +25,7 @@ networking = { networkmanager.enable = true; - #openconnect-sso.enable = true; - openvpn.enable = true; - tailscale.enable = true; + openconnect-sso.enable = true; }; nix = { @@ -37,14 +35,15 @@ programs = { direnv.enable = true; - git.enable = true; home-manager.enable = true; sops.enable = true; ssh.enable = true; - wireshark.enable = true; }; - services.pipewire.enable = true; + services = { + pipewire.enable = true; + tailscale.enable = true; + }; users.tdpeuter.enable = true; @@ -55,8 +54,23 @@ }; boot = { - # Use EFI and YubiKey - initrd.kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ]; + 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. @@ -80,8 +94,6 @@ powerOnBoot = false; }; - nix.settings.download-buffer-size = 500 * 1024 * 1024; # 500 MiB - programs.zsh.enable = true; services = { @@ -99,17 +111,17 @@ }; }; - logind.settings.Login = { + logind = { # Handle the laptop lid switch as follows: - HandleLidSwitch = "hybrid-sleep"; - HandleLidSwitchExternalPower = "lock"; - HandleLidSwitchDocked = "ignore"; + lidSwitch = "hybrid-sleep"; + lidSwitchExternalPower = "lock"; + lidSwitchDocked = "ignore"; # Handle the power key - HandlePowerKey = "suspend"; - HandlePowerKeyLongPress = "poweroff"; + powerKey = "suspend"; }; + power-profiles-daemon.enable = false; smartd.enable = true; @@ -128,9 +140,9 @@ libinput.enable = true; }; - virtualisation.vmware.host.enable = true; - - networking.hostName = "Tibo-NixTop"; # Define your hostname. + networking = { + hostName = "Tibo-NixTop"; # Define your hostname. + }; # Set your time zone. time.timeZone = "Europe/Brussels"; @@ -147,6 +159,12 @@ 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 = { @@ -154,6 +172,7 @@ 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 @@ -179,5 +198,6 @@ # # 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/modules/desktop/waybar/default.nix b/nixos/modules/desktop/waybar/default.nix index 3eab3df..273e4ce 100644 --- a/nixos/modules/desktop/waybar/default.nix +++ b/nixos/modules/desktop/waybar/default.nix @@ -13,12 +13,6 @@ in { j4-dmenu-desktop ]; - fonts.packages = with pkgs; [ - font-awesome_6 - ]; - programs.waybar.enable = true; - - services.atd.enable = true; # Command scheduler }; } diff --git a/nixos/modules/hardware/nvidia/default.nix b/nixos/modules/hardware/nvidia/default.nix index 5104dec..e98ed6d 100644 --- a/nixos/modules/hardware/nvidia/default.nix +++ b/nixos/modules/hardware/nvidia/default.nix @@ -25,6 +25,15 @@ in { }; config = lib.mkIf cfg.enable { + boot = { + extraModprobeConfig = '' + options nvidia-drm modeset=1 + ''; + kernelParams = [ + "nvidia_drm.modeset=1" + ]; + }; + hardware = { graphics = { enable = true; @@ -32,8 +41,8 @@ in { extraPackages = with pkgs; [ intel-ocl intel-compute-runtime - intel-graphics-compiler opencl-clhpp + opencl-clang opencl-headers ocl-icd ]; @@ -42,9 +51,7 @@ in { nvidia = { # Use the NVidia open source kernel module (or not) open = false; - branch = "stable"; - # To override the default package set by the branch: - #package = config.boot.kernelPackages.nvidiaPackages.stable; + package = config.boot.kernelPackages.nvidiaPackages.stable; # Modesetting is required. modesetting.enable = true; nvidiaSettings = cfg.gui-settings; diff --git a/nixos/modules/networking/default.nix b/nixos/modules/networking/default.nix index 897a716..5a46d2c 100644 --- a/nixos/modules/networking/default.nix +++ b/nixos/modules/networking/default.nix @@ -2,7 +2,5 @@ imports = [ ./networkmanager ./openconnect-sso - ./openvpn - ./tailscale ]; } diff --git a/nixos/modules/networking/openvpn/default.nix b/nixos/modules/networking/openvpn/default.nix deleted file mode 100644 index f646537..0000000 --- a/nixos/modules/networking/openvpn/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ config, lib, ... }: - -let - cfg = config.sisyphus.networking.openvpn; -in { - options.sisyphus.networking.openvpn.enable = lib.mkEnableOption "OpenVPN client"; - - config = lib.mkIf cfg.enable { - programs.openvpn3.enable = true; - - # https://github.com/NixOS/nixpkgs/issues/379074 - services.resolved.enable = true; - }; -} diff --git a/nixos/modules/networking/tailscale/default.nix b/nixos/modules/networking/tailscale/default.nix deleted file mode 100644 index ac2a936..0000000 --- a/nixos/modules/networking/tailscale/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ config, lib, pkgs, pkgs-unstable, ... }: - -let - cfg = config.sisyphus.networking.tailscale; -in { - options.sisyphus.networking.tailscale.enable = lib.mkEnableOption "Tailscale"; - - config = lib.mkIf cfg.enable { - services = { - tailscale = { - enable = true; - package = pkgs-unstable.tailscale; - useRoutingFeatures = "client"; - extraDaemonFlags = [ - "--no-logs-no-support" - ]; - }; - - resolved.enable = true; - }; - }; -} diff --git a/nixos/modules/programs/default.nix b/nixos/modules/programs/default.nix index 29f5183..fd61ea8 100644 --- a/nixos/modules/programs/default.nix +++ b/nixos/modules/programs/default.nix @@ -1,11 +1,9 @@ { imports = [ ./direnv - ./git ./home-manager ./sops ./spotify-adblock ./ssh - ./wireshark ]; } diff --git a/nixos/modules/programs/git/default.nix b/nixos/modules/programs/git/default.nix deleted file mode 100644 index 6352d37..0000000 --- a/nixos/modules/programs/git/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - cfg = config.sisyphus.programs.git; -in { - options.sisyphus.programs.git.enable = lib.mkEnableOption "Git"; - - config.programs.git = lib.mkIf cfg.enable { - enable = true; - lfs.enable = true; - }; -} diff --git a/nixos/modules/programs/wireshark/default.nix b/nixos/modules/programs/wireshark/default.nix deleted file mode 100644 index 04945fe..0000000 --- a/nixos/modules/programs/wireshark/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - cfg = config.sisyphus.programs.wireshark; -in { - options.sisyphus.programs.wireshark.enable = lib.mkEnableOption "Wireshark"; - - config = lib.mkIf cfg.enable { - environment.systemPackages = with pkgs; [ - wireshark - ]; - - programs.wireshark = { - enable = true; - dumpcap.enable = true; - usbmon.enable = false; - }; - - sisyphus.users.wantedGroups = [ - "wireshark" - ]; - }; -} diff --git a/nixos/modules/services/default.nix b/nixos/modules/services/default.nix index 324ef55..663fc70 100644 --- a/nixos/modules/services/default.nix +++ b/nixos/modules/services/default.nix @@ -6,5 +6,6 @@ ./pipewire ./printing ./remEYEnder + ./tailscale ]; } diff --git a/nixos/modules/services/openrgb/default.nix b/nixos/modules/services/openrgb/default.nix index 15d1564..ae4fc51 100644 --- a/nixos/modules/services/openrgb/default.nix +++ b/nixos/modules/services/openrgb/default.nix @@ -6,24 +6,18 @@ in { options.sisyphus.services.openrgb.enable = lib.mkEnableOption "OpenRGB"; config = lib.mkIf cfg.enable { - boot.kernelModules = [ "i2c-dev" ]; - - environment.systemPackages = with pkgs; [ - openrgb-with-all-plugins + services.udev.packages = with pkgs; [ + openrgb ]; + boot.kernelModules = [ "i2c-dev" ]; + hardware.i2c.enable = true; - services = { - hardware.openrgb = { - enable = true; - package = pkgs.openrgb-with-all-plugins; - motherboard = "intel"; - }; - - udev.packages = with pkgs; [ - openrgb - ]; + services.hardware.openrgb = { + enable = true; + package = pkgs.openrgb-with-all-plugins; + motherboard = "intel"; }; }; } diff --git a/nixos/modules/services/remEYEnder/default.nix b/nixos/modules/services/remEYEnder/default.nix index c4708ae..4d3b5cd 100644 --- a/nixos/modules/services/remEYEnder/default.nix +++ b/nixos/modules/services/remEYEnder/default.nix @@ -2,6 +2,8 @@ let cfg = config.sisyphus.services.remEYEnder; + + icon = ./vecteezy_eyes-line-icon-vector-isolated_13932670.jpg; in { options.sisyphus.services.remEYEnder.enable = lib.mkEnableOption "Eye reminder"; @@ -11,10 +13,10 @@ in { enable = true; description = "Send an eye reminder"; serviceConfig.Type = "oneshot"; - script = builtins.readFile ./remEYEnder.sh; - path = with pkgs; [ - libnotify - ]; + script = '' + # Display reminder for 20 seconds. + ${pkgs.libnotify}/bin/notify-send -t 20000 --icon=${icon} "RemEYEnder" "Look away from your screen :)" + ''; }; timers.remEYEnder = { enable = true; diff --git a/nixos/modules/services/remEYEnder/remEYEnder.sh b/nixos/modules/services/remEYEnder/remEYEnder.sh deleted file mode 120000 index 57d41ce..0000000 --- a/nixos/modules/services/remEYEnder/remEYEnder.sh +++ /dev/null @@ -1 +0,0 @@ -../../../../scripts/remEYEnder.sh \ No newline at end of file diff --git a/nixos/modules/services/tailscale/default.nix b/nixos/modules/services/tailscale/default.nix new file mode 100644 index 0000000..48eceb7 --- /dev/null +++ b/nixos/modules/services/tailscale/default.nix @@ -0,0 +1,15 @@ +{ config, lib, pkgs, pkgs-unstable, ... }: + +let + cfg = config.sisyphus.services.tailscale; +in { + options.sisyphus.services.tailscale.enable = lib.mkEnableOption "Tailscale"; + + config = lib.mkIf cfg.enable { + services.tailscale = { + enable = true; + package = pkgs-unstable.tailscale; + useRoutingFeatures = "client"; + }; + }; +} diff --git a/nixos/users/tdpeuter/default.nix b/nixos/users/tdpeuter/default.nix index 5ced74a..353a1d4 100644 --- a/nixos/users/tdpeuter/default.nix +++ b/nixos/users/tdpeuter/default.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, pkgs-unstable, ... }: +{ config, inputs, lib, pkgs, pkgs-unstable, ... }: let cfg = config.sisyphus.users.tdpeuter; @@ -35,7 +35,7 @@ in { shell = pkgs.zsh; packages = (with pkgs; [ - #bitwarden-desktop + bitwarden-desktop brave # Internet browser chafa # Terminal image viewer cmdtime # Zsh plugin @@ -46,10 +46,9 @@ in { gh # GitHub CLI tool glow # Terminal Markdown renderer icosystem # Personal icon theme - #jellyfin-media-player + jellyfin-media-player libreoffice-fresh # Office tools librewolf # Internet browser - #logseq # Note taking mpv # Media player nextcloud-client nsxiv # Lightweight image viewer @@ -74,7 +73,10 @@ in { # TODO Move to devshells # ruff pylint # Python ]) ++ (with pkgs-unstable; [ - ]); + logseq # Note taking + ]) ++ [ + inputs.zen-browser.packages.${pkgs.system}.default + ]; }; fonts.packages = with pkgs; [ @@ -85,8 +87,9 @@ in { noto-fonts # Dependency of Zellij config noto-fonts-cjk-sans # Dependency of Zellij config noto-fonts-cjk-serif # Dependency of Zellij config + noto-fonts-emoji noto-fonts-color-emoji # Emoji's! - vista-fonts # Microsoft fonts + vistafonts # Microsoft fonts ]; sisyphus = { @@ -139,6 +142,14 @@ in { }; }; + services.syncthing = { + enable = true; + extraOptions = [ + "--no-default-folder" + ]; + tray.enable = true; + }; + xdg = { desktopEntries.spotify = { name = "Spotify"; diff --git a/nixos/users/tdpeuter/dotfiles.nix b/nixos/users/tdpeuter/dotfiles.nix index 57d5e16..aca5ba8 100644 --- a/nixos/users/tdpeuter/dotfiles.nix +++ b/nixos/users/tdpeuter/dotfiles.nix @@ -37,12 +37,6 @@ in { recursive = true; source = ../../../stow/hyprland/.config/hypr; }; - ".config/hypr/hy3-plugin.conf" = { - inherit (config.sisyphus.desktop.hyprland) enable; - text = '' - plugin = ${pkgs.hyprlandPlugins.hy3}/lib/libhy3.so - ''; - }; ".config/kitty" = { enable = false; recursive = true; diff --git a/nixos/users/tdpeuter/firefox.nix b/nixos/users/tdpeuter/firefox.nix index 6a51b51..5bb0b46 100644 --- a/nixos/users/tdpeuter/firefox.nix +++ b/nixos/users/tdpeuter/firefox.nix @@ -54,8 +54,6 @@ in { ]; }; - configPath = "/home/tdpeuter/.config/mozilla/firefox"; - languagePacks = [ "en-GB" "nl" diff --git a/nixos/users/tdpeuter/mail.nix b/nixos/users/tdpeuter/mail.nix index 2e05b4b..c618608 100644 --- a/nixos/users/tdpeuter/mail.nix +++ b/nixos/users/tdpeuter/mail.nix @@ -3,6 +3,9 @@ let cfg = config.sisyphus.users.tdpeuter; user = config.users.users.tdpeuter.name; + + profile = "tdpeuter"; + signatures = { default = '' Met vriendelijke groeten @@ -25,95 +28,108 @@ let }; in { config = lib.mkIf cfg.enable { - home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable { - accounts.email.accounts = { - Telenet = { - address = "tibo.depeuter@telenet.be"; - userName = "tibo.depeuter@telenet.be"; - imap = { - host = "imap.telenet.be"; - port = 993; - tls.enable = true; + home-manager.users."${user}" = lib.mkIf config.sisyphus.programs.home-manager.enable { + accounts = { + calendar.accounts = { + Nextcloud = { + primary = true; + remote = { + type = "caldav"; + url = "https://cloud.depeuter.dev/remote.php/dav"; + userName = "tdpeuter"; + }; }; - smtp = { - host = "smtp.telenet.be"; - port = 587; - tls = { + }; + + email.accounts = { + Telenet = { + address = "tibo.depeuter@telenet.be"; + userName = "tibo.depeuter@telenet.be"; + imap = { + host = "imap.telenet.be"; + port = 993; + tls.enable = true; + }; + smtp = { + host = "smtp.telenet.be"; + port = 587; + tls = { + enable = true; + useStartTls = true; + }; + }; + + realName = config.users.users.tdpeuter.description; + signature = { + showSignature = "append"; + text = signatures.default; + }; + + primary = true; + thunderbird = { enable = true; - useStartTls = true; + settings = id: { + "mail.identity.id_${id}.htmlSigText" = signatures.default; + }; }; }; + UGent = { + flavor = "outlook.office365.com"; + address = "tibo.depeuter@ugent.be"; - realName = config.users.users.tdpeuter.description; - signature = { - showSignature = "append"; - text = signatures.default; - }; + realName = config.users.users.tdpeuter.description; + signature = { + showSignature = "append"; + text = signatures.academic; + }; - primary = true; - thunderbird = { - enable = true; - settings = id: { - "mail.identity.id_${id}.htmlSigText" = signatures.default; + thunderbird = { + enable = true; + settings = id: { + "mail.server.server_${id}.authMethod" = 10; + "mail.smtpserver.smtp_${id}.authMethod" = 10; + "mail.identity.id_${id}.htmlSigText" = signatures.academic; + + # Allow PGP + "mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key + "mail.identity.id_${id}.attachPgpKey" = true; + }; }; }; - }; - UGent = { - flavor = "outlook.office365.com"; - address = "tibo.depeuter@ugent.be"; + Gmail = { + flavor = "gmail.com"; + address = "tibo.depeuter@gmail.com"; - realName = config.users.users.tdpeuter.description; - signature = { - showSignature = "append"; - text = signatures.academic; - }; - - thunderbird = { - enable = true; - settings = id: { - "mail.server.server_${id}.authMethod" = 10; - "mail.smtpserver.smtp_${id}.authMethod" = 10; - "mail.identity.id_${id}.htmlSigText" = signatures.academic; - - # Allow PGP - "mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key - "mail.identity.id_${id}.attachPgpKey" = true; + realName = config.users.users.tdpeuter.description; + signature = { + showSignature = "append"; + text = signatures.default; }; - }; - }; - Gmail = { - flavor = "gmail.com"; - address = "tibo.depeuter@gmail.com"; - - realName = config.users.users.tdpeuter.description; - signature = { - showSignature = "append"; - text = signatures.default; - }; - thunderbird = { - enable = true; - settings = id: { - "mail.identity.id_${id}.htmlSigText" = signatures.default; + thunderbird = { + enable = true; + settings = id: { + "mail.identity.id_${id}.htmlSigText" = signatures.default; + }; }; + }; + MrFortem = { + flavor = "gmail.com"; + address = "fortemfiducia@gmail.com"; - }; - MrFortem = { - flavor = "gmail.com"; - address = "fortemfiducia@gmail.com"; + realName = "Fortem Fiducia"; + signature = { + showSignature = "append"; + text = signatures.MrFortem; + }; - realName = "Fortem Fiducia"; - signature = { - showSignature = "append"; - text = signatures.MrFortem; - }; - - thunderbird = { - enable = true; - settings = id: { - "mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem"; - "mail.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem"; - "mail.identity.id_${id}.htmlSigText" = signatures.alias; + thunderbird = { + enable = true; + settings = id: { + "mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem"; + "mail.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem"; + "mail.identity.id_${id}.htmlSigText" = signatures.alias; + }; }; }; }; @@ -122,7 +138,7 @@ in { programs = { thunderbird = { enable = true; - profiles.tdpeuter = { + profiles."${profile}" = { isDefault = true; settings = { # View @@ -139,5 +155,17 @@ in { }; }; }; + + programs = { + thunderbird = { + enable = true; + policies.ExtensionSettings = { + "cardbook" = { + installation_mode = "normal_installed"; + install_url = "https://addons.thunderbird.net/thunderbird/downloads/latest/cardbook/addon-634298-latest.xpi"; + }; + }; + }; + }; }; } diff --git a/scripts/remEYEnder.sh b/scripts/remEYEnder.sh deleted file mode 100644 index b06e5fa..0000000 --- a/scripts/remEYEnder.sh +++ /dev/null @@ -1,36 +0,0 @@ -DURATION=20 # How long it takes to progress the bar fully -STEPS=100 # In how many steps to progress (> 0) - -# Trick to fake decimals -EXP=3 -interval_ms="$(( "${DURATION}" * ( 10 ** "${EXP}" ) / "${STEPS}" ))" -padded_interval_ms="$(printf "%0${EXP}d" "${interval_ms}")" -interval_s="${padded_interval_ms:0:-${EXP}}.${padded_interval_ms:-${EXP}}" - -end_time="$(( "$( date '+%s' )" + "${DURATION}" ))" - -# notify-send args -replace_id="${end_time}" - -counter=0 -while [[ "${end_time}" -gt "$( date '+%s' )" ]]; do - # Remap to [0, 100] - remaining_part="$(( ("${STEPS}" - "${counter}") * 100 / "${STEPS}" ))" - - notify-send \ - 'Look away from your screen :)' 'RemEYEnder' \ - --hint="int:value:${remaining_part}" \ - --category='sysinfo' \ - --replace-id="${replace_id}" - - counter="$(( "${counter}" + 1 ))" - sleep "${interval_s}" -done - -notify-send \ - 'Look away from your screen :)' 'RemEYEnder' \ - --hint="int:value:${remaining_part}" \ - --category='sysinfo' \ - --replace-id="${replace_id}" \ - --expire-time="${interval_ms}" - diff --git a/scripts/screenshot.sh b/scripts/screenshot.sh deleted file mode 100755 index 7858e41..0000000 --- a/scripts/screenshot.sh +++ /dev/null @@ -1,178 +0,0 @@ -#!/usr/bin/env bash -# Take screenshots of areas, windows, or screens, interactively or immediately. -# Usage: screenshot [-t area|window|screen|all] [-a copy|save] [-i] - -set -u - -TARGET='area' -ACTION='copy' -INTERACTIVE='false' - -DATE_STR="$( date '+%F-%H-%M-%S' )" -SAVE_DIR="${HOME}/Nextcloud/Afbeeldingen/Screenshots" - -panic () { - >&2 echo 'Usage: screenshot [-t area|window|screen|all] [-a copy|save] [-i]' - exit 1 -} - -# Get options -while getopts ':t:a:i' option; do - case "${option}" in - t) - if [[ "${OPTARG}" =~ ^(area|window|screen|all)$ ]]; then - TARGET="${OPTARG}" - else - >&2 printf "Error: Invalid target '%s'.\n" "${OPTARG}" - panic - fi - ;; - a) - if [[ "${OPTARG}" =~ ^(copy|save)$ ]]; then - ACTION="${OPTARG}" - else - >&2 printf "Error: Invalid action '%s'.\n" "${OPTARG}" - fi - ;; - i) - INTERACTIVE='true' - ;; - *) - panic - ;; - esac -done - -if [[ "${ACTION}" == 'save' ]]; then - SAVE_PATH="${SAVE_DIR}/${DATE_STR}.png" -else - SAVE_PATH="/tmp/screenshot_${DATE_STR}.png" -fi - -mkdir -p "${SAVE_DIR}" - -if [[ -n "${HYPRLAND_INSTANCE_SIGNATURE:-}" ]] && command -v hyprctl >/dev/null 2>&1 ; then - WM='hyprland' -else - >&2 echo 'Error: Unsupported or undetected Window Manager.' - exit 1 -fi - -for tool in grim slurp wl-copy jq; do - if ! command -v "${tool}" >/dev/null 2>&1; then - >&2 echo "Error: Required dependency '${tool}' is missing." - exit 1 - fi -done - -# Helper functions - -target_area () { - slurp || true -} - -hyprland_target_window () { - hyprctl activewindow -j \ - | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' -} - -hyprland_target_window_interactive () { - local ws_id - ws_id="$( hyprctl activeworkspace -j | jq -r '.id' )" - hyprctl clients -j \ - | jq -r --arg ws "${ws_id}" '.[] | select(.workspace.id == ($ws | tonumber)) | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' \ - | slurp -d \ - || true -} - -hyprland_target_screen () { - local ws_id - ws_id="$(hyprctl activeworkspace -j | jq -r '.id')" - hyprctl monitors -j \ - | jq -r --arg ws "${ws_id}" '.[] | select(.activeWorkspace.id == ($ws | tonumber)) | .name' -} - -hyprland_target_screen_interactive () { - hyprctl monitors -j \ - | jq -r '.[] | "\(.x),\(.y) \(.width)x\(.height)"' \ - | slurp -d \ - || true -} - -# Capturing the screenshot - -GEOMETRY='' -OUTPUT='' - -fetch_target_data () { - if [[ "${TARGET}" == 'area' ]]; then - GEOMETRY="$( target_area )" - return 0 - fi - - local route_key="${WM}_${TARGET}_${INTERACTIVE}" - - case "${route_key}" in - 'hyprland_window_false') - GEOMETRY="$( hyprland_target_window )" - ;; - 'hyprland_window_true') - GEOMETRY="$( hyprland_target_window_interactive )" - ;; - 'hyprland_screen_false') - OUTPUT="$( hyprland_target_screen )" - ;; - 'hyprland_screen_true') - GEOMETRY="$( hyprland_target_screen_interactive )" - ;; - - *) - >&2 echo 'Error: Unmapped execution route.' - exit 1 - ;; - esac -} - -if [[ "${TARGET}" != 'all' ]]; then - fetch_target_data -fi - -# Detect cancellation, Escape pressed during slurp results in empty string. -if [[ "${INTERACTIVE}" == 'true' || "${TARGET}" == 'area' ]]; then - if [[ -z "${GEOMETRY}" && -z "${OUTPUT}" ]]; then - exit 0 - fi -fi - -# Take the screenshot -if [[ -n "${GEOMETRY}" ]]; then - grim -g "${GEOMETRY}" "${SAVE_PATH}" -elif [[ -n "${OUTPUT}" ]]; then - grim -o "${OUTPUT}" "${SAVE_PATH}" -else - grim "${SAVE_PATH}" -fi - -# Route to clipboard -if [[ "${ACTION}" == 'copy' ]]; then - wl-copy < "${SAVE_PATH}" -fi - -# Notifications -if [[ "${TARGET}" != 'area' || "${INTERACTIVE}" == 'true' ]]; then - NOTIF_ICON="${SAVE_PATH}" - - if command -v magick >/dev/null 2>&1; then - THUMB_PATH="/tmp/thumb_${DATE_STR}.png" - if magick "${SAVE_PATH}" -thumbnail '320x320^' -gravity center -extent 320x320 "${THUMB_PATH}" >/dev/null 2>&1; then - NOTIF_ICON="${THUMB_PATH}" - fi - fi - - if [[ "${ACTION}" == 'copy' ]]; then - notify-send -a 'Grim' -i "${NOTIF_ICON}" 'Screenshot Captured' 'Copied to clipboard' - else - notify-send -a 'Grim' -i "${NOTIF_ICON}" 'Screenshot Captured' "Saved to ${SAVE_PATH}" - fi -fi - diff --git a/scripts/sunset.sh b/scripts/sunset.sh new file mode 100755 index 0000000..f185115 --- /dev/null +++ b/scripts/sunset.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# Script to disable for an hour or immediately continue wlsunset. 'Toggle' + +# Check if wlsunset is still running +pid=$(pgrep wlsunset) + +if [[ -z ${pid} ]] ; then + # Start wlsunset right away. + wlsunset -l 50.50 -L 4.00 -t 3000 -T 6500 & +else + # Currently stop wlsunset but restart in an hour. + kill ${pid} + notify-send 'Stopping sunset' 'Restarting in an hour' + at now +1 hours -f "${0}" +fi diff --git a/scripts/toggle-light-dark.sh b/scripts/toggle-light-dark.sh index 03525d5..c4667bf 100755 --- a/scripts/toggle-light-dark.sh +++ b/scripts/toggle-light-dark.sh @@ -6,8 +6,8 @@ ### Variables ### ################# -THEME_LIGHT='light' -THEME_DARK='dark' +THEME_LIGHT='tdpeuter-light' +THEME_DARK='tdpeuter-dark' THEME_DEFAULT="${THEME_LIGHT}" STATE_DIR="${HOME}/.local/state/sisyphus" @@ -18,10 +18,6 @@ declare -A theme_next theme_next[${THEME_LIGHT}]="${THEME_DARK}" theme_next[${THEME_DARK}]="${THEME_LIGHT}" -declare -A personal_theme -personal_theme[${THEME_LIGHT}]='tdpeuter-light' -personal_theme[${THEME_DARK}]='tdpeuter-dark' - declare -A gsettings_alt gsettings_alt[${THEME_LIGHT}]='default' gsettings_alt[${THEME_DARK}]='prefer-dark' @@ -42,13 +38,13 @@ wallpaper[${THEME_DARK}]="bg-dark" while getopts ":m:g" option; do case "${option}" in m) - if [ "${OPTARG}" == "${THEME_LIGHT}" ]; then + if [ "${OPTARG}" == 'light' ]; then theme="${THEME_LIGHT}" - elif [ "${OPTARG}" == "${THEME_DARK}" ]; then + elif [ "${OPTARG}" == 'dark' ]; then theme="${THEME_DARK}" else - >&2 printf "Error: Invalid mode: '%s'.\nShould be either 'light' or 'dark', falling back to default: '%s'\n" "${option}" "${THEME_DEFAULT}" - theme="${THEME_DEFAULT}" + >&2 printf "Error: Invalid mode: '%s'.\nShould be either 'light' or 'dark'\n" "${option}" + exit 1 fi ;; g) @@ -104,8 +100,8 @@ function update_terminal_colors() { # Foot if [ "$(command -v foot)" ] ; then # Make color theme switch 'permanent'. - echo "initial-color-theme=${theme}" > ~/.config/foot/theme.ini & - # We still have to change the terminal colors ourselves for existing sessions. + echo "include=~/.config/foot/themes/${theme}.ini" > ~/.config/foot/theme.ini & + # We will have to change the terminal colors ourselves. update_terminal_colors & fi @@ -117,7 +113,7 @@ fi # Kitty if [ "$(command -v kitty)" ]; then - kitten themes --reload-in all --config-file-name theme.conf "${personal_theme[${theme}]}" & + kitten themes --reload-in all --config-file-name theme.conf "${theme}" & fi # Sway @@ -133,19 +129,17 @@ fi # Vifm if [ "$(command -v vifm)" ]; then - vifm_theme="${personal_theme[${theme}]}" - echo "colorscheme ${vifm_theme} Default-256 Default" > ~/.config/vifm/theme.conf + echo "colorscheme ${theme} Default-256 Default" > ~/.config/vifm/theme.conf # Update all running instances - vifm --remote -c "colorscheme ${vifm_theme}" & + vifm --remote -c "colorscheme ${theme}" & fi # Vim if [ "$(command -v vim)" ]; then - vim_theme="${personal_theme[${theme}]}" - echo "colorscheme ${vim_theme}" > ~/.vim/theme.conf + echo "colorscheme ${theme}" > ~/.vim/theme.conf # Update all running instances for server in $(vim --serverlist); do - vim --servername "${server}" --remote-send ":colorscheme ${vim_theme}" + vim --servername "${server}" --remote-send ":colorscheme ${theme}" done fi diff --git a/scripts/toggle-nightlight.sh b/scripts/toggle-nightlight.sh deleted file mode 100755 index b4902b0..0000000 --- a/scripts/toggle-nightlight.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash -# Script to disable for an hour or immediately continue wlsunset. 'Toggle' - -# Queue for at, check man page for options -ATQUEUE='T' - -# Get current state -pid=$(pgrep wlsunset) - -while getopts ":g" option; do - case "${option}" in - g) - if [[ -z "${pid}" ]]; then - state='active' - tooltip='Turn off nightlight' - class='activated' - else - state='inactive' - tooltip='Turn on nightlight' - class='none' - fi -printf '{"alt": "%s", "tooltip": "%s", "class": "%s" }' \ - "${state}" "${tooltip}" "${class}" - exit 0 - ;; - *) - echo 'Invalid option' - exit 1 - ;; - esac -done - -# Toggle -if [[ -z ${pid} ]] ; then - # Clear queue - for job in $(at -l -q "${ATQUEUE}" | cut -f1); do - at -r "${job}" - done - - if [ "$( command -v wlsunset )" ]; then - notify-send 'Starting nightlight' - wlsunset -l 50.50 -L 4.00 -t 3000 -T 6500 & - else - notify-send 'Nightlight is not available' - exit 1 - fi -else - # Currently stop wlsunset but restart in an hour. - kill ${pid} - notify-send 'Stopping nightlight' 'Restarting in an hour' - at now +1 hours -f "${0}" -q "${ATQUEUE}" -fi diff --git a/stow/foot/.config/foot/foot.ini b/stow/foot/.config/foot/foot.ini index 3796dad..efcd8d9 100644 --- a/stow/foot/.config/foot/foot.ini +++ b/stow/foot/.config/foot/foot.ini @@ -1,11 +1,7 @@ # -*- conf -*- # ~/.config/foot/foot.ini -# Color scheme definitions -include=~/.config/foot/themes/tdpeuter-light.ini -include=~/.config/foot/themes/tdpeuter-dark.ini - -# Default color scheme selection +# Include the correct color scheme include=~/.config/foot/theme.ini # shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) @@ -27,20 +23,17 @@ font=letter extended:size=10 # vertical-letter-offset=0 # underline-offset= # underline-thickness= -# strikout-thickness= # box-drawings-uses-font-glyphs=no dpi-aware=yes -# gamma-correct-blending=no -# initial-color-theme=dark # initial-window-size-pixels=700x500 # Or, # initial-window-size-chars= # initial-window-mode=windowed -# pad=10x10 # optionally append 'center' -# resize-by-cells=yes -# resize-keep-grid=yes +#pad=10x10 # optionally append 'center' # resize-delay-ms=100 +# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} + # bold-text-in-bright=no # word-delimiters=,│`|:"'()[]{}<> # selection-target=primary @@ -48,28 +41,16 @@ dpi-aware=yes # utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux) # utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD) -# uppercase-regex-insert=yes - [environment] # name=value -[security] -# osc52=enabled # disabled|copy-enabled|paste-enabled|enabled - [bell] -# system=yes urgent=yes notify=yes visual=yes # command= # command-focused=no -[desktop-notifications] -# command=notify-send --wait --app-name ${app-id} --icon ${app-id} --category ${category} --urgency ${urgency} --expire-time ${expire-time} --hint STRING:image-path:${icon} --hint BOOLEAN:suppress-sound:${muted} --hint STRING:sound-name:${sound-name} --replace-id ${replace-id} ${action-argument} --print-id -- ${title} ${body} -# command-action-argument=--action ${action-name}=${action-label} -# close="" -# inhibit-when-focused=yes - [scrollback] # lines=1000 # multiplier=3.0 @@ -79,26 +60,14 @@ visual=yes [url] # launch=xdg-open ${url} # label-letters=sadfjklewcmpgh -# style=dotted (none|single|double|curly|doted|dashed) # osc8-underline=url-mode -# regex=(((https?://|mailto:|ftp://|file:|ssh:|ssh://|git://|tel:|magnet:|ipfs://|ipns://|gemini://|gopher://|news:)|www\.)([0-9a-zA-Z:/?#@!$&*+,;=.~_%^\-]+|\([]\["0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*\)|\[[\(\)"0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*\]|"[]\[\(\)0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*"|'[]\[\(\)0-9a-zA-Z:/?#@!$&*+,;=.~_%^\-]*')+([0-9a-zA-Z/#@$&*+=~_%^\-]|\([]\["0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*\)|\[[\(\)"0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*\]|"[]\[\(\)0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*"|'[]\[\(\)0-9a-zA-Z:/?#@!$&*+,;=.~_%^\-]*')) - -# You can define your own regex's, by adding a section called -# 'regex:' with a 'regex' and 'launch' key. These can then be tied -# to a key-binding. See foot.ini(5) for details - -# [regex:your-fancy-name] -# regex= -# launch= ${match} -# -# [key-bindings] -# regex-launch=[your-fancy-name] Control+Shift+q -# regex-copy=[your-fancy-name] Control+Alt+Shift+q +# protocols=http, https, ftp, ftps, file, gemini, gopher +# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[] [cursor] # style=block +# color= # blink=no -# blink-rate=500 # beam-thickness=1.5 # underline-thickness= @@ -109,10 +78,54 @@ visual=yes [touch] # long-press-delay=400 -# colors set by themes +[colors] +alpha=0.8 +# background=242424 +# foreground=ffffff +flash=b00020 +# flash-alpha=0.5 + +## Normal/regular colors (color palette 0-7) +# regular0=242424 # black +# regular1=f62b5a # red +# regular2=47b413 # green +# regular3=e3c401 # yellow +# regular4=24acd4 # blue +# regular5=f2affd # magenta +# regular6=13c299 # cyan +# regular7=e6e6e6 # white + +## Bright colors (color palette 8-15) +# bright0=616161 # bright black +# bright1=ff4d51 # bright red +# bright2=35d450 # bright green +# bright3=e9e836 # bright yellow +# bright4=5dc5f8 # bright blue +# bright5=feabf2 # bright magenta +# bright6=24dfc4 # bright cyan +# bright7=ffffff # bright white + +## dimmed colors (see foot.ini(5) man page) +# dim0= +# ... +# dim7= + +## The remaining 256-color palette +# 16 = <256-color palette #16> +# ... +# 255 = <256-color palette #255> + +## Misc colors +# selection-foreground= +# selection-background= +# jump-labels= # black-on-yellow +# scrollback-indicator= # black-on-bright-blue +# search-box-no-match= # black-on-red +# search-box-match= # black-on-yellow +# urls= [csd] -# preferred=server +preferred=none # size=26 # font= # color= @@ -127,10 +140,10 @@ visual=yes # button-close-color= [key-bindings] -# scrollback-up-page=Shift+Page_Up Shift+KP_Page_Up +# scrollback-up-page=Shift+Page_Up # scrollback-up-half-page=none # scrollback-up-line=none -# scrollback-down-page=Shift+Page_Down Shift+KP_Page_Down +# scrollback-down-page=Shift+Page_Down # scrollback-down-half-page=none # scrollback-down-line=none # scrollback-home=none @@ -149,22 +162,17 @@ visual=yes # pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none # pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none # pipe-selected=[xargs -r firefox] none -# pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard # show-urls-launch=Control+Shift+o # show-urls-copy=none # show-urls-persistent=none # prompt-prev=Control+Shift+z # prompt-next=Control+Shift+x # unicode-input=Control+Shift+u -# color-theme-switch-1=none -# color-theme-switch-2=none -# color-theme-toggle=none # noop=none -# quit=none [search-bindings] # cancel=Control+g Control+c Escape -# commit=Return KP_Enter +# commit=Return # find-prev=Control+r # find-next=Control+s # cursor-left=Left Control+b @@ -177,8 +185,6 @@ visual=yes # delete-prev-word=Mod1+BackSpace Control+BackSpace # delete-next=Delete # delete-next-word=Mod1+d Control+Delete -# delete-to-start=Control+u -# delete-to-end=Control+k # extend-char=Shift+Right # extend-to-word-boundary=Control+w Control+Shift+Right # extend-to-next-whitespace=Control+Shift+w @@ -190,10 +196,10 @@ visual=yes # clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste # primary-paste=Shift+Insert # unicode-input=none -# scrollback-up-page=Shift+Page_Up Shift+KP_Page_Up +# scrollback-up-page=Shift+Page_Up # scrollback-up-half-page=none # scrollback-up-line=none -# scrollback-down-page=Shift+Page_Down Shift+KP_Page_Down +# scrollback-down-page=Shift+Page_Down # scrollback-down-half-page=none # scrollback-down-line=none # scrollback-home=none @@ -207,10 +213,8 @@ visual=yes # \x03=Mod4+c # Map Super+c -> Ctrl+c [mouse-bindings] -# scrollback-up-mouse=BTN_WHEEL_BACK -# scrollback-down-mouse=BTN_WHEEL_FORWARD -# font-increase=Control+BTN_WHEEL_BACK -# font-decrease=Control+BTN_WHEEL_FORWARD +# scrollback-up-mouse=BTN_BACK +# scrollback-down-mouse=BTN_FORWARD # selection-override-modifiers=Shift # primary-paste=BTN_MIDDLE # select-begin=BTN_LEFT diff --git a/stow/foot/.config/foot/themes/tdpeuter-dark.ini b/stow/foot/.config/foot/themes/tdpeuter-dark.ini index 89be385..4ee35d8 100644 --- a/stow/foot/.config/foot/themes/tdpeuter-dark.ini +++ b/stow/foot/.config/foot/themes/tdpeuter-dark.ini @@ -1,8 +1,8 @@ -[colors-dark] -alpha=0.8 +[colors] +# alpha=0.8 background=171717 foreground=dcdfe4 -flash=b00020 +# flash=b00020 # flash-alpha=0.5 ## Normal/regular colors (color palette 0-7) diff --git a/stow/foot/.config/foot/themes/tdpeuter-light.ini b/stow/foot/.config/foot/themes/tdpeuter-light.ini index 0cb8dbc..daeebb9 100644 --- a/stow/foot/.config/foot/themes/tdpeuter-light.ini +++ b/stow/foot/.config/foot/themes/tdpeuter-light.ini @@ -1,8 +1,8 @@ -[colors-light] -alpha=0.8 +[colors] +# alpha=0.8 background=fafafa foreground=000000 -flash=b00020 +# flash=b00020 # flash-alpha=0.5 ## Normal/regular colors (color palette 0-7) diff --git a/stow/git/.config/git/config b/stow/git/.config/git/config index 80fca16..d0a80e2 100644 --- a/stow/git/.config/git/config +++ b/stow/git/.config/git/config @@ -23,9 +23,6 @@ [init] defaultBranch = "main" -[rebase] - autoSquash = "true" - [safe] directory = "/home/tdpeuter/university/sshfs" diff --git a/stow/hyprland/.config/hypr/hy3.conf b/stow/hyprland/.config/hypr/hy3.conf index 6cd7c06..7d3e999 100644 --- a/stow/hyprland/.config/hypr/hy3.conf +++ b/stow/hyprland/.config/hypr/hy3.conf @@ -1,9 +1,6 @@ -# -# ~/.config/hypr/hy3.conf -# -# Load the plugin. File should contain `plugin = /path/to/lib/libhy3.so` -source = /home/tdpeuter/.config/hypr/hy3-plugin.conf +# TODO Do not hardcode this path +plugin = /nix/store/afivj8v5kfdsadxs4pa45vh0y65s3ajm-hy3-hl0.49.0/lib/libhy3.so general:layout = hy3 diff --git a/stow/hyprland/.config/hypr/hyprland.conf b/stow/hyprland/.config/hypr/hyprland.conf index 1ccbc2e..6dc3b6b 100644 --- a/stow/hyprland/.config/hypr/hyprland.conf +++ b/stow/hyprland/.config/hypr/hyprland.conf @@ -85,6 +85,9 @@ animations { } 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 @@ -100,12 +103,6 @@ gestures { workspace_swipe_forever = true workspace_swipe_use_r = false - - # hyprlang if !HYPRLAND_V_0_53 - workspace_swipe = true - workspace_swipe_fingers = 3 - workspace_swipe_min_fingers = false - # hyprlang endif } group { @@ -261,10 +258,6 @@ env = XCURSOR_SIZE,24 # SHIFT CAPS CTRL/CONTROL ALT MOD2 MOD3 SUPER/WIN/LOGO/MOD4 MOD5 $flag = MOD4 -$LMB = mouse:272 -$RMB = mouse:273 -$MMB = mouse:274 - $left = h $down = j $up = k diff --git a/stow/hyprland/.config/hypr/keybinds.conf b/stow/hyprland/.config/hypr/keybinds.conf index f628da6..1a4f1e1 100644 --- a/stow/hyprland/.config/hypr/keybinds.conf +++ b/stow/hyprland/.config/hypr/keybinds.conf @@ -56,10 +56,6 @@ bind = $flag+Shift, s, settiled bind = $flag, F11, fullscreen, 1 bind = $flag+Shift, F11, fullscreen, 0 -bindm = $flag, $LMB, movewindow -bindm = $flag, $RMB, resizewindow -bindc = $flag, $LMB, togglefloating - # Workspaces $ws1 = 1 diff --git a/stow/hyprland/.config/hypr/modes.conf b/stow/hyprland/.config/hypr/modes.conf index 4e11c56..61bbbf0 100644 --- a/stow/hyprland/.config/hypr/modes.conf +++ b/stow/hyprland/.config/hypr/modes.conf @@ -1,62 +1,3 @@ -# Resizing -$mode_resize = Resize -bind = $flag, R, submap, $mode_resize -submap = $mode_resize - -bind = , F, togglefloating - -binde = , $right, resizeactive, 10 0 -binde = , $up, resizeactive, 0 -10 -binde = , $left, resizeactive, -10 0 -binde = , $down, resizeactive, 0 10 - -binde = , Right , resizeactive, 10 0 -binde = , Up, resizeactive, 0 -10 -binde = , Left, resizeactive, -10 0 -binde = , Down, resizeactive, 0 10 - -binde = Shift, $right, resizeactive, 50 0 -binde = Shift, $up, resizeactive, 0 -50 -binde = Shift, $left, resizeactive, -50 0 -binde = Shift, $down, resizeactive, 0 50 - -binde = Shift, Right, resizeactive, 50 0 -binde = Shift, Up, resizeactive, 0 -50 -binde = Shift, Left, resizeactive, -50 0 -binde = Shift, Down, resizeactive, 0 50 - -binde = $flag, $right, moveactive, 10 0 -binde = $flag, $up, moveactive, 0 -10 -binde = $flag, $left, moveactive, -10 0 -binde = $flag, $down, moveactive, 0 10 - -binde = $flag, Right, moveactive, 10 0 -binde = $flag, Up, moveactive, 0 -10 -binde = $flag, Left, moveactive, -10 0 -binde = $flag, Down, moveactive, 0 10 - -binde = $flag+Shift, $right, moveactive, 50 0 -binde = $flag+Shift, $up, moveactive, 0 -50 -binde = $flag+Shift, $left, moveactive, -50 0 -binde = $flag+Shift, $down, moveactive, 0 50 - -binde = $flag+Shift, Right , moveactive, 50 0 -binde = $flag+Shift, Up, moveactive, 0 -50 -binde = $flag+Shift, Left, moveactive, -50 0 -binde = $flag+Shift, Down, moveactive, 0 50 - - -# hyprlang if HYPRLAND_V_0_53 -#gesture = 3, swipe, move -#gesture = 4, swipe, resize -# hyprlang endif - -bind = $flag, R, submap, reset -bind = , Escape, submap, reset -bind = , Return, submap, reset - -submap = reset - # System actions $mode_system = System (l)ock, (s)leep, (h)ibernate, (r)eboot, (Shift+s)hutdown bind = Ctrl+Alt, Delete, submap, $mode_system @@ -95,11 +36,3 @@ bind = , Return, submap, reset submap = reset -# Ignore (all) keybinds. Useful when working with Virtual Machines. -$mode_ignore=Ignore keybinds - Press Control+Alt+Insert to escape. -bind = Ctrl+Alt, Insert, submap, $mode_ignore -submap = $mode_ignore - -bind = Ctrl+Alt, Insert, submap, reset - -submap = reset diff --git a/stow/ssh/.ssh/config b/stow/ssh/.ssh/config index 548681d..ea3df8e 100644 --- a/stow/ssh/.ssh/config +++ b/stow/ssh/.ssh/config @@ -60,7 +60,7 @@ Host Gitea Host Nextcloud User administrator - Hostname 192.168.0.23 + Hostname 192.168.0.14 IdentitiesOnly yes IdentityFile /run/secrets/HomeLab/Nextcloud/ssh diff --git a/stow/vim/.vimrc b/stow/vim/.vimrc index bd87fe5..379ddb4 100644 --- a/stow/vim/.vimrc +++ b/stow/vim/.vimrc @@ -25,7 +25,8 @@ set smarttab set tabstop=4 set title set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx -set wildmenu "" Show suggestions on another line instead of inplace +"" Show suggestions on another line instead of inplace +set wildmenu syntax enable diff --git a/stow/waybar/.config/waybar/config.jsonc b/stow/waybar/.config/waybar/config.jsonc index addef9e..ff861e3 100644 --- a/stow/waybar/.config/waybar/config.jsonc +++ b/stow/waybar/.config/waybar/config.jsonc @@ -23,17 +23,18 @@ ], "include": [ "~/.config/waybar/modules.json" - ], - "start_hidden": true + ] }, /* Toggle this bar, contains all information */ { "name": "toggle", + "mode": "hide", + "ipc": true, "position": "top", "height": 26, /* Show this bar on top of the other one, seemingly replacing it. */ - /*"margin": "-26px 0 0 0",*/ + "margin": "-26px 0 0 0", "modules-left": [ "custom/meta", "sway/window", @@ -50,7 +51,6 @@ "privacy", "tray", "group/control-center", - "group/display", "group/network", "pulseaudio", "group/power", @@ -58,7 +58,6 @@ ], "include": [ "~/.config/waybar/modules.json" - ], - "reload_style_on_change": true + ] } ] diff --git a/stow/waybar/.config/waybar/modules.json b/stow/waybar/.config/waybar/modules.json index 683d70b..6cec15d 100644 --- a/stow/waybar/.config/waybar/modules.json +++ b/stow/waybar/.config/waybar/modules.json @@ -1,15 +1,4 @@ { - "backlight": { - "device": "intel_backlight", - "format": "{percent}% {icon}", - "format-icons": [ - "\uf111", /*  */ - "\uf185" /*  */ - ], - "on-click": "brightnessctl -sq set 0", - "on-click-right": "wl-mirror $(hyprctl monitors -j | jq --raw-output '.[] | select(.focused) | .name')" - }, - "battery": { "format": "{capacity}% {icon}", "format-alt": "{time} {icon}", @@ -82,12 +71,6 @@ "tooltip": false }, - "custom/display": { - "format": "\ue163", /*  */ - "tooltip": false, - "on-click": "wdisplays" - }, - "custom/meta": { "format": "\uf17c", /*  */ "tooltip": false, @@ -151,19 +134,6 @@ "tooltip": true }, - "custom/toggle-nightlight": { - "exec": "bash ${SCRIPT_DIR}/toggle-nightlight.sh -g", - "interval": 60, - "return-type": "json", - "on-click": "bash ${SCRIPT_DIR}/toggle-nightlight.sh", - "format": "{icon}", - "format-icons": { - "active": "\uf186", /*  */ - "inactive": "\uf0eb" /*  */ - }, - "tooltip": true - }, - "custom/toggle-notifications": { "exec": "bash ${SCRIPT_DIR}/toggle-notifications.sh -g", "interval": 60, @@ -193,31 +163,12 @@ "group/control-center": { "orientation": "inherit", "modules": [ - /* Preview */ "custom/control-center", - /* Left-most */ "group/language", - "custom/toggle-notifications" - /* Right-most */ - ], - "drawer": { - "transition-duration": 500, - "transition-left-to-right": false, - "children-class": "drawer-child" - } - }, - - "group/display": { - "orientation": "inherit", - "modules": [ - /* Preview */ - "custom/display", - /* Most-left */ - "idle_inhibitor", - "custom/toggle-nightlight", + /* "hyprland/language", "sway/language", */ + "custom/toggle-notifications", "custom/toggle-light-dark", - "backlight" - /* Most-right */ + "bluetooth" ], "drawer": { "transition-duration": 500, @@ -248,7 +199,6 @@ /* Preview */ "network", /* Most-left */ - "bluetooth", "custom/toggle-tailscale" /* Most-right */ ], @@ -270,7 +220,8 @@ "custom/system-hibernate", "custom/system-sleep", "custom/system-lock", - "power-profiles-daemon" + "power-profiles-daemon", + "idle_inhibitor" /* Most-right */ ], "drawer": { diff --git a/stow/waybar/.config/waybar/style.css b/stow/waybar/.config/waybar/style.css index 39880dd..ecc08fc 100644 --- a/stow/waybar/.config/waybar/style.css +++ b/stow/waybar/.config/waybar/style.css @@ -82,13 +82,12 @@ window#waybar { #privacy, #privacy-item, #privacy-item.screenshare, -#privacy-item.audio-in, -#privacy-item.audio-out { +#privacy-item.audio-in { background-color: @safety; } -#privacy-item { - padding: 0; +#privacy-item.screenshare { + background-color: #000000; } #pulseaudio.muted {