A billion changes, but I'm finally on this new config!
This commit is contained in:
parent
8b12288df6
commit
c211604042
23
README.md
23
README.md
|
@ -28,3 +28,26 @@ Here's some things you might want to check out:
|
||||||
|
|
||||||
- My [neovim config](./dotfiles/neovim)
|
- My [neovim config](./dotfiles/neovim)
|
||||||
- The [flake](./flake.nix) entrypoint for this repository
|
- The [flake](./flake.nix) entrypoint for this repository
|
||||||
|
|
||||||
|
### Links to everything used here:
|
||||||
|
|
||||||
|
> Well, this does not include links to every plugin I used for every proram here, you can see more details in the respective configurations
|
||||||
|
|
||||||
|
- [nixos](http://nixos.org/) - nix based operating system
|
||||||
|
- [home-manager](https://github.com/nix-community/home-manager) - manager user configuration using nix
|
||||||
|
- [base16-nix](https://github.com/SenchoPens/base16.nix) - base16 module for nix
|
||||||
|
- [Base16 templates](https://github.com/chriskempson/base16-templates-source) - list of base16 template themes
|
||||||
|
- [Catpuccin](https://github.com/catppuccin/catppuccin) - base16 theme I use
|
||||||
|
- [Agenix](https://github.com/ryantm/agenix) & [homeage](https://github.com/jordanisaacs/homeage) - secret management
|
||||||
|
- [Xmonad](https://xmonad.org/) - window manager
|
||||||
|
- [Polybar](https://github.com/polybar/polybar) - desktop bar
|
||||||
|
- [Rofi](https://github.com/davatorium/rofi) - program launcher
|
||||||
|
- [Neovim](https://neovim.io/) - my editor
|
||||||
|
- [Neovide](https://neovide.dev/index.html) - neovide gui client
|
||||||
|
- [Vimclip](https://github.com/hrantzsch/vimclip) - vim anywhere!
|
||||||
|
- [Tmux](https://github.com/tmux/tmux/wiki) - terminal multiplexer
|
||||||
|
- [Alacritty](https://github.com/alacritty/alacritty) - terminal emulator
|
||||||
|
- [Fish](https://fishshell.com/) - user friendly shell
|
||||||
|
- [Starship](https://starship.rs/) - shell prompt
|
||||||
|
- [Zathura](https://pwmt.org/projects/zathura/) - pdf viewer
|
||||||
|
- [Ranger](https://github.com/ranger/ranger) - file manager
|
||||||
|
|
|
@ -5,7 +5,7 @@ local M = {
|
||||||
|
|
||||||
function M.config()
|
function M.config()
|
||||||
local catppuccin = require("catppuccin")
|
local catppuccin = require("catppuccin")
|
||||||
vim.g.catppuccin_flavour = os.getenv("CATPPUCCIN_FLAVOUR")
|
vim.g.catppuccin_flavour = os.getenv("CATPPUCCIN_FLAVOUR") or "latte"
|
||||||
|
|
||||||
catppuccin.setup({ transparent_background = false, integrations = { nvimtree = true } })
|
catppuccin.setup({ transparent_background = false, integrations = { nvimtree = true } })
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,12 @@ return {
|
||||||
cond = env.vscode.not_active(),
|
cond = env.vscode.not_active(),
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"Fymyte/rasi.vim",
|
||||||
|
ft = "rasi",
|
||||||
|
cond = env.vscode.not_active(),
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"teal-language/vim-teal",
|
"teal-language/vim-teal",
|
||||||
ft = "teal",
|
ft = "teal",
|
||||||
|
|
13
flake.nix
13
flake.nix
|
@ -85,6 +85,7 @@
|
||||||
home-manager.extraSpecialArgs = specialArgs;
|
home-manager.extraSpecialArgs = specialArgs;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
./hosts/nixos/tethys
|
./hosts/nixos/tethys
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -102,4 +103,16 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# {{{ Caching and whatnot
|
||||||
|
nixConfig = {
|
||||||
|
extra-substituters = [
|
||||||
|
"https://nix-community.cachix.org" # I think I need this for neovim-nightly?
|
||||||
|
];
|
||||||
|
|
||||||
|
extra-trusted-public-keys = [
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
];
|
||||||
|
};
|
||||||
|
# }}}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,5 +23,6 @@
|
||||||
neofetch # Display system information
|
neofetch # Display system information
|
||||||
unzip # For working with .zip files
|
unzip # For working with .zip files
|
||||||
unrar # For extracting shit from rars
|
unrar # For extracting shit from rars
|
||||||
|
sloc # Useless but fun line of code counter
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
28
home/adrielus/features/desktop/common/alacritty.nix
Normal file
28
home/adrielus/features/desktop/common/alacritty.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let base16-alacritty = pkgs.fetchFromGitHub {
|
||||||
|
owner = "aarowill";
|
||||||
|
repo = "base16-alacritty";
|
||||||
|
sha256 = "0zibl9kzazckkyzb6j0iabrl82r1kgwg8ndqpy7dz0kwmj42wfx0";
|
||||||
|
rev = "914727e48ebf3eab1574e23ca0db0ecd0e5fe9d0";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.alacritty = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
import = [ (config.scheme base16-alacritty) ];
|
||||||
|
|
||||||
|
window.decorations = "none";
|
||||||
|
window.padding = {
|
||||||
|
x = 4;
|
||||||
|
y = 4;
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.normal.family = config.fontProfiles.monospace.family;
|
||||||
|
|
||||||
|
env = { TERM = "xterm-256color"; };
|
||||||
|
working_directory = "${config.home.homeDirectory}/Projects/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
107
home/adrielus/features/desktop/common/firefox.nix
Normal file
107
home/adrielus/features/desktop/common/firefox.nix
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
mkBasicSearchEngine = { aliases, url, param }: {
|
||||||
|
urls = [{
|
||||||
|
template = url;
|
||||||
|
params = [
|
||||||
|
{ name = param; value = "{searchTerms}"; }
|
||||||
|
];
|
||||||
|
}];
|
||||||
|
|
||||||
|
definedAliases = aliases;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkNixPackagesEngine = { aliases, type }:
|
||||||
|
let basicEngine = mkBasicSearchEngine
|
||||||
|
{
|
||||||
|
aliases = aliases;
|
||||||
|
url = "https://search.nixos.org/${type}";
|
||||||
|
param = "query";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
basicEngine // {
|
||||||
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
profiles.adrielus = {
|
||||||
|
# Unique user id
|
||||||
|
id = 0;
|
||||||
|
|
||||||
|
# Make this the default user
|
||||||
|
isDefault = true;
|
||||||
|
|
||||||
|
# Forcefully replace the search configuration
|
||||||
|
search.force = true;
|
||||||
|
|
||||||
|
# Set default search engine
|
||||||
|
search.default = "Google";
|
||||||
|
|
||||||
|
# Specify custom search engines
|
||||||
|
search.engines = {
|
||||||
|
"Nix Packages" = mkNixPackagesEngine {
|
||||||
|
aliases = [ "@np" "@nix-packages" ];
|
||||||
|
type = "packages";
|
||||||
|
};
|
||||||
|
|
||||||
|
"Nix options" = mkNixPackagesEngine {
|
||||||
|
aliases = [ "@no" "@nix-options" ];
|
||||||
|
type = "options";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Purescript packages
|
||||||
|
"Pursuit" = mkBasicSearchEngine {
|
||||||
|
url = "https://pursuit.purescript.org/search";
|
||||||
|
param = "s";
|
||||||
|
aliases = [ "@ps" "@pursuit" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Wikipedia" = mkBasicSearchEngine {
|
||||||
|
url = "https://en.wikipedia.org/wiki/Special:Search";
|
||||||
|
param = "search";
|
||||||
|
aliases = [ "@wk" "@wikipedia" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Github" = mkBasicSearchEngine {
|
||||||
|
url = "https://github.com/search";
|
||||||
|
param = "q";
|
||||||
|
aliases = [ "@gh" "@github" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Youtube" = mkBasicSearchEngine {
|
||||||
|
url = "https://www.youtube.com/results";
|
||||||
|
param = "search_query";
|
||||||
|
aliases = [ "@yt" "@youtube" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Noita wiki" = mkBasicSearchEngine {
|
||||||
|
url = "https://noita.wiki.gg/index.php";
|
||||||
|
param = "search";
|
||||||
|
aliases = [ "@noita" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Rain world wiki" = mkBasicSearchEngine {
|
||||||
|
url = "https://rainworld.miraheze.org/w/index.php";
|
||||||
|
param = "search";
|
||||||
|
aliases = [ "@rw" "@rain-world" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Factorio wiki" = mkBasicSearchEngine {
|
||||||
|
url = "https://wiki.factorio.com/index.php";
|
||||||
|
param = "search";
|
||||||
|
aliases = [ "@fw" "@factorio-wiki" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Factorio mod portal" = mkBasicSearchEngine {
|
||||||
|
url = "https://mods.factorio.com/";
|
||||||
|
param = "query";
|
||||||
|
aliases = [ "@fm" "@factorio-mods" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Google".metaData.alias = "@g";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -17,15 +17,15 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
; Generated theme
|
; Generated theme
|
||||||
include-file = ${config.scheme base16-polybar}
|
${builtins.readFile (config.scheme base16-polybar)}
|
||||||
|
|
||||||
; Consistent fonts
|
; Consistent fonts
|
||||||
[fonts]
|
[fonts]
|
||||||
regular = ${config.fontProfiles.regular.family}
|
regular = "${config.fontProfiles.regular.family}"
|
||||||
monospace = ${config.fontProfiles.monospace.family}
|
monospace = "${config.fontProfiles.monospace.family}"
|
||||||
|
|
||||||
; Actual config
|
; Actual config
|
||||||
include-file = ${./polybar.ini}
|
${builtins.readFile ./polybar.ini}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -73,13 +73,13 @@ icon-default =
|
||||||
format = <label-state>
|
format = <label-state>
|
||||||
|
|
||||||
label-active = %icon%
|
label-active = %icon%
|
||||||
label-active-background = ${color.base05}
|
label-active-background = ${colors.base05}
|
||||||
label-active-foreground = ${color.base00}
|
label-active-foreground = ${colors.base00}
|
||||||
label-active-padding = 2
|
label-active-padding = 2
|
||||||
|
|
||||||
label-urgent = %icon%
|
label-urgent = %icon%
|
||||||
label-urgent-background = ${color.base09}
|
label-urgent-background = ${colors.base09}
|
||||||
label-urgent-foreground = ${color.base00}
|
label-urgent-foreground = ${colors.base00}
|
||||||
label-urgent-padding = 2
|
label-urgent-padding = 2
|
||||||
|
|
||||||
label-occupied = %icon%
|
label-occupied = %icon%
|
||||||
|
@ -88,7 +88,7 @@ label-occupied-padding = 2
|
||||||
label-empty =
|
label-empty =
|
||||||
|
|
||||||
[bar/main]
|
[bar/main]
|
||||||
font-0 = ${fonts.monospace}:style=Regular
|
font-0 = ${fonts.monospace}
|
||||||
|
|
||||||
modules-left = date battery
|
modules-left = date battery
|
||||||
modules-center = ewmh
|
modules-center = ewmh
|
||||||
|
@ -102,9 +102,9 @@ module-margin = 2
|
||||||
height=4%
|
height=4%
|
||||||
|
|
||||||
border-top-size = 1
|
border-top-size = 1
|
||||||
border-top-color = ${color.base05}
|
border-top-color= ${colors.base05}
|
||||||
|
|
||||||
background = ${color.base00}
|
background = ${colors.base00}
|
||||||
foreground = ${color.base05}
|
foreground = ${colors.base05}
|
||||||
|
|
||||||
bottom = true
|
bottom = true
|
||||||
|
|
|
@ -12,84 +12,10 @@ configuration {
|
||||||
display-run: " Run ";
|
display-run: " Run ";
|
||||||
display-window: " Window";
|
display-window: " Window";
|
||||||
display-Network: " Network";
|
display-Network: " Network";
|
||||||
sidebar-mode: true;
|
|
||||||
}
|
|
||||||
|
|
||||||
listview {
|
|
||||||
columns: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
* {
|
|
||||||
width: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
element-text, element-icon , mode-switcher {
|
|
||||||
background-color: inherit;
|
|
||||||
text-color: inherit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window {
|
window {
|
||||||
border: 3px;
|
border: 3px;
|
||||||
|
|
||||||
height: 50%;
|
height: 50%;
|
||||||
width: 50%;
|
width: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
inputbar {
|
|
||||||
children: [prompt,entry];
|
|
||||||
border-radius: 5px;
|
|
||||||
padding: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
prompt {
|
|
||||||
padding: 6px;
|
|
||||||
border-radius: 3px;
|
|
||||||
margin: 20px 0px 0px 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
textbox-prompt-colon {
|
|
||||||
expand: false;
|
|
||||||
str: ":";
|
|
||||||
}
|
|
||||||
|
|
||||||
entry {
|
|
||||||
padding: 6px;
|
|
||||||
margin: 20px 0px 0px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
listview {
|
|
||||||
border: 0px 0px 0px;
|
|
||||||
padding: 6px 0px 0px;
|
|
||||||
margin: 10px 0px 0px 20px;
|
|
||||||
columns: 2;
|
|
||||||
lines: 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
element {
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
element-icon {
|
|
||||||
size: 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
mode-switcher {
|
|
||||||
spacing: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
padding: 10px;
|
|
||||||
vertical-align: 0.5;
|
|
||||||
horizontal-align: 0.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
message {
|
|
||||||
margin: 2px;
|
|
||||||
padding: 2px;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
textbox {
|
|
||||||
padding: 6px;
|
|
||||||
margin: 20px 0px 0px 20px;
|
|
||||||
}
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ in
|
||||||
|
|
||||||
// Inject font
|
// Inject font
|
||||||
configuration {
|
configuration {
|
||||||
font = ${config.fontProfiles.monospace.family};
|
font: "${config.fontProfiles.monospace.family}";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Theme
|
// Theme
|
||||||
|
|
Binary file not shown.
BIN
home/adrielus/features/desktop/common/wallpapers/wall.png
Normal file
BIN
home/adrielus/features/desktop/common/wallpapers/wall.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 288 KiB |
11
home/adrielus/features/desktop/common/xresources.nix
Normal file
11
home/adrielus/features/desktop/common/xresources.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let base16-xresources = pkgs.fetchFromGitHub {
|
||||||
|
owner = "tinted-theming";
|
||||||
|
repo = "base16-xresources";
|
||||||
|
sha256 = "151zahx18vfrmbll7lwwnb17rn4z0di8n0fi2yr10hg14azddb2r";
|
||||||
|
rev = "6711cf4fa61e903e52ef6eac186b83e04a0397d8";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
xresources.extraConfig = builtins.readFile (config.scheme base16-xresources);
|
||||||
|
}
|
3
home/adrielus/features/desktop/common/xwallpaper.nix
Normal file
3
home/adrielus/features/desktop/common/xwallpaper.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
home.file.".background-image".source = ./wallpapers/wall.png;
|
||||||
|
}
|
|
@ -1,3 +1,17 @@
|
||||||
{
|
{ pkgs, ... }: {
|
||||||
imports = [ ./common/rofi ./common/polybar ./common/fonts.nix ];
|
imports = [
|
||||||
|
./common/rofi
|
||||||
|
./common/polybar
|
||||||
|
./common/fonts.nix
|
||||||
|
./common/xresources.nix
|
||||||
|
./common/xwallpaper.nix
|
||||||
|
./common/alacritty.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Other packages I want to install:
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
vimclip # Vim anywhere!
|
||||||
|
xclip # Clipboard stuff
|
||||||
|
spectacle # Take screenshots
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,8 +43,8 @@ let
|
||||||
|
|
||||||
extraRuntime = [
|
extraRuntime = [
|
||||||
(if devMode
|
(if devMode
|
||||||
then symlink "${paths.dotfiles}/vscode-snippets"
|
then symlink "${paths.dotfiles}/vscode-snippets"
|
||||||
else ../../../../dotfiles/vscode-snippets)
|
else ../../../../dotfiles/vscode-snippets)
|
||||||
];
|
];
|
||||||
|
|
||||||
# Wraps a neovim client, providing the dependencies
|
# Wraps a neovim client, providing the dependencies
|
||||||
|
@ -57,7 +57,7 @@ let
|
||||||
# - NVIM_EXTRA_RUNTIME provides extra directories to add to the runtimepath.
|
# - NVIM_EXTRA_RUNTIME provides extra directories to add to the runtimepath.
|
||||||
# I cannot just install those dirs using the builtin package support because
|
# I cannot just install those dirs using the builtin package support because
|
||||||
# my package manager (lazy.nvim) disables those.
|
# my package manager (lazy.nvim) disables those.
|
||||||
wrapClient = { base, name }:
|
wrapClient = { base, name, extraArgs ? "" }:
|
||||||
pkgs.symlinkJoin {
|
pkgs.symlinkJoin {
|
||||||
inherit (base) name meta;
|
inherit (base) name meta;
|
||||||
paths = [ base ];
|
paths = [ base ];
|
||||||
|
@ -66,12 +66,17 @@ let
|
||||||
wrapProgram $out/bin/${name} \
|
wrapProgram $out/bin/${name} \
|
||||||
--prefix PATH : ${lib.makeBinPath extraPackages} \
|
--prefix PATH : ${lib.makeBinPath extraPackages} \
|
||||||
--set INSIDE_NEOVIDE ${if name == "neovide" then "1" else "0"} \
|
--set INSIDE_NEOVIDE ${if name == "neovide" then "1" else "0"} \
|
||||||
--set NVIM_EXTRA_RUNTIME ${lib.strings.concatStringsSep "," extraRuntime}
|
--set NVIM_EXTRA_RUNTIME ${lib.strings.concatStringsSep "," extraRuntime} \
|
||||||
|
${extraArgs}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
neovim = wrapClient { base = pkgs.neovim-nightly; name = "nvim"; };
|
neovim = wrapClient { base = pkgs.neovim-nightly; name = "nvim"; };
|
||||||
neovide = wrapClient { base = pkgs.neovide; name = "neovide"; };
|
neovide = wrapClient {
|
||||||
|
base = pkgs.neovide;
|
||||||
|
name = "neovide";
|
||||||
|
extraArgs = "--set NEOVIDE_MULTIGRID true";
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# Do not manage neovim via nix
|
# Do not manage neovim via nix
|
||||||
|
@ -82,6 +87,8 @@ in
|
||||||
symlink "${paths.dotfiles}/neovim" else
|
symlink "${paths.dotfiles}/neovim" else
|
||||||
../../../../dotfiles/neovim;
|
../../../../dotfiles/neovim;
|
||||||
|
|
||||||
|
home.sessionVariables.EDITOR = "nvim";
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
neovim
|
neovim
|
||||||
neovide
|
neovide
|
||||||
|
|
|
@ -4,5 +4,19 @@
|
||||||
./features/desktop/xmonad.nix
|
./features/desktop/xmonad.nix
|
||||||
./features/desktop/common/discord.nix
|
./features/desktop/common/discord.nix
|
||||||
./features/desktop/common/zathura.nix
|
./features/desktop/common/zathura.nix
|
||||||
|
./features/desktop/common/firefox.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
signal-desktop # Signal client
|
||||||
|
zoom-us # Zoom client 🤮
|
||||||
|
obsidian # Notes
|
||||||
|
peek # GIF recorder
|
||||||
|
vlc # Video player
|
||||||
|
gimp # Image editing
|
||||||
|
libreoffice # Free office suite
|
||||||
|
|
||||||
|
# obs-studio # video recorder
|
||||||
|
# lmms # music software
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,10 @@
|
||||||
./wireless
|
./wireless
|
||||||
];
|
];
|
||||||
|
|
||||||
|
age.identityPaths = [
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key"
|
||||||
|
];
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
# Add all overlays defined in the overlays directory
|
# Add all overlays defined in the overlays directory
|
||||||
overlays = builtins.attrValues outputs.overlays ++ [
|
overlays = builtins.attrValues outputs.overlays ++ [
|
||||||
|
|
|
@ -40,20 +40,6 @@
|
||||||
# TODO: what is a trusted user?
|
# TODO: what is a trusted user?
|
||||||
trusted-users = [ "root" "@wheel" ];
|
trusted-users = [ "root" "@wheel" ];
|
||||||
|
|
||||||
# {{{ Caching and whatnot
|
|
||||||
substituters = [
|
|
||||||
"https://cache.nixos.org" # Default nixos cache
|
|
||||||
"https://nix-community.cachix.org" # I think I need this for neovim-nightly?
|
|
||||||
"https://cm-idris2-pkgs.cachix.org" # Idris packages
|
|
||||||
"https://danth.cachix.org" # stylix
|
|
||||||
];
|
|
||||||
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"cm-idris2-pkgs.cachix.org-1:YB2oJSEsD5oMJjAESxolC2GQtE6B5I6jkWhte2gtXjk="
|
|
||||||
"danth.cachix.org-1:wpodfSL7suXRc/rJDZZUptMa1t4MJ795hemRN0q84vI="
|
|
||||||
];
|
|
||||||
# }}}
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,19 +19,11 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
group = "network";
|
group = "network";
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: look into what this does
|
|
||||||
extraConfig = ''
|
|
||||||
update_config=1
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Ensure group exists
|
# Ensure group exists
|
||||||
users.groups.network = { };
|
users.groups.network = { };
|
||||||
|
|
||||||
# Convenient alias for connecting to wifi
|
|
||||||
environment.shellAliases.wifi = "sudo nmcli con up id";
|
|
||||||
|
|
||||||
# Persist imperative config
|
# Persist imperative config
|
||||||
# environment.persistence = {
|
# environment.persistence = {
|
||||||
# "/persist".files = [
|
# "/persist".files = [
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 UUF9JQ Qc1AgNo+N/kjGhMVHa/QDPt5nRCtuC8BvNdxuwHHKRA
|
-> ssh-ed25519 UUF9JQ q9tidRTxf+4VeDopyrO7y970Qm94iwUPsQTVK+/YGjQ
|
||||||
ZnOW8dIH2Sd5WDlvVA27hpp5AVHieJXIpwCmtg+dcp0
|
YvjmIkVFwkIUk7OhQ1MglvcNGgXna2SgRSfMJtfOAkE
|
||||||
-> rD3(ZZw-grease ZvlDZ7| G|:Xj NsbyfDh L\'
|
-> ssh-ed25519 qgVaDQ REcJWqJalQylWOSOVJT1jAJtQp6qnbztcyxo/2BDdE8
|
||||||
hZeXb1QaqOPfJKTKYdB60pMyHt6G42sIEmfzNqRI/w
|
nnbnzYKKE99thYzXzODD/rSQggJgOV5Cl8ZniDfCsGY
|
||||||
--- RFPqwBq0YPAoxa/g0gEmJmWTiYH6c77ZYR0snUIx0vE
|
-> L>-grease #efvc '0l?X`-h
|
||||||
æÀµÞêS©_!…º™s¥_i?·><3E>ËÉry<0C>V‹|ŽÞ^ò:…ó>¯ÍúLˉQÃ~æð€<19>3W®O9eÛ(•æ<ÈyŒC JòÇRqrù
|
F5xodFT3Tp+VpLJvE2R5PVkb43tm4VfbvTKLVIW0AuZ/wZWIedDinZx9i+gfWUsk
|
||||||
|
5U8rU6Ki3DdbOICZ
|
||||||
|
--- Cwoa81XsipVdO0hj9QeV60dYjHwEoS9FoDRSQ8/56oQ
|
||||||
|
èý£¯föÖ<EFBFBD>LoYs5ià¥L;”³ñÆ”=íú^.ôü»ŠÄ§˜Ö
‘~·ˆu»9ÅZ‘ΤøÓu¼</¶U¦ý5‚«X~±DíØ\moG
|
|
@ -44,7 +44,7 @@ main =
|
||||||
("M-w", spawn "rofi -show window"),
|
("M-w", spawn "rofi -show window"),
|
||||||
("M-g", spawn myBrowser),
|
("M-g", spawn myBrowser),
|
||||||
("M-d", spawn "Discord"),
|
("M-d", spawn "Discord"),
|
||||||
("M-v", spawn "alacritty -e vimclip"),
|
("M-v", spawn "alacritty -e 'vimclip'"),
|
||||||
("M-s", spawn "spectacle -rcb"),
|
("M-s", spawn "spectacle -rcb"),
|
||||||
("M-S-s", spawn "spectacle -mcb"),
|
("M-S-s", spawn "spectacle -mcb"),
|
||||||
("M-C-s", spawn "spectacle -ucb"),
|
("M-C-s", spawn "spectacle -ucb"),
|
||||||
|
@ -61,11 +61,11 @@ main =
|
||||||
layouts = tall ||| Full
|
layouts = tall ||| Full
|
||||||
myLayoutHook = spacingHook layouts
|
myLayoutHook = spacingHook layouts
|
||||||
|
|
||||||
startupApps =
|
startupApps = []
|
||||||
[ (0, "alacritty"),
|
-- [ (0, "alacritty"),
|
||||||
(1, "google-chrome-stable"),
|
-- (1, "google-chrome-stable"),
|
||||||
(2, "Discord")
|
-- (2, "Discord")
|
||||||
]
|
-- ]
|
||||||
|
|
||||||
startup :: X ()
|
startup :: X ()
|
||||||
startup = do
|
startup = do
|
||||||
|
|
|
@ -1,14 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let
|
|
||||||
catpuccin-sddm = pkgs.fetchFromGitHub {
|
|
||||||
owner = "catppuccin";
|
|
||||||
repo = "sddm";
|
|
||||||
sha256 = "1lg10dyxgz080qfcp6k3zk6374jlj067s6p5fgx5r135ivy8mrki";
|
|
||||||
rev = "bde6932e1ae0f8fdda76eff5c81ea8d3b7d653c0";
|
|
||||||
};
|
|
||||||
|
|
||||||
sddm-theme = "${catpuccin-sddm}/src/caputccin-latte";
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -20,18 +10,17 @@ in
|
||||||
config = ./Main.hs;
|
config = ./Main.hs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# Proper wallpaper zooming
|
||||||
|
desktopManager.wallpaper.mode = "fill";
|
||||||
|
|
||||||
displayManager = {
|
displayManager = {
|
||||||
# make xmonad session the default
|
# make xmonad session the default
|
||||||
defaultSession = "none+xmonad";
|
defaultSession = "none+xmonad";
|
||||||
|
|
||||||
# enable sddm
|
|
||||||
# sddm = {
|
|
||||||
# enable = true;
|
|
||||||
# theme = sddm-theme;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# enable startx
|
# enable startx
|
||||||
startx.enable = true;
|
# startx.enable = true;
|
||||||
|
sddm.enable = true;
|
||||||
|
|
||||||
# autoLogin = {
|
# autoLogin = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, config, ... }:
|
{ pkgs, outputs, config, ... }:
|
||||||
let
|
let
|
||||||
# Record containing all the hosts
|
# Record containing all the hosts
|
||||||
hosts = outputs.nixosConfigurations;
|
hosts = outputs.nixosConfigurations;
|
||||||
|
@ -10,12 +10,23 @@ in
|
||||||
# Password file stored through agenix
|
# Password file stored through agenix
|
||||||
age.secrets.adrielusPassword.file = ./adrielus_password.age;
|
age.secrets.adrielusPassword.file = ./adrielus_password.age;
|
||||||
|
|
||||||
|
# Temporary stuff until I package my keyboard script
|
||||||
|
users.groups.uinput = { };
|
||||||
|
services.udev.extraRules =
|
||||||
|
''
|
||||||
|
# Access to /dev/uinput
|
||||||
|
KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
|
||||||
|
'';
|
||||||
|
|
||||||
users = {
|
users = {
|
||||||
# Configure users through nix only
|
# Configure users through nix only
|
||||||
mutableUsers = false;
|
mutableUsers = false;
|
||||||
|
|
||||||
# Create an user named adrielus
|
# Create an user named adrielus
|
||||||
users.adrielus = {
|
users.adrielus = {
|
||||||
|
# Make fish the default shell
|
||||||
|
shell = pkgs.fish;
|
||||||
|
|
||||||
# File containing my password, managed by agenix
|
# File containing my password, managed by agenix
|
||||||
passwordFile = config.age.secrets.adrielusPassword.path;
|
passwordFile = config.age.secrets.adrielusPassword.path;
|
||||||
|
|
||||||
|
@ -28,21 +39,22 @@ in
|
||||||
"docker" # Allows me to use docker (?)
|
"docker" # Allows me to use docker (?)
|
||||||
"audio" # Allows me to use audio devices
|
"audio" # Allows me to use audio devices
|
||||||
"video" # Allows me to use a webcam
|
"video" # Allows me to use a webcam
|
||||||
|
"uinput" # I think this let's me write to virtual devices
|
||||||
|
"input" # Does this let me use evdev (?)
|
||||||
|
|
||||||
# TODO: find out why I added these here a long time ago
|
# TODO: find out why I added these here a long time ago
|
||||||
"sound"
|
"sound"
|
||||||
"input"
|
|
||||||
"tty"
|
"tty"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Adds me to some default groups, and creates the home dir
|
# Adds me to some default groups, and creates the home dir
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
};
|
|
||||||
|
|
||||||
openssh.authorizedKeys.keyFiles =
|
openssh.authorizedKeys.keyFiles =
|
||||||
builtins.attrValues # attrsetof path -> path[]
|
builtins.attrValues # attrsetof path -> path[]
|
||||||
(builtins.mapAttrs # ... -> attrsetof host -> attrsetof path
|
(builtins.mapAttrs # ... -> attrsetof host -> attrsetof path
|
||||||
(name: _: idKey name) # string -> host -> path
|
(name: _: idKey name) # string -> host -> path
|
||||||
hosts);
|
hosts);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 UUF9JQ AWyd+vbllVT7QeD8xfu8D4NhxEA1RxwYCKwxGIrkIEw
|
-> ssh-ed25519 UUF9JQ BIl9Xb3n31DCiJiEVdgSrS9Q8mV+QKHIz9pbaskbZkY
|
||||||
m7/XC6vhyhHW5vY+48bxmBsb6Zfhof+mavhq1fdpd+U
|
umx6izgXtyrI7x15bAB+NtpezVWuI1ohtV3N9g7KSDU
|
||||||
-> E-grease s%$ F5jZ"f E(>8 x|#B"9
|
-> ssh-ed25519 qgVaDQ kYRngT8940XS/6SACGO86KxNlwOLx7iZFewv+6rGRF0
|
||||||
dilxxi2WlTIReh+uvkscDubze9MyfGaW7Tn22L6p8X8YZ40muPOtVaWkgQBv1OLo
|
+a5xQXtda8sSBCyKPGNugfozqANpVmCzXowfC6JmleA
|
||||||
SkccszU/cr1NEJm62YOPZGnmK96MwxA/ZWnlG5Ls/my47MqymDq7/1ySWKU5xA
|
-> UpxQQ-grease $( d6} t4iN^
|
||||||
--- wOqvODKflq/JZT0/Qssb8FEl/IDNou+yKMGPn/nI81Q
|
ovdi6zgEwERhuIeRtKdKn1FPOXIovnHzueGofkQ5kbIAQRH+RSBv3L5767h+YD5m
|
||||||
m>W¨u!ĚNą@˝ĎĎ‹yB"űGÉłĆL'A)+)áĆEzQü$Ł"Z;w-
|
fKThMcdEvfwr92NHHCzPPJmigMbRUtQonDu4TGnB/XrNF8xEYiri+6S41e9CMQcQ
|
||||||
|
/F7W
|
||||||
|
--- bc2aF9M+2m+ZXrGsObUCYvZEvFhVEZnKTu/T81Lka0s
|
||||||
|
€Sï±ÙbÅ
|
||||||
|
ÔÚÐc•|$ô}Óˆ“<CB86>Á&VÄ ·,RÜ™»Èˆˆ·Þ¡à_0Y ›Ä1÷pœ(„òÄz‡˜œ¦$`;P#JXÿŠPÆ0£¬ºŒï!Šè8mN}B#½ÅÓô|ÚoönsŒh
|
|
@ -3,4 +3,5 @@
|
||||||
|
|
||||||
{ pkgs ? (import ../nixpkgs.nix) { } }: {
|
{ pkgs ? (import ../nixpkgs.nix) { } }: {
|
||||||
# example = pkgs.callPackage (import ./example.nix) {};
|
# example = pkgs.callPackage (import ./example.nix) {};
|
||||||
|
vimclip = pkgs.callPackage (import ./vimclip.nix) {};
|
||||||
}
|
}
|
||||||
|
|
27
pkgs/vimclip.nix
Normal file
27
pkgs/vimclip.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
pkgs.stdenv.mkDerivation rec {
|
||||||
|
name = "vimclip";
|
||||||
|
rev = "7f53433";
|
||||||
|
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
inherit rev;
|
||||||
|
owner = "hrantzsch";
|
||||||
|
repo = "vimclip";
|
||||||
|
sha256 = "cl5y7Lli5frwx823hoN17B2aQLNY7+njmKEDdIbhc4Y=";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
pkgs.makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp ./vimclip $out/bin/vimclip
|
||||||
|
chmod +x $out/bin/vimclip
|
||||||
|
'';
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
wrapProgram $out/bin/vimclip \
|
||||||
|
--prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.xsel ]} \
|
||||||
|
'';
|
||||||
|
}
|
|
@ -1,8 +1,12 @@
|
||||||
let
|
let
|
||||||
adrielus = builtins.readFile ./hosts/nixos/tethys/id_ed25519.pub;
|
adrielus = builtins.readFile ./hosts/nixos/tethys/id_ed25519.pub;
|
||||||
|
tethys = builtins.readFile ./hosts/nixos/tethys/ssh_host_ed25519_key.pub;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"./hosts/nixos/common/global/wireless/wifi_passwords.age".publicKeys = [ adrielus ];
|
# Scoped for entire systems
|
||||||
"./hosts/nixos/common/users/adrielus_password.age".publicKeys = [ adrielus ];
|
"./hosts/nixos/common/global/wireless/wifi_passwords.age".publicKeys = [ adrielus tethys ];
|
||||||
|
"./hosts/nixos/common/users/adrielus_password.age".publicKeys = [ adrielus tethys ];
|
||||||
|
|
||||||
|
# Scoped for the user
|
||||||
"./home/adrielus/features/desktop/common/wakatime/wakatime_config.age".publicKeys = [ adrielus ];
|
"./home/adrielus/features/desktop/common/wakatime/wakatime_config.age".publicKeys = [ adrielus ];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue