diff --git a/hosts/denkbrett/configuration.nix b/hosts/denkbrett/configuration.nix index da56c5d..c217277 100644 --- a/hosts/denkbrett/configuration.nix +++ b/hosts/denkbrett/configuration.nix @@ -62,7 +62,6 @@ pkgs.mobile-broadband-provider-info pkgs.modem-manager-gui pkgs.wireshark - pkgs.jetbrains.idea-ultimate ]; # Bootloader. diff --git a/modules/desktop-legacy/gaming.nix b/modules/desktop-legacy/gaming.nix index e8b0df4..94f60fa 100644 --- a/modules/desktop-legacy/gaming.nix +++ b/modules/desktop-legacy/gaming.nix @@ -17,9 +17,7 @@ with lib; { pkgs, ... }: { home.packages = with pkgs; [ - lutris prismlauncher - wineWowPackages.stable dxvk_2 vkd3d-proton ]; diff --git a/modules/desktop-legacy/social.nix b/modules/desktop-legacy/social.nix index dda7fc3..22f80f0 100644 --- a/modules/desktop-legacy/social.nix +++ b/modules/desktop-legacy/social.nix @@ -59,7 +59,6 @@ with lib; mumble element-desktop pkgs.evolution-data-server-gtk4 - iamb deltachat-desktop ]; }; diff --git a/modules/desktop/audio.nix b/modules/desktop/audio.nix index 2354ae8..acba28b 100644 --- a/modules/desktop/audio.nix +++ b/modules/desktop/audio.nix @@ -14,6 +14,6 @@ environment.systemPackages = with pkgs; [ playerctl pulsemixer - helvum + crosspipe ]; } diff --git a/modules/desktop/home/browser.nix b/modules/desktop/home/browser.nix index 932db95..abe1ca1 100644 --- a/modules/desktop/home/browser.nix +++ b/modules/desktop/home/browser.nix @@ -17,29 +17,23 @@ }; policies = { DefaultDownloadDirectory = "\${home}/Downloads"; - Extensions.Install = - builtins.map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") - [ - "bitwarden-password-manager" - "darkreader" - "gruvbox-dark-theme" - "indie-wiki-buddy" - "kagi-search-for-firefox" - "multi-account-containers" - "privacy-badger17" - "return-youtube-dislikes" - "shinigami-eyes" - "sponsorblock" - "styl-us" - "tabby-cat-friend" - "terms-of-service-didnt-read" - "torproject-snowflake" - "tridactyl-vim" - "ublock-origin" - "view-page-archive" - "web-clipper-obsidian" - "web-scrobbler" - ]; + Extensions.Install = map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") [ + "bitwarden-password-manager" + "darkreader" + "indie-wiki-buddy" + "kagi-search-for-firefox" + "multi-account-containers" + "privacy-badger17" + "return-youtube-dislikes" + "sponsorblock" + "styl-us" + "tabby-cat-friend" + "torproject-snowflake" + "tridactyl-vim" + "ublock-origin" + "web-clipper-obsidian" + "web-scrobbler" + ]; Extensions.Uninstall = [ "ddg@search.mozilla.org" "google@search.mozilla.org" @@ -180,6 +174,21 @@ icon = "https://lib.rs/favicon.png"; definedAliases = [ "libs" ]; }; + "gleam packages" = { + urls = [ + { + template = "https://packages.gleam.run/"; + params = [ + { + name = "search"; + value = "{searchTerms}"; + } + ]; + } + ]; + icon = "https://packages.gleam.run/static/packages-icon.svg"; + definedAliases = [ "libs" ]; + }; "rust docs" = { urls = [ { @@ -195,6 +204,16 @@ icon = "https://docs.rs/-/static/favicon.ico"; definedAliases = [ "docs" ]; }; + "gleam docs direct open" = { + urls = [ + { + template = "https://hexdocs.pm/{searchTerms}"; + } + ]; + definedAliases = [ + "gd" + ]; + }; "rust docs direct open" = { urls = [ { @@ -202,8 +221,7 @@ } ]; definedAliases = [ - "doc" - "docd" + "rd" ]; }; "rust std docs" = { diff --git a/modules/desktop/home/niri/shaders/arc.frag b/modules/desktop/home/niri/shaders/arc.frag index 3de5014..91b43cd 100644 --- a/modules/desktop/home/niri/shaders/arc.frag +++ b/modules/desktop/home/niri/shaders/arc.frag @@ -1,4 +1,6 @@ + #define PI 3.14159 + #define TAU 6.28319 #define WIDTH 3. diff --git a/modules/desktop/home/terminal.nix b/modules/desktop/home/terminal.nix index 725a68e..12eee04 100644 --- a/modules/desktop/home/terminal.nix +++ b/modules/desktop/home/terminal.nix @@ -4,7 +4,6 @@ enable = true; font.size = 12; font.name = "Departure Mono Nerd Font"; - shellIntegration.enableFishIntegration = false; keybindings = { "ctrl+shift+n" = "new_os_window_with_cwd"; }; diff --git a/modules/editors/helix/default.nix b/modules/editors/helix/default.nix index e75c477..99170c7 100644 --- a/modules/editors/helix/default.nix +++ b/modules/editors/helix/default.nix @@ -105,6 +105,13 @@ }; }; language = [ + { + name = "gleam"; + language-servers = [ + "gleam" + "discord-presence-lsp" + ]; + } { name = "nu"; language-servers = [ diff --git a/modules/net/hosts.nix b/modules/net/hosts.nix index 20333f7..c71569c 100644 --- a/modules/net/hosts.nix +++ b/modules/net/hosts.nix @@ -1,26 +1,31 @@ -{ ... }: +{ lib, ... }: +let + domains = [ + "tiktok.com" + "twitter.com" + "instagram.com" + "facebook.com" + "snapchat.com" + # "youtube.com" + + "google-analytics.com" + "stats.g.doubleclick.net" + "googleadservices.com" + "googletagmanager.com" + "googletagservices.com" + "googlesyndication.com" + ]; + prefixes = [ + "www." + "" + ]; +in { - networking.hosts = { - "127.0.0.1" = [ - "www.tiktok.com" - "www.twitter.com" - "www.instagram.com" - "www.facebook.com" - "www.snapchat.com" - - "tiktok.com" - "twitter.com" - "instagram.com" - "facebook.com" - "snapchat.com" - "lovense.com" - - "google-analytics.com" - "stats.g.doubleclick.net" - "googleadservices.com" - "googletagmanager.com" - "googletagservices.com" - "googlesyndication.com" - ]; - }; + networking.hosts = + let + withPrefixes = prefixes |> map (prefix: map (domain: prefix + domain) domains) |> lib.flatten; + in + { + "127.0.0.1" = withPrefixes; + }; } diff --git a/modules/shell/btop.nix b/modules/shell/btop.nix index 39b96dc..8f3c6c5 100644 --- a/modules/shell/btop.nix +++ b/modules/shell/btop.nix @@ -1,22 +1,18 @@ -{ ... }: +{ pkgs, ... }: { - home-manager.users.jade = - { pkgs, ... }: - { - programs.btop = { - enable = true; - package = pkgs.btop-rocm; - settings = { - shown_boxes = "cpu mem net proc gpu0"; - color_theme = "gruvbox_dark"; - vim_keys = true; - proc_per_core = true; - proc_filter_kernel = true; - proc_aggregate = true; - cpu_graph_upper = "total"; - cpu_graph_lower = "user"; - update_ms = 500; - }; - }; + programs.btop = { + enable = true; + package = pkgs.btop-rocm; + settings = { + shown_boxes = "cpu mem net proc gpu0"; + color_theme = "gruvbox_dark"; + vim_keys = true; + proc_per_core = true; + proc_filter_kernel = true; + proc_aggregate = true; + cpu_graph_upper = "total"; + cpu_graph_lower = "user"; + update_ms = 500; }; + }; } diff --git a/modules/shell/default.nix b/modules/shell/default.nix index 8db99b2..101833f 100644 --- a/modules/shell/default.nix +++ b/modules/shell/default.nix @@ -1,19 +1,23 @@ { pkgs, ... }: { imports = [ - ./nu.nix - ./starship.nix ./tty.nix - ./git.nix - ./mprocs.nix - ./btop.nix ./sudo.nix ]; programs.mosh.enable = true; programs.bat.enable = true; + environment.systemPackages = [ pkgs.nushell ]; home-manager.users.jade = { ... }: { + imports = [ + ./btop.nix + ./mprocs.nix + ./git.nix + ./starship.nix + ./nu.nix + ./elvish.nix + ]; programs.broot = { enable = true; settings = { @@ -33,5 +37,6 @@ }; }; - users.defaultUserShell = pkgs.nushell; + # TODO: Proper switch + users.defaultUserShell = pkgs.elvish; } diff --git a/modules/shell/elvish.nix b/modules/shell/elvish.nix new file mode 100644 index 0000000..832a0b7 --- /dev/null +++ b/modules/shell/elvish.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + xdg.configFile."elvish" = { + recursive = true; + executable = true; + source = ./elvish; + }; +} diff --git a/modules/shell/elvish/lib/direnv.elv b/modules/shell/elvish/lib/direnv.elv new file mode 100644 index 0000000..15babb0 --- /dev/null +++ b/modules/shell/elvish/lib/direnv.elv @@ -0,0 +1,18 @@ +## hook for direnv +set @edit:before-readline = $@edit:before-readline { + try { + var m = [("/nix/store/kv03kmfwkinhv4ar2hvh79jfkm1n5id5-direnv-2.37.1/bin/direnv" export elvish | from-json)] + if (> (count $m) 0) { + set m = (all $m) + keys $m | each { |k| + if $m[$k] { + set-env $k $m[$k] + } else { + unset-env $k + } + } + } + } catch e { + echo $e + } +} diff --git a/modules/shell/elvish/rc.elv b/modules/shell/elvish/rc.elv new file mode 100644 index 0000000..6732ffe --- /dev/null +++ b/modules/shell/elvish/rc.elv @@ -0,0 +1,28 @@ +# + +fn gnix {|@a| cd ~/nix-configs $@a } +fn grepo {|@a| cd ~/Documents/repos $@a } +fn wh {|@a| wormhole-rs $@a } + +fn gc {|@a| git commit $@a } +fn gca {|@a| git commit --all $@a } +fn gp {|@a| git push $@a } +fn gl {|@a| git pull $@a } +fn gs {|@a| git status $@a } + +fn cr {|@a| cargo run $@a } +fn cl {|@a| cargo clippy $@a } +fn cb {|@a| cargo build $@a } +fn cch {|@a| cargo check $@a } + +fn jb {|@a| just build $@a } + +fn px {|@a| pulsemixer $@a } + +fn guni {|@a| cd ~/Docs/uni $@a } + +fn juts {|@a| just $@a } + +# + +use direnv diff --git a/modules/shell/git.nix b/modules/shell/git.nix index f0315df..fbccfe7 100644 --- a/modules/shell/git.nix +++ b/modules/shell/git.nix @@ -5,51 +5,43 @@ ... }: { - home-manager.users.jade = - { - pkgs, - config, - ... - }: - { - programs.git = { - enable = true; - settings = { - user = { - name = "Schrottkatze"; - email = "git@schrottkatze.de"; - }; - }; - signing = { - format = "ssh"; - key = lib.mkDefault "${pkgs.writeText "blue_nk3.pub" "SHA256:h7d9+w4uACtz63L/MI7B1oB3fYxh8u+q6bs+SsSTKzY ssh:"}"; - signByDefault = true; - }; - }; - programs.jujutsu = { - enable = true; - settings = { - user = { - name = config.programs.git.userName; - email = config.programs.git.userEmail; - }; - }; - }; - programs.gitui = { - enable = true; - keyConfig = '' - ( - move_left: Some(( code: Char('h'), modifiers: "")), - move_right: Some(( code: Char('l'), modifiers: "")), - move_up: Some(( code: Char('k'), modifiers: "")), - move_down: Some(( code: Char('j'), modifiers: "")), - - stash_open: Some(( code: Char('l'), modifiers: "")), - open_help: Some(( code: F(1), modifiers: "")), - - status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT")), - ) - ''; + programs.git = { + enable = true; + settings = { + user = { + name = "Schrottkatze"; + email = "git@schrottkatze.de"; }; }; + signing = { + format = "ssh"; + key = lib.mkDefault "${pkgs.writeText "blue_nk3.pub" "SHA256:h7d9+w4uACtz63L/MI7B1oB3fYxh8u+q6bs+SsSTKzY ssh:"}"; + signByDefault = true; + }; + }; + programs.jujutsu = { + enable = true; + settings = { + user = { + name = config.programs.git.userName; + email = config.programs.git.userEmail; + }; + }; + }; + programs.gitui = { + enable = true; + keyConfig = '' + ( + move_left: Some(( code: Char('h'), modifiers: "")), + move_right: Some(( code: Char('l'), modifiers: "")), + move_up: Some(( code: Char('k'), modifiers: "")), + move_down: Some(( code: Char('j'), modifiers: "")), + + stash_open: Some(( code: Char('l'), modifiers: "")), + open_help: Some(( code: F(1), modifiers: "")), + + status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT")), + ) + ''; + }; } diff --git a/modules/shell/mprocs.nix b/modules/shell/mprocs.nix index 1a7a401..b087fff 100644 --- a/modules/shell/mprocs.nix +++ b/modules/shell/mprocs.nix @@ -1,31 +1,23 @@ -{ ... }: +{ pkgs, ... }: { - home-manager.users.jade = - { - pkgs, - lib, - ... - }: - { - home = { - packages = [ pkgs.mprocs ]; + home = { + packages = [ pkgs.mprocs ]; + }; + xdg.configFile."mprocs/mprocs.yaml" = { + text = builtins.toJSON { + proc_list_width = 15; + keymap_procs = { + "" = { + c = "toggle-focus"; + }; }; - xdg.configFile."mprocs/mprocs.yaml" = { - text = builtins.toJSON { - proc_list_width = 15; - keymap_procs = { - "" = { - c = "toggle-focus"; - }; - }; - keymap_term = { - "" = null; - # Ctrl-m so it doesnt overlap with zellij or helix - "" = { - c = "toggle-focus"; - }; - }; + keymap_term = { + "" = null; + # Ctrl-m so it doesnt overlap with zellij or helix + "" = { + c = "toggle-focus"; }; }; }; + }; } diff --git a/modules/shell/nu.nix b/modules/shell/nu.nix index 521a300..bcf3e9e 100644 --- a/modules/shell/nu.nix +++ b/modules/shell/nu.nix @@ -1,46 +1,42 @@ -{ config, ... }: +{ pkgs, ... }: { - home-manager.users.jade = - { pkgs, ... }: - { - # Needed for nu_scripts background_task - services.pueue = { - enable = true; - settings = { - shared = { - use_unix_socket = true; - }; - }; + # Needed for nu_scripts background_task + services.pueue = { + enable = true; + settings = { + shared = { + use_unix_socket = true; }; - home.packages = [ - pkgs.pueue - ]; - home.file."shell-startup" = { - source = ./nu/shell-startup.nu; - target = ".config/nushell/shell-startup.nu"; - }; - programs.nushell = { - enable = true; - package = config.users.defaultUserShell; - configFile.source = ./nu/config.nu; - envFile.source = ./nu/env.nu; - extraConfig = '' - plugin add ${pkgs.nushellPlugins.query}/bin/nu_plugin_query; - plugin add ${pkgs.nushellPlugins.polars}/bin/nu_plugin_polars; - plugin add ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats; - - plugin use query; - plugin use polars; - plugin use formats; - - source ${./nu/custom_commands.nu}; - source ${./nu/aliases.nu}; - nu ${./nu/shell-startup.nu}; - ''; - extraEnv = ''''; - }; - # programs.starship.enableNushellIntegration = true; - programs.carapace.enableNushellIntegration = true; - programs.direnv.enableNushellIntegration = true; }; + }; + home.packages = [ + pkgs.pueue + ]; + home.file."shell-startup" = { + source = ./nu/shell-startup.nu; + target = ".config/nushell/shell-startup.nu"; + }; + programs.nushell = { + enable = false; + # package = config.users.defaultUserShell; + configFile.source = ./nu/config.nu; + envFile.source = ./nu/env.nu; + extraConfig = '' + plugin add ${pkgs.nushellPlugins.query}/bin/nu_plugin_query; + plugin add ${pkgs.nushellPlugins.polars}/bin/nu_plugin_polars; + plugin add ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats; + + plugin use query; + plugin use polars; + plugin use formats; + + source ${./nu/custom_commands.nu}; + source ${./nu/aliases.nu}; + nu ${./nu/shell-startup.nu}; + ''; + extraEnv = ""; + }; + # programs.starship.enableNushellIntegration = true; + programs.carapace.enableNushellIntegration = true; + programs.direnv.enableNushellIntegration = true; } diff --git a/modules/shell/nu/aliases.nu b/modules/shell/nu/aliases.nu index 16ee547..80c4786 100644 --- a/modules/shell/nu/aliases.nu +++ b/modules/shell/nu/aliases.nu @@ -1,16 +1,8 @@ -alias gnix = cd ~/nix-configs; -alias grepo = cd ~/Documents/repos; -alias wh = wormhole-rs; alias b = broot; alias gg = gitui; alias ga = git add; -alias gc = git commit; -alias gca = git commit --all; -alias gp = git push; -alias gl = git pull; -alias gs = git status; alias clip = xclip -selection c; alias cr = cargo run; diff --git a/modules/shell/starship.nix b/modules/shell/starship.nix index 8cf92c5..04b6df6 100644 --- a/modules/shell/starship.nix +++ b/modules/shell/starship.nix @@ -1,44 +1,40 @@ { ... }: { - home-manager.users.jade = - { pkgs, ... }: - { - programs.starship = { - enable = true; - enableNushellIntegration = false; - settings = { - format = "$all$directory$character"; - character = { - success_symbol = "[\\$](green)"; - error_symbol = "[X](red)"; - }; - git_branch = { - format = "\\[[$symbol$branch]($style)\\]"; - symbol = " "; - }; - git_status = { - format = "([\\[$all_status$ahead_behind\\]]($style))"; - }; - haskell = { - format = "\\[[$symbol($version)]($style)\\]"; - symbol = " "; - }; - cmd_duration = { - format = "\\[[⏱ $duration]($style)\\]"; - }; - nix_shell = { - format = "\\[[$symbol$state( \\($name\\))]($style)\\]"; - symbol = " "; - }; - rust = { - format = "\\[[$symbol($version)]($style)\\]"; - symbol = " "; - }; - package = { - format = "\\[[$symbol$version]($style)\\]"; - symbol = " "; - }; - }; + programs.starship = { + enable = true; + enableNushellIntegration = false; + settings = { + format = "$all$directory$character"; + character = { + success_symbol = "[\\$](green)"; + error_symbol = "[X](red)"; + }; + git_branch = { + format = "\\[[$symbol$branch]($style)\\]"; + symbol = " "; + }; + git_status = { + format = "([\\[$all_status$ahead_behind\\]]($style))"; + }; + haskell = { + format = "\\[[$symbol($version)]($style)\\]"; + symbol = " "; + }; + cmd_duration = { + format = "\\[[⏱ $duration]($style)\\]"; + }; + nix_shell = { + format = "\\[[$symbol$state( \\($name\\))]($style)\\]"; + symbol = " "; + }; + rust = { + format = "\\[[$symbol($version)]($style)\\]"; + symbol = " "; + }; + package = { + format = "\\[[$symbol$version]($style)\\]"; + symbol = " "; }; }; + }; }