749 lines
21 KiB
Nix
749 lines
21 KiB
Nix
|
|
{ lib, pkgs, ... }:
|
|
let
|
|
sources = import ./npins;
|
|
home-manager-src = sources.home-manager;
|
|
in
|
|
{
|
|
imports = [
|
|
(import "${home-manager-src}/nixos")
|
|
];
|
|
|
|
users.users.tudbut.packages = with pkgs; [
|
|
pdfarranger
|
|
thunderbird
|
|
tree
|
|
keepassxc
|
|
sshfs
|
|
arc-theme
|
|
signal-desktop
|
|
gimp
|
|
yt-dlp
|
|
mpv
|
|
# ( mpv-unwrapped.wrapper { mpv = mpv-unwrapped.override { ffmpeg = ffmpeg-full; }; } )
|
|
graphviz
|
|
giac-with-xcas
|
|
sqlite-interactive
|
|
acpi
|
|
nix-init
|
|
hydra-check
|
|
mate.eom
|
|
jdt-language-server
|
|
pcmanfm
|
|
filezilla
|
|
tree-sitter
|
|
gnome-network-displays
|
|
prismlauncher
|
|
prusa-slicer
|
|
evcxr
|
|
tcpdump
|
|
hyfetch
|
|
libreoffice
|
|
nushell
|
|
testdisk
|
|
bb
|
|
elixir-ls
|
|
elixir
|
|
doggo
|
|
scc
|
|
typst
|
|
nmap
|
|
qpaeq
|
|
dig
|
|
arp-scan
|
|
masscan
|
|
arduino
|
|
patchelf
|
|
eudev
|
|
audacity
|
|
android-tools
|
|
mupdf
|
|
evince
|
|
fzf
|
|
xorg.xmessage
|
|
arandr
|
|
iw
|
|
poppler-utils
|
|
pv
|
|
ghostscript
|
|
xorg.xkill
|
|
ocrmypdf
|
|
# picocom
|
|
speedtest-rs
|
|
uv
|
|
jq
|
|
ollama
|
|
wireshark
|
|
aircrack-ng
|
|
httrack
|
|
# httraqt # broken
|
|
gcc
|
|
ripgrep
|
|
file
|
|
tigervnc
|
|
nix-index
|
|
mono
|
|
jetbrains.idea
|
|
rofi
|
|
wofi
|
|
redshift
|
|
kdePackages.kate
|
|
caddy
|
|
# vesktop
|
|
tor-browser
|
|
deltachat-desktop
|
|
nixd
|
|
alsa-utils
|
|
binwalk
|
|
libwacom
|
|
libinput
|
|
dua
|
|
monero-gui
|
|
p2pool
|
|
syncplay
|
|
mold
|
|
openhantek6022
|
|
clipqr
|
|
python3
|
|
appimage-run
|
|
aria2
|
|
powertop
|
|
xhost
|
|
brasero
|
|
kdePackages.k3b
|
|
dvdplusrwtools
|
|
libburn
|
|
cdrtools
|
|
ddrescue
|
|
sysstat
|
|
udftools
|
|
fd
|
|
television
|
|
kdePackages.ktorrent
|
|
unflac
|
|
# opensnitch-ui
|
|
libburn
|
|
dvdbackup
|
|
vlc
|
|
regname
|
|
npins
|
|
android-studio
|
|
xev
|
|
traceroute
|
|
onefetch
|
|
tio
|
|
screen
|
|
swaybg
|
|
drawio
|
|
dotnet-runtime
|
|
rawtherapee
|
|
mcstatus
|
|
ghidra
|
|
perf
|
|
hotspot
|
|
tauon
|
|
picard
|
|
xclip
|
|
wl-clipboard
|
|
geeqie
|
|
picocom
|
|
luanti
|
|
telegram-desktop
|
|
kdePackages.akregator
|
|
librewolf
|
|
qtox
|
|
cava
|
|
deno
|
|
opustags
|
|
lame
|
|
unison
|
|
protonup-rs
|
|
smartmontools
|
|
hdparm
|
|
xpra
|
|
#marker.pkgs.end#
|
|
(pkgs.callPackage ./traewelling.script.nix {})
|
|
(pkgs.callPackage ./metronom-login.script.nix {})
|
|
(pkgs.callPackage ./plans.script.nix {})
|
|
(pkgs.callPackage ./todos.script.nix {})
|
|
(pkgs.callPackage ./plans-backend.script.nix {})
|
|
(pkgs.callPackage ./typedit.script.nix {})
|
|
(pkgs.callPackage ./fan.script.nix {})
|
|
(pkgs.callPackage ./fuckingfastdl.script.nix {})
|
|
(pkgs.callPackage ({pkgs}: pkgs.writeShellScriptBin "workmode" ./workmode.sh) {})
|
|
(pkgs.callPackage ./packages/recaf-launcher.nix {})
|
|
(pkgs.callPackage ./packages/cubyz-fhs.nix {})
|
|
(pkgs.callPackage ./packages/stackwallet.nix {})
|
|
(pkgs.callPackage ./packages/biglybt.nix {})
|
|
(pkgs.callPackage ./packages/aranet4linux.nix {})
|
|
(pkgs.callPackage ./packages/intellij-idea-2021.nix {})
|
|
(pkgs.callPackage ./packages/intellij-idea-2022.nix {})
|
|
(pkgs.callPackage ./packages/intellij-idea-2023.nix {})
|
|
(pkgs.writeShellScriptBin "typesorter" "${./typesorter.sh} \"$@\"")
|
|
(pkgs.writeShellScriptBin "pipette" "${xcolor}/bin/xcolor | ${xclip}/bin/xclip -selection clipboard")
|
|
(pkgs.writeShellScriptBin "timeprogress" "${nushell}/bin/nu ${./timeprogress.nu} \"$@\"")
|
|
(pkgs.writeShellScriptBin "vncserve" "xrandr -s $1 --output $(xrandr --listactivemonitors | tail -n1 | sed -E \"s/.* (.*)/\\1/g\") --scale-from $1 && ${tigervnc}/bin/x0vncserver -PasswordFile ~/.config/tigervnc/passwd -AcceptSetDesktopSize false")
|
|
(pkgs.writeShellScriptBin "dbat" "${libnotify}/bin/notify-send Battery \"$(cat /sys/class/power_supply/BAT*/capacity | ${coreutils}/bin/tr '\\n' ' ') $((($(cat /sys/class/power_supply/BAT*/power_now | tr '\\n' +) 0) / 1000))mW\"")
|
|
(pkgs.writeShellScriptBin "nx" "${libnotify}/bin/notify-send Output \"$(\"$@\")\"")
|
|
] ++ (with pkgs; [
|
|
# deadd-notification-center
|
|
dunst
|
|
qemu
|
|
qemu-user
|
|
freecad
|
|
# nheko
|
|
# cinny-desktop
|
|
olm
|
|
# mkchromecast # broken
|
|
feh
|
|
geogebra
|
|
jetbrains-toolbox
|
|
steam
|
|
# ventoy # unsafe
|
|
]);
|
|
programs.steam = {
|
|
enable = true;
|
|
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
|
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
|
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
|
};
|
|
|
|
users.users.amoeba.packages = with pkgs; [
|
|
micro
|
|
helix
|
|
vim
|
|
];
|
|
|
|
systemd.user.services.rawkeybinds = {
|
|
enable = true;
|
|
script = ''
|
|
sleep 2
|
|
for it in \
|
|
${pkgs.xorg.xmodmap}/bin \
|
|
${pkgs.xorg.xinput}/bin \
|
|
${pkgs.xclip}/bin \
|
|
${pkgs.libnotify}/bin \
|
|
${pkgs.actkbd}/bin \
|
|
${pkgs.xdotool}/bin \
|
|
${pkgs.maim}/bin \
|
|
; do
|
|
export PATH="$PATH:$it"
|
|
done
|
|
|
|
echo $PATH
|
|
|
|
pids=""
|
|
for dev in /dev/input/event* ; do
|
|
/run/wrappers/bin/sudo actkbd -x -d $dev -c ${./rawkeybinds.actkbd.conf} &
|
|
pids="$pids $!"
|
|
done
|
|
while kill -0 $pids ; do sleep 1 ; done
|
|
'';
|
|
wantedBy = [
|
|
"graphical-session.target"
|
|
];
|
|
};
|
|
|
|
systemd.user.services.caddy = {
|
|
enable = true;
|
|
script = ''
|
|
sleep 2
|
|
for it in \
|
|
${pkgs.caddy}/bin \
|
|
${pkgs.bash}/bin \
|
|
${pkgs.python3}/bin \
|
|
${pkgs.screen}/bin \
|
|
; do
|
|
export PATH="$PATH:$it"
|
|
done
|
|
|
|
echo $PATH
|
|
|
|
mkdir ~/caddy || true
|
|
cd ~/caddy
|
|
touch Caddyfile
|
|
[ -e prestart.sh ] && bash prestart.sh
|
|
/run/wrappers/bin/sudo caddy run
|
|
'';
|
|
wantedBy = [
|
|
"graphical-session.target"
|
|
];
|
|
};
|
|
|
|
systemd.user.services.usbsound = {
|
|
enable = true;
|
|
script = ''
|
|
sleep 2
|
|
for it in \
|
|
${pkgs.bash}/bin \
|
|
${pkgs.mpv}/bin \
|
|
${pkgs.usbutils}/bin \
|
|
${pkgs.diffutils}/bin \
|
|
; do
|
|
export PATH="$PATH:$it"
|
|
done
|
|
|
|
echo $PATH
|
|
|
|
bash /etc/nixos/usbsound/usbsound.sh
|
|
'';
|
|
wantedBy = [
|
|
"graphical-session.target"
|
|
];
|
|
};
|
|
|
|
systemd.user.services.check_internet = {
|
|
enable = true;
|
|
script = ''
|
|
sleep 2
|
|
for it in \
|
|
${pkgs.iputils}/bin \
|
|
; do
|
|
export PATH="$PATH:$it"
|
|
done
|
|
|
|
echo $PATH
|
|
|
|
while true; do
|
|
touch .has_internet.tmp
|
|
ping -c1 -w1 217.160.249.125 > /dev/null && echo ipv4 >> .has_internet.tmp
|
|
ping -c1 -w1 2a01:239:2a7:7800::1 > /dev/null && echo ipv6 >> .has_internet.tmp
|
|
mv .has_internet{.tmp,}
|
|
done
|
|
'';
|
|
wantedBy = [
|
|
"graphical-session.target"
|
|
];
|
|
};
|
|
|
|
home-manager.backupFileExtension = ".hm-old";
|
|
home-manager.users.tudbut = {
|
|
programs.home-manager.enable = true;
|
|
|
|
/* The home.stateVersion option does not have a default and must be set */
|
|
home.stateVersion = "24.05";
|
|
home.sessionVariables.MOZ_USE_XINPUT2 = "1";
|
|
programs.fish.enable = true;
|
|
programs.fish.shellInit = ''
|
|
export PATH="$PATH:$HOME/.cargo/bin:$HOME/opt/bin"
|
|
export SPL_PATH="$HOME/gitshit/spl/spl"
|
|
export ISBPL_PATH="$HOME/gitshit/isbpl"
|
|
function mmgui
|
|
sudo modem-manager-gui & disown
|
|
exit
|
|
end
|
|
function jjci
|
|
jjc "$(cat)"
|
|
end
|
|
function jjc
|
|
echo "import java.io.BufferedReader; import java.io.InputStreamReader; public class _main { public static BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); public static void p(Object o) { System.out.println(o); } public static void main(String[] args) throws Exception { $argv ; } }" > _main.java
|
|
javac _main.java
|
|
java -cp . _main
|
|
rm _main.java _main.class
|
|
end
|
|
function jjjc
|
|
echo "import java.io.BufferedReader; import java.io.InputStreamReader; public class _main { public static BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); public static void p(Object o) { System.out.println(o); } public static void main(String[] args) throws Exception { $argv ; } }" > src/_main.java
|
|
jjj _main
|
|
rm src/_main.java
|
|
end
|
|
function jjj
|
|
mkdir src build lib res 2> /dev/null
|
|
pushd src
|
|
javac -cp "../lib" -d ../build $(find -type f)
|
|
popd
|
|
java -cp "build/:lib/:res/" $argv
|
|
end
|
|
function check-internet
|
|
if grep ipv4 ~/.has_internet > /dev/null
|
|
set_color brgreen
|
|
echo "> Internet (v4) is UP"
|
|
else
|
|
set_color red
|
|
echo "> Internet (v4) is DOWN (or slow)"
|
|
end
|
|
if grep ipv6 ~/.has_internet > /dev/null
|
|
set_color brgreen
|
|
echo "> Internet (v6) is UP"
|
|
else
|
|
set_color red
|
|
echo "> Internet (v6) is DOWN (or slow)"
|
|
end
|
|
set_color normal
|
|
end
|
|
if status is-interactive
|
|
alias cd=z
|
|
tv init fish | source
|
|
stty -echo
|
|
|
|
check-internet
|
|
|
|
if mount | grep ~/sync > /dev/null
|
|
# set_color magenta
|
|
# echo "> Plans from ~/sync/plans.txt:"
|
|
# set_color brmagenta
|
|
# cat ~/sync/plans.txt
|
|
# echo
|
|
# set_color blue
|
|
# echo "> Your TODOs from ~/sync/todo.txt:"
|
|
# set_color brblue
|
|
# cat ~/sync/todo.txt
|
|
set_color brgreen
|
|
echo "> Sync is mounted."
|
|
else
|
|
set_color red
|
|
echo "> Sync is not mounted."
|
|
end
|
|
echo
|
|
# check träwelling
|
|
# traewelling
|
|
# print bahn.expert links
|
|
set_color brblue
|
|
echo "> bahn.expert shortcuts"
|
|
set_color blue
|
|
echo "ALBG https://bahn.expert/Lüneburg"
|
|
echo "AH https://bahn.expert/Hamburg%20Hbf"
|
|
echo "AHST https://bahn.expert/Hamburg%20Holstenstraße"
|
|
echo
|
|
set_color normal
|
|
stty echo
|
|
end
|
|
function edit-todo
|
|
hx ~/sync/todo.txt
|
|
clear
|
|
exec $SHELL
|
|
end
|
|
function rx
|
|
clear
|
|
exec fish
|
|
end
|
|
function ytmusicdl
|
|
yt-dlp --audio-format mp3 -x -o "%(playlist_index)02d %(track,title)s" "$argv"
|
|
end
|
|
function ytmusicdls
|
|
yt-dlp --audio-format mp3 -x -o "%(artist,channel,uploader)s - %(track,title)s" "$argv"
|
|
end
|
|
function ytmusicdlh
|
|
yt-dlp --audio-format mp3 -x -o "%(track,title)s" "$argv"
|
|
end
|
|
function ssh-aws
|
|
ssh ubuntu@( ssh ubuntu@aws.tudbut.de curl -s ip.me )
|
|
end
|
|
function fish_greeting
|
|
echo
|
|
echo " $(set_color yellow)good evening $(set_color brgreen)$USER$(set_color yellow)."
|
|
echo " $(set_color brred)welcome to $hostname."
|
|
echo
|
|
end
|
|
|
|
alias fucking=sudo
|
|
alias nix-fish="nix-shell --command fish -p"
|
|
alias gitlog="git log --all --oneline --graph"
|
|
alias lnc="l --color=no"
|
|
function mkcd
|
|
mkdir "$argv"
|
|
cd "$argv"
|
|
end
|
|
'';
|
|
programs.alacritty.enable = true;
|
|
programs.direnv = {
|
|
enable = true;
|
|
nix-direnv.enable = true;
|
|
};
|
|
programs.zoxide.enable = true;
|
|
programs.zoxide.enableFishIntegration= true;
|
|
programs.zoxide.enableNushellIntegration = true;
|
|
/* Here goes the rest of your home-manager config, e.g. home.packages = [ pkgs.foo ]; */
|
|
xsession.enable = true;
|
|
xsession.initExtra = "clipit &";
|
|
xsession.windowManager.i3 = {
|
|
enable = true;
|
|
extraConfig = ''
|
|
exec --no-startup-id feh --bg-fill .background-image
|
|
exec --no-startup-id deadd-notification-center
|
|
exec --no-startup-id systemctl --user start start-autostart
|
|
exec --no-startup-id xmodmap -e 'keycode 118 = dead_greek NoSymbol NoSymbol'
|
|
'';
|
|
config = {
|
|
keybindings = lib.mkOptionDefault {
|
|
"XF86AudioMute" = "exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
|
"XF86AudioMicMute" = "exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle";
|
|
"XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5%";
|
|
"XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5%";
|
|
"XF86MonBrightnessUp" = "exec --no-startup-id bright up";
|
|
"XF86MonBrightnessDown" = "exec --no-startup-id bright down";
|
|
"Print" = "exec --no-startup-id maim -s screenshot.png && xclip -selection clipboard -target image/png screenshot.png";
|
|
"Mod4+Shift+Print" = "exec gimp --no-splash --no-data --no-fonts screenshot.png";
|
|
"Mod4+Mod1+q" = "exec sl";
|
|
"Mod4+p" = "exec killall -USR1 deadd-notification-center";
|
|
"Mod4+o" = "exec pcmanfm";
|
|
"Mod4+b" = "exec firefox";
|
|
"Mod1+Tab" = "exec rofi -show window";
|
|
"Mod4+c" = "focus parent";
|
|
"Mod4+x" = "focus child";
|
|
"Mod4+j" = "focus down";
|
|
"Mod4+k" = "focus up";
|
|
};
|
|
terminal = "alacritty";
|
|
modifier = "Mod4";
|
|
fonts.names = ["Fira Code" "DejaVu Sans Mono"];
|
|
fonts.size = 12.0;
|
|
colors = {
|
|
focused = {
|
|
border = "#E2007A";
|
|
background = "#E2007A";
|
|
text = "#000000";
|
|
indicator = "#E2007A";
|
|
childBorder = "#E2007A";
|
|
};
|
|
focusedInactive = {
|
|
border = "#333333";
|
|
background = "#5F676A";
|
|
text = "#FFFFFF";
|
|
indicator = "#484E50";
|
|
childBorder = "#5F676A";
|
|
};
|
|
unfocused = {
|
|
border = "#333333";
|
|
background = "#222222";
|
|
text = "#888888";
|
|
indicator = "#292D2E";
|
|
childBorder = "#222222";
|
|
};
|
|
urgent = {
|
|
border = "#2F343A";
|
|
background = "#FF0000";
|
|
text = "#000000";
|
|
indicator = "#FF0000";
|
|
childBorder = "#FF0000";
|
|
};
|
|
"placeholder" = {
|
|
border = "#000000";
|
|
background = "#0C0C0C";
|
|
text = "#FFFFFF";
|
|
indicator = "#000000";
|
|
childBorder = "#0C0C0C";
|
|
};
|
|
background = "#FFFFFF";
|
|
};
|
|
bars = [{
|
|
colors = {
|
|
background = "#000000";
|
|
statusline = "#FFFFFF";
|
|
separator = "#666666";
|
|
focusedWorkspace = {
|
|
border = "#E2007A";
|
|
background = "#E2007A";
|
|
text = "#000000";
|
|
};
|
|
activeWorkspace = {
|
|
border = "#333333";
|
|
background = "#222222";
|
|
text = "#FFFFFF";
|
|
};
|
|
inactiveWorkspace = {
|
|
border = "#333333";
|
|
background = "#222222";
|
|
text = "#888888";
|
|
};
|
|
urgentWorkspace = {
|
|
border = "#2F343A";
|
|
background = "#FF0000";
|
|
text = "#000000";
|
|
};
|
|
bindingMode = {
|
|
border = "#2F343A";
|
|
background = "#FF0000";
|
|
text = "#000000";
|
|
};
|
|
};
|
|
statusCommand = "${pkgs.i3status}/bin/i3status";
|
|
fonts = {
|
|
names = [ "Iosevka" "Fira Code" "DejaVu Sans Mono" ];
|
|
size = 12.0;
|
|
};
|
|
}];
|
|
defaultWorkspace = "workspace number 1";
|
|
gaps = {
|
|
inner = 0;
|
|
};
|
|
};
|
|
};
|
|
programs.i3status.enable = true;
|
|
programs.i3status.modules."cpu_temperature 0" = {
|
|
enable = true;
|
|
position = 6;
|
|
};
|
|
programs.i3status.modules."battery all".settings.format = "%status %percentage %remaining %emptytime %consumption";
|
|
programs.i3status.modules."battery all".settings.last_full_capacity = true;
|
|
services.picom.enable = true;
|
|
programs.alacritty.settings.window.opacity = 1;
|
|
programs.alacritty.settings.font.normal.family = "Monocraft";
|
|
programs.alacritty.settings.font.size = lib.mkDefault 9;
|
|
# programs.alacritty.settings.bell.duration = 100;
|
|
#services.dunst.enable = true;
|
|
gtk.enable = true;
|
|
gtk.theme = {
|
|
name = "Arc-Dark";
|
|
package = pkgs.arc-theme;
|
|
};
|
|
gtk.iconTheme = {
|
|
name = "Breeze-Dark";
|
|
package = pkgs.kdePackages.breeze-icons;
|
|
};
|
|
dconf.settings = {
|
|
"org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
|
};
|
|
xdg.enable = true;
|
|
xdg.configFile."deadd/deadd.yml".text = ''
|
|
width: 600
|
|
|
|
notification:
|
|
popup:
|
|
default-timeout: 10000
|
|
'';
|
|
xdg.configFile."deadd/deadd.css".source = ./deadd.css;
|
|
xdg.configFile."tigervnc/default.tigervnc".text = ''
|
|
TigerVNC Configuration file Version 1.0
|
|
|
|
ServerName=pc.newinfra.tudbut.de:5900
|
|
SecurityTypes=None,VncAuth,RA2ne,RA2ne_256,Plain,DH,MSLogonII,TLSNone,TLSVnc,TLSPlain,X509None,X509Vnc,X509Plain,RA2,RA2_256
|
|
FullScreen=on
|
|
AlwaysCursor=on
|
|
SendClipboard=off
|
|
SendPrimary=off
|
|
FullColor=false
|
|
CompressLevel=9
|
|
PreferredEncoding=Tight
|
|
'';
|
|
|
|
programs.helix.enable = true;
|
|
programs.helix.defaultEditor = true;
|
|
programs.helix.settings = {
|
|
theme = "tudbut";
|
|
editor = {
|
|
line-number = "relative";
|
|
lsp.display-messages = true;
|
|
cursor-shape = {
|
|
insert = "bar";
|
|
};
|
|
cursorline = true;
|
|
end-of-line-diagnostics = "hint";
|
|
inline-diagnostics = {
|
|
cursor-line = "hint";
|
|
other-lines = "error";
|
|
};
|
|
bufferline = "always";
|
|
lsp.display-inlay-hints = false;
|
|
idle-timeout = 0;
|
|
completion-trigger-len = 1;
|
|
};
|
|
keys.normal = {
|
|
minus = "goto_previous_buffer";
|
|
"+" = "goto_next_buffer";
|
|
"#" = ":buffer-close";
|
|
G = "goto_file_end";
|
|
"0" = ":toggle-option lsp.display-inlay-hints";
|
|
"=" = ":toggle inline-diagnostics.other-lines error disable";
|
|
"ß" = ":toggle inline-diagnostics.cursor-line hint disable";
|
|
"}" = ":toggle end-of-line-diagnostics hint disable";
|
|
};
|
|
keys.normal.z.w = ":write";
|
|
keys.normal.g.f = "code_action";
|
|
};
|
|
programs.helix.themes.tudbut = {
|
|
inherits = "monokai_pro_ristretto";
|
|
"string.special.symbol" = { fg = "#5cdaa7"; };
|
|
"ui.gutter" = {
|
|
bg = "#322a2a"; # #2c2525 #352e2e
|
|
# fg = "#72696a";
|
|
};
|
|
};
|
|
# programs.helix.languages.language = [{
|
|
# name = "rust";
|
|
# language-servers = ["rust-analyzer"];
|
|
# }];
|
|
programs.helix.languages.language-server = {
|
|
rust-analyzer.config = {
|
|
check.command = "clippy";
|
|
};
|
|
};
|
|
programs.zed-editor = {
|
|
enable = true;
|
|
userSettings = {
|
|
show_edit_predictions = false;
|
|
telemetry = {
|
|
diagnostics = false;
|
|
};
|
|
helix_mode = true;
|
|
base_keymap = "VSCode";
|
|
ui_font_family = "Fira Sans";
|
|
buffer_font_family = "Fira Code";
|
|
ui_font_size = 15;
|
|
buffer_font_size = 13;
|
|
theme = {
|
|
mode = "dark";
|
|
dark = "Gruvbox Dark Hard";
|
|
light = "Gruvbox Light Hard";
|
|
};
|
|
"unstable.ui_density" = "compact";
|
|
auto_install_extensions = {
|
|
discord-presence = true;
|
|
};
|
|
format_on_save = "off";
|
|
};
|
|
userKeymaps = [
|
|
{
|
|
"context" = "Workspace";
|
|
"bindings" = {
|
|
"shift shift" = "file_finder::Toggle";
|
|
};
|
|
}
|
|
{
|
|
"context" = "Editor && vim_mode == helix_normal";
|
|
"bindings" = {
|
|
# "space a" = "editor::ToggleCodeActions";
|
|
# "space f" = "file_finder::Toggle";
|
|
# "space t" = "project_panel::ToggleFocus";
|
|
# "space c" = "terminal_panel::ToggleFocus";
|
|
"+" = "pane::ActivateNextItem";
|
|
"-" = "pane::ActivatePreviousItem";
|
|
# "x" = "vim::ToggleVisualLine";
|
|
# "ctrl-c" = "vim::ToggleComments";
|
|
};
|
|
}
|
|
# {
|
|
# context = "Editor && vim_mode == visual";
|
|
# bindings = {
|
|
# "x" = "vim::Down";
|
|
# "ctrl-c" = "vim::ToggleComments";
|
|
# };
|
|
# }
|
|
];
|
|
};
|
|
xdg.mimeApps.enable = true;
|
|
xdg.mimeApps.defaultApplications = {
|
|
"text/html" = "glinks.desktop";
|
|
"x-scheme-handler/http" = "glinks.desktop";
|
|
"x-scheme-handler/https" = "glinks.desktop";
|
|
"x-scheme-handler/about" = "glinks.desktop";
|
|
"x-scheme-handler/unknown" = "glinks.desktop";
|
|
};
|
|
xdg.desktopEntries.glinks = {
|
|
name="gLinks";
|
|
comment="Graphical links";
|
|
exec="links -g %U";
|
|
terminal=false;
|
|
type="Application";
|
|
categories=[ "Network" "WebBrowser" ];
|
|
mimeType = [ "text/html" "text/xml" ];
|
|
|
|
};
|
|
# services.opensnitch-ui = {
|
|
# enable = true;
|
|
# };
|
|
};
|
|
programs.obs-studio = {
|
|
enable = true;
|
|
enableVirtualCamera = true;
|
|
};
|
|
}
|