diff --git a/home/bin/executable_linux-backup-kestrel b/home/bin/executable_linux-backup-kestrel index ba12e833..f781e7dc 100644 --- a/home/bin/executable_linux-backup-kestrel +++ b/home/bin/executable_linux-backup-kestrel @@ -9,4 +9,5 @@ borg create \ --exclude "$HOME/tmp" \ --exclude "$HOME/sync" \ --exclude "$HOME/media/roms" \ + --exclude "$HOME/box" \ "$HOME/mnt/engi/backup/borg-kestrel::kestrel-${datetime}" "$HOME" diff --git a/home/dot_bash_profile b/home/dot_bash_profile index 1efe9a77..38eb505d 100644 --- a/home/dot_bash_profile +++ b/home/dot_bash_profile @@ -19,6 +19,9 @@ shopt -s cdspell; # Setup thefuck eval "$(thefuck --alias)" +# Setup direnv +eval "$(direnv hook bash)" + # Enable some Bash 4 features when possible: # * `autocd`, e.g. `**/qux` will enter `./foo/bar/baz/qux` # * Recursive globbing, e.g. `echo **/*.txt` diff --git a/home/dot_vimrc b/home/dot_vimrc index 1613d6f7..f1a6ff7e 100644 --- a/home/dot_vimrc +++ b/home/dot_vimrc @@ -117,12 +117,21 @@ map fq :Grep -r map fl :LGrep -r " next/last location -map nl :lnext -map pl :lprev +map ln :lnext +map lp :lprev " next/last quickfix -map nc :cnext -map pc :cnext +map cn :cnext +map cp :cnext + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" notes +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +command! Ill call InsertLocationLink() + +" copy quick/location selection to clipboard +nnoremap nl :Ill """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " misc keys @@ -252,3 +261,28 @@ function! UpdateMarkSigns() endif endfor endfunction + +" Create markdown link for current location list selection +" OG baby! +" +function! InsertLocationLink() + let loc_idx = line('.') - 1 + let loc_list = getloclist(0) + let link = bufname(l:loc_list[l:loc_idx].bufnr) + call setreg('l', link) + :lcl + let title = input("Link name: ") + let curr_path = substitute(expand('%:p:h'), finddir('.git/..', expand('%:p:h').';'), '', "g") + let nest_count = count(curr_path, "/") + let file_path = getreg('l') + if nest_count < 1 + let file_path = join(['./', file_path], '') + else + while nest_count > 0 + let file_path = join(['../', file_path], '') + let nest_count -= 1 + endwhile + endif + let link = join(['[', title, '](', file_path, ')'], "") + exe "normal! a" . link . "\" +endfunction diff --git a/provision/flake.lock b/provision/flake.lock index 0e10a84f..ae2e2416 100644 --- a/provision/flake.lock +++ b/provision/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1714679908, - "narHash": "sha256-KzcXzDvDJjX34en8f3Zimm396x6idbt+cu4tWDVS2FI=", + "lastModified": 1720188602, + "narHash": "sha256-lC3byBmhVZFzWl/dCic8+cKUEEAXAswWOYjq4paFmbo=", "owner": "nix-community", "repo": "home-manager", - "rev": "9036fe9ef8e15a819fa76f47a8b1f287903fb848", + "rev": "e3582e5151498bc4d757e8361431ace8529e7bb7", "type": "github" }, "original": { @@ -36,11 +36,11 @@ ] }, "locked": { - "lastModified": 1713612213, - "narHash": "sha256-zJboXgWNpNhKyNF8H/3UYzWkx7w00TOCGKi3cwi+tsw=", + "lastModified": 1718450675, + "narHash": "sha256-jpsns6buS4bK+1sF8sL8AaixAiCRjA+nldTKvcwmvUs=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "cab4746180f210a3c1dd3d53e45c510e309e90e1", + "rev": "66d5b46ff94efbfa6fa3d1d1b66735f1779c34a6", "type": "github" }, "original": { @@ -52,20 +52,19 @@ "hyprland": { "inputs": { "hyprcursor": "hyprcursor", - "hyprland-protocols": "hyprland-protocols", "hyprlang": "hyprlang", + "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": "nixpkgs", "systems": "systems", - "wlroots": "wlroots", "xdph": "xdph" }, "locked": { - "lastModified": 1714785484, - "narHash": "sha256-nuwQK+01v1o0KjlRPr+b/hsOKm4ssNCV71U9a8Yiclw=", + "lastModified": 1720213509, + "narHash": "sha256-LXj38Y3H0+/YhOtz6tGrqgd6p9AyGFeq6EwLgYsE1KQ=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "40201a760acd7c5ca10f27e7d0fdeb71c20df89f", + "rev": "cc98594c3aed0b542e03818371a4636f549f80e1", "type": "github" }, "original": { @@ -81,11 +80,11 @@ ] }, "locked": { - "lastModified": 1713780596, - "narHash": "sha256-DDAYNGSnrBwvVfpKx+XjkuecpoE9HiEf6JW+DBQgvm0=", + "lastModified": 1718476555, + "narHash": "sha256-fuWpgh8KasByIJWE+xVd37Al0LV5YAn6s871T50qVY0=", "owner": "hyprwm", "repo": "contrib", - "rev": "110e6dc761d5c3d352574def3479a9c39dfc4358", + "rev": "29a8374f4b9206d5c4af84aceb7fb5dff441ea60", "type": "github" }, "original": { @@ -98,19 +97,21 @@ "inputs": { "nixpkgs": [ "hyprland", + "xdph", "nixpkgs" ], "systems": [ "hyprland", + "xdph", "systems" ] }, "locked": { - "lastModified": 1691753796, - "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", + "lastModified": 1714869498, + "narHash": "sha256-vbLVOWvQqo4n1yvkg/Q70VTlPbMmTiCQfNTgcWDCfJM=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", + "rev": "e06482e0e611130cd1929f75e8c1cf679e57d161", "type": "github" }, "original": { @@ -120,6 +121,35 @@ } }, "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1717881852, + "narHash": "sha256-XeeVoKHQgfKuXoP6q90sUqKyl7EYy3ol2dVZGM+Jj94=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "ec6938c66253429192274d612912649a0cfe4d28", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprutils": { "inputs": { "nixpkgs": [ "hyprland", @@ -131,16 +161,16 @@ ] }, "locked": { - "lastModified": 1713121246, - "narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=", + "lastModified": 1719316102, + "narHash": "sha256-dmRz128j/lJmMuTYeCYPfSBRHHQO3VeH4PbmoyAhHzw=", "owner": "hyprwm", - "repo": "hyprlang", - "rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706", + "repo": "hyprutils", + "rev": "1f6bbec5954f623ff8d68e567bddcce97cd2f085", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprlang", + "repo": "hyprutils", "type": "github" } }, @@ -156,11 +186,11 @@ ] }, "locked": { - "lastModified": 1714755542, - "narHash": "sha256-D0pg+ZRwrt4lavZ97Ca8clsgbPA3duLj8iEM7riaIFY=", + "lastModified": 1719067853, + "narHash": "sha256-mAnZG/eQy72Fp1ImGtqCgUrDumnR1rMZv2E/zgP4U74=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "1270ebaa539e56d61b708c24b072b09cbbd3a828", + "rev": "914f083741e694092ee60a39d31f693d0a6dc734", "type": "github" }, "original": { @@ -172,11 +202,11 @@ "jovian-nixos": { "flake": false, "locked": { - "lastModified": 1714803703, - "narHash": "sha256-4m9wG6mZR0I2d7itErhpY0JqSHomNnUdoKfkjnYp+wI=", + "lastModified": 1720205505, + "narHash": "sha256-KqGnYAKWxwRgWxc/78HbL3PHeuDJOSS/9+Pkm5doUk8=", "ref": "development", - "rev": "d0799ebebfb37fd2df6409dc8da622738c5930bb", - "revCount": 760, + "rev": "fdcaab38857f221eea20a0073f891feb36ea8e99", + "revCount": 861, "type": "git", "url": "https://github.com/Jovian-Experiments/Jovian-NixOS" }, @@ -188,11 +218,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1714253743, - "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=", + "lastModified": 1719075281, + "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994", + "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", "type": "github" }, "original": { @@ -204,27 +234,27 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1713638189, - "narHash": "sha256-q7APLfB6FmmSMI1Su5ihW9IwntBsk2hWNXh8XtSdSIk=", + "lastModified": 1719720450, + "narHash": "sha256-57+R2Uj3wPeDeq8p8un19tzFFlgWiXJ8PbzgKtBgBX8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "74574c38577914733b4f7a775dd77d24245081dd", + "rev": "78f8641796edff3bfabbf1ef5029deadfe4a21d0", "type": "github" }, "original": { "owner": "NixOS", - "ref": "release-23.11", + "ref": "release-24.05", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1714635257, - "narHash": "sha256-4cPymbty65RvF1DWQfc+Bc8B233A1BWxJnNULJKQ1EY=", + "lastModified": 1720031269, + "narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "63c3a29ca82437c87573e4c6919b09a24ea61b0f", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", "type": "github" }, "original": { @@ -236,11 +266,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1713596654, - "narHash": "sha256-LJbHQQ5aX1LVth2ST+Kkse/DRzgxlVhTL1rxthvyhZc=", + "lastModified": 1719468428, + "narHash": "sha256-vN5xJAZ4UGREEglh3lfbbkIj+MPEYMuqewMn4atZFaQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fd16bb6d3bcca96039b11aa52038fafeb6e4f4be", + "rev": "1e3deb3d8a86a870d925760db1a5adecc64d329d", "type": "github" }, "original": { @@ -266,11 +296,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1713892811, - "narHash": "sha256-uIGmA2xq41vVFETCF1WW4fFWFT2tqBln+aXnWrvjGRE=", + "lastModified": 1720187017, + "narHash": "sha256-Zq+T1Bvd0ShZB9XM+bP0VJK3HjsSVQBLolkaCLBQnfQ=", "owner": "Mic92", "repo": "sops-nix", - "rev": "f1b0adc27265274e3b0c9b872a8f476a098679bd", + "rev": "1b11e208cee97c47677439625dc22e5289dcdead", "type": "github" }, "original": { @@ -294,29 +324,9 @@ "type": "github" } }, - "wlroots": { - "flake": false, - "locked": { - "lastModified": 1713731601, - "narHash": "sha256-bdcKdtLkusvv85DNuJsajZLFeq7bXp+x5AGP1Sd4wD8=", - "owner": "hyprwm", - "repo": "wlroots-hyprland", - "rev": "5c1d51c5a2793480f5b6c4341ad0797052aec2ea", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "wlroots-hyprland", - "rev": "5c1d51c5a2793480f5b6c4341ad0797052aec2ea", - "type": "github" - } - }, "xdph": { "inputs": { - "hyprland-protocols": [ - "hyprland", - "hyprland-protocols" - ], + "hyprland-protocols": "hyprland-protocols", "hyprlang": [ "hyprland", "hyprlang" @@ -331,11 +341,11 @@ ] }, "locked": { - "lastModified": 1714060055, - "narHash": "sha256-j43TS9wv9luaAlpxcxw0sjxkbcc2mGANVR2RYgo3RCw=", + "lastModified": 1718619174, + "narHash": "sha256-FWW68AVYmB91ZDQnhLMBNCUUTCjb1ZpO2k2KIytHtkA=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "0fe840441e43da12cd7865ed9aa8cdc35a8da85a", + "rev": "c7894aa54f9a7dbd16df5cd24d420c8af22d5623", "type": "github" }, "original": { diff --git a/provision/hosts/bulwark/configuration.nix b/provision/hosts/bulwark/configuration.nix index 0aca6fa9..3f0f8f5f 100644 --- a/provision/hosts/bulwark/configuration.nix +++ b/provision/hosts/bulwark/configuration.nix @@ -26,9 +26,7 @@ hardware.bluetooth.enable = true; hardware.bluetooth.package = pkgs.bluez; hardware.sensor.iio.enable = true; - hardware.opengl.enable = true; - hardware.opengl.driSupport = true; - hardware.opengl.driSupport32Bit = true; + hardware.graphics.enable = true; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; diff --git a/provision/hosts/kestrel/configuration.nix b/provision/hosts/kestrel/configuration.nix index 86dd99f5..8c9690aa 100644 --- a/provision/hosts/kestrel/configuration.nix +++ b/provision/hosts/kestrel/configuration.nix @@ -28,9 +28,7 @@ hardware.bluetooth.enable = true; hardware.bluetooth.package = pkgs.bluez; hardware.sensor.iio.enable = true; - hardware.opengl.enable = true; - hardware.opengl.driSupport = true; - hardware.opengl.driSupport32Bit = true; + hardware.graphics.enable = true; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; diff --git a/provision/hosts/shivan/configuration.nix b/provision/hosts/shivan/configuration.nix index e112232d..448a990a 100644 --- a/provision/hosts/shivan/configuration.nix +++ b/provision/hosts/shivan/configuration.nix @@ -28,9 +28,7 @@ hardware.bluetooth.enable = true; hardware.bluetooth.package = pkgs.bluez; hardware.sensor.iio.enable = true; - hardware.opengl.enable = true; - hardware.opengl.driSupport = true; - hardware.opengl.driSupport32Bit = true; + hardware.graphics.enable = true; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; diff --git a/provision/hosts/torus/configuration.nix b/provision/hosts/torus/configuration.nix index 04843dd5..a7dfec23 100644 --- a/provision/hosts/torus/configuration.nix +++ b/provision/hosts/torus/configuration.nix @@ -61,8 +61,6 @@ hardware.opengl = { enable = true; - driSupport = true; - driSupport32Bit = true; setLdLibraryPath = true; }; diff --git a/provision/modules/desktop/gnome.nix b/provision/modules/desktop/gnome.nix index c3da1a10..0c478a15 100644 --- a/provision/modules/desktop/gnome.nix +++ b/provision/modules/desktop/gnome.nix @@ -27,8 +27,8 @@ in { config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ - gnome.dconf-editor # Graphical tool for editing settings stored in the dconf database of GNOME. - gnome.gnome-tweaks # Utility for customizing various aspects of the GNOME desktop environment. + dconf-editor # Graphical tool for editing settings stored in the dconf database of GNOME. + gnome-tweaks # Utility for customizing various aspects of the GNOME desktop environment. evolution # Personal information management application that provides email, calendar, and contact management features. gnomeExtensions.focus-changer # GNOME Shell extension for changing window focus behavior. gnome-fullscreen-to-empty-workspace @@ -36,7 +36,7 @@ in { gnome-maximize-lonely-window ]; - environment.gnome.excludePackages = with pkgs.gnome; [ + environment.gnome.excludePackages = with pkgs; [ baobab # Disk usage analyzer for the GNOME desktop environment. cheese # Webcam application for taking photos and videos. epiphany # Web browser for the GNOME desktop environment. @@ -47,14 +47,14 @@ in { evince # Document viewer for the GNOME desktop environment. geary # Email client for the GNOME desktop environment. seahorse # GNOME application for managing encryption keys and passwords. - pkgs.gnome-tour # Guided tour application for introducing users to GNOME desktop environment features. - pkgs.snapshot # Utility for taking and managing system snapshots in the GNOME desktop environment. - pkgs.gnome-connections # GNOME application for accessing remote machines and services. + gnome-tour # Guided tour application for introducing users to GNOME desktop environment features. + snapshot # Utility for taking and managing system snapshots in the GNOME desktop environment. + gnome-connections # GNOME application for accessing remote machines and services. gnome-font-viewer # Utility for previewing and managing fonts in the GNOME desktop environment. - gnome-logs # Log viewer application for GNOME. - gnome-maps # Map application for the GNOME desktop environment. - gnome-music # Music player and management application for GNOME. - gnome-shell-extensions # Extensions for enhancing functionality and customization in the GNOME. + gnome.gnome-logs # Log viewer application for GNOME. + gnome.gnome-maps # Map application for the GNOME desktop environment. + gnome.gnome-music # Music player and management application for GNOME. + gnome.gnome-shell-extensions # Extensions for enhancing functionality and customization in the GNOME. ]; # Enable wayland gnome @@ -122,7 +122,7 @@ in { color-scheme = "prefer-dark"; }; "org/gnome/desktop/background" = { - picture-options = "centered"; + picture-options = "zoom"; picture-uri = "${cfg.wallpaper}"; picture-uri-dark = "${cfg.wallpaper}"; }; diff --git a/provision/modules/devel/python.nix b/provision/modules/devel/python.nix index 028204e4..2def07d3 100644 --- a/provision/modules/devel/python.nix +++ b/provision/modules/devel/python.nix @@ -19,7 +19,7 @@ in { (python3.withPackages my-python-packages) fava # Web interface for the double-entry bookkeeping software Beancount. beancount # Double-entry bookkeeping software for tracking financial transactions. - nodePackages_latest.pyright # Latest version of the Pyright package, a static type checker for Python. + pyright # Latest version of the Pyright package, a static type checker for Python. ]; }; } diff --git a/provision/modules/gaming/steam.nix b/provision/modules/gaming/steam.nix index 50d18226..f33dbec6 100644 --- a/provision/modules/gaming/steam.nix +++ b/provision/modules/gaming/steam.nix @@ -4,18 +4,19 @@ let cfg = config.modules.gaming.steam; in { options.modules.gaming.steam.enable = lib.mkEnableOption "steam"; config = lib.mkIf cfg.enable { - hardware.opengl = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932 - enable = true; - driSupport32Bit = true; - }; + hardware.graphics.enable = true; # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932 # optionally enable 32bit pulseaudio support if pulseaudio is enabled hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable; hardware.steam-hardware.enable = true; - + # Digital distribution platform for purchasing and playing video games. + programs.steam = { + enable = true; + # Workaround from: https://github.com/NixOS/nixpkgs/issues/236561 + package = with pkgs; steam.override { extraPkgs = pkgs: [ attr ]; }; + }; environment.systemPackages = with pkgs; [ - steam # Digital distribution platform for purchasing and playing video games. steamtinkerlaunch # Launcher and optimization tool for Steam games. gamescope # Utility for running games using Valve's Steam Play compatibility layer with improved performance and compatibility. ]; diff --git a/provision/modules/services/peripherals.nix b/provision/modules/services/peripherals.nix index 22dc14eb..5f458708 100644 --- a/provision/modules/services/peripherals.nix +++ b/provision/modules/services/peripherals.nix @@ -7,6 +7,7 @@ in { environment.systemPackages = with pkgs; [ pulseaudio # Sound server for Linux and other Unix-like operating systems. + pavucontrol # Simple GTK based mixer for the PulseAudio sound server ]; # rtkit is optional but recommended diff --git a/provision/overlays/mutter.nix b/provision/overlays/mutter.nix index 1f8ff3b8..80dd0866 100644 --- a/provision/overlays/mutter.nix +++ b/provision/overlays/mutter.nix @@ -3,9 +3,9 @@ self: super: { mutter = gnomePrev.mutter.overrideAttrs ( old: { src = super.fetchgit { url = "https://gitlab.gnome.org/vanvugt/mutter.git"; - # GNOME 45: triple-buffering-v4-45 - rev = "0b896518b2028d9c4d6ea44806d093fd33793689"; - sha256 = "sha256-mzNy5GPlB2qkI2KEAErJQzO//uo8yO0kPQUwvGDwR4w="; + # GNOME 46: triple-buffering-v4-46 + rev = "94f500589efe6b04aa478b3df8322eb81307d89f"; + sha256 = "sha256-fkPjB/5DPBX06t7yj0Rb3UEuu5b9mu3aS+jhH18+lpI="; }; }); }); diff --git a/readme.md b/readme.md index 35acfa9e..e1cc3200 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@ -# Dotfiles +# .dotfiles > My dotfiles... What do you want? My personal dotfiles repo. Documentation is pretty spotty. Maybe I'll fix that