mv home homeConfigurations
This commit is contained in:
parent
f89c75aad2
commit
1bebb5d096
17 changed files with 0 additions and 0 deletions
60
homeConfigurations/ronja/configuration.nix
Normal file
60
homeConfigurations/ronja/configuration.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
config = {
|
||||
home.packages = with pkgs; [
|
||||
## Apps
|
||||
telegram-desktop
|
||||
kdiff3
|
||||
];
|
||||
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
|
||||
zsh = {
|
||||
history = {
|
||||
size = 10000;
|
||||
path = "${config.xdg.dataHome}/zsh/history";
|
||||
expireDuplicatesFirst = true;
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "agnoster";
|
||||
plugins = [
|
||||
"git"
|
||||
"sudo"
|
||||
"systemadmin"
|
||||
];
|
||||
};
|
||||
shellAliases = {
|
||||
myos-update = ''echo "Enter sudo password" && sudo nixos-rebuild boot --flake git+https://git.berlin.ccc.de/vinzenz/nixos-configuration.git --show-trace --log-format internal-json -v |& ${pkgs.nix-output-monitor}/bin/nom --json'';
|
||||
myos-apply = ''echo "Enter sudo password" && sudo nixos-rebuild switch --flake .# --show-trace --log-format internal-json -v |& ${pkgs.nix-output-monitor}/bin/nom --json'';
|
||||
};
|
||||
};
|
||||
|
||||
git = {
|
||||
userName = "Ronja Spiegelberg";
|
||||
userEmail = "ronja.spiegelberg@gmail.com";
|
||||
|
||||
extraConfig = {
|
||||
pull.ff = "only";
|
||||
merge.tool = "kdiff3";
|
||||
};
|
||||
};
|
||||
|
||||
chromium = {
|
||||
enable = true;
|
||||
extensions = [
|
||||
{
|
||||
# ublock origin
|
||||
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
|
||||
}
|
||||
{
|
||||
id = "dcpihecpambacapedldabdbpakmachpb";
|
||||
updateUrl = "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/updates.xml";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
25
homeConfigurations/ronja/default.nix
Normal file
25
homeConfigurations/ronja/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
config = {
|
||||
# Define user account
|
||||
users.users.ronja = {
|
||||
isNormalUser = true;
|
||||
name = "ronja";
|
||||
description = "Ronja";
|
||||
home = "/home/ronja";
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"games"
|
||||
"podman"
|
||||
"openvscode-server"
|
||||
];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
home-manager.users.ronja.imports = [
|
||||
./configuration.nix
|
||||
./vscode.nix
|
||||
];
|
||||
};
|
||||
}
|
68
homeConfigurations/ronja/vscode.nix
Normal file
68
homeConfigurations/ronja/vscode.nix
Normal file
|
@ -0,0 +1,68 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{
|
||||
config = {
|
||||
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
profiles.default = {
|
||||
enableUpdateCheck = false;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
jnoortheen.nix-ide
|
||||
ms-python.python
|
||||
editorconfig.editorconfig
|
||||
yzhang.markdown-all-in-one
|
||||
redhat.vscode-yaml
|
||||
pkief.material-icon-theme
|
||||
rust-lang.rust-analyzer
|
||||
tamasfe.even-better-toml
|
||||
llvm-vs-code-extensions.vscode-clangd
|
||||
mkhl.direnv
|
||||
vadimcn.vscode-lldb
|
||||
# ms-dotnettools.csharp
|
||||
# ms-vscode-remote.remote-ssh
|
||||
];
|
||||
userSettings = {
|
||||
"files.autoSave" = "afterDelay";
|
||||
"files.autoSaveWhenNoErrors" = true;
|
||||
"files.autoSaveWorkspaceFilesOnly" = true;
|
||||
|
||||
"editor.fontFamily" = "'Fira Code', 'Droid Sans Mono', 'monospace', monospace";
|
||||
"editor.fontLigatures" = true;
|
||||
"editor.formatOnSave" = true;
|
||||
"editor.formatOnSaveMode" = "modificationsIfAvailable";
|
||||
"editor.minimap.autohide" = true;
|
||||
|
||||
"workbench.startupEditor" = "readme";
|
||||
"workbench.enableExperiments" = false;
|
||||
"workbench.iconTheme" = "material-icon-theme";
|
||||
|
||||
"update.mode" = "none";
|
||||
"extensions.autoUpdate" = false;
|
||||
"extensions.autoCheckUpdates" = false;
|
||||
|
||||
"telemetry.telemetryLevel" = "off";
|
||||
"redhat.telemetry.enabled" = false;
|
||||
|
||||
"git.autofetch" = true;
|
||||
"diffEditor.diffAlgorithm" = "advanced";
|
||||
"explorer.excludeGitIgnore" = true;
|
||||
"markdown.extension.tableFormatter.normalizeIndentation" = true;
|
||||
"markdown.extension.toc.orderedList" = false;
|
||||
"rust-analyzer.checkOnSave.command" = "clippy";
|
||||
|
||||
"nix.formatterPath" = "${lib.getBin pkgs.nixfmt-rfc-style}/bin/nixfmt";
|
||||
|
||||
"\[makefile\]" = {
|
||||
"editor.insertSpaces" = false;
|
||||
"editor.detectIndentation" = false;
|
||||
};
|
||||
|
||||
"\[nix\]" = {
|
||||
"editor.formatOnSave" = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
23
homeConfigurations/vinzenz/.config/containers/policy.json
Normal file
23
homeConfigurations/vinzenz/.config/containers/policy.json
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"default": [
|
||||
{
|
||||
"type": "reject"
|
||||
}
|
||||
],
|
||||
"transports": {
|
||||
"docker-daemon": {
|
||||
"": [
|
||||
{
|
||||
"type": "insecureAcceptAnything"
|
||||
}
|
||||
]
|
||||
},
|
||||
"docker": {
|
||||
"docker.io/library/debian": [
|
||||
{
|
||||
"type": "insecureAcceptAnything"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
1843
homeConfigurations/vinzenz/.zsh/p10k.zsh
Normal file
1843
homeConfigurations/vinzenz/.zsh/p10k.zsh
Normal file
File diff suppressed because it is too large
Load diff
72
homeConfigurations/vinzenz/configuration.nix
Normal file
72
homeConfigurations/vinzenz/configuration.nix
Normal file
|
@ -0,0 +1,72 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
fzf.enable = true;
|
||||
git-credential-oauth.enable = true;
|
||||
|
||||
direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
eza = {
|
||||
enable = true;
|
||||
git = true;
|
||||
icons = "auto";
|
||||
extraOptions = [
|
||||
"--group-directories-first"
|
||||
"--header"
|
||||
];
|
||||
};
|
||||
|
||||
thefuck = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
chromium.enable = true;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
keepassxc
|
||||
|
||||
telegram-desktop
|
||||
element-desktop
|
||||
|
||||
wireguard-tools
|
||||
wirelesstools
|
||||
|
||||
kdiff3
|
||||
jetbrains-toolbox
|
||||
|
||||
blanket
|
||||
vlc
|
||||
|
||||
ptyxis
|
||||
|
||||
arduino
|
||||
arduino-ide
|
||||
arduino-cli
|
||||
|
||||
servicepoint-cli
|
||||
servicepoint-simulator
|
||||
|
||||
icu
|
||||
|
||||
nextcloud-client
|
||||
|
||||
lutris
|
||||
|
||||
foliate
|
||||
];
|
||||
|
||||
home.file = {
|
||||
"policy.json" = {
|
||||
target = ".config/containers/policy.json";
|
||||
text = builtins.readFile ./.config/containers/policy.json;
|
||||
};
|
||||
"idea.properties".text = "idea.filewatcher.executable.path = ${pkgs.fsnotifier}/bin/fsnotifier";
|
||||
};
|
||||
}
|
51
homeConfigurations/vinzenz/default.nix
Normal file
51
homeConfigurations/vinzenz/default.nix
Normal file
|
@ -0,0 +1,51 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
config = {
|
||||
users.users.vinzenz = {
|
||||
isNormalUser = true;
|
||||
name = "vinzenz";
|
||||
description = "Vinzenz";
|
||||
home = "/home/vinzenz";
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"games"
|
||||
"dialout"
|
||||
"podman"
|
||||
"nginx"
|
||||
"adbusers"
|
||||
"kvm"
|
||||
"input"
|
||||
"video"
|
||||
];
|
||||
shell = pkgs.zsh;
|
||||
autoSubUidGidRange = true;
|
||||
};
|
||||
|
||||
nix.settings.trusted-users = [ "vinzenz" ];
|
||||
|
||||
home-manager.users.vinzenz.imports = [
|
||||
./configuration.nix
|
||||
./editorconfig.nix
|
||||
./fuzzel.nix
|
||||
./git.nix
|
||||
./gnome.nix
|
||||
#./niri.nix
|
||||
./ssh.nix
|
||||
./swaylock.nix
|
||||
./vscode.nix
|
||||
./waybar.nix
|
||||
./zsh.nix
|
||||
];
|
||||
|
||||
allowedUnfreePackages = [
|
||||
"rider"
|
||||
"pycharm-professional"
|
||||
"jetbrains-toolbox"
|
||||
|
||||
"anydesk"
|
||||
|
||||
"vscode-extension-ms-dotnettools-csharp"
|
||||
];
|
||||
};
|
||||
}
|
20
homeConfigurations/vinzenz/editorconfig.nix
Normal file
20
homeConfigurations/vinzenz/editorconfig.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{ ... }:
|
||||
{
|
||||
config.editorconfig = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"*" = {
|
||||
charset = "utf-8";
|
||||
end_of_line = "lf";
|
||||
trim_trailing_whitespace = true;
|
||||
insert_final_newline = true;
|
||||
max_line_width = 120;
|
||||
indent_style = "space";
|
||||
indent_size = 4;
|
||||
};
|
||||
"*.nix" = {
|
||||
indent_size = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
31
homeConfigurations/vinzenz/fuzzel.nix
Normal file
31
homeConfigurations/vinzenz/fuzzel.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
config.programs.fuzzel = {
|
||||
enable = true;
|
||||
settings = {
|
||||
main = {
|
||||
terminal = "${pkgs.alacritty}/bin/alacritty";
|
||||
icon-theme = "Adwaita";
|
||||
counter = true;
|
||||
font = "sans:size=10";
|
||||
};
|
||||
colors = {
|
||||
border = "0003B3FF";
|
||||
background = "0F0F0FFF";
|
||||
text = "657b83ff";
|
||||
prompt = "586e75ff";
|
||||
placeholder = "93a1a1ff";
|
||||
input = "657b83ff";
|
||||
match = "cb4b16ff";
|
||||
selection = "eee8d5ff";
|
||||
selection-text = "586e75ff";
|
||||
selection-match = "cb4b16ff";
|
||||
counter = "93a1a1ff";
|
||||
};
|
||||
border = {
|
||||
radius = 30;
|
||||
width = 3;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
26
homeConfigurations/vinzenz/git.nix
Normal file
26
homeConfigurations/vinzenz/git.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ ... }:
|
||||
{
|
||||
config.programs.git = {
|
||||
enable = true;
|
||||
userName = "Vinzenz Schroeter";
|
||||
userEmail = "vinzenz.f.s@gmail.com";
|
||||
|
||||
aliases = {
|
||||
prettylog = "log --pretty=oneline --graph";
|
||||
spring-clean = "!git branch --merged | xargs -n 1 -r git branch -d";
|
||||
};
|
||||
|
||||
extraConfig = {
|
||||
pull.ff = "only";
|
||||
merge.tool = "kdiff3";
|
||||
push.autoSetupRemote = "true";
|
||||
credential.credentialStore = "cache";
|
||||
};
|
||||
|
||||
ignores = [
|
||||
".direnv"
|
||||
".idea"
|
||||
".envrc"
|
||||
];
|
||||
};
|
||||
}
|
31
homeConfigurations/vinzenz/gnome.nix
Normal file
31
homeConfigurations/vinzenz/gnome.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
config = {
|
||||
home.packages = with pkgs; [
|
||||
gitg
|
||||
meld
|
||||
simple-scan
|
||||
pinta
|
||||
dconf-editor
|
||||
impression # usb image writer
|
||||
papers # pdf viewer
|
||||
gnome-software # for flatpak apps
|
||||
gnomeExtensions.solaar-extension
|
||||
snapshot
|
||||
];
|
||||
|
||||
dconf.settings = {
|
||||
"org/gnome/shell".enabled-extensions = [
|
||||
"GPaste@gnome-shell-extensions.gnome.org"
|
||||
"solaar-extension@sidevesh"
|
||||
];
|
||||
"org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
||||
"org/gnome/desktop/wm/keybindings" = {
|
||||
switch-windows = [ "<Alt>Tab" ];
|
||||
switch-windows-backward = [ "<Shift><Alt>Tab" ];
|
||||
switch-applications = [ "<Super>Tab" ];
|
||||
switch-applications-backward = [ "<Shift><Super>Tab" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
298
homeConfigurations/vinzenz/niri.nix
Normal file
298
homeConfigurations/vinzenz/niri.nix
Normal file
|
@ -0,0 +1,298 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
config = {
|
||||
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
home.packages = with pkgs; [
|
||||
xwayland-satellite
|
||||
alacritty
|
||||
];
|
||||
|
||||
qt.style = {
|
||||
package = pkgs.adwaita-qt;
|
||||
name = "adwaita-dark";
|
||||
};
|
||||
|
||||
services.mako.enable = true;
|
||||
|
||||
programs.niri.settings = {
|
||||
input.keyboard.xkb.layout = "de";
|
||||
|
||||
outputs."eDP-1" = {
|
||||
scale = 1.0;
|
||||
variable-refresh-rate = true;
|
||||
background-color = "#000000";
|
||||
};
|
||||
|
||||
layout.gaps = 8;
|
||||
|
||||
# defaults taken from https://github.com/sodiboo/niri-flake/issues/483
|
||||
binds = {
|
||||
# Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||
# in the end. To find an XKB name for a particular key, you may use a program
|
||||
# like wev.
|
||||
#
|
||||
# "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
|
||||
# when running as a winit window.
|
||||
#
|
||||
# Most actions that you can bind here can also be invoked programmatically with
|
||||
# `niri msg action do-something`.
|
||||
|
||||
# Mod-Shift-/, which is usually the same as Mod-?,
|
||||
# shows a list of important hotkeys.
|
||||
"Mod+Shift+Numbersign".action.show-hotkey-overlay = { };
|
||||
|
||||
# Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||
"Mod+T".action.spawn = "alacritty";
|
||||
"Mod+D".action.spawn = "fuzzel";
|
||||
"Super+Alt+L".action.spawn = "${config.programs.swaylock.package}/bin/swaylock";
|
||||
|
||||
# You can also use a shell. Do this if you need pipes, multiple commands, etc.
|
||||
# Note: the entire command goes as a single argument in the end.
|
||||
# Mod+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; }
|
||||
|
||||
# Example volume keys mappings for PipeWire & WirePlumber.
|
||||
# The allow-when-locked=true property makes them work even when the session is locked.
|
||||
"XF86AudioRaiseVolume" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"0.1+"
|
||||
];
|
||||
};
|
||||
"XF86AudioLowerVolume" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"0.1-"
|
||||
];
|
||||
};
|
||||
"XF86AudioMute" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-mute"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"toggle"
|
||||
];
|
||||
};
|
||||
"XF86AudioMicMute" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-mute"
|
||||
"@DEFAULT_AUDIO_SOURCE@"
|
||||
"toggle"
|
||||
];
|
||||
};
|
||||
|
||||
"Mod+Q".action.close-window = { };
|
||||
|
||||
"Mod+Left".action.focus-column-left = { };
|
||||
"Mod+Down".action.focus-window-down = { };
|
||||
"Mod+Up".action.focus-window-up = { };
|
||||
"Mod+Right".action.focus-column-right = { };
|
||||
"Mod+H".action.focus-column-left = { };
|
||||
"Mod+J".action.focus-window-down = { };
|
||||
"Mod+K".action.focus-window-up = { };
|
||||
"Mod+L".action.focus-column-right = { };
|
||||
|
||||
"Mod+Ctrl+Left".action.move-column-left = { };
|
||||
"Mod+Ctrl+Down".action.move-window-down = { };
|
||||
"Mod+Ctrl+Up".action.move-window-up = { };
|
||||
"Mod+Ctrl+Right".action.move-column-right = { };
|
||||
"Mod+Ctrl+H".action.move-column-left = { };
|
||||
"Mod+Ctrl+J".action.move-window-down = { };
|
||||
"Mod+Ctrl+K".action.move-window-up = { };
|
||||
"Mod+Ctrl+L".action.move-column-right = { };
|
||||
|
||||
# Alternative commands that move across workspaces when reaching
|
||||
# the first or last window in a column.
|
||||
# Mod+J { focus-window-or-workspace-down; }
|
||||
# Mod+K { focus-window-or-workspace-up; }
|
||||
# Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
||||
# Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||
|
||||
"Mod+Home".action.focus-column-first = { };
|
||||
"Mod+End".action.focus-column-last = { };
|
||||
"Mod+Ctrl+Home".action.move-column-to-first = { };
|
||||
"Mod+Ctrl+End".action.move-column-to-last = { };
|
||||
|
||||
"Mod+Shift+Left".action.focus-monitor-left = { };
|
||||
"Mod+Shift+Down".action.focus-monitor-down = { };
|
||||
"Mod+Shift+Up".action.focus-monitor-up = { };
|
||||
"Mod+Shift+Right".action.focus-monitor-right = { };
|
||||
"Mod+Shift+H".action.focus-monitor-left = { };
|
||||
"Mod+Shift+J".action.focus-monitor-down = { };
|
||||
"Mod+Shift+K".action.focus-monitor-up = { };
|
||||
"Mod+Shift+L".action.focus-monitor-right = { };
|
||||
|
||||
"Mod+Shift+Ctrl+Left".action.move-column-to-monitor-left = { };
|
||||
"Mod+Shift+Ctrl+Down".action.move-column-to-monitor-down = { };
|
||||
"Mod+Shift+Ctrl+Up".action.move-column-to-monitor-up = { };
|
||||
"Mod+Shift+Ctrl+Right".action.move-column-to-monitor-right = { };
|
||||
"Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = { };
|
||||
"Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = { };
|
||||
"Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = { };
|
||||
"Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = { };
|
||||
|
||||
# Alternatively, there are commands to move just a single window:
|
||||
# Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
||||
# ...
|
||||
|
||||
# And you can also move a whole workspace to another monitor:
|
||||
# Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
||||
# ...
|
||||
|
||||
"Mod+Page_Down".action.focus-workspace-down = { };
|
||||
"Mod+Page_Up".action.focus-workspace-up = { };
|
||||
"Mod+U".action.focus-workspace-down = { };
|
||||
"Mod+I".action.focus-workspace-up = { };
|
||||
"Mod+Ctrl+Page_Down".action.move-column-to-workspace-down = { };
|
||||
"Mod+Ctrl+Page_Up".action.move-column-to-workspace-up = { };
|
||||
"Mod+Ctrl+U".action.move-column-to-workspace-down = { };
|
||||
"Mod+Ctrl+I".action.move-column-to-workspace-up = { };
|
||||
|
||||
# Alternatively, there are commands to move just a single window:
|
||||
# Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||
# ...
|
||||
|
||||
"Mod+Shift+Page_Down".action.move-workspace-down = { };
|
||||
"Mod+Shift+Page_Up".action.move-workspace-up = { };
|
||||
"Mod+Shift+U".action.move-workspace-down = { };
|
||||
"Mod+Shift+I".action.move-workspace-up = { };
|
||||
|
||||
# You can bind mouse wheel scroll ticks using the following syntax.
|
||||
# These binds will change direction based on the natural-scroll setting.
|
||||
#
|
||||
# To avoid scrolling through workspaces really fast, you can use
|
||||
# the cooldown-ms property. The bind will be rate-limited to this value.
|
||||
# You can set a cooldown on any bind, but it's most useful for the wheel.
|
||||
"Mod+WheelScrollDown" = {
|
||||
cooldown-ms = 150;
|
||||
action.focus-workspace-down = { };
|
||||
};
|
||||
"Mod+WheelScrollUp" = {
|
||||
cooldown-ms = 150;
|
||||
action.focus-workspace-up = { };
|
||||
};
|
||||
"Mod+Ctrl+WheelScrollDown" = {
|
||||
cooldown-ms = 150;
|
||||
action.move-column-to-workspace-down = { };
|
||||
};
|
||||
"Mod+Ctrl+WheelScrollUp" = {
|
||||
cooldown-ms = 150;
|
||||
action.move-column-to-workspace-up = { };
|
||||
};
|
||||
|
||||
"Mod+WheelScrollRight".action.focus-column-right = { };
|
||||
"Mod+WheelScrollLeft".action.focus-column-left = { };
|
||||
"Mod+Ctrl+WheelScrollRight".action.move-column-right = { };
|
||||
"Mod+Ctrl+WheelScrollLeft".action.move-column-left = { };
|
||||
|
||||
# Usually scrolling up and down with Shift in applications results in
|
||||
# horizontal scrolling; these binds replicate that.
|
||||
"Mod+Shift+WheelScrollDown".action.focus-column-right = { };
|
||||
"Mod+Shift+WheelScrollUp".action.focus-column-left = { };
|
||||
"Mod+Ctrl+Shift+WheelScrollDown".action.move-column-right = { };
|
||||
"Mod+Ctrl+Shift+WheelScrollUp".action.move-column-left = { };
|
||||
|
||||
# Similarly, you can bind touchpad scroll "ticks".
|
||||
# Touchpad scrolling is continuous, so for these binds it is split into
|
||||
# discrete intervals.
|
||||
# These binds are also affected by touchpad's natural-scroll, so these
|
||||
# example binds are "inverted", since we have natural-scroll enabled for
|
||||
# touchpads by default.
|
||||
# Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; }
|
||||
# Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; }
|
||||
|
||||
# You can refer to workspaces by index. However, keep in mind that
|
||||
# niri is a dynamic workspace system, so these commands are kind of
|
||||
# "best effort". Trying to refer to a workspace index bigger than
|
||||
# the current workspace count will instead refer to the bottommost
|
||||
# (empty) workspace.
|
||||
#
|
||||
# For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||
# will all refer to the 3rd workspace.
|
||||
"Mod+1".action.focus-workspace = 1;
|
||||
"Mod+2".action.focus-workspace = 2;
|
||||
"Mod+3".action.focus-workspace = 3;
|
||||
"Mod+4".action.focus-workspace = 4;
|
||||
"Mod+5".action.focus-workspace = 5;
|
||||
"Mod+6".action.focus-workspace = 6;
|
||||
"Mod+7".action.focus-workspace = 7;
|
||||
"Mod+8".action.focus-workspace = 8;
|
||||
"Mod+9".action.focus-workspace = 9;
|
||||
"Mod+Ctrl+1".action.move-column-to-workspace = 1;
|
||||
"Mod+Ctrl+2".action.move-column-to-workspace = 2;
|
||||
"Mod+Ctrl+3".action.move-column-to-workspace = 3;
|
||||
"Mod+Ctrl+4".action.move-column-to-workspace = 4;
|
||||
"Mod+Ctrl+5".action.move-column-to-workspace = 5;
|
||||
"Mod+Ctrl+6".action.move-column-to-workspace = 6;
|
||||
"Mod+Ctrl+7".action.move-column-to-workspace = 7;
|
||||
"Mod+Ctrl+8".action.move-column-to-workspace = 8;
|
||||
"Mod+Ctrl+9".action.move-column-to-workspace = 9;
|
||||
|
||||
# Alternatively, there are commands to move just a single window:
|
||||
# Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||
|
||||
# Switches focus between the current and the previous workspace.
|
||||
# Mod+Tab { focus-workspace-previous; }
|
||||
|
||||
"Mod+Comma".action.consume-window-into-column = { };
|
||||
"Mod+Period".action.expel-window-from-column = { };
|
||||
|
||||
# There are also commands that consume or expel a single window to the side.
|
||||
# Mod+BracketLeft { consume-or-expel-window-left; }
|
||||
# Mod+BracketRight { consume-or-expel-window-right; }
|
||||
|
||||
"Mod+R".action.switch-preset-column-width = { };
|
||||
"Mod+Shift+R".action.reset-window-height = { };
|
||||
"Mod+F".action.maximize-column = { };
|
||||
"Mod+Shift+F".action.fullscreen-window = { };
|
||||
"Mod+C".action.center-column = { };
|
||||
|
||||
# Finer width adjustments.
|
||||
# This command can also:
|
||||
# * set width in pixels: "1000"
|
||||
# * adjust width in pixels: "-5" or "+5"
|
||||
# * set width as a percentage of screen width: "25%"
|
||||
# * adjust width as a percentage of screen width: "-10%" or "+10%"
|
||||
# Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
||||
# set-column-width "100" will make the column occupy 200 physical screen pixels.
|
||||
"Mod+Minus".action.set-column-width = "-10%";
|
||||
"Mod+Equal".action.set-column-width = "+10%";
|
||||
|
||||
# Finer height adjustments when in column with other windows.
|
||||
"Mod+Shift+Minus".action.set-window-height = "-10%";
|
||||
"Mod+Shift+Equal".action.set-window-height = "+10%";
|
||||
|
||||
# Actions to switch layouts.
|
||||
# Note: if you uncomment these, make sure you do NOT have
|
||||
# a matching layout switch hotkey configured in xkb options above.
|
||||
# Having both at once on the same hotkey will break the switching,
|
||||
# since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
||||
# Mod+Space { switch-layout "next"; }
|
||||
# Mod+Shift+Space { switch-layout "prev"; }
|
||||
|
||||
"Print".action.screenshot = { };
|
||||
"Ctrl+Print".action.screenshot-screen = { };
|
||||
"Alt+Print".action.screenshot-window = { };
|
||||
|
||||
# The quit action will show a confirmation dialog to avoid accidental exits.
|
||||
"Mod+Shift+E".action.quit = { };
|
||||
|
||||
# Powers off the monitors. To turn them back on, do any input like
|
||||
# moving the mouse or pressing any other key.
|
||||
"Mod+Shift+P".action.power-off-monitors = { };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
62
homeConfigurations/vinzenz/ssh.nix
Normal file
62
homeConfigurations/vinzenz/ssh.nix
Normal file
|
@ -0,0 +1,62 @@
|
|||
{ ... }:
|
||||
{
|
||||
config.programs.ssh = {
|
||||
enable = true;
|
||||
matchBlocks = {
|
||||
"vpn2" = {
|
||||
host = "vpn2 hetzner-vpn2";
|
||||
hostname = "2a01:4f8:c013:65dd::1";
|
||||
user = "root";
|
||||
};
|
||||
"openwrt" = {
|
||||
host = "openwrt openwrt.lan";
|
||||
hostname = "openwrt.lan";
|
||||
user = "root";
|
||||
};
|
||||
"openwrt-ts" = {
|
||||
hostname = "openwrt.donkey-pentatonic.ts.net";
|
||||
port = 2222;
|
||||
user = "root";
|
||||
};
|
||||
"openwrt-j" = {
|
||||
hostname = "openwrt.donkey-pentatonic.ts.net";
|
||||
proxyJump = "vpn1";
|
||||
port = 2222;
|
||||
user = "root";
|
||||
};
|
||||
"pc2-power" = {
|
||||
hostname = "openwrt.donkey-pentatonic.ts.net";
|
||||
proxyJump = "vpn1";
|
||||
port = 2222;
|
||||
user = "pc2-power";
|
||||
};
|
||||
"avd-power" = {
|
||||
# hostname = "2001:678:560:23:9833:63ff:fe2d:f477"
|
||||
# hostname = "195.160.172.25";
|
||||
hostname = "avd-jumphost.club.berlin.ccc.de";
|
||||
user = "power";
|
||||
};
|
||||
"avd" = {
|
||||
hostname = "avd.club.berlin.ccc.de";
|
||||
user = "vinzenz";
|
||||
};
|
||||
"builder.berlin.ccc.de" = {
|
||||
hostname = "195.160.172.36";
|
||||
user = "root";
|
||||
};
|
||||
"cccb.zerforschen.plus" = {
|
||||
hostname = "2a01:4f8:c013:cbdd::1";
|
||||
user = "root";
|
||||
};
|
||||
"berlin.ccc.de" = {
|
||||
hostname = "195.160.173.9";
|
||||
user = "deploy";
|
||||
port = 31337;
|
||||
};
|
||||
"forgejo-runner-1" = {
|
||||
hostname = "forgejo-runner-1.dev.zerforschen.plus";
|
||||
user = "root";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
51
homeConfigurations/vinzenz/swaylock.nix
Normal file
51
homeConfigurations/vinzenz/swaylock.nix
Normal file
|
@ -0,0 +1,51 @@
|
|||
# based on https://codeberg.org/kiara/cfg/src/commit/b9c472acd78c9c08dfe8b6a643c5c82cc5828433/home-manager/kiara/swaylock.nix#
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
config = {
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
package = pkgs.swaylock-effects;
|
||||
# https://github.com/jirutka/swaylock-effects/blob/master/swaylock.1.scd
|
||||
settings = {
|
||||
screenshot = true;
|
||||
effect-blur = "9x9";
|
||||
effect-vignette = "0.2:0.2";
|
||||
fade-in = 0.5;
|
||||
font-size = 75;
|
||||
indicator-caps-lock = true;
|
||||
clock = true;
|
||||
indicator-radius = 400;
|
||||
show-failed-attempts = true;
|
||||
ignore-empty-password = true;
|
||||
grace = 2;
|
||||
color = "000000";
|
||||
indicator-thickness = 20;
|
||||
};
|
||||
};
|
||||
|
||||
services.swayidle = {
|
||||
enable = true;
|
||||
systemdTarget = "graphical-session.target";
|
||||
timeouts = [
|
||||
{
|
||||
timeout = 30;
|
||||
command = "${config.programs.swaylock.package}/bin/swaylock";
|
||||
}
|
||||
{
|
||||
timeout = 60 * 10;
|
||||
command = "${pkgs.systemd}/bin/systemctl suspend";
|
||||
}
|
||||
];
|
||||
events = [
|
||||
{
|
||||
event = "before-sleep";
|
||||
command = "${pkgs.playerctl}/bin/playerctl pause; ${config.programs.swaylock.package}/bin/swaylock";
|
||||
}
|
||||
{
|
||||
event = "lock";
|
||||
command = "${config.programs.swaylock.package}/bin/swaylock";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
87
homeConfigurations/vinzenz/vscode.nix
Normal file
87
homeConfigurations/vinzenz/vscode.nix
Normal file
|
@ -0,0 +1,87 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{
|
||||
config = {
|
||||
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
profiles.default = {
|
||||
enableUpdateCheck = false;
|
||||
extensions =
|
||||
with pkgs.nix-vscode-extensions.open-vsx;
|
||||
[
|
||||
jnoortheen.nix-ide
|
||||
ms-python.python
|
||||
editorconfig.editorconfig
|
||||
yzhang.markdown-all-in-one
|
||||
redhat.vscode-yaml
|
||||
pkief.material-icon-theme
|
||||
rust-lang.rust-analyzer
|
||||
tamasfe.even-better-toml
|
||||
llvm-vs-code-extensions.vscode-clangd
|
||||
mkhl.direnv
|
||||
muhammad-sammy.csharp
|
||||
davidanson.vscode-markdownlint
|
||||
]
|
||||
++ (with pkgs.vscode-extensions; [
|
||||
vadimcn.vscode-lldb
|
||||
RoweWilsonFrederiskHolme.wikitext
|
||||
ms-dotnettools.csharp
|
||||
]);
|
||||
userSettings = {
|
||||
"files.autoSave" = "afterDelay";
|
||||
"files.autoSaveWhenNoErrors" = true;
|
||||
"files.autoSaveWorkspaceFilesOnly" = true;
|
||||
|
||||
"editor.fontFamily" = "'Fira Code', 'Droid Sans Mono', 'monospace', monospace";
|
||||
"editor.fontLigatures" = true;
|
||||
"editor.formatOnSave" = true;
|
||||
"editor.formatOnSaveMode" = "modificationsIfAvailable";
|
||||
"editor.minimap.autohide" = true;
|
||||
|
||||
"workbench.startupEditor" = "readme";
|
||||
"workbench.enableExperiments" = false;
|
||||
"workbench.iconTheme" = "material-icon-theme";
|
||||
|
||||
"update.mode" = "none";
|
||||
"extensions.autoUpdate" = false;
|
||||
"extensions.autoCheckUpdates" = false;
|
||||
|
||||
"telemetry.telemetryLevel" = "off";
|
||||
"redhat.telemetry.enabled" = false;
|
||||
|
||||
"git.autofetch" = true;
|
||||
"git.path" = "${lib.getBin pkgs.git}/bin/git";
|
||||
"diffEditor.diffAlgorithm" = "advanced";
|
||||
"explorer.excludeGitIgnore" = false;
|
||||
"markdown.extension.tableFormatter.normalizeIndentation" = true;
|
||||
"markdown.extension.toc.orderedList" = false;
|
||||
|
||||
"rust-analyzer.checkOnSave.command" = "clippy";
|
||||
|
||||
"nix.formatterPath" = "${lib.getBin pkgs.nixfmt-rfc-style}/bin/nixfmt";
|
||||
"nix.enableLanguageServer" = true;
|
||||
"nix.serverPath" = "${lib.getBin pkgs.nil}/bin/nil";
|
||||
"nix.serverSettings" = {
|
||||
"nil" = {
|
||||
"formatting" = {
|
||||
"command" = [ "${lib.getBin pkgs.nixfmt-rfc-style}/bin/nixfmt" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
"dotnetAcquisitionExtension.sharedExistingDotnetPath" = "${lib.getBin pkgs.dotnet-sdk}/bin/dotnet";
|
||||
|
||||
"\[makefile\]" = {
|
||||
"editor.insertSpaces" = false;
|
||||
"editor.detectIndentation" = false;
|
||||
};
|
||||
|
||||
"\[nix\]" = {
|
||||
"editor.formatOnSave" = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
271
homeConfigurations/vinzenz/waybar.nix
Normal file
271
homeConfigurations/vinzenz/waybar.nix
Normal file
|
@ -0,0 +1,271 @@
|
|||
{
|
||||
pkgs,
|
||||
device,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
playerctl
|
||||
cava
|
||||
];
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
systemd.target = "graphical-session.target";
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
output = [
|
||||
"eDP-1"
|
||||
"HDMI-A-1"
|
||||
];
|
||||
mode = "dock";
|
||||
spacing = "8";
|
||||
modules-left = [
|
||||
"niri/workspaces"
|
||||
"tray"
|
||||
"niri/window"
|
||||
];
|
||||
modules-center = [
|
||||
"privacy"
|
||||
"clock"
|
||||
];
|
||||
modules-right = [
|
||||
"mpris"
|
||||
"image"
|
||||
"cava"
|
||||
"gamemode"
|
||||
|
||||
"temperature"
|
||||
"cpu"
|
||||
"memory"
|
||||
"disk"
|
||||
"wireplumber"
|
||||
"bluetooth"
|
||||
"backlight"
|
||||
"network"
|
||||
"power-profiles-daemon"
|
||||
"battery"
|
||||
"idle_inhibitor"
|
||||
#"group/group-power"
|
||||
];
|
||||
"niri/workspaces" = {
|
||||
format = "{icon}";
|
||||
};
|
||||
|
||||
"niri/window" = {
|
||||
separate-outputs = true;
|
||||
icon = true;
|
||||
};
|
||||
network = {
|
||||
interface = "wlo1";
|
||||
format = "{ifname}";
|
||||
format-wifi = " ";
|
||||
format-ethernet = " ";
|
||||
format-linked = " ";
|
||||
format-disconnected = " ";
|
||||
tooltip-format = "{ifname} via {gwaddr}";
|
||||
tooltip-format-wifi = "{essid} ({signalStrength}%)";
|
||||
tooltip-format-ethernet = "{ifname} {ipaddr}/{cidr}";
|
||||
tooltip-format-disconnected = "Disconnected";
|
||||
max-length = 50;
|
||||
};
|
||||
clock = {
|
||||
format = "{:%a, %d. %b %H:%M}";
|
||||
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
||||
calendar = {
|
||||
mode = "month";
|
||||
weeks-pos = "right";
|
||||
on-scroll = 1;
|
||||
on-click-right = "mode";
|
||||
format = {
|
||||
#months = "<span color='#ffead3'><b>{}</b></span>";
|
||||
#days = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||
#weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
||||
#weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
||||
#weekdays = "<b>{}</b>";
|
||||
today = "<span color='#0FBB0F'><b>{}</b></span>";
|
||||
};
|
||||
};
|
||||
actions = {
|
||||
on-click-right = "mode";
|
||||
on-click-forward = "tz_up";
|
||||
on-click-backward = "tz_down";
|
||||
on-scroll-up = "shift_down";
|
||||
on-scroll-down = "shift_up";
|
||||
};
|
||||
};
|
||||
battery = {
|
||||
format = "{capacity}% {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
backlight = {
|
||||
device = "intel_backlight";
|
||||
format = "{percent}% ";
|
||||
on-scroll-down = "light -U 1";
|
||||
on-scroll-up = "light -A 1";
|
||||
};
|
||||
cpu = {
|
||||
interval = 1;
|
||||
format =
|
||||
"{usage:3}%@{avg_frequency:4} "
|
||||
+ (builtins.getAttr device {
|
||||
"vinzenz-lpt2" =
|
||||
"{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}{icon8}{icon9}{icon10}{icon11}{icon12}{icon13}{icon14}{icon15}{icon16}{icon17}{icon18}{icon19}";
|
||||
"vinzenz-pc2" =
|
||||
"{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}{icon8}{icon9}{icon10}{icon11}{icon12}{icon13}{icon14}{icon15}";
|
||||
})
|
||||
+ " ";
|
||||
format-icons = [
|
||||
"<span color='#69ff94'>▁</span>"
|
||||
"<span color='#2aa9ff'>▂</span>"
|
||||
"<span color='#f8f8f2'>▃</span>"
|
||||
"<span color='#f8f8f2'>▄</span>"
|
||||
"<span color='#ffffa5'>▅</span>"
|
||||
"<span color='#ffffa5'>▆</span>"
|
||||
"<span color='#ff9977'>▇</span>"
|
||||
"<span color='#dd532e'>█</span>"
|
||||
];
|
||||
};
|
||||
cava = {
|
||||
framerate = 15;
|
||||
autosens = 1;
|
||||
method = "pipewire";
|
||||
sleep_timer = 3;
|
||||
source = "auto";
|
||||
bar_delimiter = 0;
|
||||
bars = 12;
|
||||
input_delay = 2;
|
||||
hide_on_silence = true;
|
||||
format-icons = [
|
||||
"<span font-family='monospace'>▁</span>"
|
||||
"<span font-family='monospace'>▂</span>"
|
||||
"<span font-family='monospace'>▃</span>"
|
||||
"<span font-family='monospace'>▄</span>"
|
||||
"<span font-family='monospace'>▅</span>"
|
||||
"<span font-family='monospace'>▆</span>"
|
||||
"<span font-family='monospace'>▇</span>"
|
||||
"<span font-family='monospace'>█</span>"
|
||||
];
|
||||
actions = {
|
||||
"on-click-right" = "mode";
|
||||
};
|
||||
};
|
||||
disk = {
|
||||
format = "{free}/{total}";
|
||||
};
|
||||
"group/group-power" = {
|
||||
"orientation" = "inherit";
|
||||
"drawer" = {
|
||||
"transition-duration" = 500;
|
||||
"children-class" = "not-power";
|
||||
"transition-left-to-right" = false;
|
||||
};
|
||||
"modules" = [
|
||||
"custom/power" # First element is the "group leader" and won't ever be hidden
|
||||
"custom/quit"
|
||||
"custom/lock"
|
||||
"custom/reboot"
|
||||
];
|
||||
};
|
||||
"custom/quit" = {
|
||||
"format" = "";
|
||||
"tooltip" = false;
|
||||
"on-click" = "hyprctl dispatch exit";
|
||||
min-width = 20;
|
||||
};
|
||||
"custom/lock" = {
|
||||
"format" = "";
|
||||
"tooltip" = false;
|
||||
"on-click" = "swaylock";
|
||||
};
|
||||
"custom/reboot" = {
|
||||
"format" = "";
|
||||
"tooltip" = false;
|
||||
"on-click" = "reboot";
|
||||
};
|
||||
"custom/power" = {
|
||||
"format" = "";
|
||||
"tooltip" = false;
|
||||
"on-click" = "shutdown now";
|
||||
};
|
||||
idle_inhibitor = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = "";
|
||||
deactivated = "";
|
||||
};
|
||||
};
|
||||
image =
|
||||
let
|
||||
albumArtScript = pkgs.writeShellScriptBin "album-art.sh" ''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
album_art=$(playerctl metadata mpris:artUrl)
|
||||
if [[ -z $album_art ]]
|
||||
then
|
||||
exit
|
||||
fi
|
||||
curl -s "''${album_art}" --output "/tmp/cover.jpeg"
|
||||
echo "/tmp/cover.jpeg"
|
||||
'';
|
||||
in
|
||||
{
|
||||
exec = "${albumArtScript}/bin/album-art.sh";
|
||||
interval = 15;
|
||||
on-click = "playerctl play-pause";
|
||||
};
|
||||
mpris = {
|
||||
format = "{title} ";
|
||||
tooltip-format = "{player} ({status}) {dynamic}";
|
||||
};
|
||||
memory = {
|
||||
format = "{}% ";
|
||||
};
|
||||
power-profiles-daemon = {
|
||||
format = "{icon}";
|
||||
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
|
||||
tooltip = true;
|
||||
format-icons = {
|
||||
default = "";
|
||||
performance = "";
|
||||
balanced = "";
|
||||
power-saver = "";
|
||||
};
|
||||
};
|
||||
wireplumber = {
|
||||
format = "{volume}% {icon}";
|
||||
format-muted = "";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
temperature = {
|
||||
format = "{temperatureC}°C ";
|
||||
};
|
||||
tray = {
|
||||
spacing = 4;
|
||||
};
|
||||
bluetooth = {
|
||||
format = " {status} ";
|
||||
format-connected = " {device_alias} ";
|
||||
format-connected-battery = " {device_alias} {device_battery_percentage}% ";
|
||||
tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
|
||||
tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
|
||||
tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
|
||||
tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
46
homeConfigurations/vinzenz/zsh.nix
Normal file
46
homeConfigurations/vinzenz/zsh.nix
Normal file
|
@ -0,0 +1,46 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
config.programs.zsh = {
|
||||
initContent = ''
|
||||
# eval "$(direnv hook zsh)";
|
||||
export PATH=$PATH:/home/vinzenz/.cargo/bin
|
||||
|
||||
source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
|
||||
|
||||
source ${./.zsh/p10k.zsh}
|
||||
'';
|
||||
enableCompletion = true;
|
||||
|
||||
shellAliases = {
|
||||
myos-rebuild-boot = "sudo nixos-rebuild boot --flake .# --show-trace --log-format internal-json -v |& ${pkgs.nix-output-monitor}/bin/nom --json";
|
||||
myos-rebuild-switch = "sudo nixos-rebuild switch --flake .# --show-trace --log-format internal-json -v |& ${pkgs.nix-output-monitor}/bin/nom --json";
|
||||
|
||||
s = "nix-shell -p";
|
||||
|
||||
my-direnvallow = "echo \"use nix\" > .envrc && direnv allow";
|
||||
my-ip4 = "ip addr show | grep 192";
|
||||
deadnix = "nix run github:astro/deadnix -- ";
|
||||
statix = "nix run git+https://git.peppe.rs/languages/statix -- ";
|
||||
};
|
||||
|
||||
history = {
|
||||
size = 10000;
|
||||
path = "${config.xdg.dataHome}/zsh/history";
|
||||
expireDuplicatesFirst = true;
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "agnoster";
|
||||
plugins = [
|
||||
"git"
|
||||
"sudo"
|
||||
"systemadmin"
|
||||
"battery"
|
||||
"dotnet"
|
||||
"rust"
|
||||
"tailscale"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue