Sometimes you're lucky enough to have access to an extra monitor. If you're using i3, or any other desktop interface that doesn't have a gui or some simplified means for display management, setting up that second monitor might be something of a challenge. In this brief tutorial, we'll cover how to set up and use multiple monitors with i3. We'll use xrandr
and i3-msg
to orient our displays and place the workspaces we want on whatever monitor we want.
Today we'll cover how to use the dbus interprocess communication (IPC) mechanism to integrate the Clementine music player into i3status. We'll write a small script in Python that determines Clementine's state using the dbus library, and then appends that state to the i3status bar. This tutorial is really a corollary to the Linux Environment Setup 0x05: Integrating mpd into i3status using i3bar post we wrote a few months back, and will make use of some of the same code. Save swapping mpd for Clementine, the final result will be nearly identical:
Operational security rule 1 - and probably 2, 3 and then some - is to say nothing. We divulge enough information as it is and there's no need to make it any easier for a would-be attacker or opportunist of fortune. For a variety of reasons, many of which are not directly a result of security-mindedness, we resist providing information to strangers. This is good. Neither should your computer. To that end, it's a good idea to have a screensaver/locker!
Last time we visited this topic, we made use of a large buffer to place our shellcode in the process' memory. This time, we don't have such a large buffer, and so won't be able to simply inject the code we want to execute via the program's input. Instead, we'll place our shellcode in an environment variable.
When working on the command line, it's often useful to be able to take the output of one command, and use it as the input to another. All command line work is really data manipulation (what work isn't?) and commands and programs are the means of manipulation. A particularly quick and practical way to control those means are pipelines! Geertz, if he'd been feeling particularly digital, might well have commented that we are creatures bobbing in floods of data we ourselves have produced.