This commit is contained in:
atagen 2023-09-28 12:07:54 +10:00
parent 7a1488860b
commit b07d950147
27 changed files with 3330 additions and 169 deletions

287
flake.lock generated
View file

@ -41,27 +41,6 @@
"type": "github"
}
},
"anyrun": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1692476235,
"narHash": "sha256-NGUDp/24HCIVWE0xZNHIdzz3q2WDk7MQz1wC7ub/e2U=",
"owner": "Kirottu",
"repo": "anyrun",
"rev": "76af3eb198f376303194c31a83f2399a043acf1b",
"type": "github"
},
"original": {
"owner": "Kirottu",
"repo": "anyrun",
"type": "github"
}
},
"crane": {
"inputs": {
"flake-compat": "flake-compat",
@ -103,11 +82,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1688772518,
"narHash": "sha256-ol7gZxwvgLnxNSZwFTDJJ49xVY5teaSvF7lzlo3YQfM=",
"lastModified": 1693439040,
"narHash": "sha256-t2nOxBcP0Q/XJt6Ild4v0hJ49OSl9F3nE1cdIT4xsDg=",
"owner": "ipetkov",
"repo": "crane",
"rev": "8b08e96c9af8c6e3a2b69af5a7fa168750fcf88e",
"rev": "174604795d316b75777e28185c3a4918bc69b399",
"type": "github"
},
"original": {
@ -176,7 +155,7 @@
"all-cabal-json": "all-cabal-json",
"crane": "crane_3",
"devshell": "devshell_2",
"flake-parts": "flake-parts_2",
"flake-parts": "flake-parts",
"flake-utils-pre-commit": "flake-utils-pre-commit",
"ghc-utils": "ghc-utils",
"gomod2nix": "gomod2nix",
@ -315,27 +294,6 @@
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"anyrun",
"nixpkgs"
]
},
"locked": {
"lastModified": 1685662779,
"narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"persway",
@ -357,16 +315,52 @@
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1693611461,
"narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_3"
},
"locked": {
"lastModified": 1693611461,
"narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1692799911,
"narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
@ -413,11 +407,11 @@
"systems": "systems_3"
},
"locked": {
"lastModified": 1687709756,
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",
"lastModified": 1689068808,
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
"type": "github"
},
"original": {
@ -539,11 +533,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1692817399,
"narHash": "sha256-gbLru0aup6iI0JnDGMQd1jsb8H6IJUNr/Xln3/ouAZc=",
"lastModified": 1695693919,
"narHash": "sha256-ik3qDGRspMyx1LP/m/Bc2O9LTpDIeg3x4Y2EJBin1tQ=",
"owner": "helix-editor",
"repo": "helix",
"rev": "c9694f680f97823ac9b893239a78bf45bfee0403",
"rev": "01e281ce107e57cc1865a0e09e89a8e8c79f2a4e",
"type": "github"
},
"original": {
@ -559,11 +553,11 @@
]
},
"locked": {
"lastModified": 1692763155,
"narHash": "sha256-qMrGKZ8c/q/mHO3ZdrcBPwiVVXPLLgXjY98Ejqb5kAA=",
"lastModified": 1695708052,
"narHash": "sha256-QiWOrZcCmY+zH2NVM6/opZaMRMgam9u+qVYycKLqL10=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "6a20e40acaebf067da682661aa67da8b36812606",
"rev": "dd88dbc69438384bd94f8282584a86798750028c",
"type": "github"
},
"original": {
@ -584,11 +578,11 @@
]
},
"locked": {
"lastModified": 1693000981,
"narHash": "sha256-1FnbFJ6vWfCmucD74o+KjnASEySeyhCKlE54ldp5PwU=",
"lastModified": 1695668783,
"narHash": "sha256-pXVei5KZMxALQ8ibx0oqbfh5N/FI3VzJHodDNAh41xE=",
"owner": "JakeStanger",
"repo": "ironbar",
"rev": "6c38ff29c4b4c74d8200ad41d8b0d4075952aade",
"rev": "0c0163cfa1a8c0286edf231507026dd6f5798644",
"type": "github"
},
"original": {
@ -633,11 +627,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1690373729,
"narHash": "sha256-e136hTT7LqQ2QjOTZQMW+jnsevWwBpMj78u6FRUsH9I=",
"lastModified": 1692351612,
"narHash": "sha256-KTGonidcdaLadRnv9KFgwSMh1ZbXoR/OBmPjeNMhFwU=",
"owner": "nix-community",
"repo": "naersk",
"rev": "d9a33d69a9c421d64c8d925428864e93be895dcc",
"rev": "78789c30d64dea2396c9da516bbcc8db3a475207",
"type": "github"
},
"original": {
@ -653,11 +647,11 @@
]
},
"locked": {
"lastModified": 1692503351,
"narHash": "sha256-FdG0wnizM9mAUgi58KP1tXaX4ogVooPDS6VwsGEqZ9s=",
"lastModified": 1695526222,
"narHash": "sha256-/NwZz3QcVplrfiDKk1thYg1EIHLSNucVHNUi2uwO3RI=",
"owner": "Mic92",
"repo": "nix-index-database",
"rev": "4becac130db930e9de8c3fe58bfa245c119b9eeb",
"rev": "25d6369c232bbea1ec1f90226fd17982e7a0a647",
"type": "github"
},
"original": {
@ -721,11 +715,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1690833316,
"narHash": "sha256-+YU+/pTJmVKNW12R07/SJiTn7PQk90xwCI4D2PfLRPs=",
"lastModified": 1693355128,
"narHash": "sha256-+ZoAny3ZxLcfMaUoLVgL9Ywb/57wP+EtsdNGuXUJrwg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9418167277f665de6f4a29f414d438cf39c55b9e",
"rev": "a63a64b593dcf2fe05f7c5d666eb395950f36bc9",
"type": "github"
},
"original": {
@ -748,6 +742,42 @@
"type": "github"
}
},
"nixpkgs-lib_2": {
"locked": {
"dir": "lib",
"lastModified": 1693471703,
"narHash": "sha256-0l03ZBL8P1P6z8MaSDS/MvuU8E75rVxe5eE1N6gxeTo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e52e76b70d5508f3cec70b882a29199f4d1ee85",
"type": "github"
},
"original": {
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib_3": {
"locked": {
"dir": "lib",
"lastModified": 1693471703,
"narHash": "sha256-0l03ZBL8P1P6z8MaSDS/MvuU8E75rVxe5eE1N6gxeTo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e52e76b70d5508f3cec70b882a29199f4d1ee85",
"type": "github"
},
"original": {
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1678872516,
@ -766,11 +796,11 @@
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1692986144,
"narHash": "sha256-M4VFpy7Av9j+33HF5nIGm0k2+DXXW4qSSKdidIKg5jY=",
"lastModified": 1695559356,
"narHash": "sha256-kXZ1pUoImD9OEbPCwpTz4tHsNTr4CIyIfXb3ocuR8sI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "74e5bdc5478ebbe7ba5849f0d765f92757bb9dbf",
"rev": "261abe8a44a7e8392598d038d2e01f7b33cf26d0",
"type": "github"
},
"original": {
@ -798,11 +828,27 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1693003285,
"narHash": "sha256-5nm4yrEHKupjn62MibENtfqlP6pWcRTuSKrMiH9bLkc=",
"lastModified": 1695360818,
"narHash": "sha256-JlkN3R/SSoMTa+CasbxS1gq+GpGxXQlNZRUh9+LIy/0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5690c4271f2998c304a45c91a0aeb8fb69feaea7",
"rev": "e35dcc04a3853da485a396bdd332217d0ac9054f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1695644571,
"narHash": "sha256-asS9dCCdlt1lPq0DLwkVBbVoEKuEuz+Zi3DG7pR/RxA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6500b4580c2a1f3d0f980d32d285739d8e156d92",
"type": "github"
},
"original": {
@ -814,11 +860,11 @@
},
"nur": {
"locked": {
"lastModified": 1693057602,
"narHash": "sha256-EGNBYNeEO9pcF8e8QSt+SyJf4goBpC1E7D69hFJ3r70=",
"lastModified": 1695733013,
"narHash": "sha256-dyQjcUNqZk7kR3exhwDvpZV4U/1gJNNtbypacMGMJyA=",
"owner": "nix-community",
"repo": "NUR",
"rev": "4c58adf6f6d01ee9392343f578f8c701aa0373b5",
"rev": "4af599c0027f63d4812df1a7835a3fe71e26ea12",
"type": "github"
},
"original": {
@ -939,9 +985,77 @@
"type": "github"
}
},
"pywlroots": {
"inputs": {
"flake-parts": "flake-parts_3",
"nixpkgs": "nixpkgs_4",
"pywlroots-src": "pywlroots-src"
},
"locked": {
"lastModified": 1,
"narHash": "sha256-W8zExI9+M6/4XcyncAFpnLvr+lNgDXMTZ1Nfb6JtkIU=",
"path": "pywlroots",
"type": "path"
},
"original": {
"path": "pywlroots",
"type": "path"
}
},
"pywlroots-src": {
"flake": false,
"locked": {
"lastModified": 1694810594,
"narHash": "sha256-TjOYziToYqXbhAK+h/h00/e7oPluDsGaBP3DJ68jPXM=",
"owner": "flacjacket",
"repo": "pywlroots",
"rev": "fca5c8142930ed4a6c23a906e77813207d993480",
"type": "github"
},
"original": {
"owner": "flacjacket",
"repo": "pywlroots",
"type": "github"
}
},
"qtile": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs"
],
"pywlroots": "pywlroots",
"qtile-src": "qtile-src"
},
"locked": {
"lastModified": 1,
"narHash": "sha256-tldqXihJfgtVFVvUKNfa01TnMfN9+1/8RMoHfczYsKY=",
"path": "flakes/qtile",
"type": "path"
},
"original": {
"path": "flakes/qtile",
"type": "path"
}
},
"qtile-src": {
"flake": false,
"locked": {
"lastModified": 1695682843,
"narHash": "sha256-8Dqe2OoFND6n9d++uxgEcUffVT8V5/g9fXqszJ/IpEU=",
"owner": "qtile",
"repo": "qtile",
"rev": "ad5d0538c51c7ba57ef8520b45b2728fe6caa3a3",
"type": "github"
},
"original": {
"owner": "qtile",
"repo": "qtile",
"type": "github"
}
},
"root": {
"inputs": {
"anyrun": "anyrun",
"flake-utils": "flake-utils",
"helix": "helix",
"home-manager": "home-manager",
@ -953,6 +1067,7 @@
"nixpkgs-stable": "nixpkgs-stable_2",
"nur": "nur",
"persway": "persway",
"qtile": "qtile",
"rust-overlay": "rust-overlay_3"
}
},
@ -1029,11 +1144,11 @@
]
},
"locked": {
"lastModified": 1688351637,
"narHash": "sha256-CLTufJ29VxNOIZ8UTg0lepsn3X03AmopmaLTTeHDCL4=",
"lastModified": 1691374719,
"narHash": "sha256-HCodqnx1Mi2vN4f3hjRPc7+lSQy18vRn8xWW68GeQOg=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "f9b92316727af9e6c7fee4a761242f7f46880329",
"rev": "b520a3889b24aaf909e287d19d406862ced9ffc9",
"type": "github"
},
"original": {
@ -1052,11 +1167,11 @@
]
},
"locked": {
"lastModified": 1693015707,
"narHash": "sha256-SFr93DYn502sVT9nB5U8/cKg1INyEk/jCeq8tHioz7Y=",
"lastModified": 1695694299,
"narHash": "sha256-0CucEiOZzOVHwmGDJKNXLj7aDYOqbRtqChp9nbGrh18=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "e90223633068a44f0fb62374e0fa360ccc987292",
"rev": "c89a55d2d91cf55234466934b25deeffa365188a",
"type": "github"
},
"original": {

View file

@ -45,6 +45,12 @@
};
nix-rice.url = "github:bertof/nix-rice";
qtile = {
url = "path:flakes/qtile";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
@ -56,6 +62,7 @@
ironbar,
persway,
helix,
qtile,
nix-index-database,
nix-rice,
nix-std,
@ -65,40 +72,9 @@
forAllSystems = nixpkgs.lib.genAttrs [
"x86_64-linux"
];
overlays = import ./overlay.nix {inherit inputs;};
in rec {
overlays = import ./overlay.nix {inherit inputs;};
homeConfigurations = {
"twitchin" = home-manager.lib.homeManagerConfiguration {
pkgs = (import nixpkgs {
system = "x86_64-linux";
overlays = [
inputs.nur.overlay
outputs.overlays.additions
outputs.overlays.pkg-sets
outputs.overlays.wlroots
outputs.overlays.sway-unwrapped
outputs.overlays.sway
inputs.nix-rice.overlays.default
outputs.overlays.rice
inputs.helix.overlays.default
inputs.persway.overlays.default
# inputs.eww.overlays.default
];
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
});
extraSpecialArgs = {inherit inputs outputs;};
modules = [
./home/twitchin.nix
];
};
};
nixosConfigurations = {
"quiver" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";

176
flakes/kile/flake.lock generated Normal file
View file

@ -0,0 +1,176 @@
{
"nodes": {
"crane": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1693787605,
"narHash": "sha256-rwq5U8dy+a9JFny/73L0SJu1GfWwATMPMTp7D+mjHy8=",
"owner": "ipetkov",
"repo": "crane",
"rev": "8b4f7a4dab2120cf41e7957a28a853f45016bd9d",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1692799911,
"narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"kile-src": {
"flake": false,
"locked": {
"lastModified": 1693732213,
"narHash": "sha256-QK6oJ4YpncUJvJWfnSFnz9OeMKf3CPz/P4vjOkJ8pmQ=",
"owner": "snakedye",
"repo": "kile",
"rev": "683efdd637afca25bcb61b3e8140f7485ac50939",
"type": "gitlab"
},
"original": {
"owner": "snakedye",
"repo": "kile",
"type": "gitlab"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1694593561,
"narHash": "sha256-WSaIQZ5s9N9bDFkEMTw6P9eaZ9bv39ZhsiW12GtTNM0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1697b7d480449b01111e352021f46e5879e47643",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"crane": "crane",
"flake-utils": "flake-utils_2",
"kile-src": "kile-src",
"nixpkgs": "nixpkgs"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": [
"crane",
"flake-utils"
],
"nixpkgs": [
"crane",
"nixpkgs"
]
},
"locked": {
"lastModified": 1693707092,
"narHash": "sha256-HR1EnynBSPqbt+04/yxxqsG1E3n6uXrOl7SPco/UnYo=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "98ccb73e6eefc481da6039ee57ad8818d1ca8d56",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

62
flakes/kile/flake.nix Normal file
View file

@ -0,0 +1,62 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
crane = {
url = "github:ipetkov/crane";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils.url = "github:numtide/flake-utils";
kile-src = {
url = "gitlab:snakedye/kile";
flake = false;
};
};
outputs = { self, nixpkgs, crane, flake-utils, kile-src, ... }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
# import nixpkgs {
# inherit system;
# };
craneLib = crane.lib.${system};
kile = craneLib.buildPackage {
src = kile-src;
buildInputs = with pkgs; [
wayland
];
# Additional environment variables can be set directly
# MY_CUSTOM_VAR = "some value";
};
in
{
checks = {
inherit kile;
};
packages.default = kile;
apps.default = flake-utils.lib.mkApp {
drv = kile;
};
devShells.default = craneLib.devShell {
# Inherit inputs from checks.
checks = self.checks.${system};
# Additional dev-shell environment variables can be set directly
# MY_CUSTOM_DEVELOPMENT_VAR = "something else";
# Extra inputs can be added here; cargo and rustc are provided by default.
packages = [
# pkgs.ripgrep
];
};
});
}

167
flakes/qtile/flake.lock generated Normal file
View file

@ -0,0 +1,167 @@
{
"nodes": {
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1693611461,
"narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1693611461,
"narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1695644571,
"narHash": "sha256-asS9dCCdlt1lPq0DLwkVBbVoEKuEuz+Zi3DG7pR/RxA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6500b4580c2a1f3d0f980d32d285739d8e156d92",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"dir": "lib",
"lastModified": 1693471703,
"narHash": "sha256-0l03ZBL8P1P6z8MaSDS/MvuU8E75rVxe5eE1N6gxeTo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e52e76b70d5508f3cec70b882a29199f4d1ee85",
"type": "github"
},
"original": {
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib_2": {
"locked": {
"dir": "lib",
"lastModified": 1693471703,
"narHash": "sha256-0l03ZBL8P1P6z8MaSDS/MvuU8E75rVxe5eE1N6gxeTo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e52e76b70d5508f3cec70b882a29199f4d1ee85",
"type": "github"
},
"original": {
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1695644571,
"narHash": "sha256-asS9dCCdlt1lPq0DLwkVBbVoEKuEuz+Zi3DG7pR/RxA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6500b4580c2a1f3d0f980d32d285739d8e156d92",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"pywlroots": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_2",
"pywlroots-src": "pywlroots-src"
},
"locked": {
"lastModified": 1,
"narHash": "sha256-W8zExI9+M6/4XcyncAFpnLvr+lNgDXMTZ1Nfb6JtkIU=",
"path": "pywlroots",
"type": "path"
},
"original": {
"path": "pywlroots",
"type": "path"
}
},
"pywlroots-src": {
"flake": false,
"locked": {
"lastModified": 1694810594,
"narHash": "sha256-TjOYziToYqXbhAK+h/h00/e7oPluDsGaBP3DJ68jPXM=",
"owner": "flacjacket",
"repo": "pywlroots",
"rev": "fca5c8142930ed4a6c23a906e77813207d993480",
"type": "github"
},
"original": {
"owner": "flacjacket",
"repo": "pywlroots",
"type": "github"
}
},
"qtile-src": {
"flake": false,
"locked": {
"lastModified": 1695682843,
"narHash": "sha256-8Dqe2OoFND6n9d++uxgEcUffVT8V5/g9fXqszJ/IpEU=",
"owner": "qtile",
"repo": "qtile",
"rev": "ad5d0538c51c7ba57ef8520b45b2728fe6caa3a3",
"type": "github"
},
"original": {
"owner": "qtile",
"repo": "qtile",
"type": "github"
}
},
"root": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs",
"pywlroots": "pywlroots",
"qtile-src": "qtile-src"
}
}
},
"root": "root",
"version": 7
}

80
flakes/qtile/flake.nix Normal file
View file

@ -0,0 +1,80 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
qtile-src = {
url = "github:qtile/qtile";
flake = false;
};
pywlroots = {
url = "path:pywlroots";
};
};
outputs = inputs@{ flake-parts, qtile-src, pywlroots, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [ "x86_64-linux" ];
perSystem = { config, self', inputs', pkgs, system, ...}: {
packages.qtile = with pkgs; with pkgs.python3Packages; buildPythonPackage rec {
pname = "qtile";
version = "unstable-${inputs.qtile-src.lastModifiedDate}";
src = inputs.qtile-src;
SETUPTOOLS_SCM_PRETEND_VERSION = "0.23.0";
postPatch = ''
substituteInPlace libqtile/pangocffi.py \
--replace libgobject-2.0.so.0 ${pkgs.glib.out}/lib/libgobject-2.0.so.0 \
--replace libpangocairo-1.0.so.0 ${pkgs.pango.out}/lib/libpangocairo-1.0.so.0 \
--replace libpango-1.0.so.0 ${pkgs.pango.out}/lib/libpango-1.0.so.0
substituteInPlace libqtile/backend/x11/xcursors.py \
--replace libxcb-cursor.so.0 ${pkgs.xcb-util-cursor.out}/lib/libxcb-cursor.so.0
substituteInPlace libqtile/backend/wayland/cffi/cairo_buffer.py \
--replace drm_fourcc.h libdrm/drm_fourcc.h
substituteInPlace libqtile/backend/wayland/cffi/build.py \
--replace /usr/include/pixman-1 ${lib.getDev pkgs.pixman}/include \
--replace /usr/include/libdrm ${lib.getDev pkgs.libdrm}/include/libdrm
'';
nativeBuildInputs = [
pkg-config
setuptools-scm
setuptools
];
propagatedBuildInputs = [
xcffib
(cairocffi.override { withXcffib = true; })
python-dateutil
dbus-python
dbus-next
mpd2
psutil
pulsectl-asyncio
pyxdg
pygobject3
pywayland
inputs'.pywlroots.packages.default
xkbcommon
];
buildInputs = [
libinput
libxkbcommon
libdrm
wayland
xorg.xcbutilwm
(wlroots.overrideAttrs (wf: wp: {
postPatch =
wp.postPatch
+ ''
substituteInPlace render/gles2/renderer.c --replace "glFlush();" "glFinish();"
'';
}))
];
makeWrapperArgs = [
"--suffix PATH : ${lib.makeBinPath [ mypy ]}"
];
doCheck = false;
};
};
};
}

81
flakes/qtile/pywlroots/flake.lock generated Normal file
View file

@ -0,0 +1,81 @@
{
"nodes": {
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1693611461,
"narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1695644571,
"narHash": "sha256-asS9dCCdlt1lPq0DLwkVBbVoEKuEuz+Zi3DG7pR/RxA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6500b4580c2a1f3d0f980d32d285739d8e156d92",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"dir": "lib",
"lastModified": 1693471703,
"narHash": "sha256-0l03ZBL8P1P6z8MaSDS/MvuU8E75rVxe5eE1N6gxeTo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e52e76b70d5508f3cec70b882a29199f4d1ee85",
"type": "github"
},
"original": {
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"pywlroots-src": {
"flake": false,
"locked": {
"lastModified": 1694810594,
"narHash": "sha256-TjOYziToYqXbhAK+h/h00/e7oPluDsGaBP3DJ68jPXM=",
"owner": "flacjacket",
"repo": "pywlroots",
"rev": "fca5c8142930ed4a6c23a906e77813207d993480",
"type": "github"
},
"original": {
"owner": "flacjacket",
"repo": "pywlroots",
"type": "github"
}
},
"root": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs",
"pywlroots-src": "pywlroots-src"
}
}
},
"root": "root",
"version": 7
}

View file

@ -0,0 +1,49 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
pywlroots-src = {
url = "github:flacjacket/pywlroots";
flake = false;
};
};
outputs = inputs@{ flake-parts, pywlroots-src, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [ "x86_64-linux" ];
perSystem = { config, self', inputs', pkgs, system, ...}: {
packages.default = with pkgs; with pkgs.python3Packages; buildPythonPackage rec {
pname = "pywlroots";
version = "unstable-${inputs.pywlroots-src.lastModifiedDate}";
format = "setuptools";
disable = pythonOlder "3.7";
src = inputs.pywlroots-src;
nativeBuildInputs = [ pkg-config ];
propagatedNativeBuildInputs = [ cffi ];
buildInputs = [ libinput libxkbcommon pixman xorg.libxcb xorg.xcbutilwm udev wayland
((wlroots_0_16.override {xwayland = xwayland; enableXWayland = true;}).overrideAttrs (wf: wp: {
postPatch =
wp.postPatch
+ ''
substituteInPlace render/gles2/renderer.c --replace "glFlush();" "glFinish();"
'';
}))
];
propagatedBuildInputs = [ cffi pywayland xkbcommon
];
nativeCheckInputs = [ pytestCheckHook ];
postBuild = ''
${python3.pythonForBuild.interpreter} wlroots/ffi_build.py
'';
pythonImportsCheck = [ "wlroots" ];
passthru.test = { inherit qtile; };
};
};
}; #/mkFlake
}

0
header.sh Normal file → Executable file
View file

View file

@ -0,0 +1 @@
/nix/store/dn5wzc9a8hrpml66i6kz5f3q6dr3jjmk-source

View file

@ -0,0 +1 @@
/nix/store/p58d2j0ac7zvja5jl14xzbc19fakjxh2-source

View file

@ -0,0 +1 @@
/nix/store/p7iz0r8gs6ppkhj83zjmwyd21k8b7v3y-source

View file

@ -0,0 +1 @@
/nix/store/xdms5kxx5gzkjfsfkaz3akvh0y8vqx1r-source

View file

@ -0,0 +1 @@
/nix/store/yj1wxm9hh8610iyzqnz75kvs6xl8j3my-source

View file

@ -0,0 +1 @@
/nix/store/ipg70lcppm6g4xs075am8pgihccvg3sr-nix-shell-env

File diff suppressed because one or more lines are too long

1
home/dots/qtile/.envrc Normal file
View file

@ -0,0 +1 @@
use flake

12
home/dots/qtile/autostart.sh Executable file
View file

@ -0,0 +1,12 @@
#!/usr/bin/env bash
ckb-next -c -b &
mullvad connect &
xrdb -l ~/.Xresources &
# for later..
# gsettings set org.gnome.desktop.interface gtk-theme '${rice.gtk-theme.name}'";}
# gsettings set org.gnome.desktop.interface font-name '${rice.fonts.sans.name}'";}
# gsettings set org.gnome.desktop.interface icon-theme '${rice.icons.name}'";}
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE NIXOS_OZONE_WL; systemctl --user start qtile-session.target

175
home/dots/qtile/config.py Executable file
View file

@ -0,0 +1,175 @@
#!/usr/bin/env python3
# import coconut.api
from __future__ import annotations
import importlib
import subprocess
import sys
import os
from typing import List
from libqtile import bar, hook, layout, qtile, utils, widget
from libqtile.backend import base
from libqtile.lazy import lazy
from libqtile.config import Key, Match, Screen, Click, Drag, Group, ScratchPad, DropDown
# import qtile_extras.widget as extra_widgets
assert qtile is not None
from typing import Any
from libqtile.core.manager import Qtile
from libqtile.backend.wayland import InputConfig
wl_input_rules = {
"type:keyboard": InputConfig(kb_options="caps:escape"),
"*": InputConfig(accel_profile="flat", pointer_accel="0.0"),
}
mod = "mod4"
class Apps:
term = "kitty"
launcher = "fuzzel"
browser = "firefox"
fm = "thunar"
logout = "wlogout"
noti = "swaync-client -t"
ss = '''grim -g "$(slurp)" -t png -o "~/Pictures/$(date +%F_%H-%m-%S).png" && notify-send "Screenshot taken."'''
passmgr = "keepassxc"
class OSD:
mute = "swayosd --output-volume mute-toggle"
vol_up = "swayosd --output-volume raise"
vol_down = "swayosd --output-volume lower"
next = "playerctl next"
prev = "playerctl prev"
stop = "playerctl stop"
play = "playerctl play-pause"
brightup = "swayosd --brightness raise"
brightdown = "swayosd --brightness lower"
keys = [
Key([mod], "Return", lazy.spawn(Apps.term)),
Key([mod], "d", lazy.spawn(Apps.launcher)),
Key([mod], "f", lazy.spawn(Apps.browser)),
Key([mod], "e", lazy.spawn(Apps.fm)),
Key([mod, "Shift"], "e", lazy.spawn(Apps.logout)),
Key([mod], "n", lazy.spawn(Apps.noti)),
Key([mod, "Shift"], "s", lazy.spawn(Apps.ss)),
Key([], "XF86AudioMute", lazy.spawn(OSD.mute)),
Key([], "XF86AudioRaiseVolume", lazy.spawn(OSD.vol_up)),
Key([], "XF86AudioLowerVolume", lazy.spawn(OSD.vol_down)),
Key([], "XF86AudioStop", lazy.spawn(OSD.stop)),
Key([], "XF86AudioPlay", lazy.spawn(OSD.play)),
Key([], "XF86AudioPrev", lazy.spawn(OSD.prev)),
Key([], "XF86AudioNext", lazy.spawn(OSD.next)),
Key([], "XF86MonBrightnessUp", lazy.spawn(OSD.brightup)),
Key([], "XF86MonBrightnessDown", lazy.spawn(OSD.brightdown)),
Key([mod, "shift"], "q", lazy.window.kill()),
Key([mod], "h", lazy.layout.left(), desc="Move focus to left"),
Key([mod], "l", lazy.layout.right(), desc="Move focus to right"),
Key([mod], "j", lazy.layout.down(), desc="Move focus down"),
Key([mod], "k", lazy.layout.up(), desc="Move focus up"),
Key(
[mod, "shift"], "h", lazy.layout.shuffle_left(), desc="Move window to the left"
),
Key(
[mod, "shift"],
"l",
lazy.layout.shuffle_right(),
desc="Move window to the right",
),
Key([mod, "shift"], "j", lazy.layout.shuffle_down(), desc="Move window down"),
Key([mod, "shift"], "k", lazy.layout.shuffle_up(), desc="Move window up"),
Key([mod, "control"], "h", lazy.layout.grow_left(), desc="Grow window to the left"),
Key(
[mod, "control"], "l", lazy.layout.grow_right(), desc="Grow window to the right"
),
Key([mod, "control"], "j", lazy.layout.grow_down(), desc="Grow window down"),
Key([mod, "control"], "k", lazy.layout.grow_up(), desc="Grow window up"),
Key([mod], "space", lazy.window.toggle_floating()),
Key([mod, "shift"], "space", lazy.window.toggle_fullscreen()),
Key([mod], "Tab", lazy.layout.next_layout()),
]
groups = [Group(i) for i in "123456"]
for i in groups:
keys.extend(
[
# mod1 + letter of group = switch to group
Key(
[mod],
i.name,
lazy.group[i.name].toscreen(),
desc="Switch to group {}".format(i.name),
),
# mod1 + shift + letter of group = move focused window to group
Key(
[mod, "shift"],
i.name,
lazy.window.togroup(i.name),
desc="move focused window to group {}".format(i.name),
),
]
)
groups.append(ScratchPad("scratch", [
DropDown("term", Apps.term, width=0.8, height=0.45, x=0.2, y=0.0),
DropDown("pass", Apps.passmgr, width=0.5, height=0.5, x=0.25, y=0.25),
]))
keys.extend([
Key([mod], 'grave', lazy.group['scratch'].dropdown_toggle('term')),
Key([mod], 'minus', lazy.group['scratch'].dropdown_toggle('pass')),
])
layouts = [
layout.Bsp(margin_on_single=0),
layout.Slice(fallback=layout.Bsp(), side="top", width=1280),
]
widget_defaults = dict(
font="Inria Sans",
fontsize=12,
)
mouse = [
Drag([mod], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()),
Drag([mod], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()),
]
screens = [
Screen(
top = bar.Bar(
[
widget.GroupBox(),
widget.WindowTabs(),
widget.CurrentLayout(),
# widget.Volume(),
# widget.Systray(),
widget.Clock()
# widget.Clock('%B %d %a %I:%M %p'),
],
16,
)
)
]
dgroups_key_binder = None
dgroups_app_rules: List[str] = []
follow_mouse_focus = True
bring_front_click = False
cursor_warp = True
focus_on_window_activation = "smart"
@hook.subscribe.startup
def autostart():
home = os.path.expanduser("~/.config/qtile/autostart.sh")
subprocess.Popen([home])

78
home/dots/qtile/flake.lock generated Normal file
View file

@ -0,0 +1,78 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1695559356,
"narHash": "sha256-kXZ1pUoImD9OEbPCwpTz4tHsNTr4CIyIfXb3ocuR8sI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "261abe8a44a7e8392598d038d2e01f7b33cf26d0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1695318763,
"narHash": "sha256-FHVPDRP2AfvsxAdc+AsgFJevMz5VBmnZglFUMlxBkcY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e12483116b3b51a185a33a272bf351e357ba9a99",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable",
"utils": "utils"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

29
home/dots/qtile/flake.nix Normal file
View file

@ -0,0 +1,29 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, nixpkgs-unstable, utils, ... }:
utils.lib.eachDefaultSystem (system:
let
stable = import nixpkgs { inherit system; };
unstable = import nixpkgs-unstable { inherit system; };
in
{
devShell = with unstable; with unstable.python3Packages; mkShell {
buildInputs = [
python-lsp-server
mypy
pylsp-mypy
black
pydantic
coconut
stable.python3Packages.qtile-extras
stable.python3Packages.qtile
];
};
}
);
}

166
home/dots/river/init Executable file
View file

@ -0,0 +1,166 @@
#!/bin/sh
# This is the example configuration file for river.
#
# If you wish to edit this, you will probably want to copy it to
# $XDG_CONFIG_HOME/river/init or $HOME/.config/river/init first.
#
# See the river(1), riverctl(1), and kile(1) man pages for complete
# documentation.
# Note: the "Super" modifier is also known as Logo, GUI, Windows, Mod4, etc.
# MY BINDS
riverctl map normal Super Return spawn kitty
riverctl map normal Super D spawn fuzzel
riverctl map normal Super E spawn thunar
riverctl map normal Super F spawn firefox
riverctl map normal Super+Shift E spawn wlogout
riverctl map normal Super+Shift S spawn grim -g "$(slurp)" -t png -o ~/Pictures/$(date +%F_%H-%m-%S).png && notify-send "Screenshot taken."
riverctl map normal Super+Shift+Ctrl S spawn kooha
# Super+Q to close the focused view
riverctl map normal Super+Shift Q close
# Super+J and Super+K to focus the next/previous view in the layout stack
riverctl map normal Super J focus-view next
riverctl map normal Super K focus-view previous
# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous
# view in the layout stack
riverctl map normal Super+Shift J swap next
riverctl map normal Super+Shift K swap previous
# Super+Period and Super+Comma to focus the next/previous output
riverctl map normal Super Period focus-output next
riverctl map normal Super Comma focus-output previous
# Super+Shift+{Period,Comma} to send the focused view to the next/previous output
riverctl map normal Super+Shift Period send-to-output next
riverctl map normal Super+Shift Comma send-to-output previous
# Super+Return to bump the focused view to the top of the layout stack
riverctl map normal Super+Shift Return zoom
# Super+H and Super+L to decrease/increase the main ratio of kile(1)
riverctl map normal Super H send-layout-cmd kile "main-ratio -0.05"
riverctl map normal Super L send-layout-cmd kile "main-ratio +0.05"
# Super+Shift+H and Super+Shift+L to increment/decrement the main count of kile(1)
riverctl map normal Super+Shift H send-layout-cmd kile "main-count +1"
riverctl map normal Super+Shift L send-layout-cmd kile "main-count -1"
# Super+Alt+{H,J,K,L} to move views
riverctl map normal Super+Alt H move left 100
riverctl map normal Super+Alt J move down 100
riverctl map normal Super+Alt K move up 100
riverctl map normal Super+Alt L move right 100
# Super+Alt+Control+{H,J,K,L} to snap views to screen edges
riverctl map normal Super+Alt+Control H snap left
riverctl map normal Super+Alt+Control J snap down
riverctl map normal Super+Alt+Control K snap up
riverctl map normal Super+Alt+Control L snap right
# Super+Alt+Shift+{H,J,K,L} to resize views
riverctl map normal Super+Alt+Shift H resize horizontal -100
riverctl map normal Super+Alt+Shift J resize vertical 100
riverctl map normal Super+Alt+Shift K resize vertical -100
riverctl map normal Super+Alt+Shift L resize horizontal 100
# Super + Left Mouse Button to move views
riverctl map-pointer normal Super BTN_LEFT move-view
# Super + Right Mouse Button to resize views
riverctl map-pointer normal Super BTN_RIGHT resize-view
# Super + Middle Mouse Button to toggle float
riverctl map-pointer normal Super BTN_MIDDLE toggle-float
for i in $(seq 1 9)
do
tags=$((1 << ($i - 1)))
# Super+[1-9] to focus tag [0-8]
riverctl map normal Super $i set-focused-tags $tags
# Super+Shift+[1-9] to tag focused view with tag [0-8]
riverctl map normal Super+Shift $i set-view-tags $tags
# Super+Control+[1-9] to toggle focus of tag [0-8]
riverctl map normal Super+Control $i toggle-focused-tags $tags
# Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view
riverctl map normal Super+Shift+Control $i toggle-view-tags $tags
done
# Super+0 to focus all tags
# Super+Shift+0 to tag focused view with all tags
all_tags=$(((1 << 32) - 1))
riverctl map normal Super 0 set-focused-tags $all_tags
riverctl map normal Super+Shift 0 set-view-tags $all_tags
# Super+Space to toggle float
riverctl map normal Super Space toggle-float
# Super+F to toggle fullscreen
riverctl map normal Super+Shift Space toggle-fullscreen
# Super+{Up,Right,Down,Left} to change layout orientation
riverctl map normal Super Up send-layout-cmd kile "main-location top"
riverctl map normal Super Right send-layout-cmd kile "main-location right"
riverctl map normal Super Down send-layout-cmd kile "main-location bottom"
riverctl map normal Super Left send-layout-cmd kile "main-location left"
# Declare a passthrough mode. This mode has only a single mapping to return to
# normal mode. This makes it useful for testing a nested wayland compositor
riverctl declare-mode passthrough
# Super+F11 to enter passthrough mode
riverctl map normal Super F11 enter-mode passthrough
# Super+F11 to return to normal mode
riverctl map passthrough Super F11 enter-mode normal
# Various media key mapping examples for both normal and locked mode which do
# not have a modifier
for mode in normal locked
do
# Eject the optical drive (well if you still have one that is)
riverctl map $mode None XF86Eject spawn 'eject -T'
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
riverctl map $mode None XF86AudioRaiseVolume spawn 'swayosd --output-volume raise'
riverctl map $mode None XF86AudioLowerVolume spawn 'swayosd --output-volume lower'
riverctl map $mode None XF86AudioMute spawn 'swayosd --output-volume mute-toggle'
# Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
riverctl map $mode None XF86AudioNext spawn 'playerctl next'
# Control screen backlight brightness with light (https://github.com/haikarainen/light)
riverctl map $mode None XF86MonBrightnessUp spawn 'light -A 5'
riverctl map $mode None XF86MonBrightnessDown spawn 'light -U 5'
done
# Set background and border color
riverctl background-color 0x#BGCOLOUR
riverctl border-color-focused 0x#BORDERCOLOUR
riverctl border-color-unfocused 0x#UNFOCUSEDCOLOUR
# Set keyboard repeat rate
riverctl set-repeat 50 300
# Make all views with an app-id that starts with "float" and title "foo" start floating.
# riverctl rule-add float -app-id 'float*' -title 'foo'
# Make all views with app-id "bar" and any title use client-side decorations
# riverctl rule-add csd -app-id "bar"
# Set the default layout generator to be kile and start it.
# River will send the process group of the init executable SIGTERM on exit.
riverctl default-layout kile
kile &

