From 65f5a58e96fc5daa1d5d82b972bedf303053100b Mon Sep 17 00:00:00 2001 From: Tyler Mayoff Date: Mon, 1 Sep 2025 15:54:23 -0400 Subject: [PATCH] more updates to niri --- dot_config/flake/flake.lock | 119 ++++++-- dot_config/flake/flake.nix | 2 +- dot_config/flake/home/ghostty.nix | 6 +- dot_config/flake/home/gui.nix | 2 +- dot_config/flake/home/niri.nix | 386 +++++++++++++----------- dot_config/flake/home/shell.nix | 2 + dot_config/flake/machines/wash/home.nix | 5 +- dot_config/flake/overlays/default.nix | 17 -- 8 files changed, 317 insertions(+), 222 deletions(-) diff --git a/dot_config/flake/flake.lock b/dot_config/flake/flake.lock index 42fc195..d4ed4ee 100644 --- a/dot_config/flake/flake.lock +++ b/dot_config/flake/flake.lock @@ -152,11 +152,11 @@ ] }, "locked": { - "lastModified": 1756579987, - "narHash": "sha256-duCce8zGsaMsrqqOmLOsuaV1PVIw/vXWnKuLKZClsGg=", + "lastModified": 1756734952, + "narHash": "sha256-H6jmduj4QIncLPAPODPSG/8ry9lpr1kRq6fYytU52qU=", "owner": "nix-community", "repo": "home-manager", - "rev": "99a69bdf8a3c6bf038c4121e9c4b6e99706a187a", + "rev": "29ab63bbb3d9eee4a491f7ce701b189becd34068", "type": "github" }, "original": { @@ -175,11 +175,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1756593635, - "narHash": "sha256-tus6sIQr5EA9J1Vqpf5TN6MtLTpbIqqThUncgAMteRo=", + "lastModified": 1756732319, + "narHash": "sha256-w7pNSuw1hPRfFwKbV40/ZTK62FX4ZpqUQxCh9vIhD7Y=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "01285d6ffb9214e6e524cfb7a4752a3c20be6b2b", + "rev": "2437b6b1f98cd3161ccc96750eed927ab38c1913", "type": "github" }, "original": { @@ -208,11 +208,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1756556321, - "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", + "lastModified": 1756728273, + "narHash": "sha256-7tYNlNO/qVRA6shdWxNuBMYOE+pGgxqE0f54S4Wr9PE=", "owner": "YaLTeR", "repo": "niri", - "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", + "rev": "77465e11fe36fdd9bc0a304b96bb2558116568af", "type": "github" }, "original": { @@ -290,11 +290,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1756469547, - "narHash": "sha256-YvtD2E7MYsQ3r7K9K2G7nCslCKMPShoSEAtbjHLtH0k=", + "lastModified": 1756617294, + "narHash": "sha256-aGnd4AHIYCWQKChAkHPpX+YYCt7pA6y2LFFA/s8q0wQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "41d292bfc37309790f70f4c120b79280ce40af16", + "rev": "b4c2c57c31e68544982226d07e4719a2d86302a8", "type": "github" }, "original": { @@ -352,11 +352,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1756469547, - "narHash": "sha256-YvtD2E7MYsQ3r7K9K2G7nCslCKMPShoSEAtbjHLtH0k=", + "lastModified": 1756617294, + "narHash": "sha256-aGnd4AHIYCWQKChAkHPpX+YYCt7pA6y2LFFA/s8q0wQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "41d292bfc37309790f70f4c120b79280ce40af16", + "rev": "b4c2c57c31e68544982226d07e4719a2d86302a8", "type": "github" }, "original": { @@ -366,6 +366,70 @@ "type": "github" } }, + "noctalia": { + "inputs": { + "nixpkgs": [ + "nixpkgs-unstable" + ], + "quickshell": "quickshell", + "systems": "systems" + }, + "locked": { + "lastModified": 1756700149, + "narHash": "sha256-rOqprvpuA0dTNFSw6UwtAVWKcWXq99rRE4BqR06QXjs=", + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "rev": "e8c20422903434d065c6f2f891ffad5d59e71337", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "ref": "v2.3.3", + "repo": "noctalia-shell", + "type": "github" + } + }, + "quickshell": { + "inputs": { + "nixpkgs": [ + "noctalia", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1753595452, + "narHash": "sha256-vqkSDvh7hWhPvNjMjEDV4KbSCv2jyl2Arh73ZXe274k=", + "ref": "refs/heads/master", + "rev": "a5431dd02dc23d9ef1680e67777fed00fe5f7cda", + "revCount": 665, + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" + }, + "original": { + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" + } + }, + "quickshell_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs-unstable" + ] + }, + "locked": { + "lastModified": 1756352679, + "narHash": "sha256-UkKaPXTPzT7HAcBOV4NlWx2GAEJaTf0eb5OX6Q6jPqg=", + "owner": "outfoxxed", + "repo": "quickshell", + "rev": "f7597cdae2d537c5b12843599955856090dc49d5", + "type": "github" + }, + "original": { + "owner": "outfoxxed", + "repo": "quickshell", + "type": "github" + } + }, "root": { "inputs": { "darwin": "darwin", @@ -373,7 +437,24 @@ "home-manager": "home-manager", "niri": "niri", "nixpkgs": "nixpkgs_4", - "nixpkgs-unstable": "nixpkgs-unstable" + "nixpkgs-unstable": "nixpkgs-unstable", + "noctalia": "noctalia", + "quickshell": "quickshell_2" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" } }, "xwayland-satellite-stable": { @@ -396,11 +477,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1756570086, - "narHash": "sha256-vnbIvAqSt+hSd6blDc9IMvZKxAcHpqLhy25tDvosrug=", + "lastModified": 1756679414, + "narHash": "sha256-yQGJ/n6mRwoIQnaL5oV2TGOHg4SEHpINTaoHrvkjr1Q=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "1d156aa8d30b124ff770488e5e34289a08ff4207", + "rev": "c0497c990d46fcc012d9deff885bbe533e91e044", "type": "github" }, "original": { diff --git a/dot_config/flake/flake.nix b/dot_config/flake/flake.nix index 0508d07..d16a456 100644 --- a/dot_config/flake/flake.nix +++ b/dot_config/flake/flake.nix @@ -14,7 +14,7 @@ }; noctalia = { - url = "github:noctalia-dev/noctalia-shell"; + url = "github:noctalia-dev/noctalia-shell/v2.3.4"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; diff --git a/dot_config/flake/home/ghostty.nix b/dot_config/flake/home/ghostty.nix index 1960597..9c9bb85 100644 --- a/dot_config/flake/home/ghostty.nix +++ b/dot_config/flake/home/ghostty.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: let +{pkgs, ...}: let catppuccin = pkgs.fetchFromGitHub { owner = "catppuccin"; repo = "ghostty"; @@ -30,6 +27,5 @@ in { }; xdg.configFile."ghostty/themes/catppuccin-latte.conf".source = "${catppuccin}/themes/catppuccin-latte.conf"; - xdg.configFile."ghostty/themes/catppuccin-macchiato.conf".source = "${catppuccin}/themes/catppuccin-macchiato.conf"; } diff --git a/dot_config/flake/home/gui.nix b/dot_config/flake/home/gui.nix index 8f8da7e..875e52c 100644 --- a/dot_config/flake/home/gui.nix +++ b/dot_config/flake/home/gui.nix @@ -6,7 +6,7 @@ home.packages = with pkgs; [ adw-gtk3 - pkgs.mods.discord + discord # Office libreoffice diff --git a/dot_config/flake/home/niri.nix b/dot_config/flake/home/niri.nix index bdda960..6dec73b 100644 --- a/dot_config/flake/home/niri.nix +++ b/dot_config/flake/home/niri.nix @@ -8,11 +8,16 @@ ./darkman.nix ]; - programs.fuzzel.enable = true; - home.packages = with pkgs; [ inputs.noctalia.packages.${system}.default inputs.quickshell.packages.${system}.default + + xdg-desktop-portal-gtk + xdg-desktop-portal-gnome + gnome-keyring + + xwayland-satellite + wlsunset ]; programs.niri.settings = { @@ -122,183 +127,183 @@ # position x=1280 y=0 # } - # // Settings that influence how windows are positioned and sized. - # // Find more information on the wiki: - # // https://github.com/YaLTeR/niri/wiki/Configuration:-Layout - # layout { - # // Set gaps around windows in logical pixels. - # gaps 16 + # Settings that influence how windows are positioned and sized. + # Find more information on the wiki: + # https://github.com/YaLTeR/niri/wiki/Configuration:-Layout + layout = { + # // Set gaps around windows in logical pixels. + gaps = 16; - # // When to center a column when changing focus, options are: - # // - "never", default behavior, focusing an off-screen column will keep at the left - # // or right edge of the screen. - # // - "always", the focused column will always be centered. - # // - "on-overflow", focusing a column will center it if it doesn't fit - # // together with the previously focused column. - # center-focused-column "never" + # // When to center a column when changing focus, options are: + # // - "never", default behavior, focusing an off-screen column will keep at the left + # // or right edge of the screen. + # // - "always", the focused column will always be centered. + # // - "on-overflow", focusing a column will center it if it doesn't fit + # // together with the previously focused column. + # center-focused-column "never" - # // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between. - # preset-column-widths { - # // Proportion sets the width as a fraction of the output width, taking gaps into account. - # // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. - # // The default preset widths are 1/3, 1/2 and 2/3 of the output. - # proportion 0.33333 - # proportion 0.5 - # proportion 0.66667 + # // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between. + # preset-column-widths { + # // Proportion sets the width as a fraction of the output width, taking gaps into account. + # // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. + # // The default preset widths are 1/3, 1/2 and 2/3 of the output. + # proportion 0.33333 + # proportion 0.5 + # proportion 0.66667 - # // Fixed sets the width in logical pixels exactly. - # // fixed 1920 - # } + # // Fixed sets the width in logical pixels exactly. + # // fixed 1920 + # } - # // You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between. - # // preset-window-heights { } + # // You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between. + # // preset-window-heights { } - # // You can change the default width of the new windows. - # default-column-width { proportion 0.5; } - # // If you leave the brackets empty, the windows themselves will decide their initial width. - # // default-column-width {} + # // You can change the default width of the new windows. + # default-column-width { proportion 0.5; } + # // If you leave the brackets empty, the windows themselves will decide their initial width. + # // default-column-width {} - # // By default focus ring and border are rendered as a solid background rectangle - # // behind windows. That is, they will show up through semitransparent windows. - # // This is because windows using client-side decorations can have an arbitrary shape. - # // - # // If you don't like that, you should uncomment `prefer-no-csd` below. - # // Niri will draw focus ring and border *around* windows that agree to omit their - # // client-side decorations. - # // - # // Alternatively, you can override it with a window rule called - # // `draw-border-with-background`. + # // By default focus ring and border are rendered as a solid background rectangle + # // behind windows. That is, they will show up through semitransparent windows. + # // This is because windows using client-side decorations can have an arbitrary shape. + # // + # // If you don't like that, you should uncomment `prefer-no-csd` below. + # // Niri will draw focus ring and border *around* windows that agree to omit their + # // client-side decorations. + # // + # // Alternatively, you can override it with a window rule called + # // `draw-border-with-background`. - # // You can change how the focus ring looks. - # focus-ring { - # // Uncomment this line to disable the focus ring. - # // off + # // You can change how the focus ring looks. + # focus-ring { + # // Uncomment this line to disable the focus ring. + # // off - # // How many logical pixels the ring extends out from the windows. - # width 4 + # // How many logical pixels the ring extends out from the windows. + # width 4 - # // Colors can be set in a variety of ways: - # // - CSS named colors: "red" - # // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa" - # // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. + # // Colors can be set in a variety of ways: + # // - CSS named colors: "red" + # // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa" + # // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. - # // Color of the ring on the active monitor. - # active-color "#7fc8ff" + # // Color of the ring on the active monitor. + # active-color "#7fc8ff" - # // Color of the ring on inactive monitors. - # inactive-color "#505050" + # // Color of the ring on inactive monitors. + # inactive-color "#505050" - # // You can also use gradients. They take precedence over solid colors. - # // Gradients are rendered the same as CSS linear-gradient(angle, from, to). - # // The angle is the same as in linear-gradient, and is optional, - # // defaulting to 180 (top-to-bottom gradient). - # // You can use any CSS linear-gradient tool on the web to set these up. - # // Changing the color space is also supported, check the wiki for more info. - # // - # // active-gradient from="#80c8ff" to="#bbddff" angle=45 + # // You can also use gradients. They take precedence over solid colors. + # // Gradients are rendered the same as CSS linear-gradient(angle, from, to). + # // The angle is the same as in linear-gradient, and is optional, + # // defaulting to 180 (top-to-bottom gradient). + # // You can use any CSS linear-gradient tool on the web to set these up. + # // Changing the color space is also supported, check the wiki for more info. + # // + # // active-gradient from="#80c8ff" to="#bbddff" angle=45 - # // You can also color the gradient relative to the entire view - # // of the workspace, rather than relative to just the window itself. - # // To do that, set relative-to="workspace-view". - # // - # // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" - # } + # // You can also color the gradient relative to the entire view + # // of the workspace, rather than relative to just the window itself. + # // To do that, set relative-to="workspace-view". + # // + # // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" + # } - # // You can also add a border. It's similar to the focus ring, but always visible. - # border { - # // The settings are the same as for the focus ring. - # // If you enable the border, you probably want to disable the focus ring. - # off + # // You can also add a border. It's similar to the focus ring, but always visible. + # border { + # // The settings are the same as for the focus ring. + # // If you enable the border, you probably want to disable the focus ring. + # off - # width 4 - # active-color "#ffc87f" - # inactive-color "#505050" + # width 4 + # active-color "#ffc87f" + # inactive-color "#505050" - # // Color of the border around windows that request your attention. - # urgent-color "#9b0000" + # // Color of the border around windows that request your attention. + # urgent-color "#9b0000" - # // active-gradient from="#ffbb66" to="#ffc880" angle=45 relative-to="workspace-view" - # // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" - # } + # // active-gradient from="#ffbb66" to="#ffc880" angle=45 relative-to="workspace-view" + # // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" + # } - # // You can enable drop shadows for windows. - # shadow { - # // Uncomment the next line to enable shadows. - # // on + # // You can enable drop shadows for windows. + # shadow { + # // Uncomment the next line to enable shadows. + # // on - # // By default, the shadow draws only around its window, and not behind it. - # // Uncomment this setting to make the shadow draw behind its window. - # // - # // Note that niri has no way of knowing about the CSD window corner - # // radius. It has to assume that windows have square corners, leading to - # // shadow artifacts inside the CSD rounded corners. This setting fixes - # // those artifacts. - # // - # // However, instead you may want to set prefer-no-csd and/or - # // geometry-corner-radius. Then, niri will know the corner radius and - # // draw the shadow correctly, without having to draw it behind the - # // window. These will also remove client-side shadows if the window - # // draws any. - # // - # // draw-behind-window true + # // By default, the shadow draws only around its window, and not behind it. + # // Uncomment this setting to make the shadow draw behind its window. + # // + # // Note that niri has no way of knowing about the CSD window corner + # // radius. It has to assume that windows have square corners, leading to + # // shadow artifacts inside the CSD rounded corners. This setting fixes + # // those artifacts. + # // + # // However, instead you may want to set prefer-no-csd and/or + # // geometry-corner-radius. Then, niri will know the corner radius and + # // draw the shadow correctly, without having to draw it behind the + # // window. These will also remove client-side shadows if the window + # // draws any. + # // + # // draw-behind-window true - # // You can change how shadows look. The values below are in logical - # // pixels and match the CSS box-shadow properties. + # // You can change how shadows look. The values below are in logical + # // pixels and match the CSS box-shadow properties. - # // Softness controls the shadow blur radius. - # softness 30 + # // Softness controls the shadow blur radius. + # softness 30 - # // Spread expands the shadow. - # spread 5 + # // Spread expands the shadow. + # spread 5 - # // Offset moves the shadow relative to the window. - # offset x=0 y=5 + # // Offset moves the shadow relative to the window. + # offset x=0 y=5 - # // You can also change the shadow color and opacity. - # color "#0007" - # } + # // You can also change the shadow color and opacity. + # color "#0007" + # } - # // Struts shrink the area occupied by windows, similarly to layer-shell panels. - # // You can think of them as a kind of outer gaps. They are set in logical pixels. - # // Left and right struts will cause the next window to the side to always be visible. - # // Top and bottom struts will simply add outer gaps in addition to the area occupied by - # // layer-shell panels and regular gaps. - # struts { - # // left 64 - # // right 64 - # // top 64 - # // bottom 64 - # } - # } + # // Struts shrink the area occupied by windows, similarly to layer-shell panels. + # // You can think of them as a kind of outer gaps. They are set in logical pixels. + # // Left and right struts will cause the next window to the side to always be visible. + # // Top and bottom struts will simply add outer gaps in addition to the area occupied by + # // layer-shell panels and regular gaps. + # struts { + # // left 64 + # // right 64 + # // top 64 + # // bottom 64 + # } + }; - # // Add lines like this to spawn processes at startup. - # // Note that running niri as a session supports xdg-desktop-autostart, - # // which may be more convenient to use. - # // See the binds section below for more spawn examples. + # Add lines like this to spawn processes at startup. + # Note that running niri as a session supports xdg-desktop-autostart, + # which may be more convenient to use. + # See the binds section below for more spawn examples. # // This line starts waybar, a commonly used bar for Wayland compositors. spawn-at-startup = [ {argv = ["noctalia-shell"];} ]; - # // Uncomment this line to ask the clients to omit their client-side decorations if possible. - # // If the client will specifically ask for CSD, the request will be honored. - # // Additionally, clients will be informed that they are tiled, removing some client-side rounded corners. - # // This option will also fix border/focus ring drawing behind some semitransparent windows. - # // After enabling or disabling this, you need to restart the apps for this to take effect. - # // prefer-no-csd + # Uncomment this line to ask the clients to omit their client-side decorations if possible. + # If the client will specifically ask for CSD, the request will be honored. + # Additionally, clients will be informed that they are tiled, removing some client-side rounded corners. + # This option will also fix border/focus ring drawing behind some semitransparent windows. + # After enabling or disabling this, you need to restart the apps for this to take effect. + # prefer-no-csd # // You can change the path where screenshots are saved. # // A ~ at the front will be expanded to the home directory. # // The path is formatted with strftime(3) to give you the screenshot date and time. - # screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" + screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"; # // You can also set this to null to disable saving screenshots to disk. # // screenshot-path null - # // Animation settings. - # // The wiki explains how to configure individual animations: - # // https://github.com/YaLTeR/niri/wiki/Configuration:-Animations + # Animation settings. + # The wiki explains how to configure individual animations: + # https://github.com/YaLTeR/niri/wiki/Configuration:-Animations # animations { # // Uncomment to turn off all animations. # // off @@ -307,9 +312,44 @@ # // slowdown 3.0 # } - # // Window rules let you adjust behavior for individual windows. - # // Find more information on the wiki: - # // https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules + layer-rules = [ + { + matches = [{namespace = "^quickshell-wallpaper$";}]; + } + { + matches = [{namespace = "^quickshell-overview$";}]; + place-within-backdrop = true; + } + ]; + + # Window rules let you adjust behavior for individual windows. + # Find more information on the wiki: + # https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules + + window-rules = [ + { + clip-to-geometry = true; + geometry-corner-radius = let + r = 20.0; + in { + bottom-left = r; + bottom-right = r; + top-left = r; + top-right = r; + }; + } + + # Open the Firefox picture-in-picture player as floating by default. + { + matches = [ + { + app-id = "firefox$"; + title = "^Picture-in-Picture$"; + } + ]; + open-floating = true; + } + ]; # // Work around WezTerm's initial configure bug # // by setting an empty default-column-width. @@ -321,15 +361,6 @@ # default-column-width {} # } - # // Open the Firefox picture-in-picture player as floating by default. - # window-rule { - # // This app-id regular expression will work for both: - # // - host Firefox (app-id is "firefox") - # // - Flatpak Firefox (app-id is "org.mozilla.firefox") - # match app-id=r#"firefox$"# title="^Picture-in-Picture$" - # open-floating true - # } - # // Example: block out two password managers from screen capture. # // (This example rule is commented out with a "/-" in front.) # /-window-rule { @@ -352,15 +383,15 @@ outputs."eDP-1".scale = 1.0; binds = with config.lib.niri.actions; { - # // Keys consist of modifiers separated by + signs, followed by an XKB key name - # // in the end. To find an XKB name for a particular key, you may use a program - # // like wev. - # // - # // "Mod" is a special modifier equal to Super when running on a TTY, and to Alt - # // when running as a winit window. - # // - # // Most actions that you can bind here can also be invoked programmatically with - # // `niri msg action do-something`. + # Keys consist of modifiers separated by + signs, followed by an XKB key name + # in the end. To find an XKB name for a particular key, you may use a program + # like wev. + # + # "Mod" is a special modifier equal to Super when running on a TTY, and to Alt + # when running as a winit window. + # + # Most actions that you can bind here can also be invoked programmatically with + # `niri msg action do-something`. # // Mod-Shift-/, which is usually the same as Mod-?, # // shows a list of important hotkeys. @@ -371,9 +402,9 @@ hotkey-overlay.title = "Open a Terminal: ghostty"; action = spawn "ghostty"; }; - "Mod+D" = { - hotkey-overlay.title = "Run an Application: fuzzel"; - action = spawn "fuzzel"; + "Mod+Space" = { + hotkey-overlay.title = "Application launcher"; + action = spawn ["noctalia-shell" "ipc" "call" "launcher" "toggle"]; }; # Super+Alt+L hotkey-overlay-title="Lock the Screen: swaylock" { spawn "swaylock"; } @@ -391,7 +422,10 @@ # // Open/close the Overview: a zoomed-out view of workspaces and windows. # // You can also move the mouse into the top-left hot corner, # // or do a four-finger swipe up on a touchpad. - # Mod+O repeat=false { toggle-overview; } + "Mod+O" = { + repeat = false; + action = toggle-overview; + }; "Mod+Q".action = close-window; @@ -420,19 +454,19 @@ # // Mod+Ctrl+J { move-window-down-or-to-workspace-down; } # // Mod+Ctrl+K { move-window-up-or-to-workspace-up; } - # Mod+Home { focus-column-first; } - # Mod+End { focus-column-last; } - # Mod+Ctrl+Home { move-column-to-first; } - # Mod+Ctrl+End { move-column-to-last; } + "Mod+Home".action = focus-column-first; + "Mod+End".action = focus-column-last; + "Mod+Ctrl+Home".action = move-column-to-first; + "Mod+Ctrl+End".action = move-column-to-last; - # Mod+Shift+Left { focus-monitor-left; } - # Mod+Shift+Down { focus-monitor-down; } - # Mod+Shift+Up { focus-monitor-up; } - # Mod+Shift+Right { focus-monitor-right; } - # Mod+Shift+H { focus-monitor-left; } - # Mod+Shift+J { focus-monitor-down; } - # Mod+Shift+K { focus-monitor-up; } - # Mod+Shift+L { focus-monitor-right; } + "Mod+Shift+Left".action = focus-monitor-left; + "Mod+Shift+Down".action = focus-monitor-down; + "Mod+Shift+Up".action = focus-monitor-up; + "Mod+Shift+Right".action = focus-monitor-right; + "Mod+Shift+H".action = focus-monitor-left; + "Mod+Shift+J".action = focus-monitor-down; + "Mod+Shift+K".action = focus-monitor-up; + "Mod+Shift+L".action = focus-monitor-right; "Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left; "Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down; diff --git a/dot_config/flake/home/shell.nix b/dot_config/flake/home/shell.nix index cb69f38..f198bbb 100644 --- a/dot_config/flake/home/shell.nix +++ b/dot_config/flake/home/shell.nix @@ -17,5 +17,7 @@ # chezmoi dot_apply = "chezmoi apply"; dot_pull = "chezmoi update"; + + dot_update = "flake update --flake $CHEZMOI_SOURCE_DIR/dot_config/flake && dot_apply"; }; } diff --git a/dot_config/flake/machines/wash/home.nix b/dot_config/flake/machines/wash/home.nix index ef5d576..3021594 100644 --- a/dot_config/flake/machines/wash/home.nix +++ b/dot_config/flake/machines/wash/home.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{...}: { imports = [ ../../home/common.nix @@ -17,8 +17,7 @@ username = "tyler"; homeDirectory = "/home/tyler"; - packages = with pkgs; [ - nom + packages = [ ]; stateVersion = "23.11"; diff --git a/dot_config/flake/overlays/default.nix b/dot_config/flake/overlays/default.nix index 6943f14..bddc121 100644 --- a/dot_config/flake/overlays/default.nix +++ b/dot_config/flake/overlays/default.nix @@ -3,23 +3,6 @@ modifications = final: prev: { mods = { - discord = final.stdenv.mkDerivation { - pname = "discord-wayland"; - version = prev.discord.version; - - buildInputs = [final.makeWrapper]; - nativeBuildInputs = [final.makeWrapper]; - - unpackPhase = "true"; - installPhase = '' - mkdir -p $out/bin - ln -s ${prev.discord}/bin/discord $out/bin/.discord-wrapped - wrapProgram $out/bin/.discord-wrapped \ - --prefix PATH : ${final.lib.makeBinPath [final.xdg-utils final.coreutils]} \ - --add-flags "--enable-features=UseOzonePlatform --ozone-platform=wayland" - ln -s $out/bin/.discord-wrapped $out/bin/discord - ''; - }; }; };