diff --git a/flake.lock b/flake.lock index e205af3..8f3b80b 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,26 @@ { "nodes": { + "anyrun": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1692476235, + "narHash": "sha256-NGUDp/24HCIVWE0xZNHIdzz3q2WDk7MQz1wC7ub/e2U=", + "owner": "Kirottu", + "repo": "anyrun", + "rev": "76af3eb198f376303194c31a83f2399a043acf1b", + "type": "github" + }, + "original": { + "owner": "Kirottu", + "repo": "anyrun", + "type": "github" + } + }, "caddy-with-plugins": { "inputs": { "flake-parts": [ @@ -40,11 +61,11 @@ ] }, "locked": { - "lastModified": 1688082682, - "narHash": "sha256-nMG/A7qYm9pyHJowKuaNmNYgo748xZrzMJPqtoGozSA=", + "lastModified": 1695511445, + "narHash": "sha256-mnE14re43v3/Jc50Jv0BKPMtEk7FEtDSligP6B5HwlI=", "owner": "ipetkov", "repo": "crane", - "rev": "4d350bb94fdf8ec9d2e22d68bb13e136d73aa9d8", + "rev": "3de322e06fc88ada5e3589dc8a375b73e749f512", "type": "github" }, "original": { @@ -60,11 +81,11 @@ ] }, "locked": { - "lastModified": 1694511957, - "narHash": "sha256-teCLY68npc0nuyOHYJURLuJSOME0yotJI29WXcpF1E4=", + "lastModified": 1695864092, + "narHash": "sha256-Hu1SkFPqO7ND95AOzBkZE2jGXSYhfZ965C03O72Kbu8=", "owner": "nix-community", "repo": "disko", - "rev": "be98cffef02e5ebf438ea80b34b86e669c48eff1", + "rev": "19b62324663b6b9859caf7f335d232cf4f1f6a32", "type": "github" }, "original": { @@ -84,11 +105,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1694574651, - "narHash": "sha256-D+pBiAEMsCRO9WP8Jn5oPsisr+ftFz7fgZOaix6MYUM=", + "lastModified": 1695956969, + "narHash": "sha256-mSwhyEAq7c/4MgxCTKNg86YrrWkKAuJejVK2XEY5Sl4=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "844afe34cbe49d83e7ae016564db4f72237a0bfa", + "rev": "f32c6288cc50298c04a86364e5947c28981c2f7d", "type": "github" }, "original": { @@ -170,6 +191,27 @@ } }, "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "anyrun", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1685662779, + "narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, @@ -243,11 +285,11 @@ ] }, "locked": { - "lastModified": 1688393735, - "narHash": "sha256-tmur+qyhQUo3jRIRSaaD1ubhQ1h/Kk7f6KvEb/AO0Eg=", + "lastModified": 1695978977, + "narHash": "sha256-sOy7shWnJ9+qBdaGZS3wcQC308t0vM+1hnRQHztIsmk=", "ref": "main", - "rev": "e76736b4c23769824e38e9ccf9e8677439dd9138", - "revCount": 94, + "rev": "8f1b9b7f9c10bdf0992547910821357038e2ec85", + "revCount": 99, "type": "git", "url": "https://git.datarift.nl/erwin/ha-now-playing.git" }, @@ -264,11 +306,11 @@ ] }, "locked": { - "lastModified": 1694585439, - "narHash": "sha256-70BlfEsdURx5f8sioj8JuM+R4/SZFyE8UYrULMknxlI=", + "lastModified": 1695940289, + "narHash": "sha256-z9DItQvCasu7sexaz1GZ+uOymDRpuEehFwRKToCooJ8=", "owner": "nix-community", "repo": "home-manager", - "rev": "a0ddf43b6268f1717afcda54133dea30435eb178", + "rev": "9d4cdf8cc4da54beb5d2e927af7a259bb4a00645", "type": "github" }, "original": { @@ -287,11 +329,11 @@ ] }, "locked": { - "lastModified": 1694526290, - "narHash": "sha256-HiWr+tfJE/hcn8atRC0S5KweSUknQLEduPLTEiSr5J8=", + "lastModified": 1695847632, + "narHash": "sha256-RXDg0N2e8YYVKkQt7BE40y03QxYEYds4/+HrwpIMPoM=", "owner": "astro", "repo": "microvm.nix", - "rev": "03e7f11cf915a911277c2cdea5d7da9717597aa2", + "rev": "67bf176ff48141292a66d8bce541463ee49d0fb5", "type": "github" }, "original": { @@ -333,11 +375,11 @@ ] }, "locked": { - "lastModified": 1694177726, - "narHash": "sha256-eaYATUkElEbXGcehShhYfcGhrjfTMQEmJqxvO+/5ciw=", + "lastModified": 1695485017, + "narHash": "sha256-aQyRBJnT4tftexM/Y3etfOk8tfMFZzt+vSVtL2J0KLY=", "owner": "oxalica", "repo": "nil", - "rev": "4775e34c30f6101a9bb4364a0c7e4aae4ae43f11", + "rev": "510bc6e9b41d39c81b9c815065cb5b7e23a2428c", "type": "github" }, "original": { @@ -368,11 +410,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1694432324, - "narHash": "sha256-bo3Gv6Cp40vAXDBPi2XiDejzp/kyz65wZg4AnEWxAcY=", + "lastModified": 1695887975, + "narHash": "sha256-u3+5FR12dI305jCMb0fJNQx2qwoQ54lv1tPoEWp0hmg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "ca41b8a227dd235b1b308217f116c7e6e84ad779", + "rev": "adcfd6aa860d1d129055039696bc457af7d50d0e", "type": "github" }, "original": { @@ -383,11 +425,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1694422566, - "narHash": "sha256-lHJ+A9esOz9vln/3CJG23FV6Wd2OoOFbDeEs4cMGMqc=", + "lastModified": 1695830400, + "narHash": "sha256-gToZXQVr0G/1WriO83olnqrLSHF2Jb8BPcmCt497ro0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3a2786eea085f040a66ecde1bc3ddc7099f6dbeb", + "rev": "8a86b98f0ba1c405358f1b71ff8b5e1d317f5db2", "type": "github" }, "original": { @@ -417,11 +459,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1694426803, - "narHash": "sha256-osusXQo0zkEqs502SNMffsKp1O9evpDM54A37MuyT2Q=", + "lastModified": 1695825837, + "narHash": "sha256-4Ne11kNRnQsmSJCRSSNkFRSnHC4Y5gPDBIQGjjPfJiU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9a74ffb2ca1fc91c6ccc48bd3f8cbc1501bf7b8a", + "rev": "5cfafa12d57374f48bcc36fda3274ada276cf69e", "type": "github" }, "original": { @@ -449,11 +491,11 @@ }, "nixpkgs-stable_3": { "locked": { - "lastModified": 1693675694, - "narHash": "sha256-2pIOyQwGyy2FtFAUIb8YeKVmOCcPOTVphbAvmshudLE=", + "lastModified": 1694908564, + "narHash": "sha256-ducA98AuWWJu5oUElIzN24Q22WlO8bOfixGzBgzYdVc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5601118d39ca9105f8e7b39d4c221d3388c0419d", + "rev": "596611941a74be176b98aeba9328aa9d01b8b322", "type": "github" }, "original": { @@ -463,22 +505,6 @@ "type": "github" } }, - "nomachine": { - "locked": { - "lastModified": 1682367457, - "narHash": "sha256-Hec3l+TYmE9ICUz7NxmRtfljUl6ludm8QKSdiW21WRg=", - "owner": "rytec-nl", - "repo": "nixpkgs", - "rev": "63686e66b7441ef5d5e7a6277d1c36c413548b05", - "type": "github" - }, - "original": { - "owner": "rytec-nl", - "ref": "submit/add-nomachine-server", - "repo": "nixpkgs", - "type": "github" - } - }, "pamedia": { "inputs": { "flake-utils": [ @@ -520,11 +546,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1694364351, - "narHash": "sha256-oadhSCqopYXxURwIA6/Anpe5IAG11q2LhvTJNP5zE6o=", + "lastModified": 1695576016, + "narHash": "sha256-71KxwRhTfVuh7kNrg3/edNjYVg9DCyKZl2QIKbhRggg=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "4f883a76282bc28eb952570afc3d8a1bf6f481d7", + "rev": "cb770e93516a1609652fa8e945a0f310e98f10c0", "type": "github" }, "original": { @@ -535,11 +561,12 @@ }, "root": { "inputs": { + "anyrun": "anyrun", "caddy-with-plugins": "caddy-with-plugins", "disko": "disko", "emacs-overlay": "emacs-overlay", "eww": "eww", - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_2", "flake-utils": "flake-utils", "ha-now-playing": "ha-now-playing", "home-manager": "home-manager", @@ -549,7 +576,6 @@ "nixinate": "nixinate", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", - "nomachine": "nomachine", "pamedia": "pamedia", "pre-commit-hooks": "pre-commit-hooks", "rust-overlay": "rust-overlay_2", @@ -592,11 +618,11 @@ ] }, "locked": { - "lastModified": 1694571081, - "narHash": "sha256-VRA+gxhe4aciWTQ5uCKVY2ubOclk18h2aRlLzPbLqMw=", + "lastModified": 1695953491, + "narHash": "sha256-TO26givgQP4F8rXPu5rgP2K82mJyNN+X491FJYLra2s=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "0282ed291f0e25f30770df5d3f1ca33908ce44a4", + "rev": "fb948d8eaf5d7c720dec92eb9c75193963fa0c52", "type": "github" }, "original": { @@ -613,11 +639,11 @@ "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { - "lastModified": 1694495315, - "narHash": "sha256-sZEYXs9T1NVHZSSbMqBEtEm2PGa7dEDcx0ttQkArORc=", + "lastModified": 1695284550, + "narHash": "sha256-z9fz/wz9qo9XePEvdduf+sBNeoI9QG8NJKl5ssA8Xl4=", "owner": "Mic92", "repo": "sops-nix", - "rev": "ea208e55f8742fdcc0986b256bdfa8986f5e4415", + "rev": "2f375ed8702b0d8ee2430885059d5e7975e38f78", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 2c8fb12..a674ceb 100644 --- a/flake.nix +++ b/flake.nix @@ -78,10 +78,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - nomachine = { - url = "github:rytec-nl/nixpkgs/submit/add-nomachine-server"; - }; - eww = { url = "github:elkowar/eww"; inputs = { @@ -90,6 +86,11 @@ }; }; + anyrun = { + url = "github:Kirottu/anyrun"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + caddy-with-plugins = { url = "github:eboskma/caddy-with-plugins"; inputs = { @@ -151,12 +152,6 @@ { nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; nixpkgs = - let - nomachine-pkgs = import nomachine { - inherit system; - config.allowUnfree = true; - }; - in { overlays = [ self.overlays.default @@ -166,9 +161,6 @@ nil.overlays.default inputs.eww.overlays.default inputs.rust-overlay.overlays.default - (_final: _prev: { - nomachine = nomachine-pkgs.nomachine; - }) ] ++ nixpkgs.lib.optional (system == "aarch64-linux") (_final: super: { makeModulesClosure = x: diff --git a/home-manager/modules/anyrun/default.nix b/home-manager/modules/anyrun/default.nix new file mode 100644 index 0000000..6b605ff --- /dev/null +++ b/home-manager/modules/anyrun/default.nix @@ -0,0 +1,117 @@ +{ pkgs, config, lib, flake-inputs, ... }: +with lib; +let + cfg = config.eboskma.programs.anyrun; + anyrunPkgs = flake-inputs.anyrun.packages."${pkgs.system}"; +in +{ + options.eboskma.programs.anyrun = { enable = mkEnableOption "anyrun"; }; + + config = mkIf cfg.enable { + programs.anyrun = { + enable = true; + config = { + plugins = with anyrunPkgs; [ + applications + dictionary + rink + stdin + shell + symbols + translate + ]; + width = { fraction = 0.3; }; + x = { fraction = 0.5; }; + y = { absolute = 60; }; + layer = "overlay"; + }; + + extraConfigFiles = { + "applications.ron".text = '' + Config( + desktop_actions: true, + max_entries: 100, + terminal: Some("${config.wayland.windowManager.sway.config.terminal}") + ) + ''; + }; + extraCss = '' + window { + background: transparent; /* rgba(0, 0, 0, 0.8);*/ + } + + #match, + #entry, + #plugin, + #main { + background: transparent; + } + + #match.activatable { + padding: 12px 14px; + border-radius: 12px; + + color: white; + margin-top: 4px; + border: 2px solid transparent; + transition: all 0.3s ease; + } + + #match.activatable:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top: 2px solid rgba(255, 255, 255, 0.1); + } + + #match.activatable #match-title { + font-size: 1.3rem; + } + + #match.activatable:hover { + border: 2px solid rgba(255, 255, 255, 0.4); + } + + #match-title, #match-desc { + color: inherit; + } + + #match.activatable:hover, #match.activatable:selected { + border-top-left-radius: 12px; + border-top-right-radius: 12px; + } + + #match.activatable:selected + #match.activatable, #match.activatable:hover + #match.activatable { + border-top: 2px solid transparent; + } + + #match.activatable:selected, #match.activatable:hover:selected { + background: rgba(255,255,255,0.1); + border: 2px solid #333333; + border-top: 2px solid #333333; + } + + #match, #plugin { + box-shadow: none; + } + + #entry { + color: white; + box-shadow: none; + border-radius: 12px; + border: 2px solid #333333; + } + + box#main { + background: rgba(36, 39, 58, 0.7); + border-radius: 16px; + padding: 8px; + box-shadow: 0px 2px 33px -5px rgba(0, 0, 0, 0.5); + } + + row:first-child { + margin-top: 6px; + } + ''; + }; + }; +} diff --git a/home-manager/modules/emacs/config.org b/home-manager/modules/emacs/config.org index 7c15685..1d7a44c 100644 --- a/home-manager/modules/emacs/config.org +++ b/home-manager/modules/emacs/config.org @@ -402,12 +402,7 @@ Use Iosevka as font. my/default-font-width))) #+end_src -#+begin_src emacs-lisp :tangle no - (set-face-attribute 'default nil - :family my/default-font - :weight my/default-font-weight - :width my/default-font-width - :height my/default-font-height) +#+begin_src emacs-lisp (set-face-attribute 'variable-pitch nil :family my/variable-width-font :weight my/default-font-weight @@ -1592,6 +1587,14 @@ Dhall is a programmable configuration language that you can think of as: JSON + :mode "\\.dhall\\'") #+end_src +*** nushell + +[[http://www.nushell.sh/][nushell]] is a new type of shell that operates on typed data + +#+begin_src emacs-lisp + (use-package nushell-ts-mode) +#+end_src + * Org ** Main org setup diff --git a/home-manager/modules/eww/config/eww.yuck b/home-manager/modules/eww/config/eww.yuck index 78ef8a8..6578718 100644 --- a/home-manager/modules/eww/config/eww.yuck +++ b/home-manager/modules/eww/config/eww.yuck @@ -188,13 +188,14 @@ (defwidget title [] (label :text {wm-info.title})) -(defwidget left [] +(defwidget left [is-home] (box :orientation "h" :halign "start" :space-evenly false :spacing 5 (workspaces) - (ha-now-playing))) + (ha-now-playing + :visible is-home))) (defwidget right [] (box :orientation "h" @@ -216,7 +217,17 @@ :hexpand false :vexpand false (centerbox - (left) + (left :is-home true) + (title) + (end)))) + +(defwidget bar-work-left [] + (box :class "eww_bar" + :orientation "h" + :hexpand false + :vexpand false + (centerbox + (left :is-home false) (title) (end)))) @@ -236,3 +247,16 @@ :vexpand false :exclusive true (bar)) + +(defwindow bar-work + :geometry (geometry :x "0" + :y "0" + :width "100%" + :height "32px" + :anchor "top center") + :stacking "fg" + :monitor 0 + :exclusive true + :hexpand false + :vexpand false + (bar-work-left)) diff --git a/home-manager/modules/firefox/default.nix b/home-manager/modules/firefox/default.nix index 95ec3f1..27c038e 100644 --- a/home-manager/modules/firefox/default.nix +++ b/home-manager/modules/firefox/default.nix @@ -84,7 +84,12 @@ in config = mkIf cfg.enable { programs.firefox = { enable = true; - package = pkgs.firefox; + package = pkgs.firefox.override { + cfg = { + enableGnomeExtensions = true; + enableSpeechSynthesisSupport = true; + }; + }; profiles = { private = { diff --git a/home-manager/modules/git/default.nix b/home-manager/modules/git/default.nix index 516792c..081e782 100644 --- a/home-manager/modules/git/default.nix +++ b/home-manager/modules/git/default.nix @@ -101,7 +101,7 @@ in defaultBranch = "main"; }; core = { - # editor = "${pkgs.neovim}/bin/nvim"; + editor = "${config.eboskma.programs.emacs.package}/bin/emacsclient"; pager = "${pkgs.bat}/bin/bat"; }; merge = { diff --git a/home-manager/modules/nushell/default.nix b/home-manager/modules/nushell/default.nix index d2c168f..3cd5625 100644 --- a/home-manager/modules/nushell/default.nix +++ b/home-manager/modules/nushell/default.nix @@ -2,12 +2,6 @@ with lib; let cfg = config.eboskma.programs.nushell; - - nushell_plugin_formats = pkgs.callPackage ./plugin-formats.nix { - inherit (pkgs) stdenv lib rustPlatform; - inherit (pkgs.darwin.apple_sdk_11_0.frameworks) IOKit CoreFoundation; - nushell = config.programs.nushell.package; - }; in { options.eboskma.programs.nushell = { enable = mkEnableOption "nu shell"; }; @@ -32,7 +26,7 @@ in $env.LS_COLORS = (${pkgs.vivid}/bin/vivid generate gruvbox-dark | str trim) register ${pkgs.nushellPlugins.query}/bin/nu_plugin_query - register ${nushell_plugin_formats}/bin/nu_plugin_formats + register ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats use kink.nu ''; diff --git a/home-manager/modules/nushell/plugin-formats.nix b/home-manager/modules/nushell/plugin-formats.nix deleted file mode 100644 index 1ddf97c..0000000 --- a/home-manager/modules/nushell/plugin-formats.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ stdenv -, lib -, rustPlatform -, nushell -, IOKit -, CoreFoundation -}: - -let - pname = "nushell_plugin_formats"; -in -rustPlatform.buildRustPackage { - inherit pname; - version = nushell.version; - - src = nushell.src; - - cargoHash = "sha256-pwOdSJHd9njR0lr4n2EzCcqRonh0cbBHGZgAJ1l8FEk="; - - buildInputs = lib.optionals stdenv.isDarwin [ IOKit CoreFoundation ]; - - cargoBuildFlags = [ "--package nu_plugin_formats" ]; - - # compilation fails with a missing symbol - doCheck = false; - - meta = with lib; { - description = "A Nushell plugin to convert various data formats"; - homepage = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_formats"; - license = licenses.mpl20; - maintainers = [{ email = "erwin@datarift.nl"; github = "eboskma"; name = "Erwin Boskma"; githubId = 346752; }]; - platforms = with platforms; all; - }; -} diff --git a/home-manager/modules/sway/default.nix b/home-manager/modules/sway/default.nix index 8d1111f..2a085da 100644 --- a/home-manager/modules/sway/default.nix +++ b/home-manager/modules/sway/default.nix @@ -14,19 +14,57 @@ with lib; let # swaylockcmd = "${pkgs.swaylock-effects}/bin/swaylock --ignore-empty-password --daemonize --show-failed-attempts --indicator-caps-lock --clock --image ${wallpapers.qhd} --fade-in 0.5 --scaling fill"; swaylockcmd = "${pkgs.swaylock}/bin/swaylock --ignore-empty-password --daemonize --show-failed-attempts --indicator-caps-lock --image ${wallpapers.qhd} --scaling fill"; rofiPower = pkgs.writeShellScriptBin "rofi-power" (builtins.readFile ./powermenu.sh); - ewwDaemon = - let - path = lib.makeBinPath (with pkgs; [ ha-now-playing jaq pamedia bash helvum pavucontrol ]); - in - pkgs.writeShellScript "eww-daemon" '' - export PATH=${path}:''${PATH} - - ${config.eboskma.programs.eww.package}/bin/eww kill - ${config.eboskma.programs.eww.package}/bin/eww daemon - ''; in { - options.eboskma.programs.sway.enable = mkEnableOption "Enable sway"; + options.eboskma.programs.sway = { + enable = mkEnableOption "Enable sway"; + output = mkOption { + description = "An attribute set that defines output modules. See the sway-output(5) manpage for options"; + type = types.attrsOf (types.attrsOf types.str); + default = { }; + }; + input = mkOption { + description = "An attribute set that defines input modules. See the sway-input(5) manpage for options"; + type = types.attrsOf (types.attrsOf types.str); + default = { }; + }; + startup = mkOption { + description = "Commands that should be executed at startup."; + type = types.listOf (types.submodule { + options = { + command = mkOption { + type = types.str; + description = "Command that will be executed on startup."; + }; + + always = mkOption { + type = types.bool; + default = false; + description = "Whether to run command on each ${moduleName} restart."; + }; + }; + }); + }; + workspaceOutputs = mkOption { + description = "Assign workspaces to outputs"; + type = types.listOf (types.submodule { + options = { + output = mkOption { + description = "Name(s) of the output to assign"; + type = with types; either str (listOf str); + apply = lists.toList; + default = ""; + }; + workspace = mkOption { + description = "Name of the workspace to assign"; + type = types.str; + default = ""; + }; + }; + }); + default = [ ]; + }; + }; config = mkIf cfg.enable { wayland.windowManager.sway = { @@ -36,9 +74,8 @@ in assigns = { "1" = [{ app_id = "firefox"; }]; - "2" = [{ app_id = "Alacritty"; } { app_id = "foot"; }]; + "2" = [{ app_id = "foot"; }]; "3" = [{ class = "Code"; } { app_id = "emacs"; }]; - "9" = [{ class = "Steam"; }]; }; bars = [ ]; @@ -84,6 +121,8 @@ in defaultWorkspace = "workspace number 1"; + workspaceOutputAssign = cfg.workspaceOutputs; + left = "n"; down = "e"; up = "i"; @@ -106,30 +145,11 @@ in smartBorders = "on"; }; - input = { - "36125:40349:splitKB_Kyria" = { - xkb_layout = "us"; - xkb_options = "lv3:ralt_switch,eurosign:5"; - }; - "1133:49291:Logitech_G502_HERO_SE" = { - natural_scroll = "enabled"; - }; - }; + input = cfg.input; + output = cfg.output; - output = { - "Virtual-1" = { - bg = "${wallpapers.hd} fill"; - mode = "1920x1080@60Hz"; - }; - "DP-2" = { - bg = "${./wallpapers/jwst-saturn-nircam-2560.png} fill"; - mode = "2560x1440@165Hz"; - adaptive_sync = "on"; - max_render_time = "2"; - }; - }; - - menu = "${pkgs.rofi}/bin/rofi -show drun -no-lazy-grab"; + # menu = "${pkgs.rofi}/bin/rofi -show drun -no-lazy-grab"; + menu = "${config.programs.anyrun.package}/bin/anyrun"; keybindings = { "${mod}+Return" = "exec ${config.wayland.windowManager.sway.config.terminal}"; @@ -225,7 +245,6 @@ in }; }; - # terminal = "${pkgs.alacritty}/bin/alacritty"; terminal = "${pkgs.foot}/bin/foot"; window = { @@ -241,10 +260,7 @@ in }; }; - startup = [ - { command = toString ewwDaemon; always = true; } - { command = "${config.eboskma.programs.eww.package}/bin/eww open bar-home"; always = true; } - ]; + startup = cfg.startup; }; extraConfig = '' for_window [app_id="^.*"] inhibit_idle fullscreen @@ -307,8 +323,8 @@ in } { timeout = 1200; - command = "${pkgs.sway}/bin/swaymsg 'output * dpms off'"; - resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; + command = "${pkgs.sway}/bin/swaymsg 'output * power off'"; + resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * power on'"; } ]; }; diff --git a/home-manager/modules/sway/wallpapers/black-panther-2560.jpg b/home-manager/modules/sway/wallpapers/black-panther-2560.jpg new file mode 100644 index 0000000..2b3299d Binary files /dev/null and b/home-manager/modules/sway/wallpapers/black-panther-2560.jpg differ diff --git a/home-manager/modules/sway/wallpapers/black-panther-3840.jpg b/home-manager/modules/sway/wallpapers/black-panther-3840.jpg new file mode 100644 index 0000000..f154d6b Binary files /dev/null and b/home-manager/modules/sway/wallpapers/black-panther-3840.jpg differ diff --git a/home-manager/modules/sway/wallpapers/jwst-carina-cosmic-cliffs-nircam-2560.png b/home-manager/modules/sway/wallpapers/jwst-carina-cosmic-cliffs-nircam-2560.png new file mode 100644 index 0000000..391990d Binary files /dev/null and b/home-manager/modules/sway/wallpapers/jwst-carina-cosmic-cliffs-nircam-2560.png differ diff --git a/home-manager/modules/sway/wallpapers/jwst-carina-cosmic-cliffs-nircam-3840.png b/home-manager/modules/sway/wallpapers/jwst-carina-cosmic-cliffs-nircam-3840.png new file mode 100644 index 0000000..ae05dff Binary files /dev/null and b/home-manager/modules/sway/wallpapers/jwst-carina-cosmic-cliffs-nircam-3840.png differ diff --git a/home-manager/modules/sway/wallpapers/jwst-pillars-of-creation-1920.jpg b/home-manager/modules/sway/wallpapers/jwst-pillars-of-creation-1920.jpg new file mode 100644 index 0000000..f8974b9 Binary files /dev/null and b/home-manager/modules/sway/wallpapers/jwst-pillars-of-creation-1920.jpg differ diff --git a/home-manager/modules/sway/wallpapers/jwst-pillars-of-creation-2560.jpg b/home-manager/modules/sway/wallpapers/jwst-pillars-of-creation-2560.jpg new file mode 100644 index 0000000..31eccb8 Binary files /dev/null and b/home-manager/modules/sway/wallpapers/jwst-pillars-of-creation-2560.jpg differ diff --git a/home-manager/modules/sway/wallpapers/jwst-pillars-of-creation-3840.jpg b/home-manager/modules/sway/wallpapers/jwst-pillars-of-creation-3840.jpg new file mode 100644 index 0000000..72ee840 Binary files /dev/null and b/home-manager/modules/sway/wallpapers/jwst-pillars-of-creation-3840.jpg differ diff --git a/home-manager/modules/sway/wallpapers/river-3840.png b/home-manager/modules/sway/wallpapers/river-3840.png index d6d27ed..acf5af4 100644 Binary files a/home-manager/modules/sway/wallpapers/river-3840.png and b/home-manager/modules/sway/wallpapers/river-3840.png differ diff --git a/home-manager/modules/wallpapers/default.nix b/home-manager/modules/wallpapers/default.nix index fdb1b6d..846e0b6 100644 --- a/home-manager/modules/wallpapers/default.nix +++ b/home-manager/modules/wallpapers/default.nix @@ -14,6 +14,25 @@ let in ''${pkgs.nitrogen}/bin/nitrogen --head=${monitor} --set-color=${cfg.backgroundColor} --set-tiled ${image}'') (zipLists cfg.images (builtins.genList (x: x) (builtins.length cfg.images))))); + + wallpaperConfig = { + options = { + name = mkOption { + description = "The base filename of the image, without size and extension."; + type = types.str; + }; + + sizes = mkOption { + description = "The sizes this wallpaper comes in, as specified in the filename."; + type = with types; listOf int; + }; + + extension = mkOption { + description = "The extension of the wallpaper"; + type = types.enum [ "jpg" "png" "gif" ]; + }; + }; + }; in { options.eboskma.wallpapers = { @@ -25,8 +44,8 @@ in example = "#ff0000"; }; images = mkOption { - description = "Image(s) to use as wallpapers. For multiple monitors, either set a single image to use on all monitors, or set a list with as many images as monitors you have"; - type = with types; oneOf [ path (nonEmptyListOf path) ]; + description = "Images to make available as wallpaper. The files should be named as `-.` and be placed in the `wallpapers` subdirectory"; + type = with types; listOf (submodule wallpaperConfig); }; }; @@ -39,7 +58,5 @@ in notification = false; } ]; - - }; } diff --git a/machines/loki/configuration.nix b/machines/loki/configuration.nix index 494d838..d1cf74b 100644 --- a/machines/loki/configuration.nix +++ b/machines/loki/configuration.nix @@ -286,7 +286,7 @@ links = { "40-enp4s0" = { matchConfig = { - Name = "enp4s0"; + OriginalName = "enp4s0"; }; linkConfig = { WakeOnLan = "magic"; @@ -359,10 +359,15 @@ statdPort = 4100; }; - environment.systemPackages = with pkgs; [ - appimage-run - tailscale - ]; + environment = { + sessionVariables = { + AMD_VULKAN_ICD = "RADV"; + }; + systemPackages = with pkgs; [ + appimage-run + tailscale + ]; + }; sops.defaultSopsFile = ./secrets.yaml; sops.secrets = { diff --git a/machines/mimir/configuration.nix b/machines/mimir/configuration.nix index bda2701..bee0efe 100644 --- a/machines/mimir/configuration.nix +++ b/machines/mimir/configuration.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ nixos-hardware, nomachine, microvm, ... }: +{ nixos-hardware, microvm, ... }: { pkgs, config, ... }: { imports = @@ -11,7 +11,7 @@ nixos-hardware.nixosModules.common-cpu-amd nixos-hardware.nixosModules.common-cpu-amd-pstate nixos-hardware.nixosModules.common-pc-ssd - "${nomachine}/nixos/modules/services/admin/nomachine.nix" + # "${nomachine}/nixos/modules/services/admin/nomachine.nix" microvm.nixosModules.host @@ -38,6 +38,7 @@ desktop = { enable = true; + wayland = true; }; docker = { enable = true; @@ -46,13 +47,18 @@ }; fonts.enable = true; gnome.enable = true; + greetd = { + enable = true; + sway = true; + wayvnc = true; + }; kanata = { enable = true; devices = [ "/dev/input/by-id/usb-04d9_USB-HID_Keyboard-event-kbd" ]; }; - lightdm.enable = true; + lightdm.enable = false; networking.enable = true; nix-common = { enable = true; @@ -93,7 +99,7 @@ nvidia = { modesetting.enable = true; powerManagement.enable = true; - forceFullCompositionPipeline = true; + # forceFullCompositionPipeline = true; }; opengl = { @@ -122,11 +128,16 @@ }; efi.canTouchEfiVariables = true; }; + # This triggers a warning on stateVersions < 23.11 if set to true + swraid.enable = false; }; time.timeZone = "Europe/Amsterdam"; - console.useXkbConfig = true; + console = { + font = "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz"; + useXkbConfig = true; + }; networking = { hostName = "mimir"; @@ -239,6 +250,9 @@ }; # programs.ssh.startAgent = true; + programs = { + gnome-disks.enable = true; + }; services = { openssh.enable = true; @@ -249,6 +263,16 @@ tailscale.enable = true; + udisks2 = { + enable = true; + }; + + udev = { + extraRules = '' + ACTION=="add", ATTRS{idVendor}=="0781", ATTRS{idProduct}=="55b1", ATTRS{serial}=="A20033BEAC21B773", NAME="vault" + ''; + }; + xserver = { videoDrivers = [ "nvidia" ]; @@ -270,11 +294,6 @@ }; }; - nxserver = { - enable = true; - openFirewall = true; - }; - icecream.daemon = { enable = true; @@ -285,9 +304,15 @@ }; }; - environment.systemPackages = with pkgs; [ - appimage-run - ]; + environment = { + systemPackages = with pkgs; [ + appimage-run + ]; + + sessionVariables = { + WLR_NO_HARDWARE_CURSORS = "1"; + }; + }; # sops = { # defaultSopsFile = ./secrets.yaml; diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index cc28e63..754924f 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -87,7 +87,7 @@ in QT_QPA_PLATFORM = "wayland"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; QT_QPA_PLATFORMTHEME = "qt5ct"; - SDL_VIDEODRIVER = "wayland"; + # SDL_VIDEODRIVER = "wayland"; AMD_VULKAN_ICD = "RADV"; NIXOS_OZONE_WL = "1"; }) diff --git a/modules/greetd/default.nix b/modules/greetd/default.nix index 9062a74..7010e2c 100644 --- a/modules/greetd/default.nix +++ b/modules/greetd/default.nix @@ -5,14 +5,31 @@ }: with lib; let cfg = config.eboskma.greetd; + steamCfg = config.programs.steam; - style = builtins.replaceStrings [ "{WALLPAPER}" ] [ (builtins.toString ../../home-manager/modules/sway/wallpapers/river-2560.png) ] (builtins.readFile ./greetd.css); + # style = builtins.replaceStrings [ "{WALLPAPER}" ] [ (builtins.toString ../../home-manager/modules/sway/wallpapers/river-2560.png) ] (builtins.readFile ./greetd.css); + wallpaper = ../../home-manager/modules/sway/wallpapers/river-2560.png; + style = builtins.readFile ./greetd.css; + swaySession = pkgs.writeShellScript "sway-session" '' + ${pkgs.sway}/bin/sway --unsupported-gpu + ''; + + steam-gamescope = + let + exports = builtins.attrValues (builtins.mapAttrs (n: v: "export ${n}=${v}") steamCfg.gamescopeSession.env); + in + pkgs.writeShellScriptBin "steam-gamescope" '' + ${builtins.concatStringsSep "\n" exports} + gamescope --steam ${toString steamCfg.gamescopeSession.args} -- steam -tenfoot -pipewire-dmabuf + ''; in { options.eboskma.greetd = { enable = mkEnableOption "enable greetd"; sway = mkEnableOption "sway"; + steam = mkEnableOption "steam"; + wayvnc = mkEnableOption "wayvnc"; }; config = @@ -29,7 +46,7 @@ in }; programs.regreet = { - enable = true; + enable = false; settings = { background = { path = ../../home-manager/modules/sway/wallpapers/river-2560.png; @@ -53,59 +70,64 @@ in security.pam.services.greetd.u2fAuth = false; - environment.systemPackages = with pkgs; [ pantheon.elementary-gtk-theme pantheon.elementary-icon-theme ]; - # exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -s /etc/greetd/gtkgreet.css; swaymsg exit" + # exec "${pkgs.greetd.regreet}/bin/regreet; swaymsg exit" - environment.etc = { - "greetd/sway-config" = { - text = '' - # `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet. - exec "${pkgs.greetd.regreet}/bin/regreet; swaymsg exit" - # bindsym Mod4+shift+f exec swaynag \ - # -t warning \ - # -m 'What do you want to do?' \ - # -b 'Poweroff' 'systemctl poweroff' \ - # -b 'Reboot' 'systemctl reboot' - include /etc/sway/config.d/* - ''; - user = "greeter"; - group = "greeter"; - }; - "greetd/environments" = { - text = concatStringsSep "\n" ((optional cfg.sway "${pkgs.sway}/bin/sway") - ++ [ "${pkgs.bash}/bin/bash" ]); - user = "greeter"; - group = "greeter"; - }; - "greetd/gtkgreet.css" = { - text = style; - user = "greeter"; - group = "greeter"; - }; - "sway/config.d/systemd-env.conf" = { - text = '' - exec_always --no-startup-id systemctl --user import-environment _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK - exec_always --no-startup-id dbus-update-activation-environment --systemd _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK - ''; - }; - "xdg/gtk-3.0/settings.ini" = { - text = generators.toINI { } { - Settings = { - gtk-theme-name = "elementary"; - gtk-icon-theme-name = "elementary"; - gtk-cursor-theme-name = "elementary"; - gtk-application-prefer-dark-theme = "true"; + networking.firewall.allowedTCPPorts = lib.mkIf cfg.wayvnc [ 5900 ]; + + environment = { + systemPackages = with pkgs; [ pantheon.elementary-gtk-theme pantheon.elementary-icon-theme ]; + etc = { + "greetd/sway-config" = { + text = lib.concatStringsSep "\n" + ((lib.optional cfg.wayvnc "exec ${pkgs.wayvnc}/bin/wayvnc -g 0.0.0.0") ++ + [ + '' + exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -s /etc/greetd/gtkgreet.css -b ${wallpaper}; swaymsg exit" + include /etc/sway/config.d/* + '' + ]); + user = "greeter"; + group = "greeter"; + }; + "greetd/environments" = { + text = concatStringsSep "\n" ((optional cfg.sway "${swaySession}") + ++ (optional cfg.steam "${steam-gamescope}") + ++ [ + "${pkgs.bash}/bin/bash" + ]); + user = "greeter"; + group = "greeter"; + }; + "greetd/gtkgreet.css" = { + text = style; + user = "greeter"; + group = "greeter"; + }; + "sway/config.d/systemd-env.conf" = { + text = '' + exec_always --no-startup-id systemctl --user import-environment _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK + exec_always --no-startup-id dbus-update-activation-environment --systemd _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK + ''; + }; + "xdg/gtk-3.0/settings.ini" = { + text = generators.toINI { } { + Settings = { + gtk-theme-name = "elementary"; + gtk-icon-theme-name = "elementary"; + gtk-cursor-theme-name = "elementary"; + gtk-application-prefer-dark-theme = "true"; + }; }; }; - }; - "xdg/gtk-4.0/settings.ini" = { - text = generators.toINI { } { - Settings = { - gtk-theme-name = "elementary"; - gtk-icon-theme-name = "elementary"; - gtk-cursor-theme-name = "elementary"; - gtk-application-prefer-dark-theme = "true"; + "xdg/gtk-4.0/settings.ini" = { + text = generators.toINI { } { + Settings = { + gtk-theme-name = "elementary"; + gtk-icon-theme-name = "elementary"; + gtk-cursor-theme-name = "elementary"; + gtk-application-prefer-dark-theme = "true"; + }; }; }; }; diff --git a/modules/greetd/greetd.css b/modules/greetd/greetd.css index 691f903..9d464c9 100644 --- a/modules/greetd/greetd.css +++ b/modules/greetd/greetd.css @@ -1,5 +1,4 @@ window { - background-image: url("file://{WALLPAPER}"); background-size: cover; background-position: center; } diff --git a/pkgs/rofi-wayland/default.nix b/pkgs/rofi-wayland/default.nix index 7c99b3e..bcb447b 100644 --- a/pkgs/rofi-wayland/default.nix +++ b/pkgs/rofi-wayland/default.nix @@ -2,12 +2,12 @@ with pkgs; stdenv.mkDerivation rec { pname = "rofi-wayland-unwrapped"; - version = "1.7.5"; + version = "1.7.5+wayland2"; src = fetchFromGitHub { owner = "lbonn"; repo = "rofi"; - rev = "${version}+wayland1"; + rev = version; fetchSubmodules = true; sha256 = "ddKLV7NvqgTQl5YlAEyBK0oalcJsLASK4z3qArQPUDQ="; }; diff --git a/users/erwin/home.nix b/users/erwin/home.nix index 49273f6..5159357 100644 --- a/users/erwin/home.nix +++ b/users/erwin/home.nix @@ -2,6 +2,16 @@ with lib; let cfg = config.eboskma.users.erwin; bt = config.eboskma.bluetooth; + + ewwDaemon = + let + path = lib.makeBinPath (with pkgs; [ ha-now-playing jaq pamedia bash helvum pavucontrol ]); + in + pkgs.writeShellScript "eww-daemon" '' + export PATH=${path}:''${PATH} + + ${config.home-manager.users.erwin.eboskma.programs.eww.package}/bin/eww $@ + ''; in { config = @@ -12,6 +22,7 @@ in eboskma = { programs = { alacritty.enable = false; + anyrun.enable = true; atuin.enable = true; bat.enable = true; cargo = { @@ -89,7 +100,29 @@ in solvespace.enable = true; ssh.enable = true; starship.enable = true; - sway.enable = true; + sway = { + enable = true; + output = { + "DP-2" = { + bg = "${../../home-manager/modules/sway/wallpapers/jwst-saturn-nircam-2560.png} fill"; + mode = "2560x1440@165Hz"; + adaptive_sync = "on"; + max_render_time = "2"; + }; + }; + input = { + "36125:40349:splitKB_Kyria" = { + xkb_layout = "us"; + xkb_options = "lv3:ralt_switch,eurosign:5"; + }; + "1133:49291:Logitech_G502_HERO_SE" = { + natural_scroll = "enabled"; + }; + }; + startup = [ + { command = "${ewwDaemon} --restart open bar-home"; always = true; } + ]; + }; swaynotificationcenter.enable = true; tea = { enable = true; @@ -159,6 +192,7 @@ in procs prusa-slicer qgis + remmina ripgrep scid-vs-pc signal-desktop @@ -166,6 +200,7 @@ in steam steamcmd steam-tui + stellarium # super-slicer-latest units unzip @@ -174,6 +209,13 @@ in zeal ] ++ (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]); + + pointerCursor = { + name = "elementary"; + package = pkgs.pantheon.elementary-gtk-theme; + gtk.enable = true; + x11.enable = true; + }; }; xdg = { @@ -276,6 +318,7 @@ in imports = [ ../../modules/options + inputs.anyrun.nixosModules.home-manager ] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules))); }; @@ -289,10 +332,33 @@ in package = pkgs.steam.override { extraPkgs = sp: with sp; [ gamescope ]; }; + + gamescopeSession = { + enable = true; + args = [ + "--rt" + "--output-width" + "2560" + "--output-height" + "1440" + "--adaptive-sync" + "--filter" + "fsr" + "--expose-wayland" + ]; + # env = config.environment.sessionVariables; + }; }; gamescope = { enable = true; + capSysNice = true; args = [ + "--output-width" + "2560" + "--output-height" + "1440" + "--filter" + "fsr" "--rt" "--fullscreen" ]; diff --git a/users/erwin/work.nix b/users/erwin/work.nix index 367abfa..c487b81 100644 --- a/users/erwin/work.nix +++ b/users/erwin/work.nix @@ -3,21 +3,51 @@ with lib; let cfg = config.eboskma.users.erwin; - remoteSessionScript = pkgs.writeShellScriptBin "remote-session" '' - ${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --mode 2560x1440 - ${pkgs.xorg.xrandr}/bin/xrandr --output DP-4 --mode 2560x1440 --right-of DP-0 - ${pkgs.nitrogen}/bin/nitrogen --head=0 --set-auto ${toString ./wallpapers/jwst-carina-cosmic-cliffs-nircam-2560.png} - ${pkgs.nitrogen}/bin/nitrogen --head=1 --set-auto ${toString ./wallpapers/jwst-southern-ring-nircam-miri-side-by-side-2560.png} - systemctl --user restart polybar - ''; - localSessionScript = pkgs.writeShellScriptBin "local-session" '' - ${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --mode 3840x2160 - ${pkgs.xorg.xrandr}/bin/xrandr --output DP-4 --mode 3840x2160 --right-of DP-0 - ${pkgs.nitrogen}/bin/nitrogen --head=0 --set-auto ${toString ./wallpapers/jwst-carina-cosmic-cliffs-nircam-3840.png} - ${pkgs.nitrogen}/bin/nitrogen --head=1 --set-auto ${toString ./wallpapers/jwst-southern-ring-nircam-miri-side-by-side-3840.png} - systemctl --user restart polybar - ''; + # remoteSessionScript = pkgs.writeShellScriptBin "remote-session" '' + # ${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --mode 2560x1440 + # ${pkgs.xorg.xrandr}/bin/xrandr --output DP-4 --mode 2560x1440 --right-of DP-0 + # ${pkgs.nitrogen}/bin/nitrogen --head=0 --set-auto ${toString ./wallpapers/jwst-carina-cosmic-cliffs-nircam-2560.png} + # ${pkgs.nitrogen}/bin/nitrogen --head=1 --set-auto ${toString ./wallpapers/jwst-southern-ring-nircam-miri-side-by-side-2560.png} + # systemctl --user restart polybar + # ''; + # localSessionScript = pkgs.writeShellScriptBin "local-session" '' + # ${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --mode 3840x2160 + # ${pkgs.xorg.xrandr}/bin/xrandr --output DP-4 --mode 3840x2160 --right-of DP-0 + # ${pkgs.nitrogen}/bin/nitrogen --head=0 --set-auto ${toString ./wallpapers/jwst-carina-cosmic-cliffs-nircam-3840.png} + # ${pkgs.nitrogen}/bin/nitrogen --head=1 --set-auto ${toString ./wallpapers/jwst-southern-ring-nircam-miri-side-by-side-3840.png} + # systemctl --user restart polybar + # ''; + ewwDaemon = + let + path = lib.makeBinPath (with pkgs; [ jaq pamedia bash helvum pavucontrol ]); + in + pkgs.writeShellScript "eww-daemon" '' + export PATH=${path}:''${PATH} + + ${config.home-manager.users.erwin.eboskma.programs.eww.package}/bin/eww $@ + ''; + + workspacePartition = builtins.concatLists (builtins.attrValues (builtins.mapAttrs + ( + name: workspaces: + let + output = + if name == "right" + then "DP-1" + else "DP-3"; + in + builtins.map + (ws: { + inherit output; + workspace = toString ws; + }) + workspaces + ) + + (builtins.partition + (n: (trivial.mod n 2) != 0) + (lists.range 1 10)))); in { config = mkIf cfg.work { @@ -27,7 +57,8 @@ in eboskma = { var.workSystem = true; programs = { - alacritty.enable = true; + alacritty.enable = false; + anyrun.enable = true; atuin.enable = true; bat.enable = true; cargo = { @@ -39,10 +70,10 @@ in }; }; dropbox.enable = true; - dunst.enable = true; + dunst.enable = false; emacs = { enable = true; - package = pkgs.emacs-unstable; + package = pkgs.emacs-unstable-pgtk; # .override { # treeSitterPlugins = builtins.attrValues (filterAttrs (_: isDerivation) pkgs.tree-sitter-grammars); # }; @@ -50,12 +81,17 @@ in }; eww = { enable = true; + package = pkgs.eww-wayland; }; firefox = { enable = true; work = true; }; fish.enable = true; + foot = { + enable = true; + server = false; + }; git = { enable = true; name = "Erwin Boskma"; @@ -65,7 +101,7 @@ in }; gpg.enable = true; i3 = { - enable = true; + enable = false; startupCommands = [ { command = "${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --primary --left-of DP-4"; @@ -82,10 +118,10 @@ in ]; }; mpd.enable = true; - nushell.enable = true; - picom.enable = true; - polybar.enable = true; neovim.enable = true; + nushell.enable = true; + picom.enable = false; + polybar.enable = false; rclone = { enable = true; mounts = [ @@ -103,25 +139,78 @@ in }; rofi = { enable = true; - terminal = config.home-manager.users.erwin.xsession.windowManager.i3.config.terminal; + package = pkgs.rofi-wayland; + terminal = config.home-manager.users.erwin.wayland.windowManager.sway.config.terminal; }; ssh.enable = true; starship.enable = true; - zellij = { + sway = { enable = true; - copyCommand = "${pkgs.xsel}/bin/xsel --clipboard"; + output = { + "DP-1" = { + bg = "${../../home-manager/modules/sway/wallpapers/river-3840.png} fill"; + mode = "3840x2160@60Hz"; + position = "0 0"; + }; + "DP-3" = { + bg = "${../../home-manager/modules/sway/wallpapers/jwst-southern-ring-nircam-miri-side-by-side-3840.png} fill"; + mode = "3840x2160@60Hz"; + position = "3840 0"; + }; + }; + input = { + "1241:662:USB-HID_Keyboard" = { + xkb_layout = "us"; + xkb_options = "lv3:ralt_switch,eurosign:5"; + }; + "1133:49257:Logitech_USB_Laser_Mouse" = { + natural_scroll = "enabled"; + pointer_accel = "1"; + }; + }; + startup = [ + { command = "${ewwDaemon} --restart open bar-work"; always = true; } + { command = "${pkgs.wayvnc}/bin/wayvnc -g 0.0.0.0"; } + ]; + workspaceOutputs = workspacePartition; + }; + swaynotificationcenter.enable = true; + zellij = { + enable = false; + copyCommand = "${pkgs.wl-clipboard}/bin/wl-copy"; }; }; services = { - xbanish.enable = true; + xbanish.enable = false; }; }; - programs.home-manager.enable = true; - programs.command-not-found.enable = true; + programs = { + home-manager.enable = true; + command-not-found.enable = true; + }; + + services = { + gnome-keyring = { + enable = true; + components = [ "pkcs11" "ssh" "secrets" ]; + }; + udiskie = { + enable = true; + tray = "auto"; + notify = true; + settings = { + program_options = { + menu = "nested"; + }; + device_config = [ + { + device_file = "/dev/loop*"; + ignore = true; + } + ]; + }; + }; - services.gnome-keyring = { - enable = true; - components = [ "pkcs11" "ssh" "secrets" ]; }; home = { @@ -172,8 +261,8 @@ in zathura zeal - localSessionScript - remoteSessionScript + # localSessionScript + # remoteSessionScript ] ++ (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]); @@ -255,8 +344,14 @@ in }; }; + i18n.inputMethod = { + enabled = "fcitx5"; + fcitx5.addons = with pkgs; [ fcitx5-m17n fcitx5-gtk fcitx5-configtool ]; + }; + imports = [ ../../modules/options + inputs.anyrun.nixosModules.home-manager ] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules))); }; @@ -277,7 +372,7 @@ in exportConfiguration = true; windowManager.i3 = { - enable = true; + enable = false; package = pkgs.i3-gaps; extraPackages = with pkgs; [ i3lock-color ]; };