diff --git a/README.md b/README.md
index a52de66..316eeb2 100644
--- a/README.md
+++ b/README.md
@@ -216,6 +216,7 @@ Other dotfiles that I learned / copy from:
- [Frost-Phoenix/nixos-config](https://github.com/Frost-Phoenix/nixos-config): This is the repository that I cloned and changed to my needs. Their credits are in their repository's readme.
- [notthebee/nix-config](https://github.com/notthebee/nix-config)
- [Ruixi-rebirth/melted-flakes](https://github.com/Ruixi-rebirth/melted-flakes): Waybar configuration mostly
+- [mrusme/dotfiles](https://github.com/mrusme/dotfiles)
[Hyprland]: https://github.com/hyprwm/Hyprland
diff --git a/flake.lock b/flake.lock
index f8e9d96..faa1526 100644
--- a/flake.lock
+++ b/flake.lock
@@ -41,11 +41,11 @@
]
},
"locked": {
- "lastModified": 1724850097,
- "narHash": "sha256-3BHxvFb3NJzch1X8puRMkVZujOoarQ1llu3ZcwuvsKU=",
+ "lastModified": 1727261104,
+ "narHash": "sha256-rxDI7WrxIRV9it9mDCHcLa7xQykf1JloXnoXr5xQ8zI=",
"owner": "hyprwm",
"repo": "aquamarine",
- "rev": "23c7925dd31e79e8c06086ace3edb129a070ac01",
+ "rev": "b82fdaff917582a9d568969e15e61b398c71e990",
"type": "github"
},
"original": {
@@ -56,11 +56,11 @@
},
"catppuccin": {
"locked": {
- "lastModified": 1724469296,
- "narHash": "sha256-p3R4LUNk6gC+fTKRUm9ByXaoRIocnQMwVuJSIxECQ8o=",
+ "lastModified": 1726952185,
+ "narHash": "sha256-l/HbsQjJMT6tlf8KCooFYi3J6wjIips3n6/aWAoLY4g=",
"owner": "catppuccin",
"repo": "nix",
- "rev": "874e668ddaf3687e8d38ccd0188a641ffefe1cfb",
+ "rev": "630b559cc1cb4c0bdd525af506935323e4ccd5d1",
"type": "github"
},
"original": {
@@ -149,11 +149,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
- "lastModified": 1722555600,
- "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
+ "lastModified": 1726153070,
+ "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
+ "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a",
"type": "github"
},
"original": {
@@ -299,11 +299,11 @@
]
},
"locked": {
- "lastModified": 1724435763,
- "narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=",
+ "lastModified": 1727383923,
+ "narHash": "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
+ "rev": "ffe2d07e771580a005e675108212597e5b367d2d",
"type": "github"
},
"original": {
@@ -339,11 +339,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
- "lastModified": 1722636442,
- "narHash": "sha256-+7IS0n3/F0I5j6ZbrVlLcIIPHY3o+/vLAqg/G48sG+w=",
+ "lastModified": 1725551787,
+ "narHash": "sha256-6LgsZHz8w3g4c9bRUwRAR+WIMwFGGf3P1VZQcKNRf2o=",
"owner": "hyprwm",
"repo": "contrib",
- "rev": "9d67858b437d4a1299be496d371b66fc0d3e01f6",
+ "rev": "1e531dc49ad36c88b45bf836081a7a2c8927e072",
"type": "github"
},
"original": {
@@ -368,11 +368,11 @@
]
},
"locked": {
- "lastModified": 1722623071,
- "narHash": "sha256-sLADpVgebpCBFXkA1FlCXtvEPu1tdEsTfqK1hfeHySE=",
+ "lastModified": 1727532803,
+ "narHash": "sha256-ZaZ7h7PY8mQc4vtGmVqWLAq9CAO02gHMyNR5yY8zDmM=",
"owner": "hyprwm",
"repo": "hyprcursor",
- "rev": "912d56025f03d41b1ad29510c423757b4379eb1c",
+ "rev": "b98726e431d4d3ed58bd58bee1047cdb81cec69f",
"type": "github"
},
"original": {
@@ -385,6 +385,7 @@
"inputs": {
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
+ "hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
@@ -395,11 +396,11 @@
"xdph": "xdph"
},
"locked": {
- "lastModified": 1724967012,
- "narHash": "sha256-Zn5Eq6Elq0SRInPrEYGGoo972JzVxd5zExF7FSuTKlo=",
+ "lastModified": 1727679999,
+ "narHash": "sha256-NWF3SKLMFjM0M93PDWM9+wKbc5XcnJEmojiZdNdPpUw=",
"ref": "refs/heads/main",
- "rev": "604eb21a7e55d85ec7f6cb8cba39fc4c20a07a9d",
- "revCount": 5157,
+ "rev": "f6387536f62454f82039b42f641cd8c44153ad47",
+ "revCount": 5281,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
@@ -411,6 +412,31 @@
}
},
"hyprland-protocols": {
+ "inputs": {
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1727451107,
+ "narHash": "sha256-qV9savtHwmZUa0eJE294WYJjKPGB2+bJhwByFShsVyo=",
+ "owner": "hyprwm",
+ "repo": "hyprland-protocols",
+ "rev": "6b3261ee13a6d2b99de79a31d352f6996e35bde3",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprland-protocols",
+ "type": "github"
+ }
+ },
+ "hyprland-protocols_2": {
"inputs": {
"nixpkgs": [
"hyprland",
@@ -453,11 +479,11 @@
]
},
"locked": {
- "lastModified": 1724174162,
- "narHash": "sha256-fOOBLwil6M9QWMCiSULwjMQzrXhHXUnEqmjHX5ZHeVI=",
+ "lastModified": 1725997860,
+ "narHash": "sha256-d/rZ/fHR5l1n7PeyLw0StWMNLXVU9c4HFyfskw568so=",
"owner": "hyprwm",
"repo": "hyprlang",
- "rev": "16e5c9465f04477d8a3dd48a0a26bf437986336c",
+ "rev": "dfeb5811dd6485490cce18d6cc1e38a055eea876",
"type": "github"
},
"original": {
@@ -469,15 +495,16 @@
"hyprpicker": {
"inputs": {
"hyprutils": "hyprutils_2",
+ "hyprwayland-scanner": "hyprwayland-scanner_2",
"nixpkgs": "nixpkgs_3",
"systems": "systems_2"
},
"locked": {
- "lastModified": 1724326010,
- "narHash": "sha256-84Zzoi6bWAnDKDxoqiv3DCIjQmP1Y8vynP6//Wtnpc4=",
+ "lastModified": 1727630712,
+ "narHash": "sha256-poY/bVJ0Ytx8lf2KLx3YgxRJvgQlFiFEDXukpy1AY9I=",
"owner": "hyprwm",
"repo": "hyprpicker",
- "rev": "38fe668e58014c75cf28f7cb5fc136aa710e7039",
+ "rev": "4d6d01c4953037f944310cdf6e0183f0d58b370c",
"type": "github"
},
"original": {
@@ -498,11 +525,11 @@
]
},
"locked": {
- "lastModified": 1724863980,
- "narHash": "sha256-7Ke9wFRYPUIXwm5ZndGHkWBKj6BsFTkSEXUNXQRHE54=",
+ "lastModified": 1727300645,
+ "narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=",
"owner": "hyprwm",
"repo": "hyprutils",
- "rev": "aadf9a27dddd2272ca354ba5a22a0c2d1f919039",
+ "rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c",
"type": "github"
},
"original": {
@@ -523,11 +550,11 @@
]
},
"locked": {
- "lastModified": 1721324102,
- "narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=",
+ "lastModified": 1727300645,
+ "narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=",
"owner": "hyprwm",
"repo": "hyprutils",
- "rev": "962582a090bc233c4de9d9897f46794280288989",
+ "rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c",
"type": "github"
},
"original": {
@@ -548,11 +575,36 @@
]
},
"locked": {
- "lastModified": 1721324119,
- "narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=",
+ "lastModified": 1726874836,
+ "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
- "rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30",
+ "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprwayland-scanner",
+ "type": "github"
+ }
+ },
+ "hyprwayland-scanner_2": {
+ "inputs": {
+ "nixpkgs": [
+ "hyprpicker",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprpicker",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1726874836,
+ "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=",
+ "owner": "hyprwm",
+ "repo": "hyprwayland-scanner",
+ "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e",
"type": "github"
},
"original": {
@@ -590,11 +642,11 @@
"umu": "umu"
},
"locked": {
- "lastModified": 1724549799,
- "narHash": "sha256-F4lN1qmMJpJALwZ2ENb6MDSXG40om7ktZyAt7yh/DS8=",
+ "lastModified": 1727574085,
+ "narHash": "sha256-vwERoi5pcO39raf92QMS6BjujfbRiHWA0rOb/XlQlmc=",
"owner": "fufexan",
"repo": "nix-gaming",
- "rev": "963803d3be8ed721b21326804513dec884e9d494",
+ "rev": "6401744e317693efe56495a863322894767277fd",
"type": "github"
},
"original": {
@@ -621,14 +673,14 @@
},
"nixpkgs-lib": {
"locked": {
- "lastModified": 1722555339,
- "narHash": "sha256-uFf2QeW7eAHlYXuDktm9c25OxOyCoUOQmh5SZ9amE5Q=",
+ "lastModified": 1725233747,
+ "narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=",
"type": "tarball",
- "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz"
+ "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
},
"original": {
"type": "tarball",
- "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz"
+ "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
}
},
"nixpkgs-lib_2": {
@@ -661,11 +713,11 @@
},
"nixpkgs_3": {
"locked": {
- "lastModified": 1721138476,
- "narHash": "sha256-+W5eZOhhemLQxelojLxETfbFbc19NWawsXBlapYpqIA=",
+ "lastModified": 1727122398,
+ "narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "ad0b5eed1b6031efaed382844806550c3dcb4206",
+ "rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093",
"type": "github"
},
"original": {
@@ -677,11 +729,11 @@
},
"nixpkgs_4": {
"locked": {
- "lastModified": 1724395761,
- "narHash": "sha256-zRkDV/nbrnp3Y8oCADf5ETl1sDrdmAW6/bBVJ8EbIdQ=",
+ "lastModified": 1727524699,
+ "narHash": "sha256-k6YxGj08voz9NvuKExojiGXAVd69M8COtqWSKr6sQS4=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "ae815cee91b417be55d43781eb4b73ae1ecc396c",
+ "rev": "b5b2fecd0cadd82ef107c9583018f381ae70f222",
"type": "github"
},
"original": {
@@ -693,11 +745,11 @@
},
"nixpkgs_5": {
"locked": {
- "lastModified": 1724819573,
- "narHash": "sha256-GnR7/ibgIH1vhoy8cYdmXE6iyZqKqFxQSVkFgosBh6w=",
+ "lastModified": 1727348695,
+ "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "71e91c409d1e654808b2621f28a327acfdad8dc2",
+ "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
"type": "github"
},
"original": {
@@ -746,11 +798,11 @@
"nixvim": "nixvim_2"
},
"locked": {
- "lastModified": 1721648522,
- "narHash": "sha256-G5s2VV9tVMaqI7Bgqf4DWPzImqwHBqWi6XeJsPipM38=",
+ "lastModified": 1725867099,
+ "narHash": "sha256-axHOLsAr49mWlzHIAnVVt7bt16AepAcr4kdwXnEmQ60=",
"owner": "ahwxorg",
"repo": "nixvim-config",
- "rev": "9cacf44f8915fd4d1e8107a16afac3ceaae63b84",
+ "rev": "d90d75bd7c69637e08cbd3969ec0373d6db7ffdc",
"type": "github"
},
"original": {
@@ -786,11 +838,11 @@
},
"nur": {
"locked": {
- "lastModified": 1725014731,
- "narHash": "sha256-4Y3FY4JzZsKQ0FKfdoWCt2BJFWDrnCk+Fi3+oo2kb0M=",
+ "lastModified": 1727689781,
+ "narHash": "sha256-uS/kWqV+Lnckl+8i0frloCSV7paeCV4Dyi8sfuRDTyk=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "8a0c673833f8c455f54b1c4596fb19715c8d1101",
+ "rev": "13d4cb90be03e225cc11a96d019ec886c3c30296",
"type": "github"
},
"original": {
@@ -907,11 +959,11 @@
},
"locked": {
"dir": "packaging/nix",
- "lastModified": 1724179424,
- "narHash": "sha256-2r2y1p9YQuaWCxuFj45MVRqJ/uWglhzY5O9BW1jRXcg=",
+ "lastModified": 1727227288,
+ "narHash": "sha256-82fIhNN93zk0vmc5rltsbYJlD96AHzEFY2q1KizLP0A=",
"ref": "refs/heads/main",
- "rev": "dd3105e4ceef83bdc9d7437139f9475325e2a66d",
- "revCount": 700,
+ "rev": "5cc1c3f23e2ecc9e03267c097e990d1702416852",
+ "revCount": 730,
"submodules": true,
"type": "git",
"url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"
@@ -925,11 +977,19 @@
},
"xdph": {
"inputs": {
- "hyprland-protocols": "hyprland-protocols",
+ "hyprland-protocols": "hyprland-protocols_2",
"hyprlang": [
"hyprland",
"hyprlang"
],
+ "hyprutils": [
+ "hyprland",
+ "hyprutils"
+ ],
+ "hyprwayland-scanner": [
+ "hyprland",
+ "hyprwayland-scanner"
+ ],
"nixpkgs": [
"hyprland",
"nixpkgs"
@@ -940,11 +1000,11 @@
]
},
"locked": {
- "lastModified": 1724073926,
- "narHash": "sha256-nWlUL43jOFHf+KW6Hqrx+W/r1XdXuDyb0wC/SrHsOu4=",
+ "lastModified": 1727524473,
+ "narHash": "sha256-1DGktDtSWIJpnDbVoj/qpvJSH5zg6JbOfuh6xqZMap0=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
- "rev": "a08ecbbf33598924e93542f737fc6169a26b481e",
+ "rev": "7e500e679ede40e79cf2d89b5f5fa3e34923bd26",
"type": "github"
},
"original": {
diff --git a/hosts/sakura/default.nix b/hosts/sakura/default.nix
index 4937124..5b35dfd 100644
--- a/hosts/sakura/default.nix
+++ b/hosts/sakura/default.nix
@@ -9,6 +9,7 @@
nixpkgs.config.permittedInsecurePackages = [
"jitsi-meet-1.0.8043"
+ "olm-3.2.16"
];
environment.systemPackages = with pkgs; [
diff --git a/modules/core/default.nix b/modules/core/default.nix
index 4968a25..ee68d87 100644
--- a/modules/core/default.nix
+++ b/modules/core/default.nix
@@ -1,8 +1,9 @@
{ ... }:
{
imports =
- # [(import ./bootloader.nix)]
- [(import ./hardware.nix)]
+ [(import ./bootloader.nix)]
+ ++ [(import ./docker.nix)] # enable docker support
+ ++ [(import ./hardware.nix)]
++ [(import ./xserver.nix)]
++ [(import ./network.nix)]
++ [(import ./pipewire.nix)]
diff --git a/modules/core/docker.nix b/modules/core/docker.nix
new file mode 100644
index 0000000..69cd09c
--- /dev/null
+++ b/modules/core/docker.nix
@@ -0,0 +1,7 @@
+{ ... }:
+{
+ virtualisation.docker = {
+ enable = true;
+ enableOnBoot = false;
+ };
+}
diff --git a/modules/core/user.nix b/modules/core/user.nix
index 283aecc..fb4a42f 100644
--- a/modules/core/user.nix
+++ b/modules/core/user.nix
@@ -1,4 +1,4 @@
-{ pkgs, inputs, username, host, ...}:
+{ pkgs, inputs, config, username, host, ...}:
{
imports = [ inputs.home-manager.nixosModules.home-manager ];
home-manager = {
@@ -22,9 +22,15 @@
};
users.users.${username} = {
+ # extraGroups = if (config.virtualisation.docker.enable == true) then
+ # [ "networkmanager" "wheel" "docker" ]
+ # else
+ # [ "networkmanager" "wheel" ];
+ # if (config.virtualisation.docker.enable = true) then
+ # extraGroups = [ "docker" ];
isNormalUser = true;
description = "${username}";
- extraGroups = [ "networkmanager" "wheel" ];
+ extraGroups = [ "networkmanager" "wheel" "docker" ];
shell = pkgs.zsh;
};
nix.settings.allowed-users = [ "${username}" ];
diff --git a/modules/core/yubikey.nix b/modules/core/yubikey.nix
index 4beff35..58ed749 100644
--- a/modules/core/yubikey.nix
+++ b/modules/core/yubikey.nix
@@ -16,9 +16,16 @@
greetd.u2fAuth = true;
sudo.u2fAuth = true;
hyprlock.u2fAuth = true;
+ swaylock.fprintAuth = true;
+ hyprlock.fprintAuth = true;
+ # pam.services.swaylock = {}; # Already enabled
};
};
+ services = {
+ fprintd.enable = true;
+ };
+
environment.systemPackages = with pkgs; [
yubikey-manager
];
diff --git a/modules/home/default.nix b/modules/home/default.nix
index bfe9dc6..605c0e5 100644
--- a/modules/home/default.nix
+++ b/modules/home/default.nix
@@ -2,6 +2,7 @@
imports =
[(import ./bat.nix)] # better cat command
++ [(import ./git.nix)] # version control
+ ++ [(import ./security.nix)] # yubikey-touch-detector for now
++ [(import ./gtk.nix)] # gtk theme
++ [(import ./hyprland)] # window manager
++ [(import ./kitty.nix)] # terminal
diff --git a/modules/home/hyprland/config.nix b/modules/home/hyprland/config.nix
index 14bbaed..ba974bb 100644
--- a/modules/home/hyprland/config.nix
+++ b/modules/home/hyprland/config.nix
@@ -39,7 +39,7 @@
gaps_in = 5;
gaps_out = 10;
border_size = 2;
- "col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
+ "col.active_border" = "rgb(cda5ef) rgb(cda5ef) 45deg";
"col.inactive_border" = "0x00000000";
border_part_of_window = false;
no_border_on_floating = false;
@@ -56,7 +56,7 @@
};
dwindle = {
- no_gaps_when_only = false; # Is ugly with current Waybar setup
+ no_gaps_when_only = true;
force_split = 0;
special_scale_factor = 1.0;
split_width_multiplier = 1.0;
@@ -67,7 +67,7 @@
master = {
special_scale_factor = 1;
- no_gaps_when_only = false;
+ no_gaps_when_only = true;
};
decoration = {
@@ -77,7 +77,7 @@
# fullscreen_opacity = 1.0;
blur = {
- enabled = true;
+ enabled = false;
size = 1;
passes = 1;
# size = 4;
@@ -146,9 +146,9 @@
# clipboard manager
"$mainMod SHIFT, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy"
- "$mainMod SHIFT, F, exec, firefox"
- "$mainMod SHIFT, T, exec, thunderbird"
- "$mainMod SHIFT, P, exec, pavucontrol"
+ "$mainMod SHIFT, F, exec, firefox"
+ "$mainMod SHIFT, T, exec, thunderbird"
+ "$mainMod SHIFT, P, exec, pavucontrol-qt"
# screenshot
"SUPER SHIFT, S, exec, grimblast --notify --cursor save area ~/Pictures/$(date +'%Y-%m-%d-At-%Ih%Mm%Ss').png"
@@ -266,6 +266,7 @@
"opacity 1.0 override 1.0 override, class:(Unity)"
"idleinhibit focus, class:^(mpv)$"
"idleinhibit fullscreen, class:^(firefox)$"
+ "float,class:^(pavucontrol-qt)$"
"float,class:^(pavucontrol)$"
"float,class:^(SoundWireServer)$"
"float,class:^(.sameboy-wrapped)$"
diff --git a/modules/home/hyprland/hyprlock.nix b/modules/home/hyprland/hyprlock.nix
index bec7bd6..5a1be74 100644
--- a/modules/home/hyprland/hyprlock.nix
+++ b/modules/home/hyprland/hyprlock.nix
@@ -1,106 +1,100 @@
{ pkgs, ... }:
+let
+ text = "rgb(251, 241, 199)";
+in
{
- programs.hyprlock = {
- enable = true;
+ home.packages = [ pkgs.hyprlock ];
+ xdg.configFile."hypr/hyprlock.conf".text = ''
+ # BACKGROUND
+ background {
+ monitor =
+ path = ${/home/liv/Pictures/wallpapers/others/liv-schiermonnikoog-zonsondergang.jpeg}
+ blur_passes = 1
+ contrast = 0.8916
+ brightness = 0.8172
+ vibrancy = 0.1696
+ vibrancy_darkness = 0.0
+ }
- extraConfig = ''
- source = $HOME/nixos-config/modules/home/hyprland/mocha.conf
+ # GENERAL
+ general {
+ hide_cursor = true
+ no_fade_in = false
+ grace = 0
+ disable_loading_bar = false
+ }
- $accent = 0xb3$tealAlpha
- $accentAlpha = $tealAlpha
- $font = JetBrainsMono Nerd Font
-
- # GENERAL
- general {
- disable_loading_bar = true
- hide_cursor = true
- }
-
- # BACKGROUND
- background {
- monitor =
- path = ~/Pictures/wallpapers/others/street-by-ahwx.jpg
- blur_passes = 2
- color = $base
- }
-
- # TIME
- label {
- monitor =
- text = cmd[update:30000] echo "$(date +"%R")"
- color = $text
- font_size = 90
- font_family = $font
- position = -130, -100
- halign = right
- valign = top
- shadow_passes = 2
- }
-
- # DATE
- label {
- monitor =
- text = cmd[update:43200000] echo "$(date +"%A, %d %B %Y")"
- color = $text
- font_size = 25
- font_family = $font
- position = -130, -250
- halign = right
- valign = top
- shadow_passes = 2
- }
-
- # KEYBOARD LAYOUT
- label {
- monitor =
- text = $LAYOUT
- color = $text
- font_size = 20
- font_family = $font
- rotate = 0 # degrees, counter-clockwise
-
- position = -130, -310
- halign = right
- valign = top
- shadow_passes = 2
- }
-
- # USER AVATAR
- image {
- monitor =
- path = $HOME/.face
- size = 350
- border_color = $accent
- rounding = -1
-
- position = 0, 75
- halign = center
- valign = center
- shadow_passes = 2
- }
-
- # INPUT FIELD
- input-field {
- monitor =
- size = 400, 70
- outline_thickness = 4
- dots_size = 0.2
- dots_spacing = 0.2
- dots_center = true
- outer_color = $accent
- inner_color = $surface0
- font_color = $text
- fade_on_empty = false
- placeholder_text = Logged in as $USER
- hide_input = false
- check_color = $accent
- fail_color = $red
- fail_text = $FAIL ($ATTEMPTS)
- capslock_color = $yellow
- position = 0, -185
- halign = center
- valign = center
- shadow_passes = 2
- }'';
- };
+ # Time
+ label {
+ monitor =
+ text = cmd[update:1000] echo "$(date +"%k:%M")"
+ color = rgba(235, 219, 178, .9)
+ font_size = 111
+ font_family = JetBrainsMono NF Bold
+ position = 0, 270
+ halign = center
+ valign = center
+ }
+
+ # Day
+ label {
+ monitor =
+ text = cmd[update:1000] echo "- $(date +"%A, %B %d") -"
+ color = rgba(235, 219, 178, .9)
+ font_size = 20
+ font_family = CaskaydiaCove Nerd Font
+ position = 0, 160
+ halign = center
+ valign = center
+ }
+
+
+ # USER-BOX
+ shape {
+ monitor =
+ size = 350, 50
+ color = rgba(225, 225, 225, .2)
+ rounding = 15
+ border_size = 0
+ border_color = rgba(255, 255, 255, 0)
+ rotate = 0
+
+ position = 0, -230
+ halign = center
+ valign = center
+ }
+
+ # USER
+ label {
+ monitor =
+ text = $USER
+ color = rgba(235, 219, 178, .9)
+ font_size = 16
+ font_family = CaskaydiaCove Nerd Font
+ position = 0, -230
+ halign = center
+ valign = center
+ }
+
+ # INPUT FIELD
+ input-field {
+ monitor =
+ size = 350, 50
+ outline_thickness = 0
+ rounding = 15
+ dots_size = 0.25 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.4 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = true
+ outer_color = rgba(255, 255, 255, 0)
+ inner_color = rgba(225, 225, 225, 0.2)
+ color = rgba(235, 219, 178, .9)
+ font_color = rgba(235, 219, 178, .9)
+ fade_on_empty = false
+ placeholder_text = Enter Password
+ hide_input = false
+ position = 0, -300
+ halign = center
+ valign = center
+ }
+ '';
}
diff --git a/modules/home/packages.nix b/modules/home/packages.nix
index 4c64f9f..cfe7895 100644
--- a/modules/home/packages.nix
+++ b/modules/home/packages.nix
@@ -1,16 +1,37 @@
{ inputs, pkgs, ... }:
{
home.packages = with pkgs; [
- anki-bin # Learn languages
- vimv # Bulk rename
- audacity # Record audio stuff
- obs-studio # Record video stuff
- exiftool # Read exif data from CLI
- pinta # "Paint.NET-like editor"
- kdenlive # Video editor
- translate-shell # Google Translate but in the CLI
- wireguard-tools # VPN connections
- openresolv # required for wireguard-tools
+ gajim # XMPP client
+ nheko # Matrix client
+ linuxKernel.packages.linux_hardened.v4l2loopback # Use A7ii as webcam
+ # wikit # Wikipedia summaries from the terminal, not added to Nix yet
+ # reader # Firefox reader mode but in the terminal, not added to Nix yet
+ vimv # edit filenames in batch with $EDITOR
+ iamb # Try CLI Matrix
+ pastel # generate, analyze, convert and manipulate colors
+ glow # Render Markdown from the terminal
+ htmlq # jq but for HTML
+ lemmeknow # Identify anything
+ android-tools # ADB/Fastboot
+ eva # Calculator
+ tofi # drun type launcher
+ # termpdfpy # Read PDFs from the terminal, errors out for now
+ anki-bin # Learn languages
+ vimv # Bulk rename
+ audacity # Record audio stuff
+ obs-studio # Record video stuff
+ exiftool # Read exif data from CLI
+ pinta # "Paint.NET-like editor"
+ kdenlive # Video editor
+ translate-shell # Google Translate but in the CLI
+ wireguard-tools # VPN connections
+ openresolv # required for wireguard-tools
+ prusa-slicer
+ blender
+ progress
+ epy
+ zip
+ ripdrag
pwgen
jq
tmux
@@ -33,10 +54,11 @@
ripgrep
yt-dlp
wineWowPackages.wayland
- element-desktop # wayland version is very laggy for me
+ # element-desktop # wayland version is very laggy for me
spotify
thunderbird
neofetch
+ nodejs_22
yarn
# C / C++
@@ -53,7 +75,7 @@
mpv # video player
openssl
pamixer # pulseaudio command line mixer
- pavucontrol # pulseaudio volume controle (GUI)
+ lxqt.pavucontrol-qt # pulseaudio volume controle (GUI)
playerctl # controller for media players
wl-clipboard # clipboard utils for wayland (wl-copy, wl-paste)
cliphist # clipboard history manager
@@ -65,4 +87,8 @@
inputs.alejandra.defaultPackage.${system}
inputs.nixvim.packages.${pkgs.system}.default
];
+
+ # environment.systemPackages = with pkgs; [
+ # nodePackages.
+ # ]
}
diff --git a/modules/home/security.nix b/modules/home/security.nix
new file mode 100644
index 0000000..7450388
--- /dev/null
+++ b/modules/home/security.nix
@@ -0,0 +1,6 @@
+{ ... }:
+{
+ # services = {
+ # yubikey-touch-detector.enable = true;
+ # };
+}
diff --git a/modules/home/tmux.nix b/modules/home/tmux.nix
index 1c70423..8659b8e 100644
--- a/modules/home/tmux.nix
+++ b/modules/home/tmux.nix
@@ -58,6 +58,7 @@
'';
plugins = with pkgs.tmuxPlugins; [
yank
+ fzf-tmux-url
];
};
}
diff --git a/modules/home/waybar/default.nix b/modules/home/waybar/default.nix
index 9372046..da33590 100644
--- a/modules/home/waybar/default.nix
+++ b/modules/home/waybar/default.nix
@@ -1,6 +1,9 @@
{ config, lib, pkgs, user, ... }:
{
+ imports =
+ [(import ./scripts.nix)];
+
programs.waybar = {
enable = true;
package = pkgs.waybar.overrideAttrs (oa: {
@@ -10,799 +13,6 @@
enable = false;
target = "graphical-session.target";
};
- style = ''
- * {
- font-family: "JetBrainsMono Nerd Font";
- font-size: 12pt;
- font-weight: bold;
- border-radius: 0px;
- transition-property: background-color;
- transition-duration: 0.5s;
- }
- @keyframes blink_red {
- to {
- background-color: rgb(242, 143, 173);
- color: rgb(26, 24, 38);
- }
- }
- .warning, .critical, .urgent {
- animation-name: blink_red;
- animation-duration: 1s;
- animation-timing-function: linear;
- animation-iteration-count: infinite;
- animation-direction: alternate;
- }
- window#waybar {
- background-color: transparent;
- }
- window > box {
- margin-left: 5px;
- margin-right: 5px;
- margin-top: 5px;
- background-color: rgb(30, 30, 46);
- }
- #workspaces {
- padding-left: 0px;
- padding-right: 4px;
- }
- #workspaces button {
- padding-top: 5px;
- padding-bottom: 5px;
- padding-left: 6px;
- padding-right: 6px;
- }
- #workspaces button.active {
- background-color: rgb(181, 232, 224);
- color: rgb(26, 24, 38);
- }
- #workspaces button.urgent {
- color: rgb(26, 24, 38);
- }
- #workspaces button:hover {
- background-color: rgb(248, 189, 150);
- color: rgb(26, 24, 38);
- }
- tooltip {
- background: rgb(48, 45, 65);
- }
- tooltip label {
- color: rgb(217, 224, 238);
- }
- #mode, #clock, #memory, #temperature,#cpu,#mpd, #custom-wall, #temperature, #backlight, #pulseaudio, #network, #battery, #custom-powermenu, #custom-cava-internal {
- padding-left: 10px;
- padding-right: 10px;
- }
- /* #mode { */
- /* margin-left: 10px; */
- /* background-color: rgb(248, 189, 150); */
- /* color: rgb(26, 24, 38); */
- /* } */
- #memory {
- color: rgb(181, 232, 224);
- }
- #cpu {
- color: rgb(245, 194, 231);
- }
- #clock {
- color: rgb(217, 224, 238);
- }
- /* #idle_inhibitor {
- color: rgb(221, 182, 242);
- }*/
- #custom-wall {
- color: rgb(221, 182, 242);
- }
- #temperature {
- color: rgb(150, 205, 251);
- }
- #backlight {
- color: rgb(248, 189, 150);
- }
- #pulseaudio {
- color: rgb(245, 224, 220);
- }
- #network {
- color: #ABE9B3;
- }
-
- #network.disconnected {
- color: rgb(255, 255, 255);
- }
- #battery.charging, #battery.full, #battery.discharging {
- color: rgb(250, 227, 176);
- }
- #battery.critical:not(.charging) {
- color: rgb(242, 143, 173);
- }
- #custom-powermenu {
- color: rgb(242, 143, 173);
- }
- #tray {
- padding-right: 8px;
- padding-left: 10px;
- }
- #mpd.paused {
- color: #414868;
- font-style: italic;
- }
- #mpd.stopped {
- background: transparent;
- }
- #mpd {
- color: #c0caf5;
- }
- #custom-cava-internal{
- font-family: "Hack Nerd Font" ;
- }
- '';
- settings = [{
- "layer" = "top";
- "position" = "top";
- modules-left = [
- "hyprland/workspaces"
- "temperature"
- #"idle_inhibitor"
- "mpd"
- "custom/cava-internal"
- ];
- modules-center = [
- "clock"
- ];
- modules-right = [
- "pulseaudio"
- "backlight"
- "memory"
- "cpu"
- "network"
- "battery"
- "custom/powermenu"
- "tray"
- ];
- "custom/cava-internal" = {
- "exec" = "sleep 1s && cava-internal";
- "tooltip" = false;
- };
- "hyprland/workspaces" = {
- "format" = "{icon}";
- "on-click" = "activate";
- # "on-scroll-up" = "hyprctl dispatch workspace e+1";
- # "on-scroll-down" = "hyprctl dispatch workspace e-1";
- };
- "idle_inhibitor" = {
- "format" = "{icon}";
- "format-icons" = {
- "activated" = "";
- "deactivated" = "";
- };
- "tooltip" = false;
- };
- "backlight" = {
- "device" = "intel_backlight";
- "on-scroll-up" = "light -A 5";
- "on-scroll-down" = "light -U 5";
- "format" = "{icon} {percent}%";
- "format-icons" = [ "" "" "" "" ];
- };
- "pulseaudio" = {
- "scroll-step" = 1;
- "format" = "{icon} {volume}%";
- "format-muted" = " Muted";
- "format-icons" = {
- "default" = [ "" "" "" ];
- };
- "on-click" = "pamixer -t";
- "tooltip" = false;
- };
- "battery" = {
- "interval" = 10;
- "states" = {
- "warning" = 20;
- "critical" = 10;
- };
- "format" = "{icon} {capacity}%";
- "format-icons" = [ "" "" "" "" "" "" "" "" "" "" ];
- "format-full" = "{icon} {capacity}%";
- "format-charging" = " {capacity}%";
- "tooltip" = false;
- };
- "clock" = {
- "interval" = 1;
- "format" = "{:%I:%M %p %A %b %d}";
- "tooltip" = true;
- /* "tooltip-format"= "{=%A; %d %B %Y}\n{calendar}" */
- "tooltip-format" = "上午:高数\n下午:Ps\n晚上:Golang\n{calendar}";
- };
- "memory" = {
- "interval" = 1;
- "format" = " {percentage}%";
- "states" = {
- "warning" = 85;
- };
- };
- "cpu" = {
- "interval" = 1;
- "format" = " {usage}%";
- };
- "mpd" = {
- "max-length" = 25;
- "format" = " {title}";
- "format-paused" = " {title}";
- "format-stopped" = "";
- "format-disconnected" = "";
- "on-click" = "mpc --quiet toggle";
- "on-click-right" = "mpc update; mpc ls | mpc add";
- "on-click-middle" = "kitty --class='ncmpcpp' ncmpcpp ";
- "on-scroll-up" = "mpc --quiet prev";
- "on-scroll-down" = "mpc --quiet next";
- "smooth-scrolling-threshold" = 5;
- "tooltip-format" = "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})";
- };
- "network" = {
- "format-disconnected" = " Disconnected";
- "format-ethernet" = " {ifname} ({ipaddr})";
- "format-linked" = " {essid} (No IP)";
- "format-wifi" = " {essid}";
- "interval" = 1;
- "tooltip" = false;
- };
- "temperature" = {
- # "hwmon-path"= "${env:HWMON_PATH}";
- #"critical-threshold"= 80;
- "tooltip" = false;
- "format" = " {temperatureC}°C";
- };
- "custom/powermenu" = {
- "format" = "";
- "on-click" = "pkill rofi || ~/.config/rofi/powermenu.sh";
- "tooltip" = false;
- };
- "tray" = {
- "icon-size" = 15;
- "spacing" = 5;
- };
- }];
- };
- #other config & style
- home.file = {
- ".config/waybar/light_config".text = ''
- [
- {
- "backlight": {
- "device": "intel_backlight",
- "format": "{icon} {percent}%",
- "format-icons": [
- "", "", "", ""
- ],
- "on-scroll-down": "light -U 5",
- "on-scroll-up": "light -A 5"
- },
- "battery": {
- "format": "{icon} {capacity}%",
- "format-charging": " {capacity}%",
- "format-full": "{icon} {capacity}%",
- "format-icons": [
- "", "", "", "", "", "", "", "", "", ""
- ],
- "interval": 10,
- "states": {
- "critical": 10,
- "warning": 20
- },
- "tooltip": false
- },
- "clock": {
- "format": "{:%I:%M %p %A %b %d}",
- "interval": 1,
- "tooltip": true,
- "tooltip-format": "上午:高数\n下午:Ps\n晚上:Golang\n{calendar}"
- },
- "cpu": {
- "format": " {usage}%",
- "interval": 1
- },
- "custom/cava-internal": {
- "exec": "sleep 1s && cava-internal",
- "tooltip": false
- },
- "custom/powermenu": {
- "format": "",
- "on-click": "pkill rofi || ~/.config/rofi/powermenu.sh",
- "tooltip": false
- },
- "idle_inhibitor": {
- "format": "{icon}",
- "format-icons": {
- "activated": "",
- "deactivated": ""
- },
- "tooltip": false
- },
- "layer": "top",
- "memory": {
- "format": " {percentage}%",
- "interval": 1,
- "states": {
- "warning": 85
- }
- },
- "modules-center": [
- "clock"
- ],
- "modules-left": [
- "hyprland/workspaces",
- "temperature",
- //"idle_inhibitor",
- "mpd",
- "custom/cava-internal"
- ],
- "modules-right": [
- "pulseaudio",
- "backlight",
- "memory",
- "cpu",
- "network",
- "battery",
- "custom/powermenu",
- "tray"
- ],
- "mpd": {
- "format": " {title}",
- "format-disconnected": "",
- "format-paused": " {title}",
- "format-stopped": "",
- "max-length": 25,
- "on-click": "mpc --quiet toggle",
- "on-click-middle": "kitty --class='ncmpcpp' ncmpcpp ",
- "on-click-right": "mpc update; mpc ls | mpc add",
- "on-scroll-down": "mpc --quiet next",
- "on-scroll-up": "mpc --quiet prev",
- "smooth-scrolling-threshold": 5,
- "tooltip-format": "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})"
- },
- "network": {
- "interval": 1,
- "format-wifi": " {essid}",
- "format-ethernet": " {ifname} ({ipaddr})",
- "format-linked": " {essid} (No IP)",
- "format-disconnected": " Disconnected",
- "tooltip": false,
- },
- "position": "top",
- "pulseaudio": {
- "format": "{icon} {volume}%",
- "format-icons": {
- "default": [
- "",
- "",
- ""
- ]
- },
- "format-muted": " Muted",
- "on-click": "pamixer -t",
- "scroll-step": 1,
- "tooltip": false
- },
- "temperature": {
- "format": " {temperatureC}°C",
- "tooltip": false
- },
- "tray": {
- "icon-size": 15,
- "spacing": 5
- },
- "hyprland/workspaces": {
- "format": "{icon}",
- "on-click": "activate",
- "active-only": false,
- }
- }
- ]
- '';
- ".config/waybar/light_style.css".text = ''
- * {
- font-family: "JetBrainsMono Nerd Font";
- font-size: 12pt;
- font-weight: bold;
- border-radius: 0px;
- transition-property: background-color;
- transition-duration: 0.5s;
- }
- @keyframes blink_red {
- to {
- background-color: rgb(242, 143, 173);
- color: rgb(26, 24, 38);
- }
- }
- .warning, .critical, .urgent {
- animation-name: blink_red;
- animation-duration: 1s;
- animation-timing-function: linear;
- animation-iteration-count: infinite;
- animation-direction: alternate;
- }
- window#waybar {
- background-color: transparent;
- }
- window > box {
- margin-left: 5px;
- margin-right: 5px;
- margin-top: 5px;
- background-color: rgb(250, 244, 252);
- }
- #workspaces {
- padding-left: 0px;
- padding-right: 4px;
- }
- #workspaces button {
- padding-top: 5px;
- padding-bottom: 5px;
- padding-left: 6px;
- padding-right: 6px;
- color:#99CCFF;
- }
- #workspaces button.active {
- background-color: rgb(181, 232, 224);
- color: rgb(26, 24, 38);
- }
- #workspaces button.urgent {
- color: rgb(26, 24, 38);
- }
- #workspaces button:hover {
- background-color: #CCCCFF;
- color: rgb(26, 24, 38);
- }
- tooltip {
- /* background: rgb(250, 244, 252); */
- background: rgb(250, 244, 252);
- }
- tooltip label {
- color: rgb(65, 72, 104);
- }
- #mode, #clock, #memory, #temperature,#cpu,#mpd, #custom-wall, #temperature, #backlight, #pulseaudio, #network, #battery, #custom-powermenu, #custom-cava-internal {
- padding-left: 10px;
- padding-right: 10px;
- }
- /* #mode { */
- /* margin-left: 10px; */
- /* background-color: rgb(248, 189, 150); */
- /* color: rgb(26, 24, 38); */
- /* } */
- #memory {
- color: #66CCFF;
- }
- #cpu {
- color: #FF99FF;
- }
- #clock {
- color: rgb(65, 72, 104);
- }
- /*
- #idle_inhibitor {
- color: #FF6699;
- }*/
- #custom-wall {
- color: #FF6699;
- }
- #temperature {
- color: #9933FF;
- }
- #backlight {
- color: #6666FF;
- }
- #pulseaudio {
- color: #FF9900;
- }
- #network {
- color: #00CC66;
- }
-
- #network.disconnected {
- color: #99CCCC;
- }
- #battery.charging, #battery.full, #battery.discharging {
- color: #FF99CC;
- }
- #battery.critical:not(.charging) {
- color: rgb(242, 143, 173);
- }
- #custom-powermenu {
- color: #FF0066;
- }
- #tray {
- padding-right: 8px;
- padding-left: 10px;
- }
- #tray menu {
- background: rgb(250, 244, 252);
- color:rgb(192, 202, 245);
- }
- #mpd.paused {
- color: rgb(192, 202, 245);
- font-style: italic;
- }
- #mpd.stopped {
- background: transparent;
- }
- #mpd {
- color: rgb(65, 72, 104);
-
- /* color: #c0caf5; */
- }
- #custom-cava-internal{
- font-family: "Hack Nerd Font" ;
- }
- '';
- };
- home.file = {
- ".config/waybar/nord_config".text = ''
- [
- {
- "backlight": {
- "device": "intel_backlight",
- "format": "{icon} {percent}%",
- "format-icons": [
- "", "", "", ""
- ],
- "on-scroll-down": "light -U 5",
- "on-scroll-up": "light -A 5"
- },
- "battery": {
- "format": "{icon} {capacity}%",
- "format-charging": " {capacity}%",
- "format-full": "{icon} {capacity}%",
- "format-icons": [
- "", "", "", "", "", "", "", "", "", ""
- ],
- "interval": 10,
- "states": {
- "critical": 10,
- "warning": 20
- },
- "tooltip": false
- },
- "clock": {
- "format": "{:%I:%M %p %A %b %d}",
- "interval": 1,
- "tooltip": true,
- "tooltip-format": "上午:高数\n下午:Ps\n晚上:Golang\n{calendar}"
- },
- "cpu": {
- "format": " {usage}%",
- "interval": 1
- },
- "custom/cava-internal": {
- "exec": "sleep 1s && cava-internal",
- "tooltip": false
- },
- "custom/powermenu": {
- "format": "",
- "on-click": "pkill rofi || ~/.config/rofi/powermenu.sh",
- "tooltip": false
- },
- "idle_inhibitor": {
- "format": "{icon}",
- "format-icons": {
- "activated": "",
- "deactivated": ""
- },
- "tooltip": false
- },
- "layer": "top",
- "memory": {
- "format": " {percentage}%",
- "interval": 1,
- "states": {
- "warning": 85
- }
- },
- "modules-center": [
- "clock"
- ],
- "modules-left": [
- "hyprland/workspaces",
- "temperature",
- //"idle_inhibitor",
- "mpd",
- "custom/cava-internal"
- ],
- "modules-right": [
- "pulseaudio",
- "backlight",
- "memory",
- "cpu",
- "network",
- "battery",
- "custom/powermenu",
- "tray"
- ],
- "mpd": {
- "format": " {title}",
- "format-disconnected": "",
- "format-paused": " {title}",
- "format-stopped": "",
- "max-length": 25,
- "on-click": "mpc --quiet toggle",
- "on-click-middle": "kitty --class='ncmpcpp' ncmpcpp ",
- "on-click-right": "mpc update; mpc ls | mpc add",
- "on-scroll-down": "mpc --quiet next",
- "on-scroll-up": "mpc --quiet prev",
- "smooth-scrolling-threshold": 5,
- "tooltip-format": "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})"
- },
- "network": {
- "format-disconnected": " Disconnected",
- "format-ethernet": " {ifname} ({ipaddr})",
- "format-linked": " {essid} (No IP)",
- "format-wifi": " {essid}",
- "interval": 1,
- "tooltip": false
- },
- "position": "top",
- "pulseaudio": {
- "format": "{icon} {volume}%",
- "format-icons": {
- "default": [
- "",
- "",
- ""
- ]
- },
- "format-muted": " Muted",
- "on-click": "pamixer -t",
- "scroll-step": 1,
- "tooltip": false
- },
- "temperature": {
- "format": " {temperatureC}°C",
- "tooltip": false
- },
- "tray": {
- "icon-size": 15,
- "spacing": 5
- },
- "hyprland/workspaces": {
- "format": "{icon}",
- "on-click": "activate",
- "active-only": false,
- }
- }
- ]
-
- '';
- ".config/waybar/nord_style.css".text = ''
- * {
- font-family: "JetBrainsMono Nerd Font";
- font-size: 12pt;
- font-weight: bold;
- border-radius: 0px;
- transition-property: background-color;
- transition-duration: 0.5s;
- }
- @keyframes blink_red {
- to {
- background-color: rgb(242, 143, 173);
- color: rgb(26, 24, 38);
- }
- }
- .warning, .critical, .urgent {
- animation-name: blink_red;
- animation-duration: 1s;
- animation-timing-function: linear;
- animation-iteration-count: infinite;
- animation-direction: alternate;
- }
- window#waybar {
- background-color: transparent;
- }
- window > box {
- margin-left: 5px;
- margin-right: 5px;
- margin-top: 5px;
- background-color: #3b4252;
- }
- #workspaces {
- padding-left: 0px;
- padding-right: 4px;
- }
- #workspaces button {
- padding-top: 5px;
- padding-bottom: 5px;
- padding-left: 6px;
- padding-right: 6px;
- color:#D8DEE9;
- }
- #workspaces button.active {
- background-color: rgb(181, 232, 224);
- color: rgb(26, 24, 38);
- }
- #workspaces button.urgent {
- color: rgb(26, 24, 38);
- }
- #workspaces button:hover {
- background-color: #B38DAC;
- color: rgb(26, 24, 38);
- }
- tooltip {
- /* background: rgb(250, 244, 252); */
- background: #3b4253;
- }
- tooltip label {
- color: #E4E8EF;
- }
- #mode, #clock, #memory, #temperature,#cpu,#mpd, #custom-wall, #temperature, #backlight, #pulseaudio, #network, #battery, #custom-powermenu, #custom-cava-internal {
- padding-left: 10px;
- padding-right: 10px;
- }
- /* #mode { */
- /* margin-left: 10px; */
- /* background-color: rgb(248, 189, 150); */
- /* color: rgb(26, 24, 38); */
- /* } */
- #memory {
- color: #8EBBBA;
- }
- #cpu {
- color: #B38DAC;
- }
- #clock {
- color: #E4E8EF;
- }
- /*
- #idle_inhibitor {
- color: #FF6699;
- }*/
- #custom-wall {
- color: #B38DAC;
- }
- #temperature {
- color: #80A0C0;
- }
- #backlight {
- color: #A2BD8B;
- }
- #pulseaudio {
- color: #E9C98A;
- }
- #network {
- color: #99CC99;
- }
-
- #network.disconnected {
- color: #CCCCCC;
- }
- #battery.charging, #battery.full, #battery.discharging {
- color: #CF876F;
- }
- #battery.critical:not(.charging) {
- color: #D6DCE7;
- }
- #custom-powermenu {
- color: #BD6069;
- }
- #tray {
- padding-right: 8px;
- padding-left: 10px;
- }
- #tray menu {
- background: #3b4252;
- color: #DEE2EA;
- }
- #mpd.paused {
- color: rgb(192, 202, 245);
- font-style: italic;
- }
- #mpd.stopped {
- background: transparent;
- }
- #mpd {
- color: #E4E8EF;
-
- /* color: #c0caf5; */
- }
- #custom-cava-internal{
- font-family: "Hack Nerd Font" ;
- }
- '';
};
}
diff --git a/modules/home/waybar/old/default.nix b/modules/home/waybar/old/default.nix
deleted file mode 100644
index 9b8b240..0000000
--- a/modules/home/waybar/old/default.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{ ... }:
-{
- imports = [ (import ./waybar.nix) ]
- ++ [ (import ./settings.nix) ]
- ++ [ (import ./style.nix) ];
-}
diff --git a/modules/home/waybar/old/settings.nix b/modules/home/waybar/old/settings.nix
deleted file mode 100644
index 256017e..0000000
--- a/modules/home/waybar/old/settings.nix
+++ /dev/null
@@ -1,118 +0,0 @@
-{ ... }:
-{
- programs.waybar.settings.mainBar = {
- position= "top";
- layer= "top";
- height= 5;
- margin-top= 0;
- margin-bottom= 0;
- margin-left= 0;
- margin-right= 0;
- modules-left= [
- # "custom/launcher"
- "hyprland/workspaces"
- ];
- modules-center= [
- "clock"
- ];
- modules-right= [
- # "cpu"
- # "memory"
- # "disk"
- "pulseaudio"
- "battery"
- #"network"
- "tray"
- ];
- clock= {
- calendar = {
- format = { today = "{}"; };
- };
- format = " {:%H:%M}";
- tooltip= "true";
- tooltip-format= "{:%Y %B}\n{calendar}";
- format-alt= " {:%d/%m}";
- };
- "hyprland/workspaces"= {
- active-only= false;
- disable-scroll= true;
- format = "{icon}";
- on-click= "activate";
- format-icons= {
- "1"= "1";
- "2"= "2";
- "3"= "3";
- "4"= "4";
- "5"= "5";
- "6"= "6";
- "7"= "7";
- "8"= "8";
- "9"= "9";
- "10"= "10";
- urgent= "";
- default = "";
- sort-by-number= true;
- };
- # persistent-workspaces = {
- # "1"= [];
- # "2"= [];
- # "3"= [];
- # };
- };
- memory= {
- format= " {}%";
- format-alt= " {used} GiB"; #
- interval= 2;
- };
- cpu= {
- format= " {usage}%";
- format-alt= " {avg_frequency} GHz";
- interval= 2;
- };
- disk = {
- # path = "/";
- format = " {percentage_used}%";
- interval= 60;
- };
- network = {
- format-wifi = " {signalStrength}%";
- format-ethernet = " ";
- tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
- format-linked = "{ifname} (No IP)";
- format-disconnected = " ";
- };
- tray= {
- icon-size= 20;
- spacing = 2; # was 8 originally
- };
- pulseaudio= {
- format= "{icon} {volume}%";
- format-muted= " {volume}%";
- format-icons= {
- default= [" "];
- };
- scroll-step= 5;
- on-click= "pamixer -t";
- };
- battery = {
- format = "{icon} {capacity}%";
- format-icons = [" " " " " " " " " "];
- format-charging = " {capacity}%";
- format-full = " {capacity}%";
- format-warning = " {capacity}%";
- interval = 5;
- states = {
- warning = 20;
- };
- format-time = "{H}h{M}m";
- tooltip = true;
- tooltip-format = "{time}";
- };
- "custom/launcher"= {
- format= "";
- on-click= "pkill wofi || wofi --show drun";
- on-click-right= "pkill wofi || wallpaper-picker";
- tooltip= "false";
- };
- };
-}
diff --git a/modules/home/waybar/old/style.nix b/modules/home/waybar/old/style.nix
deleted file mode 100644
index 9e36dea..0000000
--- a/modules/home/waybar/old/style.nix
+++ /dev/null
@@ -1,99 +0,0 @@
-{ ... }:
-let custom = {
- font = "JetBrainsMono Nerd Font";
- font_size = "10px";
- font_weight = "bold";
- text_color = "#cdd6f4";
- secondary_accent= "89b4fa";
- tertiary_accent = "f5f5f5";
- background = "11111B";
- opacity = "0.98";
-};
-in
-{
- programs.waybar.style = ''
-
- * {
- border: none;
- border-radius: 0px;
- padding: 0;
- margin: 0;
- min-height: 0px;
- font-family: ${custom.font};
- font-weight: ${custom.font_weight};
- opacity: ${custom.opacity};
- }
-
- window#waybar {
- background: none;
- }
-
- #workspaces {
- font-size: 10px;
- padding-left: 15px;
-
- }
- #workspaces button {
- color: ${custom.text_color};
- padding-left: 6px;
- padding-right: 6px;
- }
- #workspaces button.empty {
- color: #6c7086;
- }
- #workspaces button.active {
- color: #b4befe;
- }
-
- #tray, #pulseaudio, #network, #cpu, #memory, #disk, #clock, #battery {
- font-size: ${custom.font_size};
- color: ${custom.text_color};
- }
-
- #cpu {
- padding-left: 15px;
- padding-right: 9px;
- margin-left: 7px;
- }
- #memory {
- padding-left: 9px;
- padding-right: 9px;
- }
- #disk {
- padding-left: 9px;
- padding-right: 15px;
- }
-
- #tray {
- padding: 0 20px;
- margin-left: 7px;
- }
-
- #pulseaudio {
- padding-left: 15px;
- padding-right: 9px;
- margin-left: 7px;
- }
- #battery {
- padding-left: 9px;
- padding-right: 9px;
- }
- #network {
- padding-left: 9px;
- padding-right: 15px;
- }
-
- #clock {
- padding-left: 9px;
- padding-right: 15px;
- }
-
- #custom-launcher {
- font-size: 20px;
- color: #b4befe;
- font-weight: ${custom.font_weight};
- padding-left: 10px;
- padding-right: 15px;
- }
- '';
-}
diff --git a/modules/home/waybar/old/waybar.nix b/modules/home/waybar/old/waybar.nix
deleted file mode 100644
index c50e873..0000000
--- a/modules/home/waybar/old/waybar.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ pkgs, ... }:
-{
- programs.waybar = {
- enable = true;
- };
- programs.waybar.package = pkgs.waybar.overrideAttrs (oa: {
- mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ];
- });
-}
diff --git a/modules/home/waybar/scripts.nix b/modules/home/waybar/scripts.nix
new file mode 100644
index 0000000..29a485e
--- /dev/null
+++ b/modules/home/waybar/scripts.nix
@@ -0,0 +1,110 @@
+{ pkgs, username, ... }:
+
+{
+ home.file = {
+ "/home/${username}/.local/bin/waybar-screenrecord" = {
+ executable = true;
+ text = ''
+ #!/bin/sh
+
+ output_off="{\"text\": \"\", \"tooltip\": \"Not recording\", \"alt\": \"\", \"class\": \"\" }"
+ output_rec="{\"text\": \"\", \"tooltip\": \"Recording\", \"alt\": \"\", \"class\": \"\" }"
+
+ pidof wf-recorder > /dev/null 2>&1
+ if [ $? -eq 0 ]
+ then
+ if [[ "$1" == "toggle" ]]
+ then
+ killall -s SIGINT wf-recorder > /dev/null 2>&1
+ notify-send -a screenrecorder -t 3000 'Screen recording' "Screen recording was stopped!"
+ echo -n $output_off
+ exit 0
+ fi
+ echo -n $output_rec
+ exit 0
+ else
+ if [[ "$1" == "toggle" ]]
+ then
+ geometry=$(slurp)
+ if [ $? -eq 0 ]
+ then
+ notify-send -a screenrecorder -t 3000 'Screen recording' "Screen recording was started!"
+ sleep 3
+ wf-recorder -f "$HOME/downloads/$(date +'screenrecording_%Y-%m-%d-%H%M%S.mp4')" -g "$geometry" > /dev/null 2>&1 &
+ echo -n $output_rec
+ exit 0
+ fi
+ fi
+ echo -n $output_off
+ exit 0
+ fi
+ '';
+ };
+ "/home/${username}/.local/bin/waybar-bluetooth" = {
+ executable = true;
+ text = ''
+ #!/usr/bin/env zsh
+
+ typeset -A known=(
+ 'headphones' '38:18:4C:D1:AE:48'
+ 'airpods' '2C:18:09:EF:BD:11'
+ )
+
+ function get_addr_or_fail () {
+ if [ "$known[$1]" = "" ]
+ then
+ printf 'No device specified\n'
+ exit 1
+ fi
+ printf "$known[$1]"
+ }
+
+ case "$1" in
+ "list")
+ for k v ("''${(@kv)known}") printf "$k\n"
+ ;;
+ "toggle")
+ device=""
+ tmp="$2"
+ if [ "$tmp" = "" ]
+ then
+ tmp=$($0 list | bemenu)
+ fi
+ device=$(get_addr_or_fail "$tmp")
+ is_connected=$(bluetoothctl info $device | grep -i 'connected: yes')
+ if [ "$is_connected" != "" ]
+ then
+ bluetoothctl disconnect $device
+ else
+ bluetoothctl connect $device
+ fi
+ ;;
+ "status")
+ device=$(get_addr_or_fail "$2")
+ is_connected=$(bluetoothctl info $device | grep -i 'connected: yes')
+ if [ "$is_connected" != "" ]
+ then
+ echo "{\"text\": \"Connected\", \"class\": \"custom-btdevice\", \"alt\": \"connected\" }"
+ else
+ echo "{\"text\": \"Disconnected\", \"class\": \"custom-btdevice\", \"alt\": \"disconnected\" }"
+ fi
+ ;;
+ *)
+ printf "$0 list|toggle |status \n"
+ exit 1
+ ;;
+ esac
+ '';
+ # "/home/${username}/.local/bin/waybar-cpu" = {
+ # executable = true;
+ # text = ''
+ # '';
+ # };
+ };
+ };
+ home.packages = with pkgs; [
+ wf-recorder
+ bemenu
+ ];
+}
+
diff --git a/modules/home/wlsunset.nix b/modules/home/wlsunset.nix
new file mode 100644
index 0000000..d21530c
--- /dev/null
+++ b/modules/home/wlsunset.nix
@@ -0,0 +1,3 @@
+{ ... }: {
+ services.wlsunset.enable = true;
+}
diff --git a/modules/home/zsh.nix b/modules/home/zsh.nix
index 9eb9fb5..e59827e 100644
--- a/modules/home/zsh.nix
+++ b/modules/home/zsh.nix
@@ -17,6 +17,8 @@
# Make Vi mode transitions faster (in hundredths of a second)
# KEYTIMEOUT = 1;
LANG = "en_US.UTF-8";
+ EDITOR = "nvim";
+ SYSTEMD_LESS = "FRXMK"; # Fix weird sideways scrolling in systemctl status ...
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE = "fg=#808080";
ZSH_AUTOSUGGEST_USE_ASYNC = 1;
HISTSIZE = 100000;
@@ -94,8 +96,34 @@
bindkey -M menuselect 'j' vi-down-line-or-history
bindkey -M menuselect 'l' vi-forward-char
+
+ function jitsi-link() {
+ url=$(printf "https://meet.jit.si/%s" "$(uuidgen)")
+ printf "%s" "''${url}" | wl-copy
+ printf "%s\n" "''${url}"
+ }
'';
+ zsh-abbr = {
+ enable = true;
+ abbreviations = {
+ mkdir="mkdir -p";
+ vim="nvim";
+ v="nvim";
+ vi="nvim";
+ nv="nvim";
+ nvi="nvim";
+ gc="git clone";
+ ga="git add .";
+ gcm="git commit -m";
+ gph="git push -u origin main";
+ g="git";
+
+ calc="eva";
+ wikipedia="wikit";
+ };
+ };
+
# setOptions = [
# # Corrections
# "CORRECT"
@@ -115,6 +143,7 @@
# ];
shellAliases = {
+ convert = "magick";
ls = "eza -lh --git";
la = "eza -A --git";
ll = "eza -l --git";
@@ -149,16 +178,6 @@
};
file = "zsh-syntax-highlighting.zsh";
}
- {
- name = "zsh-abbr";
- src = fetchFromGitHub {
- owner = "olets";
- repo = "zsh-abbr";
- rev = "752e9fcc4daff680545c30f8f857913d66f6f5e6";
- sha256 = "sha256-HY/F43fpWn1PBYb2c+qp0CyF3hpSFHUZdZLZRS1d9Yc=";
- };
- file = "zsh-abbr.sh";
- }
{
name = "zsh-autopair";
src = fetchFromGitHub {