diff --git a/Cargo.lock b/Cargo.lock index 752d275..ebfd75c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -127,6 +127,12 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "cassowary" version = "0.3.0" @@ -233,6 +239,22 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +[[package]] +name = "crossterm" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +dependencies = [ + "bitflags 1.3.2", + "crossterm_winapi", + "libc", + "mio", + "parking_lot", + "signal-hook", + "signal-hook-mio", + "winapi 0.3.9", +] + [[package]] name = "crossterm" version = "0.27.0" @@ -279,6 +301,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + [[package]] name = "ego-tree" version = "0.6.2" @@ -303,6 +331,24 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "fuzzy-matcher" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" +dependencies = [ + "thread_local", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "getrandom" version = "0.2.14" @@ -384,6 +430,23 @@ version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" +[[package]] +name = "inquire" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fddf93031af70e75410a2511ec04d49e758ed2f26dad3404a934e0fb45cc12a" +dependencies = [ + "bitflags 2.5.0", + "crossterm 0.25.0", + "dyn-clone", + "fuzzy-matcher", + "fxhash", + "newline-converter", + "once_cell", + "unicode-segmentation", + "unicode-width", +] + [[package]] name = "itertools" version = "0.12.1" @@ -400,7 +463,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] -name = "jrnl" +name = "j" version = "0.1.0" dependencies = [ "chrono", @@ -408,6 +471,7 @@ dependencies = [ "dirs", "ego-tree", "indexmap", + "inquire", "markdown", "owo-colors", "petgraph", @@ -511,6 +575,15 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "newline-converter" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b6b097ecb1cbfed438542d16e84fd7ad9b0c76c8a65b7f9039212a3d14dc7f" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "num-traits" version = "0.2.18" @@ -616,7 +689,7 @@ dependencies = [ "bitflags 2.5.0", "cassowary", "compact_str", - "crossterm", + "crossterm 0.27.0", "indoc", "itertools", "lru", @@ -851,6 +924,16 @@ dependencies = [ "syn", ] +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + [[package]] name = "unicode-ident" version = "1.0.12" diff --git a/common.nix b/common.nix index 21aa36d..dafa9d7 100644 --- a/common.nix +++ b/common.nix @@ -5,13 +5,23 @@ config, pkgs, lib, + lix-module, rs-programs, ... }: with lib; with builtins; { + imports = [lix-module.nixosModules.default]; nix = { package = pkgs.nixVersions.stable; + settings = { + extra-substituters = [ + "https://cache.lix.systems" + ]; + trusted-public-keys = [ + "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" + ]; + }; extraOptions = '' experimental-features = nix-command flakes keep-outputs = true @@ -105,6 +115,8 @@ with builtins; { mtr.enable = true; }; + hardware.gpgSmartcards.enable = true; + time.timeZone = "Europe/Berlin"; home-manager.users.jade = { @@ -145,5 +157,5 @@ with builtins; { algorithm = "zstd"; }; - users.defaultUserShell = pkgs.nushellFull; + users.defaultUserShell = pkgs.nushell; } diff --git a/flake.lock b/flake.lock deleted file mode 100644 index 2f1f724..0000000 --- a/flake.lock +++ /dev/null @@ -1,170 +0,0 @@ -{ - "nodes": { - "crane": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1713979152, - "narHash": "sha256-apdecPuh8SOQnkEET/kW/UcfjCRb8JbV5BKjoH+DcP4=", - "owner": "ipetkov", - "repo": "crane", - "rev": "a5eca68a2cf11adb32787fc141cddd29ac8eb79c", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "fenix": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "rust-analyzer-src": "rust-analyzer-src" - }, - "locked": { - "lastModified": 1714285404, - "narHash": "sha256-MmoQIO+KRiH3UnH0myAp2Fgi84rmpROMfw9VIbqrjHA=", - "owner": "nix-community", - "repo": "fenix", - "rev": "94be183087845937b0fd77281c37d0796572b899", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "fenix", - "type": "github" - } - }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1714203603, - "narHash": "sha256-eT7DENhYy7EPLOqHI9zkIMD9RvMCXcqh6gGqOK5BWYQ=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "c1609d584a6b5e9e6a02010f51bd368cb4782f8e", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "mac-brcm-fw": { - "flake": false, - "locked": { - "lastModified": 1701030348, - "narHash": "sha256-+kW8ogc6DykjMVlrr+3vWKs9ZUdJ9EW72LbY7k/Qvh4=", - "path": "/home/jade/nix-configs/mac-brcm-fw", - "type": "path" - }, - "original": { - "path": "/home/jade/nix-configs/mac-brcm-fw", - "type": "path" - } - }, - "nixos-hardware": { - "locked": { - "lastModified": 1687903496, - "narHash": "sha256-4PPwbFM4dNqso3zBya5rgfRvnBoIbN2J7qZ2ZpRyOUc=", - "owner": "networkException", - "repo": "nixos-hardware", - "rev": "8e28b9ee431b265d1fc74b8b819ea0816344c4a1", - "type": "github" - }, - "original": { - "owner": "networkException", - "ref": "apple-t2-init", - "repo": "nixos-hardware", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1714076141, - "narHash": "sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-unstable", - "type": "indirect" - } - }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1714272655, - "narHash": "sha256-3/ghIWCve93ngkx5eNPdHIKJP/pMzSr5Wc4rNKE1wOc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "12430e43bd9b81a6b4e79e64f87c624ade701eaf", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-23.11", - "type": "indirect" - } - }, - "nixpkgs-unstable-small": { - "locked": { - "lastModified": 1714290118, - "narHash": "sha256-6PzUtOvU7hMQxZV579B04CHE1HXSq/loh9E+d/4fKZY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "30ddacc06345a478f9528fa29e2c8857b90381b2", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-unstable-small", - "type": "indirect" - } - }, - "root": { - "inputs": { - "crane": "crane", - "fenix": "fenix", - "home-manager": "home-manager", - "mac-brcm-fw": "mac-brcm-fw", - "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs", - "nixpkgs-stable": "nixpkgs-stable", - "nixpkgs-unstable-small": "nixpkgs-unstable-small" - } - }, - "rust-analyzer-src": { - "flake": false, - "locked": { - "lastModified": 1714217560, - "narHash": "sha256-zttBYGaoHpZfqWHQ8OI5f9OkGHCHb8tDBMySwsYNa2U=", - "owner": "rust-lang", - "repo": "rust-analyzer", - "rev": "f216be4a0746142c5f30835b254871256a7637b8", - "type": "github" - }, - "original": { - "owner": "rust-lang", - "ref": "nightly", - "repo": "rust-analyzer", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix index caba18a..52c8181 100644 --- a/flake.nix +++ b/flake.nix @@ -5,6 +5,22 @@ nixpkgs.url = "nixpkgs/nixos-unstable"; nixpkgs-stable.url = "nixpkgs/nixos-23.11"; nixpkgs-unstable-small.url = "nixpkgs/nixos-unstable-small"; + helix-inline-diags = { + url = "github:pascalkuthe/helix/inline-diagnostics"; + inputs = { + crane.follows = "crane"; + nixpkgs.follows = "nixpkgs"; + }; + }; + lix = { + url = "git+https://git@git.lix.systems/lix-project/lix?ref=refs/tags/2.90-beta.1"; + flake = false; + }; + lix-module = { + url = "git+https://git.lix.systems/lix-project/nixos-module"; + inputs.lix.follows = "lix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -17,7 +33,6 @@ crane = { url = "github:ipetkov/crane"; inputs = { - flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; }; }; @@ -32,6 +47,8 @@ nixpkgs, nixpkgs-stable, nixpkgs-unstable-small, + helix-inline-diags, + lix-module, home-manager, nixos-hardware, mac-brcm-fw, @@ -61,6 +78,8 @@ # cargoLock.lockFile = ./programs/jrnl/Cargo.lock; # }; s10e-jrnl = crane-lib.buildPackage { + pname = "s10e-bs"; + version = "0.0.1"; src = crane-lib.cleanCargoSource (crane-lib.path ./.); }; }; @@ -82,7 +101,7 @@ nixosConfigurations = { monosodium-glutamate-g = nixpkgs.lib.nixosSystem { specialArgs = { - inherit inputs pkgs-unstable-small pkgs-stable rs-programs; + inherit inputs pkgs-unstable-small pkgs-stable rs-programs lix-module helix-inline-diags; }; system = "x86_64-linux"; modules = [ @@ -107,7 +126,7 @@ }; catbook-j = nixpkgs.lib.nixosSystem { specialArgs = { - inherit inputs pkgs-unstable-small pkgs-stable rs-programs; + inherit inputs pkgs-unstable-small pkgs-stable rs-programs lix-module helix-inline-diags; }; system = "x86_64-linux"; modules = [ @@ -132,7 +151,7 @@ }; potatobook-g = nixpkgs.lib.nixosSystem { specialArgs = { - inherit inputs pkgs-unstable-small rs-programs; + inherit inputs pkgs-unstable-small rs-programs lix-module helix-inline-diags; }; system = "x86_64-linux"; modules = [ diff --git a/hosts/catbook-j/configuration.nix b/hosts/catbook-j/configuration.nix index 81a0966..79de2e1 100644 --- a/hosts/catbook-j/configuration.nix +++ b/hosts/catbook-j/configuration.nix @@ -28,6 +28,8 @@ }; }; + security.pam.services.swaylock = {}; + hardware.usb-modeswitch.enable = true; systemd.services."ModemManager".enable = true; systemd.services."ModemManager".wants = ["NetworkManager.service"]; @@ -78,7 +80,7 @@ }; boot.kernelPackages = pkgs.linuxPackages_zen; - services.xserver.displayManager.autoLogin = { + services.displayManager.autoLogin = { enable = true; user = "jade"; }; diff --git a/hosts/catbook-j/modules/input.nix b/hosts/catbook-j/modules/input.nix index 7043eec..f6d8fee 100644 --- a/hosts/catbook-j/modules/input.nix +++ b/hosts/catbook-j/modules/input.nix @@ -23,5 +23,5 @@ sensitivity = 256; }; - services.xserver.libinput.touchpad.tapping = false; + services.libinput.touchpad.tapping = false; } diff --git a/hosts/potatobook-g/configuration.nix b/hosts/potatobook-g/configuration.nix index c45c889..530f8db 100644 --- a/hosts/potatobook-g/configuration.nix +++ b/hosts/potatobook-g/configuration.nix @@ -65,9 +65,10 @@ boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - services.xserver.libinput.touchpad.disableWhileTyping = true; - services.xserver.libinput.touchpad.tapping = false; - + services.libinput.touchpad = { + disableWhileTyping = true; + tapping = false; + }; networking.networkmanager.enable = true; networking.hostName = "potatobook-g"; diff --git a/modules/desktop-environment/home/default.nix b/modules/desktop-environment/home/default.nix index 6891b94..b9f6429 100644 --- a/modules/desktop-environment/home/default.nix +++ b/modules/desktop-environment/home/default.nix @@ -6,6 +6,13 @@ ./compositing.nix ./panels ./xmonad + ./sway ]; + + services.gpg-agent = { + enable = true; + enableNushellIntegration = true; + enableSshSupport = true; + }; }; } diff --git a/modules/desktop-environment/home/sway/default.nix b/modules/desktop-environment/home/sway/default.nix new file mode 100644 index 0000000..0aafe8e --- /dev/null +++ b/modules/desktop-environment/home/sway/default.nix @@ -0,0 +1,176 @@ +{ + pkgs, + lib, + config, + ... +}: { + programs.wofi.enable = true; + programs.swaylock.enable = true; + + wayland.windowManager.sway = { + enable = true; + systemd = { + enable = true; + }; + wrapperFeatures = { + base = true; + gtk = true; + }; + config = { + modes = { + resize = { + Down = "resize grow height 10 px"; + Escape = "mode default"; + Left = "resize shrink width 10 px"; + Return = "mode default"; + Right = "resize grow width 10 px"; + Up = "resize shrink height 10 px"; + h = "resize shrink width 10 px"; + j = "resize grow height 10 px"; + k = "resize shrink height 10 px"; + l = "resize grow width 10 px"; + }; + }; + terminal = "kitty"; + output = { + "*" = { + bg = "${../xmonad/wallpaper/wallpaper.jpg} fill"; + }; + }; + input = { + "*" = { + xkb_layout = "us"; + xkb_variant = "altgr-intl"; + }; + }; + menu = "wofi -d"; + modifier = "Mod4"; + keybindings = with { + #mod = config.xsession.windowManager.i3.config.modifier; + # mod = "Mod1"; + mod = config.wayland.windowManager.sway.config.modifier; + }; + lib.mkOptionDefault { + # switch window focus + "${mod}+h" = "focus left"; + "${mod}+j" = "focus down"; + "${mod}+k" = "focus up"; + "${mod}+l" = "focus right"; + # move windows + "${mod}+Shift+h" = "move left"; + "${mod}+Shift+j" = "move down"; + "${mod}+Shift+k" = "move up"; + "${mod}+Shift+l" = "move right"; + # layout shit + "${mod}+shift+semicolon" = "split h"; + "${mod}+semicolon" = "split v"; + "${mod}+f" = "fullscreen toggle"; + "${mod}+Shift+w" = "layout tabbed"; + "${mod}+e" = "layout toggle split"; + "${mod}+Shift+space" = "floating toggle"; + # focus parents/children + # "${mod}+Shift+a" = "focus parent"; + # "${mod}+Shift+c" = "focus child"; + # screenshot + # "${mod}+w" = "exec window-screenshot.sh"; + # "${mod}+s" = "exec flameshot gui -c -p $HOME/Pictures/screenshots"; + # "${mod}+a" = "exec flameshot screen -c -p $HOME/Pictures/screenshots"; + # "${mod}+t" = "exec ocr-screenshot.sh"; + + # rofi fuckery + "${mod}+d" = "exec wofi -S drun --allow-images"; + "${mod}+i" = "exec rofimoji --selector wofi -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy"; + # TODO: wayland + # "${mod}+d" = "exec --no-startup-id rofi -show drun -theme ${../../other/rofi-themes/applauncher.rasi}"; + # "${mod}+space" = "exec --no-startup-id rofi -show combi -combi-show window#run -modes combi -theme ${../../other/rofi-themes/applauncher.rasi}"; + # "${mod}+i" = "exec --no-startup-id rofimoji -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy"; + # "${mod}+Shift+e" = "exec --no-startup-id rofi -show \"desktopctl\" -modes \"desktopctl:${desktop-ctl.outPath}/bin/desktopctl\" -theme ${../../other/rofi-themes/applauncher.rasi}"; + # "${mod}+m" = "exec --no-startup-id menu-qalc"; + + # "${mod}+o" = "exec --no-startup-id rofi -show searchwolf -modes \"searchwolf:${searchwolf.outPath}/bin/searchwolf\""; + + # audio + "XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status"; + "XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status"; + "XF86AudioMute" = "exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status"; + "XF86AudioMicMute" = "exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status"; + + "XF86AudioNext" = "exec playerctl next"; + "XF86AudioPrev" = "exec playerctl previous"; + "XF86AudioPause" = "exec playerctl pause"; + "XF86AudioPlay" = "exec playerctl play"; + "XF86AudioStop" = "exec playerctl stop"; + + "XF86MonBrightnessUp" = "exec brightnessctl set 5%+"; + "XF86MonBrightnessDown" = "exec brightnessctl set 5%-"; + + "XF86KbdBrightnessUp" = "exec brillo -kA 10.0"; + "XF86KbdBrightnessDown" = "exec brillo -kU 10.0"; + + # macros + # "${mod}+q" = "exec em-record.sh"; + # "${mod}+p" = "exec em-play.sh"; + # "${mod}+Shift+p" = "exec em-play-loop.sh"; + + # permaclip + # "${mod}+c" = "exec rofi -show register -modes \"register:${pc-set.outPath}/bin/pc-set.sh\" -theme gruvbox-dark"; + # "${mod}+v" = "exec rofi -show register -modes \"register:${pc-get.outPath}/bin/pc-get.sh\" -theme gruvbox-dark"; + }; + fonts = { + names = ["Atkinson Hyperlegible"]; + style = "Regular"; + size = 9.0; + }; + gaps = { + #top = 24; + inner = 15; + outer = 0; + smartGaps = true; + smartBorders = "on"; + }; + colors = { + background = "#1d2021"; + focused = { + background = "#282828"; + border = "#504945"; + childBorder = "#7c6f64"; + indicator = "#504945"; + text = "#ebdbb2"; + }; + focusedInactive = { + background = "#1d2021"; + border = "#504945"; + childBorder = "#665c54"; + indicator = "#664c54"; + text = "#d5c4a1"; + }; + placeholder = { + background = "#1d2021"; + border = "#00ff00"; + childBorder = "#504945"; + indicator = "#504945"; + text = "#928374"; + }; + unfocused = { + background = "#1d2021"; + border = "#3c3836"; + childBorder = "#504945"; + indicator = "#504945"; + text = "#bdae93"; + }; + urgent = { + background = "#9d0006"; + border = "#cc241d"; + childBorder = "#3c3836"; + indicator = "#fb4943"; + text = "#ebdbb2"; + }; + }; + + window = { + border = 2; + titlebar = true; + }; + }; + }; +} diff --git a/modules/desktop/creative.nix b/modules/desktop/creative.nix index 2eebca9..0828381 100644 --- a/modules/desktop/creative.nix +++ b/modules/desktop/creative.nix @@ -1,4 +1,8 @@ -{pkgs, ...}: { +{ + pkgs, + pkgs-stable, + ... +}: { home-manager.users.jade = {pkgs, ...}: { home.packages = with pkgs; [ audacity @@ -18,6 +22,7 @@ openscad-unstable openscad-lsp + pkgs-stable.font-manager fontforge-gtk onlyoffice-bin_latest diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index bb04410..152db4e 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -67,7 +67,7 @@ in services.illum.enable = true; services.avahi = { enable = true; - nssmdns = true; + nssmdns4 = true; openFirewall = true; }; services.smartd = { @@ -124,7 +124,6 @@ in jellyfin-media-player # from environment.systemPackages cleanup - font-manager xdotool xorg.xwininfo gparted @@ -170,6 +169,8 @@ in mupdf inotify-tools + + logseq ]; xsession = { enable = true; diff --git a/modules/desktop/firefox.nix b/modules/desktop/firefox.nix index d28dc70..37c5cd6 100644 --- a/modules/desktop/firefox.nix +++ b/modules/desktop/firefox.nix @@ -82,12 +82,16 @@ "Home manager Options" = { urls = [ { - template = "https://mipmip.github.io/home-manager-option-search/"; + template = "https://home-manager-options.extranix.com/"; params = [ { name = "query"; value = "{searchTerms}"; } + { + name = "release"; + value = "master"; + } ]; } ]; diff --git a/modules/desktop/themeing.nix b/modules/desktop/themeing.nix index b310287..c5eb7d8 100644 --- a/modules/desktop/themeing.nix +++ b/modules/desktop/themeing.nix @@ -37,7 +37,7 @@ }; qt = { enable = true; - platformTheme = "gtk"; + platformTheme.name = "gtk"; }; }; }; diff --git a/modules/desktop/x.nix b/modules/desktop/x.nix index dab34ec..00178fb 100644 --- a/modules/desktop/x.nix +++ b/modules/desktop/x.nix @@ -1,4 +1,4 @@ -{...}: { +{pkgs, ...}: { services.xserver = { enable = true; @@ -7,12 +7,21 @@ }; displayManager = { - defaultSession = "none+xmonad"; gdm.enable = true; + sessionPackages = [ + pkgs.sway + ]; + gdm.autoLogin.delay = 5; }; windowManager.xmonad = { enable = true; }; }; + + security.polkit.enable = true; + programs.sway.enable = true; + + # services.displayManager.defaultSession = "none+xmonad"; + services.displayManager.defaultSession = "sway"; } diff --git a/modules/input/default.nix b/modules/input/default.nix index 88302da..62b0ec9 100644 --- a/modules/input/default.nix +++ b/modules/input/default.nix @@ -2,14 +2,15 @@ imports = [ ./evremap.nix ]; - services.xserver = { - xkb = { - layout = "us"; - variant = "altgr-intl"; - }; - + services = { libinput = { enable = true; }; + xserver = { + xkb = { + layout = "us"; + variant = "altgr-intl"; + }; + }; }; } diff --git a/modules/shell/helix.nix b/modules/shell/helix.nix index 5055a35..36d3e41 100644 --- a/modules/shell/helix.nix +++ b/modules/shell/helix.nix @@ -1,4 +1,8 @@ -{config, ...}: { +{ + config, + helix-inline-diags, + ... +}: { home-manager.users.jade = {pkgs, ...}: { home = { sessionVariables.EDITOR = "hx"; @@ -12,7 +16,7 @@ }; programs.helix = { enable = true; - package = pkgs.helix; + package = helix-inline-diags.outputs.packages."x86_64-linux".default; settings = { theme = "gruvbox"; editor = { @@ -22,6 +26,11 @@ cursorline = true; auto-save = true; auto-format = true; + end-of-line-diagnostics = "hint"; + inline-diagnostics = { + cursor-line = "hint"; + other-lines = "error"; + }; lsp = { display-messages = true; display-inlay-hints = true; @@ -48,7 +57,7 @@ "file-encoding" "file-type" ]; - idle-timeout = 30; + idle-timeout = 50; indent-guides = { render = true; character = "│"; diff --git a/modules/shell/nu.nix b/modules/shell/nu.nix index 24d3e6a..f338d7e 100644 --- a/modules/shell/nu.nix +++ b/modules/shell/nu.nix @@ -11,6 +11,11 @@ }; home.packages = [ pkgs.pueue + pkgs.nushellPlugins.net + pkgs.nushellPlugins.query + pkgs.nushellPlugins.gstat + pkgs.nushellPlugins.polars + pkgs.nushellPlugins.formats ]; programs.nushell = { enable = true; diff --git a/other/config.nu b/other/config.nu index 0f359b5..9435b28 100644 --- a/other/config.nu +++ b/other/config.nu @@ -42,6 +42,7 @@ let dark_theme = { shape_directory: cyan shape_external: cyan shape_externalarg: green_bold + shape_external_resolved: light_cyan_bold shape_filepath: cyan shape_flag: blue_bold shape_float: purple_bold @@ -238,7 +239,36 @@ $env.config = { use_ansi_coloring: true bracketed_paste: true # enable bracketed paste, currently useless on windows edit_mode: vi # emacs, vi - shell_integration: true # enables terminal shell integration. Off by default, as some terminals have issues with this. + shell_integration: { + # osc2 abbreviates the path if in the home_dir, sets the tab/window title, shows the running command in the tab/window title + osc2: true + # osc7 is a way to communicate the path to the terminal, this is helpful for spawning new tabs in the same directory + osc7: true + # osc8 is also implemented as the deprecated setting ls.show_clickable_links, it shows clickable links in ls output if your terminal supports it. show_clickable_links is deprecated in favor of osc8 + osc8: true + # osc9_9 is from ConEmu and is starting to get wider support. It's similar to osc7 in that it communicates the path to the terminal + osc9_9: false + # osc133 is several escapes invented by Final Term which include the supported ones below. + # 133;A - Mark prompt start + # 133;B - Mark prompt end + # 133;C - Mark pre-execution + # 133;D;exit - Mark execution finished with exit code + # This is used to enable terminals to know where the prompt is, the command is, where the command finishes, and where the output of the command is + osc133: true + # osc633 is closely related to osc133 but only exists in visual studio code (vscode) and supports their shell integration features + # 633;A - Mark prompt start + # 633;B - Mark prompt end + # 633;C - Mark pre-execution + # 633;D;exit - Mark execution finished with exit code + # 633;E - NOT IMPLEMENTED - Explicitly set the command line with an optional nonce + # 633;P;Cwd= - Mark the current working directory and communicate it to the terminal + # and also helps with the run recent menu in vscode + osc633: false + # reset_application_mode is escape \x1b[?1l and was added to help ssh work better + reset_application_mode: true + } + use_kitty_protocol: false + highlight_resolved_externals: true render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt. hooks: { @@ -781,6 +811,12 @@ def start_zellij [] { start_zellij +# plugin add nu_plugin_net +# plugin add nu_plugin_gstat +# plugin add nu_plugin_query +# plugin add nu_plugin_polars +# plugin add nu_plugin_formats + def nsp [ ...programs: string ] { diff --git a/programs/jrnl/Cargo.toml b/programs/jrnl/Cargo.toml index 12f231a..8e3044a 100644 --- a/programs/jrnl/Cargo.toml +++ b/programs/jrnl/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "jrnl" +name = "j" version = "0.1.0" edition = "2021" @@ -15,3 +15,4 @@ petgraph = "0.6.4" ratatui = "0.26.2" temp-file = "0.1.8" termsize = "0.1.6" +inquire = "0.7.5" diff --git a/programs/jrnl/src/commands/add_entry.rs b/programs/jrnl/src/commands/add_entry.rs index 8dd1b92..c7f78db 100644 --- a/programs/jrnl/src/commands/add_entry.rs +++ b/programs/jrnl/src/commands/add_entry.rs @@ -6,6 +6,7 @@ use std::{ process::Command, }; +use inquire::Text; use temp_file::{TempFile, TempFileBuilder}; use crate::md::{Entry, ToMd}; @@ -17,7 +18,7 @@ pub fn add_entry(path: PathBuf, title: Option) -> io::Result<()> { std::process::exit(1); } - let title = prompt("Title")?; + let title = Text::new("Title").prompt().unwrap(); let tmp = TempFileBuilder::new() .suffix(".jrnl-entry.md") @@ -57,12 +58,3 @@ pub fn add_entry(path: PathBuf, title: Option) -> io::Result<()> { Ok(()) } - -fn prompt(title: &str) -> io::Result { - print!("{}: ", title); - let _ = io::stdout().flush(); - let mut buf = String::new(); - let stdin = io::stdin(); - stdin.read_line(&mut buf)?; - Ok(buf) -} diff --git a/programs/jrnl/src/md.rs b/programs/jrnl/src/md.rs index 8453c77..234666e 100644 --- a/programs/jrnl/src/md.rs +++ b/programs/jrnl/src/md.rs @@ -1,5 +1,4 @@ use chrono::{DateTime, FixedOffset}; -use markdown::{Block, Span}; use std::convert::identity; pub trait ToMd {