[-] gramgan@lemmy.ml 13 points 4 days ago

If you’re on Wayland, fuzzel just keeps getting better each release.

[-] gramgan@lemmy.ml 11 points 6 days ago

Wait, so how do we print now?

2
submitted 1 week ago by gramgan@lemmy.ml to c/nix@programming.dev

I'm trying to set up a simple script (linked to a hotkey in my window manager) that can launch a terminal window with a nix-shell containing packages I specify. So far, I got this:

set packages (fuzzel -d --lines 0 --prompt 'packages for nix-shell > ')
kitty nix-shell --packages $packages --run fish

If I type a single package into my runlauncher (fuzzel) (e.g. grim), the window spawns with a nix-shell as expected; if, however, I attempt to launch a shell with multiple packages (e.g. grim slurp), it fails to launch with the following error:

error:
       … while calling the 'derivationStrict' builtin

         at /builtin/derivation.nix:9:12: (source not available)

       … while evaluating derivation 'shell'
         whose name attribute is located at /nix/store/cjz8w4dgc3rd2n3dqv5c208vygndjyba-source/pkgs/stdenv/generic/make-derivation.nix:336:7

       … while evaluating attribute 'buildInputs' of derivation 'shell'

         at /nix/store/cjz8w4dgc3rd2n3dqv5c208vygndjyba-source/pkgs/stdenv/generic/make-derivation.nix:383:7:

          382|       depsHostHost                = elemAt (elemAt dependencies 1) 0;
          383|       buildInputs                 = elemAt (elemAt dependencies 1) 1;
             |       ^
          384|       depsTargetTarget            = elemAt (elemAt dependencies 2) 0;

       error: attempt to call something which is not a function but a set

       at «string»:1:107:

            1| {...}@args: with import <nixpkgs> args; (pkgs.runCommandCC or pkgs.runCommand) "shell" { buildInputs = [ (grim slurp) ]; } ""
             |                                                                                                           ^

This happens with or without launching a new kitty window, and it happens with other runlaunchers as well. Why on earth isn't this working?

Any help appreciated---thanks, everyone.

[-] gramgan@lemmy.ml 15 points 2 weeks ago

Uplink is where it’s at.

46
submitted 2 weeks ago by gramgan@lemmy.ml to c/linux@lemmy.ml

Hey all,

I'm a big fan of my plain text and terminal -based applications for things, and I'm looking a calendar system in this spirit. I'd like for a system which:

  1. If possible, is stored in a plain-text (human-readable) format (a la calendar.txt)
  2. Has some way of managing repeating events/automating some of the process (which is my only problem with calendar.txt)
  3. Can be accessed on my phone (an iPhone---yes yes, I know, I can sense everyone's disappointment) while on the go (either through some application, or just through a plain text editor)

For the past month or two, I've been using remind, which, while fantastic in features and usage, seems relatively obscure and unsupported, and the file format isn't as human-readable as I'd prefer (take this slightly modified excerpt from my class schedule):

OMIT 2024-11-25 THROUGH 2024-11-29 MSG Thanksgiving Break
REM Tue Thu FROM 2024-08-19 UNTIL 2024-12-20 SKIP AT 09:05 DURATION [1:15] MSG Class 1
REM Tue Thu FROM 2024-08-19 UNTIL 2024-12-20 SKIP AT 10:40 DURATION [0:50] MSG Class 2
REM Tue Thu FROM 2024-08-19 UNTIL 2024-12-20 SKIP AT 12:00 DURATION [1:15] MSG Class 3

I recently heard about calcure, which I'm very curious about, as the interface seems (quite frankly) a bit nicer than wyrd, which is what I've been using for remind---but is there an easy way to interface locally with .ics files on an iPhone?

For my to-dos, I've been pretty happy with the todo.txt format, and with topydo and todooo as frontends for it---surely there is something like this, but for calendar events?

P.S.---Before someone mentions it, yes, I am familiar with org-mode, and I know it perfectly fits my bill, and perhaps it is what I will ultimately turn to---but I'd strongly prefer not to, as I'm currently rebelling against Emacs, and we all know how poorly implemented org is outside of it.

[-] gramgan@lemmy.ml 13 points 1 month ago

Depending on how old the iPod is, you might have some luck installing rockbox firmware on it.

But, in any case, yes, moving your music over will functionally be as if copying it to an external drive.

[-] gramgan@lemmy.ml 52 points 1 month ago

Love Minetest. Unfortunately, though, like with many other FOSS projects, it’s hard to find anyone else using it…

Anyone got a server for us lemmings?

28
submitted 2 months ago* (last edited 2 months ago) by gramgan@lemmy.ml to c/opensource@lemmy.ml

Hi all,

I’m looking for something to automatically tag some old music files I have sitting around. I’ve been working with Picard, but a lot of albums are not in MusicBrainz, and adding them has been a serious PITA. Is there any kind of software that either:

  1. Can apply metadata directly from a streaming service (like this script for adding albums to MusicBrainz does)?
  2. Can simply allow me to manually edit metadata with an interface that isn’t completely awful to use?

or even:

  1. Two separate tools, one to grab metadata and another to manually add it (maybe a CLI interface for batch operations?)

Appreciative of any advice—I just hope there’s a better way, with how tedious this can be.

EDIT: Just to specify, I’m on NixOS.

147
submitted 2 months ago by gramgan@lemmy.ml to c/linux@lemmy.ml

For me, I really want to get into niri, but the lack of XWayland support scares me (I know there’s solutions, but I don’t understand them yet).

Also, I stopped using Emacs (even though I love its design and philosophy with my whole heart) because it’s very slow, even as a daemon.

39
submitted 2 months ago by gramgan@lemmy.ml to c/piracy@lemmy.dbzer0.com

Hi friends,

I've been using yt-dlp to download a few things off of YouTube Music, and I just wanted to ask a few questions about best practice. Right now, I've just been doing it this way:

yt-dlp -f bestaudio -x

I've found that has usually downloaded .opus files (though, .m4a as of late—anyone know why this is?), but, I was wondering (for the sake of compatibility with different music players), do I lose anything by passing --recode mp3?

Also, about losing the .opus files, I got this output when I ran yt-dlp -F on a link:

|ID |  EXT   RESOLUTION FPS CH |    FILESIZE  TBR PROTO | VCODEC         VBR ACODEC      ABR ASR MORE INFO
--------------------------------------------------------------------------------------------------------------------------
233 mp4   audio only        |                  m3u8  | audio only         unknown             Default
234 mp4   audio only        |                  m3u8  | audio only         unknown             Default
249 webm  audio only      2 |     1.30MiB  64k https | audio only         opus        64k 48k low, THROTTLED, webm_dash
250 webm  audio only      2 |     1.64MiB  81k https | audio only         opus        81k 48k low, THROTTLED, webm_dash
139 m4a   audio only      2 |  1019.36KiB  49k https | audio only         mp4a.40.5   49k 22k low, m4a_dash
251 webm  audio only      2 |     3.03MiB 149k https | audio only         opus       149k 48k medium, THROTTLED, webm_dash
140 m4a   audio only      2 |     2.64MiB 130k https | audio only         mp4a.40.2  130k 44k medium, m4a_dash

Any insights as to why I'm getting that throttling, and why it's downloading m4a instead of opus? Is it even that much of a difference? Is there some option I can pass to yt-dlp to avoid this?

Any help is much appreciated!

[-] gramgan@lemmy.ml 19 points 3 months ago

As if I needed more reasons to love Stephen Fry!

[-] gramgan@lemmy.ml 13 points 4 months ago

These look great!

I’d personally be curious, though, to experiment with non-standard input and UI designs on these phones. Although the touchscreen model has become standard, I’m not sure it’s ultimately the best for all things—I’ve been deeply enjoying my Garmin watch, for example, which has four buttons rather than a touchscreen. I think buttons, dials, etc., (besides simply feeling good to use) are faster for some things. If we’re gonna go against the grain, why not go crazy? I think physical buttons (or at least stuff like the back button on Android) may be to touchscreen interfaces what keyboard-centric workflows are to the mouse and GUI (in terms of efficiency).

17
submitted 4 months ago by gramgan@lemmy.ml to c/linux@lemmy.ml

Fellas, I'm at my wit's end with this one. I'm trying to set a general rule for window opacity in sway, and then have a few programs excepted from it.

Back on i3 with picom, I could do this pretty easily by setting activeOpacity to 0.9, for example, and then specifying additional opacityRules like this:

"100:class_g = 'mpv'"
"100:class_g = 'Brave-browser'"

Likewise, hyprland's window rules made it pretty easy to override the general opacity rules as well.

I can't seem to get this on sway, though; if I set it up like this:

[app_id=".*"] opacity 0.85

[app_id="brave_browser"] opacity set 1
[app_id="librewolf"] opacity 1

it simply sets everything to 0.85.

Currently, I have this:

[app_id="^(?!mpv$|brave_browser$).*$"] opacity 0.85

[app_id="brave_browser"] opacity set 1
[app_id="mpv"] opacity 1

but it is still exhibiting the same behavior (except mpv also seems to totally disregard any opacity rules whatsoever).

Any help is greatly appreciated---I haven't been able to find anyone else asking or talking about what seems to me like pretty basic functionality.

29
submitted 5 months ago* (last edited 5 months ago) by gramgan@lemmy.ml to c/linux@lemmy.ml

cross-posted from: https://lemmy.ml/post/15059157

cross-posted from: https://lemmy.ml/post/15059150

Hey friends,

I tried Kakoune for the first time recently—I definitely feel like it gets keybindings right. So I just wrapped up configuring Helix to (as far as I can tell) use those bindings (basically, it totally cuts out select mode and makes things much faster). Thought I'd share for anyone else interested.

[keys.normal]
H = "extend_char_left"
J = "extend_line_down"
K = "extend_line_up"
L = "extend_char_right"

W = "extend_next_word_start"
E = "extend_next_word_end"
B = "extend_prev_word_start"

A-j = "join_selections"

A-n = "search_prev"
N = "extend_search_next"
A-N = "extend_search_prev"

[keys.normal.g]
e = ["goto_last_line", "goto_line_end"]
G = ["select_mode", "goto_file_start", "normal_mode"]
[keys.normal.G]
H = "extend_to_line_start"
L = "extend_to_line_end"
E = ["select_mode", "goto_last_line", "goto_line_end", "normal_mode"]
[keys.normal.v]
t = "align_view_top"
b = "align_view_bottom"
v = "align_view_center"

Happy editing!

1
submitted 5 months ago by gramgan@lemmy.ml to c/kakoune@discuss.tchncs.de

cross-posted from: https://lemmy.ml/post/15059150

Hey friends,

I tried Kakoune for the first time recently—I definitely feel like it gets keybindings right. So I just wrapped up configuring Helix to (as far as I can tell) use those bindings (basically, it totally cuts out select mode and makes things much faster). Thought I'd share for anyone else interested.

[keys.normal]
H = "extend_char_left"
J = "extend_line_down"
K = "extend_line_up"
L = "extend_char_right"

W = "extend_next_word_start"
E = "extend_next_word_end"
B = "extend_prev_word_start"

A-j = "join_selections"

A-n = "search_prev"
N = "extend_search_next"
A-N = "extend_search_prev"

[keys.normal.g]
e = ["goto_last_line", "goto_line_end"]
[keys.normal.G]
H = "extend_to_line_start"
L = "extend_to_line_end"
E = ["select_mode", "goto_last_line", "goto_line_end", "normal_mode"]
[keys.normal.v]
t = "align_view_top"
b = "align_view_bottom"
v = "align_view_center"

Happy editing!

1
submitted 5 months ago* (last edited 5 months ago) by gramgan@lemmy.ml to c/helixeditor@discuss.tchncs.de

Hey friends,

I tried Kakoune for the first time recently—I definitely feel like it gets keybindings right. So I just wrapped up configuring Helix to (as far as I can tell) use those bindings (basically, it totally cuts out select mode and makes things much faster). Thought I'd share for anyone else interested.

[keys.normal]
H = "extend_char_left"
J = "extend_line_down"
K = "extend_line_up"
L = "extend_char_right"

W = "extend_next_word_start"
E = "extend_next_word_end"
B = "extend_prev_word_start"

A-j = "join_selections"

A-n = "search_prev"
N = "extend_search_next"
A-N = "extend_search_prev"

[keys.normal.g]
e = ["goto_last_line", "goto_line_end"]
[keys.normal.G]
H = "extend_to_line_start"
L = "extend_to_line_end"
E = ["select_mode", "goto_last_line", "goto_line_end", "normal_mode"]
[keys.normal.v]
t = "align_view_top"
b = "align_view_bottom"
v = "align_view_center"

Happy editing!

10
submitted 5 months ago by gramgan@lemmy.ml to c/linux@lemmy.ml

Fellas,

I've been using my current setup on NixOS (Xfce + i3) for about a month now---it's totally great, but I've got some minor things that bother me just a little bit, and I want to see if Wayland does anything for me. I like my combination of a lightweight desktop and tiling windows, so I thought maybe I could do something like MATE + Sway?

Does anyone run anything like this? MATE seems pretty close to Xfce, right?

Happy to hear any thoughts.

Cheers!

[-] gramgan@lemmy.ml 41 points 5 months ago

There’s a school I’ve worked at that’s got somewhat old desktops running Ubuntu. I smiled when I saw it.

[-] gramgan@lemmy.ml 29 points 5 months ago* (last edited 5 months ago)

Will 2025 be the year of the ARM Linux desktop?

[-] gramgan@lemmy.ml 19 points 5 months ago

Keeping my fingers crossed for XFCE…🤞

[-] gramgan@lemmy.ml 27 points 6 months ago

I did this back in the day! The tool of choice as the time was crouton, because it came with a keybinding that let us stealthily switch back to the ChromeOS desktop whenever the teacher walked by :)

view more: next ›

gramgan

joined 6 months ago