This commit is contained in:
Daniel Ziltener 2024-07-09 20:35:03 +02:00
parent 9067a856af
commit 629245ca0f
Signed by: zilti
GPG key ID: B38976E82C9DAE42
9 changed files with 55 additions and 500 deletions

View file

@ -56,14 +56,16 @@
# services.xserver.enable = true;
services.xserver = {
enable = true;
layout = "de";
xkbOptions = "eurosign;e,caps:escape";
libinput.enable = true;
displayManager = {
sddm.enable = true;
};
xkb.layout = "de";
xkb.options = "eurosign;e,caps:escape";
};
services.displayManager = {
sddm.enable = true;
};
services.libinput.enable = true;
programs.hyprland.enable = true;
services.flatpak.enable = true;
nixpkgs.config.allowUnfree = true;

View file

@ -16,18 +16,6 @@
enable = true;
text = builtins.readFile ./templates;
};
home.file.".emacs.d/lib/smartparens-emacs-lisp.el" = {
enable = true;
text = builtins.readFile ./lib/smartparens-emacs-lisp.el;
};
home.file.".emacs.d/lib/smartparens-scheme.el" = {
enable = true;
text = builtins.readFile ./lib/smartparens-scheme.el;
};
home.file.".emacs.d/lib/smartparens-clojure.el" = {
enable = true;
text = builtins.readFile ./lib/smartparens-clojure.el;
};
programs.emacs = {
enable = true;
package = pkgs.emacs29-pgtk;

View file

@ -1,59 +0,0 @@
;;; smartparens-clojure.el --- Additional configuration for Clojure mode. -*- lexical-binding: t; -*-
;; Copyright (C) 2016, 2018-2019 Vitalie Spinu, Matus Goljer
;; Author: Vitalie Spinu <spinuvit@gmail.com>
;; Maintainer: Matus Goljer <matus.goljer@gmail.com>
;; Created: 14 July 2016
;; Keywords: abbrev convenience editing
;; URL: https://github.com/Fuco1/smartparens
;;
;; This file is not part of GNU Emacs.
;;
;;; License:
;;
;; This file is part of Smartparens.
;;
;; Smartparens is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; Smartparens is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with Smartparens. If not, see <http://www.gnu.org/licenses/>.
;;
;;; Commentary:
;;
;; This file provides some additional configuration for Clojure mode. To use
;; it, simply add:
;;
;; (require 'smartparens-clojure)
;;
;; into your configuration. You can use this in conjunction with the
;; default config or your own configuration.
;;
;;; Code:
(require 'smartparens)
(defvar sp-clojure-prefix "\\(?:[@`'#~,_?^]+\\)"
"Prefix used in `sp-sexp-prefix' for clojure modes.")
(dolist (mode '(clojure-mode clojurescript-mode clojurec-mode cider-repl-mode))
(add-to-list 'sp-sexp-prefix `(,mode regexp ,sp-clojure-prefix)))
;; Match "`" with "`" in strings and comments
(sp-with-modes sp-clojure-modes
(sp-local-pair "'" nil :actions nil)
(sp-local-pair "`" "`"
:when '(sp-in-string-p
sp-in-comment-p)
:unless '(sp-lisp-invalid-hyperlink-p)))
(provide 'smartparens-clojure)
;;; smartparens-clojure.el ends here

View file

@ -1,61 +0,0 @@
;;; smartparens-clojure.el --- Additional configuration for Emacs Lisp mode. -*- lexical-binding: t; -*-
;; Copyright (C) 2023 Daniel Ziltener
;; Author: Daniel Ziltener <dziltener@lyrion.ch>
;; Created: 13 December 2023
;; Keywords: abbrev convenience editing
;; URL: https://github.com/Fuco1/smartparens
;;
;; This file is not part of GNU Emacs.
;;
;;; License:
;;
;; This file is part of Smartparens.
;;
;; Smartparens is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; Smartparens is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with Smartparens. If not, see <http://www.gnu.org/licenses/>.
;;
;;; Commentary:
;;
;; This file provides some additional configuration for Emacs Lisp mode. To use
;; it, simply add:
;;
;; (require 'smartparens-emacs-lisp)
;;
;; into your configuration. You can use this in conjunction with the
;; default config or your own configuration.
;;
;;; Code:
(require 'smartparens)
(defvar sp-emacs-lisp-prefix "\\(?:[@`'#,_]+\\)"
"Prefix used in `sp-sexp-prefix' for emacs lisp mode.")
(defvar sp-emacs-lisp-modes '(emacs-lisp-mode lisp-data-mode)
"List of Emacs Lisp-related modes.")
(dolist (mode sp-emacs-lisp-modes)
(add-to-list 'sp-sexp-prefix `(,mode regexp ,sp-emacs-lisp-prefix)))
;; Match "`" with "`" in strings and comments
(sp-with-modes sp-emacs-lisp-modes
(sp-local-pair "'" nil :actions nil)
(sp-local-pair "`" "`"
:when '(sp-in-string-p
sp-in-comment-p)))
(provide 'smartparens-emacs-lisp)
;;; smartparens-emacs-lisp.el ends here

View file

@ -1,60 +0,0 @@
;;; smartparens-clojure.el --- Additional configuration for Emacs Lisp mode. -*- lexical-binding: t; -*-
;; Copyright (C) 2023 Daniel Ziltener
;; Author: Daniel Ziltener <dziltener@lyrion.ch>
;; Created: 13 December 2023
;; Keywords: abbrev convenience editing
;; URL: https://github.com/Fuco1/smartparens
;;
;; This file is not part of GNU Emacs.
;;
;;; License:
;;
;; This file is part of Smartparens.
;;
;; Smartparens is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; Smartparens is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with Smartparens. If not, see <http://www.gnu.org/licenses/>.
;;
;;; Commentary:
;;
;; This file provides some additional configuration for Emacs Lisp mode. To use
;; it, simply add:
;;
;; (require 'smartparens-scheme)
;;
;; into your configuration. You can use this in conjunction with the
;; default config or your own configuration.
;;
;;; Code:
(require 'smartparens)
(defvar sp-scheme-prefix "\\(?:[@`'#,_]+\\)"
"Prefix used in `sp-sexp-prefix' for emacs lisp mode.")
(defvar sp-scheme-modes '(scheme-mode geiser-mode)
"List of Scheme-related modes.")
(dolist (mode sp-scheme-modes)
(add-to-list 'sp-sexp-prefix `(,mode regexp ,sp-scheme-prefix)))
;; Match "`" with "`" in strings and comments
(sp-with-modes sp-scheme-modes
(sp-local-pair "'" nil :actions nil)
(sp-local-pair "`" "`"
:when '(sp-in-string-p
sp-in-comment-p)))
(provide 'smartparens-scheme)
;;; smartparens-scheme.el ends here

View file

@ -41,181 +41,6 @@
"type": "github"
}
},
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1720108799,
"narHash": "sha256-AxRkTJlbB8r7aG6gvc7IaLhc2T9TO4/8uqanKRxukBQ=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "a5c0d57325c5f0814c39110a70ca19c070ae9486",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprland": {
"inputs": {
"hyprcursor": "hyprcursor",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_2",
"systems": "systems_2",
"xdph": "xdph"
},
"locked": {
"lastModified": 1719317162,
"narHash": "sha256-t3N0VzDJdxchdmHkbGMGqvoxTq/Bm7Y98upU4icPYLY=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "918d8340afd652b011b937d29d5eea0be08467f5",
"type": "github"
},
"original": {
"owner": "hyprwm",
"ref": "v0.41.2",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"xdph",
"nixpkgs"
],
"systems": [
"hyprland",
"xdph",
"systems"
]
},
"locked": {
"lastModified": 1718746314,
"narHash": "sha256-HUklK5u86w2Yh9dOkk4FdsL8eehcOZ95jPhLixGDRQY=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "1b61f0093afff20ab44d88ad707aed8bf2215290",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1720381373,
"narHash": "sha256-lyC/EZdHULsaAKVryK11lgHY9u6pXr7qR4irnxNWC7k=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "5df0174fd09de4ac5475233d65ffc703e89b82eb",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1720472788,
"narHash": "sha256-FZjoeMfgQLeBFGvpaUBnTMP4evAv44LDPr7mv4Tzc04=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "c342d5ca44ec4ecbd39b595d458ea58214b5d871",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1720215857,
"narHash": "sha256-JPdL+Qul+jEueAn8CARfcWP83eJgwkhMejQYfDvrgvU=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "d5fa094ca27e0039be5e94c0a80ae433145af8bb",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"nix-filter": {
"locked": {
"lastModified": 1693833173,
"narHash": "sha256-hlMABKrGbEiJD5dwUSfnw1CQ3bG7KKwDV+Nx3bEZd7U=",
"owner": "numtide",
"repo": "nix-filter",
"rev": "ac030bd9ba98e318e1f4c4328d60766ade8ebe8b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "nix-filter",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1701156937,
@ -233,22 +58,6 @@
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1700612854,
"narHash": "sha256-yrQ8osMD+vDLGFX7pcwsY/Qr5PUd6OmDMYJZzZi0+zc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "19cbff58383a4ae384dea4d1d0c823d72b49d614",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1720386169,
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
@ -268,30 +77,7 @@
"inputs": {
"flatpaks": "flatpaks",
"home-manager": "home-manager",
"hyprland": "hyprland",
"nixpkgs": "nixpkgs_3",
"split-monitor-workspaces": "split-monitor-workspaces"
}
},
"split-monitor-workspaces": {
"inputs": {
"hyprland": [
"hyprland"
],
"nix-filter": "nix-filter"
},
"locked": {
"lastModified": 1698179193,
"narHash": "sha256-zDW+72enuRGuLLRbO1+pYk8FgRjQrBGksIAOk88OwOI=",
"owner": "Duckonaut",
"repo": "split-monitor-workspaces",
"rev": "2b1abdbf9e9de9ee660540167c8f51903fa3d959",
"type": "github"
},
"original": {
"owner": "Duckonaut",
"repo": "split-monitor-workspaces",
"type": "github"
"nixpkgs": "nixpkgs_2"
}
},
"systems": {
@ -309,21 +95,6 @@
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems"
@ -341,32 +112,6 @@
"repo": "flake-utils",
"type": "github"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": "hyprland-protocols",
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1700508250,
"narHash": "sha256-X4o/mifI7Nhu0UKYlxx53wIC+gYDo3pVM9L2u3PE2bE=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "eb120ff25265ecacd0fc13d7dab12131b60d0f47",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
}
},
"root": "root",

View file

@ -23,17 +23,10 @@
url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland = {
url = "github:hyprwm/Hyprland/v0.41.2";
};
hyprsplit = {
url = "github:shezdy/hyprsplit";
inputs.hyprland.follows = "hyprland";
};
flatpaks.url = "github:GermanBread/declarative-flatpak/stable";
};
outputs = inputs@{ nixpkgs, home-manager, hyprland, hyprsplit, flatpaks, ... }: {
outputs = inputs@{ nixpkgs, home-manager, flatpaks, ... }: {
nixosConfigurations = {
"ziltis-desktop" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";

View file

@ -1,4 +1,4 @@
args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }:
args@{ config, pkgs, split-monitor-workspaces, flatpaks, ... }:
{
home.username = "zilti";
@ -40,7 +40,7 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }:
# (nerdfonts.override { fonts = [ "VictorMono" "MPlus" ]; })
nerdfonts
nil
nixfmt
nixfmt-classic
nwg-displays
pciutils
# perl538Packages.DigestHMAC
@ -85,7 +85,7 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }:
home.sessionVariables = {
#PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.local/share/password-store";
PATH = "$PATH:~/.local/bin";
PASSWORD_STORE_DIR = "$XDG_DATA_HOME/password-store";
#PASSWORD_STORE_DIR = "$XDG_DATA_HOME/password-store";
SSH_ASKPASS = "${pkgs.libsForQt5.ksshaskpass}/bin/ksshaskpass";
CHICKEN_DOC_REPOSITORY = "$XDG_DATA_HOME/chicken/doc";
CHICKEN_INSTALL_REPOSITORY = "$XDG_DATA_HOME/chicken/eggs";
@ -268,8 +268,6 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }:
programs.ripgrep = { enable = true; };
programs.gpg = { enable = true; };
home.file.".config/senpai/senpai.scfg" = {
enable = true;
text = ''
@ -280,11 +278,23 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }:
'';
};
home.file.".gnupg/gpg-agent.conf" = {
programs.gpg = {
enable = true;
text = ''
grab
pinentry-program ${pkgs.pinentry-qt}/bin/pinentry-qt
settings = {
utf8-strings = true;
auto-key-retrieve = true;
};
};
services.gpg-agent = {
enable = true;
enableSshSupport = true;
defaultCacheTtl = 7200;
maxCacheTtl = 7200;
defaultCacheTtlSsh = 7200;
maxCacheTtlSsh = 7200;
pinentryPackage = pkgs.pinentry-qt;
extraConfig = ''
allow-emacs-pinentry
allow-loopback-pinentry
'';
@ -295,7 +305,7 @@ args@{ config, pkgs, hyprland, split-monitor-workspaces, flatpaks, ... }:
settings = {
base_url = "vaultwarden.lyrion.ch";
email = "dziltener@lyrion.ch";
pinentry = "qt";
pinentry = pkgs.pinentry-qt;
};
};
@ -494,6 +504,7 @@ services.hypridle = {
timeout = 1200;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, hyprland, wayland, hyprsplit, ... }:
{ config, lib, pkgs, wayland, ... }:
{
@ -12,15 +12,11 @@
# rev = "99a88fd21fac270bd999d4a26cf0f4a4222c58be";
# sha256 = "sha256-07B5QmQmsUKYf38oWU3+2C6KO4JvinuTwmW1Pfk8CT8=";
# } + /themes/${flavour}.conf);
};
# };
wayland.windowManager.hyprland = {
enable = true;
systemd.enable = true;
package = hyprland.packages.${pkgs.system}.hyprland;
plugins = [
hyprsplit.packages.${pkgs.system}.hyprsplit
];
settings = {
source =
[
@ -82,7 +78,7 @@
default_split_ratio = 1.5;
};
master = {
new_is_master = false;
new_status = "slave";
orientation = "center";
workspace = "w[g2] layoutopt:orientation:left";
always_center_master = true;
@ -111,9 +107,9 @@
# Screenshots
#"SHIFT, PRINT, exec, hyprshot -m region"
''
PRINT, exec, ${pkgs.grim}/bin/grim -l 9 -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.swappy}/bin/swappy -f -''
$mainMod, PRINT, exec, ${pkgs.grim}/bin/grim -l 9 -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.swappy}/bin/swappy -f -''
''
SHIFT, PRINT, exec, ${pkgs.grim}/bin/grim -l 9 - | ${pkgs.swappy}/bin/swappy -f -''
$mainMod SHIFT, PRINT, exec, ${pkgs.grim}/bin/grim -l 9 - | ${pkgs.swappy}/bin/swappy -f -''
"$mainMod SHIFT, L, exec, $lockscreen"
# Move focus
"$mainMod, left, movefocus, l"
@ -130,31 +126,31 @@
"$mainMod SHIFT, T, lockactivegroup, toggle"
# Switch workspaces
"$mainMod, 1, split:workspace, 1"
"$mainMod, 2, split:workspace, 2"
"$mainMod, 3, split:workspace, 3"
"$mainMod, 4, split:workspace, 4"
"$mainMod, 5, split:workspace, 5"
"$mainMod, 6, split:workspace, 6"
"$mainMod, 7, split:workspace, 7"
"$mainMod, 8, split:workspace, 8"
"$mainMod, 9, split:workspace, 9"
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
# Move windows to workspaces
"$mainMod SHIFT, 1, split:movetoworkspace, 1"
"$mainMod SHIFT, 2, split:movetoworkspace, 2"
"$mainMod SHIFT, 3, split:movetoworkspace, 3"
"$mainMod SHIFT, 4, split:movetoworkspace, 4"
"$mainMod SHIFT, 5, split:movetoworkspace, 5"
"$mainMod SHIFT, 6, split:movetoworkspace, 6"
"$mainMod SHIFT, 7, split:movetoworkspace, 7"
"$mainMod SHIFT, 8, split:movetoworkspace, 8"
"$mainMod SHIFT, 9, split:movetoworkspace, 9"
"$mainMod SHIFT, 1, movetoworkspace, 1"
"$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod SHIFT, 3, movetoworkspace, 3"
"$mainMod SHIFT, 4, movetoworkspace, 4"
"$mainMod SHIFT, 5, movetoworkspace, 5"
"$mainMod SHIFT, 6, movetoworkspace, 6"
"$mainMod SHIFT, 7, movetoworkspace, 7"
"$mainMod SHIFT, 8, movetoworkspace, 8"
"$mainMod SHIFT, 9, movetoworkspace, 9"
# Scroll through workspaces
"$mainMod, mouse_down, workspace, e+1"
"$mainMod, mouse_up, workspace, e-1"
# Special workspace
"SHIFT ALT, RETURN, togglespecialworkspace"
"SHIFT, S, movetoworkspace, special"
"$mainMod SHIFT, S, movetoworkspace, special"
];
# Mouse bindings