niri updates, some bluetoth

This commit is contained in:
Matt Nish-Lapidus 2025-03-05 10:32:45 -05:00
parent 3a9fea436d
commit e17e8fd886
5 changed files with 339 additions and 264 deletions

48
flake.lock generated
View file

@ -68,11 +68,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1741109012,
"narHash": "sha256-th96gqh+H7HoIgSLn3PpazxFTO8WjuN8IqdYtFrwzDw=",
"lastModified": 1741149197,
"narHash": "sha256-ctL0hvG9EMNW60Uz/EOX7QpmbDHBji4WtAgKl83E7t4=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "40466220218949e1f8b36d6ba44e27644dd6bc14",
"rev": "6429ee53a1c1199637602275c00aca475d8e8057",
"type": "github"
},
"original": {
@ -322,11 +322,11 @@
]
},
"locked": {
"lastModified": 1741056285,
"narHash": "sha256-/JKDMVqq8PIqcGonBVKbKq1SooV3kzGmv+cp3rKAgPA=",
"lastModified": 1741174782,
"narHash": "sha256-dYRebJk58/d5Ej1G6xTOadTfG6tU5zFgXYrLsRJlrgw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "70fbbf05a5594b0a72124ab211bff1d502c89e3f",
"rev": "def0dbbcea715d4514ca343ab4d6d7f3a1742da0",
"type": "github"
},
"original": {
@ -484,11 +484,11 @@
"systems": "systems_2"
},
"locked": {
"lastModified": 1740265014,
"narHash": "sha256-U+8HOPgfrNkFEadoyB9GXSPPFW/Uytvb3TxyqW3JOw4=",
"lastModified": 1741160143,
"narHash": "sha256-XqzfX+Hn1O1d8WypUDIsvqflmhhdXg0Iy9R/XRSBFmo=",
"owner": "hyprwm",
"repo": "hyprlock",
"rev": "e588351d1df57b125fda8d92f5b36a435545bb95",
"rev": "9f37c1c8e9923dff65b4b1771694be3be59b1836",
"type": "github"
},
"original": {
@ -709,11 +709,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1741038776,
"narHash": "sha256-SCsg2krbDYOAZMn2QWYvGPoVgyaFUVTqGWKYNtmv7HI=",
"lastModified": 1741170398,
"narHash": "sha256-l0oWdaphJuzGPePsOZG6YBwRxrGqrZPZ3Ee+QPrEEyY=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "07eb55b6ef73fae9d702e274411079fe7d9ddfaa",
"rev": "7db97394c187e2a23127a45bf7ce8b969055c0db",
"type": "github"
},
"original": {
@ -906,11 +906,11 @@
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1740932899,
"narHash": "sha256-F0qDu2egq18M3edJwEOAE+D+VQ+yESK6YWPRQBfOqq8=",
"lastModified": 1741048562,
"narHash": "sha256-W4YZ3fvWZiFYYyd900kh8P8wU6DHSiwaH0j4+fai1Sk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1546c45c538633ae40b93e2d14e0bb6fd8f13347",
"rev": "6af28b834daca767a7ef99f8a7defa957d0ade6f",
"type": "github"
},
"original": {
@ -938,11 +938,11 @@
},
"nixpkgs-stable_4": {
"locked": {
"lastModified": 1740932899,
"narHash": "sha256-F0qDu2egq18M3edJwEOAE+D+VQ+yESK6YWPRQBfOqq8=",
"lastModified": 1741048562,
"narHash": "sha256-W4YZ3fvWZiFYYyd900kh8P8wU6DHSiwaH0j4+fai1Sk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1546c45c538633ae40b93e2d14e0bb6fd8f13347",
"rev": "6af28b834daca767a7ef99f8a7defa957d0ade6f",
"type": "github"
},
"original": {
@ -1369,11 +1369,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1739246919,
"narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=",
"lastModified": 1741140299,
"narHash": "sha256-Y2bPO92Yg5HcH5ORvrVOQb4wRGEapGEteHXGtNvboxk=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d",
"rev": "10cb041a80bb815cc1789cfa305923f1f9e3713d",
"type": "github"
},
"original": {
@ -1391,11 +1391,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1741103831,
"narHash": "sha256-+xV3vD8f6+UbgqxkWsgeKPXanotBKiBE4mgeznOfFys=",
"lastModified": 1741157000,
"narHash": "sha256-2vbPAs4FBbs+AXEXHVUs9XBD+0OEEU7jaHBPcsGdUgI=",
"owner": "sxyazi",
"repo": "yazi",
"rev": "3606bc7a1f2dcb6ba24810ad58b64e3015485e3f",
"rev": "2b14e55daca5e7d9554f9e9a9f30b204ff877f3b",
"type": "github"
},
"original": {

View file

@ -1,22 +1,21 @@
(in-package #:nyxt-user)
;; inspiration from: https://github.com/aartaka/nyxt-config/blob/master/config.lisp
;;; Reset ASDF registries to allow loading Lisp systems from
;;; everywhere.
#+nyxt-3 (reset-asdf-registries)
(in-package :nyxt-user)
(define-configuration browser
((theme default)))
;; Ad block
(define-configuration :web-buffer
((default-modes
(pushnew 'nyxt/mode/blocker:blocker-mode %slot-value%))))
;; search engine
;; search engines
(defvar *my-search-engines*
(list
'("kagi" "https://kagi.com/search?q=~a" "https://www.kagi.com/")
'("wiki" "https://en.wikipedia.org/w/index.php?search=~a" "https://en.wikipedia.org/")))
'("wiki" "https://en.wikipedia.org/w/index.php?search=~a" "https://en.wikipedia.org/")
'("kagi" "https://kagi.com/search?q=~a" "https://www.kagi.com/")))
(defvar *web-buffer-modes*
'(:blocker-mode
:reduce-tracking-mode))
(define-configuration browser
((restore-session-on-startup-p t)
;; (default-new-buffer-url (quri:uri "https://github.com/atlas-engineer/nyxt"))
(external-editor-program '("emacsclient -r"))))
(define-configuration context-buffer
"Go through the search engines above and make-search-engine"
@ -26,24 +25,25 @@
(lambda (engine) (apply 'make-search-engine engine))
*my-search-engines*)))))
;; auto bookmark frequently visited sites
(define-configuration bookmark-frequent-visits-mode
((threshold 10)))
;; keybindings: small emacs experience in CUA (default mode) of Nyxt
(define-configuration buffer
((override-map (let ((map (make-keymap "override-map")))
(define-key map
"C-space" 'noop
"M-x" 'execute-command
"C-n" 'nyxt/web-mode:scroll-down
"C-p" 'nyxt/web-mode:scroll-up
"C-f" 'nyxt/web-mode:scroll-right
"C-b" 'nyxt/web-mode:scroll-left
"C-g" 'query-selection-in-search-engine
"M-s->" 'nyxt/web-mode:scroll-to-bottom
"M-s-<" 'nyxt/web-mode:scroll-to-top
"C-s" 'nyxt/web-mode:search-buffer
"M-w" 'nyxt/web-mode:copy
"C-y" 'nyxt/web-mode:paste
"C-Y" 'nyxt/web-mode:paste-from-clipboard-ring)))))
;; set web buffer default modes from *web-buffer-modes* above
(define-configuration web-buffer
"Basic modes setup for web-buffer."
((default-modes `(,@*web-buffer-modes* ,@%slot-value%))))
;; (define-configuration bookmark-frequent-visits-mode
;; ((threshold 10)))
(define-configuration hint-mode
"Set up QWERTY home row as the hint keys."
((hints-alphabet "DSJKHLFAGNMXCWEIO")))
(define-configuration prompt-buffer
((hide-single-source-header-p
t
:doc "This is to hide the header is there's only one source.
There also used to be other settings to make prompt-buffer a bit
more minimalist, but those are internal APIs :(")))
;; key binds
;; (defvar mnl-keys (make-keyscheme cua))

View file

@ -147,9 +147,8 @@
ddcutil
ddcui
greetd.tuigreet
nix-config.pkgs-stable.bluez-tools
bluetui
bluez-tools
bluetuith
qemu
quickemu
@ -264,26 +263,19 @@
nvidiaSettings = true;
};
brillo.enable = true;
xpadneo.enable = true;
steam-hardware.enable = true;
bluetooth = {
enable = true;
package = nix-config.pkgs-stable.bluez;
settings = {
General = {
Enable = "Source,Sink,Media,Socket";
AutoEnable = true;
ControllerMode = "bredr";
Privacy = "device";
JustWorksRepairing = "always";
Class = "0x000100";
FastConnectable = true;
};
};
};
};
services.blueman.enable = true;
# services.blueman.enable = true;
services.fstrim.enable = true;

View file

@ -1,18 +1,37 @@
{ config, nix-config, pkgs, ... }:
{
config,
nix-config,
pkgs,
...
}:
with pkgs.lib.nix-rice;
let strPalette = palette.toRGBHex pkgs.rice.colorPalette;
in {
let
strPalette = palette.toRGBHex pkgs.rice.colorPalette;
in
{
programs = {
niri = {
settings = {
hotkey-overlay.skip-at-startup = true;
# hotkey-overlay.skip-at-startup = true;
screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
prefer-no-csd = true;
spawn-at-startup = [
{ command = ["clipse" "-listen"]; }
{ command = [ "systemctl" "--user" "restart" "xwayland-satellite.service" ]; }
{
command = [
"clipse"
"-listen"
];
}
{
command = [
"systemctl"
"--user"
"restart"
"xwayland-satellite.service"
];
}
{ command = [ "sleep5; ${nix-config.packages.x86_64-linux.filen-desktop}/bin/filen-desktop" ]; }
];
@ -104,11 +123,14 @@ in {
{ proportion = 2. / 3.; }
];
default-column-width = { proportion = 0.5; };
default-column-width = {
proportion = 0.5;
};
focus-ring = {
enable = true;
active.color = with pkgs.rice.colorPalette.normal.border;
active.color =
with pkgs.rice.colorPalette.normal.border;
"rgba(${toString r} ${toString g} ${toString b} ${toString a})";
width = 2;
};
@ -174,7 +196,8 @@ in {
};
}
{ # Open the Firefox picture-in-picture player as floating by default.
{
# Open the Firefox picture-in-picture player as floating by default.
# This app-id regular expression will work for both:
# host Firefox (app-id is "firefox")
# Flatpak Firefox (app-id is "org.mozilla.firefox")
@ -182,9 +205,12 @@ in {
open-floating = true;
}
{ matches = [ { app-id="Renoise"; }
{
matches = [
{ app-id = "Renoise"; }
{ app-id = "Bitwig"; }
{ app-id="labwc"; }];
{ app-id = "labwc"; }
];
open-maximized = true;
}
];
@ -194,28 +220,82 @@ in {
lid-open.action = spawn "niri msg output eDP-1 on && shikanectl reload";
};
binds = with config.lib.niri.actions; let
wez = spawn "wezterm" "--config-file" "/home/emenel/.config/wezterm/launcher.lua" "start" "--always-new-process";
binds =
with config.lib.niri.actions;
let
wez =
spawn "wezterm" "--config-file" "/home/emenel/.config/wezterm/launcher.lua" "start"
"--always-new-process";
wezlaunch = wez "--class" "launcher";
in {
in
{
# shows a list of important hotkeys.
"Mod+Shift+Slash".action = show-hotkey-overlay;
"Mod+Space".action = wezlaunch "sway-launcher-desktop";
"Print".action = wezlaunch "sway-launcher-desktop";
"Mod+Space" = {
hotkey-overlay.title = "Launcher";
action = wezlaunch "sway-launcher-desktop";
};
"Mod+Ctrl+T".action = spawn "wezterm";
"Mod+Ctrl+E".action = spawn "emacsclient" "-r" "-n";
"Mod+Ctrl+B".action = spawn "librewolf";
"Mod+Ctrl+V".action = wezlaunch "clipse";
"Mod+Ctrl+F".action = wez "yazi";
"Mod+Ctrl+N".action = spawn "swaync-client" "-t";
"Print" = {
hotkey-overlay.title = "Launcher (alternative key)";
action = wezlaunch "sway-launcher-desktop";
};
"Mod+Shift+A".action = spawn "hyprlock";
"Mod+Ctrl+T" = {
hotkey-overlay.title = "Wezterm";
action = spawn "wezterm";
};
"Mod+Ctrl+E" = {
hotkey-overlay.title = "Emacs (client)";
action = spawn "emacsclient" "-r" "-n";
};
"Mod+Ctrl+B" = {
hotkey-overlay.title = "Librewolf Browser";
action = spawn "librewolf";
};
"Mod+Ctrl+V" = {
hotkey-overlay.title = "Clipboard History";
action = wezlaunch "clipse";
};
"Mod+Ctrl+F" = {
hotkey-overlay.title = "Yazi";
action = wez "yazi";
};
"Mod+Ctrl+N" = {
hotkey-overlay.title = "Notifications";
action = spawn "swaync-client" "-t";
};
"Mod+Ctrl+O" = {
hotkey-overlay.title = "Obsidian";
action = spawn "obsidian";
};
"Mod+Ctrl+S" = {
hotkey-overlay.title = "Signal";
action = spawn "signal";
};
"Mod+Ctrl+C" = {
hotkey-overlay.title = "Calendar";
action = spawn "gnome-calendar";
};
"XF86AudioPlay" = { allow-when-locked = true; action = spawn "playerctl" "play-pause"; };
"XF86AudioNext" = { allow-when-locked = true; action = spawn "playerctl" "next"; };
"XF86AudioPrev" = { allow-when-locked = true; action = spawn "playerctl" "previous"; };
"Mod+Shift+A" = {
hotkey-overlay.title = "Lock Session";
action = spawn "hyprlock";
};
"XF86AudioPlay" = {
allow-when-locked = true;
action = spawn "playerctl" "play-pause";
};
"XF86AudioNext" = {
allow-when-locked = true;
action = spawn "playerctl" "next";
};
"XF86AudioPrev" = {
allow-when-locked = true;
action = spawn "playerctl" "previous";
};
"XF86AudioRaiseVolume" = {
allow-when-locked = true;
@ -362,7 +442,10 @@ in {
# Powers off the monitors. To turn them back on, do any input like
# moving the mouse or pressing any other key.
"Mod+Shift+P".action = power-off-monitors;
"Mod+Shift+Alt+P".action = spawn "niri msg output eDP-1 on";
"Mod+Shift+Alt+P" = {
hotkey-overlay.title = "Turn Laptop Display On";
action = spawn "niri msg output eDP-1 on";
};
};
};
};

View file

@ -38,7 +38,7 @@ in {
"format" = "";
"format-off" = "";
"format-disabled" = "!";
"on-click" = "$HOME/.local/bin/wezlauncher bluetui";
"on-click" = "$HOME/.local/bin/wezapp bluetuith";
"tooltip-format" = "{status}";
};