Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
mawarannahr
May 21, 2019

I have been tasked with coming up with a strategy to back up ~ 44 tb from one server to another (on the same intranet).

  • source is one directory and everything under it, stored on a Linux server in a GPFS filesystem
  • backup target is a SMB mount to a Windows machine (potential filesystem attribute/permission loss/symlink issues?)
  • preserving symlinks (or having a way to represent and restore them) is important
  • a full restore is extremely unlikely
  • ability to restore a particular file or directory is very likely
  • it's not crucial that the exact directory structure and individual files are mirrored to the SMB mount (i.e., it's ok if the backup solution stores blobs that are opaque to the target filesystem)
  • probably want this to run at least every 2 weeks
  • want this to be incremental because 44 TiB is a lot

we also want to prune the files kept on the server by access timestamp so we no longer have to keep 44 TiB in the directory. this might be a little separate from backing up, cause we don't want to remove these files from the backups, unless there is an append-only solution?

also, for pruning little-used files, is there a way to keep around a "ghost" of the file (kind of like in the Dropbox selective sync ui) in the source filesystem that indicates it was there but is now backed up?

the backup will be backed up regularly offsite by the admin of the windows server, so i am off the hook there.

i need to find some software and write some scripts to get this going. i've used rsync, borg, and timeshift before, but never on such a scale.

thank you for any pointers/symlinks/junctions. i've cross posted this in intersecting topics so forgive me if you've seen this post before and never wanted to see it again.

Adbot
ADBOT LOVES YOU

mawarannahr
May 21, 2019

Vavrek posted:

A couple weeks ago, I remembered the existence of my old netbook, and yesterday I finally found the power cable. After jiggling the connector a bit, it started to charge, and booted just fine to Windows XP. (Today, I'm testing the battery health. It sat unused for a decade and seems ... fine? It's not great, and on the first pass it lasted about 2.5 hours while saying it would last about 4. Acted like it was full and couldn't charge anymore when the battery meter said 56%. I remember the thing having something like a five hour battery life.)

Of course, I want to toy around with it as another project computer. It's an Acer Aspire One D150, rocking a single core, 1.6 GHz, 32-bit CPU and one lone gig of RAM. My current idea is to buy an SSD to replace the hard drive and put a new operating system on it, which is why I come to you all today:

Any tips on distros that support 32-bit processors, need only the slightest amount of RAM, and, importantly, can work well with a vertical resolution of 600 pixels? (1024x600 chopped off a lot of menus made for 1024x768 when I used it regularly.) Looking around DistroWatch and It's FOSS, I've got Puppy Linux, Q4OS (current top contender), and "Oh hey NixOS supports 32-bit?" as my list of possibles.

I used one of those -- or one of its immediate successors that came with win 7 home -- for a few years when I was writing stuff in word for a living. It was such a great form factor for doing work in a cafe and it performed pretty well when I added in some more ram and swapped in an ssd. I never enjoyed using a laptop on the go quite as much, also I could just leave it on the table when I went to the bathroom and never had to worry about it being stolen. Nothing ever went wrong with it and I can't recall any major flaws besides the atom processor and having a short screen.

Unfortunately, since the mid 2010s, Linux guis have gotten increasingly huger and support for smaller screens has gotten really bad -- there will be some settings dialogs that extend past the bottom edge of the screen. it has also gotten much harder to customize and theme different programs consistently and without breakage.

you may be able to configure one of the window managers to have a way to move around a larger-than-your-screen virtual desktop, or use the zoom accessibility feature to accomplish the same.

mawarannahr
May 21, 2019

blackbox/fluxbox/openbox would also work well in terms of size and performance. you could probably theme xfce well enough to work too.

mawarannahr
May 21, 2019

The Atomic Man-Boy posted:

I've been overall quite happy with my Ubuntu machine, but I've recently gotten into Unreal game development, and overall the experience on Linux is quite poopy, so I want to buy a 1 or 2 TB external SSD and be able to boot windows from it when I want to mess around with Unreal. Is it feasible to do everything from a USB? All the tutorials I've seen are of installing Linux on a windows machine, and I've heard horror stories of the Windows taking over the Grub loader and making it impossible to get back into linux. I want to do it on an external device because I don't want to see any windows stuff when I'm not explicitly working on it.

Any good tutorials out there on how to do this?

I had success with this https://github.com/spxak1/weywot/blob/main/Pop_OS_Dual_Boot.md

mawarannahr
May 21, 2019

cruft posted:

Yes, thank you. I have this, too, in addition to a systemd-launched code-server I can connect to with my browser, so I don't have to run electron. I also have acme from Plan 9, but since it uses X11, the laptop won't go to sleep until I terminate the WSL2 container.

My use case is setting up a development environment for technical writers who run Windows and who are not normally Internet connected; and also forcing myself to use Windows because I really ought to understand it better.

I appreciate everyone trying to help! Mostly I just needed to complain :)

Technical writers are gonna love acme
plan9 owns how's your acme story?

mawarannahr
May 21, 2019

cruft posted:

I spent a couple years using acme exclusively. Here's a review!

Cool stuff:

  • The basic premise rules the school. I already know how to mess with text files in the shell, and it was refreshing not to have to learn yet another Domain Specific Language to do the same thing in my text editor.
  • "What if you could just highlight text and easily pipe it to whatever executable you want", while part of this, is cool enough it's worth mentioning in its own bullet point.
  • Being able to manipulate the text editor through files is also cool. It's probably cooler in plan9 where that filesystem is magically mounted, but using the 9p command wasn't too bad.
  • I actually like using a proportional font in my text editor now. Most of the time.

Not so cool stuff:

  • The fonts are not great. Unicode support is not great. You can work around this with some settings.
  • The font rendering isn't great either, even after you've changed to a different font. Glyph borrowing doesn't exist. It's just sort of rudimentary fonts.
  • You absolutely positively must have a mouse with 3 buttons, and it's very important to be able to precisely position the mouse pointer. I gave up and bought the ergo mouse the plan9 people like, and it was very nice. But using acme with a trackpad was lame, and using any other mouse was almost out of the question.
  • Make the up and down arrow work like every other damned thing ever made, for crying out loud.

Super annoying stuff:

  • After moving everything to Wayland, it was the only legacy X11 app I was using. This looked pretty bad on my HiDPI monitor (yes, I tried that. I tried that too. Yes, that too. Thank you for your suggestions.)
  • I'm glad Rob Pike can live in a world where \x09 is the only character needed for indenting code. I wish I could live there, too.
  • LSP is a really nice thing to have while writing code.
  • Even frickin' Go is now better in VSCode: I just start typing "fmt.Println", save the file, and it automagically imports the fmt module at the top. And runs "go fmt". And tells me about syntax errors.
  • Atom's ^D multiple cursor thing was a game changer for text editing. I don't think I could live without it at this point.

If somebody made an editor like Acme for Wayland and/or Windows, where I could just use sed and awk and bourne shell to do things, I might give it serious consideration. But at this point I don't think I can go back to Acme except for nostalgia's sake.

Thank you, this post is really cool :) I like plan9 stuff a lot -- i learned quite a bit about C from reading the source code for stuff like bio, and used mk many years before I had to learn GNU make. I like that this stuff is still out there.

I'm surprised Unicode support isn't great, given the origins of utf8.

Re better integration with the shell, multiple cursors, LSP, etc. -- have you tried kakoune? I don't know about its mouse story. It's really cool and comes with Clippy, which is very helpful when learning to use it:

I didn't actually know how to use vim until I started using kak. Then I had a need to learn vim in places I couldn't run kak. I use vim now just cause it's on the server now, and haven't touched kak, but it's a lot more elegant and easy to learn than vim.

e: shoutout to elegant unpopular stuff

mawarannahr fucked around with this message at 04:42 on Dec 21, 2023

mawarannahr
May 21, 2019

NihilCredo posted:

Take a look at rclone. It's very similar to rsync, but has some features that you may find useful (filtering by date is built-in, for example, and it backs up symlinks as text files). And when down the line the backup destination inevitably becomes some S3 cold storage bucket, you'll only have minimal changes to apply.

For the 'ghost files', it shouldn't be too complicated to solve that with a script. Set rclone or whatever other tool you choose to log all its actions in a structured format, find every instance of a file being deleted from the source, then create an empty filename.BACKEDUP placeholder. Exclude all 0-sized .BACKEDUP files from the main job.

Just wanted to say thanks, I did set up rclone and have had success with its SMB backend (very convenient that it can do so in userspace + seems to work better than fuse SMB). My plan is to use it as a Restic backend.

mawarannahr
May 21, 2019

SpeedFreek posted:

Speaking of file systems. Is there a way to be able to plug in a flash drive or external hard drive and be able to write to it or move/delete/rename files without having to go in the drat terminal every time? This happens with my NAS too and I haven't found a way to automatically chown/chmod the entire volume when it mounts.

I'm running Fedora and the flash drives and external HDs are fat32 or NTFS, the NAS is a Synology DS1515. My last windows computer only gets booted up to put music on a USB stick to play in the car.

I think you want udisks2 and/or udiskie. I assumed fedora would have those set up.

mawarannahr
May 21, 2019

BrainDance posted:

I may need to file a bug report for Debian, so I'm here asking for help for two things. First, if I have to file a bug report what all should I do? What information and logs and stuff about this sorta problem should I give them? And also, hell, what is even going on here? Because maybe it's not a bug and something is screwed up that's fixable.

I'm running Debian Testing
The only thing I did recently on that machine was an apt upgrade, and I did do one that day so that seems like it's the source of the problem. I don't think it updated qbittorrent, because the last update that got pushed to testing was almost 3 weeks ago, but something else might be the cause?

I had qbittorrent running, restarted it, and it crashes on startup now. I copied over my config for it and started with a new one, still crashes. I reinstalled qbittorrent, nothing. I run it as root and it doesn't crash. So, a permissions thing? But I havent changed any permissions to anything.

This is what it dumps in a terminal when it crashes, even though it says to file it with qbittorrent I think this is actually more the kind of thing I file with debian, right?
code:
*************************************************************
Please file a bug report at https://bug.qbittorrent.org and provide the following information:

qBittorrent version: v4.6.2

Caught signal: SIGSEGV
```
 0# getStacktrace[abi:cxx11]() in qbittorrent
 1# 0x0000560295E89DD6 in qbittorrent
 2# 0x00007F714AC5A510 in /lib/x86_64-linux-gnu/libc.so.6
 3# nonstd::expected_lite::detail::storage_t<BitTorrent::LoadTorrentParams, QString, true, true>::storage_t(nonstd::expected_lite::detail::storage_t<BitTorrent::LoadTorrentParams, QString, true, true> const&) in qbittorrent
 4# BitTorrent::ResumeDataStorage::onResumeDataLoaded(BitTorrent::TorrentID const&, nonstd::expected_lite::expected<BitTorrent::LoadTorrentParams, QString> const&) const in qbittorrent
 5# BitTorrent::BencodeResumeDataStorage::doLoadAll() const in qbittorrent
 6# 0x0000560295ECB3D0 in qbittorrent
 7# std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) in qbittorrent
 8# 0x00007F714ACAB267 in /lib/x86_64-linux-gnu/libc.so.6
 9# 0x0000560295ECB802 in qbittorrent
10# 0x00007F714B403505 in /lib/x86_64-linux-gnu/libQt6Core.so.6
11# 0x00007F714B470679 in /lib/x86_64-linux-gnu/libQt6Core.so.6
12# 0x00007F714ACA63EC in /lib/x86_64-linux-gnu/libc.so.6
13# 0x00007F714AD26A4C in /lib/x86_64-linux-gnu/libc.so.6
```

QObject: Cannot create children for a parent that is in a different thread.
(Parent is Application(0x5602977286c0), parent's thread is QThread(0x560297723470), current thread is QThread(0x560297897ed0)
^CCatching signal: SIGINT
(I have to ctrl+c out of it because its just a big crashed window that wont close otherwise)

I did an strace on it, too https://pastebin.com/raw/yMKWrbK6

None of this makes any sense to me, I cant even really tell what's crashing here and none of that gives any useful information to me. So, anyone have any idea what's going on? Does this look like a bug or like I just have something messed up? If it is a bug how do I file this as a bug report (like, what do I need to include or do to get more logs and stuff)


edit: Oh wait drat, I think it's this?
Debian -- Debian BTS - reporting bugs

mawarannahr
May 21, 2019

Mr. Crow posted:

Is there a way to alt tab via the command line (on KDE)?

Give wmctl (Xorg) or wlrctl (Wayland) a try

mawarannahr
May 21, 2019

Mr. Crow posted:

wlrctl doesnt seem to exist in fedora or work with kde from a quick search? I am on wayland though forgot to mention.

Hmm. Maybe wtype or ydotool? These are designed to send key combinations on Wayland. It looks like wtype is packaged for Fedora; ydotool, you must build from source.

mawarannahr
May 21, 2019

mystes posted:

I will accept this but only if you have complete period accurate room for your retro rig

The computer history museum in Seattle had this around a CRT TV with an Atari (or NES?) plugged in. :rip: that place was cool; got to use a next box and saw a pdp

mawarannahr
May 21, 2019

Is there any VNC server that works with Wayland? I know TurboVNC has an entire fork of Xorg in its code base and I am sure how that interacts with the rest of things.

I am satisfied with X and use XFCE most of the time.

mawarannahr
May 21, 2019


Requirements: libgrapheme

quote:

libgrapheme is an extremely simple freestanding C99 library providing utilities for properly handling strings according to the

C99? What the gently caress? Don't talk to me unless you compile with -ansi -pedantic -Wall. Enshittification touches everything nowadays.

mawarannahr
May 21, 2019

I'm still waiting for the y window system.

also my work laptop's touchpad sucks without the synaptics driver 😩

mawarannahr
May 21, 2019

cruft posted:

X11 was designed before anybody knew what was going to unfold when it came to graphics on computers. Wayland has the benefit of seeing what decades of user interfaces had in common.

Some things that jump to mind immediately:

X11 has at least two different clipboard standards, and every app has to implement both. It was based around 8-bit characters, so handling unicode requires yet another funky extension. 9wm (my window manager) just sidestepped the whole issue, getting to claim "hey we're a legacy Window Manager that's mostly of historical interest". Because rendering unicode strings requires fancy extensions and libraries and bonkers font setup on the server, nobody bothers: they just use GTK+ or Qt. Not only that, subpixel glyph antialiasing isn't implemented by the X server, so unless you like the 1997 look of chunky pixellated fonts on your 72dpi monitor, you have to render fonts client-side (in the app). That means you also have to reimplement text selection and all the other text crap that the server provides. Every modern app is pretty much just sidestepping the bulk of what X11 provides, doing rendering locally, and telling X "please update the screen based on this bitmap in shared memory". It's pretty much a klunkier version of Wayland's frame buffer model.

Your fancy local-font-rendering app also has to track every mouse movement, which is sent over a Unix domain socket, because X was designed to be network transparent. There's a ton of back-and-forth in a select loop, triggering pantloads of system calls and context switches just to move the damned mouse. This is not what X was designed to do.

If you use something written to use Athena widgets, like, say, xclock, or xfontsel, it's super fast. You can even run it on a remote system and display on your local workstation, and it uses the locally installed fonts. It probably seems bonkers to modern desktop users that you'd want to launch an app on a remote system and have it see your local fonts and widget preferences (theme), but that's what X was designed to do. You could even run an X server on low-cost desktop hardware and run the window manager and everything else on a big beefy server. This is how my roommate and I were set up in college: he used a Sun 3 with a 60 pound black and white cathode ray tube, that network booted from my Linux workstation, so everything he did was on my Linux box, including the window manager, login screen, and basically everything but the graphics.

And I'm just focusing on the two or three things I know about : there are dozens of problems with X11 like mode switching, multi-monitor dot pitches, and other things I'm not even aware of.

You don't need to understand anything I just wrote, though. It's enough to remember that X11 is from like 1982, and it's just old and creaky.

I love reading about this kind of stuff. Thank you for sharing :cheers:

mawarannahr
May 21, 2019

Why are fonts like this? They've been like this for a long time. Why doesn't someone do something?? The font formats support Unicode!!! It makes it annoying to choose a font and it often makes the font chooser slow to a crawl.

An example but it's not just Noto:

quote:

  • Noto Sans Thai
  • Noto Sans Modi
  • Noto Sans Pahawh Hmong
  • Noto Serif Yezidi
  • Noto Sans Old North Arabian
  • Noto Sans Cypriot
  • Noto Sans Psalter Pahlavi
  • Noto Sans Warang Citi
  • Noto Sans Telugu UI
  • Noto Sans Lisu
  • Noto Sans Thai UI
  • Noto Sans Tamil UI
  • Noto Sans Sogdian
  • Noto Sans Mongolian
  • Noto Sans Limbu
  • Noto Serif CJK SC
  • Noto Sans Arabic UI
  • Noto Sans Ugaritic
  • Noto Sans Mono
  • Noto Sans Khmer
  • Noto Serif CJK TC
  • Noto Sans Armenian
  • Noto Sans Gujarati
  • Noto Sans Gujarati UI
  • Noto Sans Oriya
  • Noto Sans Wancho
  • Noto Sans Thai UI
  • Noto Sans Caucasian Albanian
  • Noto Serif Hebrew
  • Noto Sans Inscriptional Parthian
  • Noto Serif Hebrew
  • Noto Sans Mayan Numerals
  • Noto Sans Takri
  • Noto Sans Adlam Unjoined
  • Noto Sans SignWriting
  • Noto Naskh Arabic
  • Noto Sans Tifinagh Hawad
  • Noto Sans CJK HK
  • Noto Serif Telugu
  • Noto Sans Cuneiform
  • Noto Rashi Hebrew
  • Noto Serif CJK JP
  • Noto Serif CJK HK
  • Noto Serif CJK KR
  • Noto Sans Devanagari UI
  • Noto Serif Tamil
  • Noto Sans Syriac
  • Noto Sans CJK JP
  • Noto Sans CJK HK
  • Noto Sans CJK KR
  • Noto Sans CJK TC
  • Noto Sans Tifinagh
  • Noto Serif CJK KR
  • Noto Sans Sora Sompeng
  • Noto Serif Display
  • Noto Sans Ol Chiki
  • Noto Sans CJK KR
  • Noto Serif Tamil
  • Noto Serif Balinese
  • Noto Sans Myanmar
  • Noto Serif Gurmukhi
  • Noto Looped Thai
  • Noto Sans Gujarati UI
  • Noto Sans Marchen
  • Noto Sans Saurashtra
  • Noto Serif Ahom
  • Noto Serif Yezidi
  • Noto Serif Bengali
  • Noto Sans Tifinagh Tawellemmet
  • Noto Sans CJK SC
  • Noto Serif CJK SC
  • Noto Sans Bamum
  • Noto Sans CJK TC
  • Noto Sans CJK JP
  • Noto Sans Runic
  • Noto Serif CJK JP
  • Noto Serif Khojki
  • Noto Sans New Tai Lue
  • Noto Sans Kannada UI
  • Noto Kufi Arabic
  • Noto Sans CJK KR
  • Noto Sans Old Sogdian
  • Noto Looped Thai UI
  • Noto Sans Oriya UI
  • Noto Serif Gujarati
  • Noto Serif Armenian
  • Noto Serif Display
  • Noto Sans Canadian Aboriginal
  • Noto Sans Balinese
  • Noto Sans Lisu
  • Noto Sans
  • Noto Sans Tifinagh Air
  • Noto Sans CJK HK
  • Noto Sans Bhaiksuki
  • Noto Serif Khmer
  • Noto Sans Javanese
  • Noto Sans CJK SC
  • Noto Serif Malayalam
  • Noto Sans Display
  • Noto Sans Balinese
  • Noto Sans Linear B
  • Noto Sans Kannada
  • Noto Sans Lycian
  • Noto Sans Thai
  • Noto Sans Shavian
  • Noto Sans Bengali
  • Noto Sans Khudawadi
  • Noto Sans Yi
  • Noto Sans Linear A
  • Noto Sans Ol Chiki
  • Noto Sans Inscriptional Pahlavi
  • Noto Serif Dogra
  • Noto Sans Lydian
  • Noto Sans Tagalog
  • Noto Serif CJK SC
  • Noto Sans Osmanya
  • Noto Sans Hanunoo
  • Noto Sans Bamum
  • Noto Sans Devanagari
  • Noto Sans Meetei Mayek
  • Noto Serif Grantha
  • Noto Serif CJK TC
  • Noto Sans Khmer UI
  • Noto Sans Ethiopic
  • Noto Sans Old South Arabian
  • Noto Sans Oriya
  • Noto Sans Elbasan
  • Noto Serif Myanmar
  • Noto Sans Georgian
  • Noto Serif Tangut
  • Noto Sans Tifinagh Adrar
  • Noto Sans CJK SC
  • Noto Sans Lao UI
  • Noto Sans Grantha
  • Noto Serif CJK JP
  • Noto Sans Bassa Vah
  • Noto Serif CJK JP
  • Noto Serif CJK KR
  • Noto Serif CJK HK
  • Noto Looped Lao UI
  • Noto Sans Gurmukhi UI
  • Noto Serif Ethiopic
  • Noto Sans Gurmukhi
  • Noto Serif Sinhala
  • Noto Sans
  • Noto Sans Kharoshthi
  • Noto Sans Armenian
  • Noto Sans Rejang
  • Noto Serif CJK SC
  • Noto Serif CJK HK
  • Noto Sans Javanese
  • Noto Sans Medefaidrin
  • Noto Sans CJK KR
  • Noto Sans Sinhala UI
  • Noto Sans Medefaidrin
  • Noto Sans Meetei Mayek
  • Noto Sans Devanagari UI
  • Noto Serif Hmong Nyiakeng
  • Noto Serif
  • Noto Sans Nushu
  • Noto Serif Devanagari
  • Noto Sans Tai Viet
  • Noto Sans Duployan
  • Noto Sans Buhid
  • Noto Sans Thaana
  • Noto Sans Mro
  • Noto Sans Tamil
  • Noto Sans Display
  • Noto Sans Kayah Li
  • Noto Sans NKo
  • Noto Sans Deseret
  • Noto Sans Sundanese
  • Noto Sans Adlam Unjoined
  • Noto Sans CJK JP
  • Noto Sans CJK JP
  • Noto Sans Osage
  • Noto Sans Cham
  • Noto Sans Tifinagh Azawagh
  • Noto Sans Canadian Aboriginal
  • Noto Serif Ethiopic
  • Noto Serif Tamil Slanted
  • Noto Sans Lepcha
  • Noto Sans Lao
  • Noto Sans CJK JP
  • Noto Serif
  • Noto Serif CJK SC
  • Noto Sans Miao
  • Noto Looped Thai
  • Noto Sans Tifinagh APT
  • Noto Sans Hanifi Rohingya
  • Noto Sans Myanmar UI
  • Noto Serif Georgian
  • Noto Sans Khmer UI
  • Noto Sans Malayalam UI
  • Noto Serif Display
  • Noto Serif CJK TC
  • Noto Sans Old Turkic
  • Noto Serif Lao
  • Noto Sans CJK KR
  • Noto Sans Newa
  • Noto Music
  • Noto Serif CJK KR
  • Noto Sans Oriya UI
  • Noto Sans Egyptian Hieroglyphs
  • Noto Sans Imperial Aramaic
  • Noto Sans CJK HK
  • Noto Sans Devanagari
  • Noto Serif CJK HK
  • Noto Sans Math
  • Noto Sans CJK SC
  • Noto Serif CJK JP
  • Noto Sans Tirhuta
  • Noto Sans Tifinagh Ghat
  • Noto Sans Display
  • Noto Sans Malayalam UI
  • Noto Sans Buginese
  • Noto Sans Myanmar
  • Noto Serif Khmer
  • Noto Sans Old Italic
  • Noto Serif Thai
  • Noto Serif CJK SC
  • Noto Traditional Nushu
  • Noto Sans Myanmar UI
  • Noto Sans Masaram Gondi
  • Noto Serif Gurmukhi
  • Noto Sans Syloti Nagri
  • Noto Sans Bengali UI
  • Noto Sans Kannada UI
  • Noto Sans Avestan
  • Noto Sans Sinhala
  • Noto Sans CJK TC
  • Noto Sans Old Permic
  • Noto Sans Palmyrene
  • Noto Sans Malayalam
  • Noto Sans Sundanese
  • Noto Serif CJK SC
  • Noto Sans Ethiopic
  • Noto Serif Myanmar
  • Noto Serif
  • Noto Rashi Hebrew
  • Noto Sans Khojki
  • Noto Sans Gurmukhi
  • Noto Naskh Arabic UI
  • Noto Looped Lao UI
  • Noto Sans CJK SC
  • Noto Serif Armenian
  • Noto Sans CJK TC
  • Noto Serif CJK HK
  • Noto Nastaliq Urdu
  • Noto Sans Bengali
  • Noto Sans CJK JP
  • Noto Sans Soyombo
  • Noto Sans Pau Cin Hau
  • Noto Sans Gothic
  • Noto Sans Samaritan
  • Noto Sans Coptic
  • Noto Serif CJK HK
  • Noto Serif CJK KR
  • Noto Sans Malayalam
  • Noto Sans Kaithi
  • Noto Sans Tagbanwa
  • Noto Serif CJK KR
  • Noto Sans Adlam
  • Noto Sans Meroitic
  • Noto Sans CJK SC
  • Noto Serif CJK TC
  • Noto Sans Mono CJK TC
  • Noto Sans CJK KR
  • Noto Serif Kannada
  • Noto Sans Tifinagh Ahaggar
  • Noto Sans Mono CJK SC
  • Noto Sans Gunjala Gondi
  • Noto Sans Mono CJK KR
  • Noto Sans Mono CJK HK
  • Noto Sans Arabic
  • Noto Sans Mono CJK JP
  • Noto Sans Khmer
  • Noto Sans
  • Noto Sans Tamil Supplement
  • Noto Serif CJK TC
  • Noto Sans Old Persian
  • Noto Sans Anatolian Hieroglyphs
  • Noto Sans Tamil UI
  • Noto Sans Symbols2
  • Noto Serif CJK JP
  • Noto Sans Mono
  • Noto Sans Manichaean
  • Noto Looped Lao
  • Noto Sans Batak
  • Noto Serif Display
  • Noto Sans Sharada
  • Noto Sans Tai Tham
  • Noto Kufi Arabic
  • Noto Sans Hatran
  • Noto Serif CJK KR
  • Noto Sans CJK HK
  • Noto Sans Thaana
  • Noto Serif Hmong Nyiakeng
  • Noto Sans Sinhala UI
  • Noto Sans Multani
  • Noto Looped Thai UI
  • Noto Sans Lao UI
  • Noto Naskh Arabic UI
  • Noto Sans Cham
  • Noto Sans Arabic
  • Noto Sans Display
  • Noto Sans Gujarati
  • Noto Sans Carian
  • Noto Sans Kannada
  • Noto Mono
  • Noto Sans Chakma
  • Noto Sans Hanifi Rohingya
  • Noto Serif Devanagari
  • Noto Serif CJK TC
  • Noto Sans Tai Tham
  • Noto Serif Gujarati
  • Noto Sans Mono CJK SC
  • Noto Serif Tibetan
  • Noto Serif CJK HK
  • Noto Sans Mono CJK TC
  • Noto Sans Zanabazar Square
  • Noto Sans Cherokee
  • Noto Sans Brahmi
  • Noto Serif Georgian
  • Noto Sans Symbols
  • Noto Sans Mende Kikakui
  • Noto Serif Bengali
  • Noto Sans Vai
  • Noto Sans Lao
  • Noto Serif CJK TC
  • Noto Sans Elymaic
  • Noto Sans Sinhala
  • Noto Sans Symbols
  • Noto Serif Telugu
  • Noto Sans Mono CJK HK
  • Noto Sans Cherokee
  • Noto Sans Mono CJK KR
  • Noto Sans Mono CJK JP
  • Noto Sans Gurmukhi UI
  • Noto Serif Tibetan
  • Noto Naskh Arabic
  • Noto Sans Arabic UI
  • Noto Sans Georgian
  • Noto Sans Telugu
  • Noto Sans CJK TC
  • Noto Serif
  • Noto Color Emoji
  • Noto Sans CJK HK
  • Noto Sans Telugu UI
  • Noto Sans CJK JP
  • Noto Sans Hebrew
  • Noto Sans CJK KR
  • Noto Sans CJK HK
  • Noto Serif Lao
  • Noto Sans Mandaic
  • Noto Sans CJK TC
  • Noto Serif Tamil Slanted
  • Noto Sans Kayah Li
  • Noto Sans Mahajani
  • Noto Sans CJK SC
  • Noto Nastaliq Urdu
  • Noto Sans Old Hungarian
  • Noto Serif Thai
  • Noto Sans Indic Siyaq Numbers
  • Noto Serif Sinhala
  • Noto Sans Adlam
  • Noto Sans Tifinagh SIL
  • Noto Serif CJK JP
  • Noto Sans Bengali UI
  • Noto Sans Siddham
  • Noto Sans Ogham
  • Noto Serif Khojki
  • Noto Sans Telugu
  • Noto Sans Tai Le
  • Noto Sans PhagsPa
  • Noto Sans Phoenician
  • Noto Sans CJK TC
  • Noto Sans Tifinagh Agraw Imazighen
  • Noto Sans Tifinagh Rhissa Ixa
  • Noto Sans
  • Noto Sans Hebrew
  • Noto Sans Sora Sompeng
  • Noto Sans Tamil
  • Noto Serif Malayalam
  • Noto Serif Kannada
  • Noto Looped Lao
  • Noto Sans Glagolitic
  • Noto Sans Nabataean

mawarannahr
May 21, 2019

I wrote some C to interpret and update tables within a TTF file before. There are a lot of tricks in the format to save as much memory as possible -- practically everything is specified in terms of offsets and lengths. It's been a long time but think it should be possible to avoid loading the entire font into memory (at worst, mmap to make it easier). The main thing is an UI issue though. I just really wonder why it's like this as it's a very common PITA and I don't get why it was done this way :(

mawarannahr
May 21, 2019

cruft posted:

I love the notion that mmapping a 2023 font would exhaust the addressable userspace memory on a 32-bit architecture.

lol I hadn't considered the format might break due to integer overflow in offset/length fields but I assume otf fixed that / new tables could have fixed it. they do have some tricks though like using offsets from powers of 2 to keep the format tight.

vv mmap isn't necessary, probably more convenient than what was kind of like reading from some sort of tape. But just grouping the fonts by metadata would fix the UI issue.

mawarannahr fucked around with this message at 21:01 on Jan 3, 2024

mawarannahr
May 21, 2019

Armauk posted:

Can you share the code?

GitHub wasn't around yet but here's Apple's docs. It was kind of fun to figure out once I got the idea. Lots of bit twiddling and big endian poo poo. A good way to learn C imo (I would also reimplement the same as a learning project for other languages, even Ruby). Unfortunately I feel like I'm not as smart as I was back then... misspent youth :allears:

You can see more clever tricks like the stuff below everywhere in the format. Incidentally, someone posted a blog a few days ago pn HN about their more recent experience working with the format: Writing a TrueType font renderer

Anyway
Character to Glyph Mapping Table - TrueType Reference Manual

developer.apple.com posted:


### 'cmap' format 4

Format 4 is a two-byte encoding format. It should be used when the character codes for a font fall into several contiguous ranges, possibly with holes in some or all of the ranges. That is, some of the codes in a range may not be associated with glyphs in the font. Two-byte fonts that are densely mapped should use Format 6.

The table begins with the format number, the length and language. The format-dependent data follows. It is divided into three parts:

  • A four-word header giving parameters needed for an optimized search of the segment list
  • Four parallel arrays describing the segments (one segment for each contiguous range of codes)
  • A variable-length array of glyph IDs

'cmap' format 4


UInt16 format
Format number is set to 4

UInt16 length
Length of subtable in bytes

UInt16 language
Language code (see above)

UInt16 segCountX2
2 * segCount

UInt16 searchRange
2 * (2**FLOOR(log2(segCount)))

UInt16 entrySelector
log2(searchRange/2)

UInt16 rangeShift
(2 * segCount) - searchRange

UInt16 endCode[ segCount ]
Ending character code for each segment, last = 0xFFFF.

UInt16 reservedPad
This value should be zero

UInt16 startCode[ segCount ]
Starting character code for each segment

UInt16 idDelta[ segCount ]
Delta for all character codes in segment

UInt16 idRangeOffset[ segCount ]
Offset in bytes to glyph indexArray, or 0

UInt16 glyphIndexArray[variable]
Glyph index array

The number of segments is specified by the variable
segCount. This variable is not explicitly used in the
Format 4 table, however it is the number from which all of the table parameters are derived. The segCount is the number of contiguous code ranges in the font. The searchRange value is twice the largest power of 2 that is less than or equal to
segCount.

The searchRange, entrySelector, and rangeShift fields are not used on Apple platforms but should be set correctly for compatibility with other platforms.

Example Format 4 subtable values are shown in this table:

segCount
39
Not calculated; determined from the organization of the glyph indices

searchRange
64
(2 * (largest power of 2 <= 39)) = 2 * 32

entrySelector
5
(log2(the largest power of 2 < segCount))

rangeShift
14
(2 * segCount) - searchRange = (2 * 39) - 64


Each segment is described by a startCode, an endCode, an idDelta and an idRangeOffset. These are used for mapping the character codes in the segment. The segments are sorted in order of increasing endCode values.

To use these arrays, it is necessary to search for the first
endCode that is greater than or equal to the character code
to be mapped. If the corresponding startCode is less than
or equal to the character code, then use the corresponding
idDelta and idRangeOffset to map the character
code to the glyph index. Otherwise, the missing character glyph is returned. To ensure that the search will terminate, the final endCode value must be 0xFFFF. This segment need not contain any valid mappings. It can simply map the single character code 0xFFFF to the missing character glyph, glyph
0.

If the idRangeOffset value for the segment is not 0, the mapping of the character codes relies on the glyphIndexArray. The character code offset from startCode is added to the idRangeOffset value. This sum is used as an offset from the current location within idRangeOffset itself to index out the correct glyphIdArray value. This indexing method works because glyphIdArray immediately follows idRangeOffset in the font file. The address of the glyph index is given by the following equation:

glyphIndexAddress = idRangeOffset[ i ] + 2 * (c - startCode[ i ]) + (Ptr) &idRangeOffset[ i ]

Multiplication by 2 in this equation is required to convert the value into bytes.

Alternatively, one may use an expression such as:

glyphIndex = *( &idRangeOffset[ i ] + idRangeOffset[ i ] / 2 + (c - startCode[ i ]) )

This form depends on idRangeOffset being an array of UInt16's.

Once the glyph indexing operation is complete, the glyph ID at the indicated address is checked. If it's not 0 (that is, if it's
not the missing glyph), the value is added to idDelta[ i ] to
get the actual glyph ID to use.

If the idRangeOffset is 0, the idDelta value is added directly to the character code to get the corresponding glyph index:

glyphIndex = idDelta[ i ] + c

NOTE: All idDelta[ i ] arithmetic is modulo 65536.

mawarannahr fucked around with this message at 16:49 on Jan 4, 2024

mawarannahr
May 21, 2019

just want to say turbovnc is good and you should try it if you aren't committed to tigervnc. They very recently had a new release too.
TurboVNC | About / What About TigerVNC?

turbovnc.org posted:

The TigerVNC Project was founded by some of the former TightVNC developers, Red Hat, and The VirtualGL Project in early 2009, with the goal of providing a high-performance VNC solution based on the RealVNC 4 and X.org code bases. Throughout 2010 and 2011, The VirtualGL Project contributed many hours of labor (probably half of them pro bono) to the development of TigerVNC, in hopes of turning TigerVNC into "TurboVNC 2.0." Ultimately, however, it became apparent that, both from a technological and a political point of view, making TigerVNC into a TurboVNC work-alike was going to be like fitting a square peg into a round hole. Unlike TurboVNC, TigerVNC is not focused on 3D and video applications, so its developers were not generally very concerned with making such applications performant by default. Furthermore, there was resistance to including some of TurboVNC's 3D-specific features, such as automatic lossless refresh, in TigerVNC. In general, there was also just an irreconcilable clash of project management styles. Thus, with the release of TigerVNC 1.2.0, The VirtualGL Project stepped down as a contributor and supporter of TigerVNC in order to focus on moving TurboVNC forward.

The following summarizes the strengths of TigerVNC and TurboVNC, from an end user's point of view.

TurboVNC

  • Very stable -- has been enterprise-tested and productized since 2004 and has thousands of seats in large corporations and academia

  • Multiple simultaneous VNC sessions under the same user account

  • Dynamic VNC display number assignment (TigerVNC requires VNC display numbers to be statically assigned to user accounts by the system administrator)

  • Users can start/stop VNC sessions (TigerVNC sessions must be started/stopped by the system administrator.)

  • The ability to set global security/authentication policies for a particular server machine (including disabling clipboard transfer and reverse connections, limiting the remote desktop size, requiring SSH tunneling, and disabling particular authentication methods)

  • One-time password support (useful when building web portals around TurboVNC)

  • User access control lists (for sharing sessions with specific users)

  • More attractive and feature-rich VNC viewer GUI
    • Uses the system's look & feel rather than FLTK

    • Provides a toolbar for easy access to common features

    • Provides an application menu on macOS


  • Support for the full-screen application feature in OS X/macOS 10.7 "Lion" and later

  • Client-side remote desktop scaling

  • More configurable and flexible full-screen and multi-screen support
    • Supports offset monitors and monitors with differing resolutions

    • Allows the user to specify whether a non-full-screen viewer window should span one or multiple monitors

    • Automatic selection of single-monitor or multi-monitor spanning based on the remote desktop resolution

    • Allows the user to remotely configure any multi-screen Xinerama layout on the server, or to specify a multi-screen layout using the server's
      code:
      -geometry
      argument

    • In both windowed and full-screen modes, automatic desktop resizing chooses a server-side screen layout that honors the client's screen boundaries and taskbar/menu bar location.


  • Full documentation and complete man pages

  • Lossless Tight encoding method for high-speed networks (has approximately the same network footprint as Hextile while using about half the CPU time)

  • More configurable and flexible keyboard grabbing feature (TigerVNC can only grab the keyboard in full-screen mode)

  • Default settings are designed to provide peak LAN performance for 3D and video applications.

  • Self-contained X server code base that is fully integrated into the TurboVNC build system

  • Better support for IPv6

  • Java viewer can achieve native levels of performance by calling libjpeg-turbo through JNI.

  • Fully integrated SSH support
    • -via and -tunnel options on all platforms

    • Built-in SSH key management in the Java viewer

    • GUI support for SSH tunneling in the Java viewer


  • Approx. 8-10x better aggregate viewer performance on macOS than TigerVNC

  • TLS encryption using OpenSSL, which has better performance than GnuTLS

  • Remote X Input and Wacom tablet support

  • NV-CONTROL extension support

  • Built-in UltraVNC Repeater support

  • Can connect to encrypted Vino sessions

  • Direct integration with VirtualGL, which allows users to easily run compositing window managers with 3D hardware acceleration

  • Built-in SIMD-accelerated zlib implementation, which improves the performance of Tight encoding significantly on SSE2-equipped CPUs

  • The TurboVNC Session Manager, which allows a user to remotely start a TurboVNC session on the TurboVNC host or to seamlessly and securely connect to, remotely kill, or generate a new one-time password for any TurboVNC session running under their account on the host

  • Built-in SSH client with support for OpenSSH config files and password-less public key authentication (using ssh-agent or Pageant)

  • Seamless integration with noVNC
    • The TurboVNC Server has built-in support for WebSockets, so a WebSockets proxy is not needed.

    • The TurboVNC Server optionally starts a simple web server to serve up noVNC and prints a URL that can be used to connect to the TurboVNC session.


  • The TurboVNC Viewer can initiate connections to multiple VNC servers simultaneously, as well as tile multiple connection windows.

  • The TurboVNC Viewer maintains a different set of options for each unique TurboVNC host.


Note that we do not track the development of TigerVNC very closely, so if you feel that any part of this comparison is erroneous, please contact the TurboVNC maintainer.

TigerVNC

  • X.org module for providing VNC access to the "root" X display (requires building TigerVNC against the same version of X.org that your system uses.) Our alternative to this is to use x11vnc with libvncserver 0.9.9 or later, which uses the TurboVNC encoder.

  • Native language support

  • Multi-threaded Tight decoding (investigating, but the feature in general is something of a mixed bag)

  • Alpha-channel-enabled remote cursors

## Differing Approaches

TigerVNC, owing to its RealVNC heritage, is really designed to be built against a distribution-supplied X server code base and SDK. There are advantages to that approach. For starters, it offloads the burden of fixing X server issues to the O/S distributor, and there is less chance of incompatibilities between Xvnc and the window managers that are bundled with the distribution (since Xvnc is essentially running the same X server code as the "root" X server.) However, there are drawbacks to TigerVNC's approach as well. The biggest is that building TigerVNC from source requires a distribution-specific procedure, which is typically undocumented and difficult for many developers to figure out. We attempted to work around this by providing a "cross-compatible build" of TigerVNC, but that has a whole different set of issues. It requires building all of the X.org infrastructure from source, which is very slow and cumbersome, and if any issues are discovered in that specific X.org code base, they are difficult to address without upgrading one or more of the components (which creates all new issues.) Additionally, the cross-compatible build required a separate static build of GnuTLS and, on some platforms, gettext, which required the maintainer to keep abreast of security changes in those packages. In short, TigerVNC is really meant to be supplied by an O/S distributor.

TurboVNC's approach is instead to integrate a well-known X server code base into its source tree, so any issues that are discovered with it can be fixed within our project. This means that interaction issues between new window managers and our version of Xvnc have to be addressed by us, not by the distribution vendor. However, it also means that once an issue is fixed, it is fixed on all platforms. Using an in-tree X server code base makes our server much easier and quicker to build, and it puts us in complete control over the quality of the solution.

## Performance

TigerVNC 1.2.x, 1.3.x, and 1.4.3 and later can be configured to provide similar performance to the most common modes of operation in TurboVNC (assuming that multithreading is not being used, and assuming a Windows or Linux client. The TigerVNC Viewer currently suffers from a severe performance loss on macOS, due to unknown reasons.) The following table lists equivalent settings between the two solutions:

TurboVNC SettingsTigerVNC 1.2.x/1.3.x/1.4.3+ Settings
JPEG Image Quality = 92
JPEG Chrominance Subsampling = 1X
Compression Level = 1
Interframe Comparison = off
(Rough equivalent to "Tight + Perceptually Lossless JPEG", but with slightly lower image quality)
Compression Level = 1
JPEG Quality Level = 8
JPEG Image Quality = 77
JPEG Chrominance Subsampling = 2X
Compression Level = 6
Interframe Comparison = on
(Rough equivalent to "Tight + Medium-Quality JPEG", but with slightly lower image quality and more Zlib compression)
Compression Level = 2
JPEG Quality Level = 5
JPEG Image Quality = 29
JPEG Chrominance Subsampling = 4X
Compression Level = 7
Interframe Comparison = on
(Rough equivalent to "Tight + Low-Quality JPEG", but with slightly lower image quality)
Compression Level = 2
JPEG Quality Level = 1

However, it should be noted that, due to a performance regression, TigerVNC 1.4.0 - 1.4.2 cannot be configured to perform as well as TurboVNC under any circumstances. More information can be found here.

mawarannahr
May 21, 2019

NihilCredo posted:

Take a look at rclone. It's very similar to rsync, but has some features that you may find useful (filtering by date is built-in, for example, and it backs up symlinks as text files). And when down the line the backup destination inevitably becomes some S3 cold storage bucket, you'll only have minimal changes to apply.
just checking in about this cause of talk about nfs and SMB - i went with restic with rclone's new-ish SMB backend and it's passed the test for a 15 TiB trial run. 3 GB max memory usage for all the processes involved in the job, fairly low CPU. unfortunately bottlenecked by 1 gigabit and writing to spinning RAID on the other end. fun fact, restic is what CERN uses.

mawarannahr
May 21, 2019

All I really need is a multiline ungrouped window list instead of a taskbar, but there is no way to get this on Gnome, at least not via extension.

Do you think it might be possible to launch an xfce panel instead of the dock for this?

mawarannahr
May 21, 2019

F_Shit_Fitzgerald posted:

This is a long shot: For those who use Music On Console, I would like to set an executable command within the player to return to the previous directory. For example, if I were listening to Dark Side of the Moon and had just visited The Wall, a single keystroke would return me to looking at The Wall. Does anyone know how to do this? I tried setting cd - as a command and it didn't work.

I have never used moc, but looking at the example config I think you could write a pair of scripts that respectively save and recall the directories in a file or as soft links.

code:
# Run the OnSongChange command when a new song starts playing.
# Specify the full path (i.e. no leading '~') of an executable to run.
# Arguments will be passed, and you can use the following escapes:
#

OnSongChange = "/home/goon/.moc/savepwd.sh %f"
Then you would have an ExecCommand section that would run a script that reads the previous recorded directory. It might take you a while to figure out but that's how I would start.

mawarannahr
May 21, 2019

Computer viking posted:

I stand by my comparison: Gnome feels like an Apple product. They absolutely think they know better than you, and don't want the commoners messing with their vision - but the end result is very solid if you happen to think the same way as them.
It's not polished enough to be an Apple product, and that's not cause Apple's desktop stuff is particularly polished. It just feels janky, as it has always been except during the last days of GNOME 2, and incomplete.

mawarannahr
May 21, 2019

Saukkis posted:

Coworker is of the opinion that NFS shouldn't be mounted on a directory under /, because when it inevitably gets stuck it can cause wider issues.
It's been real fun figuring out why poo poo is breaking because someone put a /-level symlink to a nfs mount (eg /mydata -> /somewhere/the/mount/is ) and that's now how everyone has been using it for years.

mawarannahr
May 21, 2019

Inceltown posted:

Be a rebel and create a mount point called C in the root directory. Make everyone mad seeing a C drive on *nix.
Linux bits you're workshopping: guy who

code:
mkdir -p /C\:\\/Windows\\ && ln /usr/bin "$_"
mkdir /C\:\\/Windows\\/system32 && ln /usr/sbin "$_" 
mkdir /C\:\\/Program \Files\\ && ln /usr/local/bin "$_"
echo 'export PATH="/C\:\\/Program \Files\\:/C\:\\/Windows\\:/C\:\\/Windows\\/system32"" >> /etc/environment
unlink /bin /sbin /usr/bin /usr/local/bin
reboot
:hehe:

mawarannahr fucked around with this message at 22:47 on Jan 14, 2024

mawarannahr
May 21, 2019

probably be necessary to s//g a ton of scripts and rebuild binaries with hardcoded paths .. maybe better to leave the directories there. Half baked idea

mawarannahr
May 21, 2019

Framboise posted:

Jokes aside that's kinda useful for a newer Linux user like me to understand Linux file systems a bit as they compare to Windows file systems.

this is a very loose mapping for a joke. This describes the basic hierarchy: https://man.archlinux.org/man/hier.7.en

More details here:
https://man.archlinux.org/man/file-hierarchy.7

mawarannahr
May 21, 2019

ExcessBLarg! posted:

Funny though, I have a ~/mnt I use for user-privilege mounts. Mostly sshfs "volumes".
I put these mounts on the desktop, Mac style. but I don't like seeing ~/Desktop every time I'm walking around the home, so I use ~/.config/user-dirs.dirs to map XDG_DESKTOP_DIR to ~/.desktop (and everything like Documents, Music, Templates; to ~/docs. I like a tidy home)

Framboise posted:

Right, I've read up on it a bit-- I'm just saying it's nice to be able to see the relations/comparisons between Windows and Linux file structures.

:cheers:

mawarannahr
May 21, 2019

spiritual bypass posted:

We joke a lot about Linux and other Unixes being an unusable mess, but I just had a sublime moment of desktop usability. My phone rang and KDE automatically paused the music on my desktop so I could take the call. That's the desktop automation I want, not some "AI assistant" to tell me the weather like I'm illiterate.
My housemate booted up their Win 11 laptop the other day and called out, "wtf is copilot? Is this a virus?"

Microsoft has been pushing out automatic updates with an unfinished preview version of Bing Chat that lives in the systray and pops over from the right. It's ridiculous.

Welcome to the new age of the command line on the premier desktop platform. I for one cannot wait for the next version of Gnome where the only way disable this is through a regedit gsettings hack:
Welcome to Copilot in Windows

support.microsoft.com posted:

Windows is the first PC platform to provide centralized AI assistance to you. Together with Microsoft Copilot (formerly Bing Chat), Copilot in Windows helps you get answers and inspirations from across the web, supports creativity and collaboration, and helps you focus on the task at hand. Do more with Copilot in Windows!

## Get started with Copilot in Windows

To get started, just select the new button on the taskbar to launch Copilot in Windows, or press  + C. Copilot in Windows connects to Microsoft Copilot (previously known as Bing Chat) using the same Microsoft account or Microsoft Entra account used to sign-in to Windows. When you use a work or school account, your experience may be a little different. For more information, see the Copilot in Windows: work and school accounts section.

Note: If you're signed in with a local account, Copilot in Windows isn't available.

## Interact with Copilot in Windows  

Copilot in Windows appears as a side bar docked to the right. It doesn't overlap with your desktop content and runs unobstructed alongside your open app windows allowing you to interact with Copilot in Windows anytime you need.

## Chatting with Copilot in Windows  

You can ask Copilot in Windows a range of questions, from simple to complex. If you want to call your family in Cyprus, you can quickly check the local time to make sure you’re not waking them up in the middle of the night. Want to plan a trip to visit them in Cyprus? Ask Copilot in Windows to find flights and accommodations for mid-winter break. While you're typing into the chat pane, Microsoft Copilot provides autocomplete assistance to make chatting easier. Just use Tab to accept the suggested text. To start fresh with a new chat thread, use the New topic button to clear your previous chat conversation.  

Copilot in Windows has the ability to use the context from Microsoft Edge to enhance the response. You can ask it to summarize a webpage you're viewing without having to provide the website address or copy and paste long text. Copilot in Windows integrates with the clipboard and provides the ability to drag and drop images to provide rich interaction, allowing you to get things done faster.

Three different chat tones are available for Copilot in Windows. You can toggle the tone of chat from Precise, which focuses on shorter, more search-focused answers, to Creative, which gives responses that are longer and more descriptive. The middle setting, Balanced, is somewhere in-between. 

## Copilot in Windows can help you be more efficient

Copilot in Windows allows you to perform common tasks and change settings in Windows. Change your Windows theme from light to dark mode, turn on do not disturb, or add Bluetooth devices. You can even open apps, organize your app windows, and more!

### Change Windows settings

In the chat pane try any of these:

  • Turn on dark mode
  • Mute volume
  • Change wallpaper

### Perform common tasks

In the chat pane try any of these:

  • Take a screenshot
  • Set a focus timer for 30 minutes
  • Open File Explorer
  • Snap my windows

### Launch troubleshooters

In the chat pane try any of these:

  • Why isn't my audio working?
  • My camera isn't working
  • I can't update my device

Yeah let me just type in "mute my volume"

mawarannahr
May 21, 2019

NihilCredo posted:

Same reason why you don't need sudo to install flatpaks on Linux: MS store apps live in folders under your home directory and are not allowed to touch protected folders.

Another option, when using a corporate laptop with no admin rights, is to find a valid reason to enable WSL and/or WSA (the Android emulator), then you can install whatever you want inside those systems.

(I'm fortunate enough that my corporate is fairly reasonable and all I need to sudo poo poo is to log a message describing what I'm about to do, in case IT needs to unfuck my machine later)

NihilCredo is not in the sudoers file. This incident will be reported.

mawarannahr
May 21, 2019

man I've been trying to set up some container (not with docker) that uses dbus and im trying to avoid it writing anything to ~/.dbus but it looks like it's hardcoded to write to ~/.dbus. users want to mount host ~ into ~ (and it does by default). however it starts loving with my own computer when it does that. sucks!! why would you hardcode this? Also clutter in home sucks generally.

https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/tools/dbus-launch-x11.c#L208
code:
#define DBUS_DIR ".dbus"

  strcpy (dir, home);
  strcat (dir, "/");
  strcat (dir, DBUS_DIR);
(https://dev1galaxy.org/viewtopic.php?id=5611)

mawarannahr
May 21, 2019

Mr. Crow posted:

Why do you need dbus?

https://github.com/containers/podman/discussions/16772 seems like there may be some gotchas

running vnc + xfce + gui app. it has mostly worked so far because everyone else is just using this one remote machine they rarely use, but when I'm testing on my own computer, poo poo gets weird because I also use xfce there. I may just change the bind mounts so it doesn't launch with $HOME:$HOME, but then people are like "help I can't see my files." It's also not super healthy to have it read your bashrc and profile I'm sure.

mawarannahr
May 21, 2019

Mr. Crow posted:

Square peg round hole imo, just use normal desktop facilities / systemd etc

Not everything needs to run in a container.

This absolutely does. I would not want to be doing this if I didn't have to.
- no sudo on host
- host packages are old anyway
- need to run a program with a million dependencies and an X11 gui
- no X installed on the host
- X forwarding too slow for the job
- no VNC installed on the host
- can build and run containers on the host
- user needs to be able to run a single command that gives them a SSH connection string they can copy-pastr to launch a tunnel, then point their vnc viewer on Windows or macOS at it

mawarannahr
May 21, 2019

cruft posted:

Hey mawarannahr, I think you need to set $DBUS_SESSION_BUS_ADDRESS :)

Nope, when it's set explicitly it is still creating it even if it doesn't use it.

mawarannahr
May 21, 2019

Mr. Crow posted:

Hmmm, did you try setting $DBUS_SESSION_BUS_ADDRESS?

Real answer is this what your trying to do / get started?

https://stackoverflow.com/questions/52284171/running-desktop-enviroment-in-docker-in-headless-linux

It (vnc on container) has been working for some time, but dbus is writing stuff to a place I would rather it not do, and it can't launch if it can't write there.

mawarannahr
May 21, 2019

Well Played Mauer posted:

Time to learn rclone for the Synology. God dammit!

May I suggest restic for your backups? It is more geared toward backing up and not only syncing. I am using it with an rclone backend.

mawarannahr
May 21, 2019

Framboise posted:

2. From my tinkering with Arch, the install guide suggests formatting a partition specifically to have a boot partition. If I end up breaking something that badly, all I would really need to do in this instance is format that partition and reinstall from there, right? Everything on the other partitions (in other words, where I'd be keeping all my files) would be unaffected, right? Also for the sake of switching distros if I want to use something else, I guess. I think I'm going to start by using EndeavourOS as mentioned further upthread as a more friendly intro to Arch, but if I'm not feeling it, having the ability to switch over without losing everything would be nice.

I hope this isn't too overwhelming to suggest, but if you plan on using btrfs, you can actually set up a hook using snap-pac to create a snapshot (restore point) before and after pacman transactions.

There are a few ways you can set it up, and I haven't done it in a while since I have been using Pop! OS on my main computers, but there should be some decent tutorials and so on out there. Here is one person's experience: https://www.lorenzobettini.it/2023/03/snapper-and-grub-btrfs-in-arch-linux/

Adbot
ADBOT LOVES YOU

mawarannahr
May 21, 2019

Nvidia sucks so much. Every now and again, ok Pop OS 22.94, X11 stops working and I can only log in with Wayland. No matter what I do, I can't get anything but a black screen, whether I'm using XFCE or Openbox. It turns out, when I put in "system76-power graphics integrated" and reboot, it works perfectly fine. I should probably switch to the "hybrid" mode but I don't use it all that often so I will just keep it like this until I need it. Score 1 Nvidia win for Wayland, though.

The system is also somehow faster. It was really bogged down today and even download speed went from like 12 MB/s to 50. Not sure how this is possible.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply