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

View File

@ -274,10 +274,6 @@ rec {
sessionVariables = {
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 = "kitty";
BROWSER = "firefox";
@ -303,67 +299,67 @@ rec {
};
# 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 video player module
# Add stuff for your user as you see fit:
home.packages = with pkgs; [
# CLI Tools
# bat # cat with wings (enabled as program)
# exa # ls in cool (enabled as program) # NOTE: Unmaintained
eza
# delta # diffier diff differ (enabled as program)
# fzf # fuzzy find (enabled as program in fish module)
# Shell utils
(ripgrep.override {withPCRE2 = true;}) # fast as fuck
gdu # Alternative to du-dust (I like it better)
duf # Disk usage analyzer (for all disk overview)
sd # sed alternative
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
poppler_utils # pdfunite
# ffmpeg # Convert video (magic), v4
appimage-run
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-normalize
x265
imagemagick # Convert image (magic)
vlc
ueberzugpp # Display images in terminal (alacritty)
(ripgrep.override {withPCRE2 = true;}) # fast as fuck
nvd # nix rebuild diff
# du-dust # Disk usage analyzer (for directories)
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?
# Document utils
poppler_utils # pdfunite
graphviz # generate graphs from code
xdot # .dot file viewer
kgraphviewer # dot graph viewer
d2 # generate diagrams from code
# xdot # .dot file viewer
# kgraphviewer # dot graph viewer
# d2 # generate diagrams from code
plantuml
gnuplot # generate function plots
pdf2svg
# TODO: Latex module with individual packages
texlive.combined.scheme-full
# tikzit
# texlab # Incredibly lag
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
dig
@ -381,68 +377,30 @@ rec {
cifs-utils # Mount samba shares
nfs-utils
sshfs
protonvpn-cli
appimage-run
# decker # TODO: Build failure
# google-chrome # Trash, but required for decker pdf export
# (pkgs.writeShellScriptBin "chrome" "exec -a $0 ${google-chrome}/bin/google-chrome-stable $@")
# GUI apps
vlc
cool-retro-term
ventoy-full # Bootable USB for many ISOs
# geekbench
# spotify # NOTE: Uses flatpak
# neovide # NOTE: Installed in modules/neovim
# spotify # Uses flatpak
sqlitebrowser # To modify tables
dbeaver-bin # To import/export data + diagrams
hoppscotch # Test APIs
# 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
# decker # TODO: Build failure
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
# 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
virt-manager
# virt-manager
# 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
# inputs.nixos-conf-editor.packages."x86_64-linux".nixos-conf-editor
# octave # GNU matlab basically
logisim-evolution # Digital circuit simulator
digital # Digital circuit simulator
okteta # hex editor
kdiff3 # diff/patch tool
# logisim-evolution # Digital circuit simulator
# digital # Digital circuit simulator
# okteta # hex editor
# kdiff3 # diff/patch tool
font-manager
# Office
@ -460,7 +418,7 @@ rec {
# 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...
(python311.withPackages (p:
(python312.withPackages (p:
with p; [
# p.rich
# p.numpy
@ -488,7 +446,6 @@ rec {
inkscape
# handbrake
# makemkv
AusweisApp2
# Use NixCommunity binary cache
@ -505,7 +462,7 @@ rec {
home-manager.enable = true;
alacritty = {
enable = true;
enable = false;
settings = {
window = {
@ -648,11 +605,6 @@ rec {
};
};
broot = {
enable = true;
enableFishIntegration = true;
};
btop.enable = true;
direnv = {
@ -660,14 +612,25 @@ rec {
nix-direnv.enable = true;
};
# exa.enable = true; # NOTE: Unmaintained
eza = {
enable = true;
enableFishIntegration = config.modules.fish.enable;
};
fastfetch = {
enable = true;
};
fd = {
enable = true;
};
fzf = {
enable = true;
enableFishIntegration = config.modules.fish.enable;
};
gallery-dl.enable = true; # TODO: Alternative to cyberdrop-dl?
gallery-dl.enable = false; # TODO: Alternative to cyberdrop-dl?
git = {
enable = true;
@ -678,46 +641,6 @@ rec {
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 = {
enable = true;
enableFishIntegration = config.modules.fish.enable;
@ -773,7 +696,7 @@ rec {
};
nushell = {
enable = true;
enable = false;
};
# Git status replacement with file selection by number

View File

@ -18,6 +18,8 @@ in {
builtins.concatLists [
(optionals cfg.google [
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 $@")
])
];

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -208,45 +208,51 @@ with mylib.networking; {
removedAssociations = {
"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";
"application/pdf" = "org.pwmt.zathura.desktop";
"application/x-sh" = "Helix.desktop";
"application/xhtml+xml" = "Helix.desktop";
"application/xml" = "Helix.desktop";
"application/x-sh" = "${textEditor}";
"application/xhtml+xml" = "${textEditor}";
"application/xml" = "${textEditor}";
"image/bmp" = "imv.desktop";
"image/jpeg" = "imv.desktop";
"image/png" = "imv.desktop";
"image/svg+xml" = "imv.desktop";
"image/tiff" = "imv.desktop";
"image/webp" = "imv.desktop";
"image/bmp" = "${imageViewer}";
"image/jpeg" = "${imageViewer}";
"image/png" = "${imageViewer}";
"image/svg+xml" = "${imageViewer}";
"image/tiff" = "${imageViewer}";
"image/webp" = "${imageViewer}";
"video/mp2t" = "mpv.desktop";
"video/mp4" = "mpv.desktop";
"video/mpeg" = "mpv.desktop";
"video/ogg" = "mpv.desktop";
"video/quicktime" = "mpv.desktop";
"video/webm" = "mpv.desktop";
"video/x-matroska" = "mpv.desktop";
"video/x-msvideo" = "mpv.desktop";
"video/x-ms-wmv" = "mpv.desktop";
"video/mp2t" = "${videoPlayer}";
"video/mp4" = "${videoPlayer}";
"video/mpeg" = "${videoPlayer}";
"video/ogg" = "${videoPlayer}";
"video/quicktime" = "${videoPlayer}";
"video/webm" = "${videoPlayer}";
"video/x-matroska" = "${videoPlayer}";
"video/x-msvideo" = "${videoPlayer}";
"video/x-ms-wmv" = "${videoPlayer}";
"text/css" = "Helix.desktop";
"text/csv" = "Helix.desktop";
"text/javascript" = "Helix.desktop";
"text/json" = "Helix.desktop";
"text/plain" = "Helix.desktop";
"text/xml" = "Helix.desktop";
"text/css" = "${textEditor}";
"text/csv" = "${textEditor}";
"text/javascript" = "${textEditor}";
"text/json" = "${textEditor}";
"text/plain" = "${textEditor}";
"text/xml" = "${textEditor}";
# "audio/mpeg" = "moc.desktop";
# "audio/ogg" = "moc.desktop";
# "audio/opus" = "moc.desktop";
# "audio/wav" = "moc.desktop";
# "audio/webm" = "moc.desktop";
"audio/mpeg" = "${audioPlayer}";
"audio/ogg" = "${audioPlayer}";
"audio/opus" = "${audioPlayer}";
"audio/wav" = "${audioPlayer}";
"audio/webm" = "${audioPlayer}";
};
addedAssociations = defaultApplications;

View File

@ -45,7 +45,7 @@
swapDevices = lib.mkForce [
# {
# 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
# }
];
@ -75,7 +75,7 @@
nvidia = {
modesetting.enable = true; # Not officially supported by NVidia but needed for wayland
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
@ -91,21 +91,21 @@
# amdvlk # RADV (mesa) and AMDVLK (amd) can be used simultaneously
# VAAPI/VDPAU: https://nixos.wiki/wiki/Accelerated_Video_Playback
vaapiVdpau # Taken from wiki
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...
vaapiVdpau # Taken from wiki, this is also part of nixos-hardware/common/gpu/nvidia
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
xpadneo.enable = true; # Xbox Controller
# sane.enable = true; # Scanning
# 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";
}