Delete now-unused dotfiles/desktop/ directory.

This commit is contained in:
Joey Hafner 2025-01-08 21:22:14 -08:00
parent 71deb2f3a7
commit 739062f5ad
Signed by: Jafner
GPG Key ID: 6D9A24EF2F389E55
67 changed files with 0 additions and 3219 deletions

View File

@ -1,97 +0,0 @@
{ pkgs, vars, ... }: {
home.packages = with pkgs; [
ollama-rocm
( writeShellApplication {
name = "ollama-chat";
runtimeInputs = [
libnotify
];
text = ''
#!/bin/bash
# shellcheck disable=SC2034
DEFAULT_MODEL="llama3.2:3b"
MODEL=''$''\{1:-DEFAULT_MODEL}
# if [ -z "''$''\{MODEL}" ]; then
# echo "No model selected. Choose a model from the list below:"
# unset modellist
# while read -r model; do
# modellist+=( "$model" )
# done< <(${pkgs.ollama-rocm}/bin/ollama list | tail -n+2)
# select model in "''$''\{modellist[@]}"; do
# MODEL=$(echo "$model" | tr -s ' ' | cut -d' ' -f1)
# echo "Selected: $MODEL"
# export MODEL
# break
# done
# fi
echo "Loading model $MODEL"
${pkgs.ollama-rocm}/bin/ollama run "$MODEL" ""
echo "Finished loading $MODEL"
${pkgs.ollama-rocm}/bin/ollama run "$MODEL"
echo "Unloading model $MODEL"
${pkgs.ollama-rocm}/bin/ollama stop "$MODEL"
'';
} )
];
xdg.desktopEntries.ollama = {
exec = "kitty-popup ollama-wrapped";
icon = "/home/${vars.user.username}/.icons/custom/ollama.png";
name = "AI Chat";
categories = [ "Utility" ];
type = "Application";
actions = {};
};
home.file."ollama.png" = {
target = ".icons/custom/ollama.png";
source = pkgs.fetchurl {
url = "https://ollama.com/public/icon-64x64.png";
sha256 = "sha256-jzjt+wB9e3TwPSrXpXwCPapngDF5WtEYNt9ZOXB2Sgs=";
};
};
home.file."codewriter.Modelfile" = {
target = ".ollama/codewriter.Modelfile";
text = ''
FROM llama3.3:70b
PARAMETER temperature 1
SYSTEM """
I want you to act as a senior full-stack tech leader and top-tier brilliant software developer, you embody technical excellence and a deep understanding of a wide range of technologies.
Your expertise covers not just coding, but also algorithm design, system architecture, and technology strategy.
For every question there is no need to explain, only give the solution.
Coding Mastery: Possess exceptional skills in programming languages including Python, JavaScript, SQL, NoSQL, mySQL, C++, C, Rust, Groovy, Go, and Java.
Your proficiency goes beyond mere syntax; you explore and master the nuances and complexities of each language, crafting code that is both highly efficient and robust.
Your capability to optimize performance and manage complex codebases sets the benchmark in software development.
Python | JavaScript | C++ | C | RUST | Groovy | Go | Java | SQL | MySQL | NoSQL
Efficient, Optimal, Good Performance, Excellent Complexity, Robust Code
Cutting-Edge Technologies: Adept at leveraging the latest technologies, frameworks, and tools to drive innovation and efficiency.
Experienced with Docker, Kubernetes, React, Angular, AWS, Supabase, Firebase, Azure, and Google Cloud.
Your understanding of these platforms enables you to architect and deploy scalable, resilient applications that meet modern business demands.
Docker | Kubernetes | React | Angular | AWS | Supabase | Firebase | Azure | Google Cloud Seamlessly Integrating Modern Tech Stacks Complex Algorithms & Data Structures Optimized Solutions for Enhanced Performance & Scalability
Solution Architect: Your comprehensive grasp of the software development lifecycle empowers you to design solutions that are not only technically sound but also align perfectly with business goals. From concept to deployment, you ensure adherence to industry best practices and agile methodologies, making the development process both agile and effective.
Interactive Solutions: When crafting user-facing features, employ modern ES6 JavaScript, TypeScript, and native browser APIs to manage interactivity seamlessly, enabling a dynamic and engaging user experience. Your focus lies in delivering functional, ready-to-deploy code, ensuring that explanations are succinct and directly aligned with the required solutions.
Never explain the code just write code.
"""
'';
};
home.file."custom.Modelfile" = {
enable = true;
target = ".ollama/custom.Modelfile";
text = ''
FROM /home/joey/.llm/models/my-model.gguf
'';
};
}

View File

@ -1,15 +0,0 @@
{ inputs, ... }: {
# services.flatpak.packages = [
# "io.github.zen_browser.zen/x86_64/stable"
# ];
programs.firefox = {
enable = true;
};
programs.chromium = {
enable = true;
};
home.packages = [
inputs.zen-browser.packages."x86_64-linux".default
#pkgs-unstable.zen-browser
];
}

View File

@ -1,118 +0,0 @@
{
"models": [
{
"title": "Ollama",
"provider": "ollama",
"model": "AUTODETECT"
},
{
"title": "OpenRouter LLaMA 3 70B",
"provider": "openai",
"model": "meta-llama/llama-3-70b-instruct",
"apiBase": "https://openrouter.ai/api/v1",
"apiKey": "ENC[AES256_GCM,data:OM0zLvnnjY5OcOfw0GGGplDnopUx8EgVY4nvtnMC19iyRN+p+KHGRkaSNuXsqSijWs5VVOi2GkNPpwcHrf6J7wV3UmO1DTR2Gg==,iv:fiq9SQDu2DKq/LZRYNsST6LsxFOxs38yrMmrWhmgVRQ=,tag:qqIJo4TBaiATk1fdnlPw7Q==,type:str]"
}
],
"slashCommands": [
{
"name": "edit",
"description": "Edit selected code"
},
{
"name": "comment",
"description": "Write comments for the selected code"
},
{
"name": "share",
"description": "Export this session as markdown"
},
{
"name": "cmd",
"description": "Generate a shell command"
}
],
"customCommands": [
{
"name": "test",
"prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.",
"description": "Write unit tests for highlighted code"
}
],
"contextProviders": [
{
"name": "code",
"params": {}
},
{
"name": "docs",
"params": {}
},
{
"name": "diff",
"params": {}
},
{
"name": "open",
"params": {}
},
{
"name": "terminal",
"params": {}
},
{
"name": "problems",
"params": {}
},
{
"name": "folder",
"params": {}
},
{
"name": "codebase",
"params": {}
}
],
"tabAutocompleteModel": {
"title": "starcoder2:3b",
"provider": "ollama",
"model": "starcoder2:3b",
"apiBase": "http://localhost:11434"
},
"tabAutocompleteOptions": {
"disable": false,
"useCopyBuffer": false,
"useFileSuffix": true,
"maxPromptTokens": 1024,
"prefixPercentage": 0.85,
"maxSuffixPercentage": 0.25,
"debounceDelay": 800,
"multilineCompletions": "auto",
"useCache": false,
"useOtherFiles": true,
"disableInFiles": []
},
"allowAnonymousTelemetry": true,
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text:latest",
"apiBase": "http://localhost:11434"
},
"docs": [],
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age1v5wy7epv5mm8ddf3cfv8m0e9w4s693dw7djpuytz9td8ycha5f0sv2se9n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXR3VBK2JMNnZsUllQbXA3\neDU3ZkpTY3k1RzVaMHV5amJtWlk1SVNJdmlBCmVubWxHYWkxSy9LUTFLTDR6b1Z6\nek9zQTRIcnRQYUl2cVFhZ1Arc3EvY00KLS0tIFIyODdmQVZDYXdYazZod1lac0hD\nOVVwc095akp3dHM3Z3dPcFhmYTFJWHMKlIHpUzJb51+ygCpUSzVXaksEuuHt/wVy\nt4y/DiSHSzotvbA3zm27yHhjiPopNyJxK0CKtgZ9B5QOZDeAwGBSig==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-10-02T22:46:20Z",
"mac": "ENC[AES256_GCM,data:x6TTD1HD8XO/e2myCLyG9b5P74ZyvlCJkDrNxlEpIO/Trfr3Hv0GdDPLvR9jsCxXWz+LkBE0xl7wA1e7d1vBQck0vzH3H7XEdwcLw5me+x3vTxHb19P6Po5P0sgPwlSgAA2p+RrdWxlmRaInoWjrwIAt547AGir9r826CNUBmew=,iv:VQgqq+ZhbvlHVZB6Q9s6HbG3NDrtfah4HzYpS6e7S0k=,tag:cbX/jHdQI/K2j+rBDVOtgw==,type:str]",
"pgp": null,
"encrypted_regex": "^(apiKey)$",
"version": "3.9.0"
}
}

View File

@ -1,4 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ vesktop ];
#services.flatpak.packages = [ "dev.vencord.Vesktop/x86_64/stable" ];
}

View File

@ -1,5 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
protonmail-desktop
];
}

View File

@ -1,7 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
dolphin-emu
mgba
desmume
];
}

View File

@ -1,18 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
terraform
sops ssh-to-age age
doctl
k3s
(wrapHelm kubernetes-helm {
plugins = with pkgs.kubernetes-helmPlugins; [
helm-diff
helm-secrets
helm-s3
helm-git
];
})
helmfile-wrapped
];
}

View File

@ -1,8 +0,0 @@
{ pkgs, ... }: {
services.flatpak.packages = [
"org.prismlauncher.PrismLauncher/x86_64/stable"
];
home.packages = [
pkgs.prismlauncher
];
}

View File

@ -1,9 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
vlc
ffmpeg-full
];
services.flatpak.packages = [
"no.mifi.losslesscut/x86_64/stable"
];
}

View File

@ -1,11 +0,0 @@
{ pkgs, ... }: {
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
obs-vaapi
obs-vkcapture
input-overlay
wlrobs
];
};
}

View File

@ -1,5 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
obsidian
];
}

View File

@ -1,5 +0,0 @@
{ pkgs, ... }: {
home.packages = [
pkgs.libreoffice-qt6
];
}

View File

@ -1,64 +0,0 @@
{ vars, pkgs, ... }:
{
home.packages = with pkgs; [
rofi-rbw-wayland
wl-clipboard
dotool
];
programs.tofi = {
enable = false;
settings = {};
};
programs.rofi = {
enable = false;
configPath = "$XDG_CONFIG_HOME/rofi/config.rasi";
extraConfig = {};
location = "center";
terminal = "${pkgs.kitty}/bin/kitty";
};
programs.wofi = {
enable = true;
};
programs.rbw = {
enable = true;
settings = {
base_url = "https://bitwarden.jafner.tools";
email = "jafner425@gmail.com";
lock_timeout = 2592000;
pinentry = pkgs.pinentry-qt;
};
};
xdg.desktopEntries = {
rofi-rbw = {
exec = "${pkgs.rofi-rbw-wayland}/bin/rofi-rbw";
icon = "/home/${vars.user.username}/.icons/custom/bitwarden.png";
name = "Bitwarden";
categories = [ "Utility" "Security" ];
type = "Application";
};
};
home.file."rofi-rbw.rc" = {
target = ".config/rofi-rbw.rc";
text = ''
action="type"
typing-key-delay=0
selector-args="-W 40% -H 30%"
selector="wofi"
clipboarder="wl-copy"
typer="dotool"
keybindings="Enter:type:username:enter:tab:type:password:enter:copy:totp"
'';
};
home.file."bitwarden.png" = {
target = ".icons/custom/bitwarden.png";
source = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/bitwarden/clients/refs/heads/main/apps/desktop/resources/icons/64x64.png";
sha256 = "sha256-ZEYwxeoL8doV4y3M6kAyfz+5IoDsZ+ci8m+Qghfdp9M=";
};
};
}

View File

@ -1,14 +0,0 @@
{ pkgs, sysVars, ... }: {
home.packages = with pkgs; [ spotify-qt librespot ];
systemd.user.services.librespot = {
Unit = {
Description = "Librespot (an open source Spotify client)";
Documentation = [ "https://github.com/librespot-org/librespot" "https://github.com/librespot-org/librespot/wiki/Options" ];
};
Service = {
Restart = "always";
RestartSec = 10;
ExecStart = "${pkgs.librespot}/bin/librespot --backend pulseaudio --system-cache /home/${sysVars.username}/.spotify -j";
};
};
}

View File

@ -1,222 +0,0 @@
{ pkgs, pkgs-unstable, vars, ... }: {
home.packages = with pkgs; [
fastfetch
tree
bat
fd
eza
fzf-git-sh
wl-clipboard
jq
amdgpu_top
mission-center
nethogs
( writeShellApplication {
name = "kitty-popup";
runtimeInputs = [];
text = ''
#!/bin/bash
kitty \
--override initial_window_width=1280 \
--override initial_window_height=720 \
--override remember_window_size=no \
--class kitty-popup \
"$@"
'';
} )
pkgs-unstable.ghostty
];
programs.kitty = {
enable = true;
package = pkgs.kitty;
};
programs.tmux = {
enable = true;
newSession = true;
baseIndex = 1;
disableConfirmationPrompt = true;
mouse = true;
prefix = "C-b";
resizeAmount = 2;
plugins = with pkgs; [
{ plugin = tmuxPlugins.resurrect; }
{ plugin = tmuxPlugins.tmux-fzf; }
];
shell = "$HOME/.nix-profile/bin/zsh";
};
# TODO: Declare tmux session presets
# - 'sysmon' session
# - 'sysmon' window
# - '1' pane: btop
# - '2' pane: ssh -o RequestTTY=true admin@192.168.1.23 btop
# - '3' pane: ssh -o RequestTTY=true admin@143.110.151.123 btop --utf-force
# - 'disks' window
# - '1' pane: watch 'df -h -xcifs'
# - '2' pane: ssh -o RequestTTY=true admin@192.168.1.23 watch 'df -h -xcifs -xiscsi'
# - '3' pane: ssh -o RequestTTY=true admin@143.110.151.123 watch 'df -h'
# - '4' pane: ssh -o RequestTTY=true admin@192.168.1.10 watch 'df -h'
# - '5' pane: ssh -o RequestTTY=true admin@192.168.1.12 watch 'df -h'
# - 'gpus' window
# - '1' pane: amdgpu_top
# - '2' pane: ssh -o RequestTTY=true admin@192.168.1.23 nvtop
# - 'ssh' session
# - 'fighter' window: ssh admin@192.168.1.23
# - 'wizard' window: ssh vyos@192.168.1.1
# - 'druid' window: ssh admin@143.110.151.123
# - 'paladin' window: ssh admin@192.168.1.12
# - 'barbarian' window: ssh admin@192.168.1.10
# - 'local' session
# - 'jafner.net' window
programs.zsh = {
enable = true;
dotDir = ".config/zsh";
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
bat = "bat --paging=never --color=always";
fd = "fd -Lu";
ls = "eza";
lt = "eza --tree";
fetch = "fastfetch";
neofetch = "fetch";
find = ''fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"'';
nixgc = "nix-env --delete-generations 7d && nix-store --gc --print-dead";
fzf-ssh = "ssh $(cat ~/.ssh/profiles | fzf --height 20%)";
fsh = "fzf-ssh";
k = "kubectl";
};
history = {
share = true;
save = 10000;
size = 10000;
expireDuplicatesFirst = false;
extended = false;
ignoreAllDups = false;
ignoreDups = true;
};
initExtra = ''
bindkey '^[[1;5A' history-search-backward # Ctrl+Up-arrow
bindkey '^[[1;5B' history-search-forward # Ctrl+Down-arrow
bindkey '^[[1;5D' backward-word # Ctrl+Left-arrow
bindkey '^[[1;5C' forward-word # Ctrl+Right-arrow
bindkey '^[[H' beginning-of-line # Home
bindkey '^[[F' end-of-line # End
bindkey '^[w' kill-region # Delete
bindkey '^I^I' autosuggest-accept # Tab, Tab
bindkey '^[' autosuggest-clear # Esc
bindkey -s '^E' 'fzf-ssh\n'
_fzf_compgen_path() {
fd --hidden --exclude .git . "$1"
}
_fzf_compgen_dir() {
fd --hidden --exclude .git . "$1"
}
eval "$(~/.nix-profile/bin/fzf --zsh)"
fastfetch
'';
};
programs.eza = {
enable = true;
enableZshIntegration = true;
git = true;
extraOptions = [
"--color=always"
"--long"
"--icons=always"
"--no-time"
"--no-user"
];
};
programs.vim = {
enable = true;
defaultEditor = true;
settings = {
copyindent = true;
relativenumber = true;
expandtab = true;
tabstop = 2;
};
extraConfig = ''
set nocompatible
filetype on
filetype plugin on
filetype indent on
syntax on
set cursorline
set wildmenu
set wildmode=list:longest
'';
};
programs.fzf = {
enable = true;
package = pkgs-unstable.fzf;
};
programs.btop = {
enable = true;
package = pkgs.btop-rocm;
settings = {
color_theme = "stylix";
theme_background = true;
update_ms = 500;
};
};
xdg.desktopEntries = {
btop = {
exec = "kitty-popup btop";
icon = "utilities-system-monitor";
name = "btop";
categories = [ "Utility" "System" ];
type = "Application";
};
nethogs = {
exec = "kitty-popup sudo nethogs";
icon = "utilities-system-monitor";
name = "nethogs";
categories = [ "Utility" "System" ];
type = "Application";
};
sysmon = {
exec = "kitty-popup tmux a -t sysmon";
icon = "utilities-system-monitor";
name = "tmux-sysmon";
categories = [ "Utility" "System" ];
type = "Application";
};
ssh = {
exec = "kitty-popup tmux a -t ssh";
icon = "utilities-terminal";
name = "SSH";
categories = [ "Utility" "System" ];
type = "Application";
};
nixos = {
icon = "nix-snowflake";
name = "NixOS";
categories = [ "System" ];
type = "Application";
exec = ''xdg-open "https://mynixos.com"'';
actions = {
"Rebuild" = { exec = ''kitty-popup nixos rebuild''; };
"Update" = { exec = ''kitty-popup nixos update''; };
"Cleanup" = { exec = ''kitty-popup nixos clean''; };
"Edit" = { exec = ''nixos edit''; };
};
};
};
}

View File

@ -1,8 +0,0 @@
{ ... }: {
services.flatpak.packages = [
"at.vintagestory.VintageStory/x86_64/stable"
];
# home.packages = [
# pkgs.vintagestory
# ];
}

View File

@ -1,25 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ nixd ];
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with pkgs.vscode-extensions; [
jnoortheen.nix-ide
adzero.vscode-sievehighlight
];
userSettings = {
#"editor.fontFamily" = "'DejaVu Sans Mono'";
"nix.serverPath" = "nixd";
"nix.enableLanguageServer" = true;
"explorer.confirmDragAndDrop" = false;
"explorer.confirmDelete" = false;
"git.autofetch" = true;
"git.confirmSync" = false;
"git.enableSmartCommit" = true;
"security.workspace.trust.untrustedFiles" = "open";
"terminal.integrated.defaultProfile.linux" = "zsh";
#"terminal.integrated.fontFamily" = "'DejaVu Sans Mono'";
"terminal.integrated.profiles.linux.zsh.path" = "/usr/bin/zsh";
};
};
}

View File

@ -1,24 +0,0 @@
{ ... }: {
programs.zed-editor = {
# https://mynixos.com/home-manager/options/programs.zed-editor
enable = true;
extensions = [ "Nix" "Catppuccin" ];
userSettings = {
languages."Nix" = {
"language_servers" = [ "!nil" "nixd" ];
"tab_size" = 2;
};
theme = {
mode = "system";
dark = "Catppuccin Mocha";
light = "Catppuccin Mocha";
};
terminal = {
# using bash as a workaround.
# zsh in the integrated terminal misbehaves.
# seems to render multiple characters with every keystroke (incl. backspace)
shell = { program = "bash"; };
};
};
};
}

View File

@ -1,38 +0,0 @@
{ ... }: {
xdg.mimeApps = let
webBrowser = "zen.desktop";
emailClient = "proton-mail.desktop";
imageViewer = "org.kde.gwenview.desktop";
musicPlayer = "vlc.desktop";
videoPlayer = "vlc.desktop";
textEditor = "dev.zed.Zed.desktop";
docViewer = "zen.desktop";
fileManager = "org.kde.dolphin.desktop";
terminal = "org.kde.konsole.desktop";
archiveManager = "org.kde.ark.desktop";
in {
enable = true;
defaultApplications = {
"x-scheme-handler/http" = "${webBrowser}";
"x-scheme-handler/https" = "${webBrowser}";
"x-scheme-handler/about" = "${webBrowser}";
"x-scheme-handler/unknown" = "${webBrowser}";
"application/json" = "${textEditor}";
"application/pdf" = "${webBrowser}";
"application/vnd.apple.keynote" = "${textEditor}";
"application/vnd.ms-publisher" = "${textEditor}";
"application/x-desktop" = "${textEditor}";
"application/x-executable" = "${textEditor}";
"text/css" = "${textEditor}";
"text/html" = "${textEditor}";
"text/plain" = "${textEditor}";
"video/mp4" = "${videoPlayer}";
"video/x-matroska" = "${videoPlayer}";
};
associations.added = {
};
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

View File

@ -1,20 +0,0 @@
{ pkgs, vars, sysVars, ... }: {
home.packages = with pkgs; [ git ];
programs.git = {
enable = true;
userName = "${vars.user.realname}";
userEmail = "${vars.user.email}";
extraConfig = {
init.defaultBranch = "main";
core.sshCommand = "ssh -i /home/${vars.user.username}/.ssh/${sysVars.sshKey}";
gpg.format = "openpgp";
commit.gpgsign = true;
tag.gpgsign = true;
user.signingKey = "${sysVars.signingKey}";
};
delta.enable = true;
delta.options = {
side-by-side = true;
};
};
}

View File

@ -1,169 +0,0 @@
{ pkgs, ... }: {
imports = [
];
home.packages = with pkgs; [
mako
libnotify
swww
polkit-kde-agent
dolphin
power-profiles-daemon
pavucontrol
grimblast
waybar
];
wayland.windowManager.hyprland = {
enable = true;
plugins = [];
settings = { };
};
programs.wofi = {
enable = true;
settings = {
show = "drun";
width = "40%";
height = "20%";
allow_markup = true;
};
};
programs.waybar = {
enable = true;
settings = {
mainBar = {
# layer = "top";
# position = "top";
# height = 30;
# spacing = 30;
# margin-left = 0;
# margin-right = 0;
# modules-left = [ "custom/appmenu" "wlr/taskbar" "hyprland/window" "tray" ];
# modules-center = [ "hyprland/workspaces" ];
# modules-right = [
# "pulseaudio"
# "network"
# "battery"
# "clock"
# "custom/power"
# ];
# "hyprland/workspaces" = {
# active-only = false;
# on-click = "activate";
# format = "{}";
# format-icons = {
# urgent = "";
# active = "";
# default = "";
# };
# persistent-workspaces = {
# "*" = 3;
# };
# };
# "wlr/taskbar" = {
# format = "{icon}";
# icon-size = 18;
# tooltip-format = "{title}";
# on-click = "activate";
# on-click-middle = "close";
# ignore-list = [
# "kitty"
# ];
# app_ids-mapping = {};
# rewrite = {};
# };
# "hyprland/window" = {
# rewrite = {};
# separate-outputs = true;
# };
# "custom/appmenu" = {
# format = "  "; # Manual padding to move it further from left edge
# on-click = "wofi --show drun";
# };
# "custom/exit" = {
# format = " "; # Manual padding to move it further from right edge
# on-click = "wlogout";
# tooltip-format = "Power Menu";
# };
# keyboard-state = {
# numlock = true;
# capslock = true;
# format = "{name} {icon}";
# format-icons = {
# locked = " ";
# unlocked = " ";
# };
# };
# tray = {
# icon-size = 21;
# spacing = 10;
# };
# clock = {
# tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
# format-alt = ''{:%Y-%m-%d}'';
# };
# battery = {
# states = {
# warning = 30;
# critical = 15;
# };
# format = ''{capacity}% {icon}'';
# format-full = ''{capacity}% {icon}'';
# format-charging = ''{capacity}%  '';
# format-plugged = ''{capacity}%  '';
# format-alt = ''{time} {icon}'';
# format-icons = [ " " " " " " " " " " ];
# };
# power-profiles-daemon = {
# format = ''{icon}'';
# tooltip-format = "Power profile: {profile}\nDriver: {driver}";
# tooltip = true;
# format-icons = {
# default = '' '';
# performance = '' '';
# balanced = '' '';
# power-saver = '' '';
# };
# };
# network = {
# format-wifi = ''{essid} ({signalStrength}%)  '';
# format-ethernet = ''{ipaddr}/{cidr}  '';
# tooltip-format = ''{ifname} via {gwaddr}  '';
# format-linked = ''{ifname} (No IP)  '';
# format-disconnected = ''Disconnected ⚠ '';
# format-alt = ''{ifname}: {ipaddr}/{cidr}'';
# on-click = "kitty --class floating --override initial_window_width=400 --override initial_window_height=400 --override remember_window_size=false nmtui";
# on-click-right = "nm-connection-editor";
# };
# pulseaudio = {
# format = ''{volume}% {icon} {format_source}'';
# format-bluetooth = ''{volume}% {icon} {format_source}'';
# format-bluetooth-muted = ''{icon} {format_source}'';
# format-muted = ''{format_source}'';
# format-source = ''{volume}% '';
# format-source-muted = '' '';
# format-icons = {
# headphone = '' '';
# hands-free = '' '';
# headset = '' '';
# phone = '' '';
# portable = '' '';
# car = '' '';
# default = [ "" " " " " ];
# };
# on-click = ''pavucontrol'';
# };
# "custom/power" = {
# format = ''⏻ '';
# tooltip = false;
# menu = "on-click";
# menu-file = ''$HOME/.config/waybar/power_menu.xml'';
# menu-actions = {
# shutdown = "shutdown";
# reboot = "reboot";
# suspend = "systemctl suspend";
# hibernate = "systemctl hibernate";
# };
# };
};
};
};
}

View File

@ -1,355 +0,0 @@
/*
* __ __ _ ____ _ _
* \ \ / /_ _ _ _| |__ __ _ _ __ / ___|| |_ _ _| | ___
* \ \ /\ / / _` | | | | '_ \ / _` | '__| \___ \| __| | | | |/ _ \
* \ V V / (_| | |_| | |_) | (_| | | ___) | |_| |_| | | __/
* \_/\_/ \__,_|\__, |_.__/ \__,_|_| |____/ \__|\__, |_|\___|
* |___/ |___/
*
* by Stephan Raabe (2024)
* -----------------------------------------------------
*/
@define-color backgroundlight #FFFFFF;
@define-color backgrounddark #FFFFFF;
@define-color workspacesbackground1 #FFFFFF;
@define-color workspacesbackground2 #CCCCCC;
@define-color bordercolor #FFFFFF;
@define-color textcolor1 #000000;
@define-color textcolor2 #000000;
@define-color textcolor3 #FFFFFF;
@define-color iconcolor #FFFFFF;
/* -----------------------------------------------------
* General
* ----------------------------------------------------- */
* {
font-family: "Fira Sans Semibold", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
border: none;
border-radius: 0px;
}
window#waybar {
background-color: rgba(0,0,0,0.2);
border-bottom: 0px solid #ffffff;
/* color: #FFFFFF; */
transition-property: background-color;
transition-duration: .5s;
}
/* -----------------------------------------------------
* Workspaces
* ----------------------------------------------------- */
#workspaces {
margin: 5px 1px 6px 1px;
padding: 0px 1px;
border-radius: 15px;
border: 0px;
font-weight: bold;
font-style: normal;
font-size: 16px;
color: @textcolor1;
}
#workspaces button {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: @textcolor3;
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
color: @textcolor1;
background: @workspacesbackground2;
border-radius: 15px;
min-width: 40px;
transition: all 0.3s ease-in-out;
}
#workspaces button:hover {
color: @textcolor1;
background: @workspacesbackground2;
border-radius: 15px;
}
/* -----------------------------------------------------
* Tooltips
* ----------------------------------------------------- */
tooltip {
border-radius: 10px;
background-color: @backgroundlight;
opacity:0.8;
padding:20px;
margin:0px;
}
tooltip label {
color: @textcolor2;
}
/* -----------------------------------------------------
* Window
* ----------------------------------------------------- */
#window {
background: @backgroundlight;
margin: 10px 15px 10px 0px;
padding: 2px 10px 0px 10px;
border-radius: 12px;
color:@textcolor2;
font-size:16px;
font-weight:normal;
}
window#waybar.empty #window {
background-color:transparent;
}
/* -----------------------------------------------------
* Taskbar
* ----------------------------------------------------- */
#taskbar {
background: @backgroundlight;
margin: 6px 15px 6px 0px;
padding:0px;
border-radius: 15px;
font-weight: normal;
font-style: normal;
border: 3px solid @backgroundlight;
}
#taskbar button {
margin:0;
border-radius: 15px;
padding: 0px 5px 0px 5px;
}
/* -----------------------------------------------------
* Modules
* ----------------------------------------------------- */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
/* -----------------------------------------------------
* Custom Quicklinks
* ----------------------------------------------------- */
#custom-browser,
#custom-filemanager,
#network,
#pulseaudio,
#battery,
#custom-appmenu,
#clock {
margin-right: 20px;
font-size: 20px;
font-weight: bold;
color: @iconcolor;
padding: 4px 10px 2px 10px;
font-size: 16px;
}
#custom-quicklink1,
#custom-quicklink2,
#custom-quicklink3,
#custom-quicklink4,
#custom-quicklink5,
#custom-quicklink6,
#custom-quicklink7,
#custom-quicklink8,
#custom-quicklink9,
#custom-quicklink10 {
padding:0px;
margin-right: 7px;
font-size:20px;
color: @iconcolor;
}
/* -----------------------------------------------------
* Custom Modules
* ----------------------------------------------------- */
#custom-appmenu {
background-color: @backgrounddark;
color: @textcolor1;
border-radius: 15px;
margin: 10px 10px 10px 10px;
}
/* -----------------------------------------------------
* Custom Exit
* ----------------------------------------------------- */
#custom-exit {
margin: 2px 20px 0px 0px;
padding:0px;
font-size:20px;
color: @iconcolor;
}
/* -----------------------------------------------------
* Hardware Group
* ----------------------------------------------------- */
#disk,#memory,#cpu,#language {
margin:0px;
padding:0px;
font-size:16px;
color:@iconcolor;
}
#language {
margin-right:10px;
}
/* -----------------------------------------------------
* Clock
* ----------------------------------------------------- */
#clock {
background-color: @backgrounddark;
font-size: 16px;
color: @textcolor1;
border-radius: 15px;
margin: 10px 7px 10px 0px;
}
/* -----------------------------------------------------
* Pulseaudio
* ----------------------------------------------------- */
#pulseaudio {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 10px 10px 0px;
}
#pulseaudio.muted {
background-color: @backgrounddark;
color: @textcolor1;
}
/* -----------------------------------------------------
* Network
* ----------------------------------------------------- */
#network {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 10px 10px 0px;
}
#network.ethernet {
background-color: @backgroundlight;
color: @textcolor2;
}
#network.wifi {
background-color: @backgroundlight;
color: @textcolor2;
}
/* -----------------------------------------------------
* Bluetooth
* ----------------------------------------------------- */
#bluetooth, #bluetooth.on, #bluetooth.connected {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 15px 10px 0px;
}
#bluetooth.off {
background-color: transparent;
padding: 0px;
margin: 0px;
}
/* -----------------------------------------------------
* Battery
* ----------------------------------------------------- */
#battery {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 15px 10px 0px;
}
#battery.charging, #battery.plugged {
color: @textcolor2;
background-color: @backgroundlight;
}
@keyframes blink {
to {
background-color: @backgroundlight;
color: @textcolor2;
}
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: @textcolor3;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
/* -----------------------------------------------------
* Tray
* ----------------------------------------------------- */
#tray {
margin:0px 10px 0px 0px;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
/* -----------------------------------------------------
* Other
* ----------------------------------------------------- */
label:focus {
background-color: #000000;
}
#backlight {
background-color: #90b1b1;
}
#network {
background-color: #2980b9;
}
#network.disconnected {
background-color: #f53c3c;
}

View File

@ -1,355 +0,0 @@
@import "style.css";
waybar#window {
background-color: @base0B;
}
@define-color base00 #111349;
@define-color base01 #332330;
@define-color base02 #156eb2;
@define-color base03 #66a3da;
@define-color base04 #95bede;
@define-color base05 #e2e1ef;
@define-color base06 #e0e3f4;
@define-color base07 #cce8f6;
@define-color base08 #5196d1;
@define-color base09 #5196cf;
@define-color base0A #5796cc;
@define-color base0B #5595d3;
@define-color base0C #5896c9;
@define-color base0D #5795d0;
@define-color base0E #4f96d8;
@define-color base0F #5894d3;
* {
font-family: "DejaVu Sans";
font-size: 12pt;
}
window#waybar, tooltip {
background: alpha(@base00, 1.000000);
color: @base05;
}
tooltip {
border-color: @base0D;
}
#wireplumber,
#pulseaudio,
#sndio {
padding: 0 5px;
}
#wireplumber.muted,
#pulseaudio.muted,
#sndio.muted {
padding: 0 5px;
}
#upower,
#battery {
padding: 0 5px;
}
#upower.charging,
#battery.Charging {
padding: 0 5px;
}
#network {
padding: 0 5px;
}
#network.disconnected {
padding: 0 5px;
}
#user {
padding: 0 5px;
}
#clock {
padding: 0 5px;
}
#backlight {
padding: 0 5px;
}
#cpu {
padding: 0 5px;
}
#disk {
padding: 0 5px;
}
#idle_inhibitor {
padding: 0 5px;
}
#temperature {
padding: 0 5px;
}
#mpd {
padding: 0 5px;
}
#language {
padding: 0 5px;
}
#keyboard-state {
padding: 0 5px;
}
#memory {
padding: 0 5px;
}
#window {
padding: 0 5px;
}
window .modules-left #workspaces button {
background-color: @base07;
color: @base00;
}
.modules-left #wireplumber,
.modules-left #pulseaudio,
.modules-left #sndio {
background-color: @base09;
color: @base00;
}
.modules-left #workspaces button.focused,
.modules-left #workspaces button.active {
background: @base03;
}
.modules-left #workspaces button.urgent {
background-color: @base08;
}
.modules-left #wireplumber.muted,
.modules-left #pulseaudio.muted,
.modules-left #sndio.muted {
background-color: @base0C;
}
.modules-left #upower,
.modules-left #battery {
background-color: @base0D;
color: @base00;
}
.modules-left #upower.charging,
.modules-left #battery.Charging {
background-color: @base0E;
}
.modules-left #network {
background-color: @base0B;
color: @base00;
}
.modules-left #network.disconnected {
background-color: @base0C;
}
.modules-left #user {
background-color: @base0F;
color: @base00;
}
.modules-left #clock {
background-color: @base03;
color: @base00;
}
.modules-left #backlight {
background-color: @base0E;
color: @base00;
}
.modules-left #cpu {
background-color: @base0B;
color: @base00;
}
.modules-left #disk {
background-color: @base02;
color: @base00;
}
.modules-left #idle_inhibitor {
background-color: @base06;
color: @base00;
}
.modules-left #temperature {
background-color: @base07;
color: @base00;
}
.modules-left #mpd {
background-color: @base02;
color: @base00;
}
.modules-left #language {
background-color: @base02;
color: @base00;
}
.modules-left #keyboard-state {
background-color: @base03;
color: @base00;
}
.modules-left #memory {
background-color: @base09;
color: @base00;
}
.modules-left #window {
background-color: @base0C;
color: @base00;
}
window .modules-center #workspaces button {
background-color: @base07;
color: @base00;
}
.modules-center #wireplumber,
.modules-center #pulseaudio,
.modules-center #sndio {
background-color: @base09;
color: @base00;
}
.modules-center #workspaces button.focused,
.modules-center #workspaces button.active {
background: @base03;
}
.modules-center #workspaces button.urgent {
background-color: @base08;
}
.modules-center #wireplumber.muted,
.modules-center #pulseaudio.muted,
.modules-center #sndio.muted {
background-color: @base0C;
}
.modules-center #upower,
.modules-center #battery {
background-color: @base0D;
color: @base00;
}
.modules-center #upower.charging,
.modules-center #battery.Charging {
background-color: @base0E;
}
.modules-center #network {
background-color: @base0B;
color: @base00;
}
.modules-center #network.disconnected {
background-color: @base0C;
}
.modules-center #user {
background-color: @base0F;
color: @base00;
}
.modules-center #clock {
background-color: @base03;
color: @base00;
}
.modules-center #backlight {
background-color: @base0E;
color: @base00;
}
.modules-center #cpu {
background-color: @base0B;
color: @base00;
}
.modules-center #disk {
background-color: @base02;
color: @base00;
}
.modules-center #idle_inhibitor {
background-color: @base06;
color: @base00;
}
.modules-center #temperature {
background-color: @base07;
color: @base00;
}
.modules-center #mpd {
background-color: @base02;
color: @base00;
}
.modules-center #language {
background-color: @base02;
color: @base00;
}
.modules-center #keyboard-state {
background-color: @base03;
color: @base00;
}
.modules-center #memory {
background-color: @base09;
color: @base00;
}
.modules-center #window {
background-color: @base0C;
color: @base00;
}
window .modules-right #workspaces button {
background-color: @base07;
color: @base00;
}
.modules-right #wireplumber,
.modules-right #pulseaudio,
.modules-right #sndio {
background-color: @base09;
color: @base00;
}
.modules-right #workspaces button.focused,
.modules-right #workspaces button.active {
background: @base03;
}
.modules-right #workspaces button.urgent {
background-color: @base08;
}
.modules-right #wireplumber.muted,
.modules-right #pulseaudio.muted,
.modules-right #sndio.muted {
background-color: @base0C;
}
.modules-right #upower,
.modules-right #battery {
background-color: @base0D;
color: @base00;
}
.modules-right #upower.charging,
.modules-right #battery.Charging {
background-color: @base0E;
}
.modules-right #network {
background-color: @base0B;
color: @base00;
}
.modules-right #network.disconnected {
background-color: @base0C;
}
.modules-right #user {
background-color: @base0F;
color: @base00;
}
.modules-right #clock {
background-color: @base03;
color: @base00;
}
.modules-right #backlight {
background-color: @base0E;
color: @base00;
}
.modules-right #cpu {
background-color: @base0B;
color: @base00;
}
.modules-right #disk {
background-color: @base02;
color: @base00;
}
.modules-right #idle_inhibitor {
background-color: @base06;
color: @base00;
}
.modules-right #temperature {
background-color: @base07;
color: @base00;
}
.modules-right #mpd {
background-color: @base02;
color: @base00;
}
.modules-right #language {
background-color: @base02;
color: @base00;
}
.modules-right #keyboard-state {
background-color: @base03;
color: @base00;
}
.modules-right #memory {
background-color: @base09;
color: @base00;
}
.modules-right #window {
background-color: @base0C;
color: @base00;
}

View File

@ -1,152 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ waybar ];
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
spacing = 30;
margin-left = 0;
margin-right = 0;
modules-left = [ "custom/appmenu" "wlr/taskbar" "hyprland/window" "tray" ];
modules-center = [ "hyprland/workspaces" ];
modules-right = [
"pulseaudio"
"network"
"battery"
"clock"
"custom/power"
];
"hyprland/workspaces" = {
active-only = false;
on-click = "activate";
format = "{}";
format-icons = {
urgent = "";
active = "";
default = "";
};
persistent-workspaces = {
"*" = 3;
};
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 18;
tooltip-format = "{title}";
on-click = "activate";
on-click-middle = "close";
ignore-list = [
"kitty"
];
app_ids-mapping = {};
rewrite = {};
};
"hyprland/window" = {
rewrite = {};
separate-outputs = true;
};
"custom/appmenu" = {
format = " "; # Manual padding to move it further from left edge
on-click = "wofi --show drun";
};
"custom/exit" = {
format = " "; # Manual padding to move it further from right edge
on-click = "wlogout";
tooltip-format = "Power Menu";
};
keyboard-state = {
numlock = true;
capslock = true;
format = "{name} {icon}";
format-icons = {
locked = " ";
unlocked = " ";
};
};
tray = {
icon-size = 21;
spacing = 10;
};
clock = {
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = ''{:%Y-%m-%d}'';
};
battery = {
states = {
warning = 30;
critical = 15;
};
format = ''{capacity}% {icon}'';
format-full = ''{capacity}% {icon}'';
format-charging = ''{capacity}% '';
format-plugged = ''{capacity}% '';
format-alt = ''{time} {icon}'';
format-icons = [ " " " " " " " " " " ];
};
power-profiles-daemon = {
format = ''{icon}'';
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
tooltip = true;
format-icons = {
default = '' '';
performance = '' '';
balanced = '' '';
power-saver = '' '';
};
};
network = {
format-wifi = ''{essid} ({signalStrength}%) '';
format-ethernet = ''{ipaddr}/{cidr} '';
tooltip-format = ''{ifname} via {gwaddr} '';
format-linked = ''{ifname} (No IP) '';
format-disconnected = ''Disconnected '';
format-alt = ''{ifname}: {ipaddr}/{cidr}'';
on-click = "kitty --class floating --override initial_window_width=400 --override initial_window_height=400 --override remember_window_size=false nmtui";
on-click-right = "nm-connection-editor";
};
pulseaudio = {
format = ''{volume}% {icon} {format_source}'';
format-bluetooth = ''{volume}% {icon} {format_source}'';
format-bluetooth-muted = ''{icon} {format_source}'';
format-muted = ''{format_source}'';
format-source = ''{volume}% '';
format-source-muted = '' '';
format-icons = {
headphone = '' '';
hands-free = '' '';
headset = '' '';
phone = '' '';
portable = '' '';
car = '' '';
default = [ "" " " " " ];
};
on-click = ''pavucontrol'';
};
"custom/power" = {
format = '' '';
tooltip = false;
menu = "on-click";
menu-file = ''$HOME/.config/waybar/power_menu.xml'';
menu-actions = {
shutdown = "shutdown";
reboot = "reboot";
suspend = "systemctl suspend";
hibernate = "systemctl hibernate";
};
};
};
};
};
# We want Stylix to do most of the heavy lifting for our styling,
# but we want to add a few snippets. So we're going to run waybar
# with '-c ~/.config/waybar/waybar.css', which will add our snippets
# and then source the original, default '~/.config/waybar/style.css'
# created by Stylix.
# home.file."waybar.css" = {
# target = ".config/waybar/waybar.css";
# source = ./waybar.css;
# };
}

View File

@ -1,11 +0,0 @@
{ pkgs, ... }: {
programs.wofi = {
enable = true;
settings = {
show = "drun";
width = "40%";
height = "20%";
allow_markup = true;
};
};
}

View File

@ -1,128 +0,0 @@
{ pkgs, vars, sysVars, ... }: {
home.packages = with pkgs; [
ssh-to-age
pinentry-all
( writeShellApplication {
name = "keyman";
runtimeInputs = [];
text = ''
#!/bin/bash
# Fuck GPG. Miserable UX.
id="${vars.user.email}"
device="desktop"
homedir="/home/${sysVars.username}/.gpg"
backupdir="/home/${sysVars.username}/.keys"
mkdir -p "$homedir" "$backupdir"
getPrimaryKeyFingerprint() {
return "$(gpg --list-keys | grep fingerprint | tr -s ' ' | cut -d'=' -f2 | xargs)"
}
bootstrap() {
gpg --quick-generate-key '${vars.user.realname} <${vars.user.email}>' ed25519 cert 0
gpg --quick-add-key "$(getPrimaryKeyFingerprint)" ed25519 sign 0
gpg --quick-add-key "$(getPrimaryKeyFingerprint)" cv25519 encrypt 0
}
lockPrimary() {
gpg -a --export-secret-key "$(getPrimaryKeyFingerprint)" > "$backupdir/$id.primary.gpg"
gpg -a --export "$(getPrimaryKeyFingerprint)" > "$backupdir/$id.primary.gpg.pub"
gpg -a --export-secret-subkeys "$(getPrimaryKeyFingerprint)" > "/tmp/subkeys.gpg"
gpg --delete-secret-subkeys "$(getPrimaryKeyFingerprint)"
gpg --import "/tmp/subkeys.gpg" && rm "/tmp/subkeys.gpg"
}
unlockPrimary() {
gpg --import "$backupdir/$id.primary.gpg"
if gpg --list-secret-keys | grep -q sec#; then
echo "Unlocked primary key $backupdir/$id.primary.gpg"
else
echo "Failed to unlock primary key $backupdir/$id.primary.gpg"
fi
}
initNewDevice() {
stty icrnl
unlockPrimary
gpg --quick-add-key "$(getPrimaryKeyFingerprint)" ed25519 sign 0
if [[ $(gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]") -gt 1 ]]; then
echo "More than one loaded signing key is listed for today's date. Please select one:"
while read -r key; do
key_list+=( "$key" )
done< <(gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]")
select key in "''$''\{key_list[@]}"; do
SUBKEY_FINGERPRINT=$(echo "$key" | cut -d'/' -f2 | cut -d' ' -f1)
export SUBKEY_FINGERPRINT
echo "Subkey fingerprint: $SUBKEY_FINGERPRINT"
break
done
else
SUBKEY_FINGERPRINT=$(gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]" | cut -d'/' -f2 | cut -d' ' -f1 | head -1)
export SUBKEY_FINGERPRINT
fi
gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]"
gpg -a --export-secret-key "$SUBKEY_FINGERPRINT" > "$backupdir/$id.$device.gpg"
gpg -a --export "$SUBKEY_FINGERPRINT" > "$backupdir/$id.$device.gpg.pub"
lockPrimary
}
"$@" || declare -F
'';
} )
];
programs.gpg = {
enable = true;
homedir = "/home/${sysVars.username}/.gpg";
mutableKeys = true;
mutableTrust = true;
publicKeys = [ ];
};
services.gpg-agent = {
enable = true;
enableZshIntegration = true;
enableScDaemon = false;
pinentryPackage = pkgs.pinentry-qt;
};
home.file = {
"profiles" = {
target = ".ssh/profiles";
text = ''
admin@192.168.1.31
admin@192.168.1.32
admin@192.168.1.33
admin@192.168.1.10
admin@192.168.1.11
admin@192.168.1.12
vyos@192.168.1.1
admin@192.168.1.23
admin@143.110.151.123
'';
};
"config" = {
target = ".ssh/config";
text = ''
Host *
ForwardAgent yes
IdentityFile ~/.ssh/${sysVars.sshKey}
'';
};
"authorized_keys" = {
target = ".ssh/authorized_keys";
text = ''
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB9guFiLtbnUn93C3fBggGFyPqR3/5pPKrVTtuGL/dcP joey@pixel
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFzxkV2KZDEUKddI2sbgpQkYFazRSmt/XfzVhcHHDGso joey@joey-laptop
'';
};
};
# Configure Sops key
home.sessionVariables = {
SOPS_AGE_KEY_FILE = "/home/${sysVars.username}/Git/Jafner.net/.sops/${sysVars.username}.author.key";
};
}

View File

@ -1,335 +0,0 @@
{ ... }: {
programs.mangohud = {
enable = true;
settings = {};
settingsPerApplication = {};
};
home.file."MyConfig.conf" = {
enable = true;
target = ".config/MangoHud/MyConfig.conf";
text = ''
# FPS Limit
fps_limit=240,0
fps_limit_method=late
# Software Information
## FPS
fps=0
fps_color_change=0
fps_text=
fps_value=59,239
fps_metrics=0
## Frame Times
frame_timing=1
frame_timing_detailed=0
dynamic_frame_timing=1
frametime=0
histogram=1
show_fps_limit=0
## Environment
gamemode=0
present_mode=0
vulkan_driver=0
engine_version=0
engine_short_names=0
exec_name=0
vkbasalt=0
wine=0
winesync=0
# Info: CPU
cpu_text=
cpu_stats=0
core_load=0
core_bars=0
cpu_power=0
cpu_temp=0
# Info: GPU
gpu_text=
gpu_stats=0
gpu_power=0
gpu_temp=0
gpu_core_clock=0
gpu_mem_clock=0
gpu_fan=0
gpu_voltage=0
throttling_status=0
throttling_status_graph=0
# Info: Memory
procmem=0
procmem_shared=0
procmem_virt=0
ram=0
vram=0
swap=0
# Info: Network
network=0
# Info: Other
time=0
time_format=%r
time_no_label=1
graphs=
# Keybindings
toggle_hud=Shift_R+F12
toggle_logging=Shift_L+F2
toggle_hud_position=R_Shift+F11
toggle_preset=Shift_R+F10
toggle_fps_limit=Shift_L+F1
reload_cfg=Shift_L+F4
upload_log=Shift_L+F3
reset_fps_metrics=Shift_R+f9
# Orientation: positioning, size, arrangement
width=240
table_columns=2
offset_x=3
offset_y=24
position=top-left
legacy_layout=1
height=0
horizontal=0
horizontal_stretch=0
hud_compact=0
hud_no_margin=1
cellpadding_y=0
round_corners=10
alpha=1.000000
background_alpha=1.00000
# Text: Font, colors, etc.
font_scale=1.0
font_size=24
font_size_text=24
no_small_font=0
text_color=cdd6f4
text_outline=1
text_outline_thickness=1
text_outline_color=#1e1e2e
frametime_color=b2bedc
frametime_text_color=
background_color=1d253a
battery_color=ff0000#585b70
engine_color=cdd6f4
cpu_color=89b4fa
cpu_load_color=a6e3a1, f9e2af, f38ba8
io_color=f9e2af
media_player_color=cdd6f4
gpu_color=a6e3a1
gpu_load_color=a6e3a1, f9e2af, f38ba8
fps_color=a6e3a1, f9e2af, f38ba8
wine_color=cba6f7
vram_color=94e2d5
'';
};
# home.file."Overwatch.conf" = {
# enable = true;
# target = ".config/MangoHud/Overwatch.conf";
# text = ''
# # FPS Limit
# #fps_limit=240,0
# #fps_limit_method=late
# # Software Information
# ## FPS
# fps=0
# fps_color_change=0
# fps_text=
# fps_value=59,239
# fps_metrics=0
# ## Frame Times
# frame_timing=1
# frame_timing_detailed=0
# dynamic_frame_timing=1
# frametime=0
# histogram=1
# show_fps_limit=0
# ## Environment
# gamemode=0
# present_mode=0
# vulkan_driver=0
# engine_version=0
# engine_short_names=0
# exec_name=0
# vkbasalt=0
# wine=0
# winesync=0
# # Info: CPU
# cpu_text=
# cpu_stats=0
# core_load=0
# core_bars=0
# cpu_power=0
# cpu_temp=0
# # Info: GPU
# gpu_text=
# gpu_stats=0
# gpu_power=0
# gpu_temp=0
# gpu_core_clock=0
# gpu_mem_clock=0
# gpu_fan=0
# gpu_voltage=0
# throttling_status=0
# throttling_status_graph=0
# # Info: Memory
# procmem=0
# procmem_shared=0
# procmem_virt=0
# ram=0
# vram=0
# swap=0
# # Info: Network
# network=0
# # Info: Other
# time=0
# time_format=%r
# time_no_label=1
# graphs=
# # Keybindings
# toggle_hud=Shift_R+F12
# toggle_logging=Shift_L+F2
# toggle_hud_position=R_Shift+F11
# toggle_preset=Shift_R+F10
# toggle_fps_limit=Shift_L+F1
# reload_cfg=Shift_L+F4
# upload_log=Shift_L+F3
# reset_fps_metrics=Shift_R+f9
# # Orientation: positioning, size, arrangement
# width=240
# table_columns=2
# offset_x=3
# offset_y=24
# position=top-left
# legacy_layout=1
# height=0
# horizontal=0
# horizontal_stretch=0
# hud_compact=0
# hud_no_margin=1
# cellpadding_y=0
# round_corners=10
# alpha=1.000000
# background_alpha=1.00000
# # Text: Font, colors, etc.
# font_scale=1.0
# font_size=24
# font_size_text=24
# no_small_font=0
# text_color=cdd6f4
# text_outline=1
# text_outline_thickness=1
# text_outline_color=#1e1e2e
# frametime_color=b2bedc
# frametime_text_color=
# background_color=1d253a
# battery_color=ff0000#585b70
# engine_color=cdd6f4
# cpu_color=89b4fa
# cpu_load_color=a6e3a1, f9e2af, f38ba8
# io_color=f9e2af
# media_player_color=cdd6f4
# gpu_color=a6e3a1
# gpu_load_color=a6e3a1, f9e2af, f38ba8
# fps_color=a6e3a1, f9e2af, f38ba8
# wine_color=cba6f7
# vram_color=94e2d5
# '';
# };
home.file."presets.conf" = {
target = ".config/MangoHud/presets.conf";
text = ''
[preset 1] # Frame data
fps=1
fps_color_change=1
fps_text=
fps_value=59,239
fps_metrics=avg,0.01
frame_timing=1
frame_timing_detailed=1
dynamic_frame_timing=1
frametime=1
histogram=1
show_fps_limit=1
[preset 2] # CPU info
cpu_text=5700X
cpu_stats=1
core_load=1
core_bars=1
cpu_power=0
cpu_temp=1
[preset 3] # GPU info
gpu_text=7900 XTX
gpu_stats=1
gpu_power=1
gpu_temp=1
gpu_core_clock=1
gpu_mem_clock=1
gpu_fan=1
gpu_voltage=1
throttling_status=1
throttling_status_graph=1
[preset 4] # Memory info
procmem=1
procmem_shared=1
procmem_virt=1
ram=1
vram=1
swap=1
[preset 5] # Network info
network=enp4s0f0
[preset 6] # Environment info
gamemode=1
present_mode=1
vulkan_driver=1
engine_version=1
engine_short_names=1
exec_name=1
vkbasalt=1
wine=1
winesync=1
[preset 7]
no_display=1
'';
};
home.sessionVariables = {
MANGOHUD_CONFIGFILE = "$XDG_CONFIG_HOME/MangoHud/MyConfig.conf";
MANGOHUD_PRESETSFILE = "$XDG_CONFIG_HOME/MangoHud/presets.conf";
};
}
# OW HUD background: #1d253a
# OW HUD text: #b2bedc
# cat ~/.config/MangoHud/MangoHud.conf

View File

@ -1,7 +0,0 @@
{ ... }: {
nixGL = {
vulkan.enable = true;
defaultWrapper = "mesa";
installScripts = [ "mesa" ];
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,60 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ base16-schemes ];
# Use the following before running a switch to prevent clobbering:
# rm ~/.gtkrc-2.0 ~/.config/gtk-3.0/settings.ini ~/.config/gtk-3.0/gtk.css ~/.config/gtk-4.0/settings.ini ~/.config/gtk-4.0/gtk.css
# if one run with backups has already been done, clean it up with:
# rm ~/.gtkrc-2.0.backup ~/.config/gtk-3.0/settings.ini.backup ~/.config/gtk-3.0/gtk.css.backup ~/.config/gtk-4.0/settings.ini.backup ~/.config/gtk-4.0/gtk.css.backup
stylix = {
enable = true;
autoEnable = true;
polarity = "dark";
#image = ./plasma6-2560x1440.png;
image = ./romb-3840x2160.png;
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
fonts = {
sizes = {
applications = 10;
desktop = 10;
popups = 10;
terminal = 12;
};
monospace = {
name = "DejaVu Sans Mono";
package = pkgs.dejavu_fonts;
};
serif = {
name = "DejaVu Serif";
package = pkgs.dejavu_fonts;
};
sansSerif = {
name = "DejaVu Sans";
package = pkgs.dejavu_fonts;
};
emoji = {
name = "Noto Color Emoji";
package = pkgs.noto-fonts-color-emoji;
};
};
targets = {
bat.enable = true;
btop.enable = true;
firefox.enable = true;
firefox.profileNames = [ "Default" ];
fzf.enable = true;
gnome.enable = true;
gtk.enable = true;
kde.enable = true;
rofi.enable = true;
vesktop.enable = true;
vscode.enable = true;
wofi.enable = true;
#ghostty.enable = false;
};
};
}
# Use the following to get an ordered list of color codes from ~/.config/stylix/palette.json:
#
# cat ~/.config/stylix/palette.json | jq 'to_entries | .[] | select(.key | contains("base")) | .value'
# To convert that to the format expected by [genix7000](https://github.com/cab404/genix7000):
# sed 's/^"/"\\#/' | tr '\n' ' '

View File

@ -1,57 +0,0 @@
{ vars, ... }:
{
imports = [
./configuration/stylix.nix
./configuration/git.nix
./configuration/keys.nix
./configuration/defaultApps.nix
./configuration/mangohud.nix
./apps/zed.nix
./apps/browser.nix
./apps/discord.nix
./apps/obs-studio.nix
./apps/terminal.nix
./apps/vscode.nix
./apps/iac-tools.nix
./apps/minecraft.nix
./apps/multimedia.nix
./apps/obsidian.nix
./apps/spotify.nix
./apps/password-manager.nix
./apps/email.nix
./apps/emulators.nix
./apps/ai.nix
./apps/office.nix
./services/flatpak.nix
./services/kdeconnect.nix
./services/nextcloud.nix
./services/protonmail.nix
./services/goxlr-utility.nix
#./services/syncthing.nix
./scripts/ffmpeg.nix
./scripts/nixos.nix
./scripts/obs-toggle-recording.nix
];
services.flatpak = {
enable = true;
uninstallUnmanaged = true;
remotes = [
{ name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; }
];
};
home.enableNixpkgsReleaseCheck = false;
home.preferXdgDirectories = true;
home.username = "${vars.user.username}";
home.homeDirectory = "/home/${vars.user.username}";
home.stateVersion = "24.11";
home.sessionVariables = { };
programs.home-manager.enable = true;
xdg.systemDirs.data = [
"/usr/share"
];
}

View File

@ -1,82 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
ffmpeg-full
libnotify
( writeShellApplication {
name = "convert-for-discord"; # { filePath }: { none } (side-effect: transcodes & remuxes file to x264/mp4)
runtimeInputs = [
libnotify
ffmpeg-full
];
text = ''
#!/bin/bash
INPUT_FILE=$(realpath "$1")
FILE_PATH=$(dirname "$INPUT_FILE")
FILE_NAME=$(basename "$INPUT_FILE")
#FILE_EXT="''$''\{FILE_NAME##*.}"
FILE_NAME="''$''\{FILE_NAME%.*}"
OUTFILE="$FILE_PATH/$FILE_NAME.mp4"
# Actual transcoding happens here:
notify-send -t 2000 "Transcode starting" "$FILE_NAME"
ffmpeg -hide_banner -vaapi_device /dev/dri/renderD128 -i "$INPUT_FILE" -map 0 -vf 'format=nv12,hwupload' -c:v h264_vaapi -b:v 8M -c:a copy "$OUTFILE"
notify-send -t 4000 "Transcode complete" "$FILE_NAME"
'';
} )
( writeShellApplication {
name = "send-to-zipline"; # { filePath }: { none } (side-effect: transcodes & remuxes file to x264/mp4)
runtimeInputs = [
libnotify
curl
jq
wl-clipboard
wl-clip-persist
];
text = ''
#!/bin/bash
INPUT_FILE=$(realpath "$INPUT_FILE")
FILE_NAME=$(basename "$INPUT_FILE")
FILE_NAME="''$''\{FILE_NAME%.*}"
ZIPLINE_HOST_ROOT=https://zipline.jafner.net
TOKEN=$(cat ~/.zipline-auth)
LINK=$(curl \
--header "authorization: $TOKEN" \
$ZIPLINE_HOST_ROOT/api/upload -F "file=@$INPUT_FILE" \
--header "Content-Type: multipart/form-data" \
--header "Format: name" \
--header "Embed: true" \
--header "Original-Name: true")
LINK=$(echo "$LINK" | jq -r .'files[0]')
echo "[$FILE_NAME]($LINK)" | wl-copy
notify-send -t 4000 "Zipline - Upload complete." "Link copied to clipboard: $LINK"
'';
} )
];
home.file."send-to-ffmpeg.desktop" = {
target = ".local/share/kio/servicemenus/send-to-ffmpeg.desktop";
text = ''
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=video/*;
Icon=video-mp4
X-KDE-Submenu=Run script...
Actions=convertForDiscord;sendToZipline
[Desktop Action convertForDiscord]
Name=Convert for Discord
Icon=video-mp4
TryExec=ffmpeg
Exec=file=%f; convert-for-discord "%f"
[Desktop Action sendToZipline]
Name=Send to Zipline
Icon=video-mp4
TryExec=ffmpeg
Exec=file=%f; send-to-zipline "%f"
'';
};
}

View File

@ -1,31 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
( writeShellApplication {
name = "init-keys";
runtimeInputs = [
ssh-to-age
];
text = ''
#!/bin/bash
# Asserts all keys are where they belong.
assert() {
TEST_FILE="$1"
FILE_HASH="$2"
if [ ! -f "$1" ]; then
echo "Error: Missing file $1"
exit 1
fi
TEST_HASH="$(sha256sum "$TEST_FILE" | cut -d' ' -f1)"
if [ ! "$HASH" == "$FILE_HASH" ]; then
echo "Error: File hash mismatch $1"
exit 1
fi
}
'';
} )
];
}

View File

@ -1,76 +0,0 @@
{ pkgs, vars, ... }: {
home.packages = with pkgs; [
( writeShellApplication {
name = "nixos";
runtimeInputs = [
libnotify
jq
git
];
text = ''
#!/bin/bash
# shellcheck disable=SC2088
FLAKE_DIR=${vars.flakeDir}
CURRENT_CONFIGURATION="desktop"
cd "$FLAKE_DIR"
handleUntracked() {
UNTRACKED=$(git ls-files -o --directory --exclude-standard --no-empty-directory)
if [[ $(echo "$UNTRACKED" | wc -l) -gt 0 ]]; then
git add -A
notify-send "Adding untracked files" "$UNTRACKED"
fi
}
rebuild() {
notify-send "Nixos: Beginning rebuild"
sudo nixos-rebuild switch \
--flake ".#$CURRENT_CONFIGURATION" \
--impure \
--show-trace &&\
notify-send "Nixos: Rebuilt successfully"
}
update() {
notify-send "Nixos: Beginning update" "Updating lockfile $FLAKE_DIR/flake.lock"
nix flake update --flake "$FLAKE_DIR"
notify-send "Nixos: Update complete" "Finished updating lockfile $FLAKE_DIR/flake.lock"
}
garbageCollect() {
notify-send "Nixos: Collecting garbage" "Deleting generations older than 7 days."
nix-env --delete-generations 7d &&\
nix-store --gc --print-dead
notify-send "Nixos: Garbage collection complete"
}
listGenerations() {
nixos-rebuild list-generations | less
}
edit() {
zeditor "${vars.flakeRepo}"
}
finish() {
mkdir -p "$HOME/.nixos"
nixos-rebuild list-generations --json > "$HOME/.nixos/nixos-generations.json"
}
error() {
notify-send "Nixos Script Error" "$@"
exit 1
}
case "$1" in
rebuild) handleUntracked && rebuild && finish;;
update) handleUntracked && update && finish;;
clean) garbageCollect && finish;;
ls) listGenerations;;
edit) edit;;
*) error "Unrecognized subcommand $1";;
esac
'';
} )
];
}

View File

@ -1,65 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
### Python script that uses OBS-Studio's websocket to toggle recording when a hotkey is pressed.
( writers.writePython3Bin "obs-toggle-recording" {
libraries = [
( python312Packages.buildPythonPackage {
pname = "obsws_python";
version = "1.7.0";
src = fetchurl {
url = "https://files.pythonhosted.org/packages/22/29/dcb5286c9301eee8b72aee1e997761fb2cca9bf963fcd373acdfca353af3/obsws_python-1.7.0-py3-none-any.whl";
sha256 = "0jvqfvqgvqjsv0jsddj51m4wrinbrc2gbymmnmv9kfarfj7ly7g7";
};
format = "wheel";
doCheck = false;
buildInputs = [];
checkInputs = [];
nativeBuildInputs = [];
propagatedBuildInputs = [
( python312Packages.buildPythonPackage {
pname = "tomli";
version = "2.0.2";
src = fetchurl {
url = "https://files.pythonhosted.org/packages/cf/db/ce8eda256fa131af12e0a76d481711abe4681b6923c27efb9a255c9e4594/tomli-2.0.2-py3-none-any.whl";
sha256 = "0f5ar8vfq7lkydj19am5ymxg11d00ql0kv5hj3v07lskbi429gif";
};
format = "wheel";
doCheck = false;
buildInputs = [];
checkInputs = [];
nativeBuildInputs = [];
propagatedBuildInputs = [];
} )
( python312Packages.buildPythonPackage {
pname = "websocket-client";
version = "1.8.0";
src = fetchurl {
url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl";
sha256 = "09m5pwwi4bbwdv2vdhlc5k0737kskhnxyb5j17l9ii7mjz4lrd0p";
};
format = "wheel";
doCheck = false;
buildInputs = [];
checkInputs = [];
nativeBuildInputs = [];
propagatedBuildInputs = [];
} )
];
}
)
];
} ''
import obsws_python as obs
client = obs.ReqClient(host='localhost', port=4455)
recording_status = client.get_record_status()
active = recording_status.output_active
paused = recording_status.output_paused
if not active:
client.start_record()
else:
client.toggle_record_pause()
'' )
];
}

View File

@ -1,11 +0,0 @@
{ pkgs, ... }: {
services.flatpak = {
enable = true;
uninstallUnmanaged = true;
remotes = [
{ name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; }
];
packages = [ ];
};
home.packages = with pkgs; [ flatpak ];
}

View File

@ -1,18 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
goxlr-utility
];
systemd.user.services = {
goxlr-utility = {
Unit = {
Description = "Unofficial GoXLR App replacement for Linux, Windows and MacOS";
Documentation = [ "https://github.com/GoXLR-on-Linux/goxlr-utility" ];
};
Service = {
Restart = "always";
RestartSec = 30;
ExecStart = "${pkgs.goxlr-utility}/bin/goxlr-daemon";
};
};
};
}

View File

@ -1,5 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
kdePackages.kdeconnect-kde
];
}

View File

@ -1,3 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ nextcloud-client ];
}

View File

@ -1,5 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
protonmail-bridge-gui
];
}

View File

@ -1,6 +0,0 @@
{ ... }: {
services.syncthing = {
enable = false;
tray = true;
};
}

View File

@ -1,30 +0,0 @@
{ ... }: {
imports = [
./hardware/amdgpu.nix
./hardware/audio.nix
./hardware/boot.nix
./hardware/filesystems.nix
./hardware/networking.nix
./hardware/peripherals.nix
./hardware/samba-client.nix
./services/flatpak.nix
./services/ollama.nix
./services/printing.nix
./services/ssh.nix
./services/syncthing.nix
./services/vintagestory.nix
./services/minecraft-server.nix
./sysconfig/desktop-environment.nix
./sysconfig/fonts.nix
./sysconfig/gaming.nix
./sysconfig/localization.nix
./sysconfig/nixos.nix
./sysconfig/user.nix
./sysconfig/ydotool.nix
];
# DO NOT CHANGE
system.stateVersion = "24.11";
}

View File

@ -1,17 +0,0 @@
{ pkgs, ... }: {
boot.kernelModules = [ "amdgpu" "kvm-amd" ];
hardware = {
amdgpu.amdvlk.enable = false;
graphics = {
enable = true;
enable32Bit = true;
};
};
environment.systemPackages = with pkgs; [
rocmPackages.rocm-smi
rocmPackages.rocminfo
];
environment.variables = {
AMD_VULKAN_ICD = "RADV";
};
}

View File

@ -1,12 +0,0 @@
{ ... }: {
# Configure audio
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
}

View File

@ -1,13 +0,0 @@
{ pkgs, sysVars, ... }: {
hardware.enableRedistributableFirmware = true;
hardware.cpu.amd.updateMicrocode = true;
boot = {
kernelPackages = pkgs.linuxKernel.packages."${sysVars.kernelPackage}";
initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" ];
kernelModules = [ "amdgpu" "kvm-amd" ];
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
};
}

View File

@ -1,19 +0,0 @@
{ ... }: {
fileSystems."/" = {
device = "/dev/disk/by-uuid/e29ec340-6231-4afe-91a8-aaa2da613282";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/CC5A-CDFE";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/mnt/fedora" = {
device = "/dev/disk/by-uuid/15454185-1268-4559-a074-bb154dc20a93";
fsType = "btrfs";
};
swapDevices = [ { device = "/dev/disk/by-uuid/73e8e737-1c5c-4ead-80c6-e616be538145"; } ];
}

View File

@ -1,11 +0,0 @@
{ pkgs, lib, ... }: {
networking = {
hostName = "joey-desktop-nixos";
networkmanager.enable = true;
useDHCP = lib.mkDefault true;
};
# Configure system packages
environment.systemPackages = with pkgs; [
networkmanagerapplet
];
}

View File

@ -1,26 +0,0 @@
{ pkgs, ... }: {
# Configure mouse and touchpad
services.libinput = {
enable = true;
mouse.naturalScrolling = true;
touchpad.naturalScrolling = true;
};
services.goxlr-utility.enable = true;
hardware.wooting.enable = true;
services.hardware.openrgb.enable = false;
users.users."joey".extraGroups = [ "input" ];
hardware.xpadneo.enable = true;
hardware.openrazer = {
enable = true;
users = [ "joey" ];
batteryNotifier = {
enable = true;
frequency = 600;
percentage = 40;
};
};
environment.systemPackages = with pkgs; [
razergenie
gamepad-tool
];
}

View File

@ -1,77 +0,0 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [ cifs-utils ];
fileSystems =
let
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
permissions_opts = "credentials=/etc/nixos/smb-secrets,uid=1000,gid=1000";
in {
# Pool Media on Paladin
"/mnt/smb/paladin/Media/AV" = {
device = "//192.168.1.12/AV";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
"/mnt/smb/paladin/Media/3DPrinting" = {
device = "//192.168.1.12/3DPrinting";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
"/mnt/smb/paladin/Media/Movies" = {
device = "//192.168.1.12/Movies";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
"/mnt/smb/paladin/Media/Music" = {
device = "//192.168.1.12/Music";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
"/mnt/smb/paladin/Media/Shows" = {
device = "//192.168.1.12/Shows";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
"/mnt/smb/paladin/Media/Text" = {
device = "//192.168.1.12/Text";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
# Pool Tank on Paladin
"/mnt/smb/paladin/Tank/AppData" = {
device = "//192.168.1.12/AppData";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
"/mnt/smb/paladin/Tank/Archive" = {
device = "//192.168.1.12/Archive";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
"/mnt/smb/paladin/Tank/HomeVideos" = {
device = "//192.168.1.12/HomeVideos";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
"/mnt/smb/paladin/Tank/Images" = {
device = "//192.168.1.12/Images";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
"/mnt/smb/paladin/Tank/Recordings" = {
device = "//192.168.1.12/Recordings";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
"/mnt/smb/paladin/Tank/Software" = {
device = "//192.168.1.12/Software";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
"/mnt/smb/paladin/Tank/Torrenting" = {
device = "//192.168.1.12/Torrenting";
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
};
}

View File

@ -1,7 +0,0 @@
{ ... }: {
services.flatpak = {
enable = true;
uninstallUnmanaged = true;
remotes = [ { name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; } ];
};
}

View File

@ -1,5 +0,0 @@
{ pkgs, ... }: {
environment.systemPackages = [ pkgs.minecraft-server ];
networking.firewall.allowedTCPPorts = [ 25565 ];
networking.firewall.allowedUDPPorts = [ 25565 ];
}

View File

@ -1,14 +0,0 @@
{ pkgs, ... }: {
services.ollama = {
enable = true;
port = 11434;
host = "127.0.0.1";
home = "/var/lib/ollama";
group = "users";
models = "/var/lib/ollama/models";
loadModels = [ "llama3.2:3b" "llama3.1:8b" "codellama:13b" ];
package = pkgs.ollama-rocm;
rocmOverrideGfx = "11.0.0";
acceleration = "rocm";
};
}

View File

@ -1,4 +0,0 @@
{ ... }: {
# Enable printing service
services.printing.enable = true;
}

View File

@ -1,8 +0,0 @@
{ ... }: {
# Enable SSH server with exclusively key-based auth
services.openssh = {
enable = true;
settings.PasswordAuthentication = false;
settings.KbdInteractiveAuthentication = false;
};
}

View File

@ -1,43 +0,0 @@
{ vars, ... }: {
networking.firewall = {
allowedTCPPorts = [ 8384 22000 ];
allowedUDPPorts = [ 22000 21027 ];
};
services.syncthing = {
enable = false;
group = "users";
user = "${vars.user.username}";
configDir = /home/${vars.user.username}/.config/syncthing;
overrideDevices = false;
overrideFolders = false;
settings = {
devices = {
#"server" = { id = ""; };
"phone" = { id = "JJNURBH-YHHCPGJ-6I6YKE4-4CLD35N-LWA3JAV-KUPNYBO-I7Q4ZHY-FR3RNAU"; };
#"laptop" = { id = ""; };
};
folders = {
"Documents" = {
path = "~/Documents/";
devices = [ "phone" ];
};
"Pictures" = {
path = "~/Pictures/";
devices = [ "phone" ];
};
"Videos" = {
path = "~/Videos/";
devices = [ "phone" ];
};
"Emulators" = {
path = "~/Emulators/";
devices = [ "phone" ];
};
"Backups" = {
path = "~/Backups/";
devices = [];
};
};
};
};
}

View File

@ -1,6 +0,0 @@
{ ... }: {
networking.firewall = {
allowedTCPPorts = [ 42420 ];
allowedUDPPorts = [ 42420 ];
};
}

View File

@ -1,60 +0,0 @@
{ pkgs, ... }: {
programs.kdeconnect.enable = true;
environment.systemPackages = with pkgs; [ kdePackages.kcalc wl-color-picker ];
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
kate
okular
discover
];
# Disable systemd's getty and autovt on tty1
systemd.services = {
"getty@tty1".enable = false;
"autovt@tty1".enable = false;
};
# Configure displayManager
services.displayManager = {
enable = true;
defaultSession = "plasma";
autoLogin.enable = true;
autoLogin.user = "joey";
sddm = {
enable = true;
autoNumlock = true;
wayland.enable = true;
wayland.compositor = "kwin";
};
};
# Configure desktopManager
services.desktopManager = {
plasma6.enable = true;
};
# Configure X11 server
services.xserver = {
enable = true;
videoDrivers = [ "amdgpu" ];
excludePackages = [ pkgs.xterm ];
xkb = {
layout = "us";
variant = "";
};
};
# Configure xwayland
programs.xwayland = {
enable = true;
};
# Configure XDG
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
};
}

View File

@ -1,10 +0,0 @@
{ pkgs, ... }: {
fonts.packages = with pkgs; [
font-awesome
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
powerline-symbols
(pkgs.nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];})
];
}

View File

@ -1,17 +0,0 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
lutris-unwrapped
protonup-ng
vulkan-tools
mangohud
];
programs.steam.enable = true;
programs.gamescope = {
enable = true;
capSysNice = false;
};
programs.gamemode = {
enable = true;
enableRenice = true;
};
}

View File

@ -1,60 +0,0 @@
{ vars, pkgs, ... }: {
environment.systemPackages = with pkgs; [
brightnessctl
mako libnotify
swww
wofi
polkit-kde-agent
];
programs.hyprland = {
enable = true;
package = pkgs.hyprland;
portalPackage = pkgs.xdg-desktop-portal-hyprland;
};
systemd.services = {
"getty@tty1".enable = false;
"autovt@tty1".enable = false;
};
# Configure displayManager
services.displayManager = {
enable = true;
autoLogin = {
enable = true;
user = "${vars.user.username}";
};
sddm = {
enable = true;
autoNumlock = true;
wayland.enable = true;
};
};
# Configure X11 server
services.xserver = {
enable = true;
videoDrivers = [ "amdgpu" ];
excludePackages = [ pkgs.xterm ];
xkb = {
layout = "us";
variant = "";
};
};
# Configure xwayland
programs.xwayland = {
enable = true;
};
# Configure XDG
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
};
}

View File

@ -1,15 +0,0 @@
{ ... }: {
time.timeZone = "America/Los_Angeles";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
}

View File

@ -1,21 +0,0 @@
{ pkgs, lib, inputs, ... }: {
nixpkgs.config.allowUnfree = true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
programs.nix-ld = {
enable = true;
libraries = with pkgs; [ ];
};
nix.settings.experimental-features = [ "nix-command" "flakes" ];
home-manager.backupFileExtension = "backup";
system.autoUpgrade = {
enable = true;
flake = inputs.self.outPath;
flags = [
"--update-input"
"nixpkgs"
"-L"
];
dates = "04:00";
randomizedDelaySec = "30min";
};
}

View File

@ -1,60 +0,0 @@
{ pkgs, ... }: {
programs.kdeconnect.enable = true;
environment.systemPackages = with pkgs; [ kdePackages.kcalc wl-color-picker ];
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
kate
okular
discover
];
# Disable systemd's getty and autovt on tty1
systemd.services = {
"getty@tty1".enable = false;
"autovt@tty1".enable = false;
};
# Configure displayManager
services.displayManager = {
enable = true;
defaultSession = "plasma";
autoLogin.enable = true;
autoLogin.user = "joey";
sddm = {
enable = true;
autoNumlock = true;
wayland.enable = true;
wayland.compositor = "kwin";
};
};
# Configure desktopManager
services.desktopManager = {
plasma6.enable = true;
};
# Configure X11 server
services.xserver = {
enable = true;
videoDrivers = [ "amdgpu" ];
excludePackages = [ pkgs.xterm ];
xkb = {
layout = "us";
variant = "";
};
};
# Configure xwayland
programs.xwayland = {
enable = true;
};
# Configure XDG
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
};
}

View File

@ -1,30 +0,0 @@
{ pkgs, ... }: {
# Enable passwordless sudo
security.sudo = {
enable = true;
extraRules = [{
commands = [
{
command = "ALL";
options = [ "NOPASSWD" ];
}
];
groups = [ "wheel" ];
}];
};
# Configure user
programs.zsh.enable = true;
users.users.joey = {
isNormalUser = true;
shell = pkgs.zsh;
description = "joey";
extraGroups = [ "networkmanager" "wheel" "input" ];
openssh.authorizedKeys.keys = let
authorizedKeys = pkgs.fetchurl {
url = "https://github.com/Jafner.keys";
sha256 = "1i3Vs6mPPl965g3sRmbXGzx6zQBs5geBCgNx2zfpjF4=";
};
in pkgs.lib.splitString "\n" (builtins.readFile authorizedKeys);
};
}

View File

@ -1,6 +0,0 @@
{ ... }: {
programs.ydotool = {
enable = true;
group = "wheel";
};
}