diff --git a/common.nix b/common.nix index 53a3d2f..423e577 100644 --- a/common.nix +++ b/common.nix @@ -30,9 +30,9 @@ with builtins; wget git neofetch pciutils zip unzip gnutar iw btop nodejs jdk8 jdk11 - jdk libsecret gh nix-prefetch-scripts fzf glab openal + jdk libsecret gh nix-prefetch-scripts fzf glab ripgrep sl lolcat appimage-run git-crypt file whois p7zip file nmap cmatrix tree - socat + socat smartmontools ]; }; @@ -50,6 +50,25 @@ with builtins; }; }; + console.colors = [ + "282828" + "cc241d" + "98971a" + "d79921" + "458588" + "b16286" + "689d6a" + "a89984" + "928374" + "fb4934" + "b8bb26" + "fabd2f" + "83a598" + "d3869b" + "8ec07c" + "ebdbb2" + ]; + programs = { dconf.enable = true; @@ -66,10 +85,10 @@ with builtins; home.sessionVariables.TZ = nixosConfig.time.timeZone; }; - #nixpkgs.config.packageOverrides = pkgs: { - #sudo = pkgs.sudo.override { withInsults = true; }; - #}; - #security.sudo.extraConfig = "Defaults insults"; + nixpkgs.config.packageOverrides = pkgs: { + sudo = pkgs.sudo.override { withInsults = true; }; + }; + security.sudo.extraConfig = "Defaults insults"; boot.kernel.sysctl."vm.max_map_count" = 2147483642; @@ -82,7 +101,7 @@ with builtins; users.users.jade = { isNormalUser = true; - extraGroups = [ "wheel" "input" "uinput" "libvirtd" "adbusers" ]; + extraGroups = [ "wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" ]; packages = [ pkgs.marksman ]; @@ -93,6 +112,7 @@ users.users.jade = { algorithm = "zstd"; }; - users.defaultUserShell = pkgs.zsh; + # users.defaultUserShell = pkgs.nushell.override { additionalFeatures = (p: p ++ ["dataframe" "extra"]); }; + users.defaultUserShell = pkgs.nushellFull; } diff --git a/flake.lock b/flake.lock index e69de29..8c768e5 100644 --- a/flake.lock +++ b/flake.lock @@ -0,0 +1,670 @@ +{ + "nodes": { + "arion": { + "inputs": { + "flake-parts": "flake-parts", + "haskell-flake": "haskell-flake", + "hercules-ci-effects": "hercules-ci-effects", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1692787336, + "narHash": "sha256-WabgeYsUiMRbpb1bCT3oY6GJEciZQIf3tYD8RQAUf2c=", + "owner": "hercules-ci", + "repo": "arion", + "rev": "28902d348807c494115177595f812a3e54cc913b", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "arion", + "type": "github" + } + }, + "easymacros": { + "inputs": { + "flake-utils": "flake-utils", + "naersk": "naersk", + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1662552013, + "narHash": "sha256-ENoDCKs6gKcGYa06LhCVhro0FVntcy5GBvShS+TPvMY=", + "ref": "refs/heads/main", + "rev": "43405b3bcf786513adc6534ed0e6618c458ba2cb", + "revCount": 38, + "type": "git", + "url": "https://gitlab.com/obsidianical/easymacros.git" + }, + "original": { + "type": "git", + "url": "https://gitlab.com/obsidianical/easymacros.git" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "arion", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1675933616, + "narHash": "sha256-/rczJkJHtx16IFxMmAWu5nNYcSXNg1YYXTHoGjLrLUA=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "47478a4a003e745402acf63be7f9a092d51b83d7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1688466019, + "narHash": "sha256-VeM2akYrBYMsb4W/MmBo1zmaMfgbL4cH3Pu8PGyIwJ0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8e8d955c22df93dbe24f19ea04f47a74adbdc5ec", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "arion", + "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": { + "locked": { + "lastModified": 1656065134, + "narHash": "sha256-oc6E6ByIw3oJaIyc67maaFcnjYOz1mMcOtHxbEf9NwQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "bee6a7250dd1b01844a2de7e02e4df7d8a0a206c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "locked": { + "lastModified": 1678901627, + "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", + "type": "github" + }, + "original": { + "id": "flake-utils", + "type": "indirect" + } + }, + "flake-utils_3": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "id": "flake-utils", + "type": "indirect" + } + }, + "gumseite": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_5" + }, + "locked": { + "lastModified": 1680175611, + "narHash": "sha256-0VevgW7qjE3rDSudFr/XIQrMmPowDgLO9jkM4AFkR/o=", + "ref": "refs/heads/master", + "rev": "57f43b774151e34bbf3de5f159924aca93750561", + "revCount": 2, + "type": "git", + "url": "https://gitlab.com/schrottkatze/gum-schulsachen.git" + }, + "original": { + "type": "git", + "url": "https://gitlab.com/schrottkatze/gum-schulsachen.git" + } + }, + "haskell-flake": { + "locked": { + "lastModified": 1675296942, + "narHash": "sha256-u1X1sblozi5qYEcLp1hxcyo8FfDHnRUVX3dJ/tW19jY=", + "owner": "srid", + "repo": "haskell-flake", + "rev": "c2cafce9d57bfca41794dc3b99c593155006c71e", + "type": "github" + }, + "original": { + "owner": "srid", + "ref": "0.1.0", + "repo": "haskell-flake", + "type": "github" + } + }, + "haskell-flake_2": { + "locked": { + "lastModified": 1684780604, + "narHash": "sha256-2uMZsewmRn7rRtAnnQNw1lj0uZBMh4m6Cs/7dV5YF08=", + "owner": "srid", + "repo": "haskell-flake", + "rev": "74210fa80a49f1b6f67223debdbf1494596ff9f2", + "type": "github" + }, + "original": { + "owner": "srid", + "ref": "0.3.0", + "repo": "haskell-flake", + "type": "github" + } + }, + "hercules-ci-agent": { + "inputs": { + "flake-parts": "flake-parts_3", + "haskell-flake": "haskell-flake_2", + "nixpkgs": "nixpkgs" + }, + "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": "flake-parts_2", + "hercules-ci-agent": "hercules-ci-agent", + "nixpkgs": [ + "arion", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1689397210, + "narHash": "sha256-fVxZnqxMbsDkB4GzGAs/B41K0wt/e+B/fLxmTFF/S20=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "0a63bfa3f00a3775ea3a6722b247880f1ffe91ce", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "utils": "utils" + }, + "locked": { + "lastModified": 1685325875, + "narHash": "sha256-tevlLIMPeVNNYPd9UgjHApAUoFAnw9iohqUyj+LPp88=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "b372d7f8d5518aaba8a4058a453957460481afbc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-22.11", + "repo": "home-manager", + "type": "github" + } + }, + "karton": { + "inputs": { + "naersk": "naersk_2", + "nixpkgs": "nixpkgs_7", + "utils": "utils_2" + }, + "locked": { + "lastModified": 1683146576, + "narHash": "sha256-ZaXE/mmVWgZkfnlY56PFuuCMDyUhNtkKuLzkle6Lg8s=", + "ref": "refs/heads/master", + "rev": "5002f11bf360e4508fc73c28fa0aa0f80bf0713d", + "revCount": 188, + "type": "git", + "url": "https://gitlab.com/obsidianical/microbin.git" + }, + "original": { + "type": "git", + "url": "https://gitlab.com/obsidianical/microbin.git" + } + }, + "mac-brcm-fw": { + "flake": false, + "locked": { + "lastModified": 1, + "narHash": "sha256-ewzM8IBKNFCx73ah5rflcdx605ukRF3oTWwih2CTsvs=", + "path": "./mac-brcm-fw", + "type": "path" + }, + "original": { + "path": "./mac-brcm-fw", + "type": "path" + } + }, + "meowsite": { + "inputs": { + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_8" + }, + "locked": { + "lastModified": 1678920998, + "narHash": "sha256-YM7MdYYoL/Wgmg8nmMVnAm33WwzdA2JFwMHKfOxNBXs=", + "ref": "refs/heads/master", + "rev": "f40a32b22bc96b07cb78fb5751cf92d5f30b1c24", + "revCount": 11, + "type": "git", + "url": "https://gitlab.com/obsidianical/meowsite.git" + }, + "original": { + "type": "git", + "url": "https://gitlab.com/obsidianical/meowsite.git" + } + }, + "naersk": { + "inputs": { + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1655042882, + "narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=", + "owner": "nix-community", + "repo": "naersk", + "rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "naersk", + "type": "github" + } + }, + "naersk_2": { + "inputs": { + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1671096816, + "narHash": "sha256-ezQCsNgmpUHdZANDCILm3RvtO1xH8uujk/+EqNvzIOg=", + "owner": "nix-community", + "repo": "naersk", + "rev": "d998160d6a076cfe8f9741e56aeec7e267e3e114", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "master", + "repo": "naersk", + "type": "github" + } + }, + "naersk_3": { + "inputs": { + "nixpkgs": "nixpkgs_10" + }, + "locked": { + "lastModified": 1671096816, + "narHash": "sha256-ezQCsNgmpUHdZANDCILm3RvtO1xH8uujk/+EqNvzIOg=", + "owner": "nix-community", + "repo": "naersk", + "rev": "d998160d6a076cfe8f9741e56aeec7e267e3e114", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "master", + "repo": "naersk", + "type": "github" + } + }, + "nixos-hardware": { + "locked": { + "lastModified": 1687903496, + "narHash": "sha256-4PPwbFM4dNqso3zBya5rgfRvnBoIbN2J7qZ2ZpRyOUc=", + "owner": "networkException", + "repo": "nixos-hardware", + "rev": "8e28b9ee431b265d1fc74b8b819ea0816344c4a1", + "type": "github" + }, + "original": { + "owner": "networkException", + "ref": "apple-t2-init", + "repo": "nixos-hardware", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1688322751, + "narHash": "sha256-eW62dC5f33oKZL7VWlomttbUnOTHrAbte9yNUNW8rbk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0fbe93c5a7cac99f90b60bdf5f149383daaa615f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1688049487, + "narHash": "sha256-100g4iaKC9MalDjUW9iN6Jl/OocTDtXdeAj7pEGIRh4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4bc72cae107788bf3f24f30db2e2f685c9298dc9", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1695559356, + "narHash": "sha256-kXZ1pUoImD9OEbPCwpTz4tHsNTr4CIyIfXb3ocuR8sI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "261abe8a44a7e8392598d038d2e01f7b33cf26d0", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-23.05", + "type": "indirect" + } + }, + "nixpkgs_10": { + "locked": { + "lastModified": 1675614288, + "narHash": "sha256-i3Rc/ENnz62BcrSloeVmAyPicEh4WsrEEYR+INs9TYw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d25de6654a34d99dceb02e71e6db516b3b545be6", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_11": { + "locked": { + "lastModified": 1675614288, + "narHash": "sha256-i3Rc/ENnz62BcrSloeVmAyPicEh4WsrEEYR+INs9TYw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d25de6654a34d99dceb02e71e6db516b3b545be6", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1676300157, + "narHash": "sha256-1HjRzfp6LOLfcj/HJHdVKWAkX9QRAouoh6AjzJiIerU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "545c7a31e5dedea4a6d372712a18e00ce097d462", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1656755932, + "narHash": "sha256-TGThfOxr+HjFK464+UoUE6rClp2cwxjiKvHcBVdIGSQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "660ac43ff9ab1f12e28bfb31d4719795777fe152", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1656755932, + "narHash": "sha256-TGThfOxr+HjFK464+UoUE6rClp2cwxjiKvHcBVdIGSQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "660ac43ff9ab1f12e28bfb31d4719795777fe152", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1679966490, + "narHash": "sha256-k0jV+y1jawE6w4ZvKgXDNg4+O9NNtcaWwzw8gufv0b4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5b7cd5c39befee629be284970415b6eb3b0ff000", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1677852945, + "narHash": "sha256-liiVJjkBTuBTAkRW3hrI8MbPD2ImYzwUpa7kvteiKhM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f5ffd5787786dde3a8bf648c7a1b5f78c4e01abb", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1677852945, + "narHash": "sha256-liiVJjkBTuBTAkRW3hrI8MbPD2ImYzwUpa7kvteiKhM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f5ffd5787786dde3a8bf648c7a1b5f78c4e01abb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1674407282, + "narHash": "sha256-2qwc8mrPINSFdWffPK+ji6nQ9aGnnZyHSItVcYDZDlk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ab1254087f4cdf4af74b552d7fc95175d9bdbb49", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_9": { + "locked": { + "lastModified": 1695360818, + "narHash": "sha256-JlkN3R/SSoMTa+CasbxS1gq+GpGxXQlNZRUh9+LIy/0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e35dcc04a3853da485a396bdd332217d0ac9054f", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "root": { + "inputs": { + "arion": "arion", + "easymacros": "easymacros", + "gumseite": "gumseite", + "home-manager": "home-manager", + "karton": "karton", + "mac-brcm-fw": "mac-brcm-fw", + "meowsite": "meowsite", + "nixos-hardware": "nixos-hardware", + "nixpkgs": "nixpkgs_9", + "nixpkgs-stable": "nixpkgs-stable", + "wordsofgod": "wordsofgod" + } + }, + "utils": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_2": { + "locked": { + "lastModified": 1676283394, + "narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_3": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "wordsofgod": { + "inputs": { + "naersk": "naersk_3", + "nixpkgs": "nixpkgs_11", + "utils": "utils_3" + }, + "locked": { + "lastModified": 1675936524, + "narHash": "sha256-cr6lknWz+2N4mq6csfdYLUBNTxB2MbaEGH8yQyk3XbA=", + "ref": "refs/heads/master", + "rev": "93c03cbe6f7bac22c7c5023d4bcba3af837ce43b", + "revCount": 8, + "type": "git", + "url": "https://gitlab.com/obsidianical/wordsofgod.git" + }, + "original": { + "type": "git", + "url": "https://gitlab.com/obsidianical/wordsofgod.git" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index 93d64de..6d9d40c 100644 --- a/flake.nix +++ b/flake.nix @@ -5,12 +5,12 @@ # nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small"; nixpkgs.url = "nixpkgs/nixos-unstable"; # nixpkgs.url = "nixpkgs/nixos-22.11"; - nixpkgs-stable.url = "nixpkgs/nixos-22.11"; + nixpkgs-stable.url = "nixpkgs/nixos-23.05"; home-manager = { - url = "github:nix-community/home-manager"; + url = "github:nix-community/home-manager/release-22.11"; inputs.nixpkgs.follows = "nixpkgs"; }; - nixos-hardware.url = "github:kekrby/nixos-hardware"; + nixos-hardware.url = "github:networkException/nixos-hardware/apple-t2-init"; mac-brcm-fw = { url = "path:./mac-brcm-fw"; flake = false; @@ -43,6 +43,23 @@ } ]; }; + catbook-j = nixpkgs.lib.nixosSystem { + specialArgs = { + inherit inputs; + }; + system = "x86_64-linux"; + modules = [ + ./hosts/catbook-j/configuration.nix + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.jade = { nixosConfig, pkgs, ... }: { + home.sessionVariables.TZ = nixosConfig.time.timeZone; + home.stateVersion = "${nixosConfig.system.stateVersion}"; + }; + } + ]; + }; potatobook-g = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; diff --git a/haskell/xmonad/xmonad.hs b/haskell/xmonad/xmonad.hs index 4ae9561..4044d80 100644 --- a/haskell/xmonad/xmonad.hs +++ b/haskell/xmonad/xmonad.hs @@ -24,6 +24,9 @@ import XMonad.Actions.KeyRemap import XMonad.Prompt import XMonad.Prompt.Layout +import Graphics.X11.ExtraTypes.XF86 + +import Control.Monad (when) -- The preferred terminal program, which is used in a binding below and by -- certain contrib modules. @@ -87,54 +90,97 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $ , ((modm, xK_a), spawn "flameshot screen -c -p $HOME/Pictures/screenshots") , ((modm, xK_t), spawn "ocr-screenshot.sh") + [ ((modm, xK_Return), spawn $ XMonad.terminal conf) + , ((modm .|. shiftMask, xK_q), kill) + -- Rotate through the available layout algorithms + , ((modm, xK_space ), sendMessage NextLayout) + + -- rofiing + , ((modm, xK_d), spawn "rofi -show drun") + , ((modm .|. shiftMask, xK_e), spawn "rofi -show desktopctl -modes desktopctl:desktopctl -show-icons") + , ((modm, xK_m), spawn "menu-qalc -- -theme gruvbox-dark") + , ((modm, xK_i), spawn "rofimoji --selector-args '-theme gruvbox-dark' -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy") + + , ((modm, xK_o), spawn "rofi -show searchwolf -modes searchwolf:searchwolf -theme gruvbox-dark") + + -- screenshotting + -- TODO: Fix/rewrite window-screenshot.sh + , ((modm, xK_w), spawn "window-screenshot.sh") + , ((modm, xK_s), spawn "flameshot gui -c -p $HOME/Pictures/screenshots") + , ((modm, xK_a), spawn "flameshot screen -c -p $HOME/Pictures/screenshots") + , ((modm, xK_t), spawn "ocr-screenshot.sh") + + , ((modm .|. shiftMask, xK_t), spawn "DEVICE=\"MELF0410:00 1FD2:7007\"; if [ $(xinput list-props \"$DEVICE\" | awk '/^\\tDevice Enabled \\([0-9]+\\):\\t[01]/ {print $NF}') = \"1\" ]; then xinput disable \"$DEVICE\"; else xinput enable \"$DEVICE\"; fi") + -- Reset the layouts on the current workspace to default -- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf) -- , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf) -- Push window back into tiling , ((modm .|. shiftMask, xK_space ), withFocused $ windows . W.sink) + + -- Resize viewed windows to the correct size , ((modm, xK_n ), refresh) + -- Move focus to the next window , ((modm, xK_Tab ), layoutPrompt def) + -- Move focus , ((modm, xK_j ), windows W.focusDown) , ((modm, xK_k ), windows W.focusUp ) + -- Swap the focused window with the next window , ((modm .|. shiftMask, xK_j ), windows W.swapDown ) , ((modm .|. shiftMask, xK_k ), windows W.swapUp ) + -- Shrink the master area , ((modm, xK_h ), sendMessage Shrink) , ((modm, xK_l ), sendMessage Expand) + -- Increment the number of windows in the master area , ((modm , xK_comma ), sendMessage (IncMasterN 1)) , ((modm , xK_period), sendMessage (IncMasterN (-1))) + + -- Brightness n stuff + -- , ((0, xF86XK_AudioRaiseVolume), spawn "amixer -D pulse sset Master 10%+") + -- , ((0, xF86XK_AudioLowerVolume), spawn "amixer -D pulse sset Master 10%-") + -- , ((0, xF86XK_AudioMute), spawn "amixer -D pulse sset Master toggle") + -- , ((0, xF86XK_MonBrightnessUp), spawn "brightnessctl set +10%") + -- , ((0, xF86XK_MonBrightnessDown), spawn "brightnessctl set 10%-") + -- , ((0, xF86XK_KbdBrightnessUp), spawn "brightnessctl -d \"kbd_backlight\" set +10%") + -- , ((0, xF86XK_KbdBrightnessDown), spawn "brightnessctl -d \"kbd_backlight\" set 10%-") + -- Toggle the status bar gap -- Use this binding with avoidStruts from Hooks.ManageDocks. -- See also the statusBar function from Hooks.DynamicLog. -- -- , ((modm , xK_b ), sendMessage ToggleStruts) + --, ((modm .|. shiftMask, xK_e ), io (exitWith ExitSuccess)) + -- Restart xmonad --, ((modm , xK_q ), spawn "xmonad --recompile; xmonad --restart") + -- Run xmessage with a summary of the default keybindings (useful for beginners) - -- , ((modm .|. shiftMask, xK_slash ), spawn ("echo \"" ++ help ++ "\" | xmessage -file -")) ] ++ + -- -- mod-[1..9], Switch to workspace N -- mod-shift-[1..9], Move client to workspace N -- [((m .|. modm, k), windows $ f i) - | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9] - , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]] - ++ + | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9] + , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]] + -- ++ + -- -- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3 -- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3 -- - [((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f)) - | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..] - , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]] + -- [((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f)) + -- | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..] + -- , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]] ------------------------------------------------------------------------ @@ -223,6 +269,11 @@ myManageHook = composeAll -- myEventHook = mempty +focusChangeHook (FocusChangeEvent {ev_event_type=t, ev_window=window}) = do + when (t == focusIn) $ spawn "notify-send 'focusIn'" + when (t == focusOut) $ spawn "notify-send 'focusOut'" + return $ All True + ------------------------------------------------------------------------ -- Status bars and logging @@ -247,6 +298,8 @@ myStartupHook = do spawn "mullvad-vpn --background" setDefaultKeyRemap myRemaps [myRemaps] + + ------------------------------------------------------------------------ -- Now run xmonad with all the defaults we set up. @@ -263,7 +316,7 @@ main = xmonad $ withEasySB mySB defToggleStrutsKey defaults -- defaults = def -- simple stuff - { terminal = myTerminal + { terminal = myTerminal , focusFollowsMouse = myFocusFollowsMouse , clickJustFocuses = myClickJustFocuses , borderWidth = myBorderWidth @@ -271,14 +324,14 @@ defaults = def , workspaces = myWorkspaces , normalBorderColor = myNormalBorderColor , focusedBorderColor = myFocusedBorderColor + -- , clientMask = focusChangeMask .|. XMonad.clientMask -- key bindings - , keys = myKeys ++ buildKeyRemapBindings [emptyKeyRemap] - -- , keys = myKeys - , mouseBindings = myMouseBindings + , keys = myKeys + , mouseBindings = myMouseBindings -- hooks, layouts - , layoutHook = spacingRaw True (Border 0 0 0 0) True (Border 7 7 7 7) True $ myLayout - , manageHook = myManageHook - , handleEventHook = myEventHook - , logHook = myLogHook - , startupHook = myStartupHook + , layoutHook = spacingRaw True (Border 0 0 0 0) True (Border 7 7 7 7) True $ myLayout + , manageHook = myManageHook + , handleEventHook = myEventHook + , logHook = myLogHook + , startupHook = myStartupHook } diff --git a/hosts/catbook-j/configuration.nix b/hosts/catbook-j/configuration.nix new file mode 100644 index 0000000..2db92c3 --- /dev/null +++ b/hosts/catbook-j/configuration.nix @@ -0,0 +1,145 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, lib, ... }: +let + evremap = pkgs.rustPlatform.buildRustPackage { + pname = "evremap"; + version = "0.1.0"; + src = pkgs.fetchFromGitHub { + owner = "wez"; + repo = "evremap"; + rev = "4480c4eda223b98899b0fbd926bc34f7bd0e1a18"; + sha256 = "sha256-BxSrphgW1n465FX6bKVkq6O0XE2JqanfSYlsGwWUWkQ="; + }; + cargoHash = ""; + cargoLock.lockFile = ../../other/evremap.Cargo.lock; + postPatch = '' + cp ${../../other/evremap.Cargo.lock} Cargo.lock + ''; + nativeBuildInputs = [ pkgs.pkg-config ]; + buildInputs = [ pkgs.libevdev ]; + }; +in { + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ../../common.nix + ../../modules + ]; + jade = { + flatpak.enable = true; + desktop = { + enable = true; + compositing.enable = true; + creative.enable = true; + syncthing.enable = true; + kdeconnect.enable = true; + cloud.enable = true; + social.enable = true; + mail.enable = true; + gaming.enable = true; + }; + helix.enable = true; + zellij.enable = true; + terminal.enable = true; + # zsh.enable = true; + }; + + hardware.trackpoint = { + enable = true; + # device = "MELF0410:00 1FD2:7007"; + device = "DELL081C:00 044E:121F Mouse"; + sensitivity = 255; + }; + + boot.resumeDevice = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694"; + boot.kernelParams = [ "resume_offset=7380652" ]; + + boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; + + hardware.bluetooth.enable = true; + services.blueman.enable = true; + + services.xserver.libinput.touchpad.tapping = false; + + environment.systemPackages = [ pkgs.vivaldi pkgs.vivaldi-ffmpeg-codecs pkgs.plantuml ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Setup keyfile + boot.initrd.secrets = { + "/crypto_keyfile.bin" = null; + }; + + systemd.services = { + evremap = { + script = "${evremap}/bin/evremap remap ${../../other/remaps-catbook.toml}"; + wantedBy = ["multi-user.target"]; + }; + }; + + nixpkgs = { + overlays = [ + (self: super: { + linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override { + structuredExtraConfig = with lib.kernel; { + "FB" = yes; + "FRAMEBUFFER_CONSOLE" = yes; + "VGA_CONSOLE" = yes; + "VIDEO_SELECT" = yes; + LOGO = lib.mkForce yes; + LOGO_LINUX_CLUT224 = yes; + }; + ignoreConfigErrors = true; + }); + }) + ]; + }; + + boot.kernelPackages = pkgs.linuxPackages_zen; + boot.kernelPatches = [ + { + name = "fomx"; + patch = ../../other/0001-fomx.patch; + } + ]; + + services.xserver.displayManager.autoLogin = { + enable = true; + user = "jade"; + }; + + networking.hostName = "catbook-j"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Enable networking + networking.networkmanager.enable = true; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_DE.UTF-8"; + LC_IDENTIFICATION = "de_DE.UTF-8"; + LC_MEASUREMENT = "de_DE.UTF-8"; + LC_MONETARY = "de_DE.UTF-8"; + LC_NAME = "de_DE.UTF-8"; + LC_NUMERIC = "de_DE.UTF-8"; + LC_PAPER = "de_DE.UTF-8"; + LC_TELEPHONE = "de_DE.UTF-8"; + LC_TIME = "de_DE.UTF-8"; + }; + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "23.05"; # Did you read the comment? + +} diff --git a/hosts/catbook-j/hardware-configuration.nix b/hosts/catbook-j/hardware-configuration.nix new file mode 100644 index 0000000..38a5aa6 --- /dev/null +++ b/hosts/catbook-j/hardware-configuration.nix @@ -0,0 +1,58 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694"; + fsType = "btrfs"; + options = [ "subvol=@" "compress=zstd:3" "noatime" ]; + }; + + fileSystems."/home" = + { device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694"; + fsType = "btrfs"; + options = [ "subvol=@home" "compress=zstd:3" ]; + }; + + fileSystems."/swap" = + { device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694"; + fsType = "btrfs"; + options = [ "subvol=@/@swap" "noatime" ]; + }; + + boot.initrd.luks.devices."luks-9cd75cce-6829-4db8-8c5c-a9fb9ec3e122".device = "/dev/disk/by-uuid/9cd75cce-6829-4db8-8c5c-a9fb9ec3e122"; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/C6CA-5DE8"; + fsType = "vfat"; + }; + + swapDevices = [{ + device = "/swap/swapfile"; + size = (1024 * 12); + }]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wwp0s20f0u2i12.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/monosodium-glutamate-g/configuration.nix b/hosts/monosodium-glutamate-g/configuration.nix index 2164c40..dee73a9 100644 --- a/hosts/monosodium-glutamate-g/configuration.nix +++ b/hosts/monosodium-glutamate-g/configuration.nix @@ -10,23 +10,23 @@ ../../modules ]; - #nixpkgs = { - #overlays = [ - #(self: super: { - #linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override { - #structuredExtraConfig = with lib.kernel; { - #"FB" = yes; - #"FRAMEBUFFER_CONSOLE" = yes; - #"VGA_CONSOLE" = yes; - #"VIDEO_SELECT" = yes; - #LOGO = lib.mkForce yes; - #LOGO_LINUX_CLUT224 = yes; - #}; - #ignoreConfigErrors = true; - #}); - #}) - #]; - #}; + # nixpkgs = { + # overlays = [ + # (self: super: { + # linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override { + # structuredExtraConfig = with lib.kernel; { + # "FB" = yes; + # "FRAMEBUFFER_CONSOLE" = yes; + # "VGA_CONSOLE" = yes; + # "VIDEO_SELECT" = yes; + # LOGO = lib.mkForce yes; + # LOGO_LINUX_CLUT224 = yes; + # }; + # ignoreConfigErrors = true; + # }); + # }) + # ]; + # }; jade = { flatpak.enable = true; @@ -57,13 +57,13 @@ # latest linux kernel #boot.kernelPackages = pkgs.linuxPackages_latest; #boot.kernelPackages = pkgs.linux_zen_xeniafied; - kernelPackages = pkgs.linuxPackages_zen; - #boot.kernelPatches = [ - #{ - #name = "fomx"; - #patch = ../other/0001-fomx.patch; - #} - #]; + boot.kernelPackages = pkgs.linuxPackages_zen; + # boot.kernelPatches = [ + # { + # name = "fomx"; + # patch = ../other/0001-fomx.patch; + # } + # ]; binfmt.emulatedSystems = [ "aarch64-linux" ]; }; diff --git a/hosts/potatobook-g/configuration.nix b/hosts/potatobook-g/configuration.nix index 44c4db8..c03b65c 100644 --- a/hosts/potatobook-g/configuration.nix +++ b/hosts/potatobook-g/configuration.nix @@ -1,5 +1,23 @@ { pkgs, ... }: -{ +let + evremap = pkgs.rustPlatform.buildRustPackage { + pname = "evremap"; + version = "0.1.0"; + src = pkgs.fetchFromGitHub { + owner = "wez"; + repo = "evremap"; + rev = "4480c4eda223b98899b0fbd926bc34f7bd0e1a18"; + sha256 = "sha256-BxSrphgW1n465FX6bKVkq6O0XE2JqanfSYlsGwWUWkQ="; + }; + cargoHash = ""; + cargoLock.lockFile = ../../other/evremap.Cargo.lock; + postPatch = '' + cp ${../../other/evremap.Cargo.lock} Cargo.lock + ''; + nativeBuildInputs = [ pkgs.pkg-config ]; + buildInputs = [ pkgs.libevdev ]; + }; +in { nix.settings = { trusted-substituters = [ "https://t2linux.cachix.org" @@ -100,7 +118,7 @@ environment.systemPackages = with pkgs; [ - android-tools + android-tools evremap ]; environment.pathsToLink = [ @@ -117,42 +135,42 @@ systemd.services."NetworkManager-wait-online".enable = false; - services.pixiecore = - let - nixpkgs = builtins.getFlake "nixpkgs/nixos-unstable"; - sys = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - ({config, pkgs, lib, modulesPath, ...}: { - imports = [ - (modulesPath + "/installer/netboot/netboot-base.nix") - ]; + # services.pixiecore = + # let + # nixpkgs = builtins.getFlake "nixpkgs/nixos-unstable"; + # sys = nixpkgs.lib.nixosSystem { + # system = "x86_64-linux"; + # modules = [ + # ({config, pkgs, lib, modulesPath, ...}: { + # imports = [ + # (modulesPath + "/installer/netboot/netboot-base.nix") + # ]; - services.getty.autologinUser = lib.mkForce "root"; - console.keyMap = "de"; + # services.getty.autologinUser = lib.mkForce "root"; + # console.keyMap = "de"; - system.stateVersion = config.system.nixos.release; - environment.systemPackages = with pkgs; [ - helix nil git neofetch - ]; + # system.stateVersion = config.system.nixos.release; + # environment.systemPackages = with pkgs; [ + # helix nil git neofetch + # ]; - programs = { - zsh = { - enable = true; - enableCompletion = true; - }; - }; - }) - ]; - }; - build = sys.config.system.build; - in { - enable = true; - openFirewall = true; - kernel = "${build.kernel}/bzImage"; - initrd = "${build.netbootRamdisk}/initrd"; - cmdLine = "init=${build.toplevel}/init loglevel=4"; - }; + # programs = { + # zsh = { + # enable = true; + # enableCompletion = true; + # }; + # }; + # }) + # ]; + # }; + # build = sys.config.system.build; + # in { + # enable = true; + # openFirewall = true; + # kernel = "${build.kernel}/bzImage"; + # initrd = "${build.netbootRamdisk}/initrd"; + # cmdLine = "init=${build.toplevel}/init loglevel=4"; + # }; systemd.services = { create-swapfile = { @@ -169,6 +187,10 @@ fi ''; }; + evremap = { + script = "${evremap}/bin/evremap remap ${../../other/remaps.toml}"; + wantedBy = ["multi-user.target"]; + }; }; services.logind.extraConfig = '' diff --git a/hosts/schrottserver/configuration.nix b/hosts/schrottserver/configuration.nix index a426de4..df7eb1e 100644 --- a/hosts/schrottserver/configuration.nix +++ b/hosts/schrottserver/configuration.nix @@ -30,7 +30,7 @@ }; services = { - openssh.permitRootLogin = "no"; + openssh.permitRootLogin = "without-password"; fail2ban = { enable = true; bantime-increment.enable = true; diff --git a/hosts/schrottserver/nextcloud.nix b/hosts/schrottserver/nextcloud.nix index 9f4be80..dd4e04c 100644 --- a/hosts/schrottserver/nextcloud.nix +++ b/hosts/schrottserver/nextcloud.nix @@ -7,7 +7,7 @@ dbuser = "nextcloud"; dbhost = "/run/postgresql"; # nextcloud will add /.s.PGSQL.5432 by itself dbname = "nextcloud"; - adminpassFile = "${../secret-data/nextcloud-admin-pass}"; + adminpassFile = "${../../secret-data/nextcloud-admin-pass}"; adminuser = "root"; }; package = pkgs.nextcloud25; diff --git a/hosts/schrottserver/penpot.nix b/hosts/schrottserver/penpot.nix index 865f6ec..2e7f227 100644 --- a/hosts/schrottserver/penpot.nix +++ b/hosts/schrottserver/penpot.nix @@ -33,7 +33,7 @@ "PENPOT_SMTP_HOST" = "smtp.migadu.com"; "PENPOT_SMTP_PORT" = "587"; "PENPOT_SMTP_USERNAME" = "noreply-pp@schrottkatze.de"; - "PENPOT_SMTP_PASSWORD" = "${builtins.readFile ../secret-data/penpot-smtp-pass}"; + "PENPOT_SMTP_PASSWORD" = "${builtins.readFile ../../secret-data/penpot-smtp-pass}"; "PENPOT_SMTP_TLS" = "true"; "PENPOT_SMTP_SSL" = "false"; }; diff --git a/hosts/schrottserver/vaultwarden.nix b/hosts/schrottserver/vaultwarden.nix index a581d0f..a9b4edf 100644 --- a/hosts/schrottserver/vaultwarden.nix +++ b/hosts/schrottserver/vaultwarden.nix @@ -13,7 +13,7 @@ SIGNUPS_VERIFY = true; ROCKET_LOG = "debug"; ENABLE_WAL = false; - ADMIN_TOKEN = builtins.readFile ../secret-data/vaultwarden-admin-token; + ADMIN_TOKEN = builtins.readFile ../../secret-data/vaultwarden-admin-token; DOMAIN = "https://vw.schrottkatze.de"; SMTP_TIMEOUT = 15; ROCKET_PORT = 8812; diff --git a/modules/desktop/audio.nix b/modules/desktop/audio.nix index 8abfc6c..f015427 100644 --- a/modules/desktop/audio.nix +++ b/modules/desktop/audio.nix @@ -13,6 +13,7 @@ jack.enable = true; }; }; + sound.mediaKeys.enable = true; home-manager.users.jade = { pkgs, ... }: { home.packages = with pkgs; [ pavucontrol diff --git a/modules/desktop/cloud.nix b/modules/desktop/cloud.nix index 01ae017..cc0f90e 100644 --- a/modules/desktop/cloud.nix +++ b/modules/desktop/cloud.nix @@ -7,10 +7,10 @@ in with lib; { }; config = mkIf cfg.enable { home-manager.users.jade = { pkgs, ... }: { - services.nextcloud-client = { - enable = true; - startInBackground = true; - }; + # services.nextcloud-client = { + # enable = true; + # startInBackground = true; + # }; programs.rbw = { enable = true; settings = { diff --git a/modules/desktop/compositing.nix b/modules/desktop/compositing.nix index b9c368d..cf46cc2 100644 --- a/modules/desktop/compositing.nix +++ b/modules/desktop/compositing.nix @@ -15,11 +15,9 @@ in with lib; { shadowOffsets = [ (-40) (-30) ]; shadowOpacity = 0.2; shadowExclude = [ - "class_g = 'Conky'" "class_g ?= 'Notify-osd'" - "class_g = 'Cairo-clock'" "_GTK_FRAME_EXTENTS@:c" - "class_g != 'Rofi'" + "!(class_g = 'Rofi' || class_g = 'Dunst')" ]; vSync = true; diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 39de994..ca4bd97 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -61,8 +61,12 @@ in with lib; { }; config = mkIf cfg.enable { fonts.fonts = with pkgs; [ - nerdfonts montserrat noto-fonts atkinson-hyperlegible + (nerdfonts.override { fonts = [ "FiraCode" ]; }) + montserrat + noto-fonts + atkinson-hyperlegible ]; + fonts.fontDir.enable = true; i18n.inputMethod = { enabled = "fcitx5"; @@ -80,7 +84,7 @@ in with lib; { virtualisation.libvirtd.enable = true; - environment.systemPackages = with pkgs; [ gnome.gdm ]; + # environment.systemPackages = with pkgs; [ gnome.gdm ]; services = { printing.enable = true; gnome.gnome-keyring.enable = true; @@ -136,10 +140,73 @@ in with lib; { # also useful: # - every custom script its own flake n stuff + programs.xss-lock = { + enable = true; + lockerCommand = "${pkgs.i3lock}/bin/i3lock"; + }; + + services.illum.enable = true; + services.avahi.enable = true; + + services.smartd = { + enable = true; + notifications.x11.enable = true; + notifications.test = true; + }; + services.colord.enable = true; + home-manager.users.jade = { pkgs, ... }: { - programs.rofi.theme = ../../other/rofi-themes/applauncher.rasi; + programs.bat = { + # TODO: more config + enable = true; + }; + programs.exa = { + # TODO: more config + enable = true; + }; + programs.nushell = { + enable = true; + package = config.users.defaultUserShell; + configFile.source = ../../other/config.nu; + extraConfig = '' + source ${pkgs.nu_scripts}/share/nu_scripts/modules/nix/nix.nu; + ''; + }; + programs.ripgrep = { + enable = true; + }; + services.dunst = { + enable = true; + settings = { + global = { + dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst"; + browser = "${pkgs.librewolf}/bin/librewolf"; + mouse_left_click = "context"; + mouse_middle_click = "close_current"; + background = "#282828"; + foreground = "#ebdbb2"; + frame_color = "#504945"; + frame_width = 2; + }; + }; + }; + programs.rofi = { + enable = true; + theme = ../../other/rofi-themes/applauncher.rasi; + }; home.packages = with pkgs; [ - i3lock-fancy rofi rofimoji feh xorg.xinput dunst arandr flameshot + #nushell + nu_scripts direnv + + magic-wormhole-rs + + argyllcms + displaycal + + # carapace completer + carapace + + i3lock rofimoji feh xorg.xinput arandr flameshot tesseract5 imagemagick xclip xmacro libwacom wacomtablet xorg.xev # categories @@ -150,14 +217,14 @@ in with lib; { # from environment.systemPackages cleanup font-manager xdotool xorg.xwininfo gparted librewolf firefox uhk-agent - cool-retro-term xdg-desktop-portal-gtk nheko obsidian virt-manager - ddccontrol-db firebird-emu godot gitg gpick qdirstat ffmpeg_5 + cool-retro-term xdg-desktop-portal-gtk obsidian zettlr virt-manager + ddccontrol-db firebird-emu gitg gpick qdirstat ffmpeg_5 # external - libnotify i3lock-fancy rofi rofimoji feh xorg.xinput dunst arandr + libnotify i3lock rofi rofimoji feh xorg.xinput arandr flameshot tesseract5 imagemagick xclip kitty xmacro - brightnessctl drawing libqalculate ddgr jq brillo + brightnessctl drawing libqalculate ddgr jq # custom scripts window-screenshot desktop-ctl em-record em-play em-play-loop diff --git a/modules/desktop/networking.nix b/modules/desktop/networking.nix index 9d69620..2c761db 100644 --- a/modules/desktop/networking.nix +++ b/modules/desktop/networking.nix @@ -3,7 +3,7 @@ { config = { networking = { - networkmanager.wifi.backend = "iwd"; + networkmanager.wifi.backend = "wpa_supplicant"; extraHosts = '' 127.0.0.1 www.youtube.com 127.0.0.1 www.reddit.com @@ -37,16 +37,6 @@ mullvad-vpn speedtest-cli ]; - xsession.windowManager.i3.config.startup = [ - { - command = "pkill nm-applet; nm-applet"; - always = true; - } - { - command = "mullvad-vpn --background"; - always = true; - } - ]; }; }; } diff --git a/modules/desktop/polybar.nix b/modules/desktop/polybar.nix index cbba4ad..d50424c 100644 --- a/modules/desktop/polybar.nix +++ b/modules/desktop/polybar.nix @@ -71,7 +71,7 @@ "module/memory" = { type = "internal/memory"; interval = 2; - format-prefix = "﬙ "; + format-prefix = "󰍛 "; format-prefix-foreground = "\${colors.primary}"; label = "%percentage_used:2%%"; }; @@ -79,7 +79,7 @@ "module/cpu" = { type = "internal/cpu"; interval = "2"; - format-prefix = " "; + format-prefix = " "; format-prefix-foreground = "\${colors.primary}"; label = "%percentage:2%%"; }; @@ -106,14 +106,14 @@ adapter = "ADP1"; time-format = "%H:%M"; label-charging = "%percentage%% %time%"; - format-charging = ""; + format-charging = " 󰚥 "; label-discharging = "%percentage%% %time%"; format-discharging = " "; label-full = "%percentage%%"; - format-full = " "; + format-full = "󰁹 "; label-low = "%percentage%%"; - format-low = " "; - ramp.capacity = [ "" "" "" "" "" "" "" "" "" "" ]; + format-low = "󰂎 "; + ramp.capacity = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ]; }; "module/date" = { diff --git a/modules/desktop/social.nix b/modules/desktop/social.nix index 8a75388..a893320 100644 --- a/modules/desktop/social.nix +++ b/modules/desktop/social.nix @@ -7,10 +7,10 @@ in with lib; { }; config = mkIf cfg.enable { home-manager.users.jade = { pkgs, ... }: { - programs.nheko.enable = true; home.packages = with pkgs; [ evolutionWithPlugins schildichat-desktop + mumble ]; }; }; diff --git a/modules/helix.nix b/modules/helix.nix index 231932a..bbd8cb6 100644 --- a/modules/helix.nix +++ b/modules/helix.nix @@ -28,10 +28,23 @@ in with lib; { }; keys.normal = { space."=" = ":fmt"; - "H" = "goto_line_start"; - "L" = "goto_line_end"; }; }; + languages = { + language = [ + { + name = "rust"; + } + { + name = "php"; + file-types = [ "php" ]; + language-server = { + command = "psalm"; + args = ["--language-server"]; + }; + } + ]; + }; }; }; }; diff --git a/modules/zsh.nix b/modules/zsh.nix index 4f1e4f1..3dca73a 100644 --- a/modules/zsh.nix +++ b/modules/zsh.nix @@ -6,7 +6,6 @@ in with lib; { enable = mkEnableOption "Enable zsh"; }; config = mkIf cfg.enable { - programs.zsh.enable = true; home-manager.users.jade = { pkgs,... } : { home.packages = with pkgs; [ thefuck diff --git a/other/config.nu b/other/config.nu new file mode 100644 index 0000000..c0a1e82 --- /dev/null +++ b/other/config.nu @@ -0,0 +1,795 @@ +# Nushell Config File +# +# version = "0.84.0" + +# For more information on defining custom themes, see +# https://www.nushell.sh/book/coloring_and_theming.html +# And here is the theme collection +# https://github.com/nushell/nu_scripts/tree/main/themes +let dark_theme = { + # color for nushell primitives + separator: white + leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off + header: green_bold + empty: blue + # Closures can be used to choose colors for specific values. + # The value (in this case, a bool) is piped into the closure. + # eg) {|| if $in { 'light_cyan' } else { 'light_gray' } } + bool: light_cyan + int: white + filesize: cyan + duration: white + date: purple + range: white + float: white + string: white + nothing: white + binary: white + cellpath: white + row_index: green_bold + record: white + list: white + block: white + hints: dark_gray + search_result: {bg: red fg: white} + shape_and: purple_bold + shape_binary: purple_bold + shape_block: blue_bold + shape_bool: light_cyan + shape_closure: green_bold + shape_custom: green + shape_datetime: cyan_bold + shape_directory: cyan + shape_external: cyan + shape_externalarg: green_bold + shape_filepath: cyan + shape_flag: blue_bold + shape_float: purple_bold + # shapes are used to change the cli syntax highlighting + shape_garbage: { fg: white bg: red attr: b} + shape_globpattern: cyan_bold + shape_int: purple_bold + shape_internalcall: cyan_bold + shape_list: cyan_bold + shape_literal: blue + shape_match_pattern: green + shape_matching_brackets: { attr: u } + shape_nothing: light_cyan + shape_operator: yellow + shape_or: purple_bold + shape_pipe: purple_bold + shape_range: yellow_bold + shape_record: cyan_bold + shape_redirection: purple_bold + shape_signature: green_bold + shape_string: green + shape_string_interpolation: cyan_bold + shape_table: blue_bold + shape_variable: purple + shape_vardecl: purple +} + +let light_theme = { + # color for nushell primitives + separator: dark_gray + leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off + header: green_bold + empty: blue + # Closures can be used to choose colors for specific values. + # The value (in this case, a bool) is piped into the closure. + # eg) {|| if $in { 'dark_cyan' } else { 'dark_gray' } } + bool: dark_cyan + int: dark_gray + filesize: cyan_bold + duration: dark_gray + date: purple + range: dark_gray + float: dark_gray + string: dark_gray + nothing: dark_gray + binary: dark_gray + cellpath: dark_gray + row_index: green_bold + record: white + list: white + block: white + hints: dark_gray + search_result: {fg: white bg: red} + shape_and: purple_bold + shape_binary: purple_bold + shape_block: blue_bold + shape_bool: light_cyan + shape_closure: green_bold + shape_custom: green + shape_datetime: cyan_bold + shape_directory: cyan + shape_external: cyan + shape_externalarg: green_bold + shape_filepath: cyan + shape_flag: blue_bold + shape_float: purple_bold + # shapes are used to change the cli syntax highlighting + shape_garbage: { fg: white bg: red attr: b} + shape_globpattern: cyan_bold + shape_int: purple_bold + shape_internalcall: cyan_bold + shape_list: cyan_bold + shape_literal: blue + shape_match_pattern: green + shape_matching_brackets: { attr: u } + shape_nothing: light_cyan + shape_operator: yellow + shape_or: purple_bold + shape_pipe: purple_bold + shape_range: yellow_bold + shape_record: cyan_bold + shape_redirection: purple_bold + shape_signature: green_bold + shape_string: green + shape_string_interpolation: cyan_bold + shape_table: blue_bold + shape_variable: purple + shape_vardecl: purple +} + +# External completer example +let carapace_completer = {|spans| + carapace $spans.0 nushell $spans | from json +} + +# The default config record. This is where much of your global configuration is setup. +$env.config = { + show_banner: false # true or false to enable or disable the welcome banner at startup + + ls: { + use_ls_colors: true # use the LS_COLORS environment variable to colorize output + clickable_links: true # enable or disable clickable links. Your terminal has to support links. + } + + rm: { + always_trash: true # always act as if -t was given. Can be overridden with -p + } + + cd: { + abbreviations: true # allows `cd s/o/f` to expand to `cd some/other/folder` + } + + table: { + mode: reinforced # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other + index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column + show_empty: true # show 'empty list' and 'empty record' placeholders for command output + padding: { left: 1, right: 1 } # a left right padding of each column in a table + trim: { + methodology: wrapping # wrapping or truncating + wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology + truncating_suffix: "..." # A suffix used by the 'truncating' methodology + } + header_on_separator: false # show header text on separator/border line + } + + # datetime_format determines what a datetime rendered in the shell would look like. + # Behavior without this configuration point will be to "humanize" the datetime display, + # showing something like "a day ago." + datetime_format: { + # normal: '%a, %d %b %Y %H:%M:%S %z' # shows up in displays of variables or other datetime's outside of tables + # table: '%m/%d/%y %I:%M:%S%p' # generally shows up in tabular outputs such as ls. commenting this out will change it to the default human readable datetime format + } + + explore: { + try: { + border_color: {fg: "white"} + }, + status_bar_background: {fg: "#ebdbb2", bg: "#504945"}, + command_bar_text: {fg: "#ebdbb2"}, + highlight: {fg: "black", bg: "yellow"}, + status: { + error: {fg: "white", bg: "red"}, + warn: {} + info: {} + }, + table: { + split_line: {fg: "#404040"}, + selected_cell: {}, + selected_row: {}, + selected_column: {}, + show_cursor: true, + line_head_top: true, + line_head_bottom: true, + line_shift: true, + line_index: true, + }, + config: { + border_color: {fg: "white"} + cursor_color: {fg: "black", bg: "light_yellow"} + }, + } + + history: { + max_size: 100_000 # Session has to be reloaded for this to take effect + sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file + file_format: "sqlite" # "sqlite" or "plaintext" + isolation: false # only available with sqlite file_format. true enables history isolation, false disables it. true will allow the history to be isolated to the current session using up/down arrows. false will allow the history to be shared across all sessions. + } + + completions: { + case_sensitive: false # set to true to enable case-sensitive completions + quick: true # set this to false to prevent auto-selecting completions when only one remains + partial: true # set this to false to prevent partial filling of the prompt + algorithm: "fuzzy" # prefix or fuzzy + external: { + enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow + max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options + completer: $carapace_completer # check 'carapace_completer' above as an example + } + } + + filesize: { + metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard) + format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, auto + } + + cursor_shape: { + emacs: line # block, underscore, line, blink_block, blink_underscore, blink_line (line is the default) + vi_insert: line # block, underscore, line , blink_block, blink_underscore, blink_line (block is the default) + vi_normal: block # block, underscore, line, blink_block, blink_underscore, blink_line (underscore is the default) + } + + color_config: $dark_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record + use_grid_icons: true + footer_mode: "25" # always, never, number_of_rows, auto + float_precision: 2 # the precision for displaying floats in tables + buffer_editor: "" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL + use_ansi_coloring: true + bracketed_paste: true # enable bracketed paste, currently useless on windows + edit_mode: vi # emacs, vi + shell_integration: false # enables terminal shell integration. Off by default, as some terminals have issues with this. + render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt. + + hooks: { + pre_prompt: [{ || + let direnv = (direnv export json | from json) + let direnv = if ($direnv | length) == 1 { $direnv } else { {} } + $direnv | load-env + }] # run before the prompt is shown + pre_execution: [{ null }] # run before the repl input is run + env_change: { + PWD: [{|before, after| null }] # run if the PWD environment is different since the last repl input + } + display_output: "if (term size).columns >= 100 { table -e } else { table }" # run to display the output of a pipeline + command_not_found: { null } # return an error message when a command is not found + } + + menus: [ + # Configuration for default nushell menus + # Note the lack of source parameter + { + name: completion_menu + only_buffer_difference: false + marker: "| " + type: { + layout: columnar + columns: 4 + col_width: 20 # Optional value. If missing all the screen width is used to calculate column width + col_padding: 2 + } + style: { + text: green + selected_text: green_reverse + description_text: yellow + } + } + { + name: history_menu + only_buffer_difference: true + marker: "? " + type: { + layout: list + page_size: 10 + } + style: { + text: green + selected_text: green_reverse + description_text: yellow + } + } + { + name: help_menu + only_buffer_difference: true + marker: "? " + type: { + layout: description + columns: 4 + col_width: 20 # Optional value. If missing all the screen width is used to calculate column width + col_padding: 2 + selection_rows: 4 + description_rows: 10 + } + style: { + text: green + selected_text: green_reverse + description_text: yellow + } + } + ] + + keybindings: [ + { + name: completion_menu + modifier: none + keycode: tab + mode: [emacs vi_normal vi_insert] + event: { + until: [ + { send: menu name: completion_menu } + { send: menunext } + ] + } + } + { + name: history_menu + modifier: control + keycode: char_r + mode: [emacs, vi_insert, vi_normal] + event: { send: menu name: history_menu } + } + { + name: help_menu + modifier: none + keycode: f1 + mode: [emacs, vi_insert, vi_normal] + event: { send: menu name: help_menu } + } + { + name: completion_previous_menu + modifier: shift + keycode: backtab + mode: [emacs, vi_normal, vi_insert] + event: { send: menuprevious } + } + { + name: next_page_menu + modifier: control + keycode: char_x + mode: emacs + event: { send: menupagenext } + } + { + name: undo_or_previous_page_menu + modifier: control + keycode: char_z + mode: emacs + event: { + until: [ + { send: menupageprevious } + { edit: undo } + ] + } + } + { + name: escape + modifier: none + keycode: escape + mode: [emacs, vi_normal, vi_insert] + event: { send: esc } # NOTE: does not appear to work + } + { + name: cancel_command + modifier: control + keycode: char_c + mode: [emacs, vi_normal, vi_insert] + event: { send: ctrlc } + } + { + name: quit_shell + modifier: control + keycode: char_d + mode: [emacs, vi_normal, vi_insert] + event: { send: ctrld } + } + { + name: clear_screen + modifier: control + keycode: char_l + mode: [emacs, vi_normal, vi_insert] + event: { send: clearscreen } + } + { + name: search_history + modifier: control + keycode: char_q + mode: [emacs, vi_normal, vi_insert] + event: { send: searchhistory } + } + { + name: open_command_editor + modifier: control + keycode: char_o + mode: [emacs, vi_normal, vi_insert] + event: { send: openeditor } + } + { + name: move_up + modifier: none + keycode: up + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: menuup} + {send: up} + ] + } + } + { + name: move_down + modifier: none + keycode: down + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: menudown} + {send: down} + ] + } + } + { + name: move_left + modifier: none + keycode: left + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: menuleft} + {send: left} + ] + } + } + { + name: move_right_or_take_history_hint + modifier: none + keycode: right + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: historyhintcomplete} + {send: menuright} + {send: right} + ] + } + } + { + name: move_one_word_left + modifier: control + keycode: left + mode: [emacs, vi_normal, vi_insert] + event: {edit: movewordleft} + } + { + name: move_one_word_right_or_take_history_hint + modifier: control + keycode: right + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: historyhintwordcomplete} + {edit: movewordright} + ] + } + } + { + name: move_to_line_start + modifier: none + keycode: home + mode: [emacs, vi_normal, vi_insert] + event: {edit: movetolinestart} + } + { + name: move_to_line_start + modifier: control + keycode: char_a + mode: [emacs, vi_normal, vi_insert] + event: {edit: movetolinestart} + } + { + name: move_to_line_end_or_take_history_hint + modifier: none + keycode: end + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: historyhintcomplete} + {edit: movetolineend} + ] + } + } + { + name: move_to_line_end_or_take_history_hint + modifier: control + keycode: char_e + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: historyhintcomplete} + {edit: movetolineend} + ] + } + } + { + name: move_to_line_start + modifier: control + keycode: home + mode: [emacs, vi_normal, vi_insert] + event: {edit: movetolinestart} + } + { + name: move_to_line_end + modifier: control + keycode: end + mode: [emacs, vi_normal, vi_insert] + event: {edit: movetolineend} + } + { + name: move_up + modifier: control + keycode: char_p + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: menuup} + {send: up} + ] + } + } + { + name: move_down + modifier: control + keycode: char_t + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: menudown} + {send: down} + ] + } + } + { + name: delete_one_character_backward + modifier: none + keycode: backspace + mode: [emacs, vi_insert] + event: {edit: backspace} + } + { + name: delete_one_word_backward + modifier: control + keycode: backspace + mode: [emacs, vi_insert] + event: {edit: backspaceword} + } + { + name: delete_one_character_forward + modifier: none + keycode: delete + mode: [emacs, vi_insert] + event: {edit: delete} + } + { + name: delete_one_character_forward + modifier: control + keycode: delete + mode: [emacs, vi_insert] + event: {edit: delete} + } + { + name: delete_one_character_forward + modifier: control + keycode: char_h + mode: [emacs, vi_insert] + event: {edit: backspace} + } + { + name: delete_one_word_backward + modifier: control + keycode: char_w + mode: [emacs, vi_insert] + event: {edit: backspaceword} + } + { + name: move_left + modifier: none + keycode: backspace + mode: vi_normal + event: {edit: moveleft} + } + { + name: newline_or_run_command + modifier: none + keycode: enter + mode: emacs + event: {send: enter} + } + { + name: move_left + modifier: control + keycode: char_b + mode: emacs + event: { + until: [ + {send: menuleft} + {send: left} + ] + } + } + { + name: move_right_or_take_history_hint + modifier: control + keycode: char_f + mode: emacs + event: { + until: [ + {send: historyhintcomplete} + {send: menuright} + {send: right} + ] + } + } + { + name: redo_change + modifier: control + keycode: char_g + mode: emacs + event: {edit: redo} + } + { + name: undo_change + modifier: control + keycode: char_z + mode: emacs + event: {edit: undo} + } + { + name: paste_before + modifier: control + keycode: char_y + mode: emacs + event: {edit: pastecutbufferbefore} + } + { + name: cut_word_left + modifier: control + keycode: char_w + mode: emacs + event: {edit: cutwordleft} + } + { + name: cut_line_to_end + modifier: control + keycode: char_k + mode: emacs + event: {edit: cuttoend} + } + { + name: cut_line_from_start + modifier: control + keycode: char_u + mode: emacs + event: {edit: cutfromstart} + } + { + name: swap_graphemes + modifier: control + keycode: char_t + mode: emacs + event: {edit: swapgraphemes} + } + { + name: move_one_word_left + modifier: alt + keycode: left + mode: emacs + event: {edit: movewordleft} + } + { + name: move_one_word_right_or_take_history_hint + modifier: alt + keycode: right + mode: emacs + event: { + until: [ + {send: historyhintwordcomplete} + {edit: movewordright} + ] + } + } + { + name: move_one_word_left + modifier: alt + keycode: char_b + mode: emacs + event: {edit: movewordleft} + } + { + name: move_one_word_right_or_take_history_hint + modifier: alt + keycode: char_f + mode: emacs + event: { + until: [ + {send: historyhintwordcomplete} + {edit: movewordright} + ] + } + } + { + name: delete_one_word_forward + modifier: alt + keycode: delete + mode: emacs + event: {edit: deleteword} + } + { + name: delete_one_word_backward + modifier: alt + keycode: backspace + mode: emacs + event: {edit: backspaceword} + } + { + name: delete_one_word_backward + modifier: alt + keycode: char_m + mode: emacs + event: {edit: backspaceword} + } + { + name: cut_word_to_right + modifier: alt + keycode: char_d + mode: emacs + event: {edit: cutwordright} + } + { + name: upper_case_word + modifier: alt + keycode: char_u + mode: emacs + event: {edit: uppercaseword} + } + { + name: lower_case_word + modifier: alt + keycode: char_l + mode: emacs + event: {edit: lowercaseword} + } + { + name: capitalize_char + modifier: alt + keycode: char_c + mode: emacs + event: {edit: capitalizechar} + } + ] +} + + +# STOLEN FROM: https://www.grailbox.com/2023/07/autostart-zellij-in-nushell/ +# zellij +def start_zellij [] { + if 'ZELLIJ' not-in ($env | columns) { + if 'ZELLIJ_AUTO_ATTACH' in ($env | columns) and $env.ZELLIJ_AUTO_ATTACH == 'true' { + zellij attach -c + } else { + zellij + } + + if 'ZELLIJ_AUTO_EXIT' in ($env | columns) and $env.ZELLIJ_AUTO_EXIT == 'true' { + exit + } + } +} + +start_zellij + +alias gnix = cd ~/nix-configs; +alias grepo = cd ~/Documents/repos; +alias wh = wormhole-rs; diff --git a/other/evremap.Cargo.lock b/other/evremap.Cargo.lock new file mode 100644 index 0000000..f9e7e9b --- /dev/null +++ b/other/evremap.Cargo.lock @@ -0,0 +1,693 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +dependencies = [ + "memchr", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bumpalo" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-integer", + "num-traits", + "time", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "cxx" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f83d0ebf42c6eafb8d7c52f7e5f2d3003b89c7aa4fd2b79229209459a849af8" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07d050484b55975889284352b0ffc2ecbda25c0c55978017c132b29ba0818a86" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d2199b00553eda8012dfec8d3b1c75fce747cf27c169a270b3b99e3448ab78" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb67a6de1f602736dd7eaead0080cf3435df806c61b24b13328db128c58868f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "env_logger" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "evdev-rs" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95f73dad019df28348aad51f059684bdf628822325c26d34fbe126e513369799" +dependencies = [ + "bitflags", + "evdev-sys", + "libc", + "log", + "nix", +] + +[[package]] +name = "evdev-sys" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14ead42b547b15d47089c1243d907bcf0eb94e457046d3b315a26ac9c9e9ea6d" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "evremap" +version = "0.1.0" +dependencies = [ + "anyhow", + "evdev-rs", + "libc", + "log", + "pretty_env_logger", + "serde", + "structopt", + "thiserror", + "toml", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "humantime" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" +dependencies = [ + "quick-error", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + +[[package]] +name = "js-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.135" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" + +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "nix" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dbdc256eaac2e3bd236d93ad999d3479ef775c863dbda3068c4006a92eec51b" +dependencies = [ + "bitflags", + "cc", + "cfg-if 0.1.10", + "libc", + "void", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" + +[[package]] +name = "pkg-config" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" + +[[package]] +name = "pretty_env_logger" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "717ee476b1690853d222af4634056d830b5197ffd747726a9a1eee6da9f49074" +dependencies = [ + "chrono", + "env_logger", + "log", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "regex" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" + +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + +[[package]] +name = "serde" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "syn" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi", + "winapi", +] + +[[package]] +name = "toml" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +dependencies = [ + "serde", +] + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "unicode-segmentation" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasm-bindgen" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/other/remaps-catbook.toml b/other/remaps-catbook.toml new file mode 100644 index 0000000..6a6067f --- /dev/null +++ b/other/remaps-catbook.toml @@ -0,0 +1,22 @@ +device_name = "AT Translated Set 2 keyboard" + +[[remap]] +input = [ "KEY_Y" ] +output = [ "KEY_Z" ] + +[[remap]] +input = [ "KEY_Z" ] +output = [ "KEY_Y" ] + +[[remap]] +input = [ "KEY_LEFTALT" ] +output = [ "KEY_LEFTMETA" ] + +[[remap]] +input = [ "KEY_LEFTMETA" ] +output = [ "KEY_LEFTALT" ] + +[[dual_role]] +input = "KEY_CAPSLOCK" +hold = ["KEY_LEFTCTRL"] +tap = ["KEY_ESC"] diff --git a/other/remaps.toml b/other/remaps.toml new file mode 100644 index 0000000..a026f94 --- /dev/null +++ b/other/remaps.toml @@ -0,0 +1,18 @@ +device_name = "Apple Inc. Apple Internal Keyboard / Trackpad" + +[[remap]] +input = [ "KEY_RIGHTMETA" ] +output = [ "KEY_SPACE" ] + +[[remap]] +input = [ "KEY_Y" ] +output = [ "KEY_Z" ] + +[[remap]] +input = [ "KEY_Z" ] +output = [ "KEY_Y" ] + +[[dual_role]] +input = "KEY_CAPSLOCK" +hold = ["KEY_LEFTCTRL"] +tap = ["KEY_ESC"] diff --git a/other/scripts/desktop/desktopctl.nix b/other/scripts/desktop/desktopctl.nix index a2fbbb1..1161e38 100644 --- a/other/scripts/desktop/desktopctl.nix +++ b/other/scripts/desktop/desktopctl.nix @@ -1,38 +1,35 @@ { pkgs, ... }: pkgs.writeShellScriptBin "desktopctl" '' - run() { - case $@ in - "Lock Screen") - nohup sh -c "i3lock-fancy" > /dev/null & - exit 0 - ;; - "Log Out") - pkill xmonad - exit 0 - ;; - "Shut Down") - shutdown now - exit 0 - ;; - "Reboot") - systemctl reboot - exit 0 - ;; - esac +case $@ in + "Lock Screen") + nohup sh -c "i3lock-fancy" > /dev/null & + exit 0 + ;; + "Log Out") + pkill xmonad + exit 0 + ;; + "Shut Down") + shutdown now + exit 0 + ;; + "Reboot") + systemctl reboot + exit 0 + ;; +esac - # resizes grid - echo -en "\0theme\x1flistview,inputbar,message{columns:4;lines:1;}\n" - # resizes window, moves it to top of screen, adjusts rounded corners - echo -en "\0theme\x1fwindow{width:800px;location:north;y-offset:24px;border-radius:0 0 12px 12px;}\n" - # swaps grid and input bar - echo -en "\0theme\x1fmainbox{children:[listview,inputbar];}\n" - # fixes brown line below input bar - echo -en "\0theme\x1finputbar{margin:0;}\n" +# resizes grid +echo -en "\0theme\x1flistview,inputbar,message{columns:4;lines:1;}\n" +# resizes window, moves it to top of screen, adjusts rounded corners +echo -en "\0theme\x1fwindow{width:800px;location:north;y-offset:24px;border-radius:0 0 12px 12px;}\n" +# swaps grid and input bar +echo -en "\0theme\x1fmainbox{children:[listview,inputbar];}\n" +# fixes brown line below input bar +echo -en "\0theme\x1finputbar{margin:0;}\n" - echo -en "Lock Screen\0icon\x1f${../../../other/assets/desktopctl/lock-screen.svg}\n" - echo -en "Log Out\0icon\x1f${../../../other/assets/desktopctl/logout.svg}\n" - echo -en "Shut Down\0icon\x1f${../../../other/assets/desktopctl/shutdown.svg}\n" - echo -en "Reboot\0icon\x1f${../../../other/assets/desktopctl/reboot.svg}\n" - } - rofi -show "desktopctl" -modes "desktopctl:run" +echo -en "Lock Screen\0icon\x1f${../../../other/assets/desktopctl/lock-screen.svg}\n" +echo -en "Log Out\0icon\x1f${../../../other/assets/desktopctl/logout.svg}\n" +echo -en "Shut Down\0icon\x1f${../../../other/assets/desktopctl/shutdown.svg}\n" +echo -en "Reboot\0icon\x1f${../../../other/assets/desktopctl/reboot.svg}\n" '' diff --git a/other/scripts/desktop/searchwolf.sh b/other/scripts/desktop/searchwolf.sh index 056c689..58dbafe 100755 --- a/other/scripts/desktop/searchwolf.sh +++ b/other/scripts/desktop/searchwolf.sh @@ -12,7 +12,7 @@ case $ROFI_RETV in exit 0 ;; 2) - ddgrout=$(ddgr --json --num=25 "$@") + ddgrout=$(ddgr --json --num=25 "$@" --url-handler 'librewolf') for i in $(echo $ddgrout | jq -r 'keys | @sh'); do title=$(echo $ddgrout | jq -r .[$i].title)