Compare commits
19 Commits
11a8dfebff
...
nixos
| Author | SHA1 | Date | |
|---|---|---|---|
|
b86cc94d23
|
|||
|
95825c6ff1
|
|||
|
3e7e404d4c
|
|||
|
bb4c77208d
|
|||
|
1f53cd2efb
|
|||
|
d9f8c16011
|
|||
|
4335805701
|
|||
|
|
4a18ae77fc | ||
|
|
5ebf3c9c5e | ||
|
|
f4e5628238 | ||
|
|
bf00621b02 | ||
|
|
ec8d9fafdd | ||
|
539b46393e
|
|||
|
|
e686aef94e | ||
|
54c45411fe
|
|||
|
|
23d6f855ee | ||
|
|
346c304427 | ||
|
0bab44bf04
|
|||
|
5579bf49c3
|
@@ -16,6 +16,7 @@
|
|||||||
domain = {
|
domain = {
|
||||||
natto = "weirdnatto.in";
|
natto = "weirdnatto.in";
|
||||||
amneesh = "amneesh.com";
|
amneesh = "amneesh.com";
|
||||||
|
chutiya = "chutiya.online";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
851
flake.lock
generated
851
flake.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -52,7 +52,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
filehost = {
|
filehost = {
|
||||||
url = "github:natto1784/simpler-filehost";
|
url = "github:natto1784/yamaf";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-gaming.url = "github:fufexan/nix-gaming";
|
nix-gaming.url = "github:fufexan/nix-gaming";
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./pkgs.nix
|
./pkgs.nix
|
||||||
./nixgl.nix
|
./nixgl.nix
|
||||||
# wayland
|
./screen.nix
|
||||||
./wayvnc.nix
|
./wayvnc.nix
|
||||||
|
|
||||||
# From personal
|
# From personal
|
||||||
@@ -26,8 +26,10 @@
|
|||||||
../natto/dunst.nix
|
../natto/dunst.nix
|
||||||
../natto/gtk.nix
|
../natto/gtk.nix
|
||||||
../natto/cursor.nix
|
../natto/cursor.nix
|
||||||
# wayland
|
|
||||||
../natto/wayland.nix
|
../natto/wayland.nix
|
||||||
|
../natto/hypridle.nix
|
||||||
|
../natto/hyprlock.nix
|
||||||
|
../natto/hyprpaper.nix
|
||||||
../natto/hyprland.nix
|
../natto/hyprland.nix
|
||||||
../natto/tofi.nix
|
../natto/tofi.nix
|
||||||
../natto/foot.nix
|
../natto/foot.nix
|
||||||
|
|||||||
@@ -21,5 +21,9 @@ in
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# hyprland
|
||||||
wayland.windowManager.hyprland.package = lib.mkForce (wrap hyprland);
|
wayland.windowManager.hyprland.package = lib.mkForce (wrap hyprland);
|
||||||
|
|
||||||
|
# hypridle
|
||||||
|
services.hypridle.package = lib.mkForce (wrap pkgs.hypridle);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
clang-tools
|
|
||||||
cmake
|
cmake
|
||||||
corkscrew
|
corkscrew
|
||||||
dtc
|
dtc
|
||||||
@@ -23,5 +22,8 @@
|
|||||||
ninja
|
ninja
|
||||||
thunderbird
|
thunderbird
|
||||||
wget
|
wget
|
||||||
|
xfce.thunar
|
||||||
|
libreoffice
|
||||||
|
git-repo
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
12
home/amneesh/screen.nix
Normal file
12
home/amneesh/screen.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
packages = [ pkgs.screen ];
|
||||||
|
|
||||||
|
file = {
|
||||||
|
".screenrc".text = ''
|
||||||
|
defscrollback 10000
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
autosuggestions.color = "fg=yellow,bold";
|
autosuggestions.color = "fg=yellow,bold";
|
||||||
utility.safeOps = false;
|
utility.safeOps = false;
|
||||||
extraConfig = lib.mkBefore ''
|
extraConfig = lib.mkBefore ''
|
||||||
export GREP_COLORS="ms=01;31"
|
export GREP_COLORS="mt=01;31"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
initContent = lib.mkAfter ''
|
initContent = lib.mkAfter ''
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ let
|
|||||||
];
|
];
|
||||||
|
|
||||||
mkPkgs =
|
mkPkgs =
|
||||||
system:
|
system: overlays:
|
||||||
import inputs.nixpkgs {
|
import inputs.nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
config = {
|
config = {
|
||||||
@@ -22,7 +22,7 @@ let
|
|||||||
allowBroken = true;
|
allowBroken = true;
|
||||||
allowInsecure = true;
|
allowInsecure = true;
|
||||||
};
|
};
|
||||||
overlays = [ self.overlays.default ];
|
overlays = overlays ++ [ self.overlays.default ];
|
||||||
};
|
};
|
||||||
|
|
||||||
extraSpecialArgs = globalArgs;
|
extraSpecialArgs = globalArgs;
|
||||||
@@ -37,7 +37,7 @@ in
|
|||||||
{ isLaptop = true; }
|
{ isLaptop = true; }
|
||||||
]
|
]
|
||||||
++ common;
|
++ common;
|
||||||
pkgs = mkPkgs "x86_64-linux";
|
pkgs = mkPkgs "x86_64-linux" [ ];
|
||||||
};
|
};
|
||||||
|
|
||||||
natto = inputs.home-manager.lib.homeManagerConfiguration {
|
natto = inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
@@ -47,7 +47,7 @@ in
|
|||||||
./common/fonts
|
./common/fonts
|
||||||
]
|
]
|
||||||
++ common;
|
++ common;
|
||||||
pkgs = mkPkgs "x86_64-linux";
|
pkgs = mkPkgs "x86_64-linux" [ ];
|
||||||
};
|
};
|
||||||
|
|
||||||
spark = inputs.home-manager.lib.homeManagerConfiguration {
|
spark = inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
@@ -62,7 +62,7 @@ in
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
++ common;
|
++ common;
|
||||||
pkgs = mkPkgs "aarch64-linux";
|
pkgs = mkPkgs "aarch64-linux" [ ];
|
||||||
};
|
};
|
||||||
|
|
||||||
bat = inputs.home-manager.lib.homeManagerConfiguration {
|
bat = inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
@@ -77,7 +77,7 @@ in
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
++ common;
|
++ common;
|
||||||
pkgs = mkPkgs "x86_64-linux";
|
pkgs = mkPkgs "x86_64-linux" [ ];
|
||||||
};
|
};
|
||||||
|
|
||||||
spin = inputs.home-manager.lib.homeManagerConfiguration {
|
spin = inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
@@ -92,7 +92,7 @@ in
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
++ common;
|
++ common;
|
||||||
pkgs = mkPkgs "x86_64-linux";
|
pkgs = mkPkgs "x86_64-linux" [ ];
|
||||||
};
|
};
|
||||||
|
|
||||||
kero = inputs.home-manager.lib.homeManagerConfiguration {
|
kero = inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
@@ -107,7 +107,7 @@ in
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
++ common;
|
++ common;
|
||||||
pkgs = mkPkgs "aarch64-linux";
|
pkgs = mkPkgs "aarch64-linux" [ ];
|
||||||
};
|
};
|
||||||
|
|
||||||
amneesh = inputs.home-manager.lib.homeManagerConfiguration {
|
amneesh = inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
@@ -116,7 +116,7 @@ in
|
|||||||
./amneesh
|
./amneesh
|
||||||
]
|
]
|
||||||
++ common;
|
++ common;
|
||||||
pkgs = mkPkgs "x86_64-linux";
|
pkgs = mkPkgs "x86_64-linux" [ (import ./overlays/standalone.nix) ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#+TITLE: My Emacs Configuration
|
#+TITLE: My Emacs Configuration
|
||||||
#+AUTHOR: Amneesh Singh
|
#+AUTHOR: natto1784
|
||||||
#+PROPERTY: header-args :emacs-lisp :tangle yes
|
#+PROPERTY: header-args :emacs-lisp :tangle yes
|
||||||
|
|
||||||
* Settings
|
* Settings
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
(fringe-mode 0)
|
(fringe-mode 0)
|
||||||
(global-display-line-numbers-mode 1)
|
(global-display-line-numbers-mode 1)
|
||||||
(xterm-mouse-mode 1)
|
(xterm-mouse-mode 1)
|
||||||
|
(electric-pair-mode)
|
||||||
(setq ring-bell-function 'ignore
|
(setq ring-bell-function 'ignore
|
||||||
gc-cons-threshold most-positive-fixnum
|
gc-cons-threshold most-positive-fixnum
|
||||||
initial-major-mode 'fundamental-mode)
|
initial-major-mode 'fundamental-mode)
|
||||||
@@ -33,7 +34,9 @@
|
|||||||
scroll-step 1
|
scroll-step 1
|
||||||
display-line-numbers-type 'relative
|
display-line-numbers-type 'relative
|
||||||
confirm-kill-processes nil
|
confirm-kill-processes nil
|
||||||
inhibit-startup-screen t)
|
inhibit-startup-screen t
|
||||||
|
isearch-lazy-count t
|
||||||
|
lazy-count-prefix-format "[%s/%s] ")
|
||||||
(setq-default tab-width 2
|
(setq-default tab-width 2
|
||||||
indent-tabs-mode nil)
|
indent-tabs-mode nil)
|
||||||
#+end_src
|
#+end_src
|
||||||
@@ -57,8 +60,7 @@
|
|||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package benchmark-init
|
(use-package benchmark-init
|
||||||
:config
|
:config
|
||||||
;; To disable collection of benchmark data after init is done.
|
(add-hook 'after-init-hook 'benchmark-init/deactivate) )
|
||||||
:init (benchmark-init/deactivate))
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Visual packages
|
** Visual packages
|
||||||
@@ -78,6 +80,15 @@
|
|||||||
(dark-theme t))
|
(dark-theme t))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** Indent guides
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package highlight-indent-guides
|
||||||
|
:config
|
||||||
|
(setq highlight-indent-guides-method 'column)
|
||||||
|
:hook
|
||||||
|
(prog-mode . highlight-indent-guides-mode))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Minibuffer
|
** Minibuffer
|
||||||
Enable vertico
|
Enable vertico
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
@@ -89,6 +100,13 @@ Enable vertico
|
|||||||
("C-k" . vertico-previous)))
|
("C-k" . vertico-previous)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
Save history over restarts
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package savehist
|
||||||
|
:init
|
||||||
|
(savehist-mode))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
Marginalia for description
|
Marginalia for description
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package marginalia
|
(use-package marginalia
|
||||||
@@ -131,6 +149,7 @@ Consult
|
|||||||
(use-package evil
|
(use-package evil
|
||||||
:init
|
:init
|
||||||
(setq-default evil-shift-width 2)
|
(setq-default evil-shift-width 2)
|
||||||
|
(setq evil-want-keybinding nil)
|
||||||
:config
|
:config
|
||||||
(evil-set-initial-state 'vterm-mode 'insert)
|
(evil-set-initial-state 'vterm-mode 'insert)
|
||||||
(evil-set-undo-system 'undo-tree)
|
(evil-set-undo-system 'undo-tree)
|
||||||
@@ -183,7 +202,9 @@ To undo and redo easily like vi
|
|||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package lsp-mode
|
(use-package lsp-mode
|
||||||
:defer t
|
:defer t
|
||||||
:commands lsp)
|
:commands lsp
|
||||||
|
:init (setq lsp-enable-on-type-formatting nil)
|
||||||
|
:hook (prog-mode . lsp-deferred))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** Configure lsp-ui
|
*** Configure lsp-ui
|
||||||
@@ -225,7 +246,6 @@ For autocomplete
|
|||||||
(add-to-list 'company-backends 'company-dabbrev)
|
(add-to-list 'company-backends 'company-dabbrev)
|
||||||
(setq company-backends (append '(company-files) (remove 'company-files company-backends)))
|
(setq company-backends (append '(company-files) (remove 'company-files company-backends)))
|
||||||
:hook (after-init . global-company-mode))
|
:hook (after-init . global-company-mode))
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** Configure company-quickhelp
|
*** Configure company-quickhelp
|
||||||
@@ -256,6 +276,8 @@ For autocomplete
|
|||||||
|
|
||||||
** Languages
|
** Languages
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
(use-package dts-mode
|
||||||
|
:mode ("\\.dts\\'" "\\.dtsi\\'" "\\.overlay\\'"))
|
||||||
(use-package lsp-haskell
|
(use-package lsp-haskell
|
||||||
:mode "\\.hs\\'")
|
:mode "\\.hs\\'")
|
||||||
(use-package lsp-latex
|
(use-package lsp-latex
|
||||||
@@ -276,11 +298,26 @@ For autocomplete
|
|||||||
:mode "\\.go\\'")
|
:mode "\\.go\\'")
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Magit
|
** Git
|
||||||
|
magit for git operations
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package magit :defer t)
|
(use-package magit :defer t)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
blamer for git blame
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package blamer
|
||||||
|
:defer 20
|
||||||
|
:custom
|
||||||
|
(blamer-idle-time 0.3)
|
||||||
|
(blamer-min-offset 70)
|
||||||
|
:config
|
||||||
|
(global-blamer-mode 1)
|
||||||
|
:init
|
||||||
|
(setq blamer-show-avatar-p nil
|
||||||
|
blamer-max-commit-message-length 72))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** VTerm
|
** VTerm
|
||||||
*** Configure vterm
|
*** Configure vterm
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
@@ -331,26 +368,64 @@ Do not use centaur tabs for now
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Misc packages
|
** Misc packages
|
||||||
#+begin_src emacs-lisp
|
*** Icons
|
||||||
|
For installing icons
|
||||||
|
#+begin_src emacs-lisp
|
||||||
(use-package all-the-icons
|
(use-package all-the-icons
|
||||||
|
:defer t
|
||||||
:if (display-graphic-p))
|
:if (display-graphic-p))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
(use-package elcord :defer t)
|
*** Projectile
|
||||||
|
For tracking project root
|
||||||
|
#+begin_src emacs-lisp
|
||||||
(use-package projectile
|
(use-package projectile
|
||||||
:defer t
|
:defer t
|
||||||
:config
|
:config
|
||||||
(define-key projectile-mode-map (kbd "C-x p") 'projectile-command-map)
|
(define-key projectile-mode-map (kbd "C-x p") 'projectile-command-map)
|
||||||
(projectile-mode +1))
|
(projectile-mode +1))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Rainbow
|
||||||
|
For highlighting colors
|
||||||
|
#+begin_src emacs-lisp
|
||||||
(use-package rainbow-mode :defer t)
|
(use-package rainbow-mode :defer t)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Rainbow delimiters
|
||||||
|
To make distinguishing parens easier
|
||||||
|
#+begin_src emacs-lisp
|
||||||
(use-package rainbow-delimiters
|
(use-package rainbow-delimiters
|
||||||
:hook (prog-mode . rainbow-delimiters-mode))
|
:hook (prog-mode . rainbow-delimiters-mode))
|
||||||
|
|
||||||
(use-package flex-autopair)
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** Olivetti
|
||||||
|
When you want write prose or something similar
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package olivetti
|
||||||
|
:defer t
|
||||||
|
:diminish olivetti-mode
|
||||||
|
:custom
|
||||||
|
(olivetti-body-width 100)
|
||||||
|
(olivetti-minimum-body-width 50)
|
||||||
|
(olivetti-style 'fancy)
|
||||||
|
(olivetti-recall-visual-line-mode-entry-state t)
|
||||||
|
:config
|
||||||
|
(defvar-local my/olivetti--saved-line-numbers nil
|
||||||
|
"Stores the previous value of `display-line-numbers` before enabling Olivetti.")
|
||||||
|
|
||||||
|
(defun my/olivetti-toggle-line-numbers ()
|
||||||
|
"Hide line numbers when entering Olivetti, restore when exiting."
|
||||||
|
(if olivetti-mode
|
||||||
|
(progn
|
||||||
|
(setq my/olivetti--saved-line-numbers display-line-numbers)
|
||||||
|
(setq display-line-numbers nil))
|
||||||
|
(setq display-line-numbers my/olivetti--saved-line-numbers)))
|
||||||
|
|
||||||
|
(add-hook 'olivetti-mode-hook #'my/olivetti-toggle-line-numbers))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
** Org
|
** Org
|
||||||
** Add org-mode
|
** Add org-mode
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
@@ -398,22 +473,31 @@ Do not use centaur tabs for now
|
|||||||
(latex . t)))
|
(latex . t)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
* Mode specific hooks
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(add-hook 'c-mode-hook 'lsp)
|
|
||||||
(add-hook 'c++-mode-hook 'lsp)
|
|
||||||
(add-hook 'haskell-mode-hook #'lsp)
|
|
||||||
(add-hook 'haskell-literate-mode-hook #'lsp)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
* Random eye candy stuff
|
* Random eye candy stuff
|
||||||
|
* Mode line
|
||||||
* Custom mode line
|
** Doom modeline
|
||||||
switched to doom modeline after using my own modeline for a while
|
Switched to doom modeline after using my own modeline for a while
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package doom-modeline
|
(use-package doom-modeline
|
||||||
:init (doom-modeline-mode 1))
|
:init (doom-modeline-mode 1))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
Also show columns
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(column-number-mode 1)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Nyan Mode
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package nyan-mode
|
||||||
|
:ensure t
|
||||||
|
:init
|
||||||
|
(when (display-graphic-p)
|
||||||
|
(nyan-mode 1))
|
||||||
|
:custom
|
||||||
|
(nyan-animate-nyancat t)
|
||||||
|
:config
|
||||||
|
(nyan-start-animation))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
* Pop-up terminal
|
* Pop-up terminal
|
||||||
Stolen from [[https://www.reddit.com/r/emacs/comments/ft84xy/run_shell_command_in_new_vterm/][this]] reddit post
|
Stolen from [[https://www.reddit.com/r/emacs/comments/ft84xy/run_shell_command_in_new_vterm/][this]] reddit post
|
||||||
@@ -441,33 +525,35 @@ Stolen from [[https://www.reddit.com/r/emacs/comments/ft84xy/run_shell_command_i
|
|||||||
(vterm-send-return)))
|
(vterm-send-return)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
Compilation shortcuts for standalone files
|
* LLMs
|
||||||
|
** gptel
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun candrun ()
|
(use-package gptel
|
||||||
(let ((full buffer-file-name)
|
:defer t
|
||||||
(file (file-name-sans-extension buffer-file-name)))
|
:config
|
||||||
(pcase (file-name-extension full)
|
(setq gptel-model 'claude-sonnet-4-20250514
|
||||||
("c" (concat "gcc " full " -lm -pthread -o " file " && " file " && rm " file))
|
gptel-backend (gptel-make-anthropic "Claude"
|
||||||
("java" (concat "java " full))
|
:stream t
|
||||||
("py" (concat "python " full))
|
:protocol "https"
|
||||||
("cpp" (concat "g++ " full " -o " file " && " file " && rm " file))
|
:key (getenv "ANTHROPIC_API_KEY")
|
||||||
("cc" (concat "g++ " full " -o " file " && " file " && rm " file))
|
:host (getenv "ANTHROPIC_API_BASE_DOMAIN")))
|
||||||
("hs" (concat "runhaskell " full))
|
(setq gptel-default-mode 'org-mode)
|
||||||
("sh" (concat "sh " full))
|
:bind (("C-c g" . gptel)))
|
||||||
("js" (concat "node " full))
|
|
||||||
("ts" (concat "tsc " full " && node " file ".js && rm " file ".js" ))
|
|
||||||
("rs" (concat "rustc " full " -o " file " && " file " && rm " file)))))
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
* Custom Functions
|
** Aidermacs
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun detach-process ()
|
(use-package aidermacs
|
||||||
"Run processes but detached from the parent"
|
:defer t
|
||||||
(interactive)
|
:bind (("C-c a" . aidermacs-transient-menu))
|
||||||
(let ((command (read-string "Enter command:")))
|
:custom
|
||||||
(call-process-shell-command (concat command " &") nil 0)))
|
; See the Configuration section below
|
||||||
|
(aidermacs-default-chat-mode 'architect)
|
||||||
|
(aidermacs-default-model "sonnet"))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
* Keybinds
|
* Keybinds
|
||||||
** General
|
** General
|
||||||
*** Colemak translations
|
*** Colemak translations
|
||||||
@@ -528,8 +614,7 @@ not using this anymore
|
|||||||
"<f4>" (lambda () (interactive) (vterm t))
|
"<f4>" (lambda () (interactive) (vterm t))
|
||||||
"C-S-t" 'vterm-toggle-cd
|
"C-S-t" 'vterm-toggle-cd
|
||||||
"C-t" 'vterm-toggle
|
"C-t" 'vterm-toggle
|
||||||
"<f1>" 'vterm-toggle
|
"<f1>" 'vterm-toggle)
|
||||||
"<f5>" (lambda () (interactive) (run-in-vterm (candrun))))
|
|
||||||
(general-define-key
|
(general-define-key
|
||||||
:keymaps 'vterm-mode-map
|
:keymaps 'vterm-mode-map
|
||||||
"<f3>" 'vterm-toggle-forward
|
"<f3>" 'vterm-toggle-forward
|
||||||
|
|||||||
@@ -1,173 +0,0 @@
|
|||||||
monitor=, highrr, auto, 1
|
|
||||||
|
|
||||||
input {
|
|
||||||
kb_layout = us,us
|
|
||||||
kb_variant = colemak_dh,
|
|
||||||
kb_model =
|
|
||||||
kb_options = grp:rctrl_toggle
|
|
||||||
kb_rules =
|
|
||||||
|
|
||||||
follow_mouse = 1
|
|
||||||
|
|
||||||
touchpad {
|
|
||||||
natural_scroll = yes
|
|
||||||
scroll_factor = 0.4
|
|
||||||
}
|
|
||||||
|
|
||||||
repeat_delay = 300
|
|
||||||
accel_profile = flat
|
|
||||||
}
|
|
||||||
|
|
||||||
general {
|
|
||||||
gaps_in = 5
|
|
||||||
gaps_out = 10
|
|
||||||
border_size = 2
|
|
||||||
|
|
||||||
# home-manager is going to override these
|
|
||||||
col.active_border = rgba(b4befeee) rgba(f5c2e7ff) 135deg
|
|
||||||
col.inactive_border = rgba(595959ff)
|
|
||||||
|
|
||||||
layout = dwindle
|
|
||||||
}
|
|
||||||
|
|
||||||
decoration {
|
|
||||||
rounding = 1
|
|
||||||
inactive_opacity = 0.8
|
|
||||||
|
|
||||||
shadow {
|
|
||||||
enabled = true
|
|
||||||
}
|
|
||||||
|
|
||||||
blur {
|
|
||||||
enabled = true
|
|
||||||
size = 8
|
|
||||||
new_optimizations = true
|
|
||||||
xray = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
animations {
|
|
||||||
enabled = yes
|
|
||||||
|
|
||||||
bezier =overshot,0.01, 0.9, 0.1, 1.05
|
|
||||||
bezier =easeoutexpo,0.16, 1, 0.3, 1
|
|
||||||
|
|
||||||
animation = windows, 1, 7, overshot, popin 50%
|
|
||||||
animation = windowsOut, 1, 7, easeoutexpo, popin 50%
|
|
||||||
animation = border, 1, 10, default
|
|
||||||
animation = fade, 1, 7, default
|
|
||||||
animation = workspaces, 1, 6, overshot
|
|
||||||
}
|
|
||||||
|
|
||||||
cursor {
|
|
||||||
no_hardware_cursors = true
|
|
||||||
}
|
|
||||||
|
|
||||||
dwindle {
|
|
||||||
pseudotile = yes
|
|
||||||
preserve_split = yes
|
|
||||||
}
|
|
||||||
|
|
||||||
gestures {
|
|
||||||
workspace_swipe = off
|
|
||||||
}
|
|
||||||
|
|
||||||
misc {
|
|
||||||
disable_hyprland_logo = true
|
|
||||||
}
|
|
||||||
|
|
||||||
$mainMod=SUPER
|
|
||||||
|
|
||||||
binde=$mainMod, RETURN, exec, foot
|
|
||||||
bindr=SUPER, D, exec, pkill tofi || tofi-drun | xargs hyprctl dispatch exec --
|
|
||||||
bindr=SUPER SHIFT, D, exec, pkill tofi || tofi-run --require-match=false | xargs hyprctl dispatch exec --
|
|
||||||
|
|
||||||
$playerctl=playerctl -p 'playerctld,%any'
|
|
||||||
|
|
||||||
bind=$mainMod, P, exec, $playerctl play-pause
|
|
||||||
bind=, XF86AudioPlay, exec, $playerctl play-pause
|
|
||||||
bind=, XF86AudioNext, exec, $playerctl position 5+
|
|
||||||
bind=, XF86AudioPrev, exec, $playerctl position 5-
|
|
||||||
bind=$mainMod, XF86AudioNext, exec, $playerctl next
|
|
||||||
bind=$mainMod, XF86AudioPrev, exec, $playerctl previous
|
|
||||||
binde=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
|
||||||
binde=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
|
||||||
bind=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
|
||||||
|
|
||||||
binde=, XF86MonBrightnessUp, exec, light -A 5
|
|
||||||
binde=, XF86MonBrightnessDown, exec, light -U 5
|
|
||||||
|
|
||||||
bind=$mainMod SHIFT, F1, exec, setxkbmap us colemak_dh
|
|
||||||
bind=$mainMod SHIFT, F2, exec, setxkbmap us basic
|
|
||||||
bind=$mainMod SHIFT, F3, exec, setxkbmap in deva
|
|
||||||
bind=$mainMod SHIFT, F4, exec, setxkbmap in guru
|
|
||||||
bind=$mainMod SHIFT, F5, exec, setxkbmap colemak dhz
|
|
||||||
|
|
||||||
bind=, PRINT, exec, grimblast --notify copysave screen
|
|
||||||
bind=SHIFT, PRINT, exec, grimblast --notify copysave area
|
|
||||||
|
|
||||||
binde=$mainMod SHIFT, Q, killactive,
|
|
||||||
bind=$mainMod ALT, f, exit,
|
|
||||||
bind=$mainMod SHIFT, t, pseudo,
|
|
||||||
bind=$mainMod, f, fullscreen,
|
|
||||||
bind=$mainMod, t, togglefloating,
|
|
||||||
|
|
||||||
bindm=SUPER, mouse:272, movewindow
|
|
||||||
bindm=SUPER, mouse:273, resizewindow
|
|
||||||
|
|
||||||
bind=$mainMod, left, movefocus, l
|
|
||||||
bind=$mainMod, h, movefocus, l
|
|
||||||
bind=$mainMod, right, movefocus, r
|
|
||||||
bind=$mainMod, l, movefocus, r
|
|
||||||
bind=$mainMod, up, movefocus, u
|
|
||||||
bind=$mainMod, k, movefocus, u
|
|
||||||
bind=$mainMod, down, movefocus, d
|
|
||||||
bind=$mainMod, j, movefocus, d
|
|
||||||
|
|
||||||
binde=$mainMod SHIFT, left, movewindow, l
|
|
||||||
binde=$mainMod SHIFT, h, movewindow, l
|
|
||||||
binde=$mainMod SHIFT, right, movewindow, r
|
|
||||||
binde=$mainMod SHIFT, l, movewindow, r
|
|
||||||
binde=$mainMod SHIFT, up, movewindow, u
|
|
||||||
binde=$mainMod SHIFT, k, movewindow, u
|
|
||||||
binde=$mainMod SHIFT, down, movewindow, d
|
|
||||||
binde=$mainMod SHIFT, j, movewindow, d
|
|
||||||
|
|
||||||
binde=SHIFT ALT, left, resizeactive, -10 0
|
|
||||||
binde=SHIFT ALT, h, resizeactive, -10 0
|
|
||||||
binde=SHIFT ALT, right, resizeactive, 10 0
|
|
||||||
binde=SHIFT ALT, l, resizeactive, 10 0
|
|
||||||
binde=SHIFT ALT, up, resizeactive, 0 -10
|
|
||||||
binde=SHIFT ALT, k, resizeactive, 0 -10
|
|
||||||
binde=SHIFT ALT, down, resizeactive, 0 10
|
|
||||||
binde=SHIFT ALT, j, resizeactive, 0 10
|
|
||||||
|
|
||||||
bind=$mainMod, 1, workspace, 1
|
|
||||||
bind=$mainMod, 2, workspace, 2
|
|
||||||
bind=$mainMod, 3, workspace, 3
|
|
||||||
bind=$mainMod, 4, workspace, 4
|
|
||||||
bind=$mainMod, 5, workspace, 5
|
|
||||||
bind=$mainMod, 6, workspace, 6
|
|
||||||
bind=$mainMod, 7, workspace, 7
|
|
||||||
bind=$mainMod, 8, workspace, 8
|
|
||||||
bind=$mainMod, 9, workspace, 9
|
|
||||||
bind=$mainMod, 0, workspace, 10
|
|
||||||
|
|
||||||
bind=$mainMod SHIFT, 1, movetoworkspacesilent, 1
|
|
||||||
bind=$mainMod SHIFT, 2, movetoworkspacesilent, 2
|
|
||||||
bind=$mainMod SHIFT, 3, movetoworkspacesilent, 3
|
|
||||||
bind=$mainMod SHIFT, 4, movetoworkspacesilent, 4
|
|
||||||
bind=$mainMod SHIFT, 5, movetoworkspacesilent, 5
|
|
||||||
bind=$mainMod SHIFT, 6, movetoworkspacesilent, 6
|
|
||||||
bind=$mainMod SHIFT, 7, movetoworkspacesilent, 7
|
|
||||||
bind=$mainMod SHIFT, 8, movetoworkspacesilent, 8
|
|
||||||
bind=$mainMod SHIFT, 9, movetoworkspacesilent, 9
|
|
||||||
bind=$mainMod SHIFT, 0, movetoworkspacesilent, 10
|
|
||||||
|
|
||||||
bind=$mainMod SHIFT, comma, focusmonitor, -1
|
|
||||||
bind=$mainMod SHIFT, period, focusmonitor, +1
|
|
||||||
|
|
||||||
bind=CTRL ALT, r, pass, ^(com\.obsproject\.Studio)$
|
|
||||||
|
|
||||||
exec-once=eww open bar
|
|
||||||
exec-once=swaybg -i ~/Wallpapers/current.*
|
|
||||||
@@ -28,6 +28,9 @@
|
|||||||
|
|
||||||
# when wayland
|
# when wayland
|
||||||
./wayland.nix
|
./wayland.nix
|
||||||
|
./hyprpaper.nix
|
||||||
|
./hyprlock.nix
|
||||||
|
./hypridle.nix
|
||||||
./hyprland.nix
|
./hyprland.nix
|
||||||
./foot.nix
|
./foot.nix
|
||||||
./tofi.nix
|
./tofi.nix
|
||||||
|
|||||||
@@ -24,11 +24,21 @@ in
|
|||||||
alwaysEnsure = true;
|
alwaysEnsure = true;
|
||||||
alwaysTangle = true;
|
alwaysTangle = true;
|
||||||
defaultInitFile = true;
|
defaultInitFile = true;
|
||||||
extraEmacsPackages =
|
extraEmacsPackages = epkgs: with epkgs; [
|
||||||
epkgs: with epkgs; [
|
|
||||||
use-package
|
use-package
|
||||||
(tree-sitter-langs.withPlugins (_: tree-sitter-langs.plugins))
|
(tree-sitter-langs.withPlugins (_: tree-sitter-langs.plugins))
|
||||||
];
|
];
|
||||||
|
|
||||||
|
override = final: prev: {
|
||||||
|
evil = prev.melpaPackages.evil.overrideAttrs(_: {
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "natto1784";
|
||||||
|
repo = "evil";
|
||||||
|
rev = "isearch-lazy-count";
|
||||||
|
sha256 = "sha256-YqXoqPqOWRvszzktb0MYHMe590mzTQxCMgBloy3MHkQ=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services.emacs = {
|
services.emacs = {
|
||||||
|
|||||||
@@ -26,24 +26,23 @@
|
|||||||
};
|
};
|
||||||
Service =
|
Service =
|
||||||
let
|
let
|
||||||
deps =
|
deps = [
|
||||||
[
|
config.programs.eww.package
|
||||||
config.programs.eww.package
|
]
|
||||||
]
|
++ lib.optional config.wayland.windowManager.hyprland.enable config.wayland.windowManager.hyprland.package
|
||||||
++ lib.optional config.wayland.windowManager.hyprland.enable config.wayland.windowManager.hyprland.package
|
++ (with pkgs; [
|
||||||
++ (with pkgs; [
|
coreutils
|
||||||
coreutils
|
bash
|
||||||
bash
|
jq
|
||||||
jq
|
less
|
||||||
less
|
gawk
|
||||||
gawk
|
socat
|
||||||
socat
|
playerctl
|
||||||
playerctl
|
networkmanager
|
||||||
networkmanager
|
iwgtk
|
||||||
iwgtk
|
wireplumber
|
||||||
wireplumber
|
])
|
||||||
])
|
++ lib.optional config.laptop pkgs.light;
|
||||||
++ lib.optional config.laptop pkgs.light;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
font = "Fira Mono:style=Regular:pixelsize=18";
|
font = "Fira Mono:style=Regular:pixelsize=18";
|
||||||
font-bold = "Fira Mono:style=Bold:pixelsize=18";
|
font-bold = "Fira Mono:style=Bold:pixelsize=18";
|
||||||
};
|
};
|
||||||
scrollback.lines = 4000;
|
scrollback.lines = 10000;
|
||||||
colors = with conf.colors.default; {
|
colors = with conf.colors.default; {
|
||||||
inherit foreground background;
|
inherit foreground background;
|
||||||
regular0 = surface1;
|
regular0 = surface1;
|
||||||
|
|||||||
29
home/natto/hypridle.nix
Normal file
29
home/natto/hypridle.nix
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
lock = "${pkgs.systemd}/bin/loginctl lock-session";
|
||||||
|
timeout = 300;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# screen idle
|
||||||
|
services.hypridle = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
before_sleep_cmd = lock;
|
||||||
|
lock_cmd = "pgrep hyprlock || ${config.programs.hyprlock.package}/bin/hyprlock";
|
||||||
|
};
|
||||||
|
|
||||||
|
listener = [
|
||||||
|
{
|
||||||
|
timeout = timeout;
|
||||||
|
on-timeout = lock;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
|
lib,
|
||||||
conf,
|
conf,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
@@ -10,32 +11,197 @@
|
|||||||
windowManager = {
|
windowManager = {
|
||||||
hyprland = {
|
hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
|
|
||||||
portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
|
portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
|
||||||
|
|
||||||
xwayland = {
|
xwayland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
extraConfig =
|
|
||||||
(builtins.readFile ./config/hypr/hyprland.conf)
|
settings = {
|
||||||
+ (with config.home.pointerCursor; ''
|
monitor = ", highrr, auto, 1";
|
||||||
exec-once=hyprctl setcursor ${name} ${toString size}
|
|
||||||
'')
|
input = {
|
||||||
+ (with conf.colors.argb { a = "ee"; }; ''
|
kb_layout = "us,us";
|
||||||
general {
|
kb_variant = "colemak_dh";
|
||||||
col.active_border = 0x${mauve} 0x${flamingo} 135deg
|
kb_model = "";
|
||||||
col.inactive_border = 0x${surface0}
|
kb_options = "grp:rctrl_toggle";
|
||||||
}
|
kb_rules = "";
|
||||||
'');
|
repeat_delay = 300;
|
||||||
|
accel_profile = "flat";
|
||||||
|
follow_mouse = true;
|
||||||
|
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = true;
|
||||||
|
scroll_factor = 0.4;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
general = with conf.colors.argb { a = "ee"; }; {
|
||||||
|
gaps_in = 5;
|
||||||
|
gaps_out = 10;
|
||||||
|
border_size = 2;
|
||||||
|
layout = "dwindle";
|
||||||
|
"col.active_border" = "0x${mauve} 0x${flamingo} 135deg";
|
||||||
|
"col.inactive_border" = "0x${surface0}";
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 1;
|
||||||
|
inactive_opacity = 0.8;
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
size = 8;
|
||||||
|
new_optimizations = true;
|
||||||
|
xray = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
|
||||||
|
bezier = [
|
||||||
|
"overshot,0.01,0.9,0.1,1.05"
|
||||||
|
"easeoutexpo,0.16,1,0.3,1"
|
||||||
|
];
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"windows,1,7,overshot,popin 50%"
|
||||||
|
"windowsOut,1,7,easeoutexpo,popin 50%"
|
||||||
|
"border,1,10,default"
|
||||||
|
"fade,1,7,default"
|
||||||
|
"workspaces,1,6,overshot"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
cursor = {
|
||||||
|
no_hardware_cursors = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
pseudotile = true;
|
||||||
|
preserve_split = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
|
bind =
|
||||||
|
let
|
||||||
|
playerctl = "playerctl -p 'playerctld,%any'";
|
||||||
|
in
|
||||||
|
[
|
||||||
|
# Hyprland operations
|
||||||
|
"$mod ALT, f, exit,"
|
||||||
|
"$mod SHIFT, t, pseudo,"
|
||||||
|
"$mod, f, fullscreen,"
|
||||||
|
"$mod, t, togglefloating,"
|
||||||
|
"$mod, left, movefocus, l"
|
||||||
|
"$mod, h, movefocus, l"
|
||||||
|
"$mod, right, movefocus, r"
|
||||||
|
"$mod, l, movefocus, r"
|
||||||
|
"$mod, up, movefocus, u"
|
||||||
|
"$mod, k, movefocus, u"
|
||||||
|
"$mod, down, movefocus, d"
|
||||||
|
"$mod, j, movefocus, d"
|
||||||
|
"$mod, 1, workspace, 1"
|
||||||
|
"$mod, 2, workspace, 2"
|
||||||
|
"$mod, 3, workspace, 3"
|
||||||
|
"$mod, 4, workspace, 4"
|
||||||
|
"$mod, 5, workspace, 5"
|
||||||
|
"$mod, 6, workspace, 6"
|
||||||
|
"$mod, 7, workspace, 7"
|
||||||
|
"$mod, 8, workspace, 8"
|
||||||
|
"$mod, 9, workspace, 9"
|
||||||
|
"$mod, 0, workspace, 10"
|
||||||
|
"$mod SHIFT, 1, movetoworkspacesilent, 1"
|
||||||
|
"$mod SHIFT, 2, movetoworkspacesilent, 2"
|
||||||
|
"$mod SHIFT, 3, movetoworkspacesilent, 3"
|
||||||
|
"$mod SHIFT, 4, movetoworkspacesilent, 4"
|
||||||
|
"$mod SHIFT, 5, movetoworkspacesilent, 5"
|
||||||
|
"$mod SHIFT, 6, movetoworkspacesilent, 6"
|
||||||
|
"$mod SHIFT, 7, movetoworkspacesilent, 7"
|
||||||
|
"$mod SHIFT, 8, movetoworkspacesilent, 8"
|
||||||
|
"$mod SHIFT, 9, movetoworkspacesilent, 9"
|
||||||
|
"$mod SHIFT, 0, movetoworkspacesilent, 10"
|
||||||
|
"$mod SHIFT, comma, focusmonitor, -1"
|
||||||
|
"$mod SHIFT, period, focusmonitor, +1"
|
||||||
|
|
||||||
|
# Launchers
|
||||||
|
"$mod, RETURN, exec, foot"
|
||||||
|
"$mod, D, exec, pkill tofi || tofi-drun | xargs hyprctl dispatch exec --"
|
||||||
|
"$mod SHIFT, D, exec, pkill tofi || tofi-run --require-match=false | xargs hyprctl dispatch exec --"
|
||||||
|
|
||||||
|
# Media
|
||||||
|
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||||
|
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||||
|
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
|
||||||
|
# Backlight
|
||||||
|
", XF86MonBrightnessUp, exec, light -A 5"
|
||||||
|
", XF86MonBrightnessDown, exec, light -U 5"
|
||||||
|
|
||||||
|
# XWayland Keymaps
|
||||||
|
"$mod SHIFT, F1, exec, setxkbmap us colemak_dh"
|
||||||
|
"$mod SHIFT, F2, exec, setxkbmap us basic"
|
||||||
|
|
||||||
|
# Screenshot
|
||||||
|
", PRINT, exec, grimblast --notify copysave screen"
|
||||||
|
"SHIFT, PRINT, exec, grimblast --notify copysave area"
|
||||||
|
|
||||||
|
# Playerctl
|
||||||
|
"$mod, P, exec, ${playerctl} play-pause"
|
||||||
|
", XF86AudioPlay, exec, ${playerctl} play-pause"
|
||||||
|
", XF86AudioNext, exec, ${playerctl} position 5+"
|
||||||
|
", XF86AudioPrev, exec, ${playerctl} position 5-"
|
||||||
|
"$mod, XF86AudioNext, exec, ${playerctl} next"
|
||||||
|
"$mod, XF86AudioPrev, exec, ${playerctl} previous"
|
||||||
|
];
|
||||||
|
|
||||||
|
binde = [
|
||||||
|
# Hyprland operations
|
||||||
|
"$mod SHIFT, Q, killactive,"
|
||||||
|
"$mod SHIFT, left, movewindow, l"
|
||||||
|
"$mod SHIFT, h, movewindow, l"
|
||||||
|
"$mod SHIFT, right, movewindow, r"
|
||||||
|
"$mod SHIFT, l, movewindow, r"
|
||||||
|
"$mod SHIFT, up, movewindow, u"
|
||||||
|
"$mod SHIFT, k, movewindow, u"
|
||||||
|
"$mod SHIFT, down, movewindow, d"
|
||||||
|
"$mod SHIFT, j, movewindow, d"
|
||||||
|
"SHIFT ALT, left, resizeactive, -10 0"
|
||||||
|
"SHIFT ALT, h, resizeactive, -10 0"
|
||||||
|
"SHIFT ALT, right, resizeactive, 10 0"
|
||||||
|
"SHIFT ALT, l, resizeactive, 10 0"
|
||||||
|
"SHIFT ALT, up, resizeactive, 0 -10"
|
||||||
|
"SHIFT ALT, k, resizeactive, 0 -10"
|
||||||
|
"SHIFT ALT, down, resizeactive, 0 10"
|
||||||
|
"SHIFT ALT, j, resizeactive, 0 10"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindm = [
|
||||||
|
# Mouse
|
||||||
|
"$mod, mouse:272, movewindow"
|
||||||
|
"$mod, mouse:273, resizewindow"
|
||||||
|
"$mod ALT, mouse:272, resizewindow"
|
||||||
|
];
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
(with config.home.pointerCursor; "hyprctl setcursor ${name} ${toString size} ")
|
||||||
|
]
|
||||||
|
++ (with config.programs; lib.optional eww.enable "${eww.package}/bin/eww open bar");
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
inputs.hyprland-contrib.packages.${pkgs.system}.grimblast
|
|
||||||
wl-clipboard
|
|
||||||
swayimg
|
|
||||||
swaybg
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
80
home/natto/hyprlock.nix
Normal file
80
home/natto/hyprlock.nix
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
conf,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
programs.hyprlock = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = with conf.colors.argb { a = "ee"; }; {
|
||||||
|
general = {
|
||||||
|
hide_cursor = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
background = [
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
path = "screenshot";
|
||||||
|
blur_passes = 2;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
input-field = [
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
size = "300, 60";
|
||||||
|
outline_thickness = 4;
|
||||||
|
valign = "center";
|
||||||
|
halign = "center";
|
||||||
|
|
||||||
|
font_color = "0x${text}";
|
||||||
|
outer_color = "0x${mauve}";
|
||||||
|
inner_color = "0x${surface0}";
|
||||||
|
check_color = "0x${blue}";
|
||||||
|
fail_color = "0x${red}";
|
||||||
|
capslock_color = "0x${yellow}";
|
||||||
|
|
||||||
|
fade_on_empty = false;
|
||||||
|
hide_input = false;
|
||||||
|
placeholder_text = "Logged in as <b>$USER</b>";
|
||||||
|
fail_text = "Fail! <b>($ATTEMPTS)</b>";
|
||||||
|
|
||||||
|
dots_spacing = 0.2;
|
||||||
|
dots_center = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
label = [
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "Layout: $LAYOUT";
|
||||||
|
font_size = 25;
|
||||||
|
color = "0x${text}";
|
||||||
|
position = "30, -30";
|
||||||
|
valign = "top";
|
||||||
|
halign = "left";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "$TIME";
|
||||||
|
font_size = 90;
|
||||||
|
color = "0x${text}";
|
||||||
|
position = "-30, 0";
|
||||||
|
valign = "top";
|
||||||
|
halign = "right";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "cmd[update:3600000] date +\"%A, %d %B %Y\"";
|
||||||
|
font_size = 25;
|
||||||
|
color = "0x${text}";
|
||||||
|
position = "-30, -150";
|
||||||
|
valign = "top";
|
||||||
|
halign = "right";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
18
home/natto/hyprpaper.nix
Normal file
18
home/natto/hyprpaper.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
services.hyprpaper = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings =
|
||||||
|
let
|
||||||
|
wallpaper = "${config.home.homeDirectory}/wallpaper.png";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
preload = [ "${wallpaper}" ];
|
||||||
|
wallpaper = [ ", ${wallpaper}" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -67,7 +67,6 @@ in
|
|||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
spotify
|
spotify
|
||||||
playerctl
|
|
||||||
mpc_cli
|
mpc_cli
|
||||||
(ncmpcpp.override {
|
(ncmpcpp.override {
|
||||||
visualizerSupport = true;
|
visualizerSupport = true;
|
||||||
@@ -89,4 +88,6 @@ in
|
|||||||
path = "${home}/.config/mpdasrc";
|
path = "${home}/.config/mpdasrc";
|
||||||
symlink = false;
|
symlink = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.playerctld.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
13
home/overlays/standalone.nix
Normal file
13
home/overlays/standalone.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
final: prev:
|
||||||
|
let
|
||||||
|
pam = prev.pam.overrideAttrs (oa: {
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace modules/module-meson.build \
|
||||||
|
--replace "sbindir / 'unix_chkpwd'" "'/usr/bin/unix_chkpwd'"
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
in
|
||||||
|
{
|
||||||
|
hyprlock = prev.hyprlock.override { inherit pam; };
|
||||||
|
swaylock = prev.swaylock.override { inherit pam; };
|
||||||
|
}
|
||||||
@@ -60,7 +60,6 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
defaultGateway = "192.168.1.1";
|
|
||||||
nameservers = [
|
nameservers = [
|
||||||
"1.1.1.1"
|
"1.1.1.1"
|
||||||
"8.8.8.8"
|
"8.8.8.8"
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
ratbagd.enable = true;
|
ratbagd.enable = true;
|
||||||
btrfs.autoScrub.enable = true;
|
btrfs.autoScrub.enable = true;
|
||||||
gvfs.enable = true;
|
gvfs.enable = true;
|
||||||
logind.extraConfig = "RuntimeDirectorySize=30%";
|
|
||||||
printing = {
|
printing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
drivers = [ pkgs.hplip ];
|
drivers = [ pkgs.hplip ];
|
||||||
|
|||||||
@@ -1,25 +1,39 @@
|
|||||||
{
|
{
|
||||||
config,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
conf,
|
conf,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
systemd.services.filehost = {
|
systemd.services = rec {
|
||||||
enable = true;
|
filehost = {
|
||||||
wantedBy = [ "multi-user.target" ];
|
enable = true;
|
||||||
serviceConfig = {
|
wantedBy = [ "multi-user.target" ];
|
||||||
Type = "simple";
|
serviceConfig = {
|
||||||
Environment = [
|
Type = "simple";
|
||||||
"TITLE=nattofiles"
|
Environment = [
|
||||||
"USER_URL=https://f.${conf.network.addresses.domain.natto}"
|
"TITLE=nattofiles"
|
||||||
"ROCKET_LIMITS={file=\"512MB\",data-form=\"512MB\"}"
|
"INTERNAL_HOST=0.0.0.0"
|
||||||
"ROCKET_LOG_LEVEL=debug"
|
"INTERNAL_PORT=8000"
|
||||||
"ROCKET_ADDRESS=0.0.0.0"
|
"MAX_FILESIZE_MB=500"
|
||||||
];
|
"EXTERNAL_HAS_TLS=1"
|
||||||
Restart = "on-failure";
|
"EXTERNAL_HOST=f.${conf.network.addresses.domain.natto}"
|
||||||
ExecStart = "${inputs.filehost.packages.${pkgs.system}.simpler-filehost}/bin/simpler-filehost";
|
];
|
||||||
|
Restart = "on-failure";
|
||||||
|
ExecStart = "${inputs.filehost.packages.${pkgs.system}.yamaf}/bin/yamaf";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
filehost-chutiya = lib.recursiveUpdate filehost {
|
||||||
|
serviceConfig.Environment = [
|
||||||
|
"TITLE=chutiyafiles"
|
||||||
|
"INTERNAL_HOST=0.0.0.0"
|
||||||
|
"INTERNAL_PORT=8001"
|
||||||
|
"MAX_FILESIZE_MB=500"
|
||||||
|
"EXTERNAL_HAS_TLS=1"
|
||||||
|
"EXTERNAL_HOST=f.${conf.network.addresses.domain.chutiya}"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
conf,
|
conf,
|
||||||
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
@@ -36,6 +35,18 @@
|
|||||||
USER = FROM;
|
USER = FROM;
|
||||||
REGISTER_MAIL_CONFIRM = true;
|
REGISTER_MAIL_CONFIRM = true;
|
||||||
};
|
};
|
||||||
|
service = {
|
||||||
|
ENABLE_CAPTCHA = true;
|
||||||
|
EMAIL_DOMAIN_ALLOWLIST = lib.strings.concatStringsSep "," [
|
||||||
|
"gmail.com"
|
||||||
|
"outlook.com"
|
||||||
|
"proton.me"
|
||||||
|
"protonmail.com"
|
||||||
|
conf.network.addresses.domain.natto
|
||||||
|
conf.network.addresses.domain.amneesh
|
||||||
|
conf.network.addresses.domain.chutiya
|
||||||
|
];
|
||||||
|
};
|
||||||
oauth2_client.REGISTER_MAIL_CONFIRM = true;
|
oauth2_client.REGISTER_MAIL_CONFIRM = true;
|
||||||
actions.ENABLED = false;
|
actions.ENABLED = false;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{ conf, ... }:
|
{ conf, ... }:
|
||||||
let
|
let
|
||||||
domain = conf.network.addresses.domain.natto;
|
domain = conf.network.addresses.domain.natto;
|
||||||
|
chutiya = conf.network.addresses.domain.chutiya;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
@@ -35,6 +36,17 @@ in
|
|||||||
in
|
in
|
||||||
with conf.network.addresses.wireguard.ips;
|
with conf.network.addresses.wireguard.ips;
|
||||||
{
|
{
|
||||||
|
|
||||||
|
"${chutiya}" = {
|
||||||
|
addSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
locations."/" = {
|
||||||
|
root = "/var/lib/chutiya";
|
||||||
|
index = "index.html";
|
||||||
|
};
|
||||||
|
serverAliases = [ "www.${chutiya}" ];
|
||||||
|
};
|
||||||
|
|
||||||
"moj.${domain}" = genericHttpRProxy { addr = "https://${suwako}:25565"; };
|
"moj.${domain}" = genericHttpRProxy { addr = "https://${suwako}:25565"; };
|
||||||
|
|
||||||
"puffer.${domain}" = genericHttpRProxy {
|
"puffer.${domain}" = genericHttpRProxy {
|
||||||
@@ -59,7 +71,15 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Personal filehost
|
# Personal filehost
|
||||||
"f.${domain}" = genericHttpRProxy { addr = "http://${suwako}:8000"; };
|
"f.${chutiya}" = genericHttpRProxy {
|
||||||
|
addr = "http://${suwako}:8001";
|
||||||
|
conf = "client_max_body_size 512M;";
|
||||||
|
};
|
||||||
|
|
||||||
|
"f.${domain}" = genericHttpRProxy {
|
||||||
|
addr = "http://${suwako}:8000";
|
||||||
|
conf = "client_max_body_size 512M;";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user