Compare commits

..

2 commits

Author SHA1 Message Date
2272840cfa add fish configs 2024-04-26 14:04:03 -04:00
d591c97ceb mv .spacemacs config 2024-04-26 14:03:17 -04:00
10 changed files with 265 additions and 243 deletions

View file

@ -1,154 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# need add'l filesystems?
# boot.supportedFilesystems = [ "ntfs" ];
networking.hostName = "acetosella"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "America/New_York";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# Enable the X11 windowing system.
services.xserver.enable = true;
# Enable the KDE Desktop Environment.
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
# Configure keymap in X11
services.xserver = {
layout = "us";
xkbVariant = "";
};
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.oxaliq = {
isNormalUser = true;
description = "oxaliq";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [
firefox
# thunderbird
];
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
pkgs.fish
wget
usbutils
util-linux
git
pkgs.vlc
# editors
vim
emacs
pkgs.vscodium
# chat + productivity
pkgs.logseq
pkgs.deltachat-desktop
pkgs.signal-desktop
pkgs.libreoffice
# lisps & other languages i guess
pkgs.racket
pkgs.clojure
pkgs.sbcl
pkgs.ghc
pkgs.rustc
pkgs.godot_4
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment?
}

View file

@ -1,78 +0,0 @@
(load-theme 'weyland-yutani t)
;; -- always on modess
(require 'evil)
(evil-mode 1)
(add-hook 'prog-mode-hook
'display-line-numbers-mode)
(add-hook 'prog-mode-hook
'undo-tree-mode)
(add-hook 'prog-mode-hook
'which-key-mode)
;; -- paredit for lisps
(autoload 'enable-paredit-mode "paredit"
"turn on pseudo-structural editing of lisp code"
t)
(add-hook 'emacs-lisp-mode-hook
'enable-paredit-mode)
add-hook 'emacs-lisp-mode-hook
#'rainbow-blocks-mode)
(add-hook 'lisp-mode-hook
'enable-paredit-mode)
(add-hook 'lisp-mode-hook
#'rainbow-blocks-mode)
(add-hook 'eval-expression-minibuffer-setup-hook
'enable-paredit-mode)
(add-hook 'eval-expression-minibuffer-setup-hook
#'rainbow-blocks-mode)
(add-hook 'ielm-mode-hook
'enable-paredit-mode)
(add-hook 'ielm-mode-hook
#'rainbow-blocks-mode)
(add-hook 'lisp-interaction-mode-hook
'enable-paredit-mode)
(add-hook 'lisp-interaction-mode-hook
#'rainbow-blocks-mode)
(add-hook 'scheme-mode-hook
'enable-paredit-mode)
(add-hook 'scheme-mode-hook
#'rainbow-blocks-mode)
(add-hook 'racket-mode-hook
'enable-paredit-mode)
(add-hook 'racket-mode-hook
#'rainbow-blocks-mode)
(add-hook 'clojure-mode-hook
'enable-paredit-mode)
(add-hook 'clojure-mode-hook
#'rainbow-blocks-mode)
;; -- cider repl
;; REPL history file
(setq cider-repl-history-file "~/.emacs.d/cider-history")
;; nice pretty printing
(setq cider-repl-use-pretty-printing t)
;; nicer font lock in REPL
(setq cider-repl-use-clojure-font-lock t)
;; result prefix for the REPL
(setq cider-repl-result-prefix ";; => ")
;; never ending REPL history
(setq cider-repl-wrap-history t)
;; looong history
(setq cider-repl-history-size 3000)
;; eldoc for clojure
(add-hook 'cider-mode-hook #'eldoc-mode)
;; error buffer not popping up
(setq cider-show-error-buffer nil)
;; use paredit in cider
(add-hook 'cider-repl-mode-hook
'enable-paredit-mode)

1
fish/conf.d/rustup.fish Normal file
View file

@ -0,0 +1 @@
. "$HOME/.cargo/env.fish"

3
fish/config.fish Normal file
View file

@ -0,0 +1,3 @@
if status is-interactive
# Commands to run in interactive sessions can go here
end

31
fish/fish_variables Normal file
View file

@ -0,0 +1,31 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:3400
SETUVAR fish_color_autosuggestion:brblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:blue
SETUVAR fish_color_comment:red
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:green
SETUVAR fish_color_error:brred
SETUVAR fish_color_escape:brcyan
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:brcyan
SETUVAR fish_color_param:cyan
SETUVAR fish_color_quote:yellow
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
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_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_key_bindings:fish_default_key_bindings
SETUVAR fish_pager_color_completion:normal
SETUVAR fish_pager_color_description:yellow\x1e\x2di
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2dr

3
fish/functions/bed.fish Normal file
View file

@ -0,0 +1,3 @@
function bed
cargo run --bin editor
end

3
fish/functions/eo.fish Normal file
View file

@ -0,0 +1,3 @@
function eo
emacs . &
end

View file

@ -0,0 +1,139 @@
function fish_prompt
# This prompt shows:
# - green lines if the last return command is OK, red otherwise
# - your user name, in red if root or yellow otherwise
# - your hostname, in cyan if ssh or blue otherwise
# - the current path (with prompt_pwd)
# - date +%X
# - the current virtual environment, if any
# - the current git status, if any, with fish_git_prompt
# - the current battery state, if any, and if your power cable is unplugged, and if you have "acpi"
# - current background jobs, if any
# It goes from:
# ┬─[nim@Hattori:~][11:39:00]
# ╰─>$ echo here
# To:
# ┬─[nim@Hattori:~/w/dashboard][11:37:14][V:django20][G:master↑1|111][B:85%, 05:41:42 remaining]
# │ 2 15054 0% arrêtée sleep 100000
# │ 1 15048 0% arrêtée sleep 100000
# ╰─>$ echo there
set -l retc red
test $status = 0; and set retc green
set -q __fish_git_prompt_showupstream
or set -g __fish_git_prompt_showupstream auto
function _nim_prompt_wrapper
set retc $argv[1]
set -l field_name $argv[2]
set -l field_value $argv[3]
set_color normal
set_color $retc
echo -n '─'
set_color -o green
echo -n '['
set_color normal
test -n $field_name
and echo -n $field_name:
set_color $retc
echo -n $field_value
set_color -o green
echo -n ']'
end
set_color $retc
echo -n '┬─'
set_color -o green
echo -n [
if functions -q fish_is_root_user; and fish_is_root_user
set_color -o red
else
set_color -o yellow
end
echo -n $USER
set_color -o white
echo -n @
if test -z "$SSH_CLIENT"
set_color -o blue
else
set_color -o cyan
end
echo -n (prompt_hostname)
set_color -o white
echo -n :(prompt_pwd)
set_color -o green
echo -n ']'
# Date
_nim_prompt_wrapper $retc '' (date +%X)
# Vi-mode
# The default mode prompt would be prefixed, which ruins our alignment.
function fish_mode_prompt
end
if test "$fish_key_bindings" = fish_vi_key_bindings
or test "$fish_key_bindings" = fish_hybrid_key_bindings
set -l mode
switch $fish_bind_mode
case default
set mode (set_color --bold red)N
case insert
set mode (set_color --bold green)I
case replace_one
set mode (set_color --bold green)R
echo '[R]'
case replace
set mode (set_color --bold cyan)R
case visual
set mode (set_color --bold magenta)V
end
set mode $mode(set_color normal)
_nim_prompt_wrapper $retc '' $mode
end
# Virtual Environment
set -q VIRTUAL_ENV_DISABLE_PROMPT
or set -g VIRTUAL_ENV_DISABLE_PROMPT true
set -q VIRTUAL_ENV
and _nim_prompt_wrapper $retc V (basename "$VIRTUAL_ENV")
# git
set -l prompt_git (fish_git_prompt '%s')
test -n "$prompt_git"
and _nim_prompt_wrapper $retc G $prompt_git
# Battery status
type -q acpi
and test (acpi -a 2> /dev/null | string match -r off)
and _nim_prompt_wrapper $retc B (acpi -b | cut -d' ' -f 4-)
# New line
echo
# Background jobs
set_color normal
for job in (jobs)
set_color $retc
echo -n '│ '
set_color brown
echo $job
end
set_color normal
set_color $retc
echo -n '╰─>'
set_color -o red
echo -n '$ '
set_color normal
end

3
fish/functions/gd.fish Normal file
View file

@ -0,0 +1,3 @@
function gd
godot -e ./project.godot &
end

View file

@ -32,8 +32,10 @@ This function should only modify configuration layer settings."
;; List of configuration layers to load. ;; List of configuration layers to load.
dotspacemacs-configuration-layers dotspacemacs-configuration-layers
'( '(yaml
;; ---------------------------------------------------------------- protobuf
rust
;; ---------------------------------------------------------------
;; Example of useful layers you may want to use right away. ;; Example of useful layers you may want to use right away.
;; Uncomment some layer names and press `SPC f e R' (Vim style) or ;; Uncomment some layer names and press `SPC f e R' (Vim style) or
;; `M-m f e R' (Emacs style) to install them. ;; `M-m f e R' (Emacs style) to install them.
@ -41,7 +43,7 @@ This function should only modify configuration layer settings."
;; auto-completion ;; auto-completion
;; better-defaults ;; better-defaults
emacs-lisp emacs-lisp
;; git git
helm helm
racket racket
clojure clojure
@ -50,9 +52,10 @@ This function should only modify configuration layer settings."
html html
nginx nginx
nixos nixos
;; lsp lsp
markdown markdown
multiple-cursors multiple-cursors
eww
;; org ;; org
;; (shell :variables ;; (shell :variables
;; shell-default-height 30 ;; shell-default-height 30
@ -71,7 +74,9 @@ This function should only modify configuration layer settings."
;; `dotspacemacs/user-config'. To use a local version of a package, use the ;; `dotspacemacs/user-config'. To use a local version of a package, use the
;; `:location' property: '(your-package :location "~/path/to/your-package/") ;; `:location' property: '(your-package :location "~/path/to/your-package/")
;; Also include the dependencies as they will not be resolved automatically. ;; Also include the dependencies as they will not be resolved automatically.
dotspacemacs-additional-packages '(weyland-yutani-theme) dotspacemacs-additional-packages '(weyland-yutani-theme
gdscript-mode
symex)
;; A list of packages that cannot be updated. ;; A list of packages that cannot be updated.
dotspacemacs-frozen-packages '() dotspacemacs-frozen-packages '()
@ -338,7 +343,7 @@ It should only modify the values of Spacemacs settings."
;; Which-key delay in seconds. The which-key buffer is the popup listing ;; Which-key delay in seconds. The which-key buffer is the popup listing
;; the commands bound to the current keystroke sequence. (default 0.4) ;; the commands bound to the current keystroke sequence. (default 0.4)
dotspacemacs-which-key-delay 0.4 dotspacemacs-which-key-delay 0.1
;; Which-key frame position. Possible values are `right', `bottom' and ;; Which-key frame position. Possible values are `right', `bottom' and
;; `right-then-bottom'. right-then-bottom tries to display the frame to the ;; `right-then-bottom'. right-then-bottom tries to display the frame to the
@ -360,7 +365,7 @@ It should only modify the values of Spacemacs settings."
;; If non-nil a progress bar is displayed when spacemacs is loading. This ;; If non-nil a progress bar is displayed when spacemacs is loading. This
;; may increase the boot time on some systems and emacs builds, set it to ;; may increase the boot time on some systems and emacs builds, set it to
;; nil to boost the loading time. (default t) ;; nil to boost the loading time. (default t)
dotspacemacs-loading-progress-bar t dotspacemacs-loading-progress-bar nil
;; If non-nil the frame is fullscreen when Emacs starts up. (default nil) ;; If non-nil the frame is fullscreen when Emacs starts up. (default nil)
;; (Emacs 24.4+ only) ;; (Emacs 24.4+ only)
@ -433,7 +438,7 @@ It should only modify the values of Spacemacs settings."
;; :size-limit-kb 1000) ;; :size-limit-kb 1000)
;; When used in a plist, `visual' takes precedence over `relative'. ;; When used in a plist, `visual' takes precedence over `relative'.
;; (default nil) ;; (default nil)
dotspacemacs-line-numbers nil dotspacemacs-line-numbers 'relative
;; Code folding method. Possible values are `evil', `origami' and `vimish'. ;; Code folding method. Possible values are `evil', `origami' and `vimish'.
;; (default 'evil) ;; (default 'evil)
@ -514,7 +519,7 @@ It should only modify the values of Spacemacs settings."
;; `trailing' to delete only the whitespace at end of lines, `changed' to ;; `trailing' to delete only the whitespace at end of lines, `changed' to
;; delete only whitespace for changed lines or `nil' to disable cleanup. ;; delete only whitespace for changed lines or `nil' to disable cleanup.
;; (default nil) ;; (default nil)
dotspacemacs-whitespace-cleanup nil dotspacemacs-whitespace-cleanup 'trailing
;; If non-nil activate `clean-aindent-mode' which tries to correct ;; If non-nil activate `clean-aindent-mode' which tries to correct
;; virtual indentation of simple modes. This can interfere with mode specific ;; virtual indentation of simple modes. This can interfere with mode specific
@ -577,12 +582,78 @@ dump."
(defun dotspacemacs/user-config () (defun dotspacemacs/user-config ()
"Configuration for user code: "Configuration for user code:
This function is called at the very end of Spacemacs startup, after layer This function is called at the very end of Spacemacs startup, after layer
configuration. configuration.
Put your configuration code here, except for variables that should be set Put your configuration code here, except for variables that should be set
before packages are loaded." before packages are loaded."
) (require 'gdscript-mode)
(use-package symex
:config
(symex-initialize)
(global-set-key (kbd "s-;") 'symex-mode-interface) ; or whatever keybinding you like)
:custom
(symex-modal-backend 'evil))
(define-key
symex-mode-map
(kbd "s-w")
(lambda ()
(interactive)
(execute-kbd-macro (kbd "("))))
;; paredit mode enable
;; (autoload 'enable-paredit-mode "paredit" "Turn on pseudo-structural editing of Lisp code." t)
;; (add-hook 'emacs-lisp-mode-hook #'enable-paredit-mode)
;; (add-hook 'eval-expression-minibuffer-setup-hook #'enable-paredit-mode)
;; (add-hook 'ielm-mode-hook #'enable-paredit-mode)
;; (add-hook 'lisp-mode-hook #'enable-paredit-mode)
;; (add-hook 'lisp-interaction-mode-hook #'enable-paredit-mode)
;; (add-hook 'scheme-mode-hook #'enable-paredit-mode)
;; (add-hook 'clojure-mode-hook #'enable-paredit-mode)
;; (add-hook 'racket-mode-hook #'enable-paredit-mode)
;; -- cider repl
;; REPL history file
(setq cider-repl-history-file "~/.emacs.d/cider-history")
;; nice pretty printing
(setq cider-repl-use-pretty-printing t)
;; nicer font lock in REPL
(setq cider-repl-use-clojure-font-lock t)
;; result prefix for the REPL
(setq cider-repl-result-prefix ";; => ")
;; never ending REPL history
(setq cider-repl-wrap-history t)
;; looong history
(setq cider-repl-history-size 3000)
;; eldoc for clojure
(add-hook 'cider-mode-hook #'eldoc-mode)
;; error buffer not popping up
(setq cider-show-error-buffer nil)
;; use paredit in cider
;; (add-hook 'cider-repl-mode-hook
;; 'enable-paredit-mode)
)
;; Do not write anything past this comment. This is where Emacs will ;; Do not write anything past this comment. This is where Emacs will
;; auto-generate custom variable definitions. ;; auto-generate custom variable definitions.
(defun dotspacemacs/emacs-custom-settings ()
"Emacs custom settings.
This is an auto-generated function, do not modify its content directly, use
Emacs customize menu instead.
This function is called at the very end of Spacemacs initialization."
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(evil-want-Y-yank-to-eol nil)
'(package-selected-packages
'(forge yaml transient ghub closql emacsql treepy git-link git-messenger git-modes git-timemachine gitignore-templates helm-git-grep helm-ls-git org smeargle treemacs-magit magit git-commit with-editor auto-yasnippet clojure-snippets company-nixos-options company-web web-completion-data flycheck-pos-tip pos-tip helm-c-yasnippet helm-company company helm-lsp lsp-origami origami lsp-treemacs lsp-ui eldoc yasnippet-snippets yasnippet lsp-mode protobuf-mode symex xterm-color ws-butler writeroom-mode winum which-key weyland-yutani-theme web-mode web-beautify volatile-highlights vim-powerline vi-tilde-fringe uuidgen use-package undo-tree treemacs-projectile treemacs-persp treemacs-icons-dired treemacs-evil toc-org terminal-here term-cursor tagedit symon symbol-overlay string-inflection string-edit-at-point spacemacs-whitespace-cleanup spacemacs-purpose-popwin spaceline space-doc slim-mode shell-pop scss-mode sass-mode restart-emacs request rainbow-delimiters racket-mode quickrun pug-mode prettier-js popwin pcre2el password-generator paradox overseer org-superstar open-junk-file nix-mode nginx-mode nameless multi-vterm multi-term multi-line markdown-toc macrostep lorem-ipsum link-hint inspector info+ indent-guide impatient-mode hybrid-mode hungry-delete holy-mode hl-todo highlight-parentheses highlight-numbers highlight-indentation hide-comnt helm-xref helm-themes helm-swoop helm-purpose helm-projectile helm-org helm-nixos-options helm-mode-manager helm-make helm-descbinds helm-css-scss helm-comint helm-cider helm-ag google-translate golden-ratio gh-md geiser flycheck-package flycheck-elsa flx-ido fancy-battery eyebrowse expand-region evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-textobj-line evil-surround evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-lisp-state evil-lion evil-indent-plus evil-iedit-state evil-goggles evil-exchange evil-evilified-state evil-escape evil-easymotion evil-collection evil-cleverparens evil-args evil-anzu eshell-z eshell-prompt-extras esh-help emr emmet-mode elisp-slime-nav elisp-def editorconfig eat dumb-jump drag-stuff dotenv-mode dired-quick-sort diminish devdocs define-word column-enforce-mode clean-aindent-mode cider-eval-sexp-fu centered-cursor-mode auto-highlight-symbol auto-compile all-the-icons aggressive-indent ace-link ace-jump-helm-line)))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
)