initial
This commit is contained in:
commit
8c98e8bd14
10 changed files with 633 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/result
|
||||
/roles/wireless.nix
|
40
configuration.nix
Normal file
40
configuration.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
# 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 =
|
||||
[
|
||||
<nixos-hardware/lenovo/thinkpad/x220>
|
||||
<home-manager/nixos>
|
||||
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
|
||||
./roles/dev.nix
|
||||
./roles/base.nix
|
||||
./roles/desktop.nix
|
||||
./roles/wireless.nix
|
||||
];
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
networking.hostName = "raven";
|
||||
networking.hostId = "e3a397c5";
|
||||
|
||||
networking.useDHCP = false;
|
||||
networking.interfaces.enp0s25.useDHCP = true;
|
||||
networking.interfaces.wlp3s0.useDHCP = true;
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
services.openssh.enable = true;
|
||||
networking.firewall.enable = true;
|
||||
|
||||
system.stateVersion = "20.03"; # We can stay here
|
||||
}
|
||||
|
132
dotfiles/sway/config
Normal file
132
dotfiles/sway/config
Normal file
|
@ -0,0 +1,132 @@
|
|||
# config
|
||||
set $mod Mod1
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
set $term alacritty
|
||||
set $menu bemenu-run
|
||||
|
||||
output * bg /home/stefan/Sync/wall/nasa-yZygONrUBe8-unsplash.jpg fill
|
||||
output eDP-1 scale 1.3
|
||||
output DP-1 res 5120x1440
|
||||
|
||||
# user keybinds
|
||||
bindsym $mod+Return exec $term
|
||||
bindsym $mod+Shift+q kill
|
||||
bindsym $mod+d exec $menu
|
||||
floating_modifier $mod normal
|
||||
bindsym $mod+Shift+c reload
|
||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
|
||||
bindsym $mod+Shift+p exec keepassxc
|
||||
bindsym $mod+z exec swaylock -t
|
||||
bindsym $mod+Up exec light -A 5
|
||||
bindsym $mod+Down exec light -U 5
|
||||
bindsym Print exec grim -g "$(slurp)" - | wl-copy -t image/png
|
||||
|
||||
# app rules
|
||||
for_window [app_id="org.keepassxc.KeePassXC"] floating enable
|
||||
|
||||
# font
|
||||
font Cascadia Code 10
|
||||
|
||||
# colors
|
||||
set $black #2d2a2e
|
||||
set $base00 #2d2a2e
|
||||
set $base01 #cc6666
|
||||
set $base02 #a9dc76
|
||||
set $base03 #ffd866
|
||||
set $base04 #78dce8
|
||||
set $base05 #55dbbe
|
||||
set $base06 #ff6181
|
||||
set $base07 #eeeeee
|
||||
set $base08 #323232
|
||||
set $base09 #cc6666
|
||||
set $base0A #ffd866
|
||||
set $base0B #78dce8
|
||||
set $base0C #55dbbe
|
||||
set $base0D #ff6181
|
||||
set $base0E #a6dc76
|
||||
set $base0F #ffffff
|
||||
|
||||
# border background text indicator
|
||||
client.focused $base04 $base00 $base07 $base04 $base04
|
||||
client.focused_inactive $base00 $base00 $base07 $base00 $base00
|
||||
client.unfocused $black $black $base07 $base00 $base00
|
||||
client.urgent $base01 $base01 $base00 $base08 $base07
|
||||
|
||||
|
||||
# movement
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
|
||||
bindsym $mod+1 workspace 1
|
||||
bindsym $mod+2 workspace 2
|
||||
bindsym $mod+3 workspace 3
|
||||
bindsym $mod+4 workspace 4
|
||||
bindsym $mod+5 workspace 5
|
||||
bindsym $mod+6 workspace 6
|
||||
bindsym $mod+7 workspace 7
|
||||
bindsym $mod+8 workspace 8
|
||||
bindsym $mod+9 workspace 9
|
||||
bindsym $mod+0 workspace 10
|
||||
bindsym $mod+Shift+1 move container to workspace 1
|
||||
bindsym $mod+Shift+2 move container to workspace 2
|
||||
bindsym $mod+Shift+3 move container to workspace 3
|
||||
bindsym $mod+Shift+4 move container to workspace 4
|
||||
bindsym $mod+Shift+5 move container to workspace 5
|
||||
bindsym $mod+Shift+6 move container to workspace 6
|
||||
bindsym $mod+Shift+7 move container to workspace 7
|
||||
bindsym $mod+Shift+8 move container to workspace 8
|
||||
bindsym $mod+Shift+9 move container to workspace 9
|
||||
bindsym $mod+Shift+0 move container to workspace 10
|
||||
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
bindsym $mod+f fullscreen
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
bindsym $mod+space focus mode_toggle
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
mode "resize" {
|
||||
bindsym $left resize shrink width 10px
|
||||
bindsym $down resize grow height 10px
|
||||
bindsym $up resize shrink height 10px
|
||||
bindsym $right resize grow width 10px
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
bar {
|
||||
position bottom
|
||||
colors {
|
||||
background $black
|
||||
statusline $base07
|
||||
separator $base04
|
||||
|
||||
# border back text
|
||||
focused_workspace $base04 $base04 $base00
|
||||
active_workspace $base04 $base04 $base00
|
||||
urgent_workspace $base01 $base01 $base07
|
||||
inactive_workspace $base00 $base00 $base07
|
||||
|
||||
}
|
||||
status_command i3status-rs /etc/sway/status.toml
|
||||
}
|
||||
|
||||
include /etc/sway/config.d/*
|
||||
|
||||
exec mako
|
109
dotfiles/sway/status.toml
Normal file
109
dotfiles/sway/status.toml
Normal file
|
@ -0,0 +1,109 @@
|
|||
[theme]
|
||||
name = "plain"
|
||||
[theme.overrides]
|
||||
idle_bg = "#2d2a2e"
|
||||
idle_fg = "#eeeeee"
|
||||
info_bg = "#2d2a2e"
|
||||
info_fg = "#eeeeee"
|
||||
good_bg = "#2d2a2e"
|
||||
good_fg = "#a9dc76"
|
||||
warning_bg = "#2d2a2e"
|
||||
warning_fg = "#ffd866"
|
||||
critical_bg = "#2a2e38"
|
||||
critical_fg = "#ff665c"
|
||||
separator_bg = "#2d2a2e"
|
||||
separator_fg = "#555555"
|
||||
separator = "|"
|
||||
|
||||
[icons]
|
||||
name = "none"
|
||||
[icons.overrides]
|
||||
bat = " "
|
||||
bat_full = " "
|
||||
bat_charging = " "
|
||||
bat_discharging = " "
|
||||
backlight_empty = " "
|
||||
backlight_partial1 = " "
|
||||
backlight_partial2 = " "
|
||||
backlight_partial3 = " "
|
||||
backlight_full = " "
|
||||
volume_full = " "
|
||||
volume_half = " "
|
||||
volume_empty = " "
|
||||
volume_muted= "MUTE"
|
||||
cogs = " "
|
||||
memory_mem = " "
|
||||
headphones = " "
|
||||
net_wireless = " "
|
||||
net_vpn = " "
|
||||
net_wired = ""
|
||||
net_up = "UP"
|
||||
net_down = "DOWN"
|
||||
thermometer = " "
|
||||
|
||||
|
||||
[[block]]
|
||||
block = "net"
|
||||
device = "wg"
|
||||
ip = true
|
||||
ssid = false
|
||||
speed_up = false
|
||||
speed_down = false
|
||||
hide_inactive = true
|
||||
hide_missing = true
|
||||
|
||||
[[block]]
|
||||
block = "net"
|
||||
device = "wlp0s20f3"
|
||||
ip = true
|
||||
ssid = true
|
||||
speed_up = false
|
||||
speed_down = false
|
||||
hide_inactive = true
|
||||
hide_missing = true
|
||||
|
||||
[[block]]
|
||||
block = "temperature"
|
||||
collapsed = false
|
||||
interval = 10
|
||||
chip = "coretemp-isa-0000"
|
||||
format = "{min}..{max}°"
|
||||
|
||||
[[block]]
|
||||
block = "disk_space"
|
||||
path = "/"
|
||||
alias = " /"
|
||||
info_type = "available"
|
||||
unit = "GB"
|
||||
interval = 20
|
||||
warning = 20.0
|
||||
alert = 10.0
|
||||
|
||||
[[block]]
|
||||
block = "memory"
|
||||
display_type = "memory"
|
||||
format_mem = "{Mup}%"
|
||||
clickable = false
|
||||
|
||||
[[block]]
|
||||
block = "load"
|
||||
interval = 1
|
||||
format = "{1m}"
|
||||
|
||||
[[block]]
|
||||
block = "sound"
|
||||
driver = "pulseaudio"
|
||||
|
||||
[[block]]
|
||||
block = "backlight"
|
||||
|
||||
[[block]]
|
||||
block = "battery"
|
||||
device = "BAT0"
|
||||
interval = 10
|
||||
format = "{percentage}%"
|
||||
|
||||
[[block]]
|
||||
block = "time"
|
||||
interval = 60
|
||||
format = "%Y-%m-%d %H:%M"
|
44
hardware-configuration.nix
Normal file
44
hardware-configuration.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ <nixpkgs/nixos/modules/installer/scan/not-detected.nix>
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
|
||||
boot.initrd.luks.devices = {
|
||||
swap = {
|
||||
device = "/dev/disk/by-uuid/fe87a31c-7d0b-4073-98fc-fa825de77181";
|
||||
allowDiscards = true;
|
||||
};
|
||||
};
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "tank/root/nixos";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "tank/home";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/0C2D-2799";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/2ac33f61-0db5-4f94-8148-93f2166b2f29"; }
|
||||
];
|
||||
|
||||
nix.maxJobs = lib.mkDefault 4;
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
}
|
113
packages/neovim.nix
Normal file
113
packages/neovim.nix
Normal file
|
@ -0,0 +1,113 @@
|
|||
with import <nixos-unstable> {};
|
||||
|
||||
neovim.override {
|
||||
configure = {
|
||||
customRC = ''
|
||||
set hidden
|
||||
|
||||
" langserver
|
||||
let g:LanguageClient_serverCommands = {
|
||||
\ 'go': ['gopls'],
|
||||
\ 'python': ['pyls'],
|
||||
\ 'rust': ['rust-analyzer'],
|
||||
\ }
|
||||
|
||||
" basic builtin
|
||||
set background=dark
|
||||
set shiftwidth=4
|
||||
set softtabstop=4
|
||||
set tabstop=4
|
||||
set expandtab
|
||||
set ttyfast
|
||||
set lazyredraw
|
||||
set regexpengine=1
|
||||
set synmaxcol=500
|
||||
set relativenumber
|
||||
set number
|
||||
set relativenumber
|
||||
set mouse=a
|
||||
set shortmess+=c
|
||||
|
||||
" better search
|
||||
set incsearch
|
||||
set ignorecase
|
||||
set smartcase
|
||||
set gdefault
|
||||
|
||||
" autocomplete
|
||||
autocmd BufEnter * call ncm2#enable_for_buffer()
|
||||
inoremap <c-c> <ESC>
|
||||
inoremap <expr> <CR> (pumvisible() ? "\<c-y>\<cr>" : "\<CR>")
|
||||
set completeopt=noinsert,menuone,noselect
|
||||
let g:LanguageClient_completionPreferTextEdit = 1
|
||||
let g:LanguageClient_diagnosticsSignsMax = 0
|
||||
|
||||
" securemodelines
|
||||
let g:secure_modelines_allowed_items = [
|
||||
\ "textwidth", "tw",
|
||||
\ "softtabstop", "sts",
|
||||
\ "tabstop", "ts",
|
||||
\ "shiftwidth", "sw",
|
||||
\ "expandtab", "et", "noexpandtab", "noet",
|
||||
\ "filetype", "ft",
|
||||
\ "foldmethod", "fdm",
|
||||
\ "readonly", "ro", "noreadonly", "noro",
|
||||
\ "rightleft", "rl", "norightleft", "norl",
|
||||
\ "colorcolumn"
|
||||
\ ]
|
||||
|
||||
" leader
|
||||
let mapleader = " "
|
||||
nnoremap <silent> <leader> :WhichKey '<Space>'<CR>
|
||||
noremap <leader><space> :Commands<cr>
|
||||
noremap <leader><tab> :b#<cr>
|
||||
let g:which_key_map = {}
|
||||
|
||||
let g:which_key_map.f = { 'name': '+files' }
|
||||
noremap <leader>ff :FZF<cr>
|
||||
noremap <leader>fc :saveas
|
||||
|
||||
let g:which_key_map.y = { 'name': '+yank' }
|
||||
noremap <leader>yp :read !wl-paste<cr>
|
||||
noremap <leader>yy :read !wl-paste<cr>
|
||||
noremap <leader>ya :w !wl-copy<cr><cr>
|
||||
|
||||
let g:which_key_map.b = { 'name': '+buffers' }
|
||||
noremap <leader>bb :Buffers<cr>
|
||||
noremap <leader>bh :History<cr>
|
||||
noremap <leader>bd :bd<cr>
|
||||
noremap <leader>bn :bn<cr>
|
||||
noremap <leader>bp :bp<cr>
|
||||
|
||||
let g:which_key_map.b = { 'name': '+lang' }
|
||||
noremap <leader>mc :call LanguageClient#textDocument_references()<cr>
|
||||
noremap <leader>mf :call LanguageClient#textDocument_formatting()<cr>
|
||||
noremap <leader>mgg :call LanguageClient#textDocument_definition()<cr>
|
||||
noremap <leader>mh :call LanguageClient#textDocument_documentHighlight()<cr>
|
||||
noremap <leader>mm :call LanguageClient#textDocument_hover()<cr>
|
||||
noremap <leader>mr :call LanguageClient#textDocument_rename()<cr>
|
||||
noremap <leader>ms :call LanguageClient#workspace_symbol()<cr>
|
||||
|
||||
" lang specifics
|
||||
let g:rustfmt_autosave = 1
|
||||
let g:rustfmt_emit_files = 1
|
||||
let g:rustfmt_fail_silently = 0
|
||||
'';
|
||||
packages.myNvim = with pkgs.vimPlugins; {
|
||||
start = [
|
||||
airline
|
||||
easymotion
|
||||
editorconfig-vim
|
||||
fugitive
|
||||
fzf
|
||||
LanguageClient-neovim
|
||||
ncm2
|
||||
surround
|
||||
syntastic
|
||||
vim-addon-nix
|
||||
vim-highlightedyank
|
||||
vim-which-key
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
30
packages/vim.nix
Normal file
30
packages/vim.nix
Normal file
|
@ -0,0 +1,30 @@
|
|||
with import <nixpkgs> {};
|
||||
|
||||
vim_configurable.customize {
|
||||
name = "vim";
|
||||
vimrcConfig.customRC = ''
|
||||
set hidden
|
||||
|
||||
" langserver
|
||||
let g:LanguageClient_serverCommands = {
|
||||
\ 'rust': ['rust-analyzer'],
|
||||
\ 'python': ['pyls'],
|
||||
\ }
|
||||
|
||||
let g:deoplete#enable_at_startup = 1
|
||||
|
||||
'';
|
||||
|
||||
vimrcConfig.packages.myVim = with pkgs.vimPlugins; {
|
||||
start = [
|
||||
airline
|
||||
easymotion
|
||||
fugitive
|
||||
fzf
|
||||
LanguageClient-neovim
|
||||
surround
|
||||
syntastic
|
||||
vim-mucomplete
|
||||
];
|
||||
};
|
||||
}
|
67
roles/base.nix
Normal file
67
roles/base.nix
Normal file
|
@ -0,0 +1,67 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
bash
|
||||
bat
|
||||
emacs-nox
|
||||
fd
|
||||
fzf
|
||||
git
|
||||
htop
|
||||
jq
|
||||
ripgrep
|
||||
z-lua
|
||||
# (import ../packages/vim.nix)
|
||||
(import ../packages/neovim.nix)
|
||||
];
|
||||
|
||||
|
||||
programs.bash = {
|
||||
interactiveShellInit = ''
|
||||
pw () {
|
||||
len=''${1:-$(( $RANDOM % 24 + 8 ))}
|
||||
tr -dc a-zA-Z0-9 < /dev/urandom | head -c $len
|
||||
echo
|
||||
}
|
||||
|
||||
cdg() {
|
||||
gitroot=$(until [ -d .git ]; do [ "$PWD" == "/" ] && exit 1; cd ..; done; echo $PWD)
|
||||
if [ $? == 0 ]; then
|
||||
cd $gitroot
|
||||
else
|
||||
echo "gitroot not found."
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
git_branch(){
|
||||
branch=$(git branch 2> /dev/null) || exit 0
|
||||
branch=$(sed -n '/^*/ s/* \(.*\)/\1/p' <<< $branch)
|
||||
status=$(git status 2> /dev/null \
|
||||
| grep -q "nothing to commit, working tree clean" || e cho -n '*')
|
||||
echo "$branch$status "
|
||||
}
|
||||
|
||||
. "$(fzf-share)/key-bindings.bash"
|
||||
. "$(fzf-share)/completion.bash"
|
||||
eval $(z --init bash)
|
||||
'';
|
||||
shellAliases = {
|
||||
cat = "bat -pp";
|
||||
less = "bat -p";
|
||||
ls = "ls --color=auto";
|
||||
vim = "nvim";
|
||||
};
|
||||
};
|
||||
|
||||
users.users.stefan = {
|
||||
extraGroups = [ "wheel" ];
|
||||
home = "/home/stefan";
|
||||
isNormalUser = true;
|
||||
uid = 1000;
|
||||
};
|
||||
}
|
75
roles/desktop.nix
Normal file
75
roles/desktop.nix
Normal file
|
@ -0,0 +1,75 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
bemenu
|
||||
grim
|
||||
i3status-rust
|
||||
kanshi
|
||||
mako
|
||||
slurp
|
||||
swayidle
|
||||
swaylock
|
||||
];
|
||||
};
|
||||
|
||||
environment = {
|
||||
etc = {
|
||||
"sway/config".source = ../dotfiles/sway/config;
|
||||
"sway/status.toml".source = ../dotfiles/sway/status.toml;
|
||||
};
|
||||
};
|
||||
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = true;
|
||||
|
||||
fonts.enableDefaultFonts = true;
|
||||
fonts.fontconfig.antialias = true;
|
||||
fonts.fonts = with pkgs; [
|
||||
cascadia-code
|
||||
font-awesome
|
||||
noto-fonts
|
||||
noto-fonts-emoji
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
alacritty
|
||||
firefox
|
||||
keepassxc
|
||||
neofetch
|
||||
pulseaudio
|
||||
pulsemixer
|
||||
(
|
||||
pkgs.writeTextFile {
|
||||
name = "startsway";
|
||||
destination = "/bin/startsway";
|
||||
executable = true;
|
||||
text = ''
|
||||
#! ${pkgs.bash}/bin/bash
|
||||
|
||||
export MOZ_ENABLE_WAYLAND=1
|
||||
export QT_QPA_PLATFORM=wayland-egl
|
||||
export QT_WAYLAND_FORCE_DPI=physical
|
||||
export SDL_VIDEODRIVER=wayland
|
||||
export _JAVA_AWT_WM_NOREPARENTING=1
|
||||
exec ${pkgs.dbus}/bin/dbus-run-session ${pkgs.sway}/bin/sway
|
||||
'';
|
||||
}
|
||||
)
|
||||
];
|
||||
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
openDefaultPorts = true;
|
||||
user = "stefan";
|
||||
group = "users";
|
||||
dataDir = "/home/stefan";
|
||||
};
|
||||
|
||||
services.printing.enable = true;
|
||||
}
|
21
roles/dev.nix
Normal file
21
roles/dev.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
unstable = import <nixos-unstable> {};
|
||||
mozilla_overlay = import <mozilla> {};
|
||||
|
||||
in {
|
||||
environment.systemPackages = with pkgs; [
|
||||
go
|
||||
python37
|
||||
python37Packages.pyls-black
|
||||
python37Packages.pyls-isort
|
||||
python37Packages.pyls-mypy
|
||||
rustup
|
||||
unstable.gopls
|
||||
unstable.rust-analyzer
|
||||
];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue