vault backup: 2025-02-03 17:43:27
This commit is contained in:
@ -1,30 +0,0 @@
|
||||
Installed discord
|
||||
|
||||
Changed scrolling direction and speed
|
||||
|
||||
Installed spotify
|
||||
|
||||
Turned off spring loading
|
||||
|
||||
Unpinned stuff from taskbar
|
||||
|
||||
Minimize using scale
|
||||
|
||||
Autohide dock
|
||||
|
||||
Installed brew
|
||||
|
||||
Installed chrome
|
||||
|
||||
Installed obsidian
|
||||
|
||||
See https://www.youtube.com/watch?v=psPgSN1bPLY for below
|
||||
set dock to go with maximum speed and power
|
||||
|
||||
enabled type to siri
|
||||
|
||||
disabled autocorrect
|
||||
|
||||
switched back to natural scrolling
|
||||
|
||||
installed rectangle
|
@ -1,7 +0,0 @@
|
||||
****#linux
|
||||
#laptop
|
||||
[Documentation](https://github.com/knauth/goodix-521d-explanation)
|
||||
|
||||
From the usbreset directory run `gcc usbreset.c -o usbreset.out` to compile the reset bin, then `sudo ./usbreset.out /dev/bus/usb/<bus>/<device>` to reset it, for this device it's ``sudo ./usbreset.out /dev/bus/usb/003/002``
|
||||
|
||||
from goodix-fp-dump run `sudo python run_521d.py` to reflash the firmware
|
@ -1 +0,0 @@
|
||||
https://asus-linux.org/faq/#why-did-nvidia-mode-give-me-black-screen-with-xorg
|
@ -1,26 +0,0 @@
|
||||
|
||||
# We'll call this shell purple
|
||||
Primary background: \#1E2030
|
||||
alternate background: \##191b29
|
||||
Text color: \#C0CAF5
|
||||
Cyan Highlights: \#0DB9D7
|
||||
|
||||
# Pipe's Nord
|
||||
https://github.com/PipeItToDevNull/PLN
|
||||
Primary background: \#3b4252
|
||||
|
||||
red: \#bf616a;
|
||||
orange: \#d08770;
|
||||
yellow-light: \#ebcb8b;
|
||||
yellow-dark: \#e4b860;
|
||||
green: \#a3be8c;
|
||||
purple: \#b48ead;
|
||||
sea-green: \#8fbcbb;
|
||||
cyan: \#88c0d0;
|
||||
frost: \#81a1c1;
|
||||
blue: \#5e81ac;
|
||||
salmon: \#FC6E68;
|
||||
|
||||
# 47c Deep Purple
|
||||
Dark background: \#180c34
|
||||
Lighter background: \#281c44
|
@ -1,13 +0,0 @@
|
||||
#notes #programming #rust
|
||||
|
||||
|
||||
Absolute paths function as intended
|
||||
`cd .` takes you to the bianary location
|
||||
#### Relative Paths
|
||||
- Paths that are relative can be appended to the current dir
|
||||
- `..` should strip the directory before it from the path
|
||||
- `.` can be entirely removed from the absolute path and the endpoint will not be changed
|
||||
|
||||
|
||||
### The Solution:
|
||||
As it turns out, both Windows and Unix have prebuilt functions that handle cleaning up paths, that are implemented under `std::fs::canonicalize` https://doc.rust-lang.org/std/fs/fn.canonicalize.html
|
@ -1,48 +0,0 @@
|
||||
#laptop
|
||||
#documentation
|
||||
#issue
|
||||
#closed
|
||||
#linux
|
||||
02/02/2022
|
||||
|
||||
Because wifi was broken by a pacman update, I’m reverting to an older point in the repos(01/01/2022).
|
||||
|
||||
When updating via pacman -Syyuu, `error: failed to prepare transaction (could not satisfy dependencies)
|
||||
|
||||
:: installing expat (2.4.2-1) breaks dependency 'expat=2.4.4' required by lib32-expat
|
||||
|
||||
:: installing libcap (2.62-1) breaks dependency 'libcap=2.63' required by lib32-libcap` is returned.
|
||||
|
||||
`lib32-expat ` is an xml parser library [Arch WIki](https://archlinux.org/packages/multilib/x86_64/lib32-expat/), and lib32-libcap is some posix document `[arch wiki](https://archlinux.org/packages/multilib/x86_64/lib32-libcap/)`.
|
||||
|
||||
|
||||
|
||||
New solution: downgrade lib32-libcap(2.63-1 to 2.62-1) and lib32-expat(2.4.4-1 to 2.4.2-1)
|
||||
|
||||
Was going to use expat 2.4.3 but caused dependency issues with the 64 bit version. V2 successfully worked
|
||||
|
||||
|
||||
|
||||
sudo pacman -U /var/cache/pacman/pkg/[PACKAGE].pkg.tar.zst
|
||||
|
||||
|
||||
|
||||
After the above downgrade, `sudo pacman -Syyuu` with “y” on skip the lib32-expat and lib32-libcap worked, but returned
|
||||
|
||||
error: failed to commit transaction (conflicting files)
|
||||
|
||||
hwids: /usr/share/hwdata/pci.ids exists in filesystem (owned by hwdata)
|
||||
|
||||
hwids: /usr/share/hwdata/pnp.ids exists in filesystem (owned by hwdata)
|
||||
|
||||
hwids: /usr/share/hwdata/usb.ids exists in filesystem (owned by hwdata)
|
||||
|
||||
[referenced documentation for below as on garuda forums](https://forum.garudalinux.org/t/help-cant-upgrade/16237/2)
|
||||
|
||||
Couldn’t figure out how to fix above issue, attempting a different date(15).
|
||||
|
||||
|
||||
|
||||
ISSUE CLOSED.
|
||||
|
||||
Solution, using the rollback repos to rollback to 2022/01/15
|
@ -1,28 +0,0 @@
|
||||
I set out on project Ash for a a variety of small reasons:
|
||||
- I wanted to better learn how a shell interacts with an operating system, how it calls different commands
|
||||
- I wanted to get better at writing scaleable code
|
||||
|
||||
## The Beginnings
|
||||
I happened upon [this](https://brennan.io/2015/01/16/write-a-shell-in-c/) article about writing a shell in C, and was fascinated by the way it was written. It was fascinated by the extremely approchable way the article was written, with function calls defined first, and the actual contents of the function filled out later. Then it could be explained what each function does and why it's there, without relying too heavily on language specific semantics. This made it a great stepping stone, even though it's intended for the C programming language.
|
||||
|
||||
I started by writing a very basic framework to obtain user input as a string. As of right now, it's not an entire I/O lock, and so features like tab autocomplete or capturing Ctrl + C to stop the program from being exited are not currently functional. It functions as a loop that:
|
||||
- Captures user input
|
||||
- Seperates the user input into a list by spaces(this should probably changed later to account for features like `|, >, ;, &&`, which don't necessarily need a space)
|
||||
- It then checks the first argument to see if it's a builtin shell command(`cd`, `help`, `exit`)
|
||||
|
||||
I found it interesting that `cd` is not an operating system utility, it's a shell utility, and when `cd` is run, it tells the next commands run what directory they were run from. In Rust this is implemented as [current_dir()](https://doc.rust-lang.org/std/process/struct.Command.html) for the Command struct. Initially I actually had a lot of trouble with relative and absolute paths. You can create a functional path by simply appending the relative path to the current absolute path, seperated by `/` (or `\` for Windows). While this is technically functional, it's really not elegant at all. I was ending up with valid file paths like `//./home/../home/./../etc/.`, and felt there must be a better solution. I didn't bother checking to see if Rust had a valid method for it, because I didn't know how to put "cleaning up a file pathpath" into a clean, google-able statement, and I felt I could better understand the process behind parsing it if I implemented it myself. I sat down, absolutely stumped, Obsidian open, writing out various logical rules to clean paths up. I ended up with a few simple precepts that *seemed* mostly functional, but ended up missing edge cases, or having flat out unexplained behavior. The nonfunctional rules are below:
|
||||
- Paths that are relative can be appended to the current dir, then
|
||||
- `..` should strip the non-`..` directory before it from the path
|
||||
- `.` can be entirely removed from the absolute path and the endpoint will not be changed
|
||||
|
||||
This logic was flawed enough that exasperated and tired, I googled it, hoping that someone had made a crate that cleaned it up, or maybe there was some regex I could use. As it turns out, both Windows and Unix have prebuilt functions that handle cleaning up paths, that are implemented under `std::fs::canonicalize` ([docs](https://doc.rust-lang.org/std/fs/fn.canonicalize.html)).
|
||||
|
||||
- If no builtin commands are found, it passes it over to system exec handler. In C, processes must be started by forking the current process to a new thread, creating an exact copy with the `fork()` system call. You then instruct the new thread to replace itself with another process with the `exec()` call. Rust however, has a method that spawns new programs with `std::process::Command`. The first argument in the string is passed as the process to start, and each of the new arguments is passed to the process as an array of arguments with `.args()`, eg: `ls /bin` would start a new `ls` process, and pass `/bin` as an argument.
|
||||
|
||||
### The Future
|
||||
I would like to improve on this project and make it good enough that it's daily driveable. Plans for new features include:
|
||||
- Switching to a complete IO lock, this allows new features like:
|
||||
- Tab autocomplete
|
||||
- Capturing interrrupts
|
||||
- A fully featured configuration file that allows changing prompts and behaviors
|
||||
- Implementing the rest of the functionality that I use regularly, including redirects, pipes, and `;` or `&&`
|
@ -1,4 +0,0 @@
|
||||
#laptop
|
||||
#issue
|
||||
#open
|
||||
#linux
|
@ -1,6 +0,0 @@
|
||||
#laptop
|
||||
#issue
|
||||
#linux
|
||||
#open
|
||||
### Disabling the watchdog timer
|
||||
currently disabled via grub config, trying to disable module loading, don't know module name. Used `lsmod` to list modules, was unable to spot it after a cursory glance. `cat /proc/sys/kernel/watchdog` will show if it's active, and it does return 0, but I want it fully disabled. [see for disabling watchdog timer](https://wiki.archlinux.org/title/improving_performance#Watchdogs), [see for blacklisting modules](https://wiki.archlinux.org/title/Kernel_module#Blacklisting)
|
Reference in New Issue
Block a user