Designing a Ricing Program

Hey ricers, I'm designing a program that will provide a simple method for swapping GNU/Linux environment rices (and colours) easily, as well as generating unified gtk, qt and base16 themes based on them without the need to install stuff like qt5ct, lxappearance etc.

So far this is what is what I have planned out:

Theme creation:

1. Recurse through $HOME , store relevant configurations within a default or user defined themes directory. Specific configur files can be omitted or included in a .theme file (which will also contain theme authorship information)
2. Search for and remove any user-specific configuration variables (ncmpcpp's mpd connection method for instance)

Theme swapping:

1. Recurse through $HOME looking for relevant configuration files, back them up to a default or user specified directory
2. Where applicable replace said config files with copies of files from a specified theme
3. For user specific configuration requirements copy specific variables those from backup files and append/prepend them to said configs as needed
4. Generate GTK/qt themes based on .Xresources colour declarations, alternatively exact colours for usage can be specified in the .theme file by the theme author

Colour Swapping:

1. Grab custom colours from a configuration file that can be specified when program is run.
2. Look for specific colour declarations in config files (red:b, $(113) etc) and replace instances of them with colours as defined in the user defined colour configuration file.

It will do this based on the theme's .Xresources or .base16_theme file, so stanadard colour declarations like red will be replaced with a proper equivalent, likewise declarations like $(21) will be replaced with, for example "colour21:hex/rgb" in the custom colour configuration file. Theme authors will also be able to define if specific definitions have an equivalent replacement value $(117) to red for example.

Opinions? Improvements? Feature requests?

Attached: 1536515068747.png (1920x2160, 2.15M)

ricers are discord trannies, use windows 10.

I used both Windows and GNU/Linux for years, with Windows as my general go-to, recently switched over completely to GNU/Linux because the FOSS community has developed it and the applications available for it to an extent where it can now provide now an acceptable desktop experience.

ok, mr. designer.
1. what language did you plan writing this in?
2. will it have some sort of gui? if so which toolkit.
3. why are you doing this, there is already lots of "theme managers" wpgtk, mondo-generatro etc. And the target audience, is, as you say, ricers, which have no life except changing colorvalues in dotfiles. So they will not use this, or if they do their life will become completely empty and they might stop existing. wait, i support this. good luck.

>And the target audience, is, as you say, ricers, which have no life except changing colorvalues in dotfiles. So they will not use this, or if they do their life will become completely empty and they might stop existing. wait, i support this. good luck.
Yeah, this is good reason to hope for OP's success.

I second this

1. Bash, you can accomplish everything here with shell scripting. There's no point in needlessly forcing people to have shit like Go or Python libraries as a dependency.
2. You don't need a GUI for a program like this
3. There isn't a theme manager I've come across that has the ability to generate unified qt/gtk and base16 themes, moreover many of them include needlessly complex templating systems and affect user-specific configuration variables.

The target audience is both ricers and non-ricers, you don't need to be a ricer to use a program like this. Most of the programmers and system admins/mans that I know rice their environments, your view of who the kind of people that customize their environment are is ignorant and bigoted. Please kindly go fuck yourself with a 2ft wrought iron pole.

@70302075
>Opinions?
Opinions on what? Where is the source code?

On the design and features of the program? You structure a program first and then develop it, you don't just go balls deep into development without any prior thought of how your program should be structured.

good luck mr. pajeet designer man. personally i use mondo, since its template system makes it so that i have full control over what files and values are getting configured, which can even differ between themes. Having this whole process completely automated, sounds like a shitstorm of mails and issue report from user who didn't RTFM and now their favorite gray have been overwritten and it is your fault. bash is terrible for this, you will need at least awk, to make somewhat fast searching and manipulating of text files, but i would use Go, it have a great templating package, and you could use concurrency to execute the process (searching and applying values) on all files more or less at the same time. But I guess that doesn't fit your "design" of ow a good easy to use, whatever, good luck user.

@70302522
>On the design and features of the program?
Which ``program''? The definition of a program implies it being executable. I don't see anything even close to that in your post.

If you read the OP you'd know that I also plan to include the ability to define which files and values can be included or omitted.

Bash and sed will work perfectly fine and still perform well. If I were working with large and complex text files I would agree with you, but I am not. The entire set of instructions will only take a few seconds at most, precisely because I am not using a complex templating system and only copying and modifying simple strings. I'm not going to use concurrency or go and needlessly add to the complexity of the instructions, I understand your concern for performance, but I believe it is better to keep it simple here and not ask the user to install dependencies outside the GNU toolset.

Programs don't have to be in the format of an executable binary in order to be considered programs. You're rejecting formal definition based on your subjective idea of what a program is so I do not plan on discussing this any further. If you feel like actually contributing to the design or critiquing it I'm willing to listen, but if you're just looking for a petty argument over semantics then I have nothing more to discuss with you.

>Designing
Try asking on where actual "designers" hang out.

Although this does give me an idea, I'll separate the unified base16, gtk and qt theme generation into a separate tool, this way it can be used with any theme manger.
Anyone who develops programs involves themselves in a process of design, if not for the overall program then in how methods are combined to accomplish a specific task in the program.

>Feature requests?
How about an actual program I can run? Is being useful a planned feature? Won't be surprised if you're planning to write it in Haskell too.

Why not use C if youre concerned about dependencies?

Cool idea, but unless neural network predictive ricing using the newest trends from desktop threads is within your capabilities as a programmer, I don't really see it being worth a skilled ricer's time (imo).

basically you want to design the equvalwnt of a DE for WMs?
So everything a ricer sees as bloat.

Isn't the answer obvious? Faggots like him who endlessly go on about program design without presenting a basic working implementation don't have the discipline necessary to properly use the C language.

@70302797
>executable binary
Where does that post mention ``executable binaries''? Are you having trouble reading?

Nah, faggots like you that make sweeping generalizations are the ones who lack the discipline to do anything at all.

>sweeping generalizations
The only generalization I see in this thread is your ``epic'' choice of Haskell as your programming language and your long generalized descriptions of how your program is useful without it being actually useful.

>Haskell
Where has haskell been mentioned even once in this thread besides by you?
Im not OP

I did think about using C, however, I think it would be best if it were not compiled so users can modify instructions at will if their environment is very different from the norm. Obviously this raises performance concerns, but for such a lightweight tool performing simple tasks I don't think it outweighs the advantages of keeping it simple and readily modifiable by users that aren't experienced programmers.

However, it seems like people would prefer it the other way around, I suppose I could develop a variant of the program written in C for them.

I'm sure even skilled ricers would enjoy the ability to generate unified gtk, qt and base16 themes instead of having to define them manually. I know I would.

>The definition of a program implies it being executable.
Unless it's interpreted, a program generally uses an executable binary to run. And if you're not referring to binaries, then why would you say that this is will not be comprised of an executable set of instructions? It clearly will be as any program is.

Read between the lines. I get it that you're autistic and it can be hard to pick up on context cues sometimes, but his program's usefulness is exactly the same as that of any Haskell program out there. His program and a useless Haskell program are indistinguishable in this regard.

>read between the lines
The only thing inferring right now is that you're retarded.

@70303462
>Unless it's interpreted
You seem to be deeply impaired if you really believe that the property of being executable is somehow tied to the execution method.

DEs are much more than theme switchers and aren't theme generators, this also isn't specifically for WMs, they aren't even a requirement.

I guess Haskell's lazy evaluation missed a part of your post, otherwise it doesn't make much sense as an English sentence.

What are you smoking thats not what user said at all.

I never said it was, now you're the one having trouble reading.

@70303526
You're effectively claiming that being executable means having an executable binary or being interpreted. Only a complete retard can actually believe this after thinking about it for more than a couple of seconds.

you missed my point on purpose, because you realized i'm right, right?

what's the point of this? it's going to be a hard sell to non-ricers, since they don't give a fuck. It's going to be an even harder sell to ricers, since they want to do every stupid fiddly thing their way. Your entire audience is a vocal minority of Jow Forumstards and redditors who don't know how to rice but want to.

b-but how can i feel hackermang now?!

I am just referencing the most popular methods of program execution in the context of a tool like this, not stating that these are the only methods through which programs can be executed. I said I would not argue semantics with you and have already begun to do so, so I am done with this conversation, do not expect another reply.

No, you didn't make a point, this is not the equivalent of a DE for WM.

Most ricers do not create their own gtk or qt themes.

>a simple method for swapping GNU/Linux environment rices (and colours) easily
It already exists. It's called GNU stow.

I suppose if you want the tool usable and modifiable by anyone bash would be the way to go. Its a nice idea, but i dont think it will see anlot of usage by Jow Forums because theyd consider it "bloat" just because youre not using C

How the hell is a computer supposed to execute a set of instructions if its not eventually turned into a binary format retard

>computer
Who mentioned ``computers''?

Youre talking about program execution, programs are executed by a computer. A computer requires programs to be turned into a binary format in order to execute them. Brainlet

>programs are [only] executed by a compupter
This is blatantly wrong unless you adopt an extremely broad definition of ``computer''.

Computer is a broad definition formally. Moreover we are discussing this in the context of OPs program and systems that are able to execute said program, these systems require programs to be in a binary format in order to execute them.

>formally
Nobody gives a fuck about your useless FP programs. Take that to /dpt/.
>OPs program and systems that are able to execute said program
So we're talking about fictional systems, correct? No system exists which can execute non-existent programs. That much should be obvious to even a complete fool such as yourself.

So are you saying that because there was no inclusion of source code in OP, an executable set of instructions, it is not a program design? Even though it is literally an abstracted list of instructions that the program once developed will go through to accomplish its task? Because if that's the case you are mentally deficient.

Show me a computer which can execute his ``abstract set of instructions''. Unless you can somehow provide a proof of such a computer existing, your claims are worthless. Abstract pseudocode isn't a program unless you can somehow prove that its instructions actually specify actions, i.e., that they are actual instructions and not just some FP garbage you randomly wrote up on a piece of paper to seem cool.

>Design
>a plan or drawing produced to show the look and function or workings of a building, garment, or other object before it is built or made.

The OP falls under the definition of a program design, it is an abstracted set of instructions the program will go through to achieve its goal. It also not FP and you are both stupid and dishonest for even trying to relate it to that paradigm. End of story.

I still don't see a computer able to run this ``set of instructions'' anywhere in your post. If it really is a set of instructions, it should be trivial to show me a computer you can actually use to run them, don't you think?
>It also not FP
It's about as useful as FP, which is to say completely useless.

The design does not have to include actual instructions a program can run in order to be considered a plan that shows how the program will function. Unless you can prove otherwise you are just being a massive brainlet who clearly just wants an excuse to harp on FP.

a computer can execute*

But you just said that the formal definition of ``computer'' is broad and that his post contains an ``abstract set of instructions''. So clearly it should be possible to use some kind of a computer to run them, correct? If not, how the fuck can you claim them to be instructions and not just some useless FP garbage some moron from a ``computephile'' video on ``lambda calculus'' wrote up on a piece of toilet paper?

This is not a rebuttal:
>design does not have to include actual instructions a computer can execute in order to be considered a plan that shows how the program will function.

>Unless you can prove otherwise you are just being a massive brainlet who clearly just wants an excuse to harp on FP.

Why does there need to be a computer that can execute this abstracted list of instructions in order for it to be considered a plan that shows how the program will function once developed?

Niqqers tongue my anus

Attached: IMG_20190325_213410.jpg (3264x2448, 1.79M)

This is not a rebuttal:
>Even though it is literally an abstracted list of instructions
Please show me an actual proof of it being ``literally an abstracted list of instructions''. You keep claiming that a piece of toilet paper with random scribbles on it is somehow equivalent to a set of instructions and I've yet to see a single proof of this being the case.

You cannot formally constructively prove (since you FP kids seem to enjoy this so much) that something is an abstract instruction set without producing an abstract computer which executes this instruction set.

>The definition of abstract clearly removes said instructions from being able to be executed precisely
Retardedly wrong. Your favorite FP language uses an abstract computer to execute its abstract instructions and yet it still somehow can do I/O, which obviously falls under the definition of being ``executed precisely''.
>it is an idea, not physically concrete.
I can start listing off ideas which have a concrete physical manifestation in reality. This post is one of them.
>even children understand abstraction is
You're the one who is unable to understand the basic abstract idea of abstractions manifesting in the physical world. I guess FP doesn't teach you much about abstract thinking after all.

Attached: 2885b0132b94da6877f13259f78834d3.jpg (480x270, 49K)

The definition of an abstract idea means it is inherently not concrete or physical. Neither of us have defined that we are referring to the definition of abstraction under the context of computer science, and we are clearly not given how those ideas are listed in the OP. Congratulations for proving you are a complete brainlet that has zero ability to follow context.

Youre retarded, no one had referred to abstraction as a programming concept but you and that is clearly evident from the OP.

If an abstract idea manifests itself in the physical world it is no longer an abstract idea by definition. Also you talk about abstraction from a programming perspective but then go on to recognize yourself that we are talking about abstract thinking and ideas.

>The definition of an abstract idea means it is inherently not concrete or physical.
Retardedly wrong. Your post is an abstract idea which is both concrete and physical.
>Neither of us have defined that we are referring to the definition of abstraction under the context of computer science, and we are clearly not given how those ideas are listed in the OP
This doesn't seem to even make any sense in this context. Are you sure you replied to the correct post?
>Congratulations for proving you are a complete brainlet that has zero ability to follow context.
Yeah, I guess I missed the context of a bunch of FPtards claiming how their sketches are actually not sketches at all but an ``abstract instruction set'' which is definitely more useful than a Haskell program.

Nobody is referring to it as a programming concept, you moron. Learn to read before replying to posts you're barely able to follow on even a syntactic level.

>If an abstract idea manifests itself in the physical world it is no longer an abstract idea by definition
This is pseudo-intellectual nonsense. Being an idea and existing in the physical world aren't mutually exclusive. Learn some basic philosophy before making posts about abstraction.

Oh, and for the record, I don't often use the functional paradigm in my work, nor did I say which paradigm I would use in the design of the program. You're pulling shit out of thin air just to harp on FP. If you want to harp on FP that's fine, I won't take issue with it, but create your own thread to do so, you'd get a much better conversation and much more attention.

>I don't often use the functional paradigm in my work
Sure you don't, since you don't have any work in the first place. That's why you so vehemently defend FP and its apparent usefulness in making programs, since you don't actually know what it's like to write useful software. You could easily prove me wrong by showing how your ``epic'' ricer program actually works though.

>Retardedly wrong. Your post is an abstract idea which is both concrete and physical.
No, it it isn't. The ideas in my post have not manifested themselves in any physical form. An abstract idea cannot be concrete or physical by definition.
>nobody is referring to it as a programming concept
>Your favorite FP language uses an abstract computer to execute its abstract instructions
>hurr no one is referring to abstraction as a programming concept even though I literally just referenced programming languages that use abstraction as a programming concept
>Being an idea and existing in the physical world aren't mutually exclusive.
Except we're not just talking about an idea, we're talking about an abstract idea, and they are by definition not concrete or physical, sorry, but you cannot throw formal definition out the window just to suit your argument.
I never defended FP, at all, not even once. No one in this thread has.

>Recurse through $HOME
enjoy your stack overflow.

Most of my experience deals with developing proprietary software for scraping websites and databases, I used the OOP paradigm for most of those because it was from my perspective the best paradigm to use for that task.

>The ideas in my post have not manifested themselves in any physical form.
I see. So the storage device your post is currently recorded on isn't physical in nature?
>An abstract idea cannot be concrete or physical by definition.
Pseudo-intellectual garbage.

Didn't even bother reading the retarded greentext spam. Try writing out some actually coherent thoughts next time.

>I never defended FP
And yet you keep saying that your shit program is useful when it has the exact same usefulness as a Haskell program. How is that not a blatantly obvious defense of FP?

>the OOP paradigm
Your ignorance is showing yet again. OOP and FP aren't mutually exclusive, see ocaml and a dozen of other useless FP languages which support OOP.

>I see. So the storage device your post is currently recorded on isn't physical in nature?
If someone designs a building on paper that does not mean the building literally exists in the physical world, in order for that abstract idea to physically manifest they would have to actually put the building together. Likewise, in order for the abstract idea of my program to physically manifest I would have to develop it.

I never said they were, yet again putting words into my mouth.

>in order for the abstract idea of my program
The abstract idea of your program doesn't actually exist as far as anyone other than yourself is concerned unless proven otherwise (which you have failed to do on multiple occasions).
>I would have to develop it.
You're clearly not interested in doing so. Any decent programmer would have already come up with a basic prototype a long time ago instead of spending their time ``designing'' it.

eat shit retard

>Hey ricers

Other people have already confirmed the existence of the abstract idea of my program in this very thread. You are the only one refuting that it exists.
>Any decent programmer would have already come up with a basic prototype a long time ago instead of spending their time ``designing'' it.
I never claimed I was a decent programmer. Like I said most of my experience revolves around developing website and database scrapers, which is not very complex work. That is precisely why I created this thread, so other people could critique my design, so I could get feedback like this:

which made me realize it would be better to use a specified list of standard and user-definable directories instead of just recursing through $HOME.

You're the only pseudo-intellectual here, you went through mental gymnastics to try and prove that an abstract idea is physical, even though by definition it cannot be. You put words in other people's mouths and make baseless and heavily opinionated correlations to points that no one is arguing. You are an arrogant and bigoted individual who looks down on others so you can feel intellectually superior to them but are ironically intellectually dishonest.

Desktop threads have been on Jow Forums forever, there are three other sections of the site that have them as well, if I didn't value the opinions of people on here or think I could get feedback I would have used a different social platform.

remember the purpose of the program: centralization. Without centralization, there's no point in replacing all that. how to achieve centralization? Up to you in the end, but the program should work out of the box with whatever someone is using. Targeting ricers and non-ricers alike will necessitate or at least encourage a simple UI.
Good luck!

You make an excellent point, I suppose under that context it really would be best to write this in C and just expose all of the settings to the user, I suppose something like ncurses would be the best way to provide a simple UI for people concerned about bloat, potentially a GUI variant for gtk and qt as well so non-ricers have something familiar to them.
Thanks, user!

>niqqers
you fucking nigger

pywal does colorswapping really well, ricing hab become way easier since i know pywal.
have you considered forking pywal for the color part?

pywal would already be able to work alongside this tool without any problems as long as the .Xresources file it generates is specified for use for theme generation, could even keep the variables it uses as long as you specify them in the user-specific colour configuration

I don't know anything about programming (6th year here btw xD), but this sounds like a cool project. Good luck user

Attached: 1501278119463.gif (408x397, 35K)

I already have a keybound script that does this.

Damn bro thats xenophobic

>@
Looooooooooooool

what WM is that? It looks like i3 but the bar is way better

I NEED something to easily automate ricing it's the one thing I wish was automated about Linux.

it's literally i3 look at the fetch dumbass

in case somebody wants the pape

Attached: DzNT32SVAAU2o1D.jpg (2048x1170, 238K)

still, what bar is that?

who knows
you could get a bar like this with lemonbar, polybar or even tint2 2bh
do your research instead of being a spoonfed manchild

This is the best rice I've ever seen, I beg of you, do you have dotfiles??? What bar??

LARBS? Luke is that you?