diff --git a/flake.lock b/flake.lock index a60ade7..3fab3b5 100644 --- a/flake.lock +++ b/flake.lock @@ -1,15 +1,55 @@ { "nodes": { - "ayugram-desktop": { + "ags": { "inputs": { + "astal": "astal", "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1734522318, - "narHash": "sha256-vF6jBnRhqSvxnlqCz3TG1ad9zOt3qTRneXpHdYq7LCU=", + "lastModified": 1738087375, + "narHash": "sha256-GLyNtU9A2VN22jNRHZ2OXuFfTJLh8uEVVt+ftsKUX0c=", + "owner": "Aylur", + "repo": "ags", + "rev": "a6a7a0adb17740f4c34a59902701870d46fbb6a4", + "type": "github" + }, + "original": { + "owner": "Aylur", + "repo": "ags", + "type": "github" + } + }, + "astal": { + "inputs": { + "nixpkgs": [ + "ags", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1737670815, + "narHash": "sha256-ZCxxshGN7XooabArcoGkYSNx5yVunqjKJi2aTv6cznI=", + "owner": "aylur", + "repo": "astal", + "rev": "127e9cdcbf173846a3c40ddc0abfbb038df48042", + "type": "github" + }, + "original": { + "owner": "aylur", + "repo": "astal", + "type": "github" + } + }, + "ayugram-desktop": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1742395929, + "narHash": "sha256-HRHXXRP72f3ljAjS5LPvre2H8PW7Vl/wBasNJDrH+8k=", "owner": "ayugram-port", "repo": "ayugram-desktop", - "rev": "79a272079424c0826382745ba09ddd73a0f9e84b", + "rev": "6ae819b6aba4fa7c64e12e52b2f733c6093a4110", "type": "github" }, "original": { @@ -24,11 +64,11 @@ "fromYaml": "fromYaml" }, "locked": { - "lastModified": 1708890466, - "narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=", + "lastModified": 1732200724, + "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=", "owner": "SenchoPens", "repo": "base16.nix", - "rev": "665b3c6748534eb766c777298721cece9453fdae", + "rev": "153d52373b0fb2d343592871009a286ec8837aec", "type": "github" }, "original": { @@ -56,11 +96,11 @@ "base16-helix": { "flake": false, "locked": { - "lastModified": 1725860795, - "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=", + "lastModified": 1736852337, + "narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=", "owner": "tinted-theming", "repo": "base16-helix", - "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9", + "rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5", "type": "github" }, "original": { @@ -72,27 +112,43 @@ "base16-vim": { "flake": false, "locked": { - "lastModified": 1716150083, - "narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=", + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", "owner": "tinted-theming", "repo": "base16-vim", - "rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", "type": "github" }, "original": { "owner": "tinted-theming", "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1741628778, + "narHash": "sha256-RsvHGNTmO2e/eVfgYK7g+eYEdwwh7SbZa+gZkT24MEA=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "5a81d390bb64afd4e81221749ec4bffcbeb5fa80", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", "type": "github" } }, "flake-compat": { - "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -101,6 +157,28 @@ "type": "github" } }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": [ @@ -109,11 +187,11 @@ ] }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -125,11 +203,11 @@ "fromYaml": { "flake": false, "locked": { - "lastModified": 1689549921, - "narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=", + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", "owner": "SenchoPens", "repo": "fromYaml", - "rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", "type": "github" }, "original": { @@ -138,19 +216,67 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "stylix", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1741379162, + "narHash": "sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "stylix", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "gnome-shell": { "flake": false, "locked": { - "lastModified": 1713702291, - "narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=", + "lastModified": 1732369855, + "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934", + "rev": "dadd58f630eeea41d645ee225a63f719390829dc", "type": "github" }, "original": { "owner": "GNOME", - "ref": "46.1", + "ref": "47.2", "repo": "gnome-shell", "type": "github" } @@ -162,11 +288,11 @@ ] }, "locked": { - "lastModified": 1729864948, - "narHash": "sha256-CeGSqbN6S8JmzYJX/HqZjr7dMGlvHLLnJJarwB45lPs=", + "lastModified": 1742489436, + "narHash": "sha256-891PjWxlkKMEn4dK9rrqTV6py/lf7xFD0d5B2bM0A18=", "owner": "nix-community", "repo": "home-manager", - "rev": "0c0268a3c80d30b989d0aadbd65f38d4fa27a9a0", + "rev": "fc189507bc0bc74b3794ee6912a5b80de8dfcc0c", "type": "github" }, "original": { @@ -183,11 +309,11 @@ ] }, "locked": { - "lastModified": 1724435763, - "narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=", + "lastModified": 1741635347, + "narHash": "sha256-2aYfV44h18alHXopyfL4D9GsnpE5XlSVkp4MGe586VU=", "owner": "nix-community", "repo": "home-manager", - "rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be", + "rev": "7fb8678716c158642ac42f9ff7a18c0800fea551", "type": "github" }, "original": { @@ -198,11 +324,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1729880355, - "narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=", + "lastModified": 1737469691, + "narHash": "sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "18536bf04cd71abd345f9579158841376fdd0c5a", + "rev": "9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab", "type": "github" }, "original": { @@ -214,11 +340,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1729691686, - "narHash": "sha256-BAuPWW+9fa1moZTU+jFh+1cUtmsuF8asgzFwejM4wac=", + "lastModified": 1735563628, + "narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "32e940c7c420600ef0d1ef396dc63b04ee9cad37", + "rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798", "type": "github" }, "original": { @@ -228,29 +354,13 @@ "type": "github" } }, - "nixpkgs-stable_2": { - "locked": { - "lastModified": 1729357638, - "narHash": "sha256-66RHecx+zohbZwJVEPF7uuwHeqf8rykZTMCTqIrOew4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "bb8c2cf7ea0dd2e18a52746b2c3a5b0c73b93c22", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "release-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { - "lastModified": 1729665710, - "narHash": "sha256-AlcmCXJZPIlO5dmFzV3V2XF6x/OpNWUV8Y/FMPGd8Z4=", + "lastModified": 1741851582, + "narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2768c7d042a37de65bb1b5b3268fc987e534c49d", + "rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", "type": "github" }, "original": { @@ -262,27 +372,27 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1729265718, - "narHash": "sha256-4HQI+6LsO3kpWTYuVGIzhJs1cetFcwT7quWCk/6rqeo=", - "owner": "NixOS", + "lastModified": 1742288794, + "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "ccc0c2126893dd20963580b6478d1a10a4512185", + "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", + "owner": "nixos", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_4": { "locked": { - "lastModified": 1725194671, - "narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=", + "lastModified": 1741865919, + "narHash": "sha256-4thdbnP6dlbdq+qZWTsm4ffAwoS8Tiq1YResB+RP6WE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b833ff01a0d694b910daca6e2ff4a3f26dee478c", + "rev": "573c650e8a14b2faa0041645ab18aed7e60f0c9a", "type": "github" }, "original": { @@ -292,11 +402,51 @@ "type": "github" } }, + "nixpkgs_5": { + "locked": { + "lastModified": 1741513245, + "narHash": "sha256-7rTAMNTY1xoBwz0h7ZMtEcd8LELk9R5TzBPoHuhNSCk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e3e32b642a31e6714ec1b712de8c91a3352ce7e1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nur": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": [ + "stylix", + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1741693509, + "narHash": "sha256-emkxnsZstiJWmGACimyAYqIKz2Qz5We5h1oBVDyQjLw=", + "owner": "nix-community", + "repo": "NUR", + "rev": "5479646b2574837f1899da78bdf9a48b75a9fb27", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "root": { "inputs": { + "ags": "ags", "ayugram-desktop": "ayugram-desktop", "home-manager": "home-manager", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "nixpkgs-stable": "nixpkgs-stable", "sops-nix": "sops-nix", "stylix": "stylix" @@ -304,15 +454,14 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_3", - "nixpkgs-stable": "nixpkgs-stable_2" + "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1729775275, - "narHash": "sha256-J2vtHq9sw1wWm0aTMXpEEAzsVCUMZDTEe5kiBYccpLE=", + "lastModified": 1742406979, + "narHash": "sha256-r0aq70/3bmfjTP+JZs4+XV5SgmCtk1BLU4CQPWGtA7o=", "owner": "Mic92", "repo": "sops-nix", - "rev": "78a0e634fc8981d6b564f08b6715c69a755c4c7d", + "rev": "1770be8ad89e41f1ed5a60ce628dd10877cb3609", "type": "github" }, "original": { @@ -327,22 +476,27 @@ "base16-fish": "base16-fish", "base16-helix": "base16-helix", "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", "flake-compat": "flake-compat", "flake-utils": "flake-utils", + "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", + "nur": "nur", "systems": "systems", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", - "tinted-tmux": "tinted-tmux" + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1729380793, - "narHash": "sha256-TV6NYBUqTHI9t5fqNu4Qyr4BZUD2yGxAn3E+d5/mqaI=", + "lastModified": 1742496983, + "narHash": "sha256-UpJrU0DEhNLVZwL/RPVOEUHCG6iDOVDoYelkmgS4V38=", "owner": "danth", "repo": "stylix", - "rev": "fb9399b7e2c855f42dae76a363bab28d4f24aa8d", + "rev": "7e9906679d384472849272e5a5eef7adbdb1d87f", "type": "github" }, "original": { @@ -369,16 +523,17 @@ "tinted-foot": { "flake": false, "locked": { - "lastModified": 1696725948, - "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", "owner": "tinted-theming", "repo": "tinted-foot", - "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", "type": "github" }, "original": { "owner": "tinted-theming", "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", "type": "github" } }, @@ -399,14 +554,30 @@ "type": "github" } }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1741468895, + "narHash": "sha256-YKM1RJbL68Yp2vESBqeZQBjTETXo8mCTTzLZyckCfZk=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "47c8c7726e98069cade5827e5fb2bfee02ce6991", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1696725902, - "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", + "lastModified": 1740877430, + "narHash": "sha256-zWcCXgdC4/owfH/eEXx26y5BLzTrefjtSLFHWVD5KxU=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", + "rev": "d48ee86394cbe45b112ba23ab63e33656090edb4", "type": "github" }, "original": { @@ -414,6 +585,44 @@ "repo": "tinted-tmux", "type": "github" } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1725758778, + "narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "122c9e5c0e6f27211361a04fae92df97940eccf9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "stylix", + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index b665cc7..d2a79c0 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,8 @@ inputs = { ayugram-desktop.url = "github:/ayugram-port/ayugram-desktop/release?submodules=1"; - + ags.url = "github:Aylur/ags"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05"; sops-nix.url = "github:Mic92/sops-nix"; diff --git a/home-manager/data/ags.nix b/home-manager/data/ags.nix new file mode 100644 index 0000000..7ccc833 --- /dev/null +++ b/home-manager/data/ags.nix @@ -0,0 +1,26 @@ +{ config, inputs, pkgs, ... }: { + imports = [ inputs.ags.homeManagerModules.default ]; + + programs.ags = { + enable = true; + + configDir = null; + + extraPackages = with inputs.ags.packages.${pkgs.system}; [ + battery + mpris + hyprland + network + tray + wireplumber + ]; + }; + + home.packages = with pkgs; [ + pulsemixer + ]; + + wayland.windowManager.hyprland.settings.exec-once = [ "ags run" ]; + + xdg.configFile."ags".source = (pkgs.callPackage ./ags/ags.nix { colors = config.lib.stylix.colors; }); +} diff --git a/home-manager/data/ags/ags.nix b/home-manager/data/ags/ags.nix new file mode 100644 index 0000000..f703b4f --- /dev/null +++ b/home-manager/data/ags/ags.nix @@ -0,0 +1,21 @@ +{ stdenv, lib, config, colors, ... }: + stdenv.mkDerivation { + name = "AGS theme"; + + src = ./ags; + dontUnpack = true; + + patchPhase = '' + echo \$bg: \#${colors.base00}\; > colors.scss + echo \$surface0: \#${colors.base02}\; >> colors.scss + echo \$fg: \#${colors.base05}\; >> colors.scss + echo \$accent: \#${colors.base0B}\; >> colors.scss + ''; + + installPhase = '' + ls + mkdir $out + cp $src/* $out -r + mv colors.scss $out + ''; + } diff --git a/home-manager/data/ags/ags/README.md b/home-manager/data/ags/ags/README.md new file mode 100644 index 0000000..f92b20e --- /dev/null +++ b/home-manager/data/ags/ags/README.md @@ -0,0 +1,12 @@ +# Simple Bar Example + +![simple-bar](https://github.com/user-attachments/assets/a306c864-56b7-44c4-8820-81f424f32b9b) + +A simple bar for Hyprland using + +- [Battery library](https://aylur.github.io/astal/guide/libraries/battery). +- [Hyprland library](https://aylur.github.io/astal/guide/libraries/hyprland). +- [Mpris library](https://aylur.github.io/astal/guide/libraries/mpris). +- [Network library](https://aylur.github.io/astal/guide/libraries/network). +- [Tray library](https://aylur.github.io/astal/guide/libraries/tray). +- [WirePlumber library](https://aylur.github.io/astal/guide/libraries/wireplumber). diff --git a/home-manager/data/ags/ags/app.ts b/home-manager/data/ags/ags/app.ts new file mode 100644 index 0000000..2421411 --- /dev/null +++ b/home-manager/data/ags/ags/app.ts @@ -0,0 +1,13 @@ +import { App } from "astal/gtk3" +import style from "./style.scss" +import Bar from "./widget/Bar" + +App.start({ + css: style, + instanceName: "ags", + requestHandler(request, res) { + print(request) + res("ok") + }, + main: () => App.get_monitors().map(Bar), +}) diff --git a/home-manager/data/ags/ags/style.scss b/home-manager/data/ags/ags/style.scss new file mode 100644 index 0000000..7e61e01 --- /dev/null +++ b/home-manager/data/ags/ags/style.scss @@ -0,0 +1,97 @@ +@use "sass:color"; +@use "colors.scss" as *; + +$radius: 10px; + +%item { + all: unset; + background: $bg; + border-radius: $radius; + padding: 4px; + + & + &, .item + & { margin-left: 4px; } + + label { margin: 0 8px; } +} + +window.Bar { + border: none; + box-shadow: none; + background-color: transparent; + color: $fg; + font-size: 1.1em; + font-weight: bold; + + .Container { + margin: 10px 10px 0; + } + + .Workspaces { + button { + all: unset; + + &:hover label { + background: $surface0; + color: $accent; + } + + &:active label { + background: $surface0; + color: $accent; + } + } + + label { + transition: 200ms; + padding: 0 6px; + margin: 2px; + border-radius: $radius; + border: 1pt solid transparent; + } + + .focused label { + background: $accent; + color: $bg; + border-color: $accent; + } + } + + .Layout.en { color: $accent; } + + .SysTray button { + all: unset; + padding: 8px; + border-radius: inherit; + + &:hover { + background: $surface0; + } + } + + Media { + &.playing { + border: 2pt solid $accent; + } + + .Cover { + min-height: 1.2em; + min-width: 1.2em; + border-radius: $radius; + background-position: center; + background-size: contain; + } + } + + .Battery label { + padding-left: 0; + margin-left: 0; + } + + .Time { padding: 0 8px; } + + .AudioSlider icon { margin-left: 8px; } + + .Workspaces, .Layout, .Media, .SysTray, .AudioSlider, .Time { + @extend %item; + } +} diff --git a/home-manager/data/ags/ags/widget/Bar.tsx b/home-manager/data/ags/ags/widget/Bar.tsx new file mode 100644 index 0000000..11a590e --- /dev/null +++ b/home-manager/data/ags/ags/widget/Bar.tsx @@ -0,0 +1,39 @@ +import { App } from "astal/gtk3" +import { Astal, Gtk, Gdk } from "astal/gtk3" + +import Time from "./elements/Time" +import Wifi from "./elements/Wifi" +import Audio from "./elements/Audio" +import Media from "./elements/Media" +import Layout from "./elements/Keyboard" +import SysTray from "./elements/SysTray" +import Workspaces from "./elements/Workspaces" +import BatteryLevel from "./elements/Battery" + + +export default function Bar(monitor: Gdk.Monitor) { + const { TOP, LEFT, RIGHT } = Astal.WindowAnchor + + return + + + + + + + + + + + + + +} diff --git a/home-manager/data/ags/ags/widget/elements/Audio.tsx b/home-manager/data/ags/ags/widget/elements/Audio.tsx new file mode 100644 index 0000000..eb44096 --- /dev/null +++ b/home-manager/data/ags/ags/widget/elements/Audio.tsx @@ -0,0 +1,16 @@ +import { bind } from "astal" +import Wp from "gi://AstalWp" +import {execAsync} from "astal/process" + +export default function Audio() { + const speaker = Wp.get_default()?.audio.defaultSpeaker! + + return + + +} diff --git a/home-manager/data/ags/ags/widget/elements/Battery.tsx b/home-manager/data/ags/ags/widget/elements/Battery.tsx new file mode 100644 index 0000000..6dc6934 --- /dev/null +++ b/home-manager/data/ags/ags/widget/elements/Battery.tsx @@ -0,0 +1,14 @@ +import { bind } from "astal" +import Battery from "gi://AstalBattery" + +export default function BatteryLevel() { + const bat = Battery.get_default() + + return + + +} diff --git a/home-manager/data/ags/ags/widget/elements/Keyboard.tsx b/home-manager/data/ags/ags/widget/elements/Keyboard.tsx new file mode 100644 index 0000000..32e05f0 --- /dev/null +++ b/home-manager/data/ags/ags/widget/elements/Keyboard.tsx @@ -0,0 +1,12 @@ +import { Variable, bind } from "astal" +import Hyprland from "gi://AstalHyprland" + +export default function Layout() { + const hl = Hyprland.get_default(); + let layout = Variable("en"); + hl.connect("keyboard-layout", (_, __, l) => { layout.set(`${l}`.slice(0, 2).toLowerCase()) }) + + return `Layout ${l}`)}> + +} diff --git a/home-manager/data/ags/ags/widget/elements/Media.tsx b/home-manager/data/ags/ags/widget/elements/Media.tsx new file mode 100644 index 0000000..f4759b2 --- /dev/null +++ b/home-manager/data/ags/ags/widget/elements/Media.tsx @@ -0,0 +1,29 @@ +import { Variable, bind } from "astal" +import { Gtk } from "astal/gtk3" +import Mpris from "gi://AstalMpris" + +export default function Media() { + const mpris = Mpris.get_default() + // console.log(bind(mpris, "players").as(ps => ps[0] ? `${ps[0].title} ${ps[0].artist} ${ps[0].get_playback_status()}` : "-")); + + return + {bind(mpris, "players").as(ps => ps[0] ? ( + + ) : ("") )} + +} diff --git a/home-manager/data/ags/ags/widget/elements/SysTray.tsx b/home-manager/data/ags/ags/widget/elements/SysTray.tsx new file mode 100644 index 0000000..3bc9fea --- /dev/null +++ b/home-manager/data/ags/ags/widget/elements/SysTray.tsx @@ -0,0 +1,22 @@ +import { bind } from "astal" +import Tray from "gi://AstalTray" + +export default function SysTray() { + const tray = Tray.get_default() + + return + {bind(tray, "items").as(i => (i.length > 0) ? ( + + {bind(tray, "items").as(items => items.map(item => ( + ["dbusmenu", ag])} + menuModel={bind(item, "menu-model")}> + + + )))} + + ) : ("") )} + +} diff --git a/home-manager/data/ags/ags/widget/elements/Time.tsx b/home-manager/data/ags/ags/widget/elements/Time.tsx new file mode 100644 index 0000000..f4e0515 --- /dev/null +++ b/home-manager/data/ags/ags/widget/elements/Time.tsx @@ -0,0 +1,12 @@ +import { Variable, GLib } from "astal" + +export default function Time({ format = "%e %b - %H:%M %a" }) { + const time = Variable("").poll(1000, () => + GLib.DateTime.new_now_local().format(format)!) + + return