secrets fixes

adds steam
removes old ssh keys symlinks
adds gnome extensions
removes useless go paths
This commit is contained in:
Menno van Leeuwen 2024-11-01 15:15:40 +01:00
parent 71d6a1dc81
commit 0f3d7b56ed
Signed by: vleeuwenmenno
SSH Key Fingerprint: SHA256:OJFmjANpakwD3F2Rsws4GLtbdz1TJ5tkQF0RZmF0TRE
18 changed files with 358 additions and 175 deletions

View File

@ -2,12 +2,6 @@
source $HOME/dotfiles/bin/helpers/functions.sh source $HOME/dotfiles/bin/helpers/functions.sh
####################################################################################################
# Decrypt secrets
####################################################################################################
printfe "%s\n" "cyan" "Fetching password from 1Password..."
echo -en '\r'
if is_wsl; then if is_wsl; then
output=$(op.exe item get "Dotfiles Secrets" --fields password) output=$(op.exe item get "Dotfiles Secrets" --fields password)
else else
@ -19,14 +13,19 @@ if [[ $? -ne 0 ]]; then
printfe "%s\n" "red" "Failed to fetch password from 1Password." printfe "%s\n" "red" "Failed to fetch password from 1Password."
fi fi
# In case the output does not contain use 'op item get, it means the password was fetched successfully
token=$(echo "$output" | grep -oP "(?<=\[use 'op item get ).*(?= --)") # Without having to reveal the password using an external command
printfe "%s\n" "cyan" "Got fetch token: $token" if [[ ! $output == *"use 'op item get"* ]]; then
password=$output
if is_wsl; then
password=$(op.exe item get $token --reveal --field password)
else else
token=$(echo "$output" | grep -oP "(?<=\[use 'op item get ).*(?= --)")
printfe "%s\n" "cyan" "Got fetch token: $token"
if is_wsl; then
password=$(op.exe item get $token --reveal --field password)
else
password=$(op item get $token --reveal --fields password) password=$(op item get $token --reveal --fields password)
fi
fi fi
# only continue if password isn't empty # only continue if password isn't empty
@ -60,7 +59,6 @@ encrypt_folder() {
# If the file is a directory, call this function recursively # If the file is a directory, call this function recursively
if [[ -d $file ]]; then if [[ -d $file ]]; then
printfe "%s\n" "cyan" "Encrypting folder $file..."
encrypt_folder $file encrypt_folder $file
continue continue
fi fi
@ -72,7 +70,6 @@ encrypt_folder() {
previous_checksum=$(cat $checksum_file) previous_checksum=$(cat $checksum_file)
if [[ $current_checksum == $previous_checksum ]]; then if [[ $current_checksum == $previous_checksum ]]; then
printfe "%s\n" "green" "Skipping unchanged file $file."
continue continue
fi fi
fi fi
@ -110,7 +107,9 @@ decrypt_folder() {
} }
if [[ "$2" == "decrypt" ]]; then if [[ "$2" == "decrypt" ]]; then
printfe "%s\n" "cyan" "Decrypting secrets..."
decrypt_folder ~/dotfiles/secrets decrypt_folder ~/dotfiles/secrets
elif [[ "$2" == "encrypt" ]]; then elif [[ "$2" == "encrypt" ]]; then
printfe "%s\n" "cyan" "Encrypting secrets..."
encrypt_folder ~/dotfiles/secrets encrypt_folder ~/dotfiles/secrets
fi fi

View File

@ -105,6 +105,11 @@ sys_packages() {
else else
if [ -x "$(command -v nixos-version)" ]; then if [ -x "$(command -v nixos-version)" ]; then
sudo nixos-rebuild switch sudo nixos-rebuild switch
# Exit if this failed
if [ $? -ne 0 ]; then
exit $?
fi
return return
fi fi
@ -232,6 +237,7 @@ if [ "$#" -eq 0 ]; then
git_repos git_repos
flatpakpkgs flatpakpkgs
tailscalecmd tailscalecmd
dotf secrets encrypt
else else
for arg in "$@"; do for arg in "$@"; do
case $arg in case $arg in

View File

@ -32,16 +32,6 @@ config:
source: ~/dotfiles/config/ssh/config.d source: ~/dotfiles/config/ssh/config.d
target: ~/.ssh/config.d target: ~/.ssh/config.d
ssh_key:
source: ~/dotfiles/config/ssh/id_ed25519
target: ~/.ssh/id_ed25519
chmod: 600
ssh_key_public:
source: ~/dotfiles/config/ssh/id_ed25519.pub
target: ~/.ssh/id_ed25519.pub
chmod: 644
ssh_authorized_keys: ssh_authorized_keys:
sources: sources:
mennos-laptop: ~/dotfiles/config/ssh/authorized_keys/mennos-laptop mennos-laptop: ~/dotfiles/config/ssh/authorized_keys/mennos-laptop

View File

@ -2,6 +2,10 @@
{ {
dconf = { dconf = {
enable = true; enable = true;
settings."org/gnome/desktop/interface".color-scheme = "prefer-dark"; settings = {
# Set the color scheme to dark
"org/gnome/desktop/interface".color-scheme = "prefer-dark";
}; };
};
} }

View File

@ -2,6 +2,14 @@
{ {
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
home.packages = [ home.packages = [
(pkgs.nerdfonts.override { fonts = [ "Hack" "FiraCode" "Meslo" "FiraCode" "DroidSansMono" ]; }) (pkgs.nerdfonts.override {
fonts = [
"Hack"
"FiraCode"
"Meslo"
"FiraCode"
"DroidSansMono"
];
})
]; ];
} }

View File

@ -0,0 +1,176 @@
{ config, pkgs, ... }:
{
home.packages = with pkgs.gnomeExtensions; [
# lilypad@shendrew.github.io
# tailscale@joaophi.github.com
forge
gsconnect
blur-my-shell
rounded-window-corners
weather-oclock
space-bar
show-desktop-button
gtk4-desktop-icons-ng-ding
logo-menu
media-controls
burn-my-windows
coverflow-alt-tab
dash-to-dock
hide-top-bar
appindicator
];
# Copy burn-my-windows profile to user config
home.file.".config/burn-my-windows/profiles/default.conf".text = ''
[burn-my-windows-profile]
fire-enable-effect=false
tv-glitch-enable-effect=true
tv-glitch-animation-time=250
'';
dconf = {
settings = {
# To get an ID of an extension, run `gnome-extensions list`
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [
# "tilingshell@ferrarodomenico.com"
"forge@jmmaranan.com"
"gsconnect@andyholmes.github.io"
"blur-my-shell@aunetx"
"tailscale@joaophi.github.com"
"easy_docker_containers@red.software.systems"
"weatheroclock@CleoMenezesJr.github.io"
"space-bar@luchrioh"
"show-desktop-button@amivaleo"
"gtk4-ding@smedius.gitlab.com"
"logomenu@aryan_k"
"mediacontrols@cliffniff.github.com"
"burn-my-windows@schneegans.github.com"
"CoverflowAltTab@palatis.blogspot.com"
"dash-to-dock@micxgx.gmail.com"
"hidetopbar@mathieu.bidon.ca"
"gnome-shell-extension-appindicator"
"lilypad@shendrew.github.io"
"appindicatorsupport@rgcjonas.gmail.com"
];
};
# Configure dash-to-dock
"org/gnome/shell/extensions/dash-to-dock" = {
apply-custom-theme = false;
apply-glossy-effect = false;
autohide-in-fullscreen = true;
background-opacity = 0.8;
custom-theme-customize-running-dots = false;
custom-theme-running-dots-border-color = "rgb(255,255,255)";
custom-theme-running-dots-color = "rgb(255,255,255)";
dash-max-icon-size = 48;
dock-fixed = false;
dock-position = "BOTTOM";
extend-height = 0;
height-fraction = 0.9;
intellihide = true;
intellihide-mode = "ALL_WINDOWS";
multi-monitor = true;
preferred-monitor = -2;
preferred-monitor-by-connector = "DP-2";
running-indicator-dominant-color = true;
running-indicator-style = "DOTS";
show-apps-at-top = true;
show-favorites = true;
show-mounts = false;
show-trash = true;
transparency = 0.75;
transparency-mode = "FIXED";
unity-backlit-items = false;
};
# Configure logo-menu
"org/gnome/shell/extensions/Logo-menu" = {
hide-icon-shadow = false;
menu-button-extensions-app = "org.gnome.Extensions.desktop";
menu-button-icon-image = 23;
menu-button-icon-size = 24;
menu-button-system-monitor = "missioncenter";
menu-button-terminal = "kitty";
show-power-options = false;
symbolic-icon = true;
use-custom-icon = false;
};
# Configure covereflow-alt-tab
"org/gnome/shell/extensions/coverflowalttab" = {
animation-time = 0.2;
easing-function = "ease-out-quart";
icon-has-shadow = true;
icon-style = "Overlay";
invert-swipes = false;
position = "Top";
switcher-looping-method = "Flip Stack";
switcher-style = "Coverflow";
};
# Configure burn-my-windows
"org/gnome/shell/extensions/burn-my-windows" = {
active-profile = "${config.home.homeDirectory}/.config/burn-my-windows/profiles/default.conf";
};
# Configure blur-my-shell
"org/gnome/shell/extensions/blur-my-shell" = {
brightness = 0.75;
noise-amount = 0;
};
# Configure forge
"org/gnome/shell/extensions/forge" = {
move-pointer-focus-enabled = false;
stacked-tiling-mode-enabled = true;
tabbed-tiling-mode-enabled = true;
tiling-mode-enabled = true;
};
"org/gnome/shell/extensions/forge/keybindings" = {
con-split-horizontal = [ "<Super>z" ];
con-split-layout-toggle = [ "<Super>g" ];
con-split-vertical = [ "<Super>v" ];
con-stacked-layout-toggle = [ "<Shift><Super>s" ];
con-tabbed-layout-toggle = [ "<Shift><Super>t" ];
con-tabbed-showtab-decoration-toggle = [ "<Control><Alt>y" ];
focus-border-toggle = [ "<Super>x" ];
prefs-tiling-toggle = [ "<Super>w" ];
window-focus-down = [ "<Super>j" ];
window-focus-left = [ "<Super>h" ];
window-focus-right = [ "<Super>l" ];
window-focus-up = [ "<Super>k" ];
window-gap-size-decrease = [ "<Control><Super>minus" ];
window-gap-size-increase = [ "<Control><Super>plus" ];
window-move-down = [ "<Shift><Super>j" ];
window-move-left = [ "<Shift><Super>h" ];
window-move-right = [ "<Shift><Super>l" ];
window-move-up = [ "<Shift><Super>k" ];
window-resize-bottom-decrease = [ "<Shift><Control><Super>i" ];
window-resize-bottom-increase = [ "<Control><Super>u" ];
window-resize-left-decrease = [ "<Shift><Control><Super>o" ];
window-resize-left-increase = [ "<Control><Super>y" ];
window-resize-right-decrease = [ "<Shift><Control><Super>y" ];
window-resize-right-increase = [ "<Control><Super>o" ];
window-resize-top-decrease = [ "<Shift><Control><Super>u" ];
window-resize-top-increase = [ "<Control><Super>i" ];
window-snap-center = [ "<Control><Alt>c" ];
window-snap-one-third-left = [ "<Control><Alt>d" ];
window-snap-one-third-right = [ "<Control><Alt>g" ];
window-snap-two-third-left = [ "<Control><Alt>e" ];
window-snap-two-third-right = [ ];
window-swap-down = [ "<Control><Super>j" ];
window-swap-last-active = [ "<Super>Return" ];
window-swap-left = [ "<Control><Super>h" ];
window-swap-right = [ "<Control><Super>l" ];
window-swap-up = [ "<Control><Super>k" ];
window-toggle-always-float = [ "<Shift><Super>c" ];
window-toggle-float = [ "<Super>c" ];
workspace-active-tile-toggle = [ "<Shift><Super>w" ];
};
};
};
}

View File

@ -1,9 +1,12 @@
{ config, pkgs, ... }: { { config, pkgs, ... }:
{
imports = [ imports = [
./packages/vscode.nix ./packages/vscode.nix
./packages/go.nix ./packages/go.nix
./packages/kitty.nix ./packages/kitty.nix
./packages/zed-editor.nix
./fonts.nix ./fonts.nix
./gnome-extensions.nix
./dconf.nix ./dconf.nix
./keyboard-shortcuts.nix ./keyboard-shortcuts.nix
./virtualization.nix ./virtualization.nix
@ -18,11 +21,8 @@
home.username = "menno"; home.username = "menno";
home.homeDirectory = "/home/menno"; home.homeDirectory = "/home/menno";
home.stateVersion = "24.05"; home.stateVersion = "24.05";
home.file = { };
home.sessionVariables = { home.sessionVariables = {
GOROOT = "${pkgs.go}/share/go";
GOPATH = "${config.home.homeDirectory}/go";
PATH = "${config.home.homeDirectory}/go/bin:$PATH"; PATH = "${config.home.homeDirectory}/go/bin:$PATH";
}; };
} }

View File

@ -1,4 +1,5 @@
{ pkgs, ... }: { { pkgs, ... }:
{
home.packages = with pkgs; [ home.packages = with pkgs; [
# General packages # General packages
git git

View File

@ -12,9 +12,4 @@ in
enable = true; enable = true;
package = pinnedPkgs.go; package = pinnedPkgs.go;
}; };
home.sessionVariables = {
GOPATH = "${config.home.homeDirectory}/go";
GOBIN = "${config.home.homeDirectory}/go/bin";
};
} }

View File

@ -13,7 +13,6 @@
background_blur = 64; background_blur = 64;
}; };
shellIntegration.enableFishIntegration = true; shellIntegration.enableFishIntegration = true;
theme = "Catppuccin-Macchiato"; theme = "Catppuccin-Macchiato";
#Also available: Catppuccin-Frappe Catppuccin-Latte Catppuccin-Macchiato Catppuccin-Mocha #Also available: Catppuccin-Frappe Catppuccin-Latte Catppuccin-Macchiato Catppuccin-Mocha

View File

@ -0,0 +1,14 @@
{ config, pkgs, ... }:
let
pinnedPkgs = import (fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/41dea55321e5a999b17033296ac05fe8a8b5a257.tar.gz";
# Update this SHA256 when a new version is required ^^^
# You can find them here: https://www.nixhub.io/packages/zed-editor
}) { };
in
{
# Add zed-editor to your home packages
home.packages = [
pinnedPkgs.zed-editor
];
}

