Delete now-unused dotfiles/desktop/
directory.
This commit is contained in:
parent
71deb2f3a7
commit
739062f5ad
@ -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
|
||||
'';
|
||||
};
|
||||
}
|
@ -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
|
||||
];
|
||||
}
|
@ -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"
|
||||
}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ vesktop ];
|
||||
#services.flatpak.packages = [ "dev.vencord.Vesktop/x86_64/stable" ];
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
protonmail-desktop
|
||||
];
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
dolphin-emu
|
||||
mgba
|
||||
desmume
|
||||
];
|
||||
}
|
@ -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
|
||||
];
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
services.flatpak.packages = [
|
||||
"org.prismlauncher.PrismLauncher/x86_64/stable"
|
||||
];
|
||||
home.packages = [
|
||||
pkgs.prismlauncher
|
||||
];
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
vlc
|
||||
ffmpeg-full
|
||||
];
|
||||
services.flatpak.packages = [
|
||||
"no.mifi.losslesscut/x86_64/stable"
|
||||
];
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
obs-vaapi
|
||||
obs-vkcapture
|
||||
input-overlay
|
||||
wlrobs
|
||||
];
|
||||
};
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
obsidian
|
||||
];
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = [
|
||||
pkgs.libreoffice-qt6
|
||||
];
|
||||
}
|
@ -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=";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
};
|
||||
}
|
@ -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''; };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{ ... }: {
|
||||
services.flatpak.packages = [
|
||||
"at.vintagestory.VintageStory/x86_64/stable"
|
||||
];
|
||||
# home.packages = [
|
||||
# pkgs.vintagestory
|
||||
# ];
|
||||
}
|
@ -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";
|
||||
};
|
||||
};
|
||||
}
|
@ -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"; };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -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 |
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
@ -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";
|
||||
# };
|
||||
# };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
# };
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
settings = {
|
||||
show = "drun";
|
||||
width = "40%";
|
||||
height = "20%";
|
||||
allow_markup = true;
|
||||
};
|
||||
};
|
||||
}
|
@ -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";
|
||||
};
|
||||
}
|
@ -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
|
@ -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 |
@ -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' ' '
|
@ -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"
|
||||
];
|
||||
}
|
@ -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"
|
||||
'';
|
||||
};
|
||||
}
|
@ -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
|
||||
}
|
||||
'';
|
||||
} )
|
||||
];
|
||||
}
|
@ -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
|
||||
'';
|
||||
} )
|
||||
];
|
||||
}
|
@ -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()
|
||||
'' )
|
||||
];
|
||||
}
|
@ -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 ];
|
||||
}
|
@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
kdePackages.kdeconnect-kde
|
||||
];
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ nextcloud-client ];
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
protonmail-bridge-gui
|
||||
];
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{ ... }: {
|
||||
services.syncthing = {
|
||||
enable = false;
|
||||
tray = true;
|
||||
};
|
||||
}
|
@ -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";
|
||||
}
|
@ -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";
|
||||
};
|
||||
}
|
@ -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;
|
||||
};
|
||||
}
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
@ -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"; } ];
|
||||
}
|
@ -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
|
||||
];
|
||||
}
|
@ -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
|
||||
];
|
||||
}
|
@ -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}"];
|
||||
};
|
||||
};
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
{ ... }: {
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
remotes = [ { name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; } ];
|
||||
};
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
environment.systemPackages = [ pkgs.minecraft-server ];
|
||||
networking.firewall.allowedTCPPorts = [ 25565 ];
|
||||
networking.firewall.allowedUDPPorts = [ 25565 ];
|
||||
}
|
@ -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";
|
||||
};
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{ ... }: {
|
||||
# Enable printing service
|
||||
services.printing.enable = true;
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{ ... }: {
|
||||
# Enable SSH server with exclusively key-based auth
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings.PasswordAuthentication = false;
|
||||
settings.KbdInteractiveAuthentication = false;
|
||||
};
|
||||
}
|
@ -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 = [];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{ ... }: {
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [ 42420 ];
|
||||
allowedUDPPorts = [ 42420 ];
|
||||
};
|
||||
}
|
@ -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
|
||||
];
|
||||
};
|
||||
|
||||
}
|
@ -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"];})
|
||||
];
|
||||
}
|
@ -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;
|
||||
};
|
||||
}
|
@ -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
|
||||
];
|
||||
};
|
||||
|
||||
}
|
@ -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";
|
||||
};
|
||||
}
|
@ -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";
|
||||
};
|
||||
}
|
@ -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
|
||||
];
|
||||
};
|
||||
|
||||
}
|
@ -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);
|
||||
};
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{ ... }: {
|
||||
programs.ydotool = {
|
||||
enable = true;
|
||||
group = "wheel";
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user