Compare commits

..

7 commits

Author SHA1 Message Date
draco
cdb9232d9f update notes 2024-08-23 01:55:29 -04:00
draco
4c57c741be add home-manager switch command 2024-08-23 01:50:35 -04:00
draco
3218dfd2d5 fix dotfiles path inclusion 2024-08-23 01:23:01 -04:00
draco
1587257137 adding dotfiles to home-manager 2024-08-23 01:10:33 -04:00
draco
9be1768e56 fixing flake bugs 2024-08-23 01:07:06 -04:00
draco
7d17017e2c Flake 2024-08-23 00:56:52 -04:00
c154e11c9e move home-manager and flake config 2024-08-23 00:50:16 -04:00
9 changed files with 307 additions and 45 deletions

View file

@ -7,11 +7,7 @@
# include local machine/environment config
./local.nix
./programs
(fetchTarball "https://github.com/nix-community/nixos-vscode-server/tarball/master")
];
services.vscode-server.enable = true;
nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = ["nix-command" "flakes" ];
@ -29,10 +25,7 @@
mosh
traceroute
fastfetch
gnupg
age
sops
hollywood
];
environment.shellAliases = {
@ -65,13 +58,6 @@
'';
};
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# only for smartcards or yubikey
#services.pcscd.enable = true;
services.tailscale.enable = true;
services.tailscale.useRoutingFeatures = "client";

View file

@ -1,7 +0,0 @@
[init]
defaultBranch = main
[user]
name = dracoling
email = dracoling@consolidatedawesome.com
[includeIf "gitdir:~/work/"]
path = ~/work/.gitconfig

View file

@ -0,0 +1,190 @@
let s:guishade0 = "#202020"
let s:guishade1 = "#404040"
let s:guishade2 = "#606060"
let s:guishade3 = "#808080"
let s:guishade4 = "#9F9F9F"
let s:guishade5 = "#BFBFBF"
let s:guishade6 = "#DFDFDF"
let s:guishade7 = "#FFFFFF"
let s:guiaccent0 = "#FF3344"
let s:guiaccent1 = "#33FFA0"
let s:guiaccent2 = "#FF9233"
let s:guiaccent3 = "#5FFF33"
let s:guiaccent4 = "#33FFFF"
let s:guiaccent5 = "#33AAFF"
let s:guiaccent6 = "#838FFF"
let s:guiaccent7 = "#D970FF"
let s:ctermshade0 = 234
let s:ctermshade1 = 237
let s:ctermshade2 = 241
let s:ctermshade3 = 244
let s:ctermshade4 = 247
let s:ctermshade5 = 250
let s:ctermshade6 = 253
let s:ctermshade7 = 231
let s:ctermaccent0 = 203
let s:ctermaccent1 = 85
let s:ctermaccent2 = 215
let s:ctermaccent3 = 119
let s:ctermaccent4 = 87
let s:ctermaccent5 = 75
let s:ctermaccent6 = 147
let s:ctermaccent7 = 177
highlight clear
syntax reset
let g:colors_name = "Revontuli"
""""""""""
" Normal "
""""""""""
exec "hi Normal guifg=".s:guishade6." guibg=".s:guishade0
exec "hi Normal ctermfg=".s:ctermshade6." ctermbg=".s:ctermshade0
"""""""""""""""""
" Syntax groups "
"""""""""""""""""
" Default
exec "hi Comment guifg=".s:guishade2
exec "hi Comment ctermfg=".s:ctermshade2
exec "hi Constant guifg=".s:guiaccent2
exec "hi Constant ctermfg=".s:ctermaccent2
exec "hi Character guifg=".s:guiaccent5
exec "hi Character ctermfg=".s:ctermaccent5
" Identifier should be accent2 but it colors all variables
exec "hi Identifier guifg=".s:guishade7." gui=none"
exec "hi Identifier ctermfg=".s:ctermshade7." cterm=none"
exec "hi Variable guifg=".s:guishade7." gui=none"
exec "hi Variable ctermfg=".s:ctermshade7." cterm=none"
exec "hi Statement guifg=".s:guiaccent1
exec "hi Statement ctermfg=".s:ctermaccent1
exec "hi PreProc guifg=".s:guiaccent6
exec "hi PreProc ctermfg=".s:ctermaccent6
exec "hi Type guifg=".s:guiaccent4
exec "hi Type ctermfg=".s:ctermaccent4
exec "hi Special guifg=".s:guiaccent7
exec "hi Special ctermfg=".s:ctermaccent7
exec "hi SpecialChar guifg=".s:guiaccent2
exec "hi SpecialChar ctermfg=".s:ctermaccent2
exec "hi Underlined guifg=".s:guiaccent5
exec "hi Underlined ctermfg=".s:ctermaccent5
exec "hi Error guifg=".s:guiaccent0." guibg=".s:guishade1
exec "hi Error ctermfg=".s:ctermaccent0." ctermbg=".s:ctermshade1
exec "hi Todo guifg=".s:guiaccent2." guibg=".s:guishade1
exec "hi Todo ctermfg=".s:ctermaccent2." ctermbg=".s:ctermshade1
exec "hi Function guifg=".s:guiaccent6
exec "hi Function ctermfg=".s:ctermaccent6
exec "hi Boolean guifg=".s:guiaccent3
exec "hi Boolean ctermfg=".s:ctermaccent3
exec "hi Structure guifg=".s:guiaccent4
exec "hi Structure ctermfg=".s:ctermaccent4
exec "hi Macro guifg=".s:guiaccent3
exec "hi Macro ctermfg=".s:ctermaccent3
exec "hi Include guifg=".s:guiaccent3
exec "hi Include ctermfg=".s:ctermaccent3
exec "hi cInclude guifg=".s:guiaccent6
exec "hi cInclude ctermfg=".s:ctermaccent6
exec "hi cIncluded guifg=".s:guiaccent6
exec "hi cIncluded ctermfg=".s:ctermaccent6
"""""""""""""""""""""""
" Highlighting Groups "
"""""""""""""""""""""""
" Default
exec "hi ColorColumn guibg=".s:guishade1
exec "hi ColorColumn ctermbg=".s:ctermshade1
exec "hi Conceal guifg=".s:guishade2
exec "hi Conceal ctermfg=".s:ctermshade2
exec "hi Cursor guifg=".s:guishade0
exec "hi Cursor ctermfg=".s:ctermshade0
exec "hi CursorColumn guibg=".s:guishade1
exec "hi CursorColumn ctermbg=".s:ctermshade1
exec "hi CursorLine guibg=".s:guishade1
exec "hi CursorLine ctermbg=".s:ctermshade1." cterm=none"
exec "hi Directory guifg=".s:guiaccent5
exec "hi Directory ctermfg=".s:ctermaccent5
exec "hi DiffAdd guifg=".s:guiaccent3." guibg=".s:guishade1
exec "hi DiffAdd ctermfg=".s:ctermaccent3." ctermbg=".s:ctermshade1
exec "hi DiffChange guifg=".s:guiaccent2." guibg=".s:guishade1
exec "hi DiffChange ctermfg=".s:ctermaccent2." ctermbg=".s:ctermshade1
exec "hi DiffDelete guifg=".s:guiaccent0." guibg=".s:guishade1
exec "hi DiffDelete ctermfg=".s:ctermaccent0." ctermbg=".s:ctermshade1
exec "hi DiffText guifg=".s:guiaccent2." guibg=".s:guishade2
exec "hi DiffText ctermfg=".s:ctermaccent2." ctermbg=".s:ctermshade2
exec "hi ErrorMsg guifg=".s:guishade7." guibg=".s:guiaccent0
exec "hi ErrorMsg ctermfg=".s:ctermshade7." ctermbg=".s:ctermaccent0
exec "hi VertSplit guifg=".s:guishade0." guibg=".s:guishade3
exec "hi VertSplit ctermfg=".s:ctermshade0." ctermbg=".s:ctermshade3
exec "hi Folded guifg=".s:guishade4." guibg=".s:guishade1
exec "hi Folded ctermfg=".s:ctermshade4." ctermbg=".s:ctermshade1
exec "hi FoldColumn guifg=".s:guishade4." guibg=".s:guishade1
exec "hi FoldColumn ctermfg=".s:ctermshade4." ctermbg=".s:ctermshade1
exec "hi SignColumn guibg=".s:guishade0
exec "hi SignColumn ctermbg=".s:ctermshade0
exec "hi IncSearch guifg=".s:guishade0." guibg=".s:guiaccent2
exec "hi IncSearch ctermfg=".s:ctermshade0." ctermbg=".s:ctermaccent2
exec "hi LineNr guifg=".s:guishade2." guibg=".s:guishade0
exec "hi LineNr ctermfg=".s:ctermshade2." ctermbg=".s:ctermshade0
exec "hi CursorLineNr guifg=".s:guishade3." guibg=".s:guishade1
exec "hi CursorLineNr ctermfg=".s:ctermshade3." ctermbg=".s:ctermshade1
exec "hi MatchParen guibg=".s:guishade2
exec "hi MatchParen ctermbg=".s:ctermshade2
exec "hi MoreMsg guifg=".s:guishade0." guibg=".s:guiaccent4
exec "hi MoreMsg ctermfg=".s:ctermshade0." ctermbg=".s:ctermaccent4
exec "hi NonText guifg=".s:guishade2." guibg=".s:guishade0
exec "hi NonText ctermfg=".s:ctermshade2." ctermbg=".s:ctermshade0
exec "hi Pmenu guifg=".s:guishade6." guibg=".s:guishade0
exec "hi Pmenu ctermfg=".s:ctermshade6." ctermbg=".s:ctermshade0
exec "hi PmenuSel guifg=".s:guiaccent4." guibg=".s:guishade1
exec "hi PmenuSel ctermfg=".s:ctermaccent4." ctermbg=".s:ctermshade1
exec "hi PmenuSbar guifg=".s:guiaccent3." guibg=".s:guishade1
exec "hi PmenuSbar ctermfg=".s:ctermaccent3." ctermbg=".s:ctermshade1
exec "hi PmenuThumb guifg=".s:guiaccent0." guibg=".s:guishade2
exec "hi PmenuThumb ctermfg=".s:ctermaccent0." ctermbg=".s:ctermshade2
exec "hi Question guifg=".s:guishade7." guibg=".s:guishade1
exec "hi Question ctermfg=".s:ctermshade7." ctermbg=".s:ctermshade1
exec "hi Search guifg=".s:guishade0." guibg=".s:guiaccent2
exec "hi Search ctermfg=".s:ctermshade0." ctermbg=".s:ctermaccent2
exec "hi SpecialKey guifg=".s:guiaccent7." guibg=".s:guishade0
exec "hi SpecialKey ctermfg=".s:ctermaccent7." ctermbg=".s:ctermshade0
exec "hi SpellBad guifg=".s:guiaccent0
exec "hi SpellBad ctermfg=".s:ctermaccent0." ctermbg=NONE cterm=undercurl"
exec "hi SpellCap guifg=".s:guiaccent2
exec "hi SpellCap ctermfg=".s:ctermaccent2." ctermbg=NONE cterm=undercurl"
exec "hi SpellLocal guifg=".s:guiaccent4
exec "hi SpellLocal ctermfg=".s:ctermaccent4
exec "hi SpellRare guifg=".s:guiaccent1
exec "hi SpellRare ctermfg=".s:ctermaccent1
exec "hi StatusLine guifg=".s:guishade4." guibg=".s:guishade1." gui=none"
exec "hi StatusLine ctermfg=".s:ctermshade4." ctermbg=".s:ctermshade1." cterm=none"
exec "hi TabLine guifg=".s:guishade5." guibg=".s:guishade1
exec "hi TabLine ctermfg=".s:ctermshade5." ctermbg=".s:ctermshade1
exec "hi TabLineFill guibg=".s:guishade1
exec "hi TabLineFill ctermbg=".s:ctermshade1
exec "hi TabLineSel guifg=".s:guishade6." guibg=".s:guishade0
exec "hi TabLineSel ctermfg=".s:ctermshade6." ctermbg=".s:ctermshade0
exec "hi Title guifg=".s:guiaccent5
exec "hi Title ctermfg=".s:ctermaccent5
exec "hi Visual guibg=".s:guishade1
exec "hi Visual ctermbg=".s:ctermshade1
exec "hi VisualNOS guifg=".s:guiaccent0." guibg=".s:guishade1
exec "hi VisualNOS ctermfg=".s:ctermaccent0." ctermbg=".s:ctermshade1
exec "hi WarningMsg guifg=".s:guiaccent0
exec "hi WarningMsg ctermfg=".s:ctermaccent0
exec "hi WildMenu guifg=".s:guiaccent4." guibg=".s:guishade1
exec "hi WildMenu ctermfg=".s:ctermaccent4." ctermbg=".s:ctermshade1
""""""""""""
" Clean up "
""""""""""""
unlet s:guishade0 s:guishade1 s:guishade2 s:guishade3 s:guishade4 s:guishade5 s:guishade6 s:guishade7 s:guiaccent0 s:guiaccent1 s:guiaccent2 s:guiaccent3 s:guiaccent4 s:guiaccent5 s:guiaccent6 s:guiaccent7
unlet s:ctermshade0 s:ctermshade1 s:ctermshade2 s:ctermshade3 s:ctermshade4 s:ctermshade5 s:ctermshade6 s:ctermshade7 s:ctermaccent0 s:ctermaccent1 s:ctermaccent2 s:ctermaccent3 s:ctermaccent4 s:ctermaccent5 s:ctermaccent6 s:ctermaccent7

View file

@ -0,0 +1,2 @@
require("dracoling.set")
vim.cmd("colorscheme revontuli")

View file

@ -0,0 +1,16 @@
vim.opt.nu = true
vim.opt.relativenumber = true
vim.opt.wrap = false
vim.opt.smartindent = true
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.opt.colorcolumn = "80"

48
home-manager/flake.lock generated Normal file
View file

@ -0,0 +1,48 @@
{
"nodes": {
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1723986931,
"narHash": "sha256-Fy+KEvDQ+Hc8lJAV3t6leXhZJ2ncU5/esxkgt3b8DEY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "2598861031b78aadb4da7269df7ca9ddfc3e1671",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1724224976,
"narHash": "sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh+aRKoCdaAv5fiO0=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c374d94f1536013ca8e92341b540eba4c22f9c62",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

View file

@ -1,5 +1,5 @@
{
description = "Home Manager configuration of nixos";
description = "Home Manager configuration of draco";
inputs = {
# Specify the source of Home Manager and Nixpkgs.
@ -15,7 +15,7 @@
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in {
homeConfigurations."nixos" = home-manager.lib.homeManagerConfiguration {
homeConfigurations."draco" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
# Specify your home configuration modules here, for example,

View file

@ -3,8 +3,8 @@
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "nixos";
home.homeDirectory = "/home/nixos";
home.username = "draco";
home.homeDirectory = "/home/draco";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
@ -21,27 +21,16 @@
pkgs.glances
pkgs.taskwarrior3
pkgs.vit
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
".config/nvim" = {
source = dotfiles/nvim;
recursive = true;
};
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
@ -74,6 +63,20 @@
# EDITOR = "emacs";
};
programs = {
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home-manager.enable = true;
fish = {
enable = true;
# Fish shellAbbrs
shellAbbrs = {
garbage = "sudo nix-collect-garbage --delete-older-than 7d";
rbs = "sudo nixos-rebuild switch";
rebuild-all = "sudo nix-collect-garbage --delete-older-than 7d && sudo nixos-rebuild switch";
hms = "home-manager switch --flake ~/dev/personal/nixos/home-manager";
};
};
};
}

28
todo.md
View file

@ -3,12 +3,16 @@
## Figure out how to auto-initialize fish/tide configuration
Could probably read through the tide variable set to figure this out, just haven't done it yet. For now this command should initialize things correctly:
```tide configure --auto --style=Rainbow --prompt_colors='True color' --show_time='24-hour format' --rainbow_prompt_separators=Vertical --powerline_prompt_heads=Round --powerline_prompt_tails=Flat --powerline_prompt_style='Two lines, character' --prompt_connection=Disconnected --powerline_right_prompt_frame=No --prompt_spacing=Compact --icons='Many icons' --transient=No```
```
tide configure --auto --style=Rainbow --prompt_colors='True color' --show_time='24-hour format' --rainbow_prompt_separators=Vertical --powerline_prompt_heads=Round --powerline_prompt_tails=Flat --powerline_prompt_style='Two lines, character' --prompt_connection=Disconnected --powerline_right_prompt_frame=No --prompt_spacing=Compact --icons='Many icons' --transient=No
```
## tailscale setup
Need to connect new devices to the coordinator in order to access the tailscale network.
```sudo tailscale up --login-server=https://headscale.hive.smrsh.net```
```
sudo tailscale up --login-server=https://headscale.hive.smrsh.net
```
## Refactor machine defaults
Could probably merge some of the default locale settings and stuff, maybe even make the x11 config more generic
@ -19,3 +23,23 @@ and the programs and throw them into /etc/nixos, then you need to grab the dotfi
in .config... this is all done by hand. There should be a way using either `nix`, or `stow`, or `chezmoi`,
or some other already extant tool to do this in a slightly more automated fashion. The point of
this is to be easy for me to use and keep up with after all.
## Change WSL default username:
If you want to change the default username to something other than `nixos`, use the `wsl.defaultUser` option.
When building your own tarball, this should be sufficient. A user with the name specified in that option will be created automatically.
Changing the username on an already installed system is possible as well.
Follow these instructions to make sure, the change gets applied correctly:
1. Change the `wsl.defaultUser` setting in your configuration to the desired username.
2. Apply the configuration:\
`sudo nixos-rebuild boot`\
Do not use `nixos-rebuild switch`! It may lead to the new user account being misconfigured.
3. Exit the WSL shell and stop your NixOS distro:\
`wsl -t NixOS`.
4. Start a shell inside NixOS and immediately exit it to apply the new generation:\
`wsl -d NixOS --user root exit`
5. Stop the distro again:\
`wsl -t NixOS`
6. Open a WSL shell. Your new username should be applied now!