Compare commits

..

13 commits

Author SHA1 Message Date
Emmet 95e3002ce7 Updated main desktop screenshot 2024-03-09 17:08:22 -06:00
Emmet a5ad3eaac4 Updated autoinstall notes and cleared some git todos 2024-03-09 16:44:33 -06:00
Emmet e4274b48e5 Trying cura-slicer cli wrapper 2024-03-09 16:37:11 -06:00
Emmet b5358a1adf Trimmed out some unnecessary packages 2024-03-09 16:36:51 -06:00
Emmet 7f0daacd08 Reverting *some autoinstall script changes 2024-03-09 11:28:18 -06:00
Emmet 8c0e989ed0 Testing updated shorter autoinstall command 2024-03-09 11:05:16 -06:00
Emmet 004ff7fa71 Add section about partial installs in faq 2024-03-09 11:04:57 -06:00
Emmet 9b96819686 Better mail refiling for pm in mu4e 2024-03-09 11:04:17 -06:00
Emmet 6b66128539 Changed uwunicorn-yt wallpaper link to be not dead 2024-03-08 21:34:00 -06:00
Emmet 90fe9632d4 Updated system 2024-03-08 18:44:28 -06:00
Emmet 79afae5367 Updated modified autoinstall in flake 2024-03-08 18:43:56 -06:00
Emmet 6f3bb3cca5 Testing updated autoinstall script 2024-03-08 07:29:53 -06:00
Emmet 069e6efd08 Worklab pub ssh key 2024-03-08 07:29:35 -06:00
16 changed files with 203 additions and 248 deletions

View file

@ -23,7 +23,7 @@ I wrote some reinstall notes for myself [[./install.org][here (install.org)]].
TLDR: You should™ be able to install my dotfiles to a fresh NixOS system with the following experimental script:
#+begin_src sh :noeval
nix-shell -p git --command "nix run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes"
nix-shell -p git --command "nix run --experimental-features 'nix-command flakes' gitlab:librephoenix/nixos-config"
#+end_src
Disclaimer: Ultimately, I can't gaurantee this will work for anyone other than myself, so /use this at your own discretion/. Also my dotfiles are /highly/ opinionated, which you will discover immediately if you try them out.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

After

Width:  |  Height:  |  Size: 6 MiB

View file

@ -150,11 +150,11 @@
"blocklist-hosts": {
"flake": false,
"locked": {
"lastModified": 1709174876,
"narHash": "sha256-aEjfaOnfPxQ0Dd954SWHOA9JyYDJ2m/25FpMHjO9X+w=",
"lastModified": 1709598696,
"narHash": "sha256-jVrCuInshwebh+cAf1CV5zB8s/uW3oevrxLvhJ0X5vg=",
"owner": "StevenBlack",
"repo": "hosts",
"rev": "b77a285f5f11ee53023d53cf2bf10cd58fe62567",
"rev": "7e350cd634572851d9abe36783fa78f132221851",
"type": "github"
},
"original": {
@ -466,11 +466,11 @@
]
},
"locked": {
"lastModified": 1709485962,
"narHash": "sha256-rmFB4uE10+LJbcVE4ePgiuHOBlUIjQOeZt4VQVJTU8M=",
"lastModified": 1709938482,
"narHash": "sha256-2Vw2WOFmEXWQH8ziFNOr0U48Guh5FacuD6BOEIcE99s=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "d579633ff9915a8f4058d5c439281097e92380a8",
"rev": "17431970b4ebc75a92657101ccffcfc9e1f9d8f0",
"type": "github"
},
"original": {
@ -582,11 +582,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1709237383,
"narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=",
"lastModified": 1709703039,
"narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8",
"rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d",
"type": "github"
},
"original": {
@ -597,11 +597,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1709309926,
"narHash": "sha256-VZFBtXGVD9LWTecGi6eXrE0hJ/mVB3zGUlHImUs2Qak=",
"lastModified": 1709677081,
"narHash": "sha256-tix36Y7u0rkn6mTm0lA45b45oab2cFLqAzDbJxeXS+c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "79baff8812a0d68e24a836df0a364c678089e2c7",
"rev": "880992dcc006a5e00dd0591446fdf723e6a51a64",
"type": "github"
},
"original": {
@ -876,11 +876,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1709431943,
"narHash": "sha256-CqTcEJGITB3rfSuAcWC1QZnbVnIipXmIDbZHfxsAy80=",
"lastModified": 1709950089,
"narHash": "sha256-JjZINymxtnDY9EDdxnVPideZvHPR2Cm/GdKAptCWLI4=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "362184acf4a991f27fc222864e94a2e81b3c3c9f",
"rev": "d3a05d053b145349b8ad395741c5951f332280ef",
"type": "github"
},
"original": {

238
flake.nix
View file

@ -1,104 +1,107 @@
{
description = "Flake of LibrePhoenix";
outputs = inputs@{ self, nixpkgs, nixpkgs-stable, home-manager, nix-doom-emacs, nix-straight,
stylix, blocklist-hosts, rust-overlay, hyprland-plugins,
eaf, eaf-browser, org-nursery, org-yaap,
org-side-tree, org-timeblock, phscroll, ... }:
let
# ---- SYSTEM SETTINGS ---- #
systemSettings = {
system = "x86_64-linux"; # system arch
hostname = "snowfire"; # hostname
profile = "personal"; # select a profile defined from my profiles directory
timezone = "America/Chicago"; # select timezone
locale = "en_US.UTF-8"; # select locale
bootMode = "uefi"; # uefi or bios
bootMountPath = "/boot"; # mount path for efi boot partition; only used for uefi boot mode
grubDevice = ""; # device identifier for grub; only used for legacy (bios) boot mode
};
outputs = inputs@{ self, nixpkgs, nixpkgs-stable, home-manager, nix-doom-emacs,
nix-straight, stylix, blocklist-hosts, hyprland-plugins, rust-overlay,
org-nursery, org-yaap, org-side-tree, org-timeblock, phscroll, ... }:
let
# ---- SYSTEM SETTINGS ---- #
systemSettings = {
system = "x86_64-linux"; # system arch
hostname = "snowfire"; # hostname
profile = "personal"; # select a profile defined from my profiles directory
timezone = "America/Chicago"; # select timezone
locale = "en_US.UTF-8"; # select locale
bootMode = "uefi"; # uefi or bios
bootMountPath = "/boot"; # mount path for efi boot partition; only used for uefi boot mode
grubDevice = ""; # device identifier for grub; only used for legacy (bios) boot mode
};
# ----- USER SETTINGS ----- #
userSettings = rec {
username = "emmet"; # username
name = "Emmet"; # name/identifier
email = "emmet@librephoenix.com"; # email (used for certain configurations)
dotfilesDir = "~/.dotfiles"; # absolute path of the local repo
theme = "uwunicorn-yt"; # selcted theme from my themes directory (./themes/)
wm = "hyprland"; # Selected window manager or desktop environment; must select one in both ./user/wm/ and ./system/wm/
# window manager type (hyprland or x11) translator
wmType = if (wm == "hyprland") then "wayland" else "x11";
browser = "qutebrowser"; # Default browser; must select one from ./user/app/browser/
defaultRoamDir = "Personal.p"; # Default org roam directory relative to ~/Org
term = "alacritty"; # Default terminal command;
font = "Intel One Mono"; # Selected font
fontPkg = pkgs.intel-one-mono; # Font package
editor = "emacsclient"; # Default editor;
# editor spawning translator
# generates a command that can be used to spawn editor inside a gui
# EDITOR and TERM session variables must be set in home.nix or other module
# I set the session variable SPAWNEDITOR to this in my home.nix for convenience
spawnEditor = if (editor == "emacsclient") then "emacsclient -c -a 'emacs'"
else (if ((editor == "vim") || (editor == "nvim") || (editor == "nano")) then "exec " + term + " -e " + editor else editor);
};
# ----- USER SETTINGS ----- #
userSettings = rec {
username = "emmet"; # username
name = "Emmet"; # name/identifier
email = "emmet@librephoenix.com"; # email (used for certain configurations)
dotfilesDir = "~/.dotfiles"; # absolute path of the local repo
theme = "uwunicorn-yt"; # selcted theme from my themes directory (./themes/)
wm = "hyprland"; # Selected window manager or desktop environment; must select one in both ./user/wm/ and ./system/wm/
# window manager type (hyprland or x11) translator
wmType = if (wm == "hyprland") then "wayland" else "x11";
browser = "qutebrowser"; # Default browser; must select one from ./user/app/browser/
defaultRoamDir = "Personal.p"; # Default org roam directory relative to ~/Org
term = "alacritty"; # Default terminal command;
font = "Intel One Mono"; # Selected font
fontPkg = pkgs.intel-one-mono; # Font package
editor = "emacsclient"; # Default editor;
# editor spawning translator
# generates a command that can be used to spawn editor inside a gui
# EDITOR and TERM session variables must be set in home.nix or other module
# I set the session variable SPAWNEDITOR to this in my home.nix for convenience
spawnEditor = if (editor == "emacsclient") then
"emacsclient -c -a 'emacs'"
else
(if ((editor == "vim") ||
(editor == "nvim") ||
(editor == "nano")) then
"exec " + term + " -e " + editor
else
editor);
};
# create patched nixpkgs
nixpkgs-patched =
(import nixpkgs { system = systemSettings.system; }).applyPatches {
name = "nixpkgs-patched";
src = nixpkgs;
patches = [ ./patches/emacs-no-version-check.patch ];
};
# create patched nixpkgs
nixpkgs-patched = (import nixpkgs { system = systemSettings.system; }).applyPatches {
name = "nixpkgs-patched";
src = nixpkgs;
patches = [
./patches/emacs-no-version-check.patch
];
};
# configure pkgs
pkgs = import nixpkgs-patched {
system = systemSettings.system;
config = {
allowUnfree = true;
allowUnfreePredicate = (_: true);
};
overlays = [ rust-overlay.overlays.default ];
};
# configure pkgs
pkgs = import nixpkgs-patched {
system = systemSettings.system;
config = { allowUnfree = true;
allowUnfreePredicate = (_: true); };
overlays = [ rust-overlay.overlays.default ];
};
pkgs-stable = import nixpkgs-stable {
system = systemSettings.system;
config = {
allowUnfree = true;
allowUnfreePredicate = (_: true);
};
};
pkgs-stable = import nixpkgs-stable {
system = systemSettings.system;
config = { allowUnfree = true;
allowUnfreePredicate = (_: true); };
overlays = [ rust-overlay.overlays.default ];
};
# configure lib
lib = nixpkgs.lib;
# configure lib
lib = nixpkgs.lib;
# Systems that can run tests:
supportedSystems = [ "aarch64-linux" "i686-linux" "x86_64-linux" ];
# Systems that can run tests:
supportedSystems = [
"aarch64-linux"
"i686-linux"
"x86_64-linux"
];
# Function to generate a set based on supported systems:
forAllSystems = inputs.nixpkgs.lib.genAttrs supportedSystems;
# Function to generate a set based on supported systems:
forAllSystems = inputs.nixpkgs.lib.genAttrs supportedSystems;
# Attribute set of nixpkgs for each system:
nixpkgsFor =
forAllSystems (system: import inputs.nixpkgs { inherit system; });
# Attribute set of nixpkgs for each system:
nixpkgsFor = forAllSystems (system:
import inputs.nixpkgs { inherit system; });
in {
homeConfigurations = {
user = home-manager.lib.homeManagerConfiguration {
in {
homeConfigurations = {
user = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ (./. + "/profiles"+("/"+systemSettings.profile)+"/home.nix") # load home.nix from selected PROFILE
# inputs.nix-flatpak.homeManagerModules.nix-flatpak # Declarative flatpaks
];
modules = [
(./. + "/profiles" + ("/" + systemSettings.profile)
+ "/home.nix") # load home.nix from selected PROFILE
# inputs.nix-flatpak.homeManagerModules.nix-flatpak # Declarative flatpaks
];
extraSpecialArgs = {
# pass config variables from above
inherit pkgs-stable;
inherit systemSettings;
inherit userSettings;
inherit (inputs) nix-doom-emacs;
inherit (inputs) eaf;
inherit (inputs) eaf-browser;
inherit (inputs) org-nursery;
inherit (inputs) org-yaap;
inherit (inputs) org-side-tree;
@ -108,40 +111,47 @@
inherit (inputs) stylix;
inherit (inputs) hyprland-plugins;
};
};
};
nixosConfigurations = {
system = lib.nixosSystem {
system = systemSettings.system;
modules = [ (./. + "/profiles"+("/"+systemSettings.profile)+"/configuration.nix") ]; # load configuration.nix from selected PROFILE
specialArgs = {
# pass config variables from above
inherit pkgs-stable;
inherit systemSettings;
inherit userSettings;
inherit (inputs) stylix;
inherit (inputs) blocklist-hosts;
};
};
};
packages = forAllSystems (system:
let pkgs = nixpkgsFor.${system}; in
{
default = self.packages.${system}.install;
install = pkgs.writeScriptBin "install" ./install.sh;
});
apps = forAllSystems (system: {
default = self.apps.${system}.install;
install = {
type = "app";
program = "${self.packages.${system}.install}/bin/install";
nixosConfigurations = {
system = lib.nixosSystem {
system = systemSettings.system;
modules = [
(./. + "/profiles" + ("/" + systemSettings.profile)
+ "/configuration.nix")
]; # load configuration.nix from selected PROFILE
specialArgs = {
# pass config variables from above
inherit pkgs-stable;
inherit systemSettings;
inherit userSettings;
inherit (inputs) stylix;
inherit (inputs) blocklist-hosts;
};
};
};
});
};
packages = forAllSystems (system:
let pkgs = nixpkgsFor.${system};
in {
default = self.packages.${system}.install;
install = pkgs.writeShellApplication {
name = "install";
runtimeInputs = with pkgs; [ git ]; # I could make this fancier by adding other deps
text = ''${./install.sh} "$@"'';
};
});
apps = forAllSystems (system: {
default = self.apps.${system}.install;
install = {
type = "app";
program = "${self.packages.${system}.install}/bin/install";
};
});
};
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
@ -190,8 +200,6 @@
rust-overlay.url = "github:oxalica/rust-overlay";
#nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.2.0";
blocklist-hosts = {
url = "github:StevenBlack/hosts";
flake = false;

View file

@ -29,12 +29,12 @@ nix-shell -p git
#+end_src
and then running:
#+BEGIN_SRC sh :noeval
nix-run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes
nix run --experimental-features 'nix-command flakes' gitlab:librephoenix/nixos-config
#+END_SRC
And if you want a single copy-paste solution:
#+begin_src sh :noeval
nix-shell -p git --command "nix run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes"
nix-shell -p git --command "nix run --experimental-features 'nix-command flakes' gitlab:librephoenix/nixos-config"
#+end_src
At a certain point in the install script it will open =nano= (or whatever your $EDITOR is set to) and ask you to edit the =flake.nix=. You can edit as much or as little of the config variables as you like, and it will continue the install after you exit the editor.
@ -56,7 +56,7 @@ git clone https://gitlab.com/librephoenix/nixos-config.git ~/.dotfiles
At a certain point in the install script it will open =nano= (or whatever your =$EDITOR= is set to) and ask you to edit the =flake.nix=. You can edit as much or as little of the config variables as you like, and it will continue the install after you exit the editor.
Potential Errors: I've only tested it working on UEFI with the default EFI mount point of =/boot=. I've added experimental legacy (BIOS) boot support, but it does rely on a quick and dirty script to find the grub device. If you are testing it using some weird boot configuration for whatever reason, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before install, or else it will complain about not being able to install the bootloader.
Potential Errors: I mainly only test this on UEFI, but I've added experimental legacy (BIOS) boot support. Keep in mind, it does rely on a quick and dirty script to find the grub device. If you are testing it using some weird boot configuration for whatever reason, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before install, or else it will complain about not being able to install the bootloader.
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
@ -101,7 +101,16 @@ let
There are many more config options there that you may also want to change as well.
Potential Errors: I've only tested it working on UEFI with the default EFI mount point of =/boot=. I've added experimental legacy (BIOS) boot support, but it does rely on a quick and dirty script to find the grub device. If you are testing it using some weird boot configuration for whatever reason, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before install, or else it will complain about not being able to install the bootloader.
The build will fail if you are booting from BIOS instead of UEFI, unless change some of the system settings of the flake. Change =bootMode= to "bios" and set the =grubDevice= appropriately for your system (i.e. =/dev/vda= or =/dev/sda=).
#+begin_src nix :noeval
...
let
# ---- SYSTEM SETTINGS ---- #
systemSettings = {
bootMode = "bios"; # uefi or bios
grubDevice = "/dev/vda"; # device identifier for grub; find this by running lsblk
};
#+end_src
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
@ -115,9 +124,6 @@ Once the variables are set, then switch into the system configuration by running
sudo nixos-rebuild switch --flake ~/.dotfiles#system
#+END_SRC
The build will fail if you are booting from BIOS instead of UEFI.
# TODO write instructions on how to fix install on bios instead of uefi
*** Intall and Switch Home Manager Config
Home manager can be installed and the configuration activated with:
#+BEGIN_SRC sh :noeval
@ -143,3 +149,13 @@ Enable 3D acceleration for your virtual machine. Hyprland doesn't work without i
*** It fails installing with some weird errors about grub or a bootloader?
It will 100% fail if you test it with a non-default boot configuration. It might even give this error otherwise! If this is the case, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before installing again.
*** The install seems to work, but when I login, I'm missing a lot of stuff (partial install)
This can happen if you run the autoinstall script on a system that already has a desktop environment, or if any other (non-Nix-store-symlink) config files are in the way of the config files generated by home-manager. In these cases, home-manager refuses to build anything, even if there's just one file in the way. If you try running =nix run home-manager/master -- switch --flake ~/.dotfiles#user=, it should throw an error at the end with something like:
#+begin_example
Existing file '/home/user/.gtkrc-2.0' is in the way of '/nix/store/6p3hzdbzhad8ra5j1qf4b2b3hs6as6sf-home-manager-files/.gtkrc-2.0'
Existing file '/home/user/.config/Trolltech.conf' is in the way of '/nix/store/6p3hzdbzhad8ra5j1qf4b2b3hs6as6sf-home-manager-files/.config/Trolltech.conf'
Existing file '/home/user/.config/user-dirs.conf' is in the way of '/nix/store/6p3hzdbzhad8ra5j1qf4b2b3hs6as6sf-home-manager-files/.config/user-dirs.conf'
...
#+end_example
The current solution to this is to delete or move the files mentioned so that home-manager can evaluate. Once the files are out of the way, just run =nix run home-manager/master -- switch --flake ~/.dotfiles#user= again and it should work!

View file

@ -92,10 +92,31 @@
vlc
mpv
yt-dlp
#freetube
blender
#blockbench-electron
cura
curaengine_stable
(stdenv.mkDerivation {
name = "cura-slicer";
version = "0.0.7";
src = fetchFromGitHub {
owner = "Spiritdude";
repo = "Cura-CLI-Wrapper";
rev = "ff076db33cfefb770e1824461a6336288f9459c7";
sha256 = "sha256-BkvdlqUqoTYEJpCCT3Utq+ZBU7g45JZFJjGhFEXPXi4=";
};
phases = "installPhase";
installPhase = ''
mkdir -p $out $out/bin $out/share $out/share/cura-slicer
cp $src/cura-slicer $out/bin
cp $src/settings/fdmprinter.def.json $out/share/cura-slicer
cp $src/settings/base.ini $out/share/cura-slicer
sed -i 's+#!/usr/bin/perl+#! /usr/bin/env nix-shell\n#! nix-shell -i perl -p perl538 perl538Packages.JSON+g' $out/bin/cura-slicer
sed -i 's+/usr/share+/home/${userSettings.username}/.nix-profile/share+g' $out/bin/cura-slicer
'';
propagatedBuildInputs = with pkgs; [
curaengine_stable
];
})
obs-studio
kdenlive
ffmpeg

View file

@ -3,8 +3,7 @@
{
imports = [ ../homelab/base.nix
( import ../../system/security/sshd.nix {
# TODO add public ssh key for worklab
authorizedKeys = [ ];
authorizedKeys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDBW6X3nd54sLK5UOvkyxBZ0dC57+xXKsAkr6XyP3k64gsFNahIYZGyZ+E9DdGIP1SZPDkwlcnGfFTPo/dPq5QjxtBmAOd/q4hIb5mqojNfOwqZQVwHjzLYSiGBaMVe4XAGCoNxTwXTimVU8wtyvlmBJzuOLmxZq9tRBpN3g+PT5HT1S9mrrQ4l5Y+2CNTwfga6/+/H1g4hpYG6H9qdIWOrel1hWvGUH3A1d/5mJIx3GkOAl7WBReQNbwlTm/8mkIcNBMtp3JQg5yuTQ6dLGwMOspMB5sGSCnaDx6CrelQglRihxkunW9ktA2MYaIn3l5fNwaHilW63d0sb9Y/Rr/bFKybmGYVY4PR9+tQg4D4YqofkSfRKmB98dtxUZg4yduXjxCYrhDTDseCjXACncItdD9TmxabaBQtWiWIGmX3bhx31SoctwdpS+mzbB5WVIVb/Fo/cOvPj6ugB5ZQf2uH+U5nsGVYsSsNGS1zVDybeILr1z2ne2AcaqwB5Z7iz/E0=" ];
inherit userSettings; })
];
}

View file

@ -1 +1 @@
sha256-C+gURQ6K+OSnw4GNqLe+q/1sNRDbUj4WG5WY5yAhM5s=
sha256-GjM/Bu0zispdtPCFPzAk+zGlKYYg5XwTTxZ0TXOW9Fg=

View file

@ -1 +1 @@
https://images5.alphacoders.com/134/1344471.png
https://images.hdqwalls.com/wallpapers/aurora-s-embrace-a-borealis-beauty-in-anime-ub.jpg

View file

@ -1246,7 +1246,7 @@ https://github.com/magit/magit/issues/460 (@cpitclaudel)."
"q" 'helpful-kill-buffers)
;;;------ helpful configuration ------;;;
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.0")
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.1")
(require 'mu4e)
(require 'mu4e-contrib)
(require 'mu4e-actions)
@ -1255,7 +1255,7 @@ https://github.com/magit/magit/issues/460 (@cpitclaudel)."
(setq mu4e-sent-folder (lambda (msg) (concat "/" (nth 1 (split-string (mu4e-message-field msg :maildir) "/" )) "/Sent")))
(setq mu4e-drafts-folder (lambda (msg) (concat "/" user-mail-address "/Drafts")))
(setq mu4e-trash-folder (lambda (msg) (concat "/" (nth 1 (split-string (mu4e-message-field msg :maildir) "/" )) "/Trash")))
(setq mu4e-refile-folder (lambda (msg) (concat "/" (nth 1 (split-string (mu4e-message-field msg :maildir) "/" )) "/Archive")))
(setq mu4e-refile-folder (lambda (msg) (concat "/" (nth 1 (split-string (mu4e-message-field msg :maildir) "/" )) "/Folders/" (completing-read "Refile msg to: " (directory-files (concat "~/.mail/" (nth 1 (split-string (mu4e-message-field msg :maildir) "/" )) "/Folders"))))))
(setq mu4e-index-lazy-check t)
(setq mu4e-index-cleanup t)
@ -1343,6 +1343,7 @@ https://github.com/magit/magit/issues/460 (@cpitclaudel)."
(add-hook 'mu4e-compose-mode-hook #'no-auto-fill)
(add-hook 'mu4e-compose-pre-hook #'no-org-msg-mode)
)
;;;-- Load emacs direnv;;;--

View file

@ -1469,7 +1469,7 @@ I don't have this active right now since it's kinda weird with pgtk...
** mu4e Configuration
#+BEGIN_SRC emacs-lisp :tangle config.el
;;;------ helpful configuration ------;;;
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.0")
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.1")
(require 'mu4e)
(require 'mu4e-contrib)
(require 'mu4e-actions)
@ -1478,7 +1478,7 @@ I don't have this active right now since it's kinda weird with pgtk...
(setq mu4e-sent-folder (lambda (msg) (concat "/" (nth 1 (split-string (mu4e-message-field msg :maildir) "/" )) "/Sent")))
(setq mu4e-drafts-folder (lambda (msg) (concat "/" user-mail-address "/Drafts")))
(setq mu4e-trash-folder (lambda (msg) (concat "/" (nth 1 (split-string (mu4e-message-field msg :maildir) "/" )) "/Trash")))
(setq mu4e-refile-folder (lambda (msg) (concat "/" (nth 1 (split-string (mu4e-message-field msg :maildir) "/" )) "/Archive")))
(setq mu4e-refile-folder (lambda (msg) (concat "/" (nth 1 (split-string (mu4e-message-field msg :maildir) "/" )) "/Folders/" (completing-read "Refile msg to: " (directory-files (concat "~/.mail/" (nth 1 (split-string (mu4e-message-field msg :maildir) "/" )) "/Folders"))))))
(setq mu4e-index-lazy-check t)
(setq mu4e-index-cleanup t)
@ -1566,6 +1566,7 @@ I don't have this active right now since it's kinda weird with pgtk...
(add-hook 'mu4e-compose-mode-hook #'no-auto-fill)
(add-hook 'mu4e-compose-pre-hook #'no-org-msg-mode)
)
#+END_SRC

View file

@ -1,4 +1,4 @@
{ pkgs, pkgs-stable, ... }:
{ pkgs, ... }:
let
myRetroarch =
(pkgs.retroarch.override {
@ -18,7 +18,7 @@ let
}))
dolphin
genesis-plus-gx
] ++ [pkgs-stable.libretro.citra];
];
});
in
{

View file

@ -1,25 +0,0 @@
{ pkgs, ... }:
let
myYtpScript = ''
#!/bin/sh
ytsub --video-player mpv
'';
myYtaScript = ''
#!/bin/sh
yt-dlp -x --audio-format mp3 $1
'';
myYtdScript = ''
#!/bin/sh
pushd ~/Media/Podcasts;
ytsub --video-player ~/.nix-profile/bin/yta;
popd;
'';
in
{
home.packages = [
pkgs.yt-dlp
(pkgs.writeScriptBin "ytp" myYtpScript)
(pkgs.writeScriptBin "yta" myYtaScript)
(pkgs.writeScriptBin "ytd" myYtdScript)
];
}

View file

@ -1,34 +0,0 @@
{ lib, fetchgit, pkgs, ... }:
let
rustPlatform = pkgs.makeRustPlatform {
cargo = pkgs.rust-bin.stable.latest.minimal;
rustc = pkgs.rust-bin.stable.latest.minimal;
};
in
rustPlatform.buildRustPackage rec {
pname = "russ";
version = "unstable";
src = fetchgit {
url = "https://github.com/ckampfe/russ.git";
rev = "1482bb1df13738fdd4ea1badf2146a9ed8e6656e";
sha256 = "sha256-MvTMo2q/cQ/LQNdUV8SmHgGlA42kLl0i9mdcoAFV/I4=";
};
cargoSha256 = "sha256-/r1Dp7eh2qVYRGINVdPq6e8c9U/R2AzVEy/g+j/GRPo=";
checkType = "debug";
checkFlags = [
# network required tests don't work when building with nix for some reason
"--skip=rss::tests::it_fetches"
"--skip=rss::tests::it_subscribes_to_a_feed"
"--skip=rss::tests::refresh_feed_does_not_add_any_items_if_there_are_no_new_items"
];
meta = with lib; {
description = "A TUI RSS reader with vim-like controls and a local-first, offline-first focus ";
homepage = "https://github.com/ckampfe/russ";
license = licenses.agpl3Only;
maintainers = [];
};
}

View file

@ -1,28 +0,0 @@
{ lib, pkgs, ... }:
let
rustPlatform = pkgs.makeRustPlatform {
cargo = pkgs.rust-bin.stable.latest.minimal;
rustc = pkgs.rust-bin.stable.latest.minimal;
};
in
rustPlatform.buildRustPackage rec {
pname = "ytsub";
version = "0.4.0";
src = fetchTarball {
url = "https://github.com/sarowish/ytsub/archive/refs/tags/v0.4.0.tar.gz";
sha256 = "1124mf5r2507d2939833xkavy2vi2rbws67dkim4vwah376k3rlf";
};
cargoSha256 = "sha256-pv4eKD2XgaDAJqSf3JzfnsayofmOSy4XRzZ8rkZrHAo=";
buildNoDefaultFeatures = true;
buildFeatures = [ "bundled_sqlite" ];
meta = with lib; {
description = "A subscriptions only TUI Youtube client that uses the Invidious API";
homepage = "https://github.com/sarowish/ytsub";
license = licenses.gpl3Only;
maintainers = [];
};
}

View file

@ -4,29 +4,26 @@
# Collection of useful CLI apps
home.packages = with pkgs; [
# Command Line
disfetch neofetch lolcat cowsay onefetch starfetch
disfetch lolcat cowsay
starfetch
cava
gnugrep gnused
killall
libnotify
timer
brightnessctl
gnugrep
bat eza fd bottom ripgrep
rsync
tmux
htop
hwinfo
unzip
brightnessctl
tmux
w3m
fzf
pandoc
hwinfo
pciutils
(pkgs.callPackage ../pkgs/smartcalc.nix { })
(pkgs.writeShellScriptBin "sc" ''smartcalc'')
#(pkgs.callPackage ../pkgs/ytsub.nix { })
#(pkgs.callPackage ../pkgs/russ.nix { })
#(pkgs.python3Packages.callPackage ../pkgs/impressive.nix { })
(pkgs.callPackage ../pkgs/pokemon-colorscripts.nix { })
#(pkgs.python3Packages.callPackage ../pkgs/impressive.nix { })
(pkgs.writeShellScriptBin "airplane-mode" ''
#!/bin/sh
connectivity="$(nmcli n connectivity)"
@ -42,6 +39,5 @@
imports = [
../bin/phoenix.nix # My nix command wrapper
../bin/ytsub-wrappers.nix # My ytsub wrapper
];
}