View file

@ -0,0 +1,7 @@
const ver Vertical
const hor Horizontal
const vsplit (ver | hor ([1 - 0.5] *hsplit))
const hsplit (hor | ver ([1 - 0.5] *vsplit))
const default vsplit

View file

@ -60,12 +60,8 @@ in {
mpv
river
gtk-engine-murrine
persway
flashfocus
]
++ pkgs.rice.fonts.pkgs
++ pkgs.rice.icons.pkgs;
@ -90,7 +86,7 @@ in {
};
programs.ironbar = with pkgs.rice; {
enable = true;
# enable = true;
config = {
anchor_to_edges = true;
position = "top";
@ -205,7 +201,7 @@ in {
{command = "${lib.getExe' ckb-next "ckb-next"} -c -b";}
{command = "${lib.getExe' mullvad "mullvad"} connect";}
{command = "${lib.getExe' xorg.xrdb "xrdb"} -l ~/.Xresources";}
{command = "${lib.getExe' flashfocus "flashfocus"} -o 0.97 -t 175 -n 30 --no-flash-fullscreen -l on_open_close";}
{command = "${lib.getExe' flashfocus "flashfocus"} -o 0.95 -t 175 -n 30 --no-flash-fullscreen -l on_open_close";}
{command = "${lib.getExe' glib.bin "gsettings"} set org.gnome.desktop.interface gtk-theme '${rice.gtk-theme.name}'";}
{command = "${lib.getExe' glib.bin "gsettings"} set org.gnome.desktop.interface font-name '${rice.fonts.sans.name}'";}
{command = "${lib.getExe' glib.bin "gsettings"} set org.gnome.desktop.interface icon-theme '${rice.icons.name}'";}
@ -310,26 +306,31 @@ in {
builtins.mapAttrs (name: cmd: {
Unit = {
Description = "${name}";
Requires = ["sway-session.target"];
Requires = [ "graphical-session.target" "qtile-session.target" ];
After = [ "graphical-session.target" "qtile-session.target" ];
};
Service = {
ExecStart = cmd;
};
Install = {
WantedBy = ["sway-session.target"];
WantedBy = ["qtile-session.target"];
};
})
{
swaybg = "${lib.getExe swaybg} -i ${rice.bg.image} -m fill";
# QT APPS CANT THEME PROPERLY HOW EMBARASSING
# keepassxc = "${lib.getExe' keepassxc "keepassxc"}";
# ckb-next = "${lib.getExe' ckb-next "ckb-next"} -c -b";
swayosd = "${lib.getExe' swayosd "swayosd"} --max-volume 100";
swaync = "${lib.getExe swaynotificationcenter}";
persway = "${lib.getExe' persway "persway"} daemon -d spiral";
# PYTHON APP CANT RUN AS SYSTEMD SERVICE HOW EMBARASSING
flashfocus = "${lib.getExe flashfocus} -o 0.95 -t 175 -n 30 --no-flash-fullscreen -l on_open_close";
# persway = "${lib.getExe' persway "persway"} daemon -d spiral";
# nb. python or qt apps fail as sd services, use wm to launch
};
systemd.user.targets.qtile-session = {
Unit = {
BindsTo = [ "graphical-session.target" ];
Wants = [ "graphical-session-pre.target" "xdg-desktop-autostart.target" ];
After = [ "graphical-session-pre.target" ];
Before = [ "xdg-desktop-autostart.target" ];
};
};
xdg.enable = true;
xresources.properties = with palette-hex; {
@ -358,11 +359,13 @@ in {
xdg.configFile =
builtins.mapAttrs (name: value: {
enable = true;
text = builtins.readFile value;
source = value;
})
{
"swaync/config.json" = dots/swaync/config.json;
"swaync/configSchema.json" = dots/swaync/configSchema.json;
"qtile/config.py" = dots/qtile/config.py;
"qtile/autostart.sh" = dots/qtile/autostart.sh;
}
// {
"swaync/style.css" = {

View file

@ -10,10 +10,11 @@
config.allowUnfree = true;
};
};
rice = import ./rice.nix;
podman-stable = final: prev: {podman-stable = final.stable.podman;};
wlroots = final: prev: {
wlroots = final.unstable.wlroots_0_16.overrideAttrs (wfinal: wprev: {
wlroots = final.unstable.wlroots.overrideAttrs (wfinal: wprev: {
postPatch =
wprev.postPatch
+ ''
@ -21,6 +22,7 @@
'';
});
};
sway-unwrapped = final: prev: {
sway-unwrapped =
(final.unstable.sway-unwrapped.override {
@ -34,6 +36,7 @@
}
);
};
sway = final: prev: {
sway = final.unstable.sway.override {
sway-unwrapped = final.sway-unwrapped;
@ -41,9 +44,5 @@
withGtkWrapper = true;
};
};
river = final: prev: {
river = final.unstable.river.override {
wlroots = final.wlroots;
};
};
}

View file

@ -1,11 +1,19 @@
diff --git a/sway/main.c b/sway/main.c
index 85bc2f1..0129a58 100644
index 85bc2f1c..a2f76590 100644
--- a/sway/main.c
+++ b/sway/main.c
@@ -58,16 +58,25 @@ void detect_proprietary(int allow_unsupported_gpu) {
size_t line_size = 0;
while (getline(&line, &line_size, f) != -1) {
if (strncmp(line, "nvidia ", 7) == 0) {
@@ -50,41 +50,7 @@ void sig_handler(int signal) {
}
void detect_proprietary(int allow_unsupported_gpu) {
- FILE *f = fopen("/proc/modules", "r");
- if (!f) {
- return;
- }
- char *line = NULL;
- size_t line_size = 0;
- while (getline(&line, &line_size, f) != -1) {
- if (strncmp(line, "nvidia ", 7) == 0) {
- if (allow_unsupported_gpu) {
- sway_log(SWAY_ERROR,
- "!!! Proprietary Nvidia drivers are in use !!!");
@ -16,25 +24,24 @@ index 85bc2f1..0129a58 100644
- "--unsupported-gpu and DO NOT report issues.");
- exit(EXIT_FAILURE);
- }
+ sway_log(SWAY_INFO,
+ "Thank you, based Nvidia user! o7"
+ );
+ sway_log(SWAY_INFO,
+ " _ ___ __ "
+ );
+ sway_log(SWAY_INFO,
+ " ____ _ __(_)___/ (_)___ _ _________ _____/ /_______"
+ );
+ sway_log(SWAY_INFO,
+ " / __ \\ | / / / __ / / __ `/ / ___/ __ \\/ ___/ //_/ ___/"
+ );
+ sway_log(SWAY_INFO,
+ " / / / / |/ / / /_/ / / /_/ / / / / /_/ / /__/ ,< (__ ) "
+ );
+ sway_log(SWAY_INFO,
+ "/_/ /_/|___/_/\\__,_/_/\\__,_/ /_/ \\____/\\___/_/|_/____/ "
+ );
+
break;
}
if (strstr(line, "fglrx")) {
- break;
- }
- if (strstr(line, "fglrx")) {
- if (allow_unsupported_gpu) {
- sway_log(SWAY_ERROR,
- "!!! Proprietary AMD drivers are in use !!!");
- } else {
- sway_log(SWAY_ERROR, "Proprietary AMD drivers do NOT support "
- "Wayland. Use radeon. To try anyway, launch sway with "
- "--unsupported-gpu and DO NOT report issues.");
- exit(EXIT_FAILURE);
- }
- break;
- }
- }
- free(line);
- fclose(f);
+ return;
}
void run_as_ipc_client(char *command, char *socket_path) {

View file

@ -34,15 +34,15 @@
trusted-users = ["bolt" "plank"];
experimental-features = "nix-command flakes";
substitute = true;
substituters = ["https://anyrun.cachix.org" "https://jakestanger.cachix.org"];
substituters = ["https://jakestanger.cachix.org"];
trusted-public-keys = [
"jakestanger.cachix.org-1:VWJE7AWNe5/KOEvCQRxoE8UsI2Xs2nHULJ7TEjYm7mM="
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
];
};
};
imports = [
];
nix.extraOptions = ''
@ -87,11 +87,23 @@
services.udisks2.enable = true;
services.xserver.windowManager.qtile = {
enable = true;
backend = "wayland";
package = inputs.qtile.packages.x86_64-linux.default;
configFile = null; # using hm instead
extraPackages = python3Packages: with python3Packages; [
pkgs.stable.python3Packages.qtile-extras
coconut
];
};
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${lib.getExe pkgs.greetd.tuigreet} -r -g \"what's good\" --time --sessions ${pkgs.sway}/share/wayland-sessions";
# command = "${lib.getExe pkgs.greetd.tuigreet} -r -g \"what's good\" --time --cmd sway";
command = "${lib.getExe pkgs.greetd.tuigreet} -r -g \"what's good\" --time --cmd \"qtile start -b wayland\"";
user = "greeter";
};
};