Once again I try to get a handle of my various dotfiles and configs. This time I take another stab at gnu stow
as it is often recommended. I do not understand it.
Here's how I understand it: I'm supposed to manually move all my files into a new directory where the original are. So for ~
I make like this:
~
- dotfiles
- bash
dot-bashrc
dot-bash_profile
- xdg
- dot-config
user-dirs.dirs
- tealdeer
- dot-config
- tealdeer
config.toml
then cd ~/dotfiles && stow --dotfiles .
Then (if I very carefully created each directory tree) it will symlink those files back to where they came from like this:
~
.bashrc
.bash_profile
- .config
user-dirs.dirs
- tealdeer
config.toml
I don't really understand what this application is doing because setting up the dotfiles
directory is a lot more work than making symlinks afterwards. Every instructions tells me to make up this directory structure by hand but that seems to tedious with so many configs; isn't there some kind of automation to it?
Once the symlinks are created then what?
Tutorials don't really mention it but the actual manual gives me the impression this is a packager manager in some way and that's confusing. Lots of stuff about compiling
I see about how to combine it with git
. Tried git
-oriented dotfile systems before and they just aren't practical for me. And again I don't see what stow
contributing; git
would be doing all the work there.
Is there anything here about sharing configs between non-identical devices? Not everything can be copy/pasted exactly. Are you supposed to be making git
branches or something?
The manual is not gentle enough to learn from scratch. OTOH there are very very short tutorials which offer little information.
I feel that I'm really missing the magic that's obvious to everyone else.
Some packages install in under a minute, while alternatives which seem functionally similar, take hours.
Sometimes there are several available options to fit a use case and I would like to use it now. Is it possible to anticipate which one will likely be the fastest to get rolling?
Generally I like to install via yay
.
Searching around here is what I learned. Agree?:
-bin
will be faster if availableIs there some way to guess beyond that? Certain programing languages take longer than others? Is it in relationship to existing packages on the system? Other characteristic? Some kind of dry-run feature to estimate?
Obviously I don't have the fastest computer. I have added MAKEFLAGS="-j4"
to /etc/makepkg.conf
so at least all 4 cores can get used.
Once I realize a package is going to take ages to get ready, is it possible to safely intervene to stop the process? I try to avoid it because in general I understand arch-based distros don't like "partial" installs. But is it safe to stop compiling? No changes have yet been made, right?
Title is TLDR. More info about what I'm trying to do below.
My daily driver computer is Laptop with an SSD. No possibility to expand.
So for storage of lots n lots of files, I have an old, low resource Desktop with a bunch of HDDs plugged in (mostly via USB).
I can access Desktop files via SSH/SFTP on the LAN. But it can be quite slow.
And sometimes (not too often; this isn't a main requirement) I take Laptop to use elsewhere. I do not plan to make Desktop available outside the network so I need to have a copy of required files on Laptop.
Therefor, sometimes I like to move the remote files from Desktop to Laptop to work on them. To make a sort of local cache. This could be individual files or directory trees.
But then I have a mess of duplication. Sometimes I forget to put the files back.
Seems like Laptop could be a lot more clever than I am and help with this. Like could it always fetch a remote file which is being edited and save it locally?
Is there any way to have Laptop fetch files, information about file trees, etc, located on Desktop when needed and smartly put them back after editing?
Or even keep some stuff around. Like lists of files, attributes, thumbnails etc. Even browsing the directory tree on Desktop can be slow sometimes.
I am not sure what this would be called.
Ideas and tools I am already comfortable with:
rsync is the most obvious foundation to work from but I am not sure exactly what would be the best configuration and how to manage it.
luckybackup is my favorite rsync GUI front end; it lets you save profiles, jobs etc which is sweet
freeFileSync is another GUI front end I've used but I am preferring lucky/rsync these days
I don't think git is a viable solution here because there are already git directories included, there are many non-text files, and some of the directory trees are so large that they would cause git to choke looking at all the files.
syncthing might work. I've been having issues with it lately but I may have gotten these ironed out.
Something a little more transparent than the above would be cool but I am not sure if that exists?
Any help appreciated even just idea on what to web search for because I am stumped even on that.
For a given device, sometimes one linux distro perfectly supports a hardware component. Then if I switch distros, the same component no longer functions at all, or is very buggy.
How do I find out what the difference is?
Does anyone else find javascript/electron-based code editors confusing? I can never understand the organization/hierarchies of menus, buttons, windows, tabs. All my time is spent hunting through the interface. My kingdom for a normal dialogue box!
I've tried and failed to use VSCodium on a bunch of occasions for this reason. And a couple other ones. It's like the UI got left in the InstaPot waaaay too long and now it's just a soggy stewy mess.
Today I finally thought I'd take the first step toward android development. Completing a very simple hello world tutorial is proving to be challenging just because the window I see doesn't precisely correspond to the screenshots. Trying to find the buttons/menus/tools is very slow as I am constantly getting lost. I only ever have this in applications with javascript-based UIs
Questions:
Am I the only one who faces this challenge?
Do I have to use Android Studio or it there some kind of native linux alternative?
edited to reflect correction that Android Studio is not electron
cross-posted from: https://discuss.tchncs.de/post/13814482
I just noticed that
eza
can now display total disk space used by directories!I think this is pretty cool. I wanted it for a long time.
There are other ways to get the information of course. But having it integrated with all the other options for listing directories is fab.
eza
has features like--git
-awareness,--tree
display, clickable--hyperlink
, filetype--icons
and other display, permissions, dates, ownerships, and other stuff. being able to mash everything together in any arbitrary way which is useful is handy. And of course you can--sort=size
docs:
--total-size show the size of a directory as the size of all files and directories inside (unix only)
It also (optionally) color codes the information. Values measures in kb, mb, and gb are clear. Here is a screenshot to show that:
eza --long -h --total-size --sort=oldest --no-permissions --no-user
Of course it take a little while to load large directories so you will not want to use by default.
Looks like it was first implemented Oct 2023 with some fixes since then. (Changelog). PR #533 - feat: added recursive directory parser with `--total-size` flag by Xemptuous
I just noticed that eza
can now display total disk space used by directories!
I think this is pretty cool. I wanted it for a long time.
There are other ways to get the information of course. But having it integrated with all the other options for listing directories is fab. eza
has features like --git
-awareness, --tree
display, clickable --hyperlink
, filetype --icons
and other display, permissions, dates, ownerships, and other stuff. being able to mash everything together in any arbitrary way which is useful is handy. And of course you can --sort=size
docs:
--total-size show the size of a directory as the size of all
files and directories inside (unix only)
It also (optionally) color codes the information. Values measures in kb, mb, and gb are clear. Here is a screenshot to show that:
eza --long -h --total-size --sort=oldest --no-permissions --no-user
Of course it take a little while to load large directories so you will not want to use by default.
Looks like it was first implemented Oct 2023 with some fixes since then. (Changelog). PR #533 - feat: added recursive directory parser with `--total-size` flag by Xemptuous
Question: Is there any auto-correct that works globally in all (or at least, many) applications? Particularly non-terminal. So for example firefox (like this text box I'm typing into), chat, text editors, word processors etc?
Example: I often type "teh" when I meant "the". I would like to have that change automagically.
I'm sure somewhere in my life (not in linux --- maybe on mac?) I had the ability to right click on a red-underlined misspelled word in any application and select "always change this fix this to.." and then it would.
Autokey is the only close suggestion I can find. But I guess you have to tell it about every single replacement through the configuration? Are there any pre-made configurations of common misspellings?
How is the performance if you end up with dozens, hundreds, of phrases for it to look out for?
Not looking for: a code linter, command line corrections or grammerly which are the suggestions I have found when searching.
I have a multiple user linux system. Well actually a couple of them. They are running different distros which are arch-based, debian-based and fedora-based.
I want to globally use non-executable components not available via my system's package manager. Such as themes, icons, cursors, wallpapers and sounds.
Some of them are my own original work that I manage in git repos. Others are downloaded as packages/collections. If there is a git repo available I prefer to clone because it can theoretically be updated by pulling. And sometimes I make my own forks or branches of other people's work. So it's really a mix.
I want to keep these in a totally separate area where no package manager will go. So that it is portable and can be backed up / copied between systems without confusion. Which is why I don't want to use /usr/local
.
I also want to be able to add/edit in this area without su
to root
. So that I can easily modify or add items which then can be accessed by all users. Also a reason to avoid /usr/local
I tried making a directory like /home/shared/themes
then symlinking ~/.themes
in different users to that. It sometimes worked OK but I ran into permissions issues. Git really didn't seem to like sharing repos between users. I can live with only using a single user to edit the repos but it didn't like having permissions recursively changed to even allow access.
Is there a way to tell linux to look in a custom location for these resources for every user on the system? I also still want it to look in the normal places so I can use the package managers when possible.
fonts - once solved
On one install, I found a way to add a system-wide custom font directory though I am not able to recall how that was done. I believe it had to do with xorg or x11 config files. I can't seem to find in my shell histories how it was done but I will look some more. I do recall the method was highly specific to fonts and didn't appear to be transferable to other resources.
I am forced to use some proprietary software at work. The software lets users export custom functionalities. You can then share these to other users. I have made some that are pretty simple, but greatly enhance the use of the application using its native tooling.
I'd like to share mine under some sort of open source licence rather than being ambiguous. Mostly to spread awareness of the concept of open source which is at approximately 0% right now.
What are the considerations here? Can I use the GPL or is it inherently out of compliance since you need a proprietary software to run it?
The employer doesn't claim any intellectual property rights over my work product. I'm not able to find anywhere that the proprietary vendor does either. But I haven't gone through everything with a fine tooth comb. What language would I be looking for?
Advice appreciated. Obviously it can only be general as many details are missing. I just don't understand the details of licences very well.
@linuxPIPEpower
@discuss.tchncs.de