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
+
+
+
+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