1

Compare commits

..

8 Commits

10 changed files with 159 additions and 219 deletions

View File

@ -130,16 +130,16 @@ bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10 bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Reset the workspace positions after disabling and reenabling a monitor # Reset the workspace positions after disabling and reenabling a monitor
bind = CTRL ALT, R, moveworkspacetomonitor, 1 DP-1 bind = CTRL ALT, R, moveworkspacetomonitor, 1 HDMI-A-1
bind = CTRL ALT, R, moveworkspacetomonitor, 2 DP-1 bind = CTRL ALT, R, moveworkspacetomonitor, 2 HDMI-A-1
bind = CTRL ALT, R, moveworkspacetomonitor, 3 DP-1 bind = CTRL ALT, R, moveworkspacetomonitor, 3 HDMI-A-1
bind = CTRL ALT, R, moveworkspacetomonitor, 4 DP-1 bind = CTRL ALT, R, moveworkspacetomonitor, 4 HDMI-A-1
bind = CTRL ALT, R, moveworkspacetomonitor, 5 DP-1 bind = CTRL ALT, R, moveworkspacetomonitor, 5 HDMI-A-1
bind = CTRL ALT, R, moveworkspacetomonitor, 6 DP-1 bind = CTRL ALT, R, moveworkspacetomonitor, 6 HDMI-A-1
bind = CTRL ALT, R, moveworkspacetomonitor, 7 DP-1 bind = CTRL ALT, R, moveworkspacetomonitor, 7 HDMI-A-1
bind = CTRL ALT, R, moveworkspacetomonitor, 8 DP-1 bind = CTRL ALT, R, moveworkspacetomonitor, 8 HDMI-A-1
bind = CTRL ALT, R, moveworkspacetomonitor, 9 DP-1 bind = CTRL ALT, R, moveworkspacetomonitor, 9 HDMI-A-1
bind = CTRL ALT, R, moveworkspacetomonitor, 10 HDMI-A-1 bind = CTRL ALT, R, moveworkspacetomonitor, 10 DP-1
# Move/resize windows with mainMod + LMB/RMB and dragging # Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:272, movewindow

View File

@ -274,10 +274,6 @@ rec {
sessionVariables = { sessionVariables = {
LANG = "en_US.UTF-8"; LANG = "en_US.UTF-8";
# TODO: Configure in neovim/helix modules and choose a winner
# EDITOR = "hx";
# VISUAL = "hx";
# TERMINAL = "alacritty -o font.size=12"; # TERMINAL = "alacritty -o font.size=12";
TERMINAL = "kitty"; TERMINAL = "kitty";
BROWSER = "firefox"; BROWSER = "firefox";
@ -303,67 +299,67 @@ rec {
}; };
# TODO: Split this more between laptop and desktop... # TODO: Split this more between laptop and desktop...
# TODO: Check what packages are installed here and in modules and check if there is already a service/hm-module for it
# TODO: If so use this or adapt the config from there (example gnome.sushi is also added to dbus packages in services.sushi)
# TODO: Make a module for standard UNIX replacements # TODO: Make a module for standard UNIX replacements
# TODO: Make a video player module
# Add stuff for your user as you see fit: # Add stuff for your user as you see fit:
home.packages = with pkgs; [ home.packages = with pkgs; [
# CLI Tools # Shell utils
# bat # cat with wings (enabled as program) (ripgrep.override {withPCRE2 = true;}) # fast as fuck
# exa # ls in cool (enabled as program) # NOTE: Unmaintained gdu # Alternative to du-dust (I like it better)
eza duf # Disk usage analyzer (for all disk overview)
# delta # diffier diff differ (enabled as program) sd # sed alternative
# fzf # fuzzy find (enabled as program in fish module) fclones # duplicate file finder
tealdeer # very fast tldr (so readable man)
atool # Archive preview
ffmpegthumbnailer # Video thumbnails
mediainfo
tree # Folder preview
unrar
p7zip
unzip
progress
tokei # Text file statistics in a project tokei # Text file statistics in a project
poppler_utils # pdfunite appimage-run
# ffmpeg # Convert video (magic), v4 nvd # nix rebuild diff
file
# spotdl # TODO: Borked
# geteltorito # extreact boot image from iso
# gitbatch # overview over multiple repos
# Hardware/Software info
pciutils # lspci
glxinfo # opengl info
wayland-utils # wayland-info
aha # ansi html adapter? TODO: Why did I install this?
# radeontop
clinfo # OpenCL info
vulkan-tools # vulkaninfo
libva-utils # vainfo
vdpauinfo
# rocminfo # radeon comptute platform info
hwloc
lm_sensors
acpica-tools # Dump ACPI tables etc.
# Video/Image utils
ffmpeg_5-full # I love ffmpeg (v5, including ffplay) ffmpeg_5-full # I love ffmpeg (v5, including ffplay)
ffmpeg-normalize ffmpeg-normalize
x265 x265
imagemagick # Convert image (magic) imagemagick # Convert image (magic)
vlc
ueberzugpp # Display images in terminal (alacritty) ueberzugpp # Display images in terminal (alacritty)
(ripgrep.override {withPCRE2 = true;}) # fast as fuck
nvd # nix rebuild diff # Document utils
# du-dust # Disk usage analyzer (for directories) poppler_utils # pdfunite
gdu # Alternative to du-dust (I like it better)
duf # Disk usage analyzer (for all disk overview)
fd # find alternative
sd # sed alternative
tealdeer # very fast tldr (so readable man)
# gtop # graphic top # We have btop already...
fclones # duplicate file finder
gum # nice shell scripts
geteltorito # extreact boot image from iso
gitbatch # overview over multiple repos
# TODO: Maybe general document/typesetting module?
graphviz # generate graphs from code graphviz # generate graphs from code
xdot # .dot file viewer # xdot # .dot file viewer
kgraphviewer # dot graph viewer # kgraphviewer # dot graph viewer
d2 # generate diagrams from code # d2 # generate diagrams from code
plantuml plantuml
gnuplot # generate function plots gnuplot # generate function plots
pdf2svg pdf2svg
# TODO: Latex module with individual packages # TODO: Latex module with individual packages
texlive.combined.scheme-full texlive.combined.scheme-full
# tikzit # tikzit
# texlab # Incredibly lag
pandoc # document converting madness pandoc # document converting madness
# TODO: Programming languages module
alejandra # nix code formatter
nil # nix language server
libnotify
inotifyTools # inotifywait etc.
atool # Archive preview
ffmpegthumbnailer # Video thumbnails
mediainfo
tree # Folder preview
# gnome.zenity # Popups from terminal
unrar
p7zip
unzip
progress
# Networking # Networking
dig dig
@ -381,68 +377,30 @@ rec {
cifs-utils # Mount samba shares cifs-utils # Mount samba shares
nfs-utils nfs-utils
sshfs sshfs
protonvpn-cli
appimage-run # GUI apps
# decker # TODO: Build failure vlc
# google-chrome # Trash, but required for decker pdf export
# (pkgs.writeShellScriptBin "chrome" "exec -a $0 ${google-chrome}/bin/google-chrome-stable $@")
cool-retro-term cool-retro-term
ventoy-full # Bootable USB for many ISOs ventoy-full # Bootable USB for many ISOs
# geekbench # spotify # Uses flatpak
# spotify # NOTE: Uses flatpak
# neovide # NOTE: Installed in modules/neovim
sqlitebrowser # To modify tables sqlitebrowser # To modify tables
dbeaver-bin # To import/export data + diagrams dbeaver-bin # To import/export data + diagrams
hoppscotch # Test APIs hoppscotch # Test APIs
# decker # TODO: Build failure
# Xooooorg/Desktop environment stuff
# xclip
xorg.xwininfo # See what apps run in XWayland
# xdotool
# Hardware/Software info
neofetch # Easily see interesting package versions/kernel
pciutils # lspci
glxinfo # opengl info
wayland-utils # wayland-info
aha # ansi html adapter? TODO: Why did I install this?
# radeontop
clinfo # OpenCL info
vulkan-tools # vulkaninfo
libva-utils # vainfo
vdpauinfo
# rocminfo # radeon comptute platform info
hwloc
lm_sensors
acpica-tools # Dump ACPI tables etc.
# Web stuff
signal-desktop signal-desktop
# element-desktop # matrix client
# webcord # Unshitted discord? Well, except Krisp of course
# ncspot # Spotify in cool (but slow)?
protonvpn-cli
# yt-dlp # download videos (from almost anywhere) # HM program
filezilla filezilla
# dnsmasq # For Access Point/Hotspot
# linux-wifi-hotspot
# spotdl-4_1_6 # My derivation as temporary fix
# spotdl # TODO: Borked
# Tools
# calibre # Do I even read # calibre # Do I even read
virt-manager # virt-manager
# gource # Visualize git commit log, completely useless # gource # Visualize git commit log, completely useless
# anki-bin # Use anki-bin as anki is some versions behind NOTE: anki-bin doesn't support fcitx5 :( # anki-bin # Use anki-bin as anki is some versions behind NOTE: anki-bin doesn't support fcitx5 :(
anki anki
# inputs.nixos-conf-editor.packages."x86_64-linux".nixos-conf-editor # inputs.nixos-conf-editor.packages."x86_64-linux".nixos-conf-editor
# octave # GNU matlab basically # octave # GNU matlab basically
logisim-evolution # Digital circuit simulator # logisim-evolution # Digital circuit simulator
digital # Digital circuit simulator # digital # Digital circuit simulator
okteta # hex editor # okteta # hex editor
kdiff3 # diff/patch tool # kdiff3 # diff/patch tool
font-manager font-manager
# Office # Office
@ -460,7 +418,7 @@ rec {
# vale # Why not lint everything (including english)? # vale # Why not lint everything (including english)?
# TODO: Development module, I need multiple modules to be able to add python packages to a single python install... # TODO: Development module, I need multiple modules to be able to add python packages to a single python install...
(python311.withPackages (p: (python312.withPackages (p:
with p; [ with p; [
# p.rich # p.rich
# p.numpy # p.numpy
@ -488,7 +446,6 @@ rec {
inkscape inkscape
# handbrake # handbrake
# makemkv # makemkv
AusweisApp2 AusweisApp2
# Use NixCommunity binary cache # Use NixCommunity binary cache
@ -505,7 +462,7 @@ rec {
home-manager.enable = true; home-manager.enable = true;
alacritty = { alacritty = {
enable = true; enable = false;
settings = { settings = {
window = { window = {
@ -648,11 +605,6 @@ rec {
}; };
}; };
broot = {
enable = true;
enableFishIntegration = true;
};
btop.enable = true; btop.enable = true;
direnv = { direnv = {
@ -660,14 +612,25 @@ rec {
nix-direnv.enable = true; nix-direnv.enable = true;
}; };
# exa.enable = true; # NOTE: Unmaintained eza = {
enable = true;
enableFishIntegration = config.modules.fish.enable;
};
fastfetch = {
enable = true;
};
fd = {
enable = true;
};
fzf = { fzf = {
enable = true; enable = true;
enableFishIntegration = config.modules.fish.enable; enableFishIntegration = config.modules.fish.enable;
}; };
gallery-dl.enable = true; # TODO: Alternative to cyberdrop-dl? gallery-dl.enable = false; # TODO: Alternative to cyberdrop-dl?
git = { git = {
enable = true; enable = true;
@ -678,46 +641,6 @@ rec {
userName = "Christoph Urlacher"; userName = "Christoph Urlacher";
}; };
# helix = {
# enable = true;
# # NOTE: Syntax changed
# # languages = [
# # {
# # name = "verilog";
# # roots = [
# # ".svls.toml"
# # ".svlint.toml"
# # ];
# # language-server = {
# # command = "svls";
# # args = [];
# # };
# # }
# # ];
# # https://docs.helix-editor.com/configuration.html
# settings = {
# # theme = "base16_terminal";
# editor = {
# scrolloff = 10;
# mouse = false; # Default true
# middle-click-paste = false; # Default true
# line-number = "relative";
# cursorline = true;
# auto-completion = true; # Default
# bufferline = "multiple";
# cursor-shape = {
# normal = "block";
# insert = "bar";
# select = "underline";
# };
# lsp.display-messages = true;
# indent-guides.render = false;
# };
# };
# }; # NOTE: If error occurs after system update on fish init run "ssh-add"
keychain = { keychain = {
enable = true; enable = true;
enableFishIntegration = config.modules.fish.enable; enableFishIntegration = config.modules.fish.enable;
@ -773,7 +696,7 @@ rec {
}; };
nushell = { nushell = {
enable = true; enable = false;
}; };
# Git status replacement with file selection by number # Git status replacement with file selection by number

View File

@ -18,6 +18,8 @@ in {
builtins.concatLists [ builtins.concatLists [
(optionals cfg.google [ (optionals cfg.google [
google-chrome # Trash, but required for decker pdf export google-chrome # Trash, but required for decker pdf export
# Required for some flatpak compatibility
(pkgs.writeShellScriptBin "chrome" "exec -a $0 ${google-chrome}/bin/google-chrome-stable $@") (pkgs.writeShellScriptBin "chrome" "exec -a $0 ${google-chrome}/bin/google-chrome-stable $@")
]) ])
]; ];

View File

@ -45,14 +45,15 @@ in {
}) })
]; ];
xdg.desktopEntries.firefox-private = { # Not required with rofi -drun-show-actions
name = "Firefox (Incognito)"; # xdg.desktopEntries.firefox-private = {
genericName = "Private web browser"; # name = "Firefox (Incognito)";
icon = "firefox"; # genericName = "Private web browser";
exec = "firefox --private-window %U"; # icon = "firefox";
terminal = false; # exec = "firefox --private-window %U";
categories = ["Network" "WebBrowser"]; # terminal = false;
}; # categories = ["Network" "WebBrowser"];
# };
programs.firefox = { programs.firefox = {
enable = true; enable = true;

View File

@ -15,6 +15,11 @@ in {
options.modules.helix = import ./options.nix {inherit lib mylib;}; options.modules.helix = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable { config = mkIf cfg.enable {
home.sessionVariables = {
EDITOR = "hx";
VISUAL = "hx";
};
programs.helix = { programs.helix = {
enable = true; enable = true;

View File

@ -43,14 +43,16 @@ in {
wl-clipboard wl-clipboard
clipman # Clipboard manager (wl-paste) clipman # Clipboard manager (wl-paste)
libnotify
inotifyTools # inotifywait etc.
moc # Audio player moc # Audio player
ncpamixer # ncurses pavucontrol ncpamixer # ncurses pavucontrol
slurp # Region selector for screensharing slurp # Region selector for screensharing
grim # Grab images from compositor grim # Grab images from compositor
xfce.thunar # xfce.thunar
xfce.tumbler # Thunar thumbnails # xfce.tumbler # Thunar thumbnails
libsForQt5.polkit-kde-agent libsForQt5.polkit-kde-agent
]; ];

View File

@ -33,26 +33,27 @@ in {
]; ];
bookmarks = { bookmarks = {
b = "~/";
c = "~/.config"; c = "~/.config";
d = "~/Documents"; d = "~/Documents";
D = "~/Downloads"; D = "~/Downloads";
h = "~/Notes/HHU"; # h = "~/Notes/HHU";
l = "~/Local"; # l = "~/Local";
m = "~/Mount"; # m = "~/Mount";
n = "~/Notes"; # n = "~/Notes";
N = "~/NixFlake"; N = "~/NixFlake";
p = "~/Pictures"; # p = "~/Pictures";
t = "~/Notes/TU"; t = "~/Notes/TU";
v = "~/Videos"; # v = "~/Videos";
}; };
plugins = { plugins = {
mappings = { mappings = {
c = "fzcd"; c = "fzcd";
d = "dragdrop"; d = "dragdrop";
f = "finder"; # f = "finder";
j = "autojump"; j = "autojump";
k = "kdeconnect"; # k = "kdeconnect";
p = "preview-tui"; p = "preview-tui";
# s = "suedit"; # s = "suedit";
# s = "x2sel"; # s = "x2sel";
@ -63,8 +64,8 @@ in {
(pkgs.fetchFromGitHub { (pkgs.fetchFromGitHub {
owner = "jarun"; owner = "jarun";
repo = "nnn"; repo = "nnn";
rev = "26d5b5c6141f0424869db8ca47e1d370f7b898d5"; rev = "33126ee813ed92726aa66295b9771ffe93e7ff0a";
sha256 = "sha256-a2Fq17mS/m7wRvPc1EkUun198SoeRZtJEABGjPWW+6E="; sha256 = "sha256-g19uI36HyzTF2YUQKFP4DE2ZBsArGryVHhX79Y0XzhU=";
}) })
+ "/plugins"; + "/plugins";
}; };

View File

@ -29,7 +29,7 @@ in {
}; };
in { in {
bindings = { bindings = {
"$mainMod, A" = ["exec, rofi -show drun"]; "$mainMod, A" = ["exec, rofi -drun-show-actions -show drun"];
"$mainMod, escape" = ["exec, \"${power-menu}\""]; "$mainMod, escape" = ["exec, \"${power-menu}\""];
}; };
}; };

View File

@ -208,45 +208,51 @@ with mylib.networking; {
removedAssociations = { removedAssociations = {
"application/pdf" = "chromium-browser.desktop"; "application/pdf" = "chromium-browser.desktop";
"text/plain" = "code.desktop";
}; };
defaultApplications = { defaultApplications = let
textEditor = "neovide.desktop"; # Helix.desktop
videoPlayer = "mpv.desktop";
imageViewer = "imv.desktop";
audioPlayer = "vlc.desktop"; # mov.desktop
in {
"inode/directory" = "nnn.desktop"; "inode/directory" = "nnn.desktop";
"application/pdf" = "org.pwmt.zathura.desktop"; "application/pdf" = "org.pwmt.zathura.desktop";
"application/x-sh" = "Helix.desktop"; "application/x-sh" = "${textEditor}";
"application/xhtml+xml" = "Helix.desktop"; "application/xhtml+xml" = "${textEditor}";
"application/xml" = "Helix.desktop"; "application/xml" = "${textEditor}";
"image/bmp" = "imv.desktop"; "image/bmp" = "${imageViewer}";
"image/jpeg" = "imv.desktop"; "image/jpeg" = "${imageViewer}";
"image/png" = "imv.desktop"; "image/png" = "${imageViewer}";
"image/svg+xml" = "imv.desktop"; "image/svg+xml" = "${imageViewer}";
"image/tiff" = "imv.desktop"; "image/tiff" = "${imageViewer}";
"image/webp" = "imv.desktop"; "image/webp" = "${imageViewer}";
"video/mp2t" = "mpv.desktop"; "video/mp2t" = "${videoPlayer}";
"video/mp4" = "mpv.desktop"; "video/mp4" = "${videoPlayer}";
"video/mpeg" = "mpv.desktop"; "video/mpeg" = "${videoPlayer}";
"video/ogg" = "mpv.desktop"; "video/ogg" = "${videoPlayer}";
"video/quicktime" = "mpv.desktop"; "video/quicktime" = "${videoPlayer}";
"video/webm" = "mpv.desktop"; "video/webm" = "${videoPlayer}";
"video/x-matroska" = "mpv.desktop"; "video/x-matroska" = "${videoPlayer}";
"video/x-msvideo" = "mpv.desktop"; "video/x-msvideo" = "${videoPlayer}";
"video/x-ms-wmv" = "mpv.desktop"; "video/x-ms-wmv" = "${videoPlayer}";
"text/css" = "Helix.desktop"; "text/css" = "${textEditor}";
"text/csv" = "Helix.desktop"; "text/csv" = "${textEditor}";
"text/javascript" = "Helix.desktop"; "text/javascript" = "${textEditor}";
"text/json" = "Helix.desktop"; "text/json" = "${textEditor}";
"text/plain" = "Helix.desktop"; "text/plain" = "${textEditor}";
"text/xml" = "Helix.desktop"; "text/xml" = "${textEditor}";
# "audio/mpeg" = "moc.desktop"; "audio/mpeg" = "${audioPlayer}";
# "audio/ogg" = "moc.desktop"; "audio/ogg" = "${audioPlayer}";
# "audio/opus" = "moc.desktop"; "audio/opus" = "${audioPlayer}";
# "audio/wav" = "moc.desktop"; "audio/wav" = "${audioPlayer}";
# "audio/webm" = "moc.desktop"; "audio/webm" = "${audioPlayer}";
}; };
addedAssociations = defaultApplications; addedAssociations = defaultApplications;

View File

@ -45,7 +45,7 @@
swapDevices = lib.mkForce [ swapDevices = lib.mkForce [
# { # {
# device = "/var/swap"; # device = "/var/swap";
# # size = 1024 * 16 * 2; # twice the RAM for hibernation # # size = 1024 * 32 * 2; # twice the RAM for hibernation
# size = 1024 * 8; # Without hibernation 4.0 GB to 0.5 x RAM # size = 1024 * 8; # Without hibernation 4.0 GB to 0.5 x RAM
# } # }
]; ];
@ -75,7 +75,7 @@
nvidia = { nvidia = {
modesetting.enable = true; # Not officially supported by NVidia but needed for wayland modesetting.enable = true; # Not officially supported by NVidia but needed for wayland
open = false; # TODO: Build failure on 2024-18-01 open = false; # TODO: Build failure on 2024-18-01
nvidiaSettings = true; nvidiaSettings = false; # Those are for x-server
}; };
# video.hidpi.enable = lib.mkDefault true; # No longer has any effect # video.hidpi.enable = lib.mkDefault true; # No longer has any effect
@ -91,21 +91,21 @@
# amdvlk # RADV (mesa) and AMDVLK (amd) can be used simultaneously # amdvlk # RADV (mesa) and AMDVLK (amd) can be used simultaneously
# VAAPI/VDPAU: https://nixos.wiki/wiki/Accelerated_Video_Playback # VAAPI/VDPAU: https://nixos.wiki/wiki/Accelerated_Video_Playback
vaapiVdpau # Taken from wiki vaapiVdpau # Taken from wiki, this is also part of nixos-hardware/common/gpu/nvidia
libvdpau-va-gl # Taken from wiki
libvdpau # NOTE: Don't know if needed/where it belongs...
libva # NOTE: Don't know if needed/where it belongs...
nvidia-vaapi-driver # libvdpau-va-gl # Taken from wiki, but for Intel?
# libvdpau # NOTE: Don't know if needed/where it belongs...
# libva # NOTE: Don't know if needed/where it belongs...
# nvidia-vaapi-driver # Wild guess
]; ];
}; };
sane.enable = true; # Scanning # sane.enable = true; # Scanning
# xpadneo.enable = true; # Xbox Controller
xpadneo.enable = true; # Xbox Controller
}; };
environment.variables.AMD_VULKAN_ICD = "RADV"; # Choose mesa driver by default # environment.variables.AMD_VULKAN_ICD = "RADV"; # Choose mesa driver by default
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
} }