mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 09:07:21 +01:00
Transition to most recent state
nix: fix mu4e from nonworking (rebuilt database) fix printer driver that was not working after update add network scanning remove nix-gaming steam addons (now part of nixpkgs) add pass-fuzzel for otp's update deprecated expressions add powerprofilesdaemon to waybar fix hardware group in waybar folding to the wrong side fix emacs server not starting disable swayfx for now (broken in most recent nixpkgs) disable some broken yubikey packages (*-flutter, -manager(-qt), -oath) do not mount eternor by default fix pinentry now requiring an extra expression to work emacs: fix corfu down/up keys not performing as intended add ispell inhibit useless messages unclutter modeline tune cape add crdt (collaborative editing) add avy add diff-hl fix oversight in latex greek symbols that had tau and theta on the same key start eglot more consistently fix dashboard showing footer line and not showing navigation
This commit is contained in:
parent
28ef6da2fb
commit
60eb5e4b35
13 changed files with 1421 additions and 1079 deletions
|
|
@ -13,6 +13,17 @@
|
|||
audacity
|
||||
sox
|
||||
|
||||
# printing
|
||||
cups
|
||||
gnome.simple-scan
|
||||
|
||||
# dict
|
||||
(aspellWithDicts (dicts: with dicts; [ de en en-computers en-science ]))
|
||||
|
||||
# utilities
|
||||
util-linux
|
||||
nmap
|
||||
|
||||
# b2 backup @backblaze
|
||||
restic
|
||||
|
||||
|
|
@ -72,7 +83,6 @@
|
|||
networkmanagerapplet
|
||||
psmisc # kill etc
|
||||
lm_sensors
|
||||
# syncthingtray
|
||||
# jq # used for searching the i3 tree in check<xxx>.sh files
|
||||
|
||||
# specifically needed for anki
|
||||
|
|
@ -109,7 +119,7 @@
|
|||
# gnome.gnome-clocks
|
||||
# wlogout
|
||||
# jdiskreport
|
||||
# syncthingtray
|
||||
syncthingtray
|
||||
# monitor
|
||||
|
||||
#keychain
|
||||
|
|
@ -229,6 +239,36 @@
|
|||
'';
|
||||
})
|
||||
|
||||
(pkgs.writeShellApplication {
|
||||
name = "pass-fuzzel-otp";
|
||||
runtimeInputs = [ pkgs.fuzzel (pkgs.pass.withExtensions (exts: [exts.pass-otp]))];
|
||||
text = ''
|
||||
shopt -s nullglob globstar
|
||||
|
||||
typeit=0
|
||||
if [[ $# -ge 1 && $1 == "--type" ]]; then
|
||||
typeit=1
|
||||
shift
|
||||
fi
|
||||
|
||||
export PASSWORD_STORE_DIR=~/.local/share/password-store
|
||||
prefix=''${PASSWORD_STORE_DIR-~/.local/share/password-store}
|
||||
password_files=( "$prefix"/otp/**/*.gpg )
|
||||
password_files=( "''${password_files[@]#"$prefix"/}" )
|
||||
password_files=( "''${password_files[@]%.gpg}" )
|
||||
|
||||
password=$(printf '%s\n' "''${password_files[@]}" | fuzzel --dmenu "$@")
|
||||
|
||||
[[ -n $password ]] || exit
|
||||
|
||||
if [[ $typeit -eq 0 ]]; then
|
||||
pass otp -c "$password" &>/tmp/pass-fuzzel
|
||||
else
|
||||
pass otp "$password" | { IFS= read -r pass; printf %s "$pass"; } | wtype -
|
||||
fi
|
||||
notify-send -u critical -a pass -t 1000 "Copied/Typed OTPassword"
|
||||
'';
|
||||
})
|
||||
|
||||
];
|
||||
|
||||
|
|
@ -459,6 +499,11 @@ home.file = {
|
|||
source = ../../programs/emacs/early-init.el;
|
||||
target = ".emacs.d/early-init.el";
|
||||
};
|
||||
# on NixOS, Emacs does not find the aspell dicts easily. Write the configuration manually
|
||||
".aspell.conf" = {
|
||||
source = ../../programs/config/.aspell.conf;
|
||||
target = ".aspell.conf";
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
|
|
@ -493,7 +538,6 @@ programs.direnv = {
|
|||
programs.zoxide.enable = true;
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableAliases = true;
|
||||
icons = true;
|
||||
git = true;
|
||||
extraOptions = [
|
||||
|
|
@ -674,8 +718,9 @@ programs.zsh = {
|
|||
c="git --git-dir=$HOME/.dotfiles/.git --work-tree=$HOME/.dotfiles/";
|
||||
passpush = "cd ~/.local/share/password-store; git add .; git commit -m 'pass file changes'; git push; cd -;";
|
||||
passpull = "cd ~/.local/share/password-store; git pull; cd -;";
|
||||
hotspot = "nmcli connection up local; nmcli device wifi hotspot password 12345678;";
|
||||
};
|
||||
enableAutosuggestions = true;
|
||||
autosuggestion.enable = true;
|
||||
enableCompletion = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
autocd = false;
|
||||
|
|
@ -874,11 +919,12 @@ programs.waybar = {
|
|||
"group/hardware" = {
|
||||
orientation = "inherit";
|
||||
drawer = {
|
||||
"transition-left-to-right" = true;
|
||||
"transition-left-to-right" = false;
|
||||
};
|
||||
modules = [
|
||||
"tray"
|
||||
"temperature"
|
||||
"power-profiles-daemon"
|
||||
"custom/left-arrow-light"
|
||||
"disk"
|
||||
"custom/left-arrow-dark"
|
||||
|
|
@ -889,6 +935,18 @@ programs.waybar = {
|
|||
];
|
||||
};
|
||||
|
||||
power-profiles-daemon = {
|
||||
format= "{icon}";
|
||||
tooltip-format= "Power profile: {profile}\nDriver: {driver}";
|
||||
tooltip= true;
|
||||
format-icons= {
|
||||
"default"= "";
|
||||
"performance"= "";
|
||||
"balanced"= "";
|
||||
"power-saver"= "";
|
||||
};
|
||||
};
|
||||
|
||||
temperature = {
|
||||
critical-threshold = 80;
|
||||
format-critical = " {temperatureC}°C";
|
||||
|
|
@ -1124,6 +1182,7 @@ programs.waybar = {
|
|||
#memory,
|
||||
#cpu,
|
||||
#temperature,
|
||||
#power-profiles-daemon,
|
||||
#mpris,
|
||||
#tray {
|
||||
background: @background;
|
||||
|
|
@ -1165,7 +1224,8 @@ programs.waybar = {
|
|||
color: #cc99c9;
|
||||
}
|
||||
|
||||
#temperature {
|
||||
#temperature,
|
||||
#power-profiles-daemon {
|
||||
color: #9ec1cf;
|
||||
}
|
||||
|
||||
|
|
@ -1248,6 +1308,7 @@ programs.waybar = {
|
|||
#cpu,
|
||||
#tray,
|
||||
#temperature,
|
||||
#power-profiles-daemon,
|
||||
#network,
|
||||
#mpris,
|
||||
#battery,
|
||||
|
|
@ -1376,14 +1437,14 @@ programs.firefox = {
|
|||
};
|
||||
|
||||
"Home Manager Options" = {
|
||||
urls = [{ template = "https://mipmip.github.io/home-manager-option-search/";
|
||||
urls = [{ template = "https://home-manager-options.extranix.com/";
|
||||
params = [
|
||||
{ name = "query"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@hm" ];
|
||||
definedAliases = [ "@hm" "@ho" "@hmo" ];
|
||||
};
|
||||
|
||||
"Google".metaData.alias = "@g";
|
||||
|
|
@ -1404,7 +1465,7 @@ services.gnome-keyring = {
|
|||
};
|
||||
|
||||
services.mbsync = {
|
||||
enable = false;
|
||||
enable = true;
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -1416,12 +1477,16 @@ services.kdeconnect = {
|
|||
services.syncthing = {
|
||||
enable = true;
|
||||
tray = {
|
||||
enable = false;
|
||||
enable = false; # we enable this by installing the syncthingtray package instead, it works better.
|
||||
};
|
||||
};
|
||||
|
||||
# this enables the emacs server
|
||||
services.emacs.enable = true;
|
||||
services.emacs = {
|
||||
enable = true;
|
||||
# socketActivation.enable = false;
|
||||
# startWithUserSession = "graphical";
|
||||
};
|
||||
|
||||
services.mako = {
|
||||
enable = true;
|
||||
|
|
@ -1453,7 +1518,8 @@ group-by=category
|
|||
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
package = pkgs.swayfx;
|
||||
# package = pkgs.swayfx;
|
||||
package = pkgs.sway;
|
||||
systemd.enable = true;
|
||||
systemd.xdgAutostart = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
|
|
@ -1481,7 +1547,9 @@ wayland.windowManager.sway = {
|
|||
"${modifier}+F12" = "scratchpad show";
|
||||
"${modifier}+c" = "exec qalculate-gtk";
|
||||
"${modifier}+p" = "exec pass-fuzzel";
|
||||
"${modifier}+o" = "exec pass-fuzzel-otp";
|
||||
"${modifier}+Shift+p" = "exec pass-fuzzel --type";
|
||||
"${modifier}+Shift+o" = "exec pass-fuzzel-otp --type";
|
||||
"${modifier}+Escape" = "mode $exit";
|
||||
# "${modifier}+Shift+Escape" = "exec com.github.stsdc.monitor";
|
||||
"${modifier}+Shift+Escape" = "exec kitty -o confirm_os_window_close=0 btm";
|
||||
|
|
@ -1610,6 +1678,12 @@ wayland.windowManager.sway = {
|
|||
app_id = ".*";
|
||||
};
|
||||
}
|
||||
{
|
||||
command = "opacity 1";
|
||||
criteria = {
|
||||
app_id = "Gimp-2.10";
|
||||
};
|
||||
}
|
||||
{
|
||||
command = "opacity 0.99";
|
||||
criteria = {
|
||||
|
|
@ -1689,6 +1763,17 @@ wayland.windowManager.sway = {
|
|||
# ";
|
||||
extraConfig =let
|
||||
modifier = config.wayland.windowManager.sway.config.modifier;
|
||||
swayfxSettings = "
|
||||
blur enable
|
||||
blur_xray disable
|
||||
blur_passes 1
|
||||
blur_radius 1
|
||||
shadows enable
|
||||
corner_radius 2
|
||||
titlebar_separator disable
|
||||
default_dim_inactive 0.02
|
||||
";
|
||||
swayfxSettingsOff = "";
|
||||
in "
|
||||
exec_always autotiling
|
||||
set $exit \"exit: [s]leep, [p]oweroff, [r]eboot, [l]ogout\"
|
||||
|
|
@ -1708,14 +1793,7 @@ wayland.windowManager.sway = {
|
|||
|
||||
exec systemctl --user import-environment
|
||||
|
||||
blur enable
|
||||
blur_xray disable
|
||||
blur_passes 1
|
||||
blur_radius 1
|
||||
shadows enable
|
||||
corner_radius 2
|
||||
titlebar_separator disable
|
||||
default_dim_inactive 0.02
|
||||
${swayfxSettingsOff}
|
||||
|
||||
";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -7,25 +7,27 @@
|
|||
|
||||
# login keymap
|
||||
services.xserver = {
|
||||
layout = "us";
|
||||
xkbVariant = "altgr-intl";
|
||||
xkb.layout = "us";
|
||||
xkb.variant = "altgr-intl";
|
||||
};
|
||||
|
||||
# mount NAS drive
|
||||
# works only at home, but w/e
|
||||
fileSystems."/mnt/smb" = {
|
||||
device = "//192.168.1.3/Eternor";
|
||||
fsType = "cifs";
|
||||
options = let
|
||||
# this line prevents hanging on network split
|
||||
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
||||
in ["${automount_opts},credentials=/etc/nixos/smb-secrets,uid=1000,gid=100"];
|
||||
};
|
||||
# fileSystems."/mnt/smb" = {
|
||||
# device = "//192.168.1.3/Eternor";
|
||||
# fsType = "cifs";
|
||||
# options = let
|
||||
# # this line prevents hanging on network split
|
||||
# automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
||||
# in ["${automount_opts},credentials=/etc/nixos/smb-secrets,uid=1000,gid=100"];
|
||||
# };
|
||||
|
||||
# enable flakes - urgent line!!
|
||||
# # enable flakes - urgent line!!
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
|
||||
# wordlist for look
|
||||
environment.wordlist.enable = true;
|
||||
# gstreamer plugins for nautilus (used for file metadata)
|
||||
environment.sessionVariables.GST_PLUGIN_SYSTEM_PATH_1_0 = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" (with pkgs.gst_all_1; [
|
||||
gst-plugins-good
|
||||
|
|
@ -99,11 +101,11 @@ environment.systemPackages = with pkgs; [
|
|||
yubikey-personalization
|
||||
yubikey-personalization-gui
|
||||
yubico-pam
|
||||
yubioath-flutter
|
||||
yubikey-manager
|
||||
yubikey-manager-qt
|
||||
# yubioath-flutter
|
||||
# yubikey-manager
|
||||
# yubikey-manager-qt
|
||||
yubico-piv-tool
|
||||
pinentry
|
||||
# pinentry
|
||||
|
||||
# theme related
|
||||
gnome.adwaita-icon-theme
|
||||
|
|
@ -116,7 +118,6 @@ environment.systemPackages = with pkgs; [
|
|||
|
||||
# lsp-related -------------------------------
|
||||
# nix
|
||||
rnix-lsp
|
||||
# latex
|
||||
texlab
|
||||
ghostscript_headless
|
||||
|
|
@ -152,41 +153,59 @@ environment.pathsToLink = [ "/share/zsh" ];
|
|||
|
||||
services.blueman.enable = true;
|
||||
|
||||
# enable discovery and usage of network devices (esp. printers)
|
||||
services.printing.enable = true;
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
# enable scanners over network
|
||||
hardware.sane = {
|
||||
enable = true;
|
||||
extraBackends = [ pkgs.sane-airscan ];
|
||||
};
|
||||
|
||||
# nautilus file manager
|
||||
services.gvfs.enable = true;
|
||||
# enable discovery and usage of network devices (esp. printers)
|
||||
services.printing.enable = true;
|
||||
services.printing.drivers = [
|
||||
pkgs.gutenprint
|
||||
pkgs.gutenprintBin
|
||||
];
|
||||
services.printing.browsedConf = ''
|
||||
BrowseDNSSDSubTypes _cups,_print
|
||||
BrowseLocalProtocols all
|
||||
BrowseRemoteProtocols all
|
||||
CreateIPPPrinterQueues All
|
||||
|
||||
# Make CAPS work as a dual function ESC/CTRL key
|
||||
services.interception-tools = {
|
||||
enable = true;
|
||||
udevmonConfig = let
|
||||
dualFunctionKeysConfig = builtins.toFile "dual-function-keys.yaml" ''
|
||||
TIMING:
|
||||
TAP_MILLISEC: 200
|
||||
DOUBLE_TAP_MILLISEC: 0
|
||||
|
||||
MAPPINGS:
|
||||
- KEY: KEY_CAPSLOCK
|
||||
TAP: KEY_ESC
|
||||
HOLD: KEY_LEFTCTRL
|
||||
BrowseProtocols all
|
||||
'';
|
||||
in ''
|
||||
- JOB: |
|
||||
${pkgs.interception-tools}/bin/intercept -g $DEVNODE \
|
||||
| ${pkgs.interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c ${dualFunctionKeysConfig} \
|
||||
| ${pkgs.interception-tools}/bin/uinput -d $DEVNODE
|
||||
DEVICE:
|
||||
EVENTS:
|
||||
EV_KEY: [KEY_CAPSLOCK]
|
||||
'';
|
||||
};
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
# nautilus file manager
|
||||
services.gvfs.enable = true;
|
||||
|
||||
# Make CAPS work as a dual function ESC/CTRL key
|
||||
services.interception-tools = {
|
||||
enable = true;
|
||||
udevmonConfig = let
|
||||
dualFunctionKeysConfig = builtins.toFile "dual-function-keys.yaml" ''
|
||||
TIMING:
|
||||
TAP_MILLISEC: 200
|
||||
DOUBLE_TAP_MILLISEC: 0
|
||||
|
||||
MAPPINGS:
|
||||
- KEY: KEY_CAPSLOCK
|
||||
TAP: KEY_ESC
|
||||
HOLD: KEY_LEFTCTRL
|
||||
'';
|
||||
in ''
|
||||
- JOB: |
|
||||
${pkgs.interception-tools}/bin/intercept -g $DEVNODE \
|
||||
| ${pkgs.interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c ${dualFunctionKeysConfig} \
|
||||
| ${pkgs.interception-tools}/bin/uinput -d $DEVNODE
|
||||
DEVICE:
|
||||
EVENTS:
|
||||
EV_KEY: [KEY_CAPSLOCK]
|
||||
'';
|
||||
};
|
||||
|
||||
programs.ssh.startAgent = false;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue