home-manager config import
Signed-off-by: Xe <me@christine.website>
This commit is contained in:
parent
8ac09a92e9
commit
5666d46363
|
@ -0,0 +1,33 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# explicit xe.*
|
||||||
|
./emacs
|
||||||
|
./fish
|
||||||
|
./htop.nix
|
||||||
|
./k8s.nix
|
||||||
|
./keybase.nix
|
||||||
|
./luakit
|
||||||
|
./neofetch.nix
|
||||||
|
./powershell
|
||||||
|
#./sway
|
||||||
|
./tmux.nix
|
||||||
|
./urxvt.nix
|
||||||
|
./vim
|
||||||
|
#./zathura
|
||||||
|
./weechat
|
||||||
|
|
||||||
|
# implicit
|
||||||
|
./pastebins
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config = {
|
||||||
|
allowBroken = true;
|
||||||
|
allowUnfree = true;
|
||||||
|
|
||||||
|
manual.manpages.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.startServices = true;
|
||||||
|
}
|
|
@ -0,0 +1,425 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.within.emacs;
|
||||||
|
in {
|
||||||
|
options.within.emacs.enable = mkEnableOption "emacs without spacemacs support";
|
||||||
|
imports = [ ./emacs-init.nix ];
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.file."bin/e" = {
|
||||||
|
text = ''
|
||||||
|
#!/bin/sh
|
||||||
|
emacsclient $@
|
||||||
|
'';
|
||||||
|
executable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.emacs.enable = true;
|
||||||
|
programs.emacs = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
init = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
recommendedGcSettings = true;
|
||||||
|
|
||||||
|
prelude = let
|
||||||
|
fontSize = if pkgs.stdenv.isDarwin then "15" else "14";
|
||||||
|
emacsFont = ''
|
||||||
|
(when window-system
|
||||||
|
(set-frame-font "Hack ${fontSize}"))
|
||||||
|
'';
|
||||||
|
in emacsFont + ''
|
||||||
|
(require 'bind-key)
|
||||||
|
|
||||||
|
(setq inhibit-startup-screen t)
|
||||||
|
|
||||||
|
(menu-bar-mode -1)
|
||||||
|
|
||||||
|
(electric-pair-mode)
|
||||||
|
|
||||||
|
(recentf-mode 1)
|
||||||
|
(setq recentf-max-menu-items 25)
|
||||||
|
(setq recentf-max-saved-items 25)
|
||||||
|
(global-set-key "\C-x\ \C-r" 'recentf-open-files)
|
||||||
|
|
||||||
|
(when window-system
|
||||||
|
(dolist (mode
|
||||||
|
'(tool-bar-mode
|
||||||
|
tooltip-mode
|
||||||
|
scroll-bar-mode
|
||||||
|
menu-bar-mode
|
||||||
|
blink-cursor-mode))
|
||||||
|
(funcall mode 0)))
|
||||||
|
|
||||||
|
(add-hook 'text-mode-hook 'auto-fill-mode)
|
||||||
|
|
||||||
|
(setq delete-old-versions -1 ) ; delete excess backup versions silently
|
||||||
|
(setq version-control t ) ; use version control
|
||||||
|
(setq vc-make-backup-files t ) ; make backups file even when in version controlled dir
|
||||||
|
(setq backup-directory-alist `(("." . "~/.emacs.d/backups")) ) ; which directory to put backups file
|
||||||
|
(setq vc-follow-symlinks t ) ; don't ask for confirmation when opening symlinked file
|
||||||
|
(setq auto-save-file-name-transforms '((".*" "~/.emacs.d/auto-save-list/" t)) ) ;transform backups file name
|
||||||
|
(setq inhibit-startup-screen t ) ; inhibit useless and old-school startup screen
|
||||||
|
(setq ring-bell-function 'ignore ) ; silent bell when you make a mistake
|
||||||
|
(setq coding-system-for-read 'utf-8 ) ; use utf-8 by default
|
||||||
|
(setq coding-system-for-write 'utf-8 )
|
||||||
|
(setq sentence-end-double-space nil) ; sentence SHOULD end with only a point.
|
||||||
|
(setq default-fill-column 80) ; toggle wrapping text at the 80th character
|
||||||
|
|
||||||
|
(defun chomp (str)
|
||||||
|
"Chomp leading and tailing whitespace from STR."
|
||||||
|
(while (string-match "\\`\n+\\|^\\s-+\\|\\s-+$\\|\n+\\'"
|
||||||
|
str)
|
||||||
|
(setq str (replace-match "" t t str)))
|
||||||
|
str)
|
||||||
|
(setq gofmt-command "goimports")
|
||||||
|
(defun eshell/e (arg)
|
||||||
|
"opens a given file in emacs from eshell"
|
||||||
|
(find-file arg))
|
||||||
|
|
||||||
|
(defun eshell/eh (arg)
|
||||||
|
"opens a file in emacs from shell horizontally"
|
||||||
|
(split-window-vertically)
|
||||||
|
(other-window 1)
|
||||||
|
(find-file arg))
|
||||||
|
|
||||||
|
(defun eshell/ev (arg)
|
||||||
|
"opens a file in emacs from shell vertically"
|
||||||
|
(split-window-horizontally)
|
||||||
|
(other-window 1)
|
||||||
|
(find-file arg))
|
||||||
|
|
||||||
|
(set-frame-parameter (selected-frame) 'alpha '(85 . 85))
|
||||||
|
(add-to-list 'default-frame-alist '(alpha . (85 . 85)))
|
||||||
|
'';
|
||||||
|
|
||||||
|
usePackageVerbose = true;
|
||||||
|
|
||||||
|
usePackage = {
|
||||||
|
company = {
|
||||||
|
enable = true;
|
||||||
|
diminish = [ "company-mode" ];
|
||||||
|
config = ''
|
||||||
|
(company-mode)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
dockerfile-mode = { enable = true; };
|
||||||
|
|
||||||
|
counsel = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
bindStar = {
|
||||||
|
"M-x" = "counsel-M-x";
|
||||||
|
"C-x C-f" = "counsel-find-file";
|
||||||
|
"C-x C-r" = "counsel-recentf";
|
||||||
|
"C-c f" = "counsel-git";
|
||||||
|
"C-c s" = "counsel-git-grep";
|
||||||
|
"C-c /" = "counsel-rg";
|
||||||
|
"C-c l" = "counsel-locate";
|
||||||
|
"M-y" = "counsel-yank-pop";
|
||||||
|
};
|
||||||
|
|
||||||
|
general = ''
|
||||||
|
(general-nmap
|
||||||
|
:prefix "SPC"
|
||||||
|
"SPC" '(counsel-M-x :which-key "M-x")
|
||||||
|
"ff" '(counsel-find-file :which-key "find file")
|
||||||
|
"s" '(:ignore t :which-key "search")
|
||||||
|
"sc" '(counsel-unicode-char :which-key "find character"))
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
cython-mode = { enable = true; };
|
||||||
|
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
config = ''
|
||||||
|
(direnv-mode)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
better-defaults.enable = true;
|
||||||
|
|
||||||
|
evil = {
|
||||||
|
enable = true;
|
||||||
|
init = ''
|
||||||
|
(setq evil-want-C-i-jump nil)
|
||||||
|
'';
|
||||||
|
config = ''
|
||||||
|
(evil-mode 1)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
evil-surround = {
|
||||||
|
enable = true;
|
||||||
|
config = ''
|
||||||
|
(global-evil-surround-mode 1)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
evil-collection = {
|
||||||
|
enable = true;
|
||||||
|
after = [ "evil" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
evil-magit = {
|
||||||
|
enable = true;
|
||||||
|
after = [ "magit" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
flycheck = {
|
||||||
|
enable = true;
|
||||||
|
diminish = [ "flycheck-mode" ];
|
||||||
|
config = ''
|
||||||
|
(global-flycheck-mode)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
go-mode = { enable = true; };
|
||||||
|
|
||||||
|
lsp-mode = {
|
||||||
|
enable = true;
|
||||||
|
command = [ "lsp" ];
|
||||||
|
hook = [
|
||||||
|
"(go-mode . lsp)"
|
||||||
|
"(rust-mode . lsp)"
|
||||||
|
"(lsp-mode . lsp-enable-which-key-integration)"
|
||||||
|
];
|
||||||
|
config = ''
|
||||||
|
(setq lsp-rust-server 'rust-analyzer)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
lsp-ui = {
|
||||||
|
enable = true;
|
||||||
|
after = [ "lsp" ];
|
||||||
|
command = [ "lsp-ui-mode" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
lsp-ivy = {
|
||||||
|
enable = true;
|
||||||
|
after = [ "lsp" "ivy" ];
|
||||||
|
command = [ "lsp-ivy-workspace-symbol" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nlinum-relative = {
|
||||||
|
enable = true;
|
||||||
|
after = [ "evil" ];
|
||||||
|
config = ''
|
||||||
|
(nlinum-relative-setup-evil)
|
||||||
|
(add-hook 'prog-mode-hook 'nlinum-relative-mode)
|
||||||
|
(add-hook 'org-mode-hook 'nlinum-relative-mode)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
enable = true;
|
||||||
|
after = [ "evil" "which-key" ];
|
||||||
|
config = ''
|
||||||
|
(general-evil-setup)
|
||||||
|
|
||||||
|
(general-mmap
|
||||||
|
":" 'evil-ex
|
||||||
|
";" 'evil-repeat-find-char)
|
||||||
|
|
||||||
|
(general-create-definer my-leader-def
|
||||||
|
:prefix "SPC")
|
||||||
|
|
||||||
|
(general-create-definer my-local-leader-def
|
||||||
|
:prefix "SPC m")
|
||||||
|
|
||||||
|
(general-nmap
|
||||||
|
:prefix "SPC"
|
||||||
|
"b" '(:ignore t :which-key "buffer")
|
||||||
|
"bd" '(kill-this-buffer :which-key "kill buffer")
|
||||||
|
|
||||||
|
"f" '(:ignore t :which-key "file")
|
||||||
|
"ff" '(find-file :which-key "find")
|
||||||
|
"fs" '(save-buffer :which-key "save")
|
||||||
|
|
||||||
|
"m" '(:ignore t :which-key "mode")
|
||||||
|
|
||||||
|
"t" '(:ignore t :which-key "toggle")
|
||||||
|
"tf" '(toggle-frame-fullscreen :which-key "fullscreen")
|
||||||
|
"wv" '(split-window-horizontally :which-key "split vertical")
|
||||||
|
"ws" '(split-window-vertically :which-key "split horizontal")
|
||||||
|
"wk" '(evil-window-up :which-key "up")
|
||||||
|
"wj" '(evil-window-down :which-key "down")
|
||||||
|
"wh" '(evil-window-left :which-key "left")
|
||||||
|
"wl" '(evil-window-right :which-key "right")
|
||||||
|
"wd" '(delete-window :which-key "delete")
|
||||||
|
|
||||||
|
"q" '(:ignore t :which-key "quit")
|
||||||
|
"qq" '(save-buffers-kill-emacs :which-key "quit"))
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
ivy = {
|
||||||
|
enable = true;
|
||||||
|
demand = true;
|
||||||
|
diminish = [ "ivy-mode" ];
|
||||||
|
config = ''
|
||||||
|
(ivy-mode 1)
|
||||||
|
(setq ivy-use-virtual-buffers t
|
||||||
|
ivy-hight 20
|
||||||
|
ivy-count-format "(%d/%d) "
|
||||||
|
ivy-initial-inputs-alist nil)
|
||||||
|
'';
|
||||||
|
general = ''
|
||||||
|
(general-nmap
|
||||||
|
:prefix "SPC"
|
||||||
|
"bb" '(ivy-switch-buffer :which-key "switch buffer")
|
||||||
|
"fr" '(ivy-recentf :which-key "recent file"))
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
magit = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
general = ''
|
||||||
|
(general-nmap
|
||||||
|
:prefix "SPC"
|
||||||
|
"g" '(:ignore t :which-key "Git")
|
||||||
|
"gs" 'magit-status)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
markdown-mode = {
|
||||||
|
enable = true;
|
||||||
|
command = [ "markdown-mode" "gfm-mode" ];
|
||||||
|
mode = [
|
||||||
|
''("README\\.md\\'" . gfm-mode)''
|
||||||
|
''("\\.md\\'" . markdown-mode)''
|
||||||
|
''("\\.markdown\\'" . markdown-mode)''
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = { enable = true; };
|
||||||
|
|
||||||
|
nix-mode = {
|
||||||
|
enable = true;
|
||||||
|
mode = [ ''"\\.nix\\'"'' ];
|
||||||
|
bindLocal = { nix-mode-map = { "C-i" = "nix-indent-line"; }; };
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-prettify-mode = {
|
||||||
|
enable = true;
|
||||||
|
config = ''
|
||||||
|
(nix-prettify-global-mode)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-drv-mode = {
|
||||||
|
enable = true;
|
||||||
|
mode = [ ''"\\.drv\\'"'' ];
|
||||||
|
};
|
||||||
|
|
||||||
|
projectile = {
|
||||||
|
enable = true;
|
||||||
|
after = [ "ivy" ];
|
||||||
|
diminish = [ "projectile-mode" ];
|
||||||
|
config = ''
|
||||||
|
(projectile-mode 1)
|
||||||
|
(progn
|
||||||
|
(setq projectile-enable-caching t)
|
||||||
|
(setq projectile-require-project-root nil)
|
||||||
|
(setq projectile-completion-system 'ivy)
|
||||||
|
(add-to-list 'projectile-globally-ignored-files ".DS_Store"))
|
||||||
|
'';
|
||||||
|
general = ''
|
||||||
|
(general-nmap
|
||||||
|
:prefix "SPC"
|
||||||
|
"p" '(:ignore t :which-key "Project")
|
||||||
|
"pf" '(projectile-find-file :which-key "Find in project")
|
||||||
|
"pl" '(projectile-switch-project :which-key "Switch project"))
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
protobuf-mode = { enable = true; };
|
||||||
|
|
||||||
|
swiper = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
bindStar = { "C-s" = "swiper"; };
|
||||||
|
|
||||||
|
general = ''
|
||||||
|
(general-nmap
|
||||||
|
:prefix "SPC"
|
||||||
|
"ss" '(swiper :which-key "swiper"))
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
which-key = {
|
||||||
|
enable = true;
|
||||||
|
diminish = [ "which-key-mode" ];
|
||||||
|
config = ''
|
||||||
|
(which-key-mode)
|
||||||
|
(which-key-setup-side-window-right-bottom)
|
||||||
|
(setq which-key-sort-order 'which-key-key-order-alpha
|
||||||
|
which-key-side-window-max-width 0.33
|
||||||
|
which-key-idle-delay 0.05)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
gruvbox-theme = {
|
||||||
|
enable = true;
|
||||||
|
config = ''
|
||||||
|
(setq custom-safe-themes t)
|
||||||
|
(add-hook 'after-init-hook (lambda () (load-theme 'gruvbox t)))
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
dhall-mode = {
|
||||||
|
enable = true;
|
||||||
|
mode = [ ''"\\.dhall\\'"'' ];
|
||||||
|
};
|
||||||
|
|
||||||
|
moonscript = {
|
||||||
|
enable = true;
|
||||||
|
mode = [ ''"\\.moon\\'"'' ];
|
||||||
|
};
|
||||||
|
|
||||||
|
rust-mode = {
|
||||||
|
enable = true;
|
||||||
|
mode = [ ''"\\.rs\\'"'' ];
|
||||||
|
};
|
||||||
|
|
||||||
|
toml-mode = {
|
||||||
|
enable = true;
|
||||||
|
mode = [ ''"\\.toml\\'"'' ];
|
||||||
|
};
|
||||||
|
|
||||||
|
zig-mode = {
|
||||||
|
enable = true;
|
||||||
|
mode = [ ''"\\.zig\\'"'' ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nov = {
|
||||||
|
enable = true;
|
||||||
|
mode = [ ''"\\.epub\\'"'' ];
|
||||||
|
};
|
||||||
|
|
||||||
|
web-mode = {
|
||||||
|
enable = true;
|
||||||
|
mode = [ ''"\\.html\\'"'' ''"\\.tmpl\\'"'' ];
|
||||||
|
};
|
||||||
|
|
||||||
|
ob.enable = true;
|
||||||
|
org-download.enable = true;
|
||||||
|
org.enable = true;
|
||||||
|
org-mime.enable = true;
|
||||||
|
org-pomodoro.enable = true;
|
||||||
|
org-projectile.enable = true;
|
||||||
|
|
||||||
|
weechat.enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
terraform-mode.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,460 @@
|
||||||
|
# Copyright (c) 2019 Robert Helgesson
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
# Vendored from: https://gitlab.com/rycee/nur-expressions/blob/master/hm-modules/emacs-init.nix
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.programs.emacs.init;
|
||||||
|
|
||||||
|
packageFunctionType = mkOptionType {
|
||||||
|
name = "packageFunction";
|
||||||
|
description = "function from epkgs to package";
|
||||||
|
check = isFunction;
|
||||||
|
merge = mergeOneOption;
|
||||||
|
};
|
||||||
|
|
||||||
|
usePackageType = types.submodule ({ name, config, ... }: {
|
||||||
|
options = {
|
||||||
|
enable = mkEnableOption "Emacs package ${name}";
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.either (types.str // { description = "name of package"; })
|
||||||
|
packageFunctionType;
|
||||||
|
default = name;
|
||||||
|
description = ''
|
||||||
|
The package to use for this module. Either the package name
|
||||||
|
within the Emacs package set or a function taking the Emacs
|
||||||
|
package set and returning a package.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
defer = mkOption {
|
||||||
|
type = types.either types.bool types.ints.positive;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
The <option>:defer</option> setting.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
demand = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
The <option>:demand</option> setting.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
diminish = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [ ];
|
||||||
|
description = ''
|
||||||
|
The entries to use for <option>:diminish</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
chords = mkOption {
|
||||||
|
type = types.attrsOf types.str;
|
||||||
|
default = { };
|
||||||
|
example = {
|
||||||
|
"jj" = "ace-jump-char-mode";
|
||||||
|
"jk" = "ace-jump-word-mode";
|
||||||
|
};
|
||||||
|
description = ''
|
||||||
|
The entries to use for <option>:chords</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
mode = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [ ];
|
||||||
|
description = ''
|
||||||
|
The entries to use for <option>:mode</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
after = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [ ];
|
||||||
|
description = ''
|
||||||
|
The entries to use for <option>:after</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
bind = mkOption {
|
||||||
|
type = types.attrsOf types.str;
|
||||||
|
default = { };
|
||||||
|
example = {
|
||||||
|
"M-<up>" = "drag-stuff-up";
|
||||||
|
"M-<down>" = "drag-stuff-down";
|
||||||
|
};
|
||||||
|
description = ''
|
||||||
|
The entries to use for <option>:bind</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
bindLocal = mkOption {
|
||||||
|
type = types.attrsOf (types.attrsOf types.str);
|
||||||
|
default = { };
|
||||||
|
example = {
|
||||||
|
helm-command-map = { "C-c h" = "helm-execute-persistent-action"; };
|
||||||
|
};
|
||||||
|
description = ''
|
||||||
|
The entries to use for local keymaps in <option>:bind</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
bindStar = mkOption {
|
||||||
|
type = types.attrsOf types.str;
|
||||||
|
default = { };
|
||||||
|
example = {
|
||||||
|
"M-<up>" = "drag-stuff-up";
|
||||||
|
"M-<down>" = "drag-stuff-down";
|
||||||
|
};
|
||||||
|
description = ''
|
||||||
|
The entries to use for <option>:bind*</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
bindKeyMap = mkOption {
|
||||||
|
type = types.attrsOf types.str;
|
||||||
|
default = { };
|
||||||
|
example = { "C-c p" = "projectile-command-map"; };
|
||||||
|
description = ''
|
||||||
|
The entries to use for <option>:bind-keymap</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
command = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [ ];
|
||||||
|
description = ''
|
||||||
|
The entries to use for <option>:commands</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Code to place in the <option>:config</option> section.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Additional lines to place in the use-package configuration.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
general = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Code to place in the <option>:general</option> section.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
hook = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [ ];
|
||||||
|
description = ''
|
||||||
|
The entries to use for <option>:hook</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
init = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
The entries to use for <option>:init</option>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
assembly = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
readOnly = true;
|
||||||
|
internal = true;
|
||||||
|
description = "The final use-package code.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf config.enable {
|
||||||
|
assembly = let
|
||||||
|
quoted = v: ''"${escape [ ''"'' ] v}"'';
|
||||||
|
mkBindHelper = cmd: prefix: bs:
|
||||||
|
optionals (bs != { }) ([ ":${cmd} (${prefix}" ]
|
||||||
|
++ mapAttrsToList (n: v: " (${quoted n} . ${v})") bs ++ [ ")" ]);
|
||||||
|
|
||||||
|
mkAfter = vs: optional (vs != [ ]) ":after (${toString vs})";
|
||||||
|
mkCommand = vs: optional (vs != [ ]) ":commands (${toString vs})";
|
||||||
|
mkDiminish = vs: optional (vs != [ ]) ":diminish (${toString vs})";
|
||||||
|
mkMode = map (v: ":mode ${v}");
|
||||||
|
mkBind = mkBindHelper "bind" "";
|
||||||
|
mkBindStar = mkBindHelper "bind*" "";
|
||||||
|
mkBindLocal = bs:
|
||||||
|
let mkMap = n: v: mkBindHelper "bind" ":map ${n}" v;
|
||||||
|
in flatten (mapAttrsToList mkMap bs);
|
||||||
|
mkBindKeyMap = mkBindHelper "bind-keymap" "";
|
||||||
|
mkChords = mkBindHelper "chords" "";
|
||||||
|
mkHook = map (v: ":hook ${v}");
|
||||||
|
mkDefer = v:
|
||||||
|
if isBool v then
|
||||||
|
optional v ":defer t"
|
||||||
|
else
|
||||||
|
[ ":defer ${toString v}" ];
|
||||||
|
mkDemand = v: optional v ":demand t";
|
||||||
|
extraAfter = optional (config.general != "") "general";
|
||||||
|
in concatStringsSep "\n " ([ "(use-package ${name}" ]
|
||||||
|
++ mkAfter (config.after ++ extraAfter) ++ mkBind config.bind
|
||||||
|
++ mkBindStar config.bindStar ++ mkBindKeyMap config.bindKeyMap
|
||||||
|
++ mkBindLocal config.bindLocal ++ mkChords config.chords
|
||||||
|
++ mkCommand config.command ++ mkDefer config.defer
|
||||||
|
++ mkDemand config.demand ++ mkDiminish config.diminish
|
||||||
|
++ mkHook config.hook ++ mkMode config.mode
|
||||||
|
++ optionals (config.init != "") [ ":init" config.init ]
|
||||||
|
++ optionals (config.config != "") [ ":config" config.config ]
|
||||||
|
++ optionals (config.general != "") [ ":general" config.general ]
|
||||||
|
++ optional (config.extraConfig != "") config.extraConfig) + ")";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
usePackageStr = name: pkgConfStr: ''
|
||||||
|
(use-package ${name}
|
||||||
|
${pkgConfStr})
|
||||||
|
'';
|
||||||
|
|
||||||
|
mkRecommendedOption = type: extraDescription:
|
||||||
|
mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = ''
|
||||||
|
Whether to enable recommended ${type} settings.
|
||||||
|
'' + optionalString (extraDescription != "") ''
|
||||||
|
</para><para>
|
||||||
|
${extraDescription}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Recommended GC settings.
|
||||||
|
gcSettings = ''
|
||||||
|
(defun hm/reduce-gc ()
|
||||||
|
"Reduce the frequency of garbage collection."
|
||||||
|
(setq gc-cons-threshold 402653184
|
||||||
|
gc-cons-percentage 0.6))
|
||||||
|
|
||||||
|
(defun hm/restore-gc ()
|
||||||
|
"Restore the frequency of garbage collection."
|
||||||
|
(setq gc-cons-threshold 16777216
|
||||||
|
gc-cons-percentage 0.1))
|
||||||
|
|
||||||
|
;; Make GC more rare during init and while minibuffer is active.
|
||||||
|
(eval-and-compile #'hm/reduce-gc)
|
||||||
|
(add-hook 'minibuffer-setup-hook #'hm/reduce-gc)
|
||||||
|
|
||||||
|
;; But make it more regular after startup and after closing minibuffer.
|
||||||
|
(add-hook 'emacs-startup-hook #'hm/restore-gc)
|
||||||
|
(add-hook 'minibuffer-exit-hook #'hm/restore-gc)
|
||||||
|
|
||||||
|
;; Avoid unnecessary regexp matching while loading .el files.
|
||||||
|
(defvar hm/file-name-handler-alist file-name-handler-alist)
|
||||||
|
(setq file-name-handler-alist nil)
|
||||||
|
|
||||||
|
(defun hm/restore-file-name-handler-alist ()
|
||||||
|
"Restores the file-name-handler-alist variable."
|
||||||
|
(setq file-name-handler-alist hm/file-name-handler-alist)
|
||||||
|
(makunbound 'hm/file-name-handler-alist))
|
||||||
|
|
||||||
|
(add-hook 'emacs-startup-hook #'hm/restore-file-name-handler-alist)
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Whether the configuration makes use of `:diminish`.
|
||||||
|
hasDiminish = any (p: p.diminish != [ ]) (attrValues cfg.usePackage);
|
||||||
|
|
||||||
|
# Whether the configuration makes use of `:bind`.
|
||||||
|
hasBind =
|
||||||
|
any (p: p.bind != { } || p.bindStar != { }) (attrValues cfg.usePackage);
|
||||||
|
|
||||||
|
# Whether the configuration makes use of `:chords`.
|
||||||
|
hasChords = any (p: p.chords != { }) (attrValues cfg.usePackage);
|
||||||
|
|
||||||
|
# Whether the configuration makes use of `:diminish`.
|
||||||
|
hasGeneral = any (p: p.general != "") (attrValues cfg.usePackage);
|
||||||
|
|
||||||
|
usePackageSetup = ''
|
||||||
|
(eval-when-compile
|
||||||
|
(require 'package)
|
||||||
|
|
||||||
|
(setq package-archives nil
|
||||||
|
package-enable-at-startup nil
|
||||||
|
package--init-file-ensured t)
|
||||||
|
|
||||||
|
(require 'use-package)
|
||||||
|
|
||||||
|
;; To help fixing issues during startup.
|
||||||
|
(setq use-package-verbose ${
|
||||||
|
if cfg.usePackageVerbose then "t" else "nil"
|
||||||
|
}))
|
||||||
|
'' + optionalString hasDiminish ''
|
||||||
|
;; For :diminish in (use-package).
|
||||||
|
(require 'diminish)
|
||||||
|
'' + optionalString hasBind ''
|
||||||
|
;; For :bind in (use-package).
|
||||||
|
(require 'bind-key)
|
||||||
|
'' + optionalString hasChords ''
|
||||||
|
;; For :chords in (use-package).
|
||||||
|
(use-package use-package-chords
|
||||||
|
:config (key-chord-mode 1))
|
||||||
|
'' + optionalString hasGeneral ''
|
||||||
|
;; For :general in (use-package).
|
||||||
|
(use-package general
|
||||||
|
:config
|
||||||
|
(general-evil-setup))
|
||||||
|
'';
|
||||||
|
|
||||||
|
initFile = ''
|
||||||
|
;;; hm-init.el --- Emacs configuration à la Home Manager.
|
||||||
|
;;
|
||||||
|
;; -*- lexical-binding: t; -*-
|
||||||
|
;;
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;; A configuration generated from a Nix based configuration by
|
||||||
|
;; Home Manager.
|
||||||
|
;;
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
${optionalString cfg.startupTimer ''
|
||||||
|
;; Remember when configuration started. See bottom for rest of this.
|
||||||
|
;; Idea taken from http://writequit.org/org/settings.html.
|
||||||
|
(defconst emacs-start-time (current-time))
|
||||||
|
''}
|
||||||
|
|
||||||
|
${optionalString cfg.recommendedGcSettings gcSettings}
|
||||||
|
|
||||||
|
${cfg.prelude}
|
||||||
|
|
||||||
|
${usePackageSetup}
|
||||||
|
'' + concatStringsSep "\n\n" (map (getAttr "assembly")
|
||||||
|
(filter (getAttr "enable") (attrValues cfg.usePackage))) + ''
|
||||||
|
|
||||||
|
${cfg.postlude}
|
||||||
|
|
||||||
|
${optionalString cfg.startupTimer ''
|
||||||
|
;; Make a note of how long the configuration part of the start took.
|
||||||
|
(let ((elapsed (float-time (time-subtract (current-time)
|
||||||
|
emacs-start-time))))
|
||||||
|
(message "Loading settings...done (%.3fs)" elapsed))
|
||||||
|
''}
|
||||||
|
|
||||||
|
(provide 'hm-init)
|
||||||
|
;; hm-init.el ends here
|
||||||
|
'';
|
||||||
|
|
||||||
|
in {
|
||||||
|
options.programs.emacs.init = {
|
||||||
|
enable = mkEnableOption "Emacs configuration";
|
||||||
|
|
||||||
|
recommendedGcSettings = mkRecommendedOption "garbage collection" ''
|
||||||
|
This will reduce garbage collection frequency during startup and
|
||||||
|
while the minibuffer is active.
|
||||||
|
'';
|
||||||
|
|
||||||
|
startupTimer = mkEnableOption "Emacs startup duration timer";
|
||||||
|
|
||||||
|
prelude = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Configuration lines to add in the beginning of
|
||||||
|
<filename>init.el</filename>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
postlude = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Configuration lines to add in the end of
|
||||||
|
<filename>init.el</filename>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
usePackageVerbose = mkEnableOption "verbose use-package mode";
|
||||||
|
|
||||||
|
usePackage = mkOption {
|
||||||
|
type = types.attrsOf usePackageType;
|
||||||
|
default = { };
|
||||||
|
example = literalExample ''
|
||||||
|
{
|
||||||
|
dhall-mode = {
|
||||||
|
mode = [ '''"\\.dhall\\'"''' ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Attribute set of use-package configurations.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf (config.programs.emacs.enable && cfg.enable) {
|
||||||
|
programs.emacs.extraPackages = epkgs:
|
||||||
|
let
|
||||||
|
getPkg = v:
|
||||||
|
if isFunction v then
|
||||||
|
[ (v epkgs) ]
|
||||||
|
else
|
||||||
|
optional (isString v && hasAttr v epkgs) epkgs.${v};
|
||||||
|
|
||||||
|
packages = concatMap (v: getPkg (v.package))
|
||||||
|
(builtins.attrValues cfg.usePackage);
|
||||||
|
in [
|
||||||
|
((epkgs.trivialBuild {
|
||||||
|
pname = "hm-init";
|
||||||
|
version = "0";
|
||||||
|
src = pkgs.writeText "hm-init.el" initFile;
|
||||||
|
packageRequires = lists.unique ([ epkgs.use-package ] ++ packages
|
||||||
|
++ optional hasBind epkgs.bind-key
|
||||||
|
++ optional hasDiminish epkgs.diminish
|
||||||
|
++ optional hasChords epkgs.use-package-chords
|
||||||
|
++ optional hasGeneral epkgs.general);
|
||||||
|
preferLocalBuild = true;
|
||||||
|
allowSubstitutes = false;
|
||||||
|
}).overrideAttrs (attr: {
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuild
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
}))
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file.".emacs.d/init.el".text = ''
|
||||||
|
(require 'hm-init)
|
||||||
|
(provide 'init)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,71 @@
|
||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
dquot = "''";
|
||||||
|
cfg = config.within.fish;
|
||||||
|
in {
|
||||||
|
options.within.fish.enable = mkEnableOption "fish config";
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.fish.enable = true;
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
".config/fish/functions/fish_greeting.fish".text = ''
|
||||||
|
function fish_greeting;end
|
||||||
|
'';
|
||||||
|
|
||||||
|
".config/fish/functions/fish_prompt.fish".source = ./fish_prompt.fish;
|
||||||
|
".config/fish/functions/fish_right_prompt.fish".source =
|
||||||
|
./fish_right_prompt.fish;
|
||||||
|
".config/fish/conf.d/ssh-agent.fish".source = ./ssh-agent.fish;
|
||||||
|
|
||||||
|
# global fish config
|
||||||
|
".config/fish/conf.d/cadey.fish".text = ''
|
||||||
|
alias edit "emacsclient -t -c -a ${dquot}"
|
||||||
|
alias e "edit"
|
||||||
|
|
||||||
|
set -gx GOPATH $HOME/go
|
||||||
|
set -gx PATH $PATH $HOME/go/bin $HOME/bin
|
||||||
|
|
||||||
|
set -gx GO111MODULE on
|
||||||
|
|
||||||
|
set -gx PATH $PATH $HOME/.local/bin
|
||||||
|
|
||||||
|
set -gx PATH $PATH $HOME/.luarocks/bin
|
||||||
|
|
||||||
|
set -gx PATH $PATH $HOME/.cargo/bin
|
||||||
|
|
||||||
|
set -gx WASMER_DIR $HOME/.wasmer
|
||||||
|
set -gx WASMER_CACHE_DIR $WASMER_DIR/cache
|
||||||
|
set -gx PATH $PATH $WASMER_DIR/bin $WASMER_DIR/globals/wapm_packages/.bin
|
||||||
|
|
||||||
|
set -gx EDITOR vim
|
||||||
|
'';
|
||||||
|
|
||||||
|
".config/fish/conf.d/colors.fish".text = ''
|
||||||
|
switch $TERM
|
||||||
|
case '*xte*'
|
||||||
|
set -gx TERM xterm-256color
|
||||||
|
case '*scree*'
|
||||||
|
set -gx TERM screen-256color
|
||||||
|
case '*rxvt*'
|
||||||
|
set -gx TERM rxvt-unicode-256color
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
|
||||||
|
".config/fish/conf.d/gpg.fish".text = ''
|
||||||
|
# Set GPG TTY
|
||||||
|
set -x GPG_TTY (tty)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = [ pkgs.fishPlugins.foreign-env ];
|
||||||
|
|
||||||
|
programs.fish.shellAliases = {
|
||||||
|
pbcopy = "${pkgs.xclip}/bin/xclip -selection clipboard";
|
||||||
|
pbpaste = "${pkgs.xclip}/bin/xclip -selection clipboard -o";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,217 @@
|
||||||
|
#!/usr/bin/fish
|
||||||
|
#
|
||||||
|
# kawasaki.theme
|
||||||
|
#
|
||||||
|
# A theme for the fish shell.
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Beau Hastings.
|
||||||
|
# License: GNU General Public License v2
|
||||||
|
#
|
||||||
|
# Author: Beau Hastings <beau@saweet.net>
|
||||||
|
#
|
||||||
|
|
||||||
|
function __default_var
|
||||||
|
set -q $argv[1]; or set -gx $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# To use the theme's virtualenv prompt indicator you should add the following to your init.fish (https://github.com/oh-my-fish/oh-my-fish#dotfiles)
|
||||||
|
# set --export VIRTUAL_ENV_DISABLE_PROMPT 1
|
||||||
|
|
||||||
|
# Override default options
|
||||||
|
#
|
||||||
|
## Display the local time
|
||||||
|
#set -g theme_display_time yes
|
||||||
|
#
|
||||||
|
## Display the user's current group
|
||||||
|
#set -g theme_display_group no
|
||||||
|
#
|
||||||
|
## Display git branch status
|
||||||
|
#set -g theme_display_git no
|
||||||
|
#
|
||||||
|
## Display job count
|
||||||
|
#set -g theme_display_jobs no
|
||||||
|
#
|
||||||
|
## By default job count won't display if there are no jobs
|
||||||
|
#set -g theme_display_jobs_always yes
|
||||||
|
#
|
||||||
|
## Don't display if the current working directory is readable/writable
|
||||||
|
#set -g theme_display_rw no
|
||||||
|
#
|
||||||
|
## Don't display virtualenv
|
||||||
|
#set -g theme_display_virtualenv no
|
||||||
|
#
|
||||||
|
|
||||||
|
# Colors
|
||||||
|
# TODO: consider displaying colors in the following order: cyan, green, yellow, orange, purple
|
||||||
|
#
|
||||||
|
__default_var theme_color_error red
|
||||||
|
__default_var theme_color_superuser red
|
||||||
|
__default_var theme_color_user white
|
||||||
|
__default_var theme_color_group 666666
|
||||||
|
__default_var theme_color_host brgreen
|
||||||
|
__default_var theme_color_separator brblack
|
||||||
|
__default_var theme_color_bracket brblue
|
||||||
|
__default_var theme_color_normal normal
|
||||||
|
__default_var theme_color_time 666666
|
||||||
|
__default_var theme_color_path brwhite
|
||||||
|
__default_var theme_color_prompt white
|
||||||
|
__default_var theme_color_virtualenv bryellow
|
||||||
|
|
||||||
|
__default_var theme_color_status_prefix brblue
|
||||||
|
__default_var theme_color_status_jobs brgreen
|
||||||
|
__default_var theme_color_status_rw brwhite
|
||||||
|
|
||||||
|
__default_var theme_prompt_char_normal '$'
|
||||||
|
__default_var theme_prompt_char_superuser '#'
|
||||||
|
__default_var theme_prompt_char "$theme_prompt_char_normal"
|
||||||
|
|
||||||
|
__default_var theme_prompt_superuser_glyph \u2605
|
||||||
|
__default_var theme_prompt_userhost_separator ':'
|
||||||
|
|
||||||
|
__default_var theme_prompt_segment_separator_char ' '
|
||||||
|
__default_var theme_prompt_segment_separator_color normal
|
||||||
|
|
||||||
|
__default_var theme_prompt_status_jobs_char '%'
|
||||||
|
__default_var theme_prompt_status_rw_char '.'
|
||||||
|
__default_var theme_prompt_status_separator_char '/'
|
||||||
|
|
||||||
|
__default_var theme_prompt_virtualenv_char_begin '('
|
||||||
|
__default_var theme_prompt_virtualenv_char_end ')'
|
||||||
|
__default_var theme_prompt_virtualenv_color_char_begin normal
|
||||||
|
__default_var theme_prompt_virtualenv_color_char_end normal
|
||||||
|
|
||||||
|
__default_var theme_display_time_format '+%I:%M'
|
||||||
|
|
||||||
|
#__default_var __fish_git_prompt_color_prefix
|
||||||
|
#__default_var __fish_git_prompt_color_suffix
|
||||||
|
#__default_var __fish_git_prompt_color_bare
|
||||||
|
__default_var __fish_git_prompt_color_merging red
|
||||||
|
__default_var __fish_git_prompt_color_branch brblue
|
||||||
|
#__default_var __fish_git_prompt_color_flags
|
||||||
|
#__default_var __fish_git_prompt_color_upstream
|
||||||
|
#
|
||||||
|
#__fish_git_prompt_describe_style default|contains|describe|branch
|
||||||
|
__default_var __fish_git_prompt_showcolorhints yes
|
||||||
|
__default_var __fish_git_prompt_show_informative_status yes
|
||||||
|
__default_var __fish_git_prompt_char_stateseparator ' '
|
||||||
|
|
||||||
|
# Unofficial fish_git_prompt settings
|
||||||
|
__default_var __fish_git_prompt_char_branch_begin ''
|
||||||
|
__default_var __fish_git_prompt_char_branch_end ''
|
||||||
|
__default_var __fish_git_prompt_color_branch_begin bryellow
|
||||||
|
__default_var __fish_git_prompt_color_branch_end bryellow
|
||||||
|
|
||||||
|
|
||||||
|
function __theme_print_git_status
|
||||||
|
[ "$theme_display_git" = 'no' ]; and return
|
||||||
|
set -l git_prompt (__fish_git_prompt | command sed -e 's/^ (//' -e 's/)$//')
|
||||||
|
|
||||||
|
[ "$git_prompt" = "" ]; and return
|
||||||
|
|
||||||
|
print_colored $__fish_git_prompt_char_branch_begin $__fish_git_prompt_color_branch_begin
|
||||||
|
printf '%s' $git_prompt
|
||||||
|
print_colored $__fish_git_prompt_char_branch_end $__fish_git_prompt_color_branch_end
|
||||||
|
end
|
||||||
|
function __theme_print_jobs
|
||||||
|
[ "$theme_display_jobs" = 'no' ]; and return
|
||||||
|
set -l num_jobs (jobs -c | command wc -l)
|
||||||
|
|
||||||
|
if [ $num_jobs -gt 0 -o "$theme_display_jobs_always" = "yes" ]
|
||||||
|
print_colored "$theme_prompt_status_jobs_char" $theme_color_status_prefix
|
||||||
|
print_colored "$theme_prompt_status_separator_char" $theme_color_separator
|
||||||
|
print_colored "$num_jobs" $theme_color_status_jobs
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function __theme_print_prompt_char
|
||||||
|
print_colored $theme_prompt_char $theme_color_prompt
|
||||||
|
end
|
||||||
|
function __theme_print_pwd
|
||||||
|
print_colored (prompt_pwd) $theme_color_path
|
||||||
|
end
|
||||||
|
function __theme_print_pwd_rw
|
||||||
|
[ "$theme_display_rw" = 'no' ]; and return;
|
||||||
|
set -l rw_chars
|
||||||
|
|
||||||
|
if [ -r . ]; set rw_chars r; end
|
||||||
|
if [ -w . ]; set rw_chars $rw_chars"w"; end
|
||||||
|
|
||||||
|
print_colored $theme_prompt_status_rw_char $theme_color_status_prefix
|
||||||
|
print_colored $theme_prompt_status_separator_char $theme_color_separator
|
||||||
|
print_colored $rw_chars $theme_color_status_rw
|
||||||
|
end
|
||||||
|
function __theme_print_superuser
|
||||||
|
if [ (command id -u) = "0" ]
|
||||||
|
set theme_prompt_char "$theme_prompt_char_superuser"
|
||||||
|
print_colored $theme_prompt_superuser_glyph $theme_color_superuser
|
||||||
|
else
|
||||||
|
set theme_prompt_char "$theme_prompt_char_normal"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function __theme_print_time
|
||||||
|
[ "$theme_display_time" = 'yes' ]; or return;
|
||||||
|
print_colored (command date $theme_display_time_format) $theme_color_time
|
||||||
|
end
|
||||||
|
function __theme_print_userhost
|
||||||
|
echo -ns (__theme_print_superuser) $USER (__theme_reset_color)
|
||||||
|
|
||||||
|
if [ "$theme_display_group" != 'no' ]
|
||||||
|
print_colored $theme_prompt_userhost_separator $theme_color_separator
|
||||||
|
print_colored (id -gn) $theme_color_group
|
||||||
|
end
|
||||||
|
|
||||||
|
print_colored "@" $theme_color_separator
|
||||||
|
print_colored (prompt_hostname) $theme_color_host
|
||||||
|
end
|
||||||
|
function __theme_print_virtualenv
|
||||||
|
[ "$theme_display_virtualenv" = 'no' -o -z "$VIRTUAL_ENV" ]; and return
|
||||||
|
|
||||||
|
set -l basename (basename "$VIRTUAL_ENV")
|
||||||
|
|
||||||
|
# special case for Aspen magic directories (http://www.zetadev.com/software/aspen/)
|
||||||
|
if test "$basename" = "__"
|
||||||
|
set basename (basename (dirname "$VIRTUAL_ENV"))
|
||||||
|
end
|
||||||
|
|
||||||
|
print_colored $theme_prompt_virtualenv_char_begin $theme_prompt_virtualenv_color_char_begin
|
||||||
|
print_colored $basename $theme_color_virtualenv
|
||||||
|
print_colored $theme_prompt_virtualenv_char_end $theme_prompt_virtualenv_color_char_end
|
||||||
|
end
|
||||||
|
function __theme_reset_color
|
||||||
|
set_color $theme_color_normal
|
||||||
|
end
|
||||||
|
function print_colored
|
||||||
|
set -l bgcolor normal
|
||||||
|
set -l fgcolor normal
|
||||||
|
set -l text
|
||||||
|
|
||||||
|
if contains -- -b in $argv[1]
|
||||||
|
set bgcolor $argv[2]
|
||||||
|
set fgcolor $argv[-1]
|
||||||
|
set text $argv[3..-2]
|
||||||
|
else
|
||||||
|
set fgcolor $argv[-1]
|
||||||
|
set text $argv[1..-2]
|
||||||
|
end
|
||||||
|
|
||||||
|
printf '%s%s%s' (set_color -b $bgcolor $fgcolor) (string join " " $text) (__theme_reset_color)
|
||||||
|
end
|
||||||
|
function fish_prompt
|
||||||
|
set -l sep (set_color $theme_prompt_segment_separator_color)$theme_prompt_segment_separator_char(__theme_reset_color)
|
||||||
|
set -l line1 (string join "$sep" \
|
||||||
|
(__theme_print_time) \
|
||||||
|
(__theme_print_userhost) \
|
||||||
|
(__theme_print_pwd) \
|
||||||
|
(__theme_print_git_status) \
|
||||||
|
(__theme_print_jobs) \
|
||||||
|
(__theme_print_pwd_rw) \
|
||||||
|
)
|
||||||
|
set -l line2 (string join " " \
|
||||||
|
(__theme_print_virtualenv) \
|
||||||
|
(__theme_print_prompt_char)\
|
||||||
|
)
|
||||||
|
|
||||||
|
echo "$line1"
|
||||||
|
echo "$line2 "
|
||||||
|
end
|
|
@ -0,0 +1,7 @@
|
||||||
|
function fish_right_prompt
|
||||||
|
set -l st $status
|
||||||
|
|
||||||
|
if [ $status != 0 ]
|
||||||
|
echo (set_color $theme_color_error) ↵ $st(set_color $theme_color_normal)
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,29 @@
|
||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
||||||
|
SETUVAR fish_color_cancel:\x2dr
|
||||||
|
SETUVAR fish_color_command:--bold
|
||||||
|
SETUVAR fish_color_comment:990000
|
||||||
|
SETUVAR fish_color_cwd:green
|
||||||
|
SETUVAR fish_color_cwd_root:red
|
||||||
|
SETUVAR fish_color_end:009900
|
||||||
|
SETUVAR fish_color_error:ff0000
|
||||||
|
SETUVAR fish_color_escape:00a6b2
|
||||||
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_host:normal
|
||||||
|
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
||||||
|
SETUVAR fish_color_normal:normal
|
||||||
|
SETUVAR fish_color_operator:00a6b2
|
||||||
|
SETUVAR fish_color_param:cyan
|
||||||
|
SETUVAR fish_color_quote:999900
|
||||||
|
SETUVAR fish_color_redirection:00afff
|
||||||
|
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_user:brgreen
|
||||||
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell
|
||||||
|
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||||
|
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
||||||
|
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
|
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||||
|
SETUVAR theme_display_group:no
|
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/fish
|
||||||
|
#
|
||||||
|
# Fish script to run ssh-agent correctly, i.e. only start a new one when
|
||||||
|
# necessary. Drop it into ~/.config/fish/conf.d and forget about it.
|
||||||
|
#
|
||||||
|
# Uses ps and kill, everything else is done inside fish.
|
||||||
|
#
|
||||||
|
# Requires fish 2.3 for the string manipulation.
|
||||||
|
#
|
||||||
|
# Works with Fedora 26 and CentOS 7, for CentOS 6 you'll need a third party
|
||||||
|
# repo for fish anyway so make sure it's recent enough.
|
||||||
|
#
|
||||||
|
if status --is-interactive
|
||||||
|
|
||||||
|
# Load the SSH environment variables
|
||||||
|
if test -f ~/.ssh/environment
|
||||||
|
source ~/.ssh/environment
|
||||||
|
end
|
||||||
|
|
||||||
|
# Check the environment variables are present
|
||||||
|
if test \( "$SSH_AGENT_PID" != "" \) -a \( "$SSH_AUTH_SOCK" != "" \) -a \( -S "$SSH_AUTH_SOCK" \)
|
||||||
|
# Check it's not pointing at GNOME askpass
|
||||||
|
if string match -rv "/run/user/.*" "$SSH_AUTH_SOCK" >/dev/null
|
||||||
|
# Check the agent's actually running
|
||||||
|
if ps -p "$SSH_AGENT_PID" >/dev/null
|
||||||
|
set -e SSH_ASKPASS
|
||||||
|
exit
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# If we get this far, something is wrong
|
||||||
|
# Kill the existing agent process if possible
|
||||||
|
if test "$SSH_AGENT_PID" != ""
|
||||||
|
kill -s TERM "$SSH_AGENT_PID" 2>/dev/null
|
||||||
|
end
|
||||||
|
|
||||||
|
# Start up a new agent, set the environment variables, and store them
|
||||||
|
# in the file for other shell instances
|
||||||
|
set a (ssh-agent) >/dev/null
|
||||||
|
set s (string match -r '.*=[^;]*' $a)
|
||||||
|
rm ~/.ssh/environment 2> /dev/null
|
||||||
|
for l in $s
|
||||||
|
set v (string replace -r '=' ' ' $l)
|
||||||
|
eval "set -x" $v
|
||||||
|
echo "set -x " $v >> ~/.ssh/environment
|
||||||
|
ssh-add 2> /dev/null
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,11 @@
|
||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.within.htop;
|
||||||
|
in {
|
||||||
|
options.within.htop.enable = mkEnableOption "htop";
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.htop.enable = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.within.k8s;
|
||||||
|
in {
|
||||||
|
options.within.k8s.enable = mkEnableOption "Kubernetes tools";
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
# cluster management tool
|
||||||
|
kubectl
|
||||||
|
kubectx
|
||||||
|
k9s
|
||||||
|
|
||||||
|
# kubernetes in docker
|
||||||
|
kind
|
||||||
|
];
|
||||||
|
};}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.within.keybase;
|
||||||
|
in {
|
||||||
|
options.within.keybase = {
|
||||||
|
enable = mkEnableOption "Enable keybase/kbfs support";
|
||||||
|
gui = mkEnableOption "Enable keybase gui installation";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.keybase.enable = true;
|
||||||
|
services.kbfs.enable = true;
|
||||||
|
|
||||||
|
home.packages = if cfg.gui then [ pkgs.keybase-gui ] else [ pkgs.keybase ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.within.luakit;
|
||||||
|
in {
|
||||||
|
options.within.luakit.enable = mkEnableOption "enables luakit in userspace";
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home = {
|
||||||
|
packages = [ pkgs.luakit ];
|
||||||
|
file = {
|
||||||
|
".local/share/luakit/newtab.html".source = ./start.html;
|
||||||
|
".config/luakit/theme-dark.lua".source = ./theme-dark.lua;
|
||||||
|
".config/luakit/userconf.lua".text = ''
|
||||||
|
local settings = require "settings"
|
||||||
|
settings.window.home_page = "luakit://newtab/"
|
||||||
|
|
||||||
|
-- Load library of useful functions for luakit
|
||||||
|
local lousy = require "lousy"
|
||||||
|
|
||||||
|
lousy.theme.init(lousy.util.find_config("theme-dark.lua"))
|
||||||
|
assert(lousy.theme.get(), "failed to load theme")
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,176 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font: 18px "Hack";
|
||||||
|
background: #1D2021;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #a89984;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 1.4em;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 10px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
text-align: center;
|
||||||
|
padding: 0;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li:hover a {
|
||||||
|
transition: color 1.5s ease;
|
||||||
|
color: #d5c4a1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li a:hover {
|
||||||
|
transition: color 0.2s ease;
|
||||||
|
color: #fbf1c7;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li:nth-child(1n) h1 {
|
||||||
|
color: #458588;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li:nth-child(2n) h1 {
|
||||||
|
color: #b16286;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li:nth-child(3n) h1 {
|
||||||
|
color: #98971a;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li:nth-child(4n) h1 {
|
||||||
|
color: #d65d0e;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li:nth-child(5n) h1 {
|
||||||
|
color: #689d6a;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li:nth-child(6n) h1 {
|
||||||
|
color: #d79921;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li:nth-child(7n) h1 {
|
||||||
|
color: #cc241d;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li:nth-child(8n) h1 {
|
||||||
|
color: #859900;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 900px) {
|
||||||
|
ul li > ul {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul li:hover ul {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 900px) {
|
||||||
|
|
||||||
|
body > ul {
|
||||||
|
width: 800px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body > ul > li {
|
||||||
|
float: left;
|
||||||
|
width: 180px;
|
||||||
|
margin: 0 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-height: 500px) {
|
||||||
|
body > ul {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-height: 500px) {
|
||||||
|
body > ul {
|
||||||
|
margin: 200px auto 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<center>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<h1>social</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://twitter.com">twitter</a></li>
|
||||||
|
<li><a href="https://mst3k.interlinked.me">mst3k</a></li>
|
||||||
|
<li><a href="https://youtube.com">youtube</a></li>
|
||||||
|
<li><a href="https://lobste.rs">lobsters</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<h1>git</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://github.com">github</a></li>
|
||||||
|
<li><a href="https://tulpa.dev">tulpa.dev</a></li>
|
||||||
|
<li><a href="https://github.com/Xe/xepkgs">xepkgs</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<h1>nixos</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://nixos.org/nixos/options.html">options</a></li>
|
||||||
|
<li><a href="https://nixos.org/nixos/manual/">manual</a></li>
|
||||||
|
<li><a href="https://nixos.org/nixpkgs/manual/">nixpkgs manual</a></li>
|
||||||
|
<li><a href="https://nixos.org/nix/manual/">nix manual</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<h1>within</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://maison.within.website">maison</a></li>
|
||||||
|
<li><a href="https://g.o">g.o</a></li>
|
||||||
|
<li><a href="https://mi.within.website">mi</a></li>
|
||||||
|
<li><a href="https://christine.website">site</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<h1>lojban</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://lojban.pw/cll/uncll-1.2.6/xhtml_section_chunks/">cll</a></li>
|
||||||
|
<li><a href="http://lojban.github.io/ilmentufa/camxes.html">camxes</a></li>
|
||||||
|
<li><a href="https://la-lojban.github.io/sutysisku/en/">sutysisku</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<h1>reddit</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://www.reddit.com/r/tulpas/">/r/tulpas</a></li>
|
||||||
|
<li><a href="https://www.reddit.com/r/conlangs/">/r/conlangs</a></li>
|
||||||
|
<li><a href="https://www.reddit.com/r/unixporn/">/r/unixporn</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<h1>owo</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://e621.net">e621</a></li>
|
||||||
|
<li><a href="https://www.reddit.com/r/yiff">/r/yiff</a></li>
|
||||||
|
<li><a href="https://derpibooru.org">derpibooru</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<h1></h1>
|
||||||
|
</li>
|
||||||
|
</ul>
|
|
@ -0,0 +1,86 @@
|
||||||
|
-------------------------------
|
||||||
|
-- Dark gruvbox luakit theme --
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
local theme = {}
|
||||||
|
|
||||||
|
-- Default settings
|
||||||
|
theme.font = "9pt Hack"
|
||||||
|
theme.fg = "#ebdbb2"
|
||||||
|
theme.bg = "#282828"
|
||||||
|
|
||||||
|
-- General colours
|
||||||
|
theme.success_fg = "#b8bb26"
|
||||||
|
theme.loaded_fg = "#83a598"
|
||||||
|
theme.error_fg = theme.fg
|
||||||
|
theme.error_bg = "#cc241d"
|
||||||
|
|
||||||
|
-- Warning colours
|
||||||
|
theme.warning_fg = "fb4934"
|
||||||
|
theme.warning_bg = theme.bg
|
||||||
|
|
||||||
|
-- Notification colours
|
||||||
|
theme.notif_fg = "#a89984"
|
||||||
|
theme.notif_bg = theme.bg
|
||||||
|
|
||||||
|
-- Menu colours
|
||||||
|
theme.menu_fg = theme.fg
|
||||||
|
theme.menu_bg = "#504945"
|
||||||
|
theme.menu_selected_fg = theme.menu_bg
|
||||||
|
theme.menu_selected_bg = "#83a598"
|
||||||
|
theme.menu_title_bg = "#3c3836"
|
||||||
|
theme.menu_primary_title_fg = theme.fg
|
||||||
|
theme.menu_secondary_title_fg = theme.fg
|
||||||
|
|
||||||
|
theme.menu_disabled_fg = "#928374"
|
||||||
|
theme.menu_disabled_bg = theme.menu_bg
|
||||||
|
theme.menu_enabled_fg = theme.menu_fg
|
||||||
|
theme.menu_enabled_bg = theme.menu_bg
|
||||||
|
theme.menu_active_fg = "#b8bb26"
|
||||||
|
theme.menu_active_bg = theme.menu_bg
|
||||||
|
|
||||||
|
-- Proxy manager
|
||||||
|
theme.proxy_active_menu_fg = theme.fg
|
||||||
|
theme.proxy_active_menu_bg = theme.bg
|
||||||
|
theme.proxy_inactive_menu_fg = '#928374'
|
||||||
|
theme.proxy_inactive_menu_bg = theme.bg
|
||||||
|
|
||||||
|
-- Statusbar specific
|
||||||
|
theme.sbar_fg = theme.fg
|
||||||
|
theme.sbar_bg = theme.bg
|
||||||
|
|
||||||
|
-- Downloadbar specific
|
||||||
|
theme.dbar_fg = theme.fg
|
||||||
|
theme.dbar_bg = theme.bg
|
||||||
|
theme.dbar_error_fg = "#fb4934"
|
||||||
|
|
||||||
|
-- Input bar specific
|
||||||
|
theme.ibar_fg = theme.fg
|
||||||
|
theme.ibar_bg = theme.bg
|
||||||
|
|
||||||
|
-- Tab label
|
||||||
|
theme.tab_fg = theme.fg
|
||||||
|
theme.tab_bg = "#504945"
|
||||||
|
theme.tab_hover_bg = "#3c3836"
|
||||||
|
theme.tab_ntheme = "#a89984"
|
||||||
|
theme.selected_fg = theme.fg
|
||||||
|
theme.selected_bg = theme.bg
|
||||||
|
theme.selected_ntheme = "#a89984"
|
||||||
|
theme.loading_fg = theme.loaded_fg
|
||||||
|
theme.loading_bg = theme.loaded_bg
|
||||||
|
|
||||||
|
theme.selected_private_tab_bg = "#b16296"
|
||||||
|
theme.private_tab_bg = "#8f3f71"
|
||||||
|
|
||||||
|
-- Trusted/untrusted ssl colours
|
||||||
|
theme.trust_fg = "#b8bb26"
|
||||||
|
theme.notrust_fg = "#fb4934"
|
||||||
|
|
||||||
|
-- General colour pairings
|
||||||
|
theme.ok = { fg = theme.fg, bg = theme.bg }
|
||||||
|
theme.warn = { fg = "#fb4934", bg = theme.bg }
|
||||||
|
theme.error = { fg = theme.fg, bg = "#cc241d" }
|
||||||
|
|
||||||
|
return theme
|
||||||
|
|
||||||
|
-- vim: et:sw=4:ts=8:sts=4:tw=80
|
|
@ -0,0 +1,100 @@
|
||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.within.neofetch;
|
||||||
|
in {
|
||||||
|
options.within.neofetch.enable = mkEnableOption "la'o neofetch bau la lojban";
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.file.".config/neofetch/config.conf".text = ''
|
||||||
|
# See this wiki page for more info:
|
||||||
|
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
|
||||||
|
print_info() {
|
||||||
|
info title
|
||||||
|
info underline
|
||||||
|
|
||||||
|
info "samcmu" distro
|
||||||
|
info "skami" model
|
||||||
|
info "samcmuralju" kernel
|
||||||
|
info "akti temci" uptime
|
||||||
|
info "bakfu" packages
|
||||||
|
info "calku" shell
|
||||||
|
info "tilcfu" resolution
|
||||||
|
info "cankyuijde ralju" wm
|
||||||
|
info "cakselsampla" term
|
||||||
|
info "samkroxo" cpu
|
||||||
|
info "vidnyskami" gpu
|
||||||
|
info "datnyvaugunma" memory
|
||||||
|
#info "elsa" song
|
||||||
|
|
||||||
|
info cols
|
||||||
|
}
|
||||||
|
|
||||||
|
kernel_shorthand="on"
|
||||||
|
distro_shorthand="off"
|
||||||
|
os_arch="on"
|
||||||
|
uptime_shorthand="on"
|
||||||
|
memory_percent="off"
|
||||||
|
package_managers="on"
|
||||||
|
shell_path="off"
|
||||||
|
shell_version="on"
|
||||||
|
speed_type="bios_limit"
|
||||||
|
speed_shorthand="off"
|
||||||
|
cpu_brand="on"
|
||||||
|
cpu_speed="on"
|
||||||
|
cpu_cores="logical"
|
||||||
|
cpu_temp="off"
|
||||||
|
gpu_brand="on"
|
||||||
|
gpu_type="all"
|
||||||
|
refresh_rate="off"
|
||||||
|
gtk_shorthand="off"
|
||||||
|
gtk2="on"
|
||||||
|
gtk3="on"
|
||||||
|
public_ip_host="http://ident.me"
|
||||||
|
public_ip_timeout=2
|
||||||
|
disk_show=('/')
|
||||||
|
disk_subtitle="mount"
|
||||||
|
music_player="amarok"
|
||||||
|
song_format="%title% - %artist%"
|
||||||
|
song_shorthand="off"
|
||||||
|
|
||||||
|
mpc_args=()
|
||||||
|
colors=(distro)
|
||||||
|
bold="on"
|
||||||
|
underline_enabled="on"
|
||||||
|
underline_char="-"
|
||||||
|
separator=":"
|
||||||
|
block_range=(0 15)
|
||||||
|
color_blocks="on"
|
||||||
|
block_width=3
|
||||||
|
block_height=1
|
||||||
|
bar_char_elapsed="-"
|
||||||
|
bar_char_total="="
|
||||||
|
bar_border="on"
|
||||||
|
bar_length=15
|
||||||
|
bar_color_elapsed="distro"
|
||||||
|
bar_color_total="distro"
|
||||||
|
cpu_display="off"
|
||||||
|
memory_display="off"
|
||||||
|
battery_display="off"
|
||||||
|
disk_display="off"
|
||||||
|
image_backend="ascii"
|
||||||
|
image_source="auto"
|
||||||
|
ascii_distro="auto"
|
||||||
|
ascii_colors=(distro)
|
||||||
|
ascii_bold="on"
|
||||||
|
image_loop="off"
|
||||||
|
thumbnail_dir=$HOME/tmp
|
||||||
|
crop_mode="normal"
|
||||||
|
crop_offset="center"
|
||||||
|
image_size="auto"
|
||||||
|
gap=3
|
||||||
|
yoffset=0
|
||||||
|
xoffset=0
|
||||||
|
background_color=
|
||||||
|
stdout="off"
|
||||||
|
'';
|
||||||
|
|
||||||
|
home.packages = with pkgs; [ neofetch ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
curl -F 'clbin=<-' https://clbin.com
|
|
@ -0,0 +1,20 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.file = {
|
||||||
|
"bin/clbin" = {
|
||||||
|
source = ./clbin;
|
||||||
|
executable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"bin/ix" = {
|
||||||
|
source = ./ix;
|
||||||
|
executable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"bin/sprunge" = {
|
||||||
|
source = ./sprunge;
|
||||||
|
executable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Examples:
|
||||||
|
# ix hello.txt # paste file (name/ext will be set).
|
||||||
|
# echo Hello world. | ix # read from STDIN (won't set name/ext).
|
||||||
|
# ix -n 1 self_destruct.txt # paste will be deleted after one read.
|
||||||
|
# ix -i ID hello.txt # replace ID, if you have permission.
|
||||||
|
# ix -d ID
|
||||||
|
|
||||||
|
ix() {
|
||||||
|
local opts
|
||||||
|
local OPTIND
|
||||||
|
[ -f "$HOME/.netrc" ] && opts='-n'
|
||||||
|
while getopts ":hd:i:n:" x; do
|
||||||
|
case $x in
|
||||||
|
h) echo "ix [-d ID] [-i ID] [-n N] [opts]"; return;;
|
||||||
|
d) $echo curl $opts -X DELETE ix.io/$OPTARG; return;;
|
||||||
|
i) opts="$opts -X PUT"; local id="$OPTARG";;
|
||||||
|
n) opts="$opts -F read:1=$OPTARG";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $(($OPTIND - 1))
|
||||||
|
[ -t 0 ] && {
|
||||||
|
local filename="$1"
|
||||||
|
shift
|
||||||
|
[ "$filename" ] && {
|
||||||
|
curl $opts -F f:1=@"$filename" $* ix.io/$id
|
||||||
|
return
|
||||||
|
}
|
||||||
|
echo "^C to cancel, ^D to send."
|
||||||
|
}
|
||||||
|
curl $opts -F f:1='<-' $* ix.io/$id
|
||||||
|
}
|
||||||
|
|
||||||
|
ix $*
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
curl -F 'sprunge=<-' http://sprunge.us
|
|
@ -0,0 +1,13 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.within.powershell;
|
||||||
|
in {
|
||||||
|
options.within.powershell.enable = mkEnableOption "enables powershell config";
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = [ pkgs.powershell ];
|
||||||
|
home.file.".config/powershell/Microsoft.PowerShell_profile.ps1".source =
|
||||||
|
./profile.ps1;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
if (Get-InstalledModule -Name posh-git) {
|
||||||
|
Import-Module posh-git
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Set-PSRepository -name PSGallery -InstallationPolicy Trusted
|
||||||
|
Install-Module posh-git -Scope CurrentUser -Force -Repository PSGallery
|
||||||
|
Import-Module posh-git
|
||||||
|
}
|
||||||
|
|
||||||
|
$GitPromptSettings.DefaultPromptPrefix.ForegroundColor = [ConsoleColor]::Magenta
|
||||||
|
$GitPromptSettings.DefaultPromptPath.ForegroundColor = [ConsoleColor]::Orange
|
||||||
|
$GitPromptSettings.DefaultPromptBeforeSuffix.Text = '`n'
|
||||||
|
|
||||||
|
function global:PromptWriteErrorInfo() {
|
||||||
|
if ($global:GitPromptValues.DollarQuestion) { return }
|
||||||
|
|
||||||
|
if ($global:GitPromptValues.LastExitCode) {
|
||||||
|
"`e[31m(" + $global:GitPromptValues.LastExitCode + ") `e[0m"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
"`e[31m! `e[0m"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$global:GitPromptSettings.DefaultPromptBeforeSuffix.Text = '`n$(PromptWriteErrorInfo)'
|
|
@ -0,0 +1,212 @@
|
||||||
|
{ config, nixosConfig, pkgs, lib, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = nixosConfig.within.sway;
|
||||||
|
nanpa = pkgs.tulpa.dev.cadey.nanpa;
|
||||||
|
in {
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
wayland.windowManager.sway = {
|
||||||
|
enable = true;
|
||||||
|
wrapperFeatures.gtk = true;
|
||||||
|
# emulate my dwm config
|
||||||
|
config = with pkgs;
|
||||||
|
let
|
||||||
|
focused = rec {
|
||||||
|
border = "#d3869b";
|
||||||
|
background = border;
|
||||||
|
text = "#32302f";
|
||||||
|
};
|
||||||
|
active = rec {
|
||||||
|
border = "#b16286";
|
||||||
|
background = border;
|
||||||
|
text = "#32302f";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
terminal = "${pkgs.st}/bin/st";
|
||||||
|
bars = [{
|
||||||
|
fonts = [ "Primihi 11" "Hack 10" ];
|
||||||
|
colors = {
|
||||||
|
background = "#282828";
|
||||||
|
statusline = "#ebdbb2";
|
||||||
|
separator = "#666666";
|
||||||
|
focusedWorkspace = focused;
|
||||||
|
activeWorkspace = active;
|
||||||
|
inactiveWorkspace = {
|
||||||
|
border = "#333333";
|
||||||
|
background = "#222222";
|
||||||
|
text = "#888888";
|
||||||
|
};
|
||||||
|
urgentWorkspace = {
|
||||||
|
border = "#2f343a";
|
||||||
|
background = "#900000";
|
||||||
|
text = "#ffffff";
|
||||||
|
};
|
||||||
|
bindingMode = {
|
||||||
|
border = "#2f343a";
|
||||||
|
background = "#900000";
|
||||||
|
text = "#ffffff";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
command = "${pkgs.sway}/bin/swaybar";
|
||||||
|
hiddenState = "hide";
|
||||||
|
mode = "dock";
|
||||||
|
position = "top";
|
||||||
|
statusCommand = if cfg.i3status then
|
||||||
|
"${pkgs.i3status}/bin/i3status"
|
||||||
|
else
|
||||||
|
"${pkgs.tulpa.dev.cadey.cabytcini}/bin/cabytcinysuhei";
|
||||||
|
workspaceButtons = true;
|
||||||
|
workspaceNumbers = false;
|
||||||
|
trayOutput = "primary";
|
||||||
|
}];
|
||||||
|
colors = {
|
||||||
|
focused = rec {
|
||||||
|
background = "#d3869b";
|
||||||
|
border = "#bdae93";
|
||||||
|
text = "#32302f";
|
||||||
|
indicator = "#2e9ef4";
|
||||||
|
childBorder = "#3d3285";
|
||||||
|
};
|
||||||
|
focusedInactive = rec {
|
||||||
|
background = "#b16286";
|
||||||
|
border = "#bdae93";
|
||||||
|
text = "#ebdbb2";
|
||||||
|
indicator = "#b57614";
|
||||||
|
childBorder = "#3d3285";
|
||||||
|
};
|
||||||
|
unfocused = rec {
|
||||||
|
background = "#8f3f71";
|
||||||
|
border = "#bdae93";
|
||||||
|
text = "#ebdbb2";
|
||||||
|
indicator = "#b57614";
|
||||||
|
childBorder = "#3d3285";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
floating = {
|
||||||
|
criteria =
|
||||||
|
[ { title = "Steam - Update News"; } { class = "Pavucontrol"; } ];
|
||||||
|
titlebar = true;
|
||||||
|
};
|
||||||
|
focus = { followMouse = "yes"; };
|
||||||
|
fonts = [ "Primihi 12" "Hack 10" ];
|
||||||
|
gaps = {
|
||||||
|
horizontal = 3;
|
||||||
|
vertical = 3;
|
||||||
|
inner = 3;
|
||||||
|
smartBorders = "on";
|
||||||
|
smartGaps = true;
|
||||||
|
};
|
||||||
|
workspaceAutoBackAndForth = true;
|
||||||
|
keybindings =
|
||||||
|
let modifier = config.wayland.windowManager.sway.config.modifier;
|
||||||
|
in lib.mkOptionDefault {
|
||||||
|
"${modifier}+Shift+Return" =
|
||||||
|
"exec ${pkgs.st}/bin/st";
|
||||||
|
"${modifier}+Shift+c" = "kill";
|
||||||
|
"${modifier}+p" =
|
||||||
|
"exec ${pkgs.dmenu}/bin/dmenu_path | ${pkgs.dmenu}/bin/dmenu -nb '#1d2021' -nf '#ebdbb2' -sb '#b16286' -sf '#fbf1c7' | ${pkgs.findutils}/bin/xargs swaymsg exec --";
|
||||||
|
"${modifier}+t" = "layout toggle split";
|
||||||
|
"${modifier}+f" = "layout tabbed";
|
||||||
|
"${modifier}+u" = "layout stacking";
|
||||||
|
"${modifier}+e" = "exec $HOME/bin/e";
|
||||||
|
|
||||||
|
"${modifier}+s" = "exec grim";
|
||||||
|
"${modifier}+Shift+s" = "exec slurp | grim -g -";
|
||||||
|
|
||||||
|
"${modifier}+1" = "exec ${nanpa}/bin/nanpac switch 1";
|
||||||
|
"${modifier}+2" = "exec ${nanpa}/bin/nanpac switch 2";
|
||||||
|
"${modifier}+3" = "exec ${nanpa}/bin/nanpac switch 3";
|
||||||
|
"${modifier}+4" = "exec ${nanpa}/bin/nanpac switch 4";
|
||||||
|
"${modifier}+5" = "exec ${nanpa}/bin/nanpac switch 5";
|
||||||
|
"${modifier}+6" = "exec ${nanpa}/bin/nanpac switch 6";
|
||||||
|
"${modifier}+7" = "exec ${nanpa}/bin/nanpac switch 7";
|
||||||
|
"${modifier}+8" = "exec ${nanpa}/bin/nanpac switch 8";
|
||||||
|
"${modifier}+9" = "exec ${nanpa}/bin/nanpac switch 9";
|
||||||
|
|
||||||
|
"${modifier}+m" = "focus output DP-1";
|
||||||
|
"${modifier}+k" = "focus output HDMI-A-1";
|
||||||
|
|
||||||
|
"${modifier}+Shift+1" = "exec ${nanpa}/bin/nanpac move 1";
|
||||||
|
"${modifier}+Shift+2" = "exec ${nanpa}/bin/nanpac move 2";
|
||||||
|
"${modifier}+Shift+3" = "exec ${nanpa}/bin/nanpac move 3";
|
||||||
|
"${modifier}+Shift+4" = "exec ${nanpa}/bin/nanpac move 4";
|
||||||
|
"${modifier}+Shift+5" = "exec ${nanpa}/bin/nanpac move 5";
|
||||||
|
"${modifier}+Shift+6" = "exec ${nanpa}/bin/nanpac move 6";
|
||||||
|
"${modifier}+Shift+7" = "exec ${nanpa}/bin/nanpac move 7";
|
||||||
|
"${modifier}+Shift+8" = "exec ${nanpa}/bin/nanpac move 8";
|
||||||
|
"${modifier}+Shift+9" = "exec ${nanpa}/bin/nanpac move 9";
|
||||||
|
|
||||||
|
"${modifier}+Shift+0" = "sticky toggle";
|
||||||
|
|
||||||
|
"${modifier}+Shift+minus" = "move scratchpad";
|
||||||
|
"${modifier}+minus" = "scratchpad show";
|
||||||
|
};
|
||||||
|
output = nixosConfig.cadey.sway.output;
|
||||||
|
startup = [
|
||||||
|
{
|
||||||
|
command = "systemctl --user restart waybar";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
{ command = "mako -c ${./mako.conf}"; }
|
||||||
|
{ command = "firefox"; }
|
||||||
|
{ command = "Discord"; }
|
||||||
|
{
|
||||||
|
command = "systemctl --user restart nanpad";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command =
|
||||||
|
"systemctl --user restart xdg-desktop-portal xdg-desktop-portal-wlr";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
window = { border = 1; };
|
||||||
|
};
|
||||||
|
extraSessionCommands = ''
|
||||||
|
export SDL_VIDEODRIVER=wayland
|
||||||
|
# needs qt5.qtwayland in systemPackages
|
||||||
|
export QT_QPA_PLATFORM=wayland
|
||||||
|
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
|
||||||
|
# Fix for some Java AWT applications (e.g. Android Studio),
|
||||||
|
# use this if they aren't displayed properly:
|
||||||
|
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
grim # for screenshots
|
||||||
|
slurp
|
||||||
|
swaylock
|
||||||
|
swayidle
|
||||||
|
wl-clipboard
|
||||||
|
mako # notification daemon
|
||||||
|
alacritty # Alacritty is the default terminal in the config
|
||||||
|
dmenu # Dmenu is the default in the config but i recommend wofi since its wayland native
|
||||||
|
];
|
||||||
|
home.file.".config/mako/config".source = ./mako.conf;
|
||||||
|
|
||||||
|
systemd.user.services = {
|
||||||
|
nanpad = {
|
||||||
|
Unit.Description = "workspace nanpa daemon";
|
||||||
|
Service = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${nanpa}/bin/nanpad";
|
||||||
|
};
|
||||||
|
Install.WantedBy = [ "sway-session.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg-desktop-portal = {
|
||||||
|
Unit.Description = "XDG Desktop Portal";
|
||||||
|
Service.ExecStart =
|
||||||
|
"${pkgs.xdg-desktop-portal}/libexec/xdg-desktop-portal";
|
||||||
|
Install.WantedBy = [ "sway-session.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg-desktop-portal-wlr = {
|
||||||
|
Unit.Description = "XDG Desktop Portal for wlroots compositors";
|
||||||
|
Service.ExecStart =
|
||||||
|
"${pkgs.xdg-desktop-portal-wlr}/libexec/xdg-desktop-portal-wlr";
|
||||||
|
Install.WantedBy = [ "sway-session.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
max-visible=5
|
|
@ -0,0 +1,90 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.within.tmux;
|
||||||
|
in {
|
||||||
|
options.within.tmux = {
|
||||||
|
enable = mkEnableOption "set up tmux";
|
||||||
|
shortcut = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "The tmux prefix key, default is C-s";
|
||||||
|
default = "s";
|
||||||
|
example = "a";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
shortcut = cfg.shortcut;
|
||||||
|
baseIndex = 1; # Widows numbers begin with 1
|
||||||
|
keyMode = "vi";
|
||||||
|
customPaneNavigationAndResize = true;
|
||||||
|
aggressiveResize = true;
|
||||||
|
historyLimit = 100000;
|
||||||
|
resizeAmount = 5;
|
||||||
|
escapeTime = 0;
|
||||||
|
newSession = true;
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
# Fix environment variables
|
||||||
|
set-option -g update-environment "SSH_AUTH_SOCK \
|
||||||
|
SSH_CONNECTION \
|
||||||
|
DISPLAY"
|
||||||
|
# Mouse works as expected
|
||||||
|
set-option -g mouse on
|
||||||
|
# Use default shell
|
||||||
|
set-option -g default-shell ''${SHELL}
|
||||||
|
# Extra Vi friendly stuff
|
||||||
|
# y and p as in vim
|
||||||
|
bind Escape copy-mode
|
||||||
|
unbind p
|
||||||
|
bind p paste-buffer
|
||||||
|
bind-key -T copy-mode-vi 'v' send -X begin-selection
|
||||||
|
bind-key -T copy-mode-vi 'C-v' send -X rectangle-toggle
|
||||||
|
bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
|
||||||
|
bind-key -T copy-mode-vi 'Space' send -X halfpage-down
|
||||||
|
bind-key -T copy-mode-vi 'Bspace' send -X halfpage-up
|
||||||
|
bind-key -T copy-mode-vi 'Escape' send -X cancel
|
||||||
|
# easy-to-remember split pane commands
|
||||||
|
bind v split-window -h -c "#{pane_current_path}"
|
||||||
|
bind h split-window -v -c "#{pane_current_path}"
|
||||||
|
bind c new-window -c "#{pane_current_path}"
|
||||||
|
unbind '"'
|
||||||
|
unbind %
|
||||||
|
|
||||||
|
# default statusbar color
|
||||||
|
set-option -g status-style bg=colour237,fg=colour223 # bg=bg1, fg=fg1
|
||||||
|
|
||||||
|
# default window title colors
|
||||||
|
set-window-option -g window-status-style bg=colour214,fg=colour237 # bg=yellow, fg=bg1
|
||||||
|
|
||||||
|
# default window with an activity alert
|
||||||
|
set-window-option -g window-status-activity-style bg=colour237,fg=colour248 # bg=bg1, fg=fg3
|
||||||
|
|
||||||
|
# active window title colors
|
||||||
|
set-window-option -g window-status-current-style bg=red,fg=colour237 # fg=bg1
|
||||||
|
|
||||||
|
# pane border
|
||||||
|
set-option -g pane-active-border-style fg=colour250 #fg2
|
||||||
|
set-option -g pane-border-style fg=colour237 #bg1
|
||||||
|
|
||||||
|
# message infos
|
||||||
|
set-option -g message-style bg=colour239,fg=colour223 # bg=bg2, fg=fg1
|
||||||
|
|
||||||
|
# writing commands inactive
|
||||||
|
set-option -g message-command-style bg=colour239,fg=colour223 # bg=fg3, fg=bg1
|
||||||
|
|
||||||
|
# pane number display
|
||||||
|
set-option -g display-panes-active-colour colour250 #fg2
|
||||||
|
set-option -g display-panes-colour colour237 #bg1
|
||||||
|
|
||||||
|
# clock
|
||||||
|
set-window-option -g clock-mode-colour colour109 #blue
|
||||||
|
|
||||||
|
# bell
|
||||||
|
set-window-option -g window-status-bell-style bg=colour167,fg=colour235 # bg=red, fg=bg
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,169 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
termDesktop = pkgs.writeTextFile {
|
||||||
|
name = "cadey-terminal.desktop";
|
||||||
|
destination = "/share/applications/cadey-terminal.desktop";
|
||||||
|
text = ''
|
||||||
|
[Desktop Entry]
|
||||||
|
Exec=/home/cadey/bin/term
|
||||||
|
Icon=utilities-terminal
|
||||||
|
Name[en_US]=Terminal
|
||||||
|
Name=Terminal
|
||||||
|
StartupNotify=true
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
cfg = config.within.urxvt;
|
||||||
|
in {
|
||||||
|
options.within.urxvt.enable =
|
||||||
|
mkEnableOption "Enables urxvt as the default terminal";
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
rxvt-unicode
|
||||||
|
urxvt_font_size
|
||||||
|
urxvt_perl
|
||||||
|
urxvt_tabbedex
|
||||||
|
urxvt_vtwheel
|
||||||
|
anonymousPro
|
||||||
|
|
||||||
|
# XXX HACK Terminal desktop file
|
||||||
|
termDesktop
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file."bin/term" = {
|
||||||
|
executable = true;
|
||||||
|
text = ''
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
${pkgs.xorg.xrdb}/bin/xrdb -merge ~/.Xresources
|
||||||
|
|
||||||
|
${pkgs.rxvt-unicode}/bin/urxvtc "$@"
|
||||||
|
if [ $? -eq 2 ]; then
|
||||||
|
${pkgs.rxvt-unicode}/bin/urxvtd -q -o -f
|
||||||
|
${pkgs.rxvt-unicode}/bin/urxvtc "$@"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
xresources.extraConfig = ''
|
||||||
|
! -----------------------------------------------------------------------------
|
||||||
|
! File: gruvbox-urxvt256.xresources
|
||||||
|
! Description: Retro groove colorscheme generalized
|
||||||
|
! Author: morhetz <morhetz@gmail.com>
|
||||||
|
! Source: https://github.com/morhetz/gruvbox-generalized
|
||||||
|
! Last Modified: 13 Dec 2013
|
||||||
|
! -----------------------------------------------------------------------------
|
||||||
|
URxvt.color24: #076678
|
||||||
|
URxvt.color66: #427b58
|
||||||
|
URxvt.color88: #9d0006
|
||||||
|
URxvt.color96: #8f3f71
|
||||||
|
URxvt.color100: #79740e
|
||||||
|
URxvt.color108: #8ec07c
|
||||||
|
URxvt.color109: #83a598
|
||||||
|
URxvt.color130: #af3a03
|
||||||
|
URxvt.color136: #b57614
|
||||||
|
URxvt.color142: #b8bb26
|
||||||
|
URxvt.color167: #fb4934
|
||||||
|
URxvt.color175: #d3869b
|
||||||
|
URxvt.color208: #fe8019
|
||||||
|
URxvt.color214: #fabd2f
|
||||||
|
URxvt.color223: #ebdbb2
|
||||||
|
URxvt.color228: #f2e5bc
|
||||||
|
URxvt.color229: #fbf1c7
|
||||||
|
URxvt.color230: #f9f5d7
|
||||||
|
URxvt.color234: #1d2021
|
||||||
|
URxvt.color235: #282828
|
||||||
|
URxvt.color236: #32302f
|
||||||
|
URxvt.color237: #3c3836
|
||||||
|
URxvt.color239: #504945
|
||||||
|
URxvt.color241: #665c54
|
||||||
|
URxvt.color243: #7c6f64
|
||||||
|
URxvt.color244: #928374
|
||||||
|
URxvt.color245: #928374
|
||||||
|
URxvt.color246: #a89984
|
||||||
|
URxvt.color248: #bdae93
|
||||||
|
URxvt.color250: #d5c4a1
|
||||||
|
'';
|
||||||
|
|
||||||
|
xresources.properties = {
|
||||||
|
# colors
|
||||||
|
"*background" = "#32302f";
|
||||||
|
"*foreground" = "#ebdbb2";
|
||||||
|
"*color0" = "#282828";
|
||||||
|
"*color1" = "#cc241d";
|
||||||
|
"*color2" = "#98971a";
|
||||||
|
"*color3" = "#d79921";
|
||||||
|
"*color4" = "#458588";
|
||||||
|
"*color5" = "#b16286";
|
||||||
|
"*color6" = "#689d6a";
|
||||||
|
"*color7" = "#a89984";
|
||||||
|
"*color8" = "#928374";
|
||||||
|
"*color9" = "#fb4934";
|
||||||
|
"*color10" = "#b8bb26";
|
||||||
|
"*color11" = "#fabd2f";
|
||||||
|
"*color12" = "#83a598";
|
||||||
|
"*color13" = "#d3869b";
|
||||||
|
"*color14" = "#8ec07c";
|
||||||
|
"*color15" = "#ebdbb2";
|
||||||
|
|
||||||
|
# extensions i use
|
||||||
|
"URxvt.perl-ext-common" = "default,clipboard,matcher,tabbedex,vtwheel";
|
||||||
|
|
||||||
|
# transparency
|
||||||
|
"URxvt*depth" = "32";
|
||||||
|
|
||||||
|
# URL opening
|
||||||
|
"URxvt.url-launcher" = "${pkgs.xdg_utils}/bin/xdg-open";
|
||||||
|
"URxvt.keysym.C-Delete" = "perl:matcher:last";
|
||||||
|
"URxvt.keysym.M-Delete" = "perl:matcher:list";
|
||||||
|
"URxvt.matcher.button" = "1";
|
||||||
|
|
||||||
|
# Tabs
|
||||||
|
"URxvt.tabbedex.autohide" = "false";
|
||||||
|
"URxvt.tabbedex.reopen-on-close" = "no";
|
||||||
|
"URxvt.keysym.Control-t" = "perl:tabbedex:new_tab";
|
||||||
|
"URxvt.keysym.Control-Tab" = "perl:tabbedex:next_tab";
|
||||||
|
"URxvt.keysym.Control-Shift-Tab" = "perl:tabbedex:prev_tab";
|
||||||
|
"URxvt.keysym.Control-Shift-Left" = "perl:tabbedex:move_tab_left";
|
||||||
|
"URxvt.keysym.Control-Shift-Right" = "perl:tabbedex:move_tab_right";
|
||||||
|
"URxvt.keysym.Control-Shift-R" = "perl:tabbedex:rename_tab";
|
||||||
|
"URxvt.tabbedex.no-tabbedex-keys" = "true";
|
||||||
|
"URxvt.tabbedex.new-button" = "yes";
|
||||||
|
|
||||||
|
# Clipboard
|
||||||
|
"URxvt.clipboard.autocopy" = "true";
|
||||||
|
"URxvt.keysym.Shift-M-C" = "perl:clipboard:copy";
|
||||||
|
"URxvt.keysym.Shift-M-V" = "perl:clipboard:paste";
|
||||||
|
|
||||||
|
# Hacks
|
||||||
|
"URxvt*skipBuiltinGlyphs" = "true";
|
||||||
|
"URxvt.scrollBar" = "false";
|
||||||
|
"URxvt.iso14755" = "false";
|
||||||
|
"URxvt.iso14755_52" = "false";
|
||||||
|
"URxvt.geometry" = "100x50";
|
||||||
|
"URxvt.depth" = "32";
|
||||||
|
"URxvt.background" = "[95]#32302f";
|
||||||
|
|
||||||
|
# Font
|
||||||
|
"URxvt.font" = "xft:Hack:size=9";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services = {
|
||||||
|
urxvtd = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Urxvt Terminal Daemon";
|
||||||
|
Documentation = "man:urxvtd(1) man:urxvt(1)";
|
||||||
|
};
|
||||||
|
|
||||||
|
Service = { ExecStart = [ "${pkgs.rxvt-unicode}/bin/urxvtd -o -q" ]; };
|
||||||
|
|
||||||
|
Install = { WantedBy = [ "default.target" ]; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.within.vim;
|
||||||
|
in {
|
||||||
|
options.within.vim.enable = mkEnableOption "Enables Within's vim config";
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ vim ];
|
||||||
|
|
||||||
|
home.file.".vimrc".source = ./vimrc;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,91 @@
|
||||||
|
" This is like my other vimrc except it needs no plugins
|
||||||
|
|
||||||
|
colorscheme desert
|
||||||
|
|
||||||
|
syntax on
|
||||||
|
filetype plugin indent on
|
||||||
|
|
||||||
|
set whichwrap=<,>,[,],b,
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
set ruler
|
||||||
|
set number
|
||||||
|
set cursorline
|
||||||
|
set cursorcolumn
|
||||||
|
set background=dark
|
||||||
|
set autoread
|
||||||
|
|
||||||
|
" Leader
|
||||||
|
let mapleader = ","
|
||||||
|
let g:mapleader = ","
|
||||||
|
nmap <leader>w :w!<cr>
|
||||||
|
|
||||||
|
" Highlight a line to read over later
|
||||||
|
nnoremap <silent> <Leader>l ml:execute 'match Search /\%'.line('.').'l/'<CR>
|
||||||
|
|
||||||
|
" Turn backup off, since most stuff is in SVN, git et.c anyway...
|
||||||
|
set nobackup
|
||||||
|
set nowb
|
||||||
|
set noswapfile
|
||||||
|
|
||||||
|
" But also have C-like languages use C spacing
|
||||||
|
" Thanks much jdhore
|
||||||
|
set ai
|
||||||
|
au BufRead,BufNewFile *.c,*.h,*.cpp,*.cxx,*.hpp,*.cc,*.c++,*.hh,*.hxx,*.ipp,*.moc,*.tcc,*.inl set cindent
|
||||||
|
au BufRead,BufNewFile *.c,*.h,*.cpp,*.cxx,*.hpp,*.cc,*.c++,*.hh,*.hxx,*.ipp,*.moc,*.tcc,*.inl set tabstop=8
|
||||||
|
au BufRead,BufNewFile *.c,*.h,*.cpp,*.cxx,*.hpp,*.cc,*.c++,*.hh,*.hxx,*.ipp,*.moc,*.tcc,*.inl set shiftwidth=8
|
||||||
|
set cinoptions=>s,e0,n0,f0,{0,}0,^0,=s,ps,t0,c3,+s,(2s,us,)20,*30,gs,hs
|
||||||
|
|
||||||
|
" Python spacing in python
|
||||||
|
autocmd Filetype python setlocal expandtab tabstop=4 shiftwidth=4
|
||||||
|
|
||||||
|
au Filetype lolcode setl et ts=4 sw=4
|
||||||
|
|
||||||
|
au BufRead APKBUILD setl noexpandtab softtabstop=0 tabstop=4 shiftwidth=4 nosmarttab
|
||||||
|
|
||||||
|
" Show tabs
|
||||||
|
set list
|
||||||
|
set listchars=tab:>-,trail:~,extends:>,precedes:<
|
||||||
|
|
||||||
|
" status line
|
||||||
|
set ls=2
|
||||||
|
set statusline=%F%m%r%h%w\ >\ FORMAT=%{&ff}\ >\ TYPE=%Y\ >\ BUF=\#%n\ <\ POS=%04l,%04v\ <\ %p%%\ <\ LEN=%L
|
||||||
|
|
||||||
|
" wildmenu
|
||||||
|
set wildmenu
|
||||||
|
set wildignore=*.o,*~,*.pyc
|
||||||
|
|
||||||
|
" Delete extra spaces 4 at a time
|
||||||
|
:highlight ExtraWhitespace ctermbg=red guibg=red
|
||||||
|
:match ExtraWhitespace /\s\+$/
|
||||||
|
:match ExtraWhitespace /\s\+$\| \+\ze\t/
|
||||||
|
|
||||||
|
" Paste macros
|
||||||
|
" Thanks to jdhore
|
||||||
|
map <F8> :set paste<CR>
|
||||||
|
map <F9> :set nopaste<CR>
|
||||||
|
imap <F8> <C-O>:set paste<CR>
|
||||||
|
imap <F9> <nop>
|
||||||
|
set pastetoggle=<F9>
|
||||||
|
map <F3> gg=G:w<cr>
|
||||||
|
|
||||||
|
" Lvimrc
|
||||||
|
" if .lvimrc exists in parent directory of loaded file, load it as config
|
||||||
|
let lvimrc_path = expand('%:p:h') . '/.lvimrc'
|
||||||
|
if filereadable(lvimrc_path)
|
||||||
|
execute 'so' lvimrc_path
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Color column definition
|
||||||
|
let &colorcolumn="80,100, 110"
|
||||||
|
highlight ColorColumn ctermbg=52
|
||||||
|
|
||||||
|
" Delete trailing white space on save, useful for Python and CoffeeScript ;)
|
||||||
|
func! DeleteTrailingWS()
|
||||||
|
exe "normal mz"
|
||||||
|
%s/\s\+$//ge
|
||||||
|
exe "normal `z"
|
||||||
|
endfunc
|
||||||
|
autocmd BufWrite *.py :call DeleteTrailingWS()
|
||||||
|
|
||||||
|
" Spellchecking
|
||||||
|
map <leader>ss :setlocal spell!<cr>
|
Binary file not shown.
After Width: | Height: | Size: 9.2 MiB |
|
@ -0,0 +1,23 @@
|
||||||
|
{ config, pkgs, nixosConfig, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.within.weechat;
|
||||||
|
in {
|
||||||
|
options.within.weechat = {
|
||||||
|
enable = mkEnableOption "Enables weechat-headless";
|
||||||
|
hostname = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "hostname to enable this on";
|
||||||
|
default = "chrysalis";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable (mkIf (nixosConfig.networking.hostName == cfg.hostname) {
|
||||||
|
systemd.user.services.weechat = {
|
||||||
|
Unit.Description = "weechat headless";
|
||||||
|
Service.ExecStart = [ "${pkgs.weechat}/bin/weechat-headless --stdout" ];
|
||||||
|
Install.WantedBy = [ "default.target" ];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.xe.zathura;
|
||||||
|
in {
|
||||||
|
options.xe.zathura.enable = mkEnableOption "Zathura PDF/ePub reader";
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [ zathura ];
|
||||||
|
|
||||||
|
file.".config/zathura/zathurarc".source = ./zathurarc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
## Gruvbox Dark
|
||||||
|
set notification-error-bg "#282828" # bg
|
||||||
|
set notification-error-fg "#fb4934" # bright:red
|
||||||
|
set notification-warning-bg "#282828" # bg
|
||||||
|
set notification-warning-fg "#fabd2f" # bright:yellow
|
||||||
|
set notification-bg "#282828" # bg
|
||||||
|
set notification-fg "#b8bb26" # bright:green
|
||||||
|
|
||||||
|
set completion-bg "#504945" # bg2
|
||||||
|
set completion-fg "#ebdbb2" # fg
|
||||||
|
set completion-group-bg "#3c3836" # bg1
|
||||||
|
set completion-group-fg "#928374" # gray
|
||||||
|
set completion-highlight-bg "#83a598" # bright:blue
|
||||||
|
set completion-highlight-fg "#504945" # bg2
|
||||||
|
|
||||||
|
# Define the color in index mode
|
||||||
|
set index-bg "#504945" # bg2
|
||||||
|
set index-fg "#ebdbb2" # fg
|
||||||
|
set index-active-bg "#83a598" # bright:blue
|
||||||
|
set index-active-fg "#504945" # bg2
|
||||||
|
|
||||||
|
set inputbar-bg "#282828" # bg
|
||||||
|
set inputbar-fg "#ebdbb2" # fg
|
||||||
|
|
||||||
|
set statusbar-bg "#504945" # bg2
|
||||||
|
set statusbar-fg "#ebdbb2" # fg
|
||||||
|
|
||||||
|
set highlight-color "#fabd2f" # bright:yellow
|
||||||
|
set highlight-active-color "#fe8019" # bright:orange
|
||||||
|
|
||||||
|
set default-bg "#282828" # bg
|
||||||
|
set default-fg "#ebdbb2" # fg
|
||||||
|
set render-loading true
|
||||||
|
set render-loading-bg "#282828" # bg
|
||||||
|
set render-loading-fg "#ebdbb2" # fg
|
||||||
|
|
||||||
|
# Recolor book content's color
|
||||||
|
set recolor-lightcolor "#282828" # bg
|
||||||
|
set recolor-darkcolor "#ebdbb2" # fg
|
||||||
|
set recolor "true"
|
||||||
|
# set recolor-keephue true # keep original color
|
||||||
|
|
||||||
|
# use CLIPBOARD, not PRIMARY
|
||||||
|
set selection-clipboard clipboard
|
|
@ -26,4 +26,5 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
users.users.root.openssh.authorizedKeys.keys = config.users.users.cadey.openssh.authorizedKeys.keys;
|
users.users.root.openssh.authorizedKeys.keys = config.users.users.cadey.openssh.authorizedKeys.keys;
|
||||||
|
home-manager.users.cadey = (import ./cadey);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
name = "Xe";
|
||||||
|
email = "me@christine.website";
|
||||||
|
commitTemplate = pkgs.writeTextFile {
|
||||||
|
name = "cadey-commit-template";
|
||||||
|
text = ''
|
||||||
|
Signed-off-by: ${name} <${email}>
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
imports = [ ../../home-manager ];
|
||||||
|
|
||||||
|
within = {
|
||||||
|
fish.enable = true;
|
||||||
|
htop.enable = true;
|
||||||
|
neofetch.enable = true;
|
||||||
|
powershell.enable = true;
|
||||||
|
tmux.enable = true;
|
||||||
|
vim.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.lorri.enable = true;
|
||||||
|
home.packages = with pkgs; [ cachix niv nixfmt mosh gist bind unzip ];
|
||||||
|
|
||||||
|
programs.direnv.enable = true;
|
||||||
|
programs.direnv.enableFishIntegration = true;
|
||||||
|
programs.direnv.nix-direnv.enable = true;
|
||||||
|
programs.direnv.nix-direnv.enableFlakes = true;
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
package = pkgs.gitAndTools.gitFull;
|
||||||
|
enable = true;
|
||||||
|
userName = name;
|
||||||
|
userEmail = email;
|
||||||
|
ignores = [ "*~" "*.swp" "*.#" ];
|
||||||
|
delta.enable = true;
|
||||||
|
extraConfig = {
|
||||||
|
commit.template = "${commitTemplate}";
|
||||||
|
core.editor = "vim";
|
||||||
|
color.ui = "auto";
|
||||||
|
credential.helper = "store --file ~/.git-credentials";
|
||||||
|
format.signoff = true;
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
protocol.keybase.allow = "always";
|
||||||
|
pull.rebase = "true";
|
||||||
|
push.default = "current";
|
||||||
|
|
||||||
|
url = {
|
||||||
|
"git@github.com:".insteadOf = "https://github.com/";
|
||||||
|
"git@ssh.tulpa.dev:".insteadOf = "https://tulpa.dev/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ ../../home-manager ];
|
||||||
|
|
||||||
|
within = {
|
||||||
|
emacs.enable = true;
|
||||||
|
fish.enable = true;
|
||||||
|
tmux.enable = true;
|
||||||
|
tmux.shortcut = "a";
|
||||||
|
vim.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
nix-direnv = {
|
||||||
|
enable = true;
|
||||||
|
enableFlakes = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config = {
|
||||||
|
allowBroken = true;
|
||||||
|
allowUnfree = true;
|
||||||
|
|
||||||
|
packageOverrides = import ../../../pkgs;
|
||||||
|
|
||||||
|
manual.manpages.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.lorri.enable = true;
|
||||||
|
}
|
|
@ -23,6 +23,8 @@ in {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home-manager.users.mai = (import ./mai);
|
||||||
|
|
||||||
users.users.vic = {
|
users.users.vic = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" "libvirtd" "adbusers" "dialout" "within" ];
|
extraGroups = [ "wheel" "libvirtd" "adbusers" "dialout" "within" ];
|
||||||
|
@ -32,5 +34,7 @@ in {
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIChFSS2KUKbGYFrkbO2VwxuWqFkCSdzbxh68Edk+Pkss victo@Nami"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIChFSS2KUKbGYFrkbO2VwxuWqFkCSdzbxh68Edk+Pkss victo@Nami"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home-manager.users.vic = (import ./vic);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ ../../home-manager ];
|
||||||
|
|
||||||
|
within.powershell.enable = true;
|
||||||
|
within.vim.enable = true;
|
||||||
|
|
||||||
|
home.packages = [ pkgs.vim ];
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "Victor Fernandes";
|
||||||
|
userEmail = "victorvalenca@gmail.com";
|
||||||
|
ignores = [ "*~" "*.swp" "*.#" ];
|
||||||
|
delta.enable = true;
|
||||||
|
extraConfig = {
|
||||||
|
core.editor = "vim";
|
||||||
|
credential.helper = "store --file ~/.git-credentials";
|
||||||
|
format.signoff = true;
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
pull.rebase = "true";
|
||||||
|
|
||||||
|
url = {
|
||||||
|
"git@github.com:".insteadOf = "https://github.com/";
|
||||||
|
"git@ssh.tulpa.dev:".insteadOf = "https://tulpa.dev/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue