diff --git a/flake.lock b/flake.lock
index df2f5aa..e57feea 100644
--- a/flake.lock
+++ b/flake.lock
@@ -53,11 +53,11 @@
"base16-helix": {
"flake": false,
"locked": {
- "lastModified": 1696727917,
- "narHash": "sha256-FVrbPk+NtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g=",
+ "lastModified": 1720809814,
+ "narHash": "sha256-numb3xigRGnr/deF7wdjBwVg7fpbTH7reFDkJ75AJkY=",
"owner": "tinted-theming",
"repo": "base16-helix",
- "rev": "dbe1480d99fe80f08df7970e471fac24c05f2ddb",
+ "rev": "34f41987bec14c0f3f6b2155c19787b1f6489625",
"type": "github"
},
"original": {
@@ -117,11 +117,11 @@
"blocklist-hosts": {
"flake": false,
"locked": {
- "lastModified": 1720371934,
- "narHash": "sha256-30Hl4Llh1wetlW3au2/bRR+/m5P9D7QvLGFWAYHKbKs=",
+ "lastModified": 1721090606,
+ "narHash": "sha256-tS7CDuotk+aAbtOR1x3u3ymyRvPgb3GZjuDcJNm6lZs=",
"owner": "StevenBlack",
"repo": "hosts",
- "rev": "67448bdb863d266fd6031f1330c8958d84eba1a2",
+ "rev": "87af2c503dbd86ec8b1f7c70ae005a1dae422a60",
"type": "github"
},
"original": {
@@ -472,11 +472,11 @@
]
},
"locked": {
- "lastModified": 1720327769,
- "narHash": "sha256-kAsg3Lg4YKKpGw+f1W2s5hzjP8B0y/juowvjK8utIag=",
+ "lastModified": 1721135958,
+ "narHash": "sha256-H548rpPMsn25LDKn1PCFmPxmWlClJJGnvdzImHkqjuY=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "6b7ce96f34b324e4e104abc30d06955d216bac71",
+ "rev": "afd2021bedff2de92dfce0e257a3d03ae65c603d",
"type": "github"
},
"original": {
@@ -832,7 +832,10 @@
"nix-on-droid",
"nixpkgs"
],
- "nmd": "nmd",
+ "nmd": [
+ "nix-on-droid",
+ "nmd"
+ ],
"nmt": "nmt"
},
"locked": {
@@ -860,14 +863,14 @@
],
"nixpkgs-docs": "nixpkgs-docs",
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap",
- "nmd": "nmd_2"
+ "nmd": "nmd"
},
"locked": {
- "lastModified": 1720396533,
- "narHash": "sha256-UFzk/hZWO1VkciIO5UPaSpJN8s765wsngUSvtJM6d5Q=",
+ "lastModified": 1720964831,
+ "narHash": "sha256-UwVKfjrQ6FWTuqks6lF4+VlzPFDC/GR1Ti/iBKTEQco=",
"owner": "nix-community",
"repo": "nix-on-droid",
- "rev": "f3d3b8294039f2f9a8fb7ea82c320f29c6b0fe25",
+ "rev": "c00333ee42aa2b4d4825e0388a1049fdeeded6c6",
"type": "github"
},
"original": {
@@ -896,11 +899,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1720031269,
- "narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=",
+ "lastModified": 1720957393,
+ "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6",
+ "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb",
"type": "github"
},
"original": {
@@ -943,11 +946,11 @@
},
"nixpkgs-stable": {
"locked": {
- "lastModified": 1720954236,
- "narHash": "sha256-1mEKHp4m9brvfQ0rjCca8P1WHpymK3TOr3v34ydv9bs=",
+ "lastModified": 1721226092,
+ "narHash": "sha256-UBvzVpo5sXSi2S/Av+t+Q+C2mhMIw/LBEZR+d6NMjws=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "53e81e790209e41f0c1efa9ff26ff2fd7ab35e27",
+ "rev": "c716603a63aca44f39bef1986c13402167450e0a",
"type": "github"
},
"original": {
@@ -989,22 +992,6 @@
}
},
"nmd": {
- "flake": false,
- "locked": {
- "lastModified": 1666190571,
- "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=",
- "owner": "rycee",
- "repo": "nmd",
- "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169",
- "type": "gitlab"
- },
- "original": {
- "owner": "rycee",
- "repo": "nmd",
- "type": "gitlab"
- }
- },
- "nmd_2": {
"inputs": {
"nixpkgs": [
"nix-on-droid",
@@ -1351,11 +1338,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
- "lastModified": 1720405186,
- "narHash": "sha256-7D57KwmTIbsopE/1g8hFeIbVoeJGgU3wfuGYvTlNQG4=",
+ "lastModified": 1721269159,
+ "narHash": "sha256-eHrGuKZKQb762qdCkrfoyyxXLKumYhiXJca1ig0RftE=",
"owner": "oxalica",
"repo": "rust-overlay",
- "rev": "f0ca58b37ff4179ce4587589c32205764d9b4a4f",
+ "rev": "c3e217122ac55680606d69bc693bdf262f14f602",
"type": "github"
},
"original": {
@@ -1411,11 +1398,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
- "lastModified": 1719525570,
- "narHash": "sha256-xSO/H67GAHEW0siD2PHoO/e97MbROL3r3s5SpF6A6Dc=",
+ "lastModified": 1720818679,
+ "narHash": "sha256-u9PqY7O6TN42SLeb0e6mnYAgQOoQmclaVSHfLKMpmu0=",
"owner": "danth",
"repo": "stylix",
- "rev": "1ff9d37d27377bfe8994c24a8d6c6c1734ffa116",
+ "rev": "29148118cc33f08b71058e1cda7ca017f5300b51",
"type": "github"
},
"original": {
diff --git a/patches/emacs-no-version-check.patch b/patches/emacs-no-version-check.patch
index 55a363e..d668c95 100644
--- a/patches/emacs-no-version-check.patch
+++ b/patches/emacs-no-version-check.patch
@@ -1,6 +1,6 @@
-diff -crB nixpkgs/pkgs/build-support/emacs/generic.nix nixpkgs-patched/pkgs/build-support/emacs/generic.nix
-*** nixpkgs/pkgs/build-support/emacs/generic.nix 2023-09-08 20:42:24.476059868 -0500
---- nixpkgs-patched/pkgs/build-support/emacs/generic.nix 2023-09-08 21:12:46.637645595 -0500
+diff -crB nixpkgs/pkgs/applications/editors/emacs/build-support/generic.nix nixpkgs-patched/pkgs/applications/editors/emacs/build-support/generic.nix
+*** nixpkgs/pkgs/applications/editors/emacs/build-support/generic.nix 2023-09-08 20:42:24.476059868 -0500
+--- nixpkgs-patched/pkgs/applications/editors/emacs/build-support/generic.nix 2023-09-08 21:12:46.637645595 -0500
***************
*** 3,9 ****
{ lib, stdenv, emacs, texinfo, writeText, gcc, ... }:
diff --git a/profiles/work/home.nix b/profiles/work/home.nix
index af0cfd4..9693c92 100644
--- a/profiles/work/home.nix
+++ b/profiles/work/home.nix
@@ -1,4 +1,4 @@
-{ config, pkgs, pkgs-kdenlive, userSettings, ... }:
+{ config, pkgs, pkgs-stable, pkgs-kdenlive, userSettings, ... }:
{
# Home Manager needs a bit of information about you and the paths it should
@@ -111,19 +111,19 @@
pinta
krita
inkscape
- musikcube
+ (pkgs-stable.lollypop.override { youtubeSupport = false; })
vlc
mpv
yt-dlp
blender-hip
# cura is moderately broken on wayland, so use xwayland
- (pkgs.cura.overrideAttrs (oldAttrs: {
+ (pkgs-stable.cura.overrideAttrs (oldAttrs: {
postInstall = oldAttrs.postInstall + ''cp -rf ${(pkgs.makeDesktopItem {
name = "com.ultimaker.cura";
icon = "cura-icon";
desktopName = "Cura";
- exec = "env QT_QPA_PLATFORM=xcb ${pkgs.cura}/bin/cura %F";
- tryExec = "env QT_QPA_PLATFORM=xcb ${pkgs.cura}/bin/cura";
+ exec = "env QT_QPA_PLATFORM=xcb ${pkgs-stable.cura}/bin/cura %F";
+ tryExec = "env QT_QPA_PLATFORM=xcb ${pkgs-stable.cura}/bin/cura";
terminal = false;
type = "Application";
categories = ["Graphics"];
@@ -133,8 +133,8 @@
"model/gltf+json" "model/vnd.collada+xml+zip"];
})}/share/applications $out/share'';
}))
- (pkgs.writeShellScriptBin "curax" ''env QT_QPA_PLATFORM=xcb ${pkgs.cura}/bin/cura'')
- curaengine_stable
+ (pkgs.writeShellScriptBin "curax" ''env QT_QPA_PLATFORM=xcb ${pkgs-stable.cura}/bin/cura'')
+ (pkgs-stable.curaengine_stable)
openscad
(stdenv.mkDerivation {
name = "cura-slicer";
@@ -154,7 +154,7 @@
sed -i 's+#!/usr/bin/perl+#! /usr/bin/env nix-shell\n#! nix-shell -i perl -p perl538 perl538Packages.JSON+g' $out/bin/cura-slicer
sed -i 's+/usr/share+/home/${userSettings.username}/.nix-profile/share+g' $out/bin/cura-slicer
'';
- propagatedBuildInputs = with pkgs; [
+ propagatedBuildInputs = with pkgs-stable; [
curaengine_stable
];
})
diff --git a/system/wm/fonts.nix b/system/wm/fonts.nix
index d4b1793..ca862c8 100644
--- a/system/wm/fonts.nix
+++ b/system/wm/fonts.nix
@@ -5,7 +5,7 @@
fonts.packages = with pkgs; [
# Fonts
nerdfonts
- powerline
+ # powerline # FIXME broken by python 311 -> 312 nixpkgs update
];
}
diff --git a/user/app/browser/qutebrowser.nix b/user/app/browser/qutebrowser.nix
index e061a79..0b42860 100644
--- a/user/app/browser/qutebrowser.nix
+++ b/user/app/browser/qutebrowser.nix
@@ -116,7 +116,7 @@ if (os.path.isfile(secretFile)):
secretsExists = True
config.set('qt.args',['ignore-gpu-blacklist','enable-gpu-rasterization','enable-native-gpu-memory-buffers','num-raster-threads=4'])
-config.load_autoconfig(False)
+config.load_autoconfig(True)
base00 = "#''+config.lib.stylix.colors.base00+''"
base01 = "#''+config.lib.stylix.colors.base01+''"
diff --git a/user/app/doom-emacs/config.el b/user/app/doom-emacs/config.el
index ec2d418..2b40c02 100644
--- a/user/app/doom-emacs/config.el
+++ b/user/app/doom-emacs/config.el
@@ -1050,13 +1050,12 @@ If the path from LINK does not exist, nil is returned."
;; Custom styles for dates in agenda
(custom-set-faces!
'(org-agenda-date :inherit outline-1 :height 1.15)
- '(org-agenda-date-today :inherit diary :height 1.15)
- '(org-agenda-date-weekend :ineherit outline-2 :height 1.15)
- '(org-agenda-date-weekend-today :inherit outline-4 :height 1.15)
+ '(org-agenda-date-today :inherit outline-2 :height 1.15)
+ '(org-agenda-date-weekend :inherit outline-1 :height 1.15)
+ '(org-agenda-date-weekend-today :inherit outline-2 :height 1.15)
'(org-super-agenda-header :inherit custom-button :weight bold :height 1.05)
`(link :foreground unspecified :underline nil :background ,(nth 1 (nth 7 doom-themes--colors)))
- '(org-link :foreground unspecified)
- )
+ '(org-link :foreground unspecified))
;; Toggle completed entries function
(defun org-agenda-toggle-completed ()
@@ -1503,6 +1502,11 @@ If the path from LINK does not exist, nil is returned."
(require 'nix-mode)
(require 'gdscript-mode)
+(add-hook 'nix-mode-hook 'lsp-deferred)
+(add-hook 'gdscript-mode-hook 'lsp-deferred)
+
+(setq gdscript-godot-executable "godot4")
+
(setq lsp-java-workspace-dir (concat user-home-directory "/.local/share/doom/java-workspace"))
(setq lsp-treemacs-deps-position-params
@@ -1520,6 +1524,37 @@ If the path from LINK does not exist, nil is returned."
(setq +format-on-save-enabled-modes '(not emacs-lisp-mode sql-mode tex-mode latex-mode org-msg-edit-mode nix-mode))
+(defun lsp-booster--advice-json-parse (old-fn &rest args)
+ "Try to parse bytecode instead of json."
+ (or
+ (when (equal (following-char) ?#)
+ (let ((bytecode (read (current-buffer))))
+ (when (byte-code-function-p bytecode)
+ (funcall bytecode))))
+ (apply old-fn args)))
+(advice-add (if (progn (require 'json)
+ (fboundp 'json-parse-buffer))
+ 'json-parse-buffer
+ 'json-read)
+ :around
+ #'lsp-booster--advice-json-parse)
+
+(defun lsp-booster--advice-final-command (old-fn cmd &optional test?)
+ "Prepend emacs-lsp-booster command to lsp CMD."
+ (let ((orig-result (funcall old-fn cmd test?)))
+ (if (and (not test?) ;; for check lsp-server-present?
+ (not (file-remote-p default-directory)) ;; see lsp-resolve-final-command, it would add extra shell wrapper
+ lsp-use-plists
+ (not (functionp 'json-rpc-connection)) ;; native json-rpc
+ (executable-find "emacs-lsp-booster"))
+ (progn
+ (when-let ((command-from-exec-path (executable-find (car orig-result)))) ;; resolve command from exec-path (in case not found in $PATH)
+ (setcar orig-result command-from-exec-path))
+ (message "Using emacs-lsp-booster for %s!" orig-result)
+ (cons "emacs-lsp-booster" orig-result))
+ orig-result)))
+(advice-add 'lsp-resolve-final-command :around #'lsp-booster--advice-final-command)
+
(add-to-list 'tramp-remote-path 'tramp-own-remote-path)
(after! vterm
(add-to-list 'vterm-tramp-shells '("ssh" "zsh")) ;; I use zsh on all my servers
diff --git a/user/app/doom-emacs/doom.nix b/user/app/doom-emacs/doom.nix
index b1544f4..a07b00f 100644
--- a/user/app/doom-emacs/doom.nix
+++ b/user/app/doom-emacs/doom.nix
@@ -47,6 +47,7 @@ in
};
home.packages = (with pkgs-emacs; [
+ emacs-lsp-booster
nil
nixfmt
file
diff --git a/user/app/doom-emacs/doom.org b/user/app/doom-emacs/doom.org
index bb2b94a..8a6172b 100644
--- a/user/app/doom-emacs/doom.org
+++ b/user/app/doom-emacs/doom.org
@@ -1222,13 +1222,12 @@ On Wayland, EAF doesn't work.
;; Custom styles for dates in agenda
(custom-set-faces!
'(org-agenda-date :inherit outline-1 :height 1.15)
- '(org-agenda-date-today :inherit diary :height 1.15)
- '(org-agenda-date-weekend :ineherit outline-2 :height 1.15)
- '(org-agenda-date-weekend-today :inherit outline-4 :height 1.15)
+ '(org-agenda-date-today :inherit outline-2 :height 1.15)
+ '(org-agenda-date-weekend :inherit outline-1 :height 1.15)
+ '(org-agenda-date-weekend-today :inherit outline-2 :height 1.15)
'(org-super-agenda-header :inherit custom-button :weight bold :height 1.05)
`(link :foreground unspecified :underline nil :background ,(nth 1 (nth 7 doom-themes--colors)))
- '(org-link :foreground unspecified)
- )
+ '(org-link :foreground unspecified))
;; Toggle completed entries function
(defun org-agenda-toggle-completed ()
@@ -1775,6 +1774,11 @@ I don't have this active right now since it's kinda weird with pgtk...
(require 'nix-mode)
(require 'gdscript-mode)
+(add-hook 'nix-mode-hook 'lsp-deferred)
+(add-hook 'gdscript-mode-hook 'lsp-deferred)
+
+(setq gdscript-godot-executable "godot4")
+
(setq lsp-java-workspace-dir (concat user-home-directory "/.local/share/doom/java-workspace"))
(setq lsp-treemacs-deps-position-params
@@ -1792,6 +1796,37 @@ I don't have this active right now since it's kinda weird with pgtk...
(setq +format-on-save-enabled-modes '(not emacs-lisp-mode sql-mode tex-mode latex-mode org-msg-edit-mode nix-mode))
+(defun lsp-booster--advice-json-parse (old-fn &rest args)
+ "Try to parse bytecode instead of json."
+ (or
+ (when (equal (following-char) ?#)
+ (let ((bytecode (read (current-buffer))))
+ (when (byte-code-function-p bytecode)
+ (funcall bytecode))))
+ (apply old-fn args)))
+(advice-add (if (progn (require 'json)
+ (fboundp 'json-parse-buffer))
+ 'json-parse-buffer
+ 'json-read)
+ :around
+ #'lsp-booster--advice-json-parse)
+
+(defun lsp-booster--advice-final-command (old-fn cmd &optional test?)
+ "Prepend emacs-lsp-booster command to lsp CMD."
+ (let ((orig-result (funcall old-fn cmd test?)))
+ (if (and (not test?) ;; for check lsp-server-present?
+ (not (file-remote-p default-directory)) ;; see lsp-resolve-final-command, it would add extra shell wrapper
+ lsp-use-plists
+ (not (functionp 'json-rpc-connection)) ;; native json-rpc
+ (executable-find "emacs-lsp-booster"))
+ (progn
+ (when-let ((command-from-exec-path (executable-find (car orig-result)))) ;; resolve command from exec-path (in case not found in $PATH)
+ (setcar orig-result command-from-exec-path))
+ (message "Using emacs-lsp-booster for %s!" orig-result)
+ (cons "emacs-lsp-booster" orig-result))
+ orig-result)))
+(advice-add 'lsp-resolve-final-command :around #'lsp-booster--advice-final-command)
+
#+END_SRC
** Terminal
#+BEGIN_SRC emacs-lisp :tangle config.el
@@ -2136,6 +2171,7 @@ in
};
home.packages = (with pkgs-emacs; [
+ emacs-lsp-booster
nil
nixfmt
file
diff --git a/user/wm/hyprland/hyprland.nix b/user/wm/hyprland/hyprland.nix
index 2f42f0b..e0a06ad 100644
--- a/user/wm/hyprland/hyprland.nix
+++ b/user/wm/hyprland/hyprland.nix
@@ -173,6 +173,11 @@ in
bind=SUPERSHIFT,K,exec,hyprctl kill
bind=SUPER,W,exec,nwg-dock-wrapper
+ bind=,code:172,exec,lollypop -t
+ bind=,code:174,exec,lollypop -s
+ bind=,code:171,exec,lollypop -n
+ bind=,code:173,exec,lollypop -p
+
bind = SUPER,R,pass,^(com\.obsproject\.Studio)$
bind = SUPERSHIFT,R,pass,^(com\.obsproject\.Studio)$
@@ -259,7 +264,7 @@ in
bind=SUPER,Z,exec,pypr toggle term && hyprctl dispatch bringactivetotop
bind=SUPER,F,exec,pypr toggle ranger && hyprctl dispatch bringactivetotop
bind=SUPER,N,exec,pypr toggle numbat && hyprctl dispatch bringactivetotop
- bind=SUPER,M,exec,pypr toggle musikcube && hyprctl dispatch bringactivetotop
+ bind=SUPER,M,exec,pypr toggle music && hyprctl dispatch bringactivetotop
bind=SUPER,B,exec,pypr toggle btm && hyprctl dispatch bringactivetotop
bind=SUPER,D,exec,hypr-element
bind=SUPER,code:172,exec,pypr toggle pavucontrol && hyprctl dispatch bringactivetotop
@@ -275,6 +280,10 @@ in
windowrulev2 = size 85% 90%,class:^(Element)$
windowrulev2 = center,class:^(Element)$
+ windowrulev2 = float,class:^(lollypop)$
+ windowrulev2 = size 85% 90%,class:^(lollypop)$
+ windowrulev2 = center,class:^(lollypop)$
+
$savetodisk = title:^(Save to Disk)$
windowrulev2 = float,$savetodisk
windowrulev2 = size 70% 75%,$savetodisk
@@ -299,6 +308,7 @@ in
windowrulev2 = opacity 1.0,class:^(org.qutebrowser.qutebrowser),fullscreen:1
windowrulev2 = opacity 0.85,class:^(Element)$
+ windowrulev2 = opacity 0.85,class:^(lollypop)$
windowrulev2 = opacity 1.0,class:^(Brave-browser),fullscreen:1
windowrulev2 = opacity 1.0,class:^(librewolf),fullscreen:1
windowrulev2 = opacity 0.85,title:^(My Local Dashboard Awesome Homepage - qutebrowser)$
@@ -726,8 +736,8 @@ in
command = "alacritty --class scratchpad -e numbat"
margin = 50
- [scratchpads.musikcube]
- command = "alacritty --class scratchpad -e musikcube"
+ [scratchpads.music]
+ command = "lollypop"
margin = 50
[scratchpads.btm]
@@ -796,7 +806,7 @@ in
"9" = "";
"scratch_term" = "_";
"scratch_ranger" = "_";
- "scratch_musikcube" = "_";
+ "scratch_music" = "_";
"scratch_btm" = "_";
"scratch_pavucontrol" = "_";
};
@@ -838,7 +848,7 @@ in
clock = {
"interval" = 1;
"format" = "{:%a %Y-%m-%d %I:%M:%S %p}";
- "timezone" = "America/Chicago";
+ "timezone" = systemSettings.timezone;
"tooltip-format" = ''
{:%Y %B}
{calendar}'';