diff --git a/flake.lock b/flake.lock index 5b10d60..30df0b4 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1688772518, - "narHash": "sha256-ol7gZxwvgLnxNSZwFTDJJ49xVY5teaSvF7lzlo3YQfM=", + "lastModified": 1693439040, + "narHash": "sha256-t2nOxBcP0Q/XJt6Ild4v0hJ49OSl9F3nE1cdIT4xsDg=", "owner": "ipetkov", "repo": "crane", - "rev": "8b08e96c9af8c6e3a2b69af5a7fa168750fcf88e", + "rev": "174604795d316b75777e28185c3a4918bc69b399", "type": "github" }, "original": { @@ -35,11 +35,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1691722951, - "narHash": "sha256-V6ERc3gVbITjNDljQsfFRz/s68717aPjK+e94uZbLvQ=", + "lastModified": 1696043078, + "narHash": "sha256-0zPC5BR/6JyX6HponF9rQPhpQBDyMZMpGIBWOIvvX8E=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "f6a346762491a4655c3b43da5f2f154b57237a44", + "rev": "db6c96d74eb0e60e7e344e81a56b33390e33474d", "type": "github" }, "original": { @@ -64,10 +64,72 @@ "type": "github" } }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixpak", + "nixpkgs" + ] + }, + "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": [ + "nixpak", + "hercules-ci-effects", + "hercules-ci-agent", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688466019, + "narHash": "sha256-VeM2akYrBYMsb4W/MmBo1zmaMfgbL4cH3Pu8PGyIwJ0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8e8d955c22df93dbe24f19ea04f47a74adbdc5ec", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-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" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_3" + }, "locked": { "lastModified": 1689068808, "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", @@ -82,21 +144,64 @@ "type": "github" } }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, + "haskell-flake": { "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", + "lastModified": 1684780604, + "narHash": "sha256-2uMZsewmRn7rRtAnnQNw1lj0uZBMh4m6Cs/7dV5YF08=", + "owner": "srid", + "repo": "haskell-flake", + "rev": "74210fa80a49f1b6f67223debdbf1494596ff9f2", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "srid", + "ref": "0.3.0", + "repo": "haskell-flake", + "type": "github" + } + }, + "hercules-ci-agent": { + "inputs": { + "flake-parts": "flake-parts_2", + "haskell-flake": "haskell-flake", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1688568579, + "narHash": "sha256-ON0M56wtY/TIIGPkXDlJboAmuYwc73Hi8X9iJGtxOhM=", + "owner": "hercules-ci", + "repo": "hercules-ci-agent", + "rev": "367dd8cd649b57009a6502e878005a1e54ad78c5", + "type": "github" + }, + "original": { + "id": "hercules-ci-agent", + "type": "indirect" + } + }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": [ + "nixpak", + "flake-parts" + ], + "hercules-ci-agent": "hercules-ci-agent", + "nixpkgs": [ + "nixpak", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1695684520, + "narHash": "sha256-yORqGB0i1OtEf9MOCCT2BIbOd8txPZn216CM+ylMmhY=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "91fae5824f5f1199f61693c6590b4a89abaed9d7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", "type": "github" } }, @@ -107,11 +212,11 @@ ] }, "locked": { - "lastModified": 1691672736, - "narHash": "sha256-HNPA/dKHerA0p4OsToEcW/DtTSXBcK5gFRsy/yPgV/Y=", + "lastModified": 1695984718, + "narHash": "sha256-LQwKgaaaFOkIcxarf0xQXeDJFwZ5BZWcgmPeo3xp2CM=", "owner": "nix-community", "repo": "home-manager", - "rev": "6e1eff9aac0e8d84bda7f2d60ba6108eea9b7e79", + "rev": "4f02e35f9d150573e1a710afa338846c2f6d850c", "type": "github" }, "original": { @@ -126,15 +231,16 @@ "nixpkgs": [ "nixpkgs" ], + "systems": "systems_2", "wlroots": "wlroots", "xdph": "xdph" }, "locked": { - "lastModified": 1691697694, - "narHash": "sha256-Z4zAxYxEJ0/3S5DAvxNAdvkZlwpDSvUJ1jFxtU1wkzY=", + "lastModified": 1696036148, + "narHash": "sha256-7KCxZLMEQhjQXZVqVPZCxUR3lE+Z5heU7MmQjEtFFqU=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "e4e8ae8f885104bb948afa24f1cd9fc3bdb450e9", + "rev": "86e8ed038f5b195cdf2548bc469f8f8bbc0caca8", "type": "github" }, "original": { @@ -150,11 +256,11 @@ ] }, "locked": { - "lastModified": 1691652733, - "narHash": "sha256-BxUPTu/fIGe6DKMJclP0URrAVHWXfh9wSe1tSRinKdc=", + "lastModified": 1695455226, + "narHash": "sha256-9apatfi9j8qhy4acbrZXVehNNeyOkcr+sPYCw03zUhg=", "owner": "outfoxxed", "repo": "hy3", - "rev": "febcd88794ab2c4204e4c3785b9dea208b508bb5", + "rev": "158dff894ec38d4a5616ec03b68c5ae6beaf785a", "type": "github" }, "original": { @@ -168,14 +274,18 @@ "nixpkgs": [ "hyprland", "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" ] }, "locked": { - "lastModified": 1684265364, - "narHash": "sha256-AxNnWbthsuNx73HDQr0eBxrcE3+yfl/WsaXZqUFmkpQ=", + "lastModified": 1691753796, + "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "8c279b9fb0f2b031427dc5ef4eab53f2ed835530", + "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", "type": "github" }, "original": { @@ -191,11 +301,11 @@ ] }, "locked": { - "lastModified": 1691060455, - "narHash": "sha256-V5ulB9CkGh1ghiC4BKvRdoYKZzpaiOKzAOUmJIFkgM0=", + "lastModified": 1694600309, + "narHash": "sha256-d9LcB+D0bfMu+8UhnUVJ/DX5OVTX6o5dIntdVqEeQDA=", "owner": "hyprwm", "repo": "Hyprpaper", - "rev": "e498c438b1e16dcf32ecb3030b20b83f7ed9ff6d", + "rev": "e5a18a171d5d6e7c6b9ffdfb9e86fb09055964a1", "type": "github" }, "original": { @@ -231,11 +341,11 @@ ] }, "locked": { - "lastModified": 1691611150, - "narHash": "sha256-0Jx7RQ236n6O9NIx8iUvGFVo3JRuiypWU5JIUh9Mj/M=", + "lastModified": 1695668783, + "narHash": "sha256-pXVei5KZMxALQ8ibx0oqbfh5N/FI3VzJHodDNAh41xE=", "owner": "JakeStanger", "repo": "ironbar", - "rev": "b649525a2cb43fdd673f04e0dee879d22925a821", + "rev": "0c0163cfa1a8c0286edf231507026dd6f5798644", "type": "github" }, "original": { @@ -249,11 +359,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": { @@ -262,13 +372,35 @@ "type": "github" } }, + "nixpak": { + "inputs": { + "flake-parts": "flake-parts", + "hercules-ci-effects": "hercules-ci-effects", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1695869087, + "narHash": "sha256-SEuiLtiBo0emK+S3QEgNRcmGAmc3bbGIWgSM/RJzvs0=", + "owner": "nixpak", + "repo": "nixpak", + "rev": "da958fa2298e3fe1eb386071377ef9731ee26c4b", + "type": "github" + }, + "original": { + "owner": "nixpak", + "repo": "nixpak", + "type": "github" + } + }, "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": { @@ -278,11 +410,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1691592289, - "narHash": "sha256-Lqpw7lrXlLkYra33tp57ms8tZ0StWhbcl80vk4D90F8=", + "lastModified": 1695825837, + "narHash": "sha256-4Ne11kNRnQsmSJCRSSNkFRSnHC4Y5gPDBIQGjjPfJiU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9034b46dc4c7596a87ab837bb8a07ef2d887e8c7", + "rev": "5cfafa12d57374f48bcc36fda3274ada276cf69e", "type": "github" }, "original": { @@ -294,11 +426,27 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1691654369, - "narHash": "sha256-gSILTEx1jRaJjwZxRlnu3ZwMn1FVNk80qlwiCX8kmpo=", + "lastModified": 1688322751, + "narHash": "sha256-eW62dC5f33oKZL7VWlomttbUnOTHrAbte9yNUNW8rbk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e", + "rev": "0fbe93c5a7cac99f90b60bdf5f149383daaa615f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1695830400, + "narHash": "sha256-gToZXQVr0G/1WriO83olnqrLSHF2Jb8BPcmCt497ro0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8a86b98f0ba1c405358f1b71ff8b5e1d317f5db2", "type": "github" }, "original": { @@ -309,11 +457,11 @@ }, "nur": { "locked": { - "lastModified": 1691725539, - "narHash": "sha256-7TvXi9pUaZXiGZW0eH+JMcbFfBPvDgx03UuaHhIBPoI=", + "lastModified": 1696042552, + "narHash": "sha256-/n20VRUYywPiV5MS9eUoFMbuvX8m0gM3pHdKHW8Ah64=", "owner": "nix-community", "repo": "NUR", - "rev": "12503f38212124d5ce66bba48a5534ad6d61a1b9", + "rev": "33b3ce67676a10b875dc58d187120b47e61b90a3", "type": "github" }, "original": { @@ -332,7 +480,8 @@ "hyprpaper": "hyprpaper", "impurity": "impurity", "ironbar": "ironbar", - "nixpkgs": "nixpkgs_2", + "nixpak": "nixpak", + "nixpkgs": "nixpkgs_3", "nur": "nur", "rust-overlay": "rust-overlay_2", "stable": "stable" @@ -352,11 +501,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": { @@ -375,11 +524,11 @@ ] }, "locked": { - "lastModified": 1691719735, - "narHash": "sha256-GhPn5EIhGt7aFwgC6RELZJC7mUIol9O0k7Dsf2Hu0AM=", + "lastModified": 1696039808, + "narHash": "sha256-7TbAr9LskWG6ISPhUdyp6zHboT7FsFrME5QsWKybPTA=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "ac9d8b2e9acc153145e6fa3c78f9ba458ae517bf", + "rev": "a4c3c904ab29e04a20d3a6da6626d66030385773", "type": "github" }, "original": { @@ -390,11 +539,11 @@ }, "stable": { "locked": { - "lastModified": 1691592289, - "narHash": "sha256-Lqpw7lrXlLkYra33tp57ms8tZ0StWhbcl80vk4D90F8=", + "lastModified": 1695825837, + "narHash": "sha256-4Ne11kNRnQsmSJCRSSNkFRSnHC4Y5gPDBIQGjjPfJiU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9034b46dc4c7596a87ab837bb8a07ef2d887e8c7", + "rev": "5cfafa12d57374f48bcc36fda3274ada276cf69e", "type": "github" }, "original": { @@ -419,6 +568,21 @@ } }, "systems_2": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_3": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -437,18 +601,18 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1691073628, - "narHash": "sha256-LlxE3o3UzRY7APYVLGNKM30DBMcDifCRIQiMVSbYLIc=", + "lastModified": 1695919988, + "narHash": "sha256-4RBgIZHaVqH0m1POnfzYRzwCWxifIKH4xQ0kCn2LGkA=", "owner": "wlroots", "repo": "wlroots", - "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", + "rev": "c2aa7fd965cb7ee8bed24f4122b720aca8f0fc1e", "type": "gitlab" }, "original": { "host": "gitlab.freedesktop.org", "owner": "wlroots", "repo": "wlroots", - "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", + "rev": "c2aa7fd965cb7ee8bed24f4122b720aca8f0fc1e", "type": "gitlab" } }, @@ -461,14 +625,18 @@ "nixpkgs": [ "hyprland", "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" ] }, "locked": { - "lastModified": 1691082525, - "narHash": "sha256-C5AO0KnyAFJaCkOn+5nJfWm0kyiPn/Awh0lKTjhgr7Y=", + "lastModified": 1694628480, + "narHash": "sha256-Qg9hstRw0pvjGu5hStkr2UX1D73RYcQ9Ns/KnZMIm9w=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "42747d267ab4345c4ceb78cd4a4fe99f072d80fc", + "rev": "8f45a6435069b9e24ebd3160eda736d7a391cbf2", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 99d015e..da4c31f 100755 --- a/flake.nix +++ b/flake.nix @@ -11,6 +11,11 @@ impurity.url = "github:outfoxxed/impurity.nix"; + nixpak = { + url = "github:nixpak/nixpak"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + emacs-overlay = { url = "github:nix-community/emacs-overlay"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/modules/core/default.nix b/modules/core/default.nix index 7ff9cb7..ad7951b 100644 --- a/modules/core/default.nix +++ b/modules/core/default.nix @@ -29,18 +29,21 @@ # this binds the nixpkgs registry to the one in `flake.nix`. registry = { nixpkgs.flake = inputs.nixpkgs; + stable.flake = inputs.stable; }; # the nix path is used to discover channels for the old nix commands. # this binds the nix path to the channels following `flake.nix` declared below. nixPath = [ "nixpkgs=/etc/nix/inputs/nixpkgs" + "stable=/etc/nix/inputs/stable" ]; }; # add entries for `nixPath` above. environment.etc = { "nix/inputs/nixpkgs".source = inputs.nixpkgs.outPath; + "nix/inputs/stable".source = inputs.stable.outPath; }; # allow processes to request scheduling priority diff --git a/modules/emacs/default.nix b/modules/emacs/default.nix index 4e841a8..7f38352 100644 --- a/modules/emacs/default.nix +++ b/modules/emacs/default.nix @@ -41,7 +41,7 @@ custom-emacs = with newpkgs; - ((emacsPackagesFor (emacs-pgtk.override { withNativeCompilation = true; })).emacsWithPackages (epkgs: with epkgs; [ + ((emacsPackagesFor (emacs29-pgtk.override { withNativeCompilation = true; })).emacsWithPackages (epkgs: with epkgs; [ avy better-jumper company @@ -56,6 +56,7 @@ flycheck frames-only-mode fussy + groovy-mode just-mode kotlin-mode lsp-mode diff --git a/modules/hyprland/default.nix b/modules/hyprland/default.nix index 79b7aa4..3b6038f 100644 --- a/modules/hyprland/default.nix +++ b/modules/hyprland/default.nix @@ -2,6 +2,7 @@ inherit (inputs) hyprland hyprpaper hyprland-hy3; wrapper = pkgs.writeShellScriptBin "hyprland" '' + ${builtins.readFile ./session.sh} ${config.hyprland-session.prerun} ${hyprland.packages.${system}.default}/bin/Hyprland $@ ''; diff --git a/modules/hyprland/hyprland.conf b/modules/hyprland/hyprland.conf index 4923460..f0f0428 100644 --- a/modules/hyprland/hyprland.conf +++ b/modules/hyprland/hyprland.conf @@ -1,3 +1,5 @@ +exec = systemctl start --user emacs.service && emacsclient -e "(setenv \"HYPRLAND_INSTANCE_SIGNATURE\" \"$HYPRLAND_INSTANCE_SIGNATURE\")" + general { gaps_in = 3 gaps_out = 5 @@ -61,7 +63,6 @@ gestures { misc { no_direct_scanout = false - suppress_portal_warnings = true } binds { @@ -123,7 +124,7 @@ bind = $mod, a, hy3:changefocus, raise bind = $mod+SHIFT, a, hy3:changefocus, lower bind = $mod, e, hy3:expand, expand bind = $mod+SHIFT, e, hy3:expand, base -bind = $mod, r, togglesplit +bind = $mod, r, hy3:changegroup, opposite bindm = $mod, mouse:272, movewindow bindm = $mod, mouse:273, resizewindow @@ -136,6 +137,8 @@ bind = ,XF86AudioStop, exec, playerctl -a stop bind = ,XF86AudioNext, exec, playerctl next bind = ,XF86AudioPrev, exec, playerctl previous +bind = $mod+SHIFT, s, exec, grim -g "$(slurp)" - | wl-copy + bind = $mod, h, hy3:movefocus, l bind = $mod, j, hy3:movefocus, d bind = $mod, k, hy3:movefocus, u @@ -163,6 +166,15 @@ bind = $mod+SHIFT, down, hy3:movewindow, d, once bind = $mod+SHIFT, up, hy3:movewindow, u, once bind = $mod+SHIFT, right, hy3:movewindow, r, once +bind = $mod+CONTROL+SHIFT, h, hy3:movewindow, l, once, visible +bind = $mod+CONTROL+SHIFT, j, hy3:movewindow, d, once, visible +bind = $mod+CONTROL+SHIFT, k, hy3:movewindow, u, once, visible +bind = $mod+CONTROL+SHIFT, l, hy3:movewindow, r, once, visible +bind = $mod+CONTROL+SHIFT, left, hy3:movewindow, l, once, visible +bind = $mod+CONTROL+SHIFT, down, hy3:movewindow, d, once, visible +bind = $mod+CONTROL+SHIFT, up, hy3:movewindow, u, once, visible +bind = $mod+CONTROL+SHIFT, right, hy3:movewindow, r, once, visible + bind = $mod, 1, workspace, 01 bind = $mod, 2, workspace, 02 bind = $mod, 3, workspace, 03 diff --git a/modules/hyprland/session.sh b/modules/hyprland/session.sh index a048c6f..377765a 100644 --- a/modules/hyprland/session.sh +++ b/modules/hyprland/session.sh @@ -34,4 +34,4 @@ dbus-update-activation-environment --systemd MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE # QT_PLUGIN_PATH=/lib/qt-ver/plugins + breeze will correctly set the theme. # HOWEVER it won't find thumbnailers. For now the easiest way to deal with this, though definitely not # the right one, is to just throw $PATH into dbus. -@dbusenv@ --systemd PATH +dbus-update-activation-environment --systemd PATH diff --git a/modules/system.nix b/modules/system.nix index 0fa237b..78240e8 100644 --- a/modules/system.nix +++ b/modules/system.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: { +{ lib, pkgs, config, ... }: { imports = [ ./core ./theme @@ -43,4 +43,7 @@ # removable disks in file manager services.udisks2.enable = true; + + programs.adb.enable = true; + users.users.${config.main-user}.extraGroups = [ "adbusers" ]; } diff --git a/modules/user/dev-support.nix b/modules/user/dev-support.nix index f191b39..bccdef8 100644 --- a/modules/user/dev-support.nix +++ b/modules/user/dev-support.nix @@ -3,6 +3,7 @@ rust-analyzer clang-tools_16 jdt-language-server + kotlin-language-server bear gdb diff --git a/modules/user/general.nix b/modules/user/general.nix index 834e991..794d080 100644 --- a/modules/user/general.nix +++ b/modules/user/general.nix @@ -100,7 +100,7 @@ ripgrep qbittorrent signal-desktop - anki + anki-bin libsForQt5.kwallet libsForQt5.kwalletmanager diff --git a/modules/user/modules/firefox/default.nix b/modules/user/modules/firefox/default.nix index 57e830d..561c28e 100755 --- a/modules/user/modules/firefox/default.nix +++ b/modules/user/modules/firefox/default.nix @@ -46,7 +46,7 @@ in { programs.firefox = { enable = true; - package = pkgs.firefox.overrideAttrs (pkg: let + package = pkgs.firefox-devedition.overrideAttrs (pkg: let imEntry = pkg.desktopItem.override (entry: { name = "discord-firefox"; desktopName = "IMs (Firefox)"; @@ -66,9 +66,10 @@ in { name = "BaseFF"; userChrome = builtins.readFile ./sideberry_chrome.css; }; - default = { + dev-edition-default = { id = 0; - name = "Default"; + name = "dev-edition-default"; + path = "default"; userChrome = '' ${builtins.readFile ./sideberry_chrome.css} ${builtins.readFile ./sideberry_hide_ext_button.css} diff --git a/modules/user/modules/firefox/sideberry_chrome.css b/modules/user/modules/firefox/sideberry_chrome.css index 58d9457..fa1f6e5 100755 --- a/modules/user/modules/firefox/sideberry_chrome.css +++ b/modules/user/modules/firefox/sideberry_chrome.css @@ -36,7 +36,7 @@ See the above repository for updates as well as full license text. */ /* The border controlling sidebar width will be removed so you'll need to modify these values to change width */ #sidebar-box { - --uc-sidebar-width: 47px; + --uc-sidebar-width: 40px; --uc-sidebar-hover-width: 232px; --uc-autohide-sidebar-delay: 050ms; /* Wait 0.6s before hiding sidebar */ position: relative; diff --git a/modules/user/modules/firefox/sideberry_settings.json b/modules/user/modules/firefox/sideberry_settings.json index fcd5cfa..1c04b00 100644 --- a/modules/user/modules/firefox/sideberry_settings.json +++ b/modules/user/modules/firefox/sideberry_settings.json @@ -1 +1 @@ -{"panels_v4":[{"type":"bookmarks","id":"bookmarks","cookieStoreId":"bookmarks","name":"Bookmarks","icon":"icon_bookmarks","bookmarks":true,"lockedPanel":false,"skipOnSwitching":false},{"type":"default","id":"firefox-default","name":"Default","icon":"icon_tabs","cookieStoreId":"firefox-default","lockedTabs":false,"lockedPanel":false,"skipOnSwitching":false,"noEmpty":false,"newTabCtx":"none","dropTabCtx":"none","moveTabCtx":"none","moveTabCtxNoChild":true}],"settings":{"version":"4.10.2","nativeScrollbars":false,"selWinScreenshots":true,"tabsCheck":true,"tabsFix":"notify","markWindow":true,"markWindowPreface":"​​​​​","ctxMenuNative":false,"autoHideCtxMenu":"none","ctxMenuRenderInact":true,"ctxMenuIgnoreContainers":"","navBarLayout":"hidden","navBarInline":false,"hideAddBtn":false,"hideSettingsBtn":false,"navBtnCount":true,"hideEmptyPanels":true,"navActTabsPanelLeftClickAction":"none","navActBookmarksPanelLeftClickAction":"none","navMidClickAction":"none","navSwitchPanelsWheel":true,"groupLayout":"list","skipEmptyPanels":false,"dndTabAct":true,"dndTabActDelay":750,"dndTabActMod":"none","dndExp":"pointer","dndExpDelay":0,"dndExpMod":"none","stateStorage":"global","warnOnMultiTabClose":"collapsed","activateOnMouseUp":true,"activateLastTabOnPanelSwitching":true,"showTabRmBtn":true,"showTabCtx":true,"hideInact":false,"activateAfterClosing":"next","activateAfterClosingPrevRule":"visible","activateAfterClosingNextRule":"tree","activateAfterClosingGlobal":false,"activateAfterClosingNoFolded":true,"activateAfterClosingNoDiscarded":true,"shiftSelAct":true,"askNewBookmarkPlace":false,"tabsRmUndoNote":true,"nativeHighlight":false,"tabsUnreadMark":false,"tabsReloadLimit":5,"tabsReloadLimitNotif":true,"tabsPanelSwitchActMove":true,"moveNewTabPin":"start","moveNewTabParent":"last_child","moveNewTabParentActPanel":false,"moveNewTab":"end","pinnedTabsPosition":"panel","pinnedTabsList":true,"pinnedAutoGroup":false,"tabsTree":true,"groupOnOpen":true,"tabsTreeLimit":"none","hideFoldedTabs":false,"autoFoldTabs":false,"autoFoldTabsExcept":"none","autoExpandTabs":false,"rmChildTabs":"none","tabsChildCount":true,"tabsLvlDots":false,"discardFolded":false,"discardFoldedDelay":0,"discardFoldedDelayUnit":"sec","tabsTreeBookmarks":true,"treeRmOutdent":"branch","bookmarksPanel":false,"warnOnMultiBookmarkDelete":"collapsed","openBookmarkNewTab":false,"midClickBookmark":"open_new_tab","actMidClickTab":false,"autoCloseBookmarks":false,"autoRemoveOther":false,"highlightOpenBookmarks":false,"activateOpenBookmarkTab":false,"showBookmarkLen":false,"bookmarksRmUndoNote":true,"fontSize":"m","bgNoise":false,"animations":true,"animationSpeed":"fast","theme":"default","style":"dark","sidebarCSS":true,"groupCSS":false,"snapNotify":true,"snapExcludePrivate":false,"snapInterval":0,"snapIntervalUnit":"min","snapLimit":0,"snapLimitUnit":"snap","hScrollThroughPanels":false,"scrollThroughTabs":"none","scrollThroughVisibleTabs":false,"scrollThroughTabsSkipDiscarded":false,"scrollThroughTabsExceptOverflow":true,"scrollThroughTabsCyclic":false,"tabDoubleClick":"none","tabLongLeftClick":"none","tabLongRightClick":"none","tabsPanelLeftClickAction":"none","tabsPanelDoubleClickAction":"tab","tabsPanelRightClickAction":"menu","tabsPanelMiddleClickAction":"tab","syncName":"","syncSaveSettings":false,"syncSaveCtxMenu":false,"syncSaveStyles":false,"syncAutoApply":false},"tabsMenu":[],"bookmarksMenu":[],"cssVars":{"bg":null,"title_fg":null,"sub_title_fg":null,"label_fg":null,"label_fg_hover":null,"label_fg_active":null,"info_fg":null,"true_fg":null,"false_fg":null,"active_fg":null,"inactive_fg":null,"favicons_placeholder_bg":null,"btn_bg":null,"btn_bg_hover":null,"btn_bg_active":null,"btn_fg":null,"btn_fg_hover":null,"btn_fg_active":null,"scroll_progress_h":null,"scroll_progress_bg":null,"ctx_menu_font":null,"ctx_menu_bg":null,"ctx_menu_bg_hover":null,"ctx_menu_fg":null,"nav_btn_fg":null,"nav_btn_width":null,"nav_btn_height":null,"pinned_dock_overlay_bg":null,"pinned_dock_overlay_shadow":null,"tabs_height":null,"tabs_pinned_height":null,"tabs_pinned_width":null,"tabs_indent":null,"tabs_font":null,"tabs_count_font":null,"tabs_fg":null,"tabs_fg_hover":null,"tabs_fg_active":null,"tabs_bg_hover":null,"tabs_bg_active":null,"tabs_activated_bg":null,"tabs_activated_fg":null,"tabs_selected_bg":null,"tabs_selected_fg":null,"tabs_border":null,"tabs_activated_border":null,"tabs_selected_border":null,"tabs_shadow":null,"tabs_activated_shadow":null,"tabs_selected_shadow":null,"tabs_lvl_indicator_bg":null,"bookmarks_bookmark_height":null,"bookmarks_folder_height":null,"bookmarks_separator_height":null,"bookmarks_bookmark_font":null,"bookmarks_folder_font":null,"bookmarks_node_title_fg":null,"bookmarks_node_title_fg_hover":null,"bookmarks_node_title_fg_active":null,"bookmarks_node_bg_hover":null,"bookmarks_node_bg_active":null,"bookmarks_folder_closed_fg":null,"bookmarks_folder_closed_fg_hover":null,"bookmarks_folder_closed_fg_active":null,"bookmarks_folder_open_fg":null,"bookmarks_folder_open_fg_hover":null,"bookmarks_folder_open_fg_active":null,"bookmarks_folder_empty_fg":null,"bookmarks_open_bookmark_fg":null},"sidebarCSS":"#root {\n --tabs-font: 9pt Segoe UI;\n --tabs-count-font: .625rem Segoe UI;\n --bookmarks-bookmark-font: .875rem Segoe UI;\n --bookmarks-folder-font: 9pt Segoe UI;\n --nav-btn-width: 42px;\n --nav-btn-height: 42px;\n}\n \n/* Adjust styles according to sidebar width */\n@media screen and (max-width: 47px) {\n #root {\n --tabs-indent: unset;\n }\n .Tab[data-audible]:not([data-muted]) svg.-loud, .Tab[data-muted] svg.-mute {\n transform: translateY(4px) translateX(-13px);\n }\n .NavigationBar .panel-btn:not([data-active=\"true\"]),\n .Sidebar .settings-btn,\n .Tab .close,\n .Tab .title {\n visibility: collapse;\n }\n \n .Tab .exp,\n .Tab[data-parent][data-folded] .fav {\n pointer-events: none;\n }\n \n}\n \n/*\n * Add margins and rounding around tabs\n */ \n \n#root {\n --tabs-height: 42px;\n}\n \n/* Background layer */\n.Tab .lvl-wrapper:after {\n content: '';\n position: absolute;\n top: 5px;\n left: 5px;\n width: calc(100% - 10px);\n height: calc(100% - 6px);\n border-radius: 4px;\n z-index: -1;\n}\n \n/*@media (prefers-color-scheme:light) {\n #root {\n --tabs-activated-bg: white !important;\n --tabs-bg-active: var(--tabs-activated-bg) !important;\n --tabs-selected-fg: var(--tabs-activated-fg) !important;\n --tabs-selected-bg: var(--tabs-activated-bg) !important;\n --bg: #f9f9fb !important;\n --chrome-content-separator-color: rgb(204,204,204);\n }\n \n .Tab[data-selected] .lvl-wrapper:after,\n .Tab[data-active] .lvl-wrapper:after {\n box-shadow: 0 0 1px rgba(128,128,142,0.9), 0 0 4px rgba(128,128,142,0.5);\n }\n}*/\n \n/*@media (prefers-color-scheme:dark) {*/\n #root {\n --tabs-activated-bg: #42414d !important;\n --tabs-bg-active: var(--tabs-activated-bg) !important;\n --tabs-selected-fg: var(--tabs-activated-fg) !important;\n --tabs-selected-bg: var(--tabs-activated-bg) !important;\n --bg: #1c1b22 !important;\n --chrome-content-separator-color: #0c0c0d;\n --tabs-bg-hover: rgb(51, 51, 62) !important;\n }\n .Tab[data-selected] .lvl-wrapper:after,\n .Tab[data-active] .lvl-wrapper:after {\n box-shadow: 0 0 1px rgba(128,128,142,0.9);\n }\n .Tab .placeholder > svg {\n fill: var(--nav-btn-fg);\n }\n/*}*/\n \n/* Reset default styles */\n.Tab:hover,\n.Tab:active,\n.Tab[data-active],\n.Tab[data-active]:active,\n.Tab[data-selected],\n.Tab[data-selected]:hover,\n.Tab[data-selected]:active {\n background: transparent;\n}\n \n/* Reapply styles */\n \n.Tab:hover .lvl-wrapper:after {\n background-color: var(--tabs-bg-hover);\n}\n \n.NavigationBar .panel-btn[data-active=\"true\"],\n.Tab:active .lvl-wrapper:after,\n.Tab[data-active]:active .lvl-wrapper:after {\n background-color: var(--tabs-bg-active);\n}\n \n.Tab[data-active] .lvl-wrapper:after {\n background-color: var(--tabs-activated-bg);\n}\n \n \n.Tab[data-selected] .lvl-wrapper:after {\n background-color: var(--tabs-selected-bg);,\n}\n \n/* Resize and reposition favicons */\n.Tab .fav {\n margin-left: 15px;\n}\n \n.Tab .fav,\n.Tab .placeholder,\n.Tab .t-box {\n margin-bottom: -3px;\n}\n \n.TabsPanel .container {\n box-shadow: none;\n}\n \n.Sidebar::before {\n --border-margin: 16px;\n content: '';\n width: calc(100% - var(--border-margin));\n margin: 0 calc(var(--border-margin) / 2);\n border-top: 1px solid var(--chrome-content-separator-color);\n}\n \n \n.Tab .audio {\n z-index: 21 !important;\n transform: translateX(5px);\n}\n.Tab .close {\n margin: 0 5px;\n}\n.Tab .t-box {\n width: calc(100% - 50px);\n}\n \n.NavigationBar .panels-box {\n/* flex-wrap: nowrap;*/\n}\n \n#root[data-nav-layout=\"horizontal\"] .NavigationBar, #root[data-nav-layout=\"hidden\"] .NavigationBar {\n box-shadow: none;\n}\n \n.NavigationBar .panel-btn {\n top: 5px;\n left: 5px;\n width: calc(var(--nav-btn-width) - 6px);\n height: calc(var(--nav-btn-height) - 6px);\n border-radius: 4px;\n margin-right: 5px;\n margin-bottom: 10px;\n}\n \n.NavigationBar .panel-btn[data-active=\"true\"] {\n box-shadow: 0 0 1px rgba(128,128,142,0.9);\n}","groupCSS":"","ver":"4.10.2"} \ No newline at end of file +{"settings":{"nativeScrollbars":true,"nativeScrollbarsThin":true,"nativeScrollbarsLeft":false,"selWinScreenshots":false,"updateSidebarTitle":true,"markWindow":true,"markWindowPreface":"​​​​​","ctxMenuNative":false,"ctxMenuRenderInact":true,"ctxMenuRenderIcons":true,"ctxMenuIgnoreContainers":"","navBarLayout":"hidden","navBarInline":true,"navBarSide":"left","hideAddBtn":false,"hideSettingsBtn":false,"navBtnCount":true,"hideEmptyPanels":true,"hideDiscardedTabPanels":false,"navActTabsPanelLeftClickAction":"none","navActBookmarksPanelLeftClickAction":"none","navTabsPanelMidClickAction":"discard","navBookmarksPanelMidClickAction":"none","navSwitchPanelsWheel":true,"subPanelRecentlyClosedBar":true,"subPanelBookmarks":true,"subPanelHistory":true,"groupLayout":"grid","containersSortByName":false,"skipEmptyPanels":false,"dndTabAct":true,"dndTabActDelay":750,"dndTabActMod":"none","dndExp":"pointer","dndExpDelay":750,"dndExpMod":"none","dndOutside":"win","dndActTabFromLink":true,"dndActSearchTab":true,"dndMoveTabs":false,"dndMoveBookmarks":false,"searchBarMode":"none","searchPanelSwitch":"same_type","searchBookmarksShortcut":"","searchHistoryShortcut":"","warnOnMultiTabClose":"any","activateLastTabOnPanelSwitching":true,"activateLastTabOnPanelSwitchingLoadedOnly":true,"switchPanelAfterSwitchingTab":"always","tabRmBtn":"hover","activateAfterClosing":"prev_act","activateAfterClosingStayInPanel":false,"activateAfterClosingGlobal":false,"activateAfterClosingNoFolded":true,"activateAfterClosingNoDiscarded":true,"askNewBookmarkPlace":true,"tabsRmUndoNote":true,"tabsUnreadMark":true,"tabsUpdateMark":"none","tabsUpdateMarkFirst":true,"tabsReloadLimit":5,"tabsReloadLimitNotif":true,"showNewTabBtns":true,"newTabBarPosition":"after_tabs","tabsPanelSwitchActMove":true,"tabsPanelSwitchActMoveAuto":true,"tabsUrlInTooltip":"full","newTabCtxReopen":false,"tabWarmupOnHover":true,"tabSwitchDelay":0,"moveNewTabPin":"start","moveNewTabParent":"last_child","moveNewTabParentActPanel":false,"moveNewTab":"end","moveNewTabActivePin":"start","pinnedTabsPosition":"panel","pinnedTabsList":true,"pinnedAutoGroup":true,"pinnedNoUnload":false,"tabsTree":true,"groupOnOpen":true,"tabsTreeLimit":"none","autoFoldTabs":false,"autoFoldTabsExcept":"none","autoExpandTabs":false,"autoExpandTabsOnNew":false,"rmChildTabs":"folded","tabsLvlDots":false,"discardFolded":false,"discardFoldedDelay":0,"discardFoldedDelayUnit":"sec","tabsTreeBookmarks":true,"treeRmOutdent":"branch","ignoreFoldedParent":false,"colorizeTabs":false,"colorizeTabsSrc":"container","colorizeTabsBranches":false,"colorizeTabsBranchesSrc":"url","inheritCustomColor":true,"hideInact":false,"hideFoldedTabs":false,"hideFoldedParent":"none","nativeHighlight":false,"warnOnMultiBookmarkDelete":"any","autoCloseBookmarks":false,"autoRemoveOther":false,"highlightOpenBookmarks":false,"activateOpenBookmarkTab":false,"showBookmarkLen":true,"bookmarksRmUndoNote":true,"loadBookmarksOnDemand":true,"pinOpenedBookmarksFolder":true,"oldBookmarksAfterSave":"ask","loadHistoryOnDemand":true,"fontSize":"m","animations":true,"animationSpeed":"norm","theme":"proton","density":"loose","colorScheme":"ff","sidebarCSS":true,"groupCSS":false,"snapNotify":true,"snapExcludePrivate":false,"snapInterval":0,"snapIntervalUnit":"min","snapLimit":0,"snapLimitUnit":"snap","snapAutoExport":false,"snapAutoExportType":"json","snapAutoExportPath":"Sidebery/snapshot-%Y.%M.%D-%h.%m.%s","snapMdFullTree":false,"hScrollAction":"none","navSwitchPanelsDelay":128,"scrollThroughTabs":"none","scrollThroughVisibleTabs":true,"scrollThroughTabsSkipDiscarded":true,"scrollThroughTabsExceptOverflow":true,"scrollThroughTabsCyclic":false,"scrollThroughTabsScrollArea":0,"autoMenuMultiSel":true,"multipleMiddleClose":false,"longClickDelay":500,"wheelThreshold":false,"wheelThresholdX":10,"wheelThresholdY":60,"tabDoubleClick":"new_child","tabsSecondClickActPrev":false,"tabsSecondClickActPrevPanelOnly":false,"shiftSelAct":true,"activateOnMouseUp":false,"tabLongLeftClick":"none","tabLongRightClick":"none","tabMiddleClick":"close","tabMiddleClickCtrl":"discard","tabMiddleClickShift":"duplicate","tabCloseMiddleClick":"close","tabsPanelLeftClickAction":"none","tabsPanelDoubleClickAction":"tab","tabsPanelRightClickAction":"menu","tabsPanelMiddleClickAction":"tab","newTabMiddleClickAction":"new_child","bookmarksLeftClickAction":"open_in_act","bookmarksLeftClickActivate":false,"bookmarksLeftClickPos":"default","bookmarksMidClickAction":"open_in_new","bookmarksMidClickActivate":false,"bookmarksMidClickRemove":false,"bookmarksMidClickPos":"default","historyLeftClickAction":"open_in_act","historyLeftClickActivate":false,"historyLeftClickPos":"default","historyMidClickAction":"open_in_new","historyMidClickActivate":false,"historyMidClickPos":"default","syncName":"","syncSaveSettings":false,"syncSaveCtxMenu":false,"syncSaveStyles":false,"syncSaveKeybindings":false,"selectActiveTabFirst":true},"sidebar":{"panels":{"wrfiBYh9di54":{"type":2,"id":"wrfiBYh9di54","name":"Tabs","color":"toolbar","iconSVG":"icon_tabs","iconIMGSrc":"","iconIMG":"","lockedPanel":false,"skipOnSwitching":false,"noEmpty":false,"newTabCtx":"none","dropTabCtx":"none","moveRules":[],"moveExcludedTo":-1,"bookmarksFolderId":-1,"newTabBtns":[],"srcPanelConfig":null}},"nav":["wrfiBYh9di54","add_tp","sp-0","settings"]},"contextMenu":{"tabs":[{"opts":["undoRmTab","mute","reload","bookmark"]},"separator-1",{"name":"%menu.tab.move_to_sub_menu_name","opts":["moveToNewWin","moveToWin","separator-5","moveToPanel","moveToNewPanel"]},{"name":"%menu.tab.reopen_in_sub_menu_name","opts":["reopenInNewWin","reopenInWin","reopenInCtr","reopenInNewCtr"]},{"name":"%menu.tab.colorize_","opts":["colorizeTab"]},"separator-2","pin","duplicate","discard","copyTabsUrls","copyTabsTitles","editTabTitle","separator-3","group","flatten","separator-4","urlConf","clearCookies","close"],"tabsPanel":[{"opts":["undoRmTab","muteAllAudibleTabs","reloadTabs","discardTabs"]},"separator-7","selectAllTabs","collapseInactiveBranches","closeTabsDuplicates","closeTabs","separator-8","bookmarkTabsPanel","restoreFromBookmarks","convertToBookmarksPanel","separator-9","openPanelConfig","hidePanel","removePanel"],"bookmarks":[{"name":"%menu.bookmark.open_in_sub_menu_name","opts":["openInNewWin","openInNewPrivWin","separator-9","openInPanel","openInNewPanel","separator-10","openInCtr"]},{"name":"%menu.bookmark.sort_sub_menu_name","opts":["sortByNameAscending","sortByNameDescending","sortByLinkAscending","sortByLinkDescending","sortByTimeAscending","sortByTimeDescending"]},"separator-5","createBookmark","createFolder","createSeparator","separator-8","openAsBookmarksPanel","openAsTabsPanel","separator-7","copyBookmarksUrls","copyBookmarksTitles","moveBookmarksTo","edit","delete"],"bookmarksPanel":["collapseAllFolders","switchViewMode","convertToTabsPanel","separator-9","unloadPanelType","openPanelConfig","hidePanel","removePanel"]},"sidebarCSS":"#root.root {--tabs-inner-gap: 6px;}\n\n@media screen and (max-width: 40px) {\n\t#root.root {\n --tabs-indent: 0;\n }\n\n .Tab[data-audible=\"true\"] .audio, .Tab[data-muted=\"true\"] .audio, .Tab[data-paused=\"true\"] .audio {\n top: 6px;\n left: calc(6px + var(--tabs-inner-gap));\n }\n}\n\n.Tab[data-audible=\"true\"] .audio, .Tab[data-muted=\"true\"] .audio, .Tab[data-paused=\"true\"] .audio {\n transition: transform var(--d-fast),top var(--d-fast),left var(--d-fast);\n}","ver":"5.0.0"} \ No newline at end of file