Compare commits
15 Commits
0b9c84bdcb
...
d0c3c751ed
Author | SHA1 | Date |
---|---|---|
|
d0c3c751ed | 1 month ago |
|
8d6aa6f064 | 1 month ago |
|
01a8d23d90 | 1 month ago |
|
5675046353 | 1 month ago |
|
a8e5b6f86e | 1 month ago |
|
f5a608cd73 | 3 months ago |
|
6af1cb6aea | 3 months ago |
|
7138039239 | 3 months ago |
|
1dc093de59 | 3 months ago |
|
012849128c | 3 months ago |
|
40de63cb42 | 3 months ago |
|
b40d56b6cb | 3 months ago |
|
62458ff456 | 3 months ago |
|
9fa099858c | 3 months ago |
|
1305c4e3f7 | 3 months ago |
@ -0,0 +1,31 @@
|
|||||||
|
[bell]
|
||||||
|
animation = "EaseOutExpo"
|
||||||
|
color = "#666666"
|
||||||
|
duration = 30
|
||||||
|
|
||||||
|
[colors.primary]
|
||||||
|
background = "#1d1f21"
|
||||||
|
foreground = "#c5c8c6"
|
||||||
|
|
||||||
|
[font]
|
||||||
|
size = 7.0
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
action = "Paste"
|
||||||
|
key = "V"
|
||||||
|
mode = "~Vi"
|
||||||
|
mods = "Control|Shift"
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
action = "Copy"
|
||||||
|
key = "C"
|
||||||
|
mods = "Control|Shift"
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
action = "SearchForward"
|
||||||
|
key = "F"
|
||||||
|
mode = "~Search"
|
||||||
|
mods = "Control|Shift"
|
||||||
|
|
||||||
|
[window]
|
||||||
|
opacity = 0.8
|
@ -0,0 +1,20 @@
|
|||||||
|
[bell]
|
||||||
|
animation = "EaseOutExpo"
|
||||||
|
color = "#333333"
|
||||||
|
duration = 100
|
||||||
|
|
||||||
|
[colors.primary]
|
||||||
|
background = "#1d1f21"
|
||||||
|
foreground = "#c5c8c6"
|
||||||
|
|
||||||
|
[font]
|
||||||
|
size = 9.0
|
||||||
|
|
||||||
|
[window]
|
||||||
|
decorations = "none"
|
||||||
|
opacity = 0.75
|
||||||
|
startup_mode = "Maximized"
|
||||||
|
|
||||||
|
[window.position]
|
||||||
|
x = 0
|
||||||
|
y = 0
|
@ -0,0 +1,258 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright (C) 2011 by Wayne Walker <wwalker@solid-constructs.com>
|
||||||
|
#
|
||||||
|
# Released under one of the versions of the MIT License.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2011 by Wayne Walker <wwalker@solid-constructs.com>
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
# THE SOFTWARE.
|
||||||
|
|
||||||
|
sfa_init() {
|
||||||
|
_ssh_agent_sockets=()
|
||||||
|
_live_agent_list=()
|
||||||
|
_live_agent_sock_list=()
|
||||||
|
_sorted_live_agent_list=()
|
||||||
|
|
||||||
|
# Set $sfa_path array to the dirs to search for ssh-agent sockets
|
||||||
|
sfa_set_path
|
||||||
|
|
||||||
|
if ! command -v 'timeout' &>/dev/null; then
|
||||||
|
printf "ssh-find-agent.sh: 'timeout' command could not be found.\n"
|
||||||
|
printf " Please install 'coreutils' via your system's package manager.\n"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Allow users to override the default path to search for ssh-agent sockets
|
||||||
|
# The first of the variable found is used to set the path:
|
||||||
|
# SSH_FIND_AGENT_PATH (colon separated dir list)
|
||||||
|
# _TMPDIR_OVERRIDE for legacy compatibility
|
||||||
|
# TMPDIR (if set) (plus /tmp due to ssh bug)
|
||||||
|
sfa_set_path() {
|
||||||
|
sfa_path=()
|
||||||
|
if [[ -n "$SSH_FIND_AGENT_PATH" ]]; then
|
||||||
|
IFS=':' read -r -a sfa_path <<<"$SSH_FIND_AGENT_PATH"
|
||||||
|
else
|
||||||
|
# Maintain backwards compatibility with the old _TMPDIR_OVERRIDE variable
|
||||||
|
if [[ -n "$_TMPDIR_OVERRIDE" ]]; then
|
||||||
|
sfa_path=("$_TMPDIR_OVERRIDE")
|
||||||
|
else
|
||||||
|
if [[ -n "$TMPDIR" ]]; then
|
||||||
|
sfa_path=("/tmp" "$TMPDIR")
|
||||||
|
else
|
||||||
|
sfa_path=("/tmp")
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
sfa_err() {
|
||||||
|
# shellcheck disable=SC2059
|
||||||
|
printf "$@" 1>&2
|
||||||
|
}
|
||||||
|
|
||||||
|
sfa_debug() {
|
||||||
|
if ((_DEBUG > 0)); then
|
||||||
|
sfa_err "$@" 1>&2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
sfa_find_all_agent_sockets() {
|
||||||
|
_ssh_agent_sockets=$(
|
||||||
|
find "${sfa_path[@]}" -maxdepth 2 -type s -name agent.\* 2>/dev/null | grep '/ssh-.*/agent.*'
|
||||||
|
find "${sfa_path[@]}" -maxdepth 2 -type s -name S.gpg-agent.ssh 2>/dev/null | grep '/gpg-.*/S.gpg-agent.ssh'
|
||||||
|
find "${sfa_path[@]}" -maxdepth 2 -type s -name ssh 2>/dev/null | grep '/keyring-.*/ssh$'
|
||||||
|
find "${sfa_path[@]}" -maxdepth 2 -type s -regex '.*/ssh-.*/agent..*$' 2>/dev/null
|
||||||
|
)
|
||||||
|
sfa_debug "$_ssh_agent_sockets"
|
||||||
|
}
|
||||||
|
|
||||||
|
sfa_test_agent_socket() {
|
||||||
|
local socket=$1
|
||||||
|
local output
|
||||||
|
output=$(SSH_AUTH_SOCK=$socket timeout 0.4 ssh-add -l 2>&1)
|
||||||
|
result=$?
|
||||||
|
|
||||||
|
[[ "$output" == "error fetching identities: communication with agent failed" ]] && result=2
|
||||||
|
sfa_debug $result
|
||||||
|
|
||||||
|
case $result in
|
||||||
|
0 | 1 | 141)
|
||||||
|
# contactible and has keys loaded
|
||||||
|
{
|
||||||
|
OIFS="$IFS"
|
||||||
|
IFS=$'\n'
|
||||||
|
# shellcheck disable=SC2207
|
||||||
|
_keys=($(SSH_AUTH_SOCK=$socket ssh-add -l 2>/dev/null))
|
||||||
|
IFS="$OIFS"
|
||||||
|
}
|
||||||
|
_live_agent_list+=("${#_keys[@]}:$socket")
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
2 | 124)
|
||||||
|
# socket is dead, delete it
|
||||||
|
sfa_err 'socket (%s) is dead, removing it.\n' "$socket"
|
||||||
|
sfa_debug "rm -rf ${socket%/*}"
|
||||||
|
rm -rf "${socket%/*}"
|
||||||
|
;;
|
||||||
|
125 | 126 | 127)
|
||||||
|
sfa_err 'timeout returned <%s>\n' "$result" 1>&2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
sfa_err 'Unknown failure timeout returned <%s>\n' "$result" 1>&2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $result in
|
||||||
|
0 | 1)
|
||||||
|
_live_agent_list+=("$_key_count:$socket")
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
sfa_verify_sockets() {
|
||||||
|
for i in $_ssh_agent_sockets; do
|
||||||
|
sfa_test_agent_socket "$i"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
sfa_fingerprints() {
|
||||||
|
local file="$1"
|
||||||
|
while read -r l; do
|
||||||
|
[[ -n "$l" && ${l##\#} = "$l" ]] && ssh-keygen -l -f /dev/stdin <<<"$l"
|
||||||
|
done <"$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
sfa_print_choose_menu() {
|
||||||
|
# find all the apparent socket files
|
||||||
|
# the sockets go into $_ssh_agent_sockets[]
|
||||||
|
sfa_find_all_agent_sockets
|
||||||
|
|
||||||
|
# verify each socket, discarding if dead
|
||||||
|
# the live sockets go into $_live_agent_list[]
|
||||||
|
sfa_verify_sockets
|
||||||
|
sfa_debug '<%s>\n' "${_live_agent_list[@]}"
|
||||||
|
|
||||||
|
# shellcheck disable=SC2207
|
||||||
|
IFS=$'\n' _sorted_live_agent_list=($(sort -u <<<"${_live_agent_list[*]}"))
|
||||||
|
unset IFS
|
||||||
|
|
||||||
|
sfa_debug "SORTED:\n"
|
||||||
|
sfa_debug ' <%s>\n' "${_sorted_live_agent_list[@]}"
|
||||||
|
|
||||||
|
local i=0
|
||||||
|
local sock
|
||||||
|
|
||||||
|
for agent in "${_sorted_live_agent_list[@]}"; do
|
||||||
|
i=$((i + 1))
|
||||||
|
sock=${agent/*:/}
|
||||||
|
if [[ "$1" = "-i" ]]; then
|
||||||
|
_live_agent_sock_list[$i]=$sock
|
||||||
|
|
||||||
|
printf '#%i)\n' "$i"
|
||||||
|
printf ' export SSH_AUTH_SOCK=%s\n' "$sock"
|
||||||
|
# Get all the forwarded keys for this agent, parse them and print them
|
||||||
|
SSH_AUTH_SOCK=$sock ssh-add -l 2>&1 |
|
||||||
|
grep -v 'error fetching identities for protocol 1: agent refused operation' |
|
||||||
|
while IFS= read -r key; do
|
||||||
|
parts=("$key")
|
||||||
|
key_size="${parts[0]}"
|
||||||
|
fingerprint="${parts[1]}"
|
||||||
|
remote_name="${parts[2]}"
|
||||||
|
key_type="${parts[3]}"
|
||||||
|
printf ' %s %s\t%s\t%s\n' "$key_size" "$key_type" "$remote_name" "$fingerprint"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
printf '%s\n' "$sock"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
sfa_set_ssh_agent_socket() {
|
||||||
|
case $1 in
|
||||||
|
-c | --choose)
|
||||||
|
sfa_print_choose_menu -i
|
||||||
|
|
||||||
|
((0 == ${#_live_agent_list[@]})) && {
|
||||||
|
sfa_err 'No agents found.\n'
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
read -p "Choose (1-${#_live_agent_sock_list[@]})? " -r choice
|
||||||
|
if [ "$choice" -eq "$choice" ]; then
|
||||||
|
[[ -z "${_live_agent_sock_list[$choice]}" ]] && {
|
||||||
|
sfa_err 'Invalid choice.\n'
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
printf 'Setting export SSH_AUTH_SOCK=%s\n' "${_live_agent_sock_list[$choice]}"
|
||||||
|
export SSH_AUTH_SOCK=${_live_agent_sock_list[$choice]}
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
-a | --auto)
|
||||||
|
# Choose the last one, as they are sorted numerically by how many keys they have
|
||||||
|
sock=$(sfa_print_choose_menu | tail -n -1)
|
||||||
|
[[ -z "$sock" ]] && return 1
|
||||||
|
sfa_debug 'export SSH_AUTH_SOCK=%s\n' "$sock"
|
||||||
|
export SSH_AUTH_SOCK=$sock
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
sfa_usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# set agent pid - this is unreliable as the pid may be of the child rather than the agent
|
||||||
|
if [ -n "$SSH_AUTH_SOCK" ]; then
|
||||||
|
export SSH_AGENT_PID=$(($(basename "$SSH_AUTH_SOCK" | cut -d. -f2) + 1))
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
sfa_usage() {
|
||||||
|
sfa_err 'ssh-find-agent <[-c|--choose|-a|--auto|-h|--help]>\n'
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Renamed for https://github.com/wwalker/ssh-find-agent/issues/12
|
||||||
|
ssh_find_agent() {
|
||||||
|
sfa_init
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
-c | --choose | -a | --auto)
|
||||||
|
sfa_set_ssh_agent_socket "$1"
|
||||||
|
return $?
|
||||||
|
;;
|
||||||
|
-l | --list)
|
||||||
|
sfa_print_choose_menu -i
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
sfa_usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Original function name is still supported.
|
||||||
|
# https://github.com/wwalker/ssh-find-agent/issues/12 points out that I
|
||||||
|
# should use ssh_find_agent() for best compatibility.
|
||||||
|
ssh-find-agent() {
|
||||||
|
ssh_find_agent "$@"
|
||||||
|
}
|
@ -0,0 +1,73 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751810233,
|
||||||
|
"narHash": "sha256-kllkNbIqQi3VplgTMeGzuh1t8Gk8TauvkTRt93Km+tQ=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "9b0873b46c9f9e4b7aa01eb634952c206af53068",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-25.05",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751582995,
|
||||||
|
"narHash": "sha256-u7ubvtxdTnFPpV27AHpgoKn7qHuE7sgWgza/1oj5nzA=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "7a732ed41ca0dd64b4b71b563ab9805a80a7d693",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plasma-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": [
|
||||||
|
"home-manager"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748196248,
|
||||||
|
"narHash": "sha256-1iHjsH6/5UOerJEoZKE+Gx1BgAoge/YcnUsOA4wQ/BU=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "plasma-manager",
|
||||||
|
"rev": "b7697abe89967839b273a863a3805345ea54ab56",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "plasma-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"plasma-manager": "plasma-manager"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
{
|
||||||
|
description = "Felix' first NixOS System Flake";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/release-25.05";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
plasma-manager = {
|
||||||
|
url = "github:nix-community/plasma-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.home-manager.follows = "home-manager";
|
||||||
|
};
|
||||||
|
# sopswarden.url = "github:pfassina/sopswarden";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, home-manager, plasma-manager, ... }@inputs: {
|
||||||
|
nixosConfigurations = {
|
||||||
|
Felix-Desktop = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
# sopswarden.nixosModules.default{
|
||||||
|
# services.sopswarden = {
|
||||||
|
# enable = true;
|
||||||
|
# secrets = {
|
||||||
|
# ssh-key-priv = "Personal SSH-Key (Priv)";
|
||||||
|
# ssh-key-pub = "Personal SSH-Key (Pub)";
|
||||||
|
# age-key = "AGE-Key";
|
||||||
|
# };
|
||||||
|
# ageKeyFile = "./key.txt";
|
||||||
|
# };
|
||||||
|
# }
|
||||||
|
./configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager {
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users.felix = import ./home.nix;
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
plasma-manager.homeManagerModules.plasma-manager
|
||||||
|
# sopswarden.homeManagerModules.sopswarden
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
Felix-Thinclient = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
./configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager {
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users.felix = import ./home.nix;
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
plasma-manager.homeManagerModules.plasma-manager
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,100 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
home.username = "felix";
|
||||||
|
home.homeDirectory = "/home/felix";
|
||||||
|
|
||||||
|
imports = [ ./plasma.nix ];
|
||||||
|
|
||||||
|
home.file.".config/ssh-find-agent.sh".source = ./.config/ssh-find-agent.sh;
|
||||||
|
|
||||||
|
home.file.".config/alacritty" = {
|
||||||
|
source = ./.config/alacritty;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# home.file.".config/i3/scripts" = {
|
||||||
|
# source = ./scripts;
|
||||||
|
# recursive = true; # link recursively
|
||||||
|
# executable = true; # make all files executable
|
||||||
|
# };
|
||||||
|
|
||||||
|
|
||||||
|
# encode the file content in nix configuration file directly
|
||||||
|
# home.file.".xxx".text = ''
|
||||||
|
# xxx
|
||||||
|
# '';
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
# nix related
|
||||||
|
nix-output-monitor
|
||||||
|
bitwarden-desktop
|
||||||
|
] ++ (with pkgs.kdePackages; [
|
||||||
|
kcalc
|
||||||
|
kmail
|
||||||
|
partitionmanager
|
||||||
|
krita
|
||||||
|
]);
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "Felix Bruns";
|
||||||
|
userEmail = "felix@bruns.hamburg";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.vscode = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# starship - an customizable prompt for any shell
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
# custom settings
|
||||||
|
settings = {
|
||||||
|
add_newline = false;
|
||||||
|
aws.disabled = true;
|
||||||
|
gcloud.disabled = true;
|
||||||
|
line_break.disabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.alacritty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
env.TERM = "xterm-256color";
|
||||||
|
font = {
|
||||||
|
size = 12;
|
||||||
|
draw_bold_text_with_bright_colors = true;
|
||||||
|
};
|
||||||
|
scrolling.multiplier = 5;
|
||||||
|
selection.save_to_clipboard = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
shellAliases = {
|
||||||
|
ls = "exa -lh";
|
||||||
|
ll = "ls -a";
|
||||||
|
update = "sudo nixos-rebuild switch --impure";
|
||||||
|
};
|
||||||
|
initContent = lib.mkOrder 1500 ''
|
||||||
|
# source "~/.config/ssh-find-agend.sh"
|
||||||
|
emulate ksh -c "source ~/.config/ssh-find-agent.sh"
|
||||||
|
ssh-add -l >&/dev/null || ssh-find-agent -a || eval $(ssh-agent) > /dev/null
|
||||||
|
'';
|
||||||
|
|
||||||
|
history.size = 10000;
|
||||||
|
oh-my-zsh = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [ "git" ];
|
||||||
|
theme = "robbyrussell";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.stateVersion = "25.05";
|
||||||
|
}
|
@ -0,0 +1,143 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.plasma = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
panels = [
|
||||||
|
{
|
||||||
|
location = "left";
|
||||||
|
alignment = "center";
|
||||||
|
floating = true;
|
||||||
|
hiding = "autohide";
|
||||||
|
height = 32;
|
||||||
|
lengthMode = "fit";
|
||||||
|
opacity = "translucent";
|
||||||
|
offset = 50;
|
||||||
|
widgets = [
|
||||||
|
"org.kde.plasma.kickoff"
|
||||||
|
{
|
||||||
|
name = "org.kde.plasma.icontasks";
|
||||||
|
config = {
|
||||||
|
General = {
|
||||||
|
launchers = [
|
||||||
|
preferred://browser
|
||||||
|
preferred://filemanager
|
||||||
|
applications:Alacritty.desktop
|
||||||
|
applications:code.desktop
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
"org.kde.plasma.pager"
|
||||||
|
"org.kde.plasma.systemtray"
|
||||||
|
"org.kde.plasma.digitalclock"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
workspace.lookAndFeel = "org.kde.breezedark.desktop";
|
||||||
|
|
||||||
|
desktop = {
|
||||||
|
widgets = [
|
||||||
|
{
|
||||||
|
name = "org.kde.plasma.digitalclock";
|
||||||
|
config = {
|
||||||
|
Appearance = {
|
||||||
|
showDate = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
position = {
|
||||||
|
horizontal = 51;
|
||||||
|
vertical = 100;
|
||||||
|
};
|
||||||
|
size = {
|
||||||
|
height = 250;
|
||||||
|
width = 250;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
# I can't use a non-default widget
|
||||||
|
# {
|
||||||
|
# name = "com.github.prayag2.modernclock";
|
||||||
|
# config = {
|
||||||
|
# Appearance = {
|
||||||
|
# date_font_color="222,217,190";
|
||||||
|
# date_font_size=32;
|
||||||
|
# day_font_color="222,217,190";
|
||||||
|
# day_font_size=94;
|
||||||
|
# time_font_color="222,217,190";
|
||||||
|
# time_font_size=32;
|
||||||
|
# use_24_hour_format=true;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# position = {
|
||||||
|
# horizontal = 51;
|
||||||
|
# vertical = 100;
|
||||||
|
# };
|
||||||
|
# size = {
|
||||||
|
# height = 250;
|
||||||
|
# width = 250;
|
||||||
|
# };
|
||||||
|
# }
|
||||||
|
{
|
||||||
|
name = "org.kde.plasma.comic";
|
||||||
|
config = {
|
||||||
|
UserBackgroundHints = "ShadowBackground";
|
||||||
|
arrowsOnHover = true;
|
||||||
|
checkNewComicStripsIntervall = 30;
|
||||||
|
tabIdentifier="xkcd";
|
||||||
|
};
|
||||||
|
position = {
|
||||||
|
horizontal = 51;
|
||||||
|
vertical = 500;
|
||||||
|
};
|
||||||
|
size = {
|
||||||
|
height = 250;
|
||||||
|
width = 250;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# fonts.fixedWidth = {
|
||||||
|
# family = "Fira Mono";
|
||||||
|
# pointSize = 11;
|
||||||
|
# };
|
||||||
|
|
||||||
|
powerdevil = let settings = {
|
||||||
|
autoSuspend.action = "sleep";
|
||||||
|
autoSuspend.idleTimeout = 600;
|
||||||
|
dimDisplay.enable = true;
|
||||||
|
dimDisplay.idleTimeout = 300;
|
||||||
|
powerButtonAction = "shutDown";
|
||||||
|
whenLaptopLidClosed = "sleep";
|
||||||
|
}; in {
|
||||||
|
AC = settings;
|
||||||
|
battery = settings;
|
||||||
|
};
|
||||||
|
|
||||||
|
hotkeys.commands = {
|
||||||
|
"alacritty-full" = {
|
||||||
|
name = "Launch Alacritty Fullscreen";
|
||||||
|
keys = ["Meta+Backspace"];
|
||||||
|
command = "alacritty --config-file /home/felix/.config/alacritty/alacritty_full.toml";
|
||||||
|
comment = "start alacritty in full screen borderless mode";
|
||||||
|
};
|
||||||
|
"launch-konsole" = {
|
||||||
|
name = "Konsole";
|
||||||
|
keys = ["Meta+K"];
|
||||||
|
command = "konsole";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.okular.enable = true;
|
||||||
|
|
||||||
|
programs.plasma.input.keyboard.layouts = [
|
||||||
|
{
|
||||||
|
layout = "de";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.plasma.workspace.wallpaper = ./wallpaper.jpg;
|
||||||
|
|
||||||
|
}
|
After Width: | Height: | Size: 66 KiB |
Loading…
Reference in new issue