View File

@ -3,6 +3,7 @@
imports = [ imports = [
# Include the results of the hardware scan. # Include the results of the hardware scan.
/etc/nixos/hardware-configuration.nix /etc/nixos/hardware-configuration.nix
./packages/default.nix
./nvidia.nix ./nvidia.nix
./virtualization.nix ./virtualization.nix
./users.nix ./users.nix
@ -92,24 +93,21 @@
}; };
}; };
# Some programs need SUID wrappers, can be configured further or are # Enable the OpenSSH daemon.
# started in user sessions. # services.openssh = {
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true; # enable = true;
# enableSSHSupport = true; # port = 400;
# permitRootLogin = "no";
# passwordAuthentication = false;
# pubkeyAuthentication = true;
# }; # };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; networking.firewall = {
# networking.firewall.allowedUDPPorts = [ ... ]; enable = true;
# Or disable the firewall altogether. allowedTCPPorts = [ ];
# networking.firewall.enable = false; allowedUDPPorts = [ ];
};
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions

View File

@ -0,0 +1,5 @@
{ ... }: {
imports = [
./steam.nix
];
}

View File

@ -0,0 +1,13 @@
# In your configuration.nix
{ config, pkgs, ... }:
{
programs.steam = {
enable = true;
# Open ports in the firewall for Steam Remote Play
remotePlay.openFirewall = true;
# Open ports in the firewall for Source Dedicated Server
dedicatedServer.openFirewall = true;
# Open ports in the firewall for Steam Local Network Game Transfers
localNetworkGameTransfers.openFirewall = true;
};
}

28
hexyl
View File

@ -1,28 +0,0 @@
#!/bin/bash
# Check if nixos-version is available
if [ -x "$(command -v nixos-version)" ]; then
echo "Detected NixOS, skipping Nix setup."
return
else
echo "NixOS not detected, installing Nix..."
sh <(curl -L https://nixos.org/nix/install) --daemon
fi
# Check if sed is available
if [ ! -x "$(command -v sed)" ]; then
echo "sed is not available, please manually source the following lines in your .bashrc:"
echo "export PATH=$PATH:$HOME/.local/bin"
echo "export PATH=$PATH:~/dotfiles/bin"
return
fi
sed -i -e '$a\'$'\n''export PATH=$PATH:$HOME/.local/bin' ~/.bashrc
sed -i -e '$a\'$'\n''export PATH=$PATH:~/dotfiles/bin' ~/.bashrc
echo "#########################################################"
echo "# #"
echo "# !!! RESTART YOUR TERMINAL BEFORE YOU CONTINUE !!! #"
echo "# !!! Continue with 'dotf update' !!! #"
echo "# #"
echo "#########################################################"

View File

@ -1,11 +1,11 @@
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
jA0ECQMIr3309SR692H/0sBdAR8p3UqsDCSwoGFTb/XaYdj0V3fcPvRx3WSorDXv jA0ECQMIiJBBHrnxLgL/0sBlAQx6VUhb57TixN0GIfX3sxvAp3PxxUdEyx6R3B72
mTz70KI8MMw3R5Re/m4U/h34mHfi9rHC2wCsPbxQWqTZojONnwrsgPfQKqKcghb1 ItPYe8xCnf8OSS438TKaLQE/Xm6vptA2OeghI8I5HIYSuBuHVowHGnTPHR8nMMN/
Jbaecf1Ft+NjrGwpY1Y0zIgkJeT5K9VJyZ492vXrIWlahi/f/W3dCyszcPNC5Efv NaNN5WlYOUWO3FBllyOh5FvG79Hsc2r9enPDw6hADy3fSX+IySmrz7f/IGW21BS8
AsCaCWQC9TGz/7rbIsG8JR42sUwZ1b4XiogeMUqgbeiYqYIY6VlUCYFZryNwp4Zk 3sDQDomLx+DYPU4+Qe54RHIyZxPdsqExcANEToYel4iHiW/uFWnOdor9NU634cEM
sj1mfmuptrl3w+psxEajTNYTMahyOC83zd8EFtPxmvEbodj+cjmn5S6gcefS62e6 gzbMgWfO5YYa6tRgItzlgSGq0sJp8SYDmpZ4jQnAZ+ZwongGXG3XMBIpsPyAioFE
fDsLJhQYkTFQgTApjNP3TxTEZHkZLUeDW+KKRYUHp2KTKqieLR83Vu+ZC4tbMVzm DWtqIuybmXOybcU4qIrl4eHxJrQkXKMuY7R3Kux0Ie8PeTwdF1dhzxZVYs9NZiV6
E+wOhfTOrdUzfD2cv0uw WXlVJz1D95AH6et6XuVoKQEscEuH3Ok=
=n+C/ =DT24
-----END PGP MESSAGE----- -----END PGP MESSAGE-----

View File

@ -15,23 +15,26 @@
"editor.defaultFormatter": "esbenp.prettier-vscode" "editor.defaultFormatter": "esbenp.prettier-vscode"
}, },
"[json]": { "[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode" "editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
}, },
"git.openRepositoryInParentFolders": "always", "git.openRepositoryInParentFolders": "always",
"makefile.configureOnOpen": false, "makefile.configureOnOpen": false,
"[dart]": { "[dart]": {
"editor.formatOnSave": true, "editor.formatOnSave": true,
"editor.formatOnType": true, "editor.formatOnType": true,
"editor.rulers": [ "editor.rulers": [140],
140
],
"editor.selectionHighlight": false, "editor.selectionHighlight": false,
"editor.suggestSelection": "first", "editor.suggestSelection": "first",
"editor.tabCompletion": "onlySnippets", "editor.tabCompletion": "onlySnippets",
"editor.wordBasedSuggestions": "off" "editor.wordBasedSuggestions": "off"
}, },
"[nix]": {
"editor.formatOnSave": true
},
"editor.tabSize": 2, "editor.tabSize": 2,
"editor.insertSpaces": true, "editor.insertSpaces": true,
"editor.detectIndentation": true, "editor.detectIndentation": true,
"editor.autoIndent": "full", "editor.autoIndent": "full",
"debug.inlineValues": "on"
} }