Compare commits

..

No commits in common. "e5601e1a3c2c6b3b84739cc7bd6164a617914f5e" and "2b82277143ff61fa52272720c0a45a69ad613527" have entirely different histories.

5 changed files with 154 additions and 196 deletions

21
flake.lock generated
View file

@ -25,15 +25,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1792000010, "lastModified": 1790996401,
"narHash": "sha256-4jtkwQlReQdXsKJJfB9yT7nIf0TlwgZOk2XtxjUgDS8=", "narHash": "sha256-f+kOxEmOUnQazVAmGg0i8hzwgd1kX/geY+k/Dpheye8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "5a9d300bd619c03857521b50c8877a19dbad7078", "rev": "db7d5e2332710f5abb088f6b5de927d7f9511b35",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-26.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@ -45,11 +46,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1791711434, "lastModified": 1790499302,
"narHash": "sha256-LpIhxnuO0tYeZ4k7BbNMxsPs2zJpB4hWXO1jdhUuE7Q=", "narHash": "sha256-Gbf/U9ptJhQh0qnDnJ/+a8MAcq1HXunbArUTHR2wNYk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "9a2dd40780eeab8543aa97c59c26f11267025616", "rev": "161d7c91accd93034bb3c295224d9d895a778573",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -76,16 +77,16 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1791956154, "lastModified": 1790920529,
"narHash": "sha256-jBYGPi4udQ9uo4KQp9m2J0546nJVQitG15gvZSaVVAs=", "narHash": "sha256-nQyFkMR78WP6PiXKkDW2SjqzLf/spQqjRuxRGSbcV8k=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "55bfb4d7437bd4e09ab7cba58a43bd68eb310044", "rev": "774debe7a0d1b496e35677ad955a1011c6ff74f3",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixos-26.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }

View file

@ -2,10 +2,10 @@
description = "NixOs Config Flake"; description = "NixOs Config Flake";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager/release-26.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@ -44,8 +44,6 @@
environment.systemPackages = [ environment.systemPackages = [
claude-desktop-nix.packages.${pkgs.stdenv.hostPlatform.system}.default claude-desktop-nix.packages.${pkgs.stdenv.hostPlatform.system}.default
]; ];
programs.nix-index.package =
nix-index-database.packages.${pkgs.stdenv.hostPlatform.system}.nix-index-with-small-db;
}) })
]; ];
}; };

View file

@ -39,7 +39,7 @@ with lib;
hardware.uinput.enable = true; hardware.uinput.enable = true;
boot.kernelPackages = pkgs.linuxPackages_latest; # boot.kernelPackages = pkgs.linuxPackages_latest;
boot = { boot = {
extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ]; extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
@ -52,18 +52,18 @@ with lib;
]; ];
}; };
#boot.kernelPackages = pkgs.linuxPackagesFor ( boot.kernelPackages = pkgs.linuxPackagesFor (
# pkgs.linux_latest.override { pkgs.linux_latest.override {
# argsOverride = rec { argsOverride = rec {
# version = "7.0.6"; version = "7.0.6";
# modDirVersion = "7.0.6"; modDirVersion = "7.0.6";
# src = pkgs.fetchurl { src = pkgs.fetchurl {
# url = "mirror://kernel/linux/kernel/v7.x/linux-${version}.tar.xz"; url = "mirror://kernel/linux/kernel/v7.x/linux-${version}.tar.xz";
# sha256 = "08vm18wx6399phzgr3wz94yga3ab4fyca79445ygvbspm904996b"; sha256 = "08vm18wx6399phzgr3wz94yga3ab4fyca79445ygvbspm904996b";
# }; };
# }; };
# } }
#); );
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
@ -74,8 +74,10 @@ with lib;
networking.hostName = "fw"; # Define your hostname. networking.hostName = "fw"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.extraHosts = '' networking.extraHosts = ''
127.0.0.1 yt.be m.youtube.com youtube.com # 204.168.170.249 talk.timo.social
127.0.0.1 www.youtube.com # 204.168.170.249 turn.talk.timo.social
# 127.0.0.1 yt.be m.youtube.com youtube.com
# 127.0.0.1 www.youtube.com
''; '';
# Configure network proxy if necessary # Configure network proxy if necessary
@ -172,9 +174,6 @@ with lib;
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
virtualisation.virtualbox.host.enable = true;
users.extraGroups.vboxusers.members = [ "tsi" ];
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
virtualisation.docker = { virtualisation.docker = {
enable = true; enable = true;
@ -208,29 +207,12 @@ with lib;
extraConfig = '' extraConfig = ''
[main] [main]
leftcontrol = layer(lctrl) leftcontrol = layer(lctrl)
leftshift = layer(lshift)
rightshift = layer(lshift)
# Swapped layout
# leftalt = layer(lsuper)
# rightalt = layer(rsuper)
# leftmeta = layer(lalt)
# rightmeta = layer(altgr)
# Normal layout
leftalt = layer(lalt) leftalt = layer(lalt)
rightalt = layer(altgr) leftshift = layer(lshift)
leftmeta = layer(lsuper) leftmeta = layer(lsuper)
rightmeta = layer(rsuper) altgr = layer(rightalt)
capslock = layer(lctrl)
[lctrl:C] [lctrl:C]
j = enter
leftbrace = escape
[lalt:A] [lalt:A]
@ -238,13 +220,8 @@ with lib;
[lsuper:M] [lsuper:M]
[rsuper:M]
[altgr:G] [altgr:G]
[lctrl+lshift]
h = backspace
[lalt+lctrl] [lalt+lctrl]
h = left h = left
j = down j = down
@ -374,115 +351,112 @@ with lib;
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim
alacritty alacritty
android-tools
ansible
anydesk
arandr
ayugram-desktop
bat
bc
brave
brightnessctl
clamav
conntrack-tools
convmv
dash
dig
dive
dmenu
dnsmasq
exfat
expect
fastfetch
ffmpeg
file
fprintd
gcc
gdu
gh
glow
gnumake
gnupg
gron
guestfs-tools
htop
ijq
iperf3
jless
jq
kdotool
keepassxc keepassxc
ksh
libarchive
libreoffice
lynx
man-pages
man-pages-posix
mkvtoolnix-cli
moreutils
mosh
mpv
mupdf
neomutt
netbird-ui
netcat-openbsd
nextcloud-client nextcloud-client
nmap dmenu
nodejs_26 arandr
ntfsprogs-plus brave
obs-studio
openssh
openssl_4_0
openvpn
pangolin-cli
paprefs
patchelf
pavucontrol pavucontrol
pciutils
proton-vpn
psmisc
pstree
pulseaudio
pv
python3
ranger
rustdesk
scli
signal-cli
signal-cli
signal-desktop signal-desktop
simplex-chat-desktop simplex-chat-desktop
slack ayugram-desktop
dnsmasq
file
gnumake
nmap
usbutils
brightnessctl
pulseaudio
moreutils
spacer spacer
sshfs
sshpass
tcpdump
tmux
traceroute
trash-cli
tree
tt
usbutils
usbutils
v4l-utils
vagrant
vim
virtualenv
wget
winbox
wireguard-tools
wl-clipboard-rs
yash
ydiff
ydotool
yq
yt-dlp
yubioath-flutter yubioath-flutter
slack
mpv
netbird-ui
python3
dig
htop
gcc
wireguard-tools
gh
rustdesk
anydesk
jq
android-tools
gdu
gron
mkvtoolnix-cli
ydiff
wl-clipboard-rs
proton-vpn
iperf3
pv
libarchive
libreoffice
traceroute
pciutils
usbutils
bc
pstree
tmux
wget
gnupg
mosh
openvpn
clamav
conntrack-tools
kdotool
trash-cli
bat
psmisc
mupdf
signal-cli
exfat
fprintd
ranger
dive
openssl_4_0
man-pages
man-pages-posix
v4l-utils
ffmpeg
tcpdump
winbox
pangolin-cli
paprefs
expect
guestfs-tools
sshpass
nodejs_26
netcat-openbsd
convmv
ntfsprogs-plus
sshfs
yash
ksh
dash
glow
tt
obs-studio
ydotool
tree
fastfetch
yq
jless
ijq
lynx
virtualenv
openssh
scli
signal-cli
neomutt
patchelf
yt-dlp
]; ];
programs.ydotool.enable = true; programs.ydotool.enable = true;
documentation.dev.enable = true; documentation.dev.enable = true;
services.openssh = { services.openssh = {
@ -497,8 +471,6 @@ with lib;
}; };
}; };
programs.command-not-found.enable = true;
services.power-profiles-daemon.enable = true; services.power-profiles-daemon.enable = true;
environment.localBinInPath = true; environment.localBinInPath = true;

View file

@ -6,9 +6,9 @@
initExtra = '' initExtra = ''
[ "''${BASH_COMPLETION_VERSINFO-}" ] || unset -v BASH_COMPLETION_VERSINFO [ "''${BASH_COMPLETION_VERSINFO-}" ] || unset -v BASH_COMPLETION_VERSINFO
[ "$DISPLAY" ] && xset r rate 300 60 [ "$DISPLAY" ] && xset r rate 200 60
#-##################### user specific aliases and functions ###################### ##################### user specific aliases and functions ######################
if [ -d ~/.bashrc.d ]; then if [ -d ~/.bashrc.d ]; then
for rc in ~/.bashrc.d/*; do for rc in ~/.bashrc.d/*; do
bn=''${rc##*/} bn=''${rc##*/}
@ -19,7 +19,7 @@
fi fi
unset rc bn unset rc bn
#-########################### shell settings & options ########################### ########################### shell settings & options ###########################
set -E set -E
set -o pipefail set -o pipefail
@ -34,7 +34,7 @@
shopt -u histverify shopt -u histverify
_have bash_abbr && shopt -u expand_aliases _have bash_abbr && shopt -u expand_aliases
#-############################### shell variables ################################ ############################### shell variables ################################
FIGNORE='.o' FIGNORE='.o'
HISTCONTROL=ignoreboth:erasedups HISTCONTROL=ignoreboth:erasedups
HISTTIMEFORMAT='%y-%m-%d %H:%M:%S ' HISTTIMEFORMAT='%y-%m-%d %H:%M:%S '
@ -42,7 +42,7 @@
HISTFILESIZE=-1 HISTFILESIZE=-1
HISTFILE=''$HOME/.''${USER:-default}_bash_history HISTFILE=''$HOME/.''${USER:-default}_bash_history
#-############################ environment variables ############################# ############################ environment variables #############################
export PYTHON_BASIC_REPL=1 # I'm good at readline so I'm gonna use readline whereever possible! export PYTHON_BASIC_REPL=1 # I'm good at readline so I'm gonna use readline whereever possible!
export LESS='-SRFX' export LESS='-SRFX'
export PAGER='less' GIT_PAGER='less' MANPAGER='less' SYSTEMD_PAGER='less' export PAGER='less' GIT_PAGER='less' MANPAGER='less' SYSTEMD_PAGER='less'
@ -50,7 +50,7 @@
export EDITOR='vim' VISUAL='vim' FCEDIT='vim' SYSTEMD_EDITOR='vim' export EDITOR='vim' VISUAL='vim' FCEDIT='vim' SYSTEMD_EDITOR='vim'
export PATH export PATH
#-########################## generally useful functions ########################## ########################## generally useful functions ##########################
take () { take () {
: 'Idempotently create directory recursively and cd into it' : 'Idempotently create directory recursively and cd into it'
local out local out
@ -61,20 +61,8 @@
} }
cd () { cd () {
: 'Run cd; on success in a terminal, show the 4 newest entries (with a count of hidden ones)' : 'Run cd and if it succeeds, run ls'
builtin cd "''$@" && command ls --color -Ah
builtin cd "''$@" || return
[[ -t 1 ]] || return 0
command -v ls &>/dev/null || return 0
local -a lines
mapfile -t lines < <(command ls --color=always --quoting-style=shell-escape -lArth)
if (( ''${#lines[@]} > 5 )); then
printf '\033[7m... %d more entries ...\033[27m\n' "$(( ''${#lines[@]} - 5 ))";
printf '%s\n' "''${lines[@]: -4}"
else
printf '%s\n' "''${lines[@]}"
fi
} }
drop_caches () { drop_caches () {
@ -124,8 +112,8 @@
declare plugin declare plugin
for plugin in "''${plugins[@]}"; do for plugin in "''${plugins[@]}"; do
case "''$plugin" in case "''$plugin" in
#-# Comment below case match if you don'\'''t want to have a pre-selection of plugins to export # Comment below case match if you don'\'''t want to have a pre-selection of plugins to export
#-# Requires `shopt -s extglob` # Requires `shopt -s extglob`
(+([0-9])-@(util|redact|prompt|docker-tools|funcs|init-and-complete|general-aliases|bash-abbr)) selected[''$plugin]=1 ;; (+([0-9])-@(util|redact|prompt|docker-tools|funcs|init-and-complete|general-aliases|bash-abbr)) selected[''$plugin]=1 ;;
(*) selected[''$plugin]= (*) selected[''$plugin]=
esac esac
@ -223,7 +211,7 @@
EOF EOF
} }
#-#################################### binds ##################################### #################################### binds #####################################
bind '"\e\C-r": kill-region' \ bind '"\e\C-r": kill-region' \
'"\C-x\C-k": kill-whole-line' \ '"\C-x\C-k": kill-whole-line' \
'"\e\C-p": history-search-backward' \ '"\e\C-p": history-search-backward' \
@ -242,23 +230,23 @@
'set colored-completion-prefix on' \ 'set colored-completion-prefix on' \
'set colored-stats on' 'set colored-stats on'
#-################################## autoclear ################################### ################################## autoclear ###################################
#-# TODO # TODO
#-# prank () { # prank () {
#-# line_up_until_cursor=''${READLINE_LINE::READLINE_POINT} # line_up_until_cursor=''${READLINE_LINE::READLINE_POINT}
#-# line_after_cursor=''${READLINE_LINE:READLINE_POINT} # line_after_cursor=''${READLINE_LINE:READLINE_POINT}
#-# if [[ ''$((RANDOM % 5)) -eq 0 ]]; then # if [[ ''$((RANDOM % 5)) -eq 0 ]]; then
#-# READLINE_LINE="''$line_up_until_cursor''$line_after_cursor" # READLINE_LINE="''$line_up_until_cursor''$line_after_cursor"
#-# #READLINE_LINE="''$line_up_until_cursor''${1^}''$line_after_cursor" # #READLINE_LINE="''$line_up_until_cursor''${1^}''$line_after_cursor"
#-# READLINE_POINT=''$((READLINE_POINT+1)) # READLINE_POINT=''$((READLINE_POINT+1))
#-# else # else
#-# READLINE_LINE="''$line_up_until_cursor''$1''$line_after_cursor" # READLINE_LINE="''$line_up_until_cursor''$1''$line_after_cursor"
#-# READLINE_POINT=''$((READLINE_POINT+1)) # READLINE_POINT=''$((READLINE_POINT+1))
#-# fi # fi
#-# } # }
#-# bind -x '" ": prank " "' # bind -x '" ": prank " "'
#-# bind -x '"a": prank "a"' # bind -x '"a": prank "a"'
''; '';
}; };
} }

View file

@ -4,7 +4,6 @@
programs.git = { programs.git = {
enable = true; enable = true;
settings = { settings = {
rerere.enabled = true;
user = { user = {
name = "cubernetes"; name = "cubernetes";
email = "timo42@proton.me"; email = "timo42@proton.me";