Compare commits

...

8 commits

Author SHA1 Message Date
d7d5431771
home: Enable cliphist 2023-11-20 17:14:25 +01:00
ae6e1c90d6
home: Fix git signing key 2023-11-20 17:14:07 +01:00
4915fcbd57
Merge branch 'main' of git.datarift.nl:erwin/nixos-config 2023-11-20 17:11:18 +01:00
0cd612c3ed
foot: Add chafa to display images 2023-11-20 17:05:18 +01:00
6b5c5e5097
emacs: Use official nushell tree-sitter grammar, enable nushell LSP 2023-11-20 17:05:09 +01:00
330d854c4b
nushell: Simplify config, use theme from nu_scripts, temp zoxide fix 2023-11-20 17:04:47 +01:00
d0ce383517
mimir, loki: Enable sudo-rs 2023-11-20 17:03:05 +01:00
884b23d08e
flake.lock: Update
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/1d4ed29d4d9d076210485697c325f8d6914d908f' (2023-11-14)
  → 'github:nix-community/emacs-overlay/a70fd6e93de6f0d0bca3c02f9cc1acbaa914254e' (2023-11-20)
• Updated input 'emacs-overlay/nixpkgs-stable':
    'github:NixOS/nixpkgs/da4024d0ead5d7820f6bd15147d3fe2a0c0cec73' (2023-11-10)
  → 'github:NixOS/nixpkgs/0c5678df521e1407884205fe3ce3cf1d7df297db' (2023-11-19)
• Updated input 'home-manager':
    'github:nix-community/home-manager/280721186ab75a76537713ec310306f0eba3e407' (2023-11-12)
  → 'github:nix-community/home-manager/993fb02d20760067b8ee19c713d94cee07037759' (2023-11-19)
• Updated input 'microvm':
    'github:astro/microvm.nix/4caeec0f24d416ce19c76754cae572f1e1882ffe' (2023-11-05)
  → 'github:astro/microvm.nix/b16e6261ad2f0bca6ac2a4b7a4d3377cf5e3d95d' (2023-11-18)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/df9bb8a436607da124e8cfa0fd19e70e9d9e0b7b' (2023-11-14)
  → 'github:NixOS/nixos-hardware/2b00bc76dc893cd996a3d76a2f059d657a5ef37a' (2023-11-19)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/e44462d6021bfe23dfb24b775cc7c390844f773d' (2023-11-12)
  → 'github:nixos/nixpkgs/e4ad989506ec7d71f7302cc3067abd82730a4beb' (2023-11-19)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/ea758da1a6dcde6dc36db348ed690d09b9864128' (2023-11-06)
  → 'github:cachix/pre-commit-hooks.nix/e558068cba67b23b4fbc5537173dbb43748a17e8' (2023-11-15)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/e485313fc485700a9f1f9b8b272ddc0621d08357' (2023-11-14)
  → 'github:oxalica/rust-overlay/e17bfe3baa0487f0671c9ed0e9057d10987ba7f7' (2023-11-20)
• Updated input 'sops':
    'github:Mic92/sops-nix/0e3a94167dcd10a47b89141f35b2ff9e04b34c46' (2023-11-14)
  → 'github:Mic92/sops-nix/49a87c6c827ccd21c225531e30745a9a6464775c' (2023-11-19)
• Updated input 'sops/nixpkgs-stable':
    'github:NixOS/nixpkgs/9502d0245983bb233da8083b55d60d96fd3c29ff' (2023-11-12)
  → 'github:NixOS/nixpkgs/decdf666c833a325cb4417041a90681499e06a41' (2023-11-18)
2023-11-20 11:17:02 +01:00
10 changed files with 87 additions and 461 deletions

View file

@ -105,11 +105,11 @@
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1700127556, "lastModified": 1700470498,
"narHash": "sha256-R0R9WikfBi0Tc/Bloyg6h2quy6FBZCYCDSLVCjXILFY=", "narHash": "sha256-NCz/PuDFJ0SO7QZzznK9Os6x7hij0ld/chr5x1RYcUo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "emacs-overlay", "repo": "emacs-overlay",
"rev": "cd979f7df596efe5f2c832a9309da59df07edba8", "rev": "a70fd6e93de6f0d0bca3c02f9cc1acbaa914254e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -306,11 +306,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1700087144, "lastModified": 1700419052,
"narHash": "sha256-LJP1RW0hKNWmv2yRhnjkUptMXInKpn/rV6V6ofuZkHU=", "narHash": "sha256-U6a5f9ynbzcp8PMIHULbHPkbwp7YfPKOYmTcLqlalD4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "ab1459a1fb646c40419c732d05ec0bf2416d4506", "rev": "993fb02d20760067b8ee19c713d94cee07037759",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -329,11 +329,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1699578541, "lastModified": 1700320345,
"narHash": "sha256-QwO4L8EwZZhFTJic6KUq2qixnZZWZwq3Pvhj+U6SBuI=", "narHash": "sha256-HDBVj9gEOG2ZBGc+UGtjqDsOIvYOQtDxDRGrbiWOXl0=",
"owner": "astro", "owner": "astro",
"repo": "microvm.nix", "repo": "microvm.nix",
"rev": "fb78ecd4e5b42bb5c4f57f36a80f99bbf3e0d010", "rev": "b16e6261ad2f0bca6ac2a4b7a4d3377cf5e3d95d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -410,11 +410,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1699997707, "lastModified": 1700392353,
"narHash": "sha256-ugb+1TGoOqqiy3axyEZpfF6T4DQUGjfWZ3Htry1EfvI=", "narHash": "sha256-KARn8aVJu5fdW0jdJYoOQ1SPqWlNdz4l7r90NbArWSY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "5689f3ebf899f644a1aabe8774d4f37eb2f6c2f9", "rev": "2b00bc76dc893cd996a3d76a2f059d657a5ef37a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -425,11 +425,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1699781429, "lastModified": 1700390070,
"narHash": "sha256-UYefjidASiLORAjIvVsUHG6WBtRhM67kTjEY4XfZOFs=", "narHash": "sha256-de9KYi8rSJpqvBfNwscWdalIJXPo8NjdIZcEJum1mH0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e44462d6021bfe23dfb24b775cc7c390844f773d", "rev": "e4ad989506ec7d71f7302cc3067abd82730a4beb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -459,11 +459,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1699994397, "lastModified": 1700403855,
"narHash": "sha256-xxNeIcMNMXH2EA9IAX6Cny+50mvY22LhIBiGZV363gc=", "narHash": "sha256-Q0Uzjik9kUTN9pd/kp52XJi5kletBhy29ctBlAG+III=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d4b5a67bbe9ef750bd2fdffd4cad400dd5553af8", "rev": "0c5678df521e1407884205fe3ce3cf1d7df297db",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -491,11 +491,11 @@
}, },
"nixpkgs-stable_3": { "nixpkgs-stable_3": {
"locked": { "locked": {
"lastModified": 1699756042, "lastModified": 1700342017,
"narHash": "sha256-bHHjQQBsEPOxLL+klYU2lYshDnnWY12SewzQ7n5ab2M=", "narHash": "sha256-HaibwlWH5LuqsaibW3sIVjZQtEM/jWtOHX4Nk93abGE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9502d0245983bb233da8083b55d60d96fd3c29ff", "rev": "decdf666c833a325cb4417041a90681499e06a41",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -618,11 +618,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1700100993, "lastModified": 1700446608,
"narHash": "sha256-Zc//DbR3eMGajG09iQUMTO/Tc/fdUYmTAzXYdxx5MKw=", "narHash": "sha256-q/87GqBvQoUNBYiI3hwhsDqfyfk972RuZK+EwKab5s0=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "b7a041430733fccaa1ffc3724bb9454289d0f701", "rev": "e17bfe3baa0487f0671c9ed0e9057d10987ba7f7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -639,11 +639,11 @@
"nixpkgs-stable": "nixpkgs-stable_3" "nixpkgs-stable": "nixpkgs-stable_3"
}, },
"locked": { "locked": {
"lastModified": 1699951338, "lastModified": 1700362823,
"narHash": "sha256-1GeczM7XfgHcYGYiYNcdwSFu3E62vmh4d7mffWZvyzE=", "narHash": "sha256-/H7XgvrYM0IbkpWkcdfkOH0XyBM5ewSWT1UtaLvOgKY=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "0e3a94167dcd10a47b89141f35b2ff9e04b34c46", "rev": "49a87c6c827ccd21c225531e30745a9a6464775c",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -1683,6 +1683,14 @@ Dhall is a programmable configuration language that you can think of as: JSON +
(use-package nushell-ts-mode) (use-package nushell-ts-mode)
#+end_src #+end_src
Register =nushell= LSP with eglot
#+begin_src emacs-lisp
(with-eval-after-load 'eglot
(add-to-list 'eglot-server-programs
'(nushell-ts-mode . ("nu" "--lsp"))))
#+end_src
* Org * Org
** Main org setup ** Main org setup

View file

@ -63,7 +63,14 @@ with lib; let
tree-sitter-markdown tree-sitter-markdown
tree-sitter-markdown-inline tree-sitter-markdown-inline
tree-sitter-nix tree-sitter-nix
tree-sitter-nu (tree-sitter-nu.overrideAttrs (_prevAttr: {
src = pkgs.fetchFromGitHub {
owner = "nushell";
repo = "tree-sitter-nu";
rev = "307559b6a3885ef0c55bcd5e23e9e164a7ce03bd";
sha256 = "RuvR2Yb2CTxpxyXgr+2uUQa9N75sIhYlS9moyedZo8A=";
};
}))
tree-sitter-pioasm tree-sitter-pioasm
tree-sitter-python tree-sitter-python
tree-sitter-query tree-sitter-query

View file

@ -1,4 +1,4 @@
{ lib, config, ... }: { pkgs, lib, config, ... }:
with lib; let with lib; let
cfg = config.eboskma.programs.foot; cfg = config.eboskma.programs.foot;
in in
@ -54,5 +54,9 @@ in
}; };
}; };
}; };
home.packages = [
pkgs.chafa # Enable displaying images through img2sixel
];
}; };
} }

View file

@ -1,126 +1,10 @@
# Nushell Config File
# For more information on defining custom themes, see
# https://www.nushell.sh/book/coloring_and_theming.html
# And here is the theme collection
# https://github.com/nushell/nu_scripts/tree/main/themes
let dark_theme = {
# color for nushell primitives
separator: white
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
header: green_bold
empty: blue
# Closures can be used to choose colors for specific values.
# The value (in this case, a bool) is piped into the closure.
bool: {|| if $in { 'light_cyan' } else { 'light_gray' } }
int: white
filesize: {|e|
if $e == 0b {
'white'
} else if $e < 1mb {
'cyan'
} else { 'blue' }
}
duration: white
date: {|| (date now) - $in |
if $in < 1hr {
'red3b'
} else if $in < 6hr {
'orange3'
} else if $in < 1day {
'yellow3b'
} else if $in < 3day {
'chartreuse2b'
} else if $in < 1wk {
'green3b'
} else if $in < 6wk {
'darkturquoise'
} else if $in < 52wk {
'deepskyblue3b'
} else { 'dark_gray' }
}
range: white
float: white
string: white
nothing: white
binary: white
cellpath: white
row_index: green_bold
record: white
list: white
block: white
hints: dark_gray
shape_and: purple_bold
shape_binary: purple_bold
shape_block: blue_bold
shape_bool: light_cyan
shape_custom: green
shape_datetime: cyan_bold
shape_directory: cyan
shape_external: cyan
shape_externalarg: green_bold
shape_filepath: cyan
shape_flag: blue_bold
shape_float: purple_bold
# shapes are used to change the cli syntax highlighting
shape_garbage: { fg: "#FFFFFF" bg: "#FF0000" attr: b}
shape_globpattern: cyan_bold
shape_int: purple_bold
shape_internalcall: cyan_bold
shape_list: cyan_bold
shape_literal: blue
shape_matching_brackets: { attr: u }
shape_nothing: light_cyan
shape_operator: yellow
shape_or: purple_bold
shape_pipe: purple_bold
shape_range: yellow_bold
shape_record: cyan_bold
shape_redirection: purple_bold
shape_signature: green_bold
shape_string: green
shape_string_interpolation: cyan_bold
shape_table: blue_bold
shape_variable: purple
}
# External completer example
let carapace_completer = {|spans| let carapace_completer = {|spans|
carapace $spans.0 nushell $spans | from json carapace $spans.0 nushell $spans | from json
} }
# The default config record. This is where much of your global configuration is setup. # The default config record. This is where much of your global configuration is setup.
$env.config = { $env.config = {
ls: {
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
}
rm: {
always_trash: false # always act as if -t was given. Can be overridden with -p
}
table: {
mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
trim: {
methodology: wrapping # wrapping or truncating
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
}
}
explore: { explore: {
help_banner: true
exit_esc: true
command_bar_text: '#C4C9C6'
# command_bar: {fg: '#C4C9C6' bg: '#223311' }
status_bar_background: {fg: '#1D1F21' bg: '#C4C9C6' }
# status_bar_text: {fg: '#C4C9C6' bg: '#223311' }
highlight: {bg: 'yellow' fg: 'black' }
status: { status: {
warn: {bg: 'yellow', fg: 'blue'} warn: {bg: 'yellow', fg: 'blue'}
error: {bg: 'yellow', fg: 'blue'} error: {bg: 'yellow', fg: 'blue'}
@ -133,91 +17,24 @@ $env.config = {
reactive: true reactive: true
} }
table: {
split_line: '#404040'
cursor: true
line_index: true
line_shift: true
line_head_top: true
line_head_bottom: true
show_head: true
show_index: true
# selected_cell: {fg: 'white', bg: '#777777'}
# selected_row: {fg: 'yellow', bg: '#C1C2A3'}
# selected_column: blue
# padding_column_right: 2
# padding_column_left: 2
# padding_index_left: 2
# padding_index_right: 1
}
config: {
cursor_color: {bg: 'yellow' fg: 'black' }
# border_color: white
# list_color: green
}
} }
history: { history: {
max_size: 10000 # Session has to be reloaded for this to take effect
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
file_format: "sqlite" # "sqlite" or "plaintext" file_format: "sqlite" # "sqlite" or "plaintext"
} }
completions: { completions: {
case_sensitive: false # set to true to enable case-sensitive completions
quick: true # set this to false to prevent auto-selecting completions when only one remains
partial: true # set this to false to prevent partial filling of the prompt
algorithm: "fuzzy" # prefix or fuzzy algorithm: "fuzzy" # prefix or fuzzy
external: { external: {
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow
# max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
completer: $carapace_completer # check 'carapace_completer' above as an example completer: $carapace_completer # check 'carapace_completer' above as an example
} }
} }
filesize: { filesize: {
metric: false # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard) metric: false # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard)
format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, zb, zib, auto
} }
cursor_shape: {
emacs: line # block, underscore, line (line is the default)
vi_insert: block # block, underscore, line (block is the default)
vi_normal: underscore # block, underscore, line (underscore is the default)
}
color_config: $dark_theme # if you want a light theme, replace `$dark_theme` to `$light_theme`
use_grid_icons: true
footer_mode: "25" # always, never, number_of_rows, auto
float_precision: 2 # the precision for displaying floats in tables
# buffer_editor: "emacs" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
use_ansi_coloring: true
edit_mode: emacs # emacs, vi
shell_integration: true # enables terminal markers and a workaround to arrow keys stop working issue
# true or false to enable or disable the welcome banner at startup
show_banner: false show_banner: false
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
hooks: { hooks: {
pre_prompt: [{||
null
}]
pre_execution: [{||
null # replace with source code to run before the repl input is run
}]
env_change: {
PWD: [{|before, after|
null # replace with source code to run if the PWD environment is different since the last repl input
}]
}
display_output: {||
if (term size).columns >= 100 { table -e } else { table }
}
command_not_found: { |cmdname| ( command_not_found: { |cmdname| (
try { try {
let candidates = (open $env.command_not_found_db | query db $"select package from Programs where system = '($env.NIX_SYSTEM)' and name = '($cmdname)'") let candidates = (open $env.command_not_found_db | query db $"select package from Programs where system = '($env.NIX_SYSTEM)' and name = '($cmdname)'")
@ -234,225 +51,7 @@ $env.config = {
} }
)} )}
} }
menus: [ # Configuration for default nushell menus
# Note the lack of source parameter
{
name: completion_menu
only_buffer_difference: false
marker: "| "
type: {
layout: columnar
columns: 4
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
col_padding: 2
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
}
{
name: history_menu
only_buffer_difference: true
marker: "? "
type: {
layout: list
page_size: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
}
{
name: help_menu
only_buffer_difference: true
marker: "? "
type: {
layout: description
columns: 4
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
col_padding: 2
selection_rows: 4
description_rows: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
}
# Example of extra menus created using a nushell source
# Use the source field to create a list of records that populates
# the menu
{
name: commands_menu
only_buffer_difference: false
marker: "# "
type: {
layout: columnar
columns: 4
col_width: 20
col_padding: 2
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
source: { |buffer, position|
$nu.scope.commands
| where name =~ $buffer
| each { |it| {value: $it.name description: $it.usage} }
}
}
{
name: vars_menu
only_buffer_difference: true
marker: "# "
type: {
layout: list
page_size: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
source: { |buffer, position|
$nu.scope.vars
| where name =~ $buffer
| sort-by name
| each { |it| {value: $it.name description: $it.type} }
}
}
{
name: commands_with_description
only_buffer_difference: true
marker: "# "
type: {
layout: description
columns: 4
col_width: 20
col_padding: 2
selection_rows: 4
description_rows: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
source: { |buffer, position|
$nu.scope.commands
| where name =~ $buffer
| each { |it| {value: $it.name description: $it.usage} }
}
}
]
keybindings: [ keybindings: [
{
name: completion_menu
modifier: none
keycode: tab
mode: [emacs vi_normal vi_insert]
event: {
until: [
{ send: menu name: completion_menu }
{ send: menunext }
]
}
}
{
name: completion_previous
modifier: shift
keycode: backtab
mode: [emacs, vi_normal, vi_insert] # Note: You can add the same keybinding to all modes by using a list
event: { send: menuprevious }
}
{
name: history_menu
modifier: control
keycode: char_r
mode: emacs
event: { send: menu name: history_menu }
}
{
name: next_page
modifier: control
keycode: char_x
mode: emacs
event: { send: menupagenext }
}
{
name: undo_or_previous_page
modifier: control
keycode: char_z
mode: emacs
event: {
until: [
{ send: menupageprevious }
{ edit: undo }
]
}
}
{
name: yank
modifier: control
keycode: char_y
mode: emacs
event: {
until: [
{edit: pastecutbufferafter}
]
}
}
{
name: unix-line-discard
modifier: control
keycode: char_u
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{edit: cutfromlinestart}
]
}
}
{
name: kill-line
modifier: control
keycode: char_k
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{edit: cuttolineend}
]
}
}
# Keybindings used to trigger the user defined menus
{
name: commands_menu
modifier: alt
keycode: char_t
mode: [emacs, vi_normal, vi_insert]
event: { send: menu name: commands_menu }
}
{
name: vars_menu
modifier: alt
keycode: char_o
mode: [emacs, vi_normal, vi_insert]
event: { send: menu name: vars_menu }
}
{
name: commands_with_description
modifier: alt
keycode: char_d
mode: [emacs, vi_normal, vi_insert]
event: { send: menu name: commands_with_description }
}
{ {
name: insert_last_token name: insert_last_token
modifier: alt modifier: alt

View file

@ -2,6 +2,8 @@
with lib; with lib;
let let
cfg = config.eboskma.programs.nushell; cfg = config.eboskma.programs.nushell;
zoxideOptions = concatStringsSep " " config.programs.zoxide.options;
in in
{ {
options.eboskma.programs.nushell = { enable = mkEnableOption "nu shell"; }; options.eboskma.programs.nushell = { enable = mkEnableOption "nu shell"; };
@ -16,6 +18,14 @@ in
extraEnv = '' extraEnv = ''
$env.command_not_found_db = ${config.programs.command-not-found.dbPath} $env.command_not_found_db = ${config.programs.command-not-found.dbPath}
$env.NIX_SYSTEM = "${pkgs.system}" $env.NIX_SYSTEM = "${pkgs.system}"
let zoxide_cache = "${config.xdg.cacheHome}/zoxide"
if not ($zoxide_cache | path exists) {
mkdir $zoxide_cache
}
${config.programs.zoxide.package}/bin/zoxide init nushell ${zoxideOptions} | save --force ${config.xdg.cacheHome}/zoxide/init.nu
# Temporary fix until zoxide releases new version
sed -i 's/def-env/def --env/g' ${config.xdg.cacheHome}/zoxide/init.nu
''; '';
extraConfig = '' extraConfig = ''
alias vim = nvim alias vim = nvim
@ -27,15 +37,24 @@ in
register ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats register ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats
use kink.nu use kink.nu
use ${pkgs.nu_scripts}/share/nu_scripts/themes/nu-themes/dracula.nu
$env.config = ($env.config | merge { color_config: (dracula)})
source ${config.xdg.cacheHome}/zoxide/init.nu
''; '';
}; };
# Temporary until zoxide releases new version
programs.zoxide.enableNushellIntegration = false;
xdg.configFile."nushell/scripts" = { xdg.configFile."nushell/scripts" = {
source = ./scripts; source = ./scripts;
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
carapace carapace
nu_scripts
]; ];
}; };
} }

View file

@ -1,27 +1,5 @@
# Nushell Environment Config File # Nushell Environment Config File
# The prompt indicators are environmental variables that represent
# the state of the prompt
$env.PROMPT_INDICATOR = {|| "> " }
$env.PROMPT_INDICATOR_VI_INSERT = {|| ": " }
$env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " }
$env.PROMPT_MULTILINE_INDICATOR = {|| "::: " }
# Specifies how environment variables are:
# - converted from a string to a value on Nushell startup (from_string)
# - converted from a value back to a string when running external commands (to_string)
# Note: The conversions happen *after* config.nu is loaded
$env.ENV_CONVERSIONS = {
"PATH": {
from_string: { |s| $s | split row (char esep) | path expand -n }
to_string: { |v| $v | path expand -n | str join (char esep) }
}
"Path": {
from_string: { |s| $s | split row (char esep) | path expand -n }
to_string: { |v| $v | path expand -n | str join (char esep) }
}
}
# Directories to search for scripts when calling source or use # Directories to search for scripts when calling source or use
# #
# By default, <nushell-config-dir>/scripts is added # By default, <nushell-config-dir>/scripts is added
@ -36,6 +14,4 @@ $env.NU_PLUGIN_DIRS = [
($env.HOME | path join '.config' 'nushell' 'plugins') ($env.HOME | path join '.config' 'nushell' 'plugins')
] ]
# To add entries to PATH (on Windows you might use Path), you can use the following pattern:
# $env.PATH = ($env.PATH | split row (char esep) | prepend '/some/path')

View file

@ -190,10 +190,12 @@
}; };
}; };
security.pam.u2f = {
security = {
sudo-rs = {
enable = true; enable = true;
# interactive = true; };
cue = true; sudo.enable = false;
}; };
systemd.network = { systemd.network = {
@ -320,11 +322,13 @@
openssh.enable = true; openssh.enable = true;
colord.enable = true;
udisks2 = { udisks2 = {
enable = true; enable = true;
}; };
envfs.enable = true; envfs.enable = false;
cpupower-gui.enable = true; cpupower-gui.enable = true;
teamviewer.enable = true; teamviewer.enable = true;
tailscale.enable = true; tailscale.enable = true;

View file

@ -178,6 +178,11 @@
cpuFreqGovernor = "ondemand"; cpuFreqGovernor = "ondemand";
}; };
security = {
sudo.enable = false;
sudo-rs.enable = true;
};
systemd.network = { systemd.network = {
enable = true; enable = true;

View file

@ -65,8 +65,7 @@ in
enable = true; enable = true;
name = "Erwin Boskma"; name = "Erwin Boskma";
email = "erwin@datarift.nl"; email = "erwin@datarift.nl";
# signingKey = "EE7ADEFE1D943C7B"; signingKey = "~/.ssh/id_ed25519_sk_personal.pub";
signingKey = "~/.ssh/id_ed25519";
signingKeyFormat = "ssh"; signingKeyFormat = "ssh";
}; };
gpg.enable = true; gpg.enable = true;
@ -323,6 +322,11 @@ in
]; ];
}; };
}; };
cliphist = {
enable = true;
systemdTarget = "sway-session.target";
};
}; };
imports = [ imports